@cartridge-engine/i18n
v1.0.0
Published
Type-safe internationalization (i18n) for Ink apps — LanguageProvider, useI18n, and the make-language-type CLI
Maintainers
Readme
@cartridge-engine/i18n
Type-safe internationalization for Ink apps — a standalone package, imported on demand.
Install
npm install @cartridge-engine/i18nRuntime
LanguageProvider
Context provider for internationalization (i18n). Loads translation resources either from a directory of {locale}.json files (via the path prop) or from a pre-built inline object (via resources).
<LanguageProvider
resources={{ en: { hello: 'Hello' }, zh: { hello: '你好' } }}
defaultLanguage="en"
>
<App />
</LanguageProvider>useI18n
Access the i18n API from within a component tree wrapped by LanguageProvider. Returns { t, setLanguage, getLanguages, mergeLanguage, currentLanguage, setDefaultContext }.
const { t } = useI18n();
<Text>{t('hello')}</Text>CLI — make-language-type
Generate type-safe i18n bindings from a directory of {locale}.json files:
npx make-language-type <source-dir> <output-dir> [--watch] [--debounce <ms>] [--from <pkg>]--from defaults to @cartridge-engine/i18n.
Types
LanguageProviderPropsI18nContextValue
