@multiplatform.one/i18n
v7.4.1
Published
Internationalization utilities and hooks for multiplatform.one
Readme
@multiplatform.one/i18n
Internationalization for multiplatform.one: i18next config factory, language detection/persistence, a Frappe translation backend, and locale-aware formatters.
Install
pnpm add @multiplatform.one/i18nPeers: i18next, react (pair with react-i18next in the app).
What it owns
createI18nConfig(options)— builds the i18next config fromlanguages,namespaces,defaultLanguage,defaultNamespace, bundledresources, and an optional Frappe backendcreateFrappeBackend(options)— loads translations from a Frappe server- Language handling —
useLanguage(),detectLanguage(),persistLanguage()/getPersistedLanguage()(cookie-based, SSR-safe) - Formatters —
useFormatDate,useFormatNumber,useFormatCurrency(+ non-hookcreateDateFormatter,createNumberFormatter,createCurrencyFormatter)
What it must not do
- No UI and no translation content — apps own their resources/namespaces
Usage
import { createI18nConfig } from "@multiplatform.one/i18n";
import common from "./locales/en/common.json";
export const i18nConfig = createI18nConfig({
languages: ["en", "te"],
namespaces: ["common"],
defaultLanguage: "en",
defaultNamespace: "common",
resources: { en: { common } },
});import { useLanguage, useFormatCurrency } from "@multiplatform.one/i18n";
const [language, setLanguage] = useLanguage();
const formatCurrency = useFormatCurrency();License
Apache-2.0
