# Internationalization (i18n) App is translated to many different languages through lokalise.com platform. For this purpose, we are using Qt's [TS file format](https://doc.qt.io/qt-6/linguist-ts-file-format.html). There are excellent manuals detailing the translation process for [developers](https://doc.qt.io/qt-6/linguist-programmers.html), [release managers](https://doc.qt.io/qt-6/linguist-manager.html) and [translators](https://doc.qt.io/qt-6/linguist-translators.html) in the Linguist manual (Qt's translation tool). ## Developer workflow ### Update base translations file 1. Update the base TS files (`qml_base.ts` and `qml_en.ts`, the latter serving only for the purpose of providing plural forms for English): ```bash $ make update-translations ``` 2. The updated TS files are created in the `ui/i18n/` directory 3. Ensure the updated base files land in master The resulting binary QM files are also produced by simply running `make` via `make compile-translations` subtarget ### Update translations 1. Simply attach the changed TS files to your PR; we have CI checks in place that enforce this 2. If adding a brand new language, make sure to add the new TS file to `ui/i18n/CMakeLists.txt` as well ## Translator workflow 1. For editing TS files, we use the Qt's official [Linguist](https://doc.qt.io/qt-6/linguist-translators.html) tool 2. For AI guided translations, please refer to the respective Linguist's chapter: [AI translation](https://doc.qt.io/qt-6/linguist-ai-translation.html) 3. Recommended AI model: [translategemma:27b](https://ollama.com/library/translategemma:27b); offers large enough context window, and supports a wide array of 55 languages