@better-intl/core
v0.11.1
Published
Core runtime for better-intl — hash, catalog, interpolation, pluralization
Readme
@better-intl/core
Core runtime for better-intl — hash, catalog, interpolation, pluralization.
Install
npm install @better-intl/coreUsage
Translation runtime
import { createIntlRuntime } from "@better-intl/core";
const runtime = createIntlRuntime("en", {
greeting: "Hello {name}",
items: "{count, plural, one {# item} other {# items}}",
});
runtime.t("greeting", { name: "Alice" }); // "Hello Alice"
runtime.t("items", { count: 3 }); // "3 items"Catalog
import { Catalog } from "@better-intl/core";
const catalog = new Catalog("en");
catalog.load("en", { greeting: "Hello" });
catalog.load("pt-BR", { greeting: "Olá" });
catalog.resolve("greeting", "pt-BR"); // "Olá"
catalog.has("greeting", "en"); // trueInterpolation
Supports ICU-lite syntax — variables, plurals, and select:
import { interpolate } from "@better-intl/core";
interpolate("Hello {name}", { name: "Alice" });
// "Hello Alice"
interpolate("{count, plural, one {# item} other {# items}}", { count: 5 });
// "5 items"
interpolate("{gender, select, male {He} female {She} other {They}}", { gender: "female" });
// "She"Locale negotiation
import { negotiateLocale, parseAcceptLanguage } from "@better-intl/core";
const preferred = parseAcceptLanguage("pt-BR,pt;q=0.9,en;q=0.8");
negotiateLocale(preferred, ["en", "pt-BR", "es"], "en"); // "pt-BR"Stable ID generation
import { generateId } from "@better-intl/core";
generateId({ text: "Hello world", filePath: "src/Hero.tsx" });
// "0rr2b7c" — deterministic, short, collision-resistantAPI
| Export | Description |
|--------|-------------|
| createIntlRuntime(defaultLocale, messages?) | Creates runtime with t() function |
| Catalog | Multi-locale message store |
| generateId(input) | Stable FNV-1a hash for message IDs |
| interpolate(message, values?) | ICU-lite interpolation |
| negotiateLocale(preferred, supported, default) | Best locale from Accept-Language |
| parseAcceptLanguage(header) | Parse header into ordered list |
| DEFAULT_CONFIG | Default BetterIntlConfig |
License
MIT
