← Concepten

De locale-store

Alles wat reactief is in Langsys hangt aan één klein stukje state: een store met de huidige locale. Stel die in, en elke vertaling in de boomstructuur wordt opnieuw gerenderd. Geen herlading, geen routewijziging.

Bekijken · 0:36 De locale-store

Eén store stuurt alles aan

Je geeft LangsysApp.init() een UserLocaleStore mee: een reactieve waarde met een locale-string. Het is wat jouw framework ook reactief noemt: een Langsys-signal, een Svelte-writable of een Vue-ref. Schrijf ernaar en de SDK bepaalt elke t(), <Translate> en <Phrase> opnieuw voor de nieuwe locale.

import { LangsysApp, createLocaleStore } from 'langsys-js-react';

const locale = createLocaleStore('en-US');   // one reactive store

await LangsysApp.init({
  projectid,
  key,                    // read-only in the browser
  UserLocaleStore: locale,
});

// Later — anywhere in the app:
locale.set('es-ES');      // every t(), <Translate>, <Phrase> re-renders

Elk framework leest het native

De reactieve basis verschilt per framework, maar het model is identiek — één enkele bron van waarheid voor de actieve locale, aangeboden via de idiomen die je al gebruikt.

// React    — a hook returns the current t, re-rendering on change
const t = useT();

// Vue      — a composable ref, auto-unwrapped in templates
const t = useT();

// Svelte   — a store, auto-subscribed with $
$t('Hello, {name}!', 'Greetings', { name });

Wisselen vertaalt direct ter plekke opnieuw

Wanneer de store verandert, haalt de SDK de catalogus van de nieuwe locale op — één verzoek, zonder pagina te herladen — en vertaalt alles opnieuw zodra die binnen is. Tot die tijd behoudt de pagina de taal die ze toonde, zodat niets terugvalt op de brontekst.

Interpolatie en meervouden

Bekijken · 1:14 Meervoudsvormen

Params vullen de {placeholders} in. Zinnen met een aantal blijven in je code gewoon vlak: Langsys genereert tijdens het vertalen de meervoudsvormen van elke taal, en de SDK rendert de bijpassende variant — op het moment van renderen, in de actieve taalregio.

t('You have {count} items', 'Cart', { count });

// You write that one flat sentence. Langsys generates each locale's plural
// forms during translation, and the SDK renders the branch your count matches:
// en → "1 item" / "3 items"   ·   es → "1 artículo" / "3 artículos"

De side-by-side-truc. Elke binding delegeert naar één gedeelde langsys-js-typescript-kern, zodat één store tegelijk React, Vue en Svelte kan aansturen — en zo houdt de vergelijkingsdemo alle drie synchroon vanuit één switcher.

Probeer het live: in de interactieve playground kun je een zin en parameters bewerken, de taal wisselen en de echte SDK opnieuw zien vertalen.

Doorzoek de documentatie en het Learning Center