Page:
Localization Workflow
Pages
Architecture
Backups and Restore
Build and Test
Character Sheet
Codex and Mentions
Container Builds
Contributing
Data and Migrations
Developer Home
Dice Roller
FAQ and Troubleshooting
Getting Started
Graph and Relationships
Home
Images
Languages and Scripts
Local Assistant
Localization Workflow
Party
Privacy and Data
QA Scenarios
Release Process
Repository Map
Rules Wiki and SRD
Search and Summary
Session Journal
Sharing with a Server
Sync Client
Updates
No results
1
Localization Workflow
Joël Jon Moix edited this page 2026-10-27 11:27:07 +01:00
Table of Contents
Localization workflow
English is the source and fallback; nine more catalogs ship with the app. Every interface change — labels, tooltips, accessible names, empty/error/confirmation states, backend messages shown in the UI, installer screens — must be checked in all ten languages before it is complete.
- Use
tr("English text", [params])(orText/Label,localizeLabels) — never translate campaign content, enum values or IDs. - Add the English source and the nine translations to
src/i18n/catalogs/*.json. New IDs arem_+ the first 12 hex digits of the SHA-256 of the English source. Keep{0}-style parameters identical. German uses the informal du. - Run
pnpm i18n:check. It must exit 0: no unregistered UI sources, no missing translations, no parameter mismatches, all installer languages present. - Look at the changed views in English, Italian and any affected locale; check long labels and Arabic right-to-left.
Copying English into another catalog to pass the check is not allowed. Details:
docs/I18N.md.
Using Chronexus
- Getting started
- Session journal
- Codex and mentions
- Graph and relationships
- Character sheet
- Party
- Dice roller
- Search and summary
- Rules wiki and SRD
- Images
- Local assistant
- Languages and scripts
- Backups and restore
- Updates
- Sharing with a server
- Privacy and data
- FAQ and troubleshooting
For developers