Skip to content

Internationalization

Hyacinthe-primus edited this page Nov 12, 2026 · 7 revisions

Internationalization

File Converter Pro ships with French and English as built-in translations (languages/fr.json, languages/en.json). The languages/ folder also contains these community/external translation files, which auto-load on startup:

File Language
zh.lang 🇨🇳 简体中文 (Chinese)
ru.lang 🇷🇺 Русский (Russian)
it.lang 🇮🇹 Italiano (Italian)
tr.lang 🇹🇷 Türkçe (Turkish)

Two additional files are included as examples/templates: en-revisited.lang and blank.lang. All .lang files in the folder are auto-loaded, so these may also appear in the language list. legacy_aliases.json is an optional alias map that keeps older translation keys working.

Language files live in:

  • Source run: src/languages/
  • Frozen onedir build: _internal/languages/

Anyone can add a new language without touching the source code:

  1. Create a .lang file (UTF-8 JSON) using an existing language file as reference.
  2. Place it in the languages/ folder for your build (src/languages/ from source, _internal/languages/ in a frozen build).
  3. The new language is detected and listed in Settings automatically on next launch.
  4. When translating, keep every key that exists in fr.json (the source language): a structural test (tests/test_architecture.py) checks all eight bundled language files for missing keys, and all strings used in the code as named keys must exist in fr.json.

See CONTRIBUTING.md for a step-by-step guide.

Clone this wiki locally