The following steps represent a semi-automated (yet human) process for translations using Github for collaboration, continuous integration and change tracking. When changes are made with a string that uses the Translate component or translate() function in a PR, they should ensure that the correspoding Chinese and Russian language files are also updated. The steps to update are as follows:
- A developer working on a specific functionality that requires translation populates the new values in the
en.json
file by running the translations scriptnpm run translations
. The script includes aformatjs
extract command that extracts messages from the source code and generates translation messages into the desired format in theen.json
output file. The otherru.json
andzh.json
that are found together with theen.json
file are added and updated manually, ensuring that theIDs
in both match theIDs
in theen.json
file. - The developer creates a pull request with the code changes including the updated
en.json
file. The pull request can be landed without being blocked by translations. - The developer creates another translation pull request in the same repository with manually populated values in
ru.json
andzh.json
in English. Both pull requests should be linked in their descriptions. - In the description of the translation pull request the developer tags the translators and the QA to be notified via Github email that there is a translation request. In addition, the developer attaches
snippets
with the correspondingIDs
and Englishwords
showing the platform changes to provide context for the translators. - The developer creates a translation request thread in Teams and tags the translators and the QA to be notified further. The thread should include the translation
pull request link
, translationdeadline
, targetclients/projects
so that the translators and the QA are aware and can plan the changes and the verification. - A ticket with the translation
pull request link
and the Teamsthread link
should be created to track the progress. - The translators use the Teams thread to coordinate translating and post their suggested translations there.
- The developer should push the approved translations to the
ru.json
andzh.json
files in the translation pull request, test them in their local development environment and merge them afterwards. - The QA verifies the landed translations on the staging environment.