Translating Drydock
Translate the Drydock UI through Crowdin, or contribute README translations through a repository pull request.
Drydock's interface is translated through Crowdin, and the translation project is open to everyone. English is the source language; every other locale is community-maintained. Translated README files are maintained separately in the repository.
Languages
Drydock ships with 16 languages beyond English: Arabic, German, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Brazilian Portuguese, Russian, Turkish, Ukrainian, Vietnamese, Simplified Chinese, and Traditional Chinese.
You switch language in the app under Config > Appearance. See UI configuration for the full locale list.
How to contribute
For UI translation suggestions, you don't need a GitHub account, a checkout, or any build tooling. Use Crowdin rather than editing the per-language JSON files directly.
- Create a free account and open the Drydock project.
- Pick your language and start translating. Preserve interpolation placeholders such as
{name}exactly as written in the source string. - Save your suggestions. That's the whole loop.
The sync workflow opens a pull request with translated strings. After review and merge, those translations can ship in a release.
Requesting a new language
Want a language that isn't listed yet? Drop a comment on the translations announcement, and we'll add it to Crowdin so you can start translating.
How it works under the hood
The English UI source strings live in ui/src/locales/en/. The UI-only mapping in crowdin.yml connects those JSON files to the 16 non-English locale catalogs. The Crowdin GitHub Action uploads source strings and checked-in translations, then downloads translations into a pull request against the integration branch.
README translations
Translated README.<locale>.md files are maintained in the repository, not through Crowdin. They currently cover German, Spanish, French, Polish, Brazilian Portuguese, and Simplified Chinese. To contribute, update the translated file against the English README.md, preserve its links and structure, and open a pull request following the contribution guide. Repository tests check translated README structure and release information.
Maintainer feature changes
When a feature adds English source keys, maintainers include matching keys in every configured locale in the same reviewed feature PR. The locale-parity tests require complete namespaces and keys. Checked-in translations are not generated Crowdin output and still need wording review; existing translations should not be replaced with English placeholders.
The sync workflow checks out the highest dev/vX.Y integration branch before it uploads anything, so it cannot synchronize keys from an unmerged feature branch. After the feature PR merges, upload_sources and upload_translations make its checked-in source strings and translation candidates available to Crowdin. download_translations then brings Crowdin output back through a separate reviewed PR. Uploading a candidate does not approve it or guarantee that it replaces an existing Crowdin translation.