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

دليل عملي: ترجمة 30 لغة

وسّع نطاق مشروعك من بضع لغات إلى تغطية عالمية. يستعرض هذا الدليل العملي اختيار الطريقة، وتحسين التكلفة، والتكامل مع CI لنشر فعلي متعدد اللغات.

السيناريو: لديك تطبيق SaaS يحتوي على en وfr وes. تحتاج إلى إضافة 27 لغة إضافية موزعة على ثلاثة مستويات من متطلبات الجودة.


الخطوة 1: صنّف لغاتك

لا تحتاج جميع اللغات الثلاثين إلى النهج نفسه. قم بتجميعها حسب جودة الطريقة المتاحة:

المستوىاللغاتالطريقةالسبب
المستوى 1 — المتميزja، ko، zh، de، ptllm (GPT-4o)أسواق عالية القيمة، وقواعد لغوية دقيقة
المستوى 2 — القياسيit، nl، pl، sv، da، fi، no، cs، ro، hu، el، tr، id، ms، th، vi، uk، bggoogle-translateحجم كبير، ومدعومة جيدًا من Google
المستوى 3 — الموجَّهcrk، oj، mi، hawllm-coached + الإضافاتموارد محدودة، وتتطلب فرض المصطلحات

الخطوة 2: التهيئة لكل زوج لغوي

champollion.config.json
{
"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):

.github/workflows/i18n-sync.yml
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, ptGPT-4o~$2.50 لكل مزامنة كاملة
المستوى 2 (18 لغة)it, nl, pl، وغيرهاGoogle Translate~$0.90 لكل مزامنة كاملة
المستوى 3 (4 لغات)crk, oj, mi, hawGPT-4o-mini موجَّه~$0.40 لكل مزامنة كاملة
الإجمالي30 لغةمختلط~$3.80 لكل مزامنة كاملة

تكلّف المزامنات التزايدية (5–20 مفتاحًا متغيرًا) جزءًا يسيرًا من تكلفة المزامنة الكاملة.

انظر أيضًا