@stackkit-translate/react
v1.1.0
Published
React bindings for stackkit-translate.
Maintainers
Readme
@stackkit-translate/react
React 17+ bindings for runtime JSON i18n on @stackkit-translate/core. TranslateProvider and useTranslate() hook with optional enterprise licenseKey.
Current release: 1.0.0 — Depends on @stackkit-translate/core ^1.0.0 and @stackkit-translate/enterprise ^1.0.0. See monorepo CHANGELOG.
Live demo: Interactive demo — React panel updates with Angular and vanilla adapters.
Keywords: translate i18n react hooks localization
Install
npm install @stackkit-translate/core @stackkit-translate/react @stackkit-translate/http
# Peer deps: react ^17 || ^18 || ^19, react-dom (same range).Usage — provider + hook
import { TranslateProvider, useTranslate } from "@stackkit-translate/react";
import { createFetchLoader } from "@stackkit-translate/http";
function App() {
return (
<TranslateProvider
lang="en"
fallbackLang="en"
loader={createFetchLoader({ prefix: "/assets/i18n/", suffix: ".json" })}
>
<Greeting />
</TranslateProvider>
);
}
function Greeting() {
const { t, i18n } = useTranslate();
return (
<div>
<h1>{t("DEMO.WELCOME", { name: "Ada" })}</h1>
<button type="button" onClick={() => void i18n.use("fr")}>
Français
</button>
</div>
);
}Usage — in-memory locales
<TranslateProvider
lang="en"
translations={{
en: { HELLO: "Hello" },
fr: { HELLO: "Bonjour" }
}}
>
<Child />
</TranslateProvider>Usage — enterprise licence
import { TRANSLATE_DEMO_LICENSE_KEY } from "@stackkit-translate/enterprise";
<TranslateProvider lang="en" loader={loader} licenseKey={TRANSLATE_DEMO_LICENSE_KEY}>
<App />
</TranslateProvider>API
| Export | Description |
| --- | --- |
| TranslateProvider | Context provider; accepts lang, loader, translations, licenseKey. |
| useTranslate() | { t, i18n } — i18n.use(lang), i18n.getCurrentLang(), etc. |
Related packages
@stackkit-translate/core— shared engine.@stackkit-translate/angular— Angular adapter on the same core.@stackkit-translate/js— vanilla DOM binding.
