دليل عملي: ترجمة 30 لغة
وسّع نطاق مشروعك من بضع لغات إلى تغطية عالمية. يستعرض هذا الدليل العملي اختيار الطريقة، وتحسين التكلفة، والتكامل مع CI لنشر فعلي متعدد اللغات.
السيناريو: لديك تطبيق SaaS يحتوي على en وfr وes. تحتاج إلى إضافة 27 لغة إضافية موزعة على ثلاثة مستويات من متطلبات الجودة.
الخطوة 1: صنّف لغاتك
لا تحتاج جميع اللغات الثلاثين إلى النهج نفسه. قم بتجميعها حسب جودة الطريقة المتاحة:
| المستوى | اللغات | الطريقة | السبب |
|---|---|---|---|
| المستوى 1 — المتميز | ja، ko، zh، de، pt | llm (GPT-4o) | أسواق عالية القيمة، وقواعد لغوية دقيقة |
| المستوى 2 — القياسي | it، nl، pl، sv، da، fi، no، cs، ro، hu، el، tr، id، ms، th، vi، uk، bg | google-translate | حجم كبير، ومدعومة جيدًا من Google |
| المستوى 3 — الموجَّه | crk، oj، mi، haw | llm-coached + الإضافات | موارد محدودة، وتتطلب فرض المصطلحات |
الخطوة 2: التهيئة لكل زوج لغوي
{
"version": 3,
"inputLocale": "en",
"localesDir": "./locales",
"defaultMethod": "google-translate",
"model": "google/gemini-3.5-flash",
"languages": {
"ja": { "name": "Japanese", "register": "Polite/formal" },
"ko": { "name": "Korean", "register": "Formal" },
"zh": { "name": "Simplified Chinese", "register": "Neutral" },
"de": { "name": "German", "register": "Formal (Sie)" },
"pt": { "name": "Brazilian Portuguese", "register": "Informal" },
"crk": { "name": "Plains Cree (SRO)", "register": "Neutral" }
},
"pairs": {
"en:ja": { "method": "llm", "model": "openai/gpt-4o" },
"en:ko": { "method": "llm", "model": "openai/gpt-4o" },
"en:zh": { "method": "llm", "model": "openai/gpt-4o" },
"en:de": { "method": "llm", "model": "openai/gpt-4o" },
"en:pt": { "method": "llm", "model": "openai/gpt-4o" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}
ملاحظة: اللغات غير المدرجة في pairs ترث defaultMethod: "google-translate". لست بحاجة إلى إدراج جميع اللغات الثلاثين.
دعم crk قيد التطوير — راجع دعم لغة منخفضة الموارد للاطلاع على الحالة وإرشادات المساهمة.
الخطوة 3: إعداد مفاتيح API
ستحتاج إلى كلا مفتاحي API لهذه التهيئة:
export OPENROUTER_API_KEY="sk-or-v1-..."
export GOOGLE_TRANSLATE_API_KEY="AIza..."
الخطوة 4: التشغيل التجريبي أولًا
قم دائمًا بالمعاينة قبل ترجمة 30 لغة:
npx champollion sync --dry
راجع المخرجات. ستعرض ما يلي:
- أي الأزواج تستخدم أي طريقة
- عدد المفاتيح الجديدة/المتغيرة لكل لغة
- عدد استدعاءات API المقدّرة لكل مستوى
الخطوة 5: تشغيل المزامنة
npx champollion sync
يعالج Champollion كل زوج لغوي بشكل مستقل. ستكون أزواج المستوى 2 التي تستخدم Google Translate سريعة. أما أزواج المستوى 1 المعتمدة على نماذج LLM فستكون أبطأ ولكن بجودة أعلى. وتستخدم أزواج المستوى 3 الموجَّهة بيانات التوجيه الخاصة بالإضافة.
التحديثات التزايدية
بعد المزامنة الأولية، تترجم عمليات التشغيل اللاحقة المفاتيح المتغيرة أو الجديدة فقط:
# Only keys that changed since last sync
npx champollion sync
يتتبع ملف القفل (.champollion.lock) ما تمت ترجمته، بحيث لا تعيد أبدًا ترجمة المحتوى المستقر.
الخطوة 6: تدقيق الجودة
تحقق من حالة جميع الأزواج اللغوية:
npx champollion status
يُخرج هذا الأمر جدولًا يعرض طريقة كل زوج، والنموذج، ومستوى الجودة، وما إذا كانت بيانات التوجيه أو درجات القياس المرجعي متاحة.
هل احترمت المخرجات مستويات اللغة التي حددتها؟
في الخطوة 2، حددت مستوى لغة لكل لغة — "Polite/formal" لليابانية، و"Formal (Sie)" للألمانية. (هل المصطلح جديد عليك؟ يشرحه المسرد بلغة مبسطة.) تدخل هذه التعليمات في موجّه الترجمة، لكن الموجّه طلبٌ وليس ضمانًا.
يمكن لأداة MT Eval Arena harness — وهي الأداة نفسها التي تشغّل لوحة الصدارة العامة — قياس مدى الالتزام بمستوى اللغة والأسلوب على عينة من ترجماتك. تتحقق مقاييس الأسلوب الكتابي فيها من كل مخرَج مقارنةً بمستوى اللغة المتوقع (علامات الصيغ الرسمية/غير الرسمية، وضمائر المخاطبة T–V، والاختصارات، وانحراف طول الجمل) وتُصدر تقريرًا بـstyle_consistency_rate عبر التشغيل بأكمله. يمكنك أيضًا توجيهها إلى ملف تعريف مخصص لصوت العلامة التجارية باستخدام --style-profile.
# install the harness, then run your sample corpus through it
curl -fsSL champollion.dev/harness | bash
mt-eval run --corpus my-sample.json --style-profile brand-voice.json
تنبيهان صريحان: هذه المقاييس إعلامية فقط (لا تدخل أبدًا في الدرجة المركبة للوحة الصدارة)، وكشف الصيغة الرسمية يعتمد على العلامات اللغوية — فهو كاشف انحراف وليس حكمًا بشريًا. التفاصيل وتعريفات المقاييس: مقاييس الأسلوب الكتابي ومستوى اللغة.
الخطوة 7: التكامل مع CI
أضف ما يلي إلى سير عمل GitHub Actions لديك حتى تبقى الترجمات محدَّثة مع كل دفعة (push):
name: Sync Translations
on:
push:
paths:
- 'locales/en/**'
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- name: Sync translations
run: npx champollion sync
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
GOOGLE_TRANSLATE_API_KEY: ${{ secrets.GOOGLE_TRANSLATE_API_KEY }}
- name: Commit updated translations
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add locales/
git diff --staged --quiet || git commit -m "chore(i18n): sync translations"
git push
تقدير التكلفة
لمشروع يحتوي على 500 مفتاح مصدري عبر 30 لغة:
| المستوى | اللغات | الطريقة | التكلفة التقريبية |
|---|---|---|---|
| المستوى 1 (5 لغات) | ja, ko, zh, de, pt | GPT-4o | ~$2.50 لكل مزامنة كاملة |
| المستوى 2 (18 لغة) | it, nl, pl، وغيرها | Google Translate | ~$0.90 لكل مزامنة كاملة |
| المستوى 3 (4 لغات) | crk, oj, mi, haw | GPT-4o-mini موجَّه | ~$0.40 لكل مزامنة كاملة |
| الإجمالي | 30 لغة | مختلط | ~$3.80 لكل مزامنة كاملة |
تكلّف المزامنات التزايدية (5–20 مفتاحًا متغيرًا) جزءًا يسيرًا من تكلفة المزامنة الكاملة.
انظر أيضًا
- طرق الترجمة — كيف تعمل كل طريقة ترجمة ومتى تُستخدم
- مواصفات الإضافات — أنشئ بيانات توجيه لأي من لغات المستوى 3 لديك
- دليل CI/CD — أنماط CI متقدمة بما في ذلك بناءات معاينة طلبات السحب (PR)
- بوابة الجودة — كيف يتحقق Champollion من كل ترجمة قبل كتابتها
- اللغات المدعومة — القائمة الكاملة لرموز اللغات وتوافق الطرق
- مقاييس الأسلوب الكتابي ومستوى اللغة — قياس الالتزام بمستوى اللغة/الأسلوب باستخدام أداة التقييم (مقاييس إعلامية)
- المسرد: مستوى اللغة — ما معنى «مستوى اللغة» بلغة مبسطة
- دعم لغة منخفضة الموارد — أضف بيانات توجيه للغات التي لا تتمتع بتغطية واسعة في الترجمة الآلية