Open VickyAgravat opened 3 years ago
We would love to support efforts to localize the app. I've heard good things about https://crowdin.com/. Open to other suggestions
@maebeam I'd love to take that on (for French as an example), is there support for it already on the frontend client?
There is not support at the moment, it would need to be added
Can we expect support of https://angular.io/guide/i18n it would be very useful for localizing.
Because, more BitClout node authors ask to support in their local language.
Having implemented internationalization a few times before, it seems to me there are a few parts to this (large) project:
1) Pick a vendor for actually sourcing the internationalized strings. Crowdin looks promising. I've also had great success with Smartling which is a great product (used by top apps like Spotify and Calm for localization). There's a cost associated with either, proportional to the number of words x languages we'd need
2) Restructure the frontend codebase to extract out all of the user-facing strings into a format that can be served up to one of these translatioin vendors, and then swapped in at runtime with a static file of translated strings. This includes good tokenization of all strings.
3) Build out the connection between (1) and (2), including detecting which language a user prefers (likely defaulting based on Accept-Language
header, but then giving users an option to change their language as well)?
4) Figure out how the broader community of frontends beyond just bitclout.com
can benefit from the same translation memory, and/or add their own strings into the memory bank and have access to the results.
5) Ongoing, there's a maintenance cost as new strings are added to the UI and need to be translated in N languages. Ideally this can be built out in the CI/CD process (e.g. fail if new strings are missing translation), but there'll be some kind of SLA on how long new translations take to come in.
The nice part is that getting it working for Language 1 is hard, but Language 2, 3, 4, 5, etc. should be nearly trivial. The only exception would be right-to-left scanning languages lke Hebrew or Arabic.
cc @maebeam @VickyAgravat
@maebeam beyond e.g. a discord channel, what is y'alls typical process for coordinating work on a larger project like this one? 🙏 💎
@tysheaff Discord is best at the moment. We are in the middle of some large frontend changes that will make it very difficult to kick start this project at this time. In about two weeks we could look at starting an internationalization effort.
Do you have any plan to support locale language?
If not, So, how we can localize the site with other than english language?