معالج العولمة يجعل المشروع متعدد اللغات. يقوم بقراءة مستودعك، ويبدأ كل خطوة من ما وجده، وينتهي بمهمة تفتح 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. الثقافة
كل سوق يكتب التواريخ والأرقام والأسعار بطريقته الخاصة. اختر كيفية تنسيق الكود للقارئ: يقترح المعالج أداة التنسيق الخاصة بالإطار الذي وجده، مثل next-intl أو react-intl، أو وصف أداة تنسيق خاصة بك. ثم اختر العملة التي يدفع بها كل سوق؛ تبدأ كل منها بعملة المنطقة نفسها. يعرض كل سوق عينة من التاريخ والرقم، ويوم بدء الأسبوع، وحجم الورقة. تتبع وكلاء Coroid كلا الخيارين؛ راجع الثقافة.
7. الجودة والأتمتة
مفعلة بشكل افتراضي، ويمكن تغيير كل منها لاحقًا:
- فحص الترجمات عند كل تغيير. ال فحص العولمة يرسل تغييرًا عندما تفتقد السلاسل النصية أو تكون تالفة، أو عندما يضيف نصًا إلى الكود بدلًا من الفهرس.
- ترجمة السلاسل النصية التي تم دمجها خارج Coroid. عندما يدمج شخص ما نصًا جديدًا دون Coroid، تقوم مهمة بترجمته.
- تطبيق التصحيحات كل ليلة. تصل الاقتراحات الموافق عليها من المساهمين كـ pull request واحدة كل ليلة.
- السماح للأشخاص المدعوين باقتراح صياغات. يمكن للقراء الناطقين باللغة الأصلية الذين تدعوهم تصحيح الترجمات على موقعك. راجع الحفاظ على الترجمات مع الاقتراحات.
تحتوي ملف التهيئة على الإعداد الأخير. يقوم Coroid بتفعيل الخيارات الأخرى في المرة التالية التي يفتح فيها مالك أو مشرف قسم العولمة بعد دمج pull request، ومرة واحدة فقط: إذا قمت بإيقاف تشغيل أحدها لاحقًا، يظل مُعطَّلًا.
8. المراجعة
ملخص عن المشروع، وماهية المهمة، ولغة المصدر، واللغات التي سيتم توطينها منها، وحجم الترجمة، والمصطلحات التي تُحفظ كما هي، وبرنامج التنسيق والعملات، وما الذي يحدث بعد دمج الكود. يتم احتساب تكلفة الترجمة كاستخدام للنموذج، مثل باقي أعمال الوكلاء، ويكون لها حد أقصى لكل مهمة.
اختر توطين دولي. ينشئ Coroid مهمة واحدة تحتوي على مواصفات ومعايير قبول، ويبدأ تنفيذها فورًا.
ماهية المهمة
- اعتماد يقوم بكتابة ملف الإعدادات بالضبط كما صاغه المعالج، ثم يترجم كل النصوص المفقودة.
- تقديم يقوم بربط إطار العمل الخاص بك، ونقل نصوص الملفات المختارة إلى الفهارس، وإضافة توجيه اللغة وخيارات الاحتياط والدعم من اليمين إلى اليسار، ثم يترجم.
- تغيير يكتب الإعدادات الجديدة ويصلح الترجمات المتأثرة بالتغيير.
تنتهي المهمة في pull request واحد. وبمجرد دمجها في الفرع الافتراضي، تظهر كل اللغات في قسم توطين، ويتحقق برنامج World readiness من الكود للتعرف على الأجزاء التي لا تزال تفترض وجود لغة واحدة.
تنسيقات
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 | صفحات توثيق ضمن مجلد اللغة (docs/en/…): النصوص ووصف الصور وحقول البيانات الأمامية المختارة؛ بينما يظل الكود والترميز كما هو. |
| مخصص | أي تنسيق آخر، عبر أمر محول صغير في مستودعك. |
ملف الإعدادات
يقوم المعالج بكتابة .coroid/i18n.json. يصف هذا الملف مستودعك، لذا يوجد داخل مستودعك ويتم تغييره عبر طلبات سحب الكود:
{
"version": 1,
"cli": { "version": "1.16.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)."
},
"world": {
"formatter": "useFormatter from next-intl",
"currencies": { "de": "EUR", "fr": "EUR", "ja": "JPY", "ar": "SAR" }
}
}cliيحدد إصدار المحرك بدقة وختم التحقق منه. يقوم Coroid بتنزيل هذا الإصدار والتحقق منه قبل كل تشغيل، لضمان عدم تغيير النتائج بشكل مفاجئ عند تحديثه.derivedLocalesيسرد الصيغ الإقليمية التي تنتجها القواعد.protectedTermsوlocaleInstructionsيحتويان على ما اخترته تحت الأسلوب والمصطلحات، وworldما اخترته تحت الثقافة. فحص العولمة يسرد باقيworld.
يمكن أن يحتوي الملف أيضًا على قاموس مصطلحات، وسياق المنتج، ومسارات ترجمة لكل لغة، وربط الاقتراحات للمساهمين.
إعدادات ← ملف الإعدادات في واجهة العمل يعرض الملف الدقيق الموجود في الفرع الافتراضي. لتغييره هناك، قم بتحرير الاقتراح واختر اقتراح تغيير: يفتح Coroid مهمة تطبق هذا الملف بالضبط وتصلح الترجمات المتأثرة بالتغيير. أما بالنسبة للغات والأسلوب، فإن استخدام المعالج هو الطريقة الأسهل.