Internationalisation

Kubuno ships in 13 languages, RTL included. The core and every module share a single i18next instance exposed by the SDK.

Supported languages #

en · fr · es · pt · it · de · el · ru · ar (RTL) · he (RTL) · hi · zh · ja.

A module's translations #

A module embeds its strings (often inline) and registers them at startup under its own namespace:

// frontend/src/i18n.ts
import { registerModuleTranslations } from '@kubuno/sdk'

const fr = { new_event: 'Nouvel événement' /* … */ }
const en = { new_event: 'New event' /* … */ }
// … les 13 langues

registerModuleTranslations('calendar', { en, fr, es, pt, it, de, el, ru, ar, he, hi, zh, ja })
// dans un composant
const { t } = useTranslation()
<button>{t('calendar:new_event')}</button>

RTL #

The SDK sets document.documentElement.dir = 'rtl' for ar and he. Use logical properties (start/end) rather than left/right — automatic with Tailwind.

Note

The language preference is remembered (cookie) and mirrored into the core's user preferences.