الانتقال إلى المحتوى الرئيسي

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 المخصصة في المشروع نفسه:

champollion.config.json
{
"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 القاعدة الوحيدة لا تدرّب على بيانات التقييم. الطرق التي تعرّضت لمجموعة بيانات القياس سيتم استبعادها. اضبط نموذجك على ما تشاء. لكن ليس على مجموعة الاختبار. :::

هذه دعوة مفتوحة. إذا كنت تعمل مع لغة منخفضة الموارد — باحثًا كنت أو فردًا من المجتمع أو طالبًا أو مجرد شخص يهتم — ابنِ طريقة، وشغّل منصة التقييم، واحصد المركز الأول. المشكلة لم تُحل بعد. والبنية التحتية موجودة هنا.

← عرض لوحة المتصدرين


الخطوات التالية

البدء:

تخصيص إعداداتك:

التعمق أكثر: