Localization¶
The goal of the localization process is to consistently produce high quality translations release after release through collaboration between the international community, translators, project managers, language leads and the core team.
Translation Process¶
If you’re interested in contributing translations to Mattermost, please join the Mattermost localization channel to discuss. Below are descriptions of the overall localization process.
Initial Translation¶
To translate a language:
1 - Join the Mattermost Translation Server.
2 - Confirm that the language you want to help translate is listed in the Translation Server.
- If it is, perhaps offer to help translate or review and make suggestions.
- If not, ask to setup your language on the Mattermost localization channel, so you can start helping with the translation.
Translations Updates¶
1 - New and updated strings are imported to the Mattermost Translation Server each day at 00:00 GMT
2 - A new pull request with latest translations that reach at least Beta Quality is submitted to the Mattermost Platform Repo each Monday at 22:00 GMT.
- A pull request will also be submitted on the day of major feature complete and code complete to ensure latest translations are included in the release.
- A pull request may also be submitted for a release candidate.
IMPORTANT: Please do not submit translations directly with a pull request as they may be lost with the next updates from the Mattermost Translation Server.
Translation Quality¶
So users understand the accuracy and coverage of language translations, quality levels are explicitly defined for each language:
Official¶
- 100% of translation verified by someone deeply knowledgeable in Mattermost functionality.
- 100% of translation verified by someone deeply knowledgeable in target language.
- No translation may be out-of-date due to changes to English-language text since the last translation and review cycle.
- Language must have at least one official reviewer who maintains the language with updated strings imported to the Translation Server over time.
- Language must have been in use for at least 2 full release cycles where end users in target language can share feedback and corrections.
Language option is listed as an option in Account Settings > Display > Language.
Beta¶
- 100% of translation verified by someone deeply knowledgeable in Mattermost functionality.
- 100% of translation verified by someone deeply knowledgeable in target language.
- Up to 10% of translation may be out-of-date due to changes to English-language text since the last translation and review cycle.
Language option is listed as an option in Account Settings > Display > Language prefixed with (Beta).
Alpha¶
- Translation has not yet reached Beta quality.
An official language may be changed back to Beta or Alpha if the specified requirements are not met for a release. Similarly, Beta-quality language may be dropped back to Alpha.
Test Translations¶
If you’d like to review and verify translations prior to achieving Beta-quality status, you can follow these steps:
1 - Build Mattermost on your machine following the Developer Machine Setup Guides.
2 - Download a copy of your translations to your local machine.
3 - Use Mattermosti18n to convert Pootle’s output into JSON files.
4 - Copy the generated [locale].json files to the corresponding directories:
- For platform they should be in the i18n directory.
- For webapp they should be in the webapp/i18n directory.
5 - Modify the file webapp/i18n/i18n.jsx to include your translated strings.
6 - Compile and run Mattermost to confirm everything works. You can then review and verify translations from your machine.
Translation Maintenance¶
Translations require updates on a bi-monthly basis as features are added and changed. The formal process for updates has yet to be determined.
Below are current official reviewers and maintainers for languages that have reached at least Beta-quality. Official reviewers submit final translations for languages; maintainers suggest translations and step in when official reviewers aren’t able to help in a certain release.
If you’re interested in contributing to the process, please join the Mattermost localization channel to discuss.
Language | Official Reviewer(s) | Maintainers |
---|---|---|
Deutsch - German | Christian Arnold | |
Español - Spanish | Elias Nahum | |
Français - French | Pierre-Julien Grizel , William Gathoye | |
Nederlands - Dutch | Ron Hartman , Wai Yi Leung | |
Português do Brasil - Portuguese | Rodrgio Corsi | Carlos Tadeu Panato Junior |
Pусский - Russian | Archie Roller | |
한국어 - Korean | Hyeseong Kim | |
中文 (简体) - Simplified Chinese | aeomin | |
中文 (繁體) - Traditional Chinese | Tze-Kei Lee | |
日本語 - Japanese | Ryo Onodera , Yusuke Nemoto |