← المفاهيم

مخزن اللغة (locale store)

كل ما هو تفاعلي في Langsys يعتمد على قطعة صغيرة واحدة من الحالة: مخزن يحتفظ باللغة الحالية. عيّنها، وستُعاد تهيئة كل ترجمة في الشجرة. بلا إعادة تحميل ولا تغيير في المسار.

شاهد · 0:36 مخزن اللغات المحلية

مخزن واحد يحرّك كل شيء

تمرّر إلى LangsysApp.init() قيمة UserLocaleStore — وهي قيمة تفاعلية تحمل سلسلة نصية للغة المحلية. وهي أيًّا كان ما يسميه إطار عملك تفاعليًا: إشارة Langsys، أو writable في Svelte، أو ref في Vue. اكتب فيها وسيعيد SDK حلّ كل t() و<Translate> و<Phrase> وفق اللغة المحلية الجديدة.

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

كل إطار عمل يقرؤها بشكل أصلي

تختلف آلية التفاعلية من إطار عمل إلى آخر، لكن النموذج واحد — مصدر وحيد للحقيقة للغة المحلية النشطة، يُعرض عبر الأساليب التي تستخدمها بالفعل.

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

التبديل يعيد الترجمة في مكانها

عندما يتغيّر المخزن، يجلب SDK فهرس اللغة الجديدة — بطلب واحد ودون إعادة تحميل الصفحة — ويعيد ترجمة كل شيء عند وصوله. وإلى ذلك الحين تحتفظ الصفحة باللغة التي كانت تعرضها، فلا يعود أي شيء إلى النص الأصلي.

الاستيفاء وصيغ الجمع

شاهد · 1:14 صيغ الجمع

تملأ المعاملات قيم {placeholders}. وتبقى الجمل التي تتضمن عددًا بصيغة واحدة في شيفرتك: إذ تولّد Langsys صيغ الجمع لكل لغة أثناء الترجمة، وتعرض الحزمة SDK الصيغة المطابقة — وقت العرض، وفق اللغة النشطة.

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"

حيلة العرض جنبًا إلى جنب. تفوّض كل واجهة ربط عملها إلى نواة langsys-js-typescript مشتركة واحدة، بحيث يمكن لمخزن واحد تشغيل React وVue وSvelte في الوقت نفسه — وهذا بالضبط ما يجعل العرض التوضيحي للمقارنة يُبقي الثلاثة متزامنة تمامًا من مبدّل واحد.

جرّبه مباشرة: تتيح لك ساحة التجربة التفاعلية تعديل العبارة والمعاملات، وتبديل اللغة، ومشاهدة SDK الحقيقية وهي تعيد الترجمة.

ابحث في المستندات ومركز التعلّم