@vielzeug/i18nit
v3.0.4
Published
--- description: Minimal i18n runtime with typed keys, deterministic locale fallback, and framework-agnostic reactive subscriptions. package: i18nit category: i18n keywords: [internationalization, translations, pluralization, locale, i18n, l10n, async-loa
Readme
description: Minimal i18n runtime with typed keys, deterministic locale fallback, and framework-agnostic reactive subscriptions. package: i18nit category: i18n keywords: [internationalization, translations, pluralization, locale, i18n, l10n, async-loading] related: [stateit, routeit, fetchit] exports: [createI18n]
@vielzeug/i18nit
Minimal i18n runtime with typed keys, deterministic locale fallback, and framework-agnostic reactive subscriptions.
Package: @vielzeug/i18nit · Category: I18n
Key exports: createI18n
When to use: Minimal i18n runtime with typed keys, deterministic locale fallback, and framework-agnostic reactive subscriptions.
Related: @vielzeug/stateit · @vielzeug/routeit · @vielzeug/fetchit
@vielzeug/i18nit is part of Vielzeug and ships as a zero-dependency TypeScript package with ESM+CJS output.
Installation
pnpm add @vielzeug/i18nit
npm install @vielzeug/i18nit
yarn add @vielzeug/i18nitQuick Start
import { createI18n } from '@vielzeug/i18nit';
import { createFormatter } from '@vielzeug/i18nit/format';
const i18n = createI18n({
locale: 'en',
fallback: 'en',
catalogs: {
en: {
greeting: 'Hello, {name}!',
inbox: {
zero: 'No messages',
one: 'One message',
other: '{count} messages',
},
},
de: () => import('./locales/de.json').then((m) => m.default),
},
});
await i18n.preload('de');
await i18n.setLocale('de');
i18n.t('greeting', { name: 'Alice' });
i18n.tp('inbox', 3);
const fmt = createFormatter(i18n);
fmt.currency(19.99, 'EUR');Documentation
License
MIT © Helmuth Saatkamp — part of the Vielzeug monorepo.
