The purpose of this document is to explain the general workflow and commands required for our translation process on Deriv.com
-
PR will be based on crowdin branch
- if you dont have crowdin branch
git fetch upstream crowdin:crowdin git checkout crowdin git checkout -b [_your_branch_name]
- if you have crowdin branch
git checkout crowdin git pull upstream crowdin git checkout -b [_your_branch_name]
-
Make your changes and submit for review followed by checking by QA. Only the
English version
is checked at this staged by QA as the new strings have not been extracted for translation purposes. -
Once it passes QA, it will be merged into the Crowdin branch.
-
Extract translations from Crowdin branch
- Make sure you have the latest crowdin changes, resolve conflicts if any
git pull upstream crowdin
- Extract translation text to update
messages.json
npm run translate:extract
- Upload & download. This step uploads the text strings to Crowdin Platform (To be translated by translators) and downloads the latest
ach tags
.
npm run translate:upload npm run translate:download
- Commit your changes
-
Make pull request
- Push your changes to your origin, add
-u
flag for the first time push
git push -u origin [_your_branch_name]
-
Click on the autogenerated link from terminal to open the PR
-
Make sure to change the PR base to
crowdin
branch
- Push your changes to your origin, add
-
Download/get latest crowdin translations (Once strings are translated on Crowdin Platform).
npm run translate:download
-
Make pull request, get reviewed & merged (This triggers a build and redeploys an updated version of the crowdin test link with the new translated texts).
-
The task now goes through a translation regression check to test for all other languages.
-
Once ready, the crowdin branch can be merged into master awaiting to be rebased.
- Create a PR from Crowdin to Master.
- Once approved and merged, the staging link will need to be tested for translations.
- Rebase Crowdin branch onto master & delete any irrelevant commits.
⚠️ Note: Be very careful here and do take note to compare with the commits on master.git rebase --interactive