Translations
How to translate the CISO Assistant interface and (in-coming) library content
CISO Assistant ships in multiple languages and welcomes new locales and translation improvements from the community.
Translating the interface
Interface strings live in frontend/messages/ as one JSON file per locale (en.json, fr.json, de.json, es.json, …). Each file maps a translation key to the string shown in the UI for that locale.
The recommended workflow today is a direct pull request against those JSON files. The previously-recommended fink web editor is currently broken; until that situation is resolved, please go through Git directly — it's also the cleanest path and what reviewers prefer.
The flow
Pick the file.
frontend/messages/<locale>.json. For a new locale that doesn't exist yet, copyen.jsonto<your-locale>.jsonand start from there.Edit the JSON. Translate the values; keep the keys unchanged. Preserve any substitution tokens (
{count},{name},{date}) verbatim — they're replaced at runtime and must stay intact.Mind the structure. The file is flat key→value JSON. Don't reorder keys (it makes the diff harder to review). Don't add or remove keys — those track string changes on the English side.
Open a PR with a short description of the locale(s) touched and the scope of the change (full pass, partial, fix of a specific section). Reviewers will check for placeholder integrity and obvious register issues.
Translation quality
Match the register. CISO Assistant's English copy is direct and concrete — translations should be too. Avoid stiff calques or marketing flourishes.
Read it aloud. If it sounds artificial, it probably is. Prefer natural verbs and ordinary phrasing in the target language.
Respect terminology. When in doubt, align with the official translation used by the corresponding standard or regulator (ISO publishes localised versions of its standards; ANSSI, NIST, ENISA publish localised material).
Leave placeholders alone. Substitution tokens like
{count}or{name}must be preserved verbatim.
Translating library content
Translating framework requirements, threat names, and other library content is in-coming — the format will be documented here once the tooling stabilises. In the meantime, get in touch through the discussion space if you'd like to contribute on a specific framework.
Related
Changing the language — how end-users switch the UI locale
Contributing code — for related infrastructure changes
Last updated
Was this helpful?