يحوّل معالج التوطين المشروع إلى نسخة متعددة اللغات. يقوم بقراءة مستودعك، ويبدأ كل خطوة بناءً على ما وجده، وينتهي بمهمة تفتح pull request واحدة. لن تضطر إلى كتابة رمز لغة أو تعديل JSON؛ فقط غيّر ما تريد، ولا يتغيّر أي شيء في مستودعك حتى تقوم بدمج التغييرات.
يقوم المالكون والمشرفون بتشغيل المعالج. ابدأه من توطين: اختر توطين مشروع، أو ابدأ المعالج في صف المشروع. أما بالنسبة للمشروع الذي هو بالفعل متعدد اللغات، إعدادات ← تغيير اللغات يفتح المعالج نفسه لاقتراح التغييرات.
خطوات العملية
1. المسح
تقرأ Coroid الفرع الافتراضي دون تشغيل أي من أكواده. تبحث عن الفهارس ولغاتها، والأطر المستخدمة، والنصوص المكتوبة مباشرة في الكود، مع عدّها لكل ملف.
- تم العثور على فهارس. يحتفظ المعالج بها: تضيف Coroid فحوصاتها وتترجم ما ينقص منها. ويُطلق على هذه العملية اسم «التكيّف».
- لا توجد فهارس بعد. تنقل Coroid النصوص الموجودة في كودك إلى الفهارس وتستبدلها بعمليات بحث. ويُسمى هذا الإجراء «الإدخال».
- تم الإعداد مسبقًا. لدى المشروع بالفعل إعداد لـ Coroid، ويقترح المعالج تغييرات عليه.
2. لغة المصدر
هي اللغة التي كُتب بها المنتج؛ حيث تُترجم كل اللغات الأخرى منها. يكتشفها المعالج من فهارسك، أو يخمنها من النصوص الموجودة في الكود. يمكن أن تكون أي لغة هي لغة المصدر: فمنتج باللغة السويدية مترجم إلى الإنجليزية والألمانية يعمل بنفس الطريقة.
3. اللغات
اختر اللغات واحدة تلو الأخرى، أو أضف سوقًا كاملاً دفعة واحدة: الأكثر تحدثًا، أوروبا، دول الشمال، شرق آسيا، الأمريكتان أو من اليمين إلى اليسار. تعرض كل لغة اسمها، وما إذا كانت تُكتب من اليمين إلى اليسار، وعدد صيغ الجمع التي تحتاجها.
يمكن استخلاص الصيغ الإقليمية بدلاً من ترجمتها. فالإنجليزية البريطانية تُستخلص من الإنجليزية الأمريكية مع هجاء بريطاني، والألمانية السويسرية من الألمانية مع هجاء سويسري، لذا لا تكلف شيئًا وتبقى متوافقة مع اللغة الأم.
تبدأ كل خطوة من ما يحتويه المستودع بالفعل؛ غيّر فقط ما تريده؛ ولا يتغير شيء حتى يتم دمج pull request.
- مسح
- لغة المصدر
- اللغات
- النصوص
- الأسلوب والمصطلحات
- الجودة والأتمتة
- مراجعة
اختر اللغات واحدة تلو الأخرى أو أضف سوقًا كاملاً. يمكن اشتقاق الصيغ الإقليمية مثل الإنجليزية البريطانية عبر قواعد محددة بدلاً من الترجمة اليدوية.
- Deutschالألمانية · de · ٢ صيغ جمع
- Françaisالفرنسية · fr · ٣ صيغ جمع
- 日本語اليابانية · ja · ١ صيغة جمع
- العربيةar · من اليمين إلى اليسار · ٦ صيغ جمع
- British Englishالإنجليزية (المملكة المتحدة) · en-GB · ٢ صيغ جمعمشتق بمعيار الإملاء البريطاني
معالج Internationalization في خطوة اللغات: كل لغة مع اتجاه كتابتها وأشكال الجمع الخاصة بها، والإنجليزية البريطانية المشتقة وفق القواعد، بالإضافة إلى الأسواق التي يمكن إضافتها دفعة واحدة. بيانات توضيحية.
4. النصوص
عند التكيّف، اختر الفهارس التي تحتفظ بها Coroid مترجمة؛ تظل مفاتيحها وبنيتها كما هي. أما عند الإدخال، فاختر الملفات التي تنقل Coroid نصوصها إلى الفهارس؛ الملفات التي تستبعدها تبقى كما هي.
5. الأسلوب والمصطلحات
كلها اختيارية، وتُطبق في كل لغة:
- رسمي أو غير رسمي. بالنسبة للغات التي تميز بين الخطاب الرسمي وغير الرسمي، مثل اللغة الألمانية Sie و du. وبشكل افتراضي، تتبع كل منها نبرة النص الأصلي.
- المصطلحات تُحتفظ بها كما هي. أسماء المنتجات والعلامات التجارية والميزات التي تبقى كما هي في كل لغة.
- نبذة عن المنتج. بضع جمل عن المنتج وقارئيه، تساعد كل ترجمة على اختيار الكلمات المناسبة.
6. الجودة والأتمتة
مفعلة بشكل افتراضي، ويمكن تغيير كل منها لاحقًا:
- فحص الترجمات عند كل تغيير. تُرسل عملية فحص الترجمات في «مراقبة الجودة» تغييرًا عندما تفتقد نصوصًا أو تحتوي على أخطاء.
- ترجمة النصوص المدمجة خارج Coroid. عندما يدمج أحدهم نصًا جديدًا دون استخدام Coroid، تُنشئ مهمة لترجمته.
- تطبيق التصحيحات كل ليلة. تصل الاقتراحات الموافق عليها من المساهمين كمهمة pull request واحدة كل ليلة.
- السماح للأشخاص المدعوين باقتراح صياغات. يمكن للقرّاء الناطقين باللغة الأصلية الذين تدعوهم تصحيح الترجمات على موقعك. اطلع على الحفاظ على الترجمات مع الاقتراحات.
يحتوي ملف الإعدادات على الإعداد الأخير. تفعّل Coroid الإعدادات الأخرى عندما يفتح المالك أو المشرف صفحة التوطين بعد دمج pull request، وذلك مرة واحدة فقط: فإذا أوقفت أحدها لاحقًا، يظل غير مفعّل.
7. المراجعة
ملخص عن المشروع، وما ستفعله المهمة، ولغة المصدر، واللغات وأيها مستخلَص، وحجم الترجمة، والمصطلحات المحتفظ بها كما هي، وما سيُفعَل بعد الدمج. تُحتسب تكلفة الترجمة ضمن استخدام النموذج، مثل باقي أعمال الوكلاء، وتُحدد حدًا لكل مهمة.
اختر توطين. تُنشئ Coroid مهمة واحدة تحتوي على مواصفات ومعايير قبول، وتبدأها فورًا.
ما تفعله المهمة
- التكيّف يكتب ملف الإعدادات بالضبط كما صاغه المعالج، ثم يترجم كل سلسلة نصية مفقودة.
- تقديم يقوم بربط إطار العمل الخاص بك، وينقل نص الملفات المحددة إلى الفهارس، ويضيف توجيه اللغة والنسخ الاحتياطية ودعم الاتجاه من اليمين إلى اليسار، ثم يترجم.
- التغيير يكتب الإعدادات الجديدة ويصلح الترجمات التي يتأثر بها هذا التغيير.
تنتهي المهمة في طلب سحب واحد pull request. وبمجرد دمجه في الفرع الافتراضي، تظهر كل اللغات ضمن توطين.
تنسيقات
Coroid يقرأ الفهارس بهذه التنسيقات:
| التنسيق | استخدمه لـ |
|---|---|
| ICU JSON | ملفات الرسائل مع صيغ الجمع والاختيار في ICU. |
| i18next JSON | فهارس i18next وreact-i18next، بما في ذلك لاحقات الجمع. |
| Vue i18n JSON | رسائل vue-i18n، بما في ذلك الرسائل المرتبطة وصيغ الجمع بالأنابيب. |
| Rails YAML | config/locales/*.yml، مع %{name} استبدال ومفاتيح الجمع. |
| gettext PO | .po ملفات وقالب .pot قالب، مع Plural-Forms لكل لغة. |
| Markdown وMDX | صفحات التوثيق ضمن مجلد اللغة ( : النص ووصف الصور وحقول frontmatter المختارة؛ بينما يبقى الكود والترميز كما هو.docs/en/…): النص ووصف الصور وحقول frontmatter المختارة؛ بينما يبقى الكود والترميز كما هو. |
| مخصص | أي تنسيق آخر، عبر أمر محول صغير في مستودعك. |
ملف الإعدادات
يقوم المعالج بكتابة .coroid/i18n.json. وهو يصف مستودعك، لذا يوجد داخل مستودعك ويتغير عبر طلبات السحب:
{
"version": 1,
"cli": { "version": "1.9.0", "sha256": "…" },
"sourceLocale": "en",
"targetLocales": ["de", "fr", "ja", "ar"],
"derivedLocales": [
{ "locale": "en-GB", "from": "en", "rules": "en-gb-spelling" }
],
"catalogs": [
{
"id": "ui",
"format": "i18next-json",
"source": "messages/{locale}.json"
}
],
"protectedTerms": ["Storefront"],
"localeInstructions": {
"de": "Address the reader informally (du)."
}
}cliيثبت الإصدار الدقيق من المحرك ورقم تحققه. يقوم Coroid بتنزيل هذا الإصدار والتحقق منه قبل كل تشغيل، حتى لا يغير التحديث نتائجك بشكل غير متوقع.derivedLocalesيسرد الصيغ الإقليمية التي تنتجها القواعد.protectedTermsوlocaleInstructionsتحتوي على ما اخترته تحت الأسلوب والمصطلحات.
يمكن للملف أيضًا أن يحتوي على قاموس مصطلحات، وسياق المنتج، ومسارات ترجمة لكل لغة، وربط الاقتراحات للمساهمين.
إعدادات ← ملف الإعدادات في منصة العمل يعرض الملف الدقيق الموجود في الفرع الافتراضي. لتغييره هناك، قم بتحرير الاقتراح واختر اقتراح تغيير: يفتح Coroid مهمة تطبق هذا الملف بالضبط وتصلح أي ترجمات يتأثر بها التغيير. أما بالنسبة للغات والأسلوب، فالمعالج هو الطريقة الأسهل.