الترجمات
قيد التطوير
الإنجليزية هي اللغة المصدر. وكل اللغات الأخرى تتبعها.
ما الذي يُترجم
Section titled “ما الذي يُترجم”| ماذا | المصدر | الترجمات |
|---|---|---|
| خزنة الويب، وتستخدمها كل التطبيقات | apps/web/src/i18n/en.ts |
ar.ts، وtranslations/web/<language>.json |
| إضافة المتصفح | apps/extension/src/i18n.ts |
translations/extension/<language>.json |
| تطبيق سطح المكتب | apps/desktop/src/i18n.ts |
translations/desktop/<language>.json |
| تطبيقات الهاتف | apps/web/src/i18n/phone.ts |
translations/phone/<language>.json |
| الموقع | apps/website/src/i18n/landing/en.json |
<language>.json بجانبه |
| واجهة التوثيق | apps/website/src/content/i18n/en.json |
<language>.json بجانبه |
| صفحات التوثيق | docs/<path>.md |
docs/<language>/<path>.md |
يبقى سجل التغييرات بالإنجليزية. أما تطبيقا iPhone وAndroid الأصليان فيأخذان نصوصهما من كتالوجي الويب والهاتف عبر tools/native-resources، فلا يحتاجان إلى ترجمة خاصة بهما.
تصحيح ترجمة
Section titled “تصحيح ترجمة”افتح Weblate عندما يعمل، أو عدّل الملف في طلب دمج:
- نصوص التطبيقات: عدّل
ar.tsأو الكتلةarفي كتالوج التطبيق، ثم شغّلnode tools/translations/sync.mjs export. يتحقق CI من تطابق الاثنين. - التوثيق: عدّل الصفحة الموجودة تحت
docs/ar/.
يُنفّذ Weblate commits على ملفات translations/ وعلى docs/ar/. شغّل node tools/translations/sync.mjs import لنقل التصحيحات العربية من translations/ إلى كتالوجات TypeScript.
إبقاء التوثيق متزامنًا
Section titled “إبقاء التوثيق متزامنًا”يعرض الأمر node tools/translations/check-docs.mjs الصفحات الإنجليزية التي لا ترجمة لها، ويفشل عند وجود ترجمات فقدت صفحتها الإنجليزية، أو غيّرت قيمة status لصفحة، أو تشير إلى صفحة إنجليزية. الصفحة التي لا ترجمة لها تعرض النص الإنجليزي مع تنبيه، فلا تترك أي صفحة إنجليزية جديدة فجوة في الموقع.
قواعد العربية
Section titled “قواعد العربية”- العربية الفصحى المعاصرة، بسيطة ومباشرة، وبالنبرة نفسها كما في الإنجليزية.
- استخدم الكلمات التي تستخدمها التطبيقات. الكتالوج العربي
apps/web/src/i18n/ar.tsهو المسرد: مثلًا «الخزنة» مقابل vault و«البريد المُقنَّع» مقابل masked email. - تبقى أسماء المنتجات بالأحرف اللاتينية: Octa Pass وTouch ID وWindows Hello وWeblate.
- الأرقام الغربية (0–9)، كما في التطبيقات.
- الأوامر والشيفرة وأسماء الملفات وأسماء الإعدادات مثل
OCTAPASS_PUBLIC_URLوالروابط تبقى كما هي. - الرسائل ذات العدد تحتاج إلى أشكال الجمع الستة كلها: zero وone وtwo وfew وmany وother.
- لا تباعد بين أحرف النص العربي: فهو يكسر اتصال الحروف.
إضافة لغة
Section titled “إضافة لغة”- افتح اللغة في Weblate، أو أضف
translations/<component>/<language>.jsonيدويًا. - أضفها إلى
LOCALESفيapps/web/src/i18n/core.tsمع اتجاهها، وحمّل كتالوجاتها في كل تطبيق. - أضفها إلى
localesفيapps/website/astro.config.mjs. - ترجم ما تستطيع من صفحات التوثيق. وتعود البقية إلى الإنجليزية.
الخطوة 2 تغيير في الشيفرة عن قصد: تُطلق اللغة عندما تكتمل نصوص تطبيقاتها، لأن مدير كلمات المرور المترجم جزئيًا يسهل أن يُساء فهمه.
إعداد Weblate
Section titled “إعداد Weblate”للمشرفين. يشير الملف .weblate بعميل wlc إلى المشروع، ويسرد translations/weblate.json كل مكوّن مع قناع الملف وصيغته وإعداداته. تستخدم صفحات التوثيق مكوّن Markdown واحدًا لكل صفحة، تنشئه إضافة اكتشاف المكوّنات، مع تفعيل Translate front matter values. راجع translations/README.md.