@sonenta/svelte-i18n
v1.1.1
Published
Official Svelte binding for Sonenta i18n — native stores, CDN translations, surfaces, a11y, on @sonenta/i18n-core.
Downloads
380
Maintainers
Readme
@sonenta/svelte-i18n
Official Svelte binding for Sonenta i18n — native
Svelte stores over @sonenta/i18n-core (the shared engine), no svelte-i18n
dependency. Resolves identically to @sonenta/react-i18next / @sonenta/vue-i18n.
Beta (0.9.x). Promoted to
1.0.0after the Svelte demo validates.
npm install @sonenta/svelte-i18n i18next svelte// src/lib/i18n.ts
import { createSonentaI18n } from "@sonenta/svelte-i18n";
export const i18n = createSonentaI18n({
token: "your-api-key",
projectUuid: "your-project-uuid",
defaultLocale: "fr",
});<script>
import { i18n } from "$lib/i18n";
const { t, ready, language, availableLanguages } = i18n;
</script>
{#if $ready}
<h1>{$t("home.title")}</h1>
<p>{$t("home.greeting", { name: "Ada" })}</p>
{/if}
<select value={$language} on:change={(e) => i18n.setLanguage(e.currentTarget.value)}>
{#each $availableLanguages as l}
<option value={l.code}>{l.native_name ?? l.code}</option>
{/each}
</select>createSonentaI18n(config) returns a headless store bundle: t, ready,
language, availableLanguages, surface, plainLanguage, aria, alt
(Svelte Readable stores — $t, $ready, …), plus setLanguage,
setSurface, setPlainLanguage, dir/nativeName/languageMeta, i18n
(engine escape hatch), and destroy().
Built on the same engine as every Sonenta binding — surfaces, a11y,
plurals, missing-key streaming, and the key registry behave identically.
Add-ons (@sonenta/feedback, …) ship Svelte adapters separately.
License
MIT © Sonenta
