Localization Guide
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
- Create a new file:
assets/languages/fr_FR.json - Copy all keys from
en_US.json - 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
| Code | Language |
|---|---|
en_US | English (United States) |
en_GB | English (United Kingdom) |
fr_FR | French (France) |
fr_CA | French (Canada) |
de_DE | German |
es_ES | Spanish (Spain) |
pt_BR | Portuguese (Brazil) |
it_IT | Italian |
ru_RU | Russian |
uk_UA | Ukrainian |
zh_CN | Chinese (Simplified) |
ja_JP | Japanese |
ko_KR | Korean |
Fallback Order
- Player selected language (e.g.
fr_FR.json) - Base English (
en_US.json) - 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