Skip to content

Internationalization

Wayward Crown supports 15 languages, with the ability to add more through plugins.


Built-in Languages

Code Language
en English
zh_TW 繁體中文
zh_CN 简体中文
ja 日本語
ko 한국어
ru Русский
de Deutsch
fr Français
es Español
pt_BR Português (Brasil)
it Italiano
pl Polski
tr Türkçe
th ภาษาไทย
vi Tiếng Việt

Language File Format

Language files are in JSON format, stored in the game/lang/ directory:

{
  "window_title": "Wayward Crown",
  "log_defeated_enemy": "{adv} defeated {enemy} (Gold: {gold} XP: {xp})",
  "building_market": "Market",
  "class_warrior": "Warrior"
}
  • Supports {placeholder} dynamic substitution
  • Missing translation keys automatically fall back to English
  • Switching languages takes effect immediately without a restart

Language Detection Order

  1. --lang CLI argument (highest priority)
  2. Language manually selected by the user in the settings menu
  3. Steam client language (auto-detected)
  4. English (default fallback)

Adding Languages (Plugins)

Adding a language via a plugin only requires plugin.json and a translation file:

plugins/my_lang/
├── plugin.json
└── lang/
    └── xx.json    # Your language code

The language code can be any string (e.g., ja, ko, my_custom) and will automatically appear in the language list in the settings menu.


Campaign Internationalization

Campaign text can use the i18n: prefix to reference translation keys:

{
  "title": "i18n:tut_level1_title",
  "intro": "i18n:tut_level1_intro"
}

The game automatically resolves translation keys based on the current language. If a matching translation is not found, the key name is displayed as-is.