كيف يعمل Langsys
يحوّل Langsys الجمل الموجودة أصلًا في واجهتك إلى نظام الترجمة. لا يوجد ملف مفاتيح تحتاج إلى صيانته ولا خطوة استخراج وقت البناء — فالعبارة في شيفرتك هي مفتاح البحث والنص الافتراضي باللغة الأساسية في آن واحد.
العبارة هي المفتاح
في التدويل التقليدي (i18n) تبتكر معرّفًا لكل سلسلة نصية، وتخزّن النص الفعلي في ملف اللغة المحلية، وتُبقي الاثنين متزامنين إلى الأبد. أما Langsys فتلغي هذه الوساطة: تكتب الجملة الفعلية، وتصبح هذه الجملة هي المفتاح.
// Traditional i18n — indirection + a keys file to maintain
t('greetings.hello'); // what does this say? open en.json to find out
// en.json
{ "greetings": { "hello": "Hello, {name}!" } } // Langsys — the phrase IS the key and the base-language default
t('Hello, {name}!', 'Greetings', { name }); ولأن النص المصدر هو المفتاح نفسه، فإن العبارة ذاتها مهما تكرر ورودها في تطبيقك تُعدّ مدخلاً واحداً قابلاً للترجمة — إذ يتم منع التكرار تلقائياً — وأي لغة لم تُترجم بعد ترجع ببساطة إلى النص المصدر. ولا وجود لعنصر نائب لمفتاح مفقود.
الوقت الفعلي والمستمر
لا تحتاج أبدًا إلى تشغيل أمر استخراج. أثناء عرض تطبيقك، يكتشف SDK العبارات التي يستخدمها. وتُترجم العبارات الجديدة آليًا في الخلفية إلى اللغات المستهدفة في مشروعك، ثم يجلب تطبيقك الفهرس المكتمل. أطلق جملة جديدة اليوم، وستُترجم بعد وقت قصير، دون الحاجة إلى إعادة نشر حزمة اللغة.
دورة الحياة
- تعرض واجهة المستخدم لديك العبارات باستخدام
t()و<Translate>وما شابههما. - في بيئة التطوير، يتيح مفتاح الكتابة لـ SDK اكتشاف أي عبارات جديدة وتسجيلها.
- تترجمها Langsys آليًا إلى كل لغة مستهدفة في مشروعك.
- في بيئة الإنتاج، يجلب مفتاح القراءة فقط الفهرس النهائي للغة المستخدم.
- غيّر اللغة المحلية وستُعاد عرض الواجهة بأكملها مترجمةً — فورًا ودون إعادة تحميل.
مقارنة بالتدويل التقليدي (i18n). لا ملف en.json للتحرير يدويًا، ولا طبقة وسيطة مثل t('some.nested.key')، ولا خطوة استخراج في عملية البناء، ولا بدائل لمفاتيح مفقودة — فالجملة الأصلية هي دائمًا البديل.