Datapacks are built for multi-language support from day one. JSON data files never contain raw display text — they only contain translation keys. The actual words live in language files, one per supported language.

How It Works

Item JSON file:
  "displayName": "items.materials.stellar_forge.ores.xenite"
                        ↓
Game looks up key in active language file:
  en_US.json → "Xenite Ore"
  fr_FR.json → "Minerai de Xénite"
  de_DE.json → "Xeniterz"
                        ↓
Player sees text in their selected language

Setting Up Your First Language

Even if you only ever support English, you still need en_US.json. This is the base language all others fall back to.

{
  "translation.key.here": "English text here",
  "another.key": "More English text"
}

Adding a Second Language

  1. Create a new file: assets/languages/fr_FR.json
  2. Copy all keys from en_US.json
  3. Translate the values — keep all keys identical
{
  "items.materials.stellar_forge.ores.xenite": "Minerai de Xénite",
  "items.materials.stellar_forge.ores.xenite.desc": "Un cristal mystérieux d'origine inconnue.",
  "skills.category.stellar_forge.crafting.forging": "Forge"
}

Supported Locale Codes

CodeLanguage
en_USEnglish (United States)
en_GBEnglish (United Kingdom)
fr_FRFrench (France)
fr_CAFrench (Canada)
de_DEGerman
es_ESSpanish (Spain)
pt_BRPortuguese (Brazil)
it_ITItalian
ru_RURussian
uk_UAUkrainian
zh_CNChinese (Simplified)
ja_JPJapanese
ko_KRKorean

Fallback Order

  1. Player selected language (e.g. fr_FR.json)
  2. Base English (en_US.json)
  3. Raw key displayed as-is — a useful debugging signal for typos

Using Comments to Organize Language Files

Use _comment_ keys to section off your language file. The game ignores any key beginning with _comment_:

{
  "_comment_Ores": "",
  "items.materials.stellar_forge.ores.uranium": "Uranium Ore",
  "items.materials.stellar_forge.ores.xenite":  "Xenite Ore",

  "_comment_Ingots": "",
  "items.materials.stellar_forge.ingots.uranium": "Uranium Ingot",

  "_comment_Skills": "",
  "skills.category.stellar_forge.crafting.forging": "Forging"
}

Tips

  • Never translate keys — only translate values
  • Respect character limits — some UI elements clip very long text
  • Keep descriptions to one or two sentences
  • Always test by switching the game language before releasing
  • Use native speakers for final review — machine translation is fine for prototyping