Languages
Languages can be barriers to understanding. We want to make sure that Tuist is accessible to as many people as possible. If you speak a language that Tuist does not support yet, you can help Tuist speak that language by improving the English source and the localization context that drives our translation pipeline.
Since language support is a continuous effort, we add languages as we see contributors willing to help us maintain them. The following languages are currently supported:
- English
- Spanish
- Japanese
- Korean
- Russian
- Cantonese
- Simplified Chinese
- Traditional Chinese
If you believe Tuist would benefit from supporting a new language, please create a new topic in the community forum to discuss it with the community.
How to help#
Tuist language support is driven from the repository. Contributors update the English source and the translation context, and our translation pipeline produces the localized files automatically.
The workflow is:
- Update the English source content.
- Update the relevant
L10N.mdcontext if translators need more guidance. - Open a pull request with those source changes.
- After the changes land on
main, the translation workflow regenerates the target.pofiles and opens a follow-up pull request with the translated updates.
Do not edit generated localized content directly. Update the English source and the language context instead.
L10N.md structure#
L10N.md files define the context that is sent to the translation model. The easiest way to think about them is as scoped language instructions that can live at different directory levels.
For example:
.
|-- L10N.md
|-- server
| |-- L10N.md
| |-- L10N
| | `-- es.md
| `-- priv
| `-- gettext
| `-- marketing.pot
Directory context#
The translation script walks from the repository root down to the directory being translated and combines every L10N.md file it finds on that path.
In the example above:
L10N.mdapplies globally.server/L10N.mdadds server-specific context.server/L10N/es.mdadds Spanish-only overrides for that same area.
That means you can place context where it belongs:
- repository-wide guidance at the root
- area-specific guidance in a subdirectory
- language-specific guidance in
L10N/<locale>.md