تجاوز إلى المحتوى الرئيسي
الإصدار: 1.x

المساهمة في الترجمات

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

الأماكن الأربعة التي تحتوي على الترجمات

يوزّع WCPOS النصوص القابلة للترجمة على أربعة مستودعات، لكل منها مسار مساهمة خاص به. يمكنك المساهمة في أي منها بشكل مستقل.

إضافة WordPress (نصوص PHP)

إشعارات الإدارة، وتسميات صفحة الإعدادات، ورسائل الخطأ، وواجهة WP Admin. تُترجم عبر translate.wordpress.org باستخدام GlotPress — مسار الترجمة القياسي في WordPress. لا يتطلب الأمر أي برمجة.

تطبيق POS (React/i18next)

كل ما يراه أمين الصندوق عند نقطة البيع — الأزرار، ومربعات الحوار، ورسائل الخطأ، وواجهة سلة التسوق والدفع. توجد ملفات الترجمة في مستودع wcpos/monorepo؛ وتُقدَّم المساهمات عبر طلبات السحب. يُستحسن الإلمام الأساسي بـ GitHub.

شاشات WP Admin المبنية على React

صفحات الإعدادات الأحدث المبنية على React، ومحرر المتاجر، والقوالب، والإضافات، والسجلات. توجد الترجمات في wcpos/woocommerce-poswoocommerce-pos-pro لشاشات Pro) كملفات JSON. يُستحسن الإلمام الأساسي بـ GitHub.

هذه الوثائق (Docusaurus)

موقع الوثائق الذي تقرأه الآن. توجد ملفات MDX المترجمة في مستودع wcpos/docs ضمن i18n/<locale>/. تُقدَّم المساهمات عبر طلبات السحب (pull request). من المفيد معرفة Markdown.

سلاسل نصوص إضافة WordPress (أسهل نقطة للبدء)

إذا لم يسبق لك ترجمة إضافة WordPress من قبل، فهذا هو المسار الأسهل:

  1. ابحث عن لغتك على translate.wordpress.org/projects/wp-plugins/woocommerce-pos/ — لكل لغة يدعمها WordPress مشروع فرعي خاص بها.
  2. سجّل الدخول بحسابك على WordPress.org (نفس الحساب الذي تستخدمه للتعليق في منتديات الدعم). أنشئ حسابًا مجانيًا إن لم يكن لديك واحد.
  3. اختر مشروعًا فرعيًا — ستجد عادةً:
    • الإصدار المستقر (أحدث إصدار) — السلاسل النصية المضمّنة في الإصدار العام الحالي. تصبح الترجمات هنا فعّالة على كل موقع يُحدّث الإضافة.
    • التطوير (trunk) — السلاسل النصية في الإصدار القادم. ترجِم هذه السلاسل لتكون جاهزة قبل صدور الإصدار التالي.
    • ملف التعريف للإصدار المستقر / ملف التعريف للتطوير — وصف الإضافة الذي يظهر على WordPress.org.
  4. أرسل الترجمات سلسلة نصية واحدة في كل مرة عبر واجهة GlotPress. تبدأ بحالة مقترحة حتى يوافق عليها محرر ترجمة المشروع (PTE).
  5. كن PTE من خلال التقدم بطلب عبر قناة WordPress polyglots على Slack بعد الحصول على عدد من الترجمات المعتمدة. يمكن لأعضاء PTE اعتماد الترجمات مباشرةً دون انتظار المراجعة.

بمجرد اعتماد ترجماتك، يتم توزيعها تلقائيًا على جميع مستخدمي WCPOS في لغتك — دون الحاجة إلى تعديلات في الكود أو طلبات سحب.

ترجمات تطبيق POS (واجهة React)

واجهة أمين الصندوق هي تطبيق React يستخدم i18next للترجمات، وأُعيد بناؤها في الإصدار v1.8.8. تُحفظ ملفات الترجمة بصيغة JSON في مستودع wcpos/monorepo (نواة POS متعددة المنصات).

يتضمن الإعداد ميزتين مفيدتين:

  • التحميل عند الطلب — يتم جلب اللغة النشطة فقط أثناء التشغيل (من شبكة CDN الخاصة بـ jsDelivr)، لذا لا تؤدي إضافة لغة جديدة إلى زيادة حجم التنزيلات للمستخدمين الآخرين.
  • الرجوع الإقليمي — تستخدم أسماء ملفات JSON في i18next الشرطات السفلية: pt_BR يرجع إلى pt، وes_MX يرجع إلى es، وهكذا. تستخدم الوثائق ووسوم اللغة على الويب الشرطات بدلاً من ذلك، مثل pt-BR أو es-MX. استخدم صيغة الشرطة السفلية لملفات ترجمة JSON وصيغة الشرطة حيث تكون وسوم اللغة مطلوبة.

للمساهمة:

  1. ابحث عن ملف المصدر en في wcpos/monorepo ضمن مجلد حزم الترجمة (يختلف المسار الدقيق — الأسهل هو بدء ترجمة جديدة عبر فتح issue في المستودع والسؤال عن الملف المطلوب نسخه).
  2. انسخ en.json إلى <your-locale>.json وفقًا لاصطلاح i18next JSON للغات المحلية (fr.json، de.json، pt_BR.json، إلخ؛ استخدم الشرطات السفلية لأسماء الملفات الإقليمية).
  3. ترجم القيم، مع ترك المفاتيح وأي عناصر نائبة {{interpolation}} كما هي.
  4. أرسل طلب سحب (pull request) إلى المستودع الأحادي (monorepo). سيتحقق نظام CI من بنية JSON.

للتعديلات البسيطة على ترجمة موجودة، يمكنك تحرير ملف JSON مباشرة على GitHub عبر أيقونة القلم — سيفتح GitHub طلب سحب (PR) نيابةً عنك.

شاشات React في WP Admin

تستخدم إعدادات إدارة WordPress، ومحرر المتاجر، وصفحة القوالب، وكتالوج الإضافات، والسجلات نفس نمط الترجمة المستخدم في تطبيق POS، لكنها موجودة في مستودعين منفصلين:

  • شاشات الإدارة المجانيةwcpos/woocommerce-pos المستودع، في packages/settings/src/translations/locales/<locale>/wp-admin-settings.json (ومسارات مشابهة لحزم الإدارة الأخرى؛ استخدم مجلدات اللغة بالشرطة السفلية مثل pt_BR لملفات JSON الإقليمية).
  • شاشات إدارة Prowcpos/woocommerce-pos-pro المستودع، بنفس النمط (مثل packages/store-edit/src/translations/locales/<locale>/wp-admin-store-edit.json، مع مجلدات اللغة بصيغة الشرطة السفلية مثل pt_BR).

طريقة المساهمة هي نفسها المتبعة في تطبيق POS: انسخ en.json إلى <your-locale>.json، ترجمه، وافتح طلب سحب PR.

التوثيق (هذه الصفحات)

يستخدم موقع التوثيق إعداد i18n القياسي في Docusaurus. توجد ملفات MDX المترجمة في مستودع wcpos/docs ضمن i18n/<locale>/docusaurus-plugin-content-docs/current/. كل صفحة إنجليزية في versioned_docs/version-1.x/ لها نظير في كل لغة ترجمة مفعّلة.

يحتوي الموقع بالفعل على أدوات ترجمة آلية — يوجد سكريبت pnpm translate يستخدم واجهات برمجة تطبيقات OpenAI / Anthropic لإنشاء مسودات ترجمة من الإنجليزية، ثم يقوم مراجع بشري بتنقيحها. لذا فإن طريقة المساهمة المعتادة هي:

  1. اختر صفحة تحتاج إلى ترجمة أو تحسين. يُظهر محدد اللغة في تذييل الموقع اللغات النشطة حاليًا.
  2. عدّل ملف MDX المقابل ضمن i18n/<locale>/... مباشرةً على GitHub عبر رابط تعديل هذه الصفحة في أسفل كل صفحة.
  3. أرسل طلب سحب (pull request). سيتحقق المراجعون من دقة الترجمة ويدمجونها.

للمساهمات الأكبر (ترجمة قسم كامل أو بدء لغة جديدة)، افتح مشكلة (issue) أولًا للتنسيق مع الفريق.

رموز اللغات التي يستخدمها WCPOS

يوفر WCPOS حاليًا 10 لغات. يستخدم جدول التوثيق وسوم اللغة بالشرطة للغات الإقليمية؛ استخدم الصيغة المكافئة بالشرطة السفلية لملفات i18next JSON، مثل pt_BR لـ pt-BR وzh_CN لـ zh-CN.

الرمزاللغة
arالعربية (من اليمين إلى اليسار)
deالألمانية
esالإسبانية
frالفرنسية
hi-INالهندية (الهند)
itالإيطالية
jaاليابانية
koالكورية
pt-BRالبرتغالية (البرازيل)
zh-CNالصينية (المبسّطة)

إذا لم تكن لغتك مدرجة في القائمة، افتح مشكلة (issue) في المستودع الذي تريد البدء به وسنقوم بإعداد اللغة.

نصائح للمترجمين

  • حافظ على العناصر النائبة كما هي. غالبًا ما تحتوي السلاسل النصية على {{variable}}، %s، %d، أو <strong> الوسوم — ترجم النص المحيط لكن اترك العناصر النائبة كما هي تمامًا. يستبدل WCPOS القيم الفعلية في هذه العناصر أثناء التشغيل.
  • حافظ على النبرة الحالية. وثائق WCPOS وواجهة المستخدم عملية ومباشرة عن قصد. إذا كان النص الإنجليزي يقول "Add Coupon"، فيجب أن تكون الترجمة بصيغة الفعل المستخدمة في لغتك على الأزرار المشابهة — وليس اسمًا.
  • اختبر في السياق إن أمكن. اضبط موقع WordPress الخاص بك على لغتك، وثبّت الإضافة، وتحقق من أن النصوص تظهر بشكل صحيح على واجهة المستخدم الفعلية. السياق مهم — فالنص الذي يناسب شاشة ما قد يلتف بشكل غير مناسب على شاشة أخرى.
  • لا تترجم الأكواد أو عناوين URL أو المعرّفات التقنية. أكواد القسائم ومعرّفات بوابات الدفع وأكواد اللغات ومسارات الملفات والأكواد المختصرة تبقى بالإنجليزية. إذا لم تكن متأكدًا، اتركها بدون ترجمة — فذلك أكثر أمانًا من إفساد شيء يعتمد عليه النظام.
  • لغات من اليمين إلى اليسار (RTL) — العربية والعبرية والفارسية والأردية — تحتاج أيضًا إلى تعيين قوالب الإيصالات كـ RTL. يتضمن WCPOS قوالب إيصالات RTL مدمجة؛ راجع تخصيص الإيصال لعرض المعرض.

أين تطلب المساعدة

  • WordPress.org polyglots Slack — للأسئلة المتعلقة بـ Glotpress
  • WCPOS Discord — لمناقشات الترجمة الخاصة بـ WCPOS (دعوة)
  • GitHub issues — قدّم بلاغًا في المستودع المعني (woocommerce-pos أو woocommerce-pos-pro أو monorepo أو docs) للأسئلة الخاصة بكل مستودع