Source: https://feedback.fider.io/posts/8/translate-fider-to-other-languages-internationalization-i18n
Fider is currently available only on English and our the long term goal is to internationalise it. Being an open source project, we hope to engage with the global community to help us translate it to every existing language ❤
But before we get there, there's a long path we need to trail to make our strings translatable. The goal of this issue is to track the Plan and Development of this feature. Join us with ideas, feedback and code contributions!
Definitions
- The language is defined per tenant/site and is not based on current browser language (Accept-Language HTTP Header);
- The user submitted content WILL NOT be translated;
- If a string is not translated, it'll default to English. So it's perfectly possible for some sites to have a mixed Non-English/English text for languages that are not 100% translated; We should show the percentage of completion for each language when user is selecting a language;
- The browser should only download the strings for the required language.
- The strings that are stored in
JSON/XML/TXT/whatever
must be available to both Go and React.
Questions:
- Which languages to start with? I (@goenning) can translate it to English and Brazilian Portuguese
- How can we support RTL languages? Is it hard?
- Which platform to use? GitHub? Crowdin? What other?
- Which format to store the strings? JSON?
- How do we introduce breaking changes to existing strings? Say we have:
{ key: "NOT_FOUND_MESSAGE", value: "The page is not found." }
and this has been translated to every language. What if we change text to This page does not exist.
? How do "deprecate other" strings that have already been translated.
- Any Go+React package that can help us on this? It doesn't seem to be hard to implement, but other packages might give us some inspiration.
- Do we need different validation per language? E.g.: Latin alphabet we should validate that titles must have at least 10 chars. But on Chinese/Japanese, maybe 2 or 3 is enough. (ref: #614)
If anyone has experience with a multilingual platform, please share your thoughts and suggestions!