← Konsep

Locale store

Semua yang reaktif di Langsys bertumpu pada satu state kecil: sebuah store yang menyimpan locale saat ini. Atur nilainya, dan setiap terjemahan di dalam tree dirender ulang. Tanpa reload, tanpa perubahan rute.

Tonton · 0:36 Penyimpanan locale

Satu store menggerakkan semuanya

Anda memberikan sebuah UserLocaleStore kepada LangsysApp.init() — nilai reaktif yang menyimpan string locale. Bentuknya mengikuti apa pun yang disebut reaktif oleh framework Anda: signal Langsys, writable Svelte, atau ref Vue. Tulis ke nilai tersebut dan SDK akan menyelesaikan ulang setiap t(), <Translate>, dan <Phrase> terhadap locale yang baru.

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

Setiap framework membacanya secara native

Mekanisme reaktif berbeda di setiap framework, tetapi modelnya identik — satu sumber kebenaran untuk locale aktif, yang dihadirkan melalui idiom yang sudah Anda gunakan.

// 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 });

Berganti bahasa langsung menerjemahkan ulang di tempat

Saat store berubah, SDK mengambil katalog locale baru — satu permintaan, tanpa memuat ulang halaman — lalu menerjemahkan ulang semuanya begitu katalog tiba. Sampai saat itu, halaman tetap menampilkan bahasa sebelumnya, sehingga tidak ada yang kembali ke teks sumber.

Interpolasi & bentuk jamak

Tonton · 1:14 Pluralisasi

Params mengisi {placeholders}. Kalimat dengan jumlah tetap ditulis datar di kode Anda: Langsys menghasilkan bentuk jamak setiap bahasa saat penerjemahan, dan SDK merender cabang yang sesuai — saat render, dalam locale yang aktif.

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"

Trik berdampingan. Setiap binding mendelegasikan ke satu inti langsys-js-typescript bersama, sehingga satu store dapat menggerakkan React, Vue, dan Svelte sekaligus — itulah persis cara demo perbandingan menjaga ketiganya tetap selaras dari satu pengalih.

Coba langsung: playground interaktif memungkinkan Anda mengedit frasa dan parameter, mengganti lokal, dan melihat SDK sungguhan menerjemahkan ulang.

Cari di dokumen & Learning Center