Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add multi language support #30

Open
easazade opened this issue Nov 8, 2020 · 16 comments
Open

add multi language support #30

easazade opened this issue Nov 8, 2020 · 16 comments

Comments

@easazade
Copy link
Contributor

easazade commented Nov 8, 2020

it will be great to add support for other languages as well.
though I understand that there are alot of languages and comming up with a solution to this problem can be hard.

one problem is that some languages are RTL (like farsi aka persian) unlike english which is LTR. and developers who make their app RTL first will override the flutter app locale to show the entire app in RTL. because of this showing faker's fake text which are read from left to right (LTR) because they are in english in an app which loaded its entire widget tree in (RTL) is very confusing.

@drager
Copy link
Owner

drager commented Nov 18, 2020

@easazade Makes sense and sounds like good addition. Feel free to send a PR!

@easazade
Copy link
Contributor Author

easazade commented Nov 26, 2020

@drager Great, do you have any suggestion on how to approach implementing feature?

I'm thinking something like this for example :

faker.languages.farsi.words(3)

@drager
Copy link
Owner

drager commented Nov 27, 2020

Good question! I think we should first of look at other faker implementations and get ideas from them. Do for example the python/ruby package supports LTR? If they do, perhaps their way is a good starting point. If they don't, then perhaps faker.languages can be the way forward.

@easazade
Copy link
Contributor Author

easazade commented Nov 27, 2020

@drager I checked. Python package supports Localization of Data and implemented it using different Data Providers to provide localized data for each different Locale.

here is what they do :

from faker import Faker
fake = Faker('it_IT')
for _ in range(10):
    print(fake.name())

# 'Elda Palumbo'
# 'Pacifico Giordano'
# 'Sig. Avide Guerra'
# 'Yago Amato'
# 'Eustachio Messina'
# 'Dott. Violante Lombardo'
# 'Sig. Alighieri Monti'
# 'Costanzo Costa'
# 'Nazzareno Barbieri'
# 'Max Coppola'

@drager
Copy link
Owner

drager commented Nov 29, 2020

@drager I checked. Python package supports Localization of Data and implemented it using different Data Providers to provide localized data for each different Locale.

here is what they do :

from faker import Faker
fake = Faker('it_IT')
for _ in range(10):
    print(fake.name())

# 'Elda Palumbo'
# 'Pacifico Giordano'
# 'Sig. Avide Guerra'
# 'Yago Amato'
# 'Eustachio Messina'
# 'Dott. Violante Lombardo'
# 'Sig. Alighieri Monti'
# 'Costanzo Costa'
# 'Nazzareno Barbieri'
# 'Max Coppola'

Awesome, that seems like a good way of doing it? Or what do you think? 😊

@easazade
Copy link
Contributor Author

easazade commented Nov 30, 2020

@drager I was thinking we should add LocaleDataProvider for each locale (which falls to the community to do so). but also allow user to add its own CustomDataProvider. this is really helpful for demo purposes when creating Flutter apps and creating fake data which is more relevent to the app. So I think starting with the CustomDataProvider makes more sense

@easazade
Copy link
Contributor Author

@drager thanks for the merge. I will start adding DataProvider to the rest of the faker features that can be customized by localizations or etc.

@drager
Copy link
Owner

drager commented Dec 12, 2020

@easazade Thank you! Sounds great!

@rumbleh
Copy link

rumbleh commented Mar 16, 2021

I would like to help with portuguese br translation when available.

@drager
Copy link
Owner

drager commented Mar 21, 2021

@rumbleh Feel free to work on it!

@easazade
Copy link
Contributor Author

next time I contributed in order to finish this. I remember to add some documentation.

@nombrekeff
Copy link

Is anyone working on this? I would love to give it a go if nobody is working on it.

I'm wanting to localize it for randomizing Spanish data

@easazade
Copy link
Contributor Author

easazade commented Jun 26, 2021

@nombrekeff thank you for the comment. reminded me there is unfinished work to be done here. I decided to add the rest of the data providers to other data generators like address , food job and etc. after that everyone can add their own customized DataProviders like SpanishLoremProvider or SpanishAddressProvider and so force

@easazade
Copy link
Contributor Author

I should also update the docs

@nombrekeff
Copy link

Ohh cool 👍

Thanks for the info, I will check it out when it's ready. Let me know if I can help in any other way, adding translations, docs, etc... I have some free time at the moment and would be glad to help out!

@easazade
Copy link
Contributor Author

easazade commented Jul 4, 2021

hey @nombrekeff
I added the rest of the DataProviders in here (#49) . feel free to check it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants