Checkmate
Settings & configuration

Language and localization

Switch the interface language and contribute new translations.

The Checkmate UI ships translations for 17 languages. The text is loaded by i18next from JSON files in client/src/locales/.

Supported languages

Arabic (ar), Czech (cs), German (de), English (en), Spanish (es), Finnish (fi), French (fr), Japanese (ja), Portuguese — Brazil (pt-BR), Russian (ru), Thai (th), Turkish (tr), Ukrainian (uk), Vietnamese (vi), Chinese — Simplified (zh-CN), Chinese — Traditional (zh-TW).

Switch languages

A language dropdown (with country flags) sits in the top bar on authenticated pages and on the login/register screens. The selection is persisted in the Redux ui.language state and applied through i18n.changeLanguage, so the choice survives reloads for the current browser.

Contribute a translation

en.json is the source file. Every other locale mirrors the same key structure.

  1. Copy client/src/locales/en.json to a new file named after the ISO code — e.g. it.json for Italian, pt-PT.json for European Portuguese.
  2. Translate the values only. Keep all keys untouched.
  3. Start the dev server (npm run dev in client/), select the language from the selector, and verify strings render correctly in context.
  4. Open a pull request. The maintainers add the new locale to the selector.

Missing keys fall back to English. Keeping en.json as the reference file is important — other locales are only loaded if their keys exist there first.

See also

On this page