Skip to content

Translating

Improve a translation or add a language by updating locale files, preserving placeholders and running generation checks.

The Calends interface is available in 14 languages: English, 简体中文, 繁體中文(台灣), 繁體中文(香港), 日本語, 한국어, Español, Français, Deutsch, Português (Brasil), Русский, Türkçe, Bahasa Indonesia and Tiếng Việt. English and Simplified Chinese are the source languages.

shared/locales/<locale>/<namespace>.json

One folder per language, split by module into nested JSON files (settings.json, report.json, notify.json and so on). The same strings are used for reminder messages and MCP responses.

Rules:

  • Placeholders such as {name} and {count} must be kept as they are.
  • Plurals use CLDR categories: { "one": "...", "other": "..." }. Russian also has few and many; Chinese, Japanese, Korean, Indonesian and Vietnamese use only other.
  1. Edit the JSON files in that language’s folder;
  2. run npm run i18n:check to make sure nothing is missing or extra;
  3. open a pull request.

Machine-drafted translations are welcome; a review by a native speaker is even better.

  1. Copy shared/locales/en to a new locale folder and translate it;
  2. add it to LOCALES in shared/i18n.ts;
  3. copy an existing src/locales/<code>.ts and change its JSON import path to the new locale directory;
  4. run npm run i18n to generate files, then npm run i18n:check.

The documentation site itself is available in Simplified Chinese and English.