Instruction file imported from nuxeo/nuxeo-elements (
.github/instructions/i18n.instructions.md). Copyright stays with the author.
i18n Message Files
File Structure
ui/i18n/messages.json— English (source of truth) — the only file to edit manuallyui/i18n/messages-<locale>.json— Translated files managed by Crowdin
Rules
- Only edit
messages.json— allmessages-*.jsonfiles are synced via Crowdin daily and must NOT be edited manually - Keys are flat dot-notation strings (e.g.,
"addToCollectionButton.dialog.add": "Add") - Keys are sorted alphabetically — insert new keys in the correct position
- Values are plain strings; use
{0},{1}for interpolation placeholders
Usage in Components
- JS:
this.i18n('key')orthis.i18n('key', param1, param2) - Templates:
[[i18n('key')]]or[[i18n('key', param1)]] - Requires
I18nBehavioron the element
Crowdin
- Config:
crowdin-conf.ymlat repo root - Sync workflow:
.github/workflows/crowdin.yamlruns daily - 16 supported locales: ar, cs, de, es-ES, eu, fr, he, id, it, ja, nl, pl, pt-PT, sv-SE, zh-CN