Skip to content

Localization

mewzers edited this page Mar 27, 2026 · 1 revision

8. Localization

Oxide supports 12 interface languages.

Supported languages

  • French
  • English
  • Spanish
  • Italian
  • German
  • Portuguese
  • Russian
  • Chinese
  • Japanese
  • Korean
  • Arabic
  • Hindi

UI translation structure

UI translations are loaded from:

  • src/i18n/common.json
  • src/i18n/<lang>.json

The common.json layer contains strings shared across all languages to reduce duplication.

Debug translation structure

Debug strings are localized separately through:

  • src/debug/i18n/common.json
  • src/debug/i18n/<lang>.json

This keeps debug output independent from UI text.

Runtime selection

The selected UI language is stored in application settings and restored on startup.

Debug logging also performs system-language detection on Windows for console lifecycle logs.

Adding or updating a language

Recommended approach:

  1. Add or update the UI JSON file in src/i18n/
  2. Add or update the debug JSON file in src/debug/i18n/
  3. Put truly shared strings in common.json
  4. Keep user-facing text in JSON rather than hardcoding it in Rust
  5. Verify UTF-8 encoding

Clone this wiki locally