We use [https://www.locize.io/](https://www.locize.io/) as a translation service. Language files are stored in `frontends/web/src/locales`. The reference language is `en`. Changing values of any language (reference or otherwise) must be done inside of locize. Changing values of existing keys must be done inside of locize.io, so the corresponding keys in the other languages get tagged to be retranslated. ## For repo maintainers Repo maintainers use [locize-cli](https://github.com/locize/locize-cli). to push/pull translation files. Set up `~/.locize` with the following contents: ``` apiKey = projectId = fe4e5a24-e4a2-4903-96fc-3d62c11fc502 version = latest ``` After adding or removing keys in the reference language: `make locize-push`. `make locize-push` **does not** update the values of existing keys. In emergencies, use `locize sync -u true` to force overwrite them. To pull the files from locize into the repo, use `make locize-pull`. ## For translators Login to locize.io to the bitbox-wallet-app project. Or use a build of the app with an inline editor (see above). ## For developers Keys can be added to or removed from `frontends/web/src/locales/en/app.json`. Keys for other languages **must not** be added or removed manually. Existing keys **should not** be modified directly, but sometimes it is still useful to modify `en` keys anyway. Reasons can be for review/testing purposes or to keep track which keys have to be updated after the PR was merged. Keys have to be in alphabetical order, this can be automatically fixed by running: ```bash make locize-fix ```