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.
To translate a language:
- 2.Check whether the language you want to help translate is listed in the Translation Server.Note: Languages are grouped either as "shipped" or "work in progress". A language ships in Mattermost if it meets specified translation quality.
- 3.Review translation rules written by localization leads, when applicable:
- 1.New and updated source strings are automatically added to the translation server each time a GitHub pull request containing string changes is merged.
- 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 via a pull request as they may be lost with the next pull request update from the Mattermost Translation Server.
In order for users to understand the accuracy and coverage of language translations, quality levels are explicitly defined for each language:
- 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 been in use for at least three full release cycles where end users in target language can share feedback and corrections.
Official languages are listed in Account Settings > Display > Language.
- 90% of translation verified by someone deeply knowledgeable in Mattermost functionality and in the 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.
Beta languages are listed in Account Settings > Display > Language appended with (Beta).
- 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 languages may be dropped back to Alpha.
In order to ease the manipulation of strings like these with a special syntax (ICU as a reminder), a developer has created an online tool allowing to test an ICU string. This tool, called Online ICU Message Editor, is displayed as a live editor previewing how a string will appear in context. This tool has been reported by some members of our community as really helpful to translate strings containing an ICU syntax. Don't hesitate to use it.
Some terms used in Mattermost may be technical. If you don't know how to translate a specific term:
If you'd like to review and verify translations prior to achieving Beta quality status, you can follow these steps:
- 3.Copy the generated
[locale].jsonfiles to the corresponding directories:
- For the server, copy the files to the i18n directory of the
- For the webapp, copy the files to the i18n directory of the
- 4.Modify the file
mattermost-webappproject to include your translated strings.
- 5.Compile and run Mattermost to confirm everything works. You can then review and verify translations from your machine.
If you find a string that has not been translated, search for the string in the respective localization file to confirm it's included for translations. You can find the English version for server, webapp, and mobile projects below:
If it’s included in the file, then most likely it hasn't been translated yet, but is in https://translate.mattermost.com. If you want to confirm whether it's translated, you can check for the respective
.json filein the
Translations require updates on a monthly basis as features are added and changed.
While the formal process for updates has yet to be determined, currently the Release Manager notifies one of the official translation reviewers who then forwards the message to the community of translators. This reminder tends to induce a virtuous cycle of motivation into the community of translators.
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.