Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

i18n

Irodori Table keeps desktop UI translations in apps/desktop/src/i18n.

Supported Locales

  • en - English, the fallback locale.
  • ja - Japanese.

The language is selected from Settings -> General -> Language. The selected locale is saved in local storage as irodori.locale.v1 and is also included in Settings JSON as locale.

Adding Or Updating Text

  1. Add the English source string to apps/desktop/src/i18n/locales/en.ts.
  2. Add the Japanese translation to apps/desktop/src/i18n/locales/ja.ts.
  3. Use createTranslator(locale) or translate(key, options) at the UI boundary.
  4. Add or update unit coverage in apps/desktop/src/tests/unit/i18n/i18n.test.ts.

English is the source of truth for message keys. Japanese is typed against the same key set, so missing translations fail during TypeScript checks instead of rendering a blank label.

Interpolated values use {name} style placeholders:

translate("settings.theme.colorMode.customDescription", {
  locale: "ja",
  values: { name: "Dark+" },
});

Keep translation calls near the React component boundary. Business logic, storage, and query execution code should store stable IDs or raw data, not localized display text.