champollion
إطار عمل للتدويل قابل للتخصيص بالكامل. أمر واحد يترجم ملفات اللغة لديك. ملف إعداد واحد يتحكم في كل طريقة ونموذج وزوج لغوي. وإذا لم تكن الطرق المدمجة كافية — ابنِ طريقتك الخاصة، وأثبت أنها تعمل، ثم انشرها.
npx champollion sync
يكتشف champollion تلقائيًا ملفات اللغة لديك وصيغتها واللغات المستهدفة. يترجم ما هو ناقص، ويتجاوز ما هو مكتمل، ويتحقق من صحة كل نتيجة، ويكتب مخرجات نظيفة. هذه هي نقطة البداية.
لماذا لا تكتب سكربتًا بنفسك ببساطة؟
يمكنك كتابة حلقة سريعة تستدعي Google Translate لكل مفتاح. معظم المطورين يفعلون ذلك — لا يتطلب الأمر سوى نحو 30 سطرًا. وهنا تكمن المشكلات:
- لا يوجد اكتشاف للتغييرات. حدّث نصًا إنجليزيًا — وستبقى الترجمة قديمة إلى الأبد. يتتبع champollion كل قيمة مصدر باستخدام تجزئات SHA-256 ويعيد ترجمة ما تغيّر فقط.
- لا يوجد تجميع للطلبات. استدعاء API واحد لكل مفتاح يعني أن 200 مفتاح = 200 رحلة ذهاب وإياب. يجمّع champollion الطلبات بذكاء (قابل للضبط، الافتراضي 80 مفتاحًا لكل دفعة لنماذج LLM، و128 لـ Google).
- لا يوجد تخزين مؤقت. كل عملية مزامنة تعيد ترجمة كل شيء. تخزّن ذاكرة الترجمة في champollion الترجمات حسب نص المصدر + اللغة + الطريقة — إعادة تشغيل sync بعد تغيير مفتاح واحد تترجم ذلك المفتاح فقط، وليس الملف بأكمله.
- لا توجد بوابة جودة. الترجمة الآلية قد تهلوس، أو تعيد نص المصدر كما هو، أو تخرج النتيجة بنظام كتابة خاطئ. يتحقق champollion من كل ترجمة قبل كتابتها — يتم اكتشاف ورفض نظام الكتابة الخاطئ وتضخم الطول وصدى المصدر.
- لا يوجد وعي بالصيغ. مقيّد بـ JSON فقط؟ يدعم champollion صيغ JSON وTOML وYAML وMarkdown الخاص بـ Hugo (المقدمة الوصفية + المتن) مع الاكتشاف التلقائي.
- لا يوجد تحكم في الطريقة. كل زوج لغوي يحصل على الطريقة نفسها. يتيح لك champollion استخدام Google Translate للفرنسية، ونموذج LLM لليابانية، وخط معالجة مخصص يستضيفه المجتمع للغة الكري — في ملف الإعداد نفسه.
champollion هو النسخة الإنتاجية من ذلك السكربت.
ما الذي يجعله مختلفًا
كل طريقة هي إضافة (plugin)
طريقة الترجمة قابلة للضبط لكل زوج لغوي. امزج بين Google Translate ونماذج LLM والموجهات الموجّهة وواجهات API المخصصة في المشروع نفسه:
{
"version": 3,
"pairs": {
"en:fr": { "method": "google-translate" },
"en:ja": { "method": "llm", "model": "google/gemini-2.5-pro" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}
الفرنسية تحصل على Google Translate (سريع ورخيص). اليابانية تحصل على نموذج LLM متميز (دقيق في الفروق اللغوية). لغة الكري السهلية (Plains Cree) تحصل على إضافة موجَّهة بقواعد نحوية وقواميس وتحقق صرفي. الأمر sync نفسه. بوابة الجودة نفسها. واجهة CLI نفسها.
أثبت ذلك
تعتقد أن طريقتك تستطيع الترجمة من الإنجليزية إلى الإسبانية؟ من التركية إلى الأذربيجانية؟ من الإنجليزية إلى الكري؟
أثبت ذلك. منصة التقييم المرافقة تقيس أداء أي طريقة ترجمة بتسجيل نقاط قابل لإعادة الإنتاج وموثّق ببصمة رقمية. ولوحة المتصدرين تتتبع كل مشاركة.
تتشارك منصة التقييم وواجهة CLI الإنتاجية واجهة الإضافات نفسها. الطريقة التي تحرز نتائج جيدة في منصة التقييم يمكن استخدامها في الإنتاج — إذا منح المجتمع الذي تخدم لغته موافقته. بالنسبة للغات الشعوب الأصلية واللغات منخفضة الموارد، هذه الموافقة مهمة. انظر سيادة البيانات.
# Benchmark your method (in the eval harness repo)
cd arena
python eval/baseline_experiment.py --dataset data/edtekla-dev-v1.json --submit
# Use it locally
npx champollion sync
الإضافة نفسها. وصّل واختبر.
مجموعة الأدوات الكاملة
champollion ليس مجرد sync. إنه خط معالجة i18n كامل:
| الأمر | ما يفعله |
|---|---|
sync | ترجمة المفاتيح الناقصة والقديمة (مع تحقق بعد المزامنة) |
watch | المزامنة التلقائية عند تغيّر ملف المصدر |
lint | فحص الكود المصدري بحثًا عن نصوص مكتوبة مباشرة في الكود |
wrap | تغليف النصوص المكتوبة مباشرة تلقائيًا باستدعاءات t() |
audit | عرض جميع علامات الاحتياط [EN] من عمليات التشغيل السابقة |
verify | التحقق من وجود الترجمات وصحتها (بوابة CI) |
integrity | اكتشاف تلف العناصر النائبة ومشكلات الترميز واكتمال صيغ الجمع في ICU |
seo | إنشاء وسوم hreflang وخرائط المواقع ومخططات JSON-LD |
status | عرض إعداد الأزواج اللغوية والإضافات ونتائج القياس |
provenance | تدقيق تراخيص موارد الترجمة |
plugin | تثبيت إضافات الطرق وإزالتها وعرضها |
fonts | تنزيل خطوط الويب لمحولات أنظمة الكتابة في منطقة PUA |
tm | إدارة ذاكرة التخزين المؤقت لذاكرة الترجمة (الإحصاءات، المسح، لكل لغة) |
xliff | تصدير/استيراد XLIFF 1.2 لمراجعة المترجمين المحترفين |
أربعة من هذه الأوامر — lint وsync وverify وaudit — تشكّل خط معالجة CI يكتشف النصوص المكتوبة مباشرة في الكود، ويترجمها، ويتحقق من صحتها، ويُفشل عملية البناء إذا كانت أي لغة غير مكتملة.
الساحة
لوحة متصدري الطرق هي سجل النتائج. كل مشاركة موثّقة ببصمة مرتبطة بـ commit في Git، ومرتبطة بإصدار مجموعة بيانات محددة، ومُقيّمة بمنصة التقييم نفسها. يمكن لأي شخص المشاركة.
ما الذي يمكنك إثباته؟ منصة التقييم تستقبل JSON. الإضافات تستقبل JSON. أي طريقة تنتج JSON يمكن اختبارها:
| المقاربة | مثال |
|---|---|
| نموذج LLM موجَّه | حقن قواعد نحوية وقواميس في موجّه نموذج متقدم |
| نموذج مضبوط (fine-tuned) | تدريب نموذج مفتوح على نصوص متوازية — لكن ليس على بيانات التقييم |
| خط معالجة محكوم بـ FST | نموذج LLM يولّد ← محوّل الحالات المنتهية يتحقق من الصرف ← إعادة المحاولة |
| نماذج متسلسلة | النموذج A يصوغ مسودة ← النموذج B يحررها ← النموذج C يقيّمها |
| قاموس + LLM | فرض المصطلحات المعروفة من قاموس، وترك الباقي لنموذج LLM |
| تطوّري | توليد مرشحين، وتقييمهم، وتطوير الأفضل، والتكرار |
| ترجمة جزئية | ترجمة عينة يدويًا، وإثبات تطابق نموذج LLM لديك معها، ثم ترجمة الباقي تلقائيًا |
اضبط النماذج بدقة. انشر خوارزميات تطورية. اختبر إجابات الطلاب في امتحانات اللغة. ابنِ جداول بحث. اربط ثلاثة نماذج معًا. طالما أن طريقتك تنتج JSON، فإن منصة التقييم تقيّمها والإطار يشغّلها.
:::danger القاعدة الوحيدة لا تدرّب على بيانات التقييم. الطرق التي تعرّضت لمجموعة بيانات القياس سيتم استبعادها. اضبط نموذجك على ما تشاء. لكن ليس على مجموعة الاختبار. :::
هذه دعوة مفتوحة. إذا كنت تعمل مع لغة منخفضة الموارد — باحثًا كنت أو فردًا من المجتمع أو طالبًا أو مجرد شخص يهتم — ابنِ طريقة، وشغّل منصة التقييم، واحصد المركز الأول. المشكلة لم تُحل بعد. والبنية التحتية موجودة هنا.
الخطوات التالية
البدء:
- التثبيت — الإعداد في دقيقتين
- البدء السريع — شغّل أول مزامنة لك
- اللغات المدعومة — ما هو متاح جاهزًا
تخصيص إعداداتك:
- طرق الترجمة — اختر الطريقة المناسبة لكل زوج لغوي
- ذاكرة الترجمة — كيف يوفّر التخزين المؤقت أموالك
- الإعداد — مرجع الإعداد الكامل
- موقع Hugo متعدد اللغات — ترجمة محتوى Markdown
التعمق أكثر:
- العمل مع المترجمين المحترفين — سير عمل تصدير/استيراد XLIFF
- سيادة البيانات — مبادئ OCAP وCARE وسيادة بيانات الماوري
- ادعم لغة منخفضة الموارد — التحدي الذي بدأ كل شيء
- كتاب الوصفات: خط معالجة محكوم بـ FST — ابنِ خط معالجة للتفكيك
- تقييم الترجمة الآلية — كيف تعمل منصة التقييم ولوحة المتصدرين
- لوحة متصدري الطرق — النتائج والمشاركات المباشرة