Skip to content

i18n Translations

Manage internationalization (i18n) translation keys across multiple languages with consistency and reduced duplication.

Translation files across languages require:

  • Duplicate keys — Same keys repeated in each language file
  • Inconsistency — Easy to miss keys in some languages
  • Hard to maintain — Adding a key requires updating 4+ files
uiTranslations [
template { key, lang, text }
map (t) = {
key = t.key
language = t.lang
value = t.text
category = "ui"
lastUpdated = "2025-11-25"
}
// Navigation
"nav.home", "en", "Home"
"nav.home", "pt", "Início"
"nav.home", "es", "Inicio"
"nav.home", "fr", "Accueil"
// Buttons
"btn.save", "en", "Save"
"btn.save", "pt", "Salvar"
"btn.save", "es", "Guardar"
"btn.save", "fr", "Enregistrer"
]

Consistency — All languages have the same keys
Easy to add — New language = new rows
Metadata — Attach category, lastUpdated, etc.
Scalability — Handle thousands of keys

errorMessages [
template { code, lang, message, severity }
map (err) = {
errorCode = err.code
language = err.lang
message = err.message
severity = err.severity
helpUrl = "https://docs.example.com/" + err.lang + "/errors/" + err.code
}
"AUTH_001", "en", "Invalid credentials", "error"
"AUTH_001", "pt", "Credenciais inválidas", "error"
"AUTH_001", "es", "Credenciales inválidas", "error"
]

Perfect for:

  • Multi-language applications
  • Translation management
  • Error message catalogs
  • Email templates
  1. Save to i18n.jsson
  2. Run: jsson -i i18n.jsson
  3. Manage your translations!

Translate once, use everywhere! 🌍