مرجع واجهة سطر الأوامر (CLI)
الأوامر
champollion init Interactive setup wizard (--yes for quick defaults)
champollion sync Translate & sync all locale files
champollion watch Auto-sync when the source file changes
champollion audit List all untranslated [EN] fallback values
champollion lint Scan source code for hardcoded strings
champollion wrap Auto-wrap hardcoded strings in t() calls (with undo)
champollion seo <sub> Generate hreflang, sitemap.xml, or JSON-LD schema
champollion integrity Audit locale files for format/encoding issues
champollion verify Verify translations are present and correct (CI gate)
champollion status Show pair configuration, plugins, and quality tiers
champollion provenance Audit translation resource licensing
champollion plugin <sub> Manage method plugins (install, remove, list)
champollion fonts <sub> Download web fonts for PUA script converters
champollion leaderboard Browse and install methods from the MT Eval Arena leaderboard
champollion tm <sub> Manage Translation Memory cache (stats, clear)
champollion xliff <sub> Export/import XLIFF 1.2 for professional review
شغّل champollion <command> --help للحصول على مساعدة مفصّلة حول أي أمر.
الخيارات العامة
--help, -h Show help (global or per-command)
--version, -v Print version and exit
--yes, -y Skip interactive prompts, use defaults
--config <path> Custom config file path
--dir <path> Override locales directory
--content-dir <path> Hugo/Docusaurus content directory for Markdown translation
--source <code> Override source locale (default: en)
--model <model> Override translation model (full slug or alias from shared/model-aliases.json)
--method <method> Translation method: llm, google-translate (default: from config)
--temperature <n> LLM temperature (0.0–2.0, default: 0.3)
--coaching-file <path> Path to free-text coaching prompt file (injected into system prompt)
--format <fmt> Locale file format: json, toml, yaml, or auto
--dry, --dry-run Preview changes without writing files
--concurrency <n> Max parallel API calls (sets both JSON and content, default: 48)
--json-concurrency <n> Max parallel locale translations for JSON keys (default: 200)
--content-concurrency <n> Max parallel API calls for content translation (default: 48)
--force-content Re-translate all content files (clears content lock)
--force-keys <keys> Comma-separated dot-notation keys to force re-translate
--no-tm Skip Translation Memory cache for this sync run
--no-verify Skip post-sync verification pass
--locale <code> Target locale (xliff export, tm clear)
--quiet Errors and warnings only — suppress banner, progress bar, and info lines
--json Machine-readable NDJSON output — one JSON object per event
init
معالج إعداد تفاعلي يُنشئ champollion.config.json. يرشدك عبر تحديد اللغة المصدر، واللغات المستهدفة، وصيغة الملفات، ونموذج الترجمة.
champollion init # interactive wizard
champollion init --yes # skip wizard, use defaults
champollion init --yes --langs fr,de,ja # quick setup with specific languages
champollion init --source en --dir ./i18n # overrides with defaults
خيار --langs: قائمة برموز اللغات المستهدفة مفصولة بفواصل. يتخطى مطالبة اختيار اللغة ويطبّق الإعدادات المسبقة الافتراضية لمستوى اللغة لكل لغة. ادمجه مع --yes لإعداد غير تفاعلي بالكامل.
الإعدادات المسبقة للغات: عند مطالبتك باللغات المستهدفة، يمكنك كتابة أسماء الإعدادات المسبقة:
european← fr, de, es, it, pt, nlasian← ja, zh, koglobal← fr, es, de, ja, zh, ko, pt, arnordic← da, fi, nb, sv
يمكنك المزج بين الإعدادات المسبقة والرموز الفردية: european, ja ← fr, de, es, it, pt, nl, ja
sync
يترجم المفاتيح المفقودة والقديمة عبر جميع ملفات اللغات. يُجري تحققًا بعد المزامنة بشكل افتراضي.
champollion sync # translate everything
champollion sync --dry-run # preview only
champollion sync --force-keys "hero.title" # force re-translate
champollion sync --force-keys "a.title,a.subtitle" # multiple keys
champollion sync --force-content # re-translate all Markdown/MDX
champollion sync --content-dir ./content # include Hugo Markdown
champollion sync --method google-translate # force Google Translate
champollion sync --concurrency 20 # 20 parallel API calls (both phases)
champollion sync --json-concurrency 30 # 30 parallel locale translations (JSON)
champollion sync --content-concurrency 8 # 8 parallel content translations
champollion sync --no-verify # skip post-sync verification
champollion sync --no-tm # skip cache, fresh API calls
ذاكرة الترجمة: بشكل افتراضي، يحمّل sync الملف .champollion/tm.json ويقدّم الترجمات المخزّنة مؤقتًا للقيم المصدرية غير المتغيرة. استخدم --no-tm لتجاوز ذاكرة التخزين المؤقت (مفيد عند تبديل مزوّدي الترجمة أو تصحيح مشاكل الجودة). راجع ذاكرة الترجمة.
اكتشاف التغييرات: يخزّن champollion تجزئات SHA-256 في .champollion.lock. عند تغيّر القيم المصدرية، تعيد المزامنة التالية ترجمة تلك المفاتيح تلقائيًا. أودِع ملف القفل في المستودع ليتشارك جميع المطورين خط الأساس نفسه.
التوازي: تعمل ترجمة مفاتيح JSON وترجمة المحتوى بالتوازي. تُترجم لغات JSON في وقت واحد (الافتراضي: 200 لغة متزامنة)، مع موازاة الدفعات داخل كل لغة أيضًا (4 دفعات متزامنة). تعمل ترجمة المحتوى (Markdown وMDX ومنشورات المدونة) في مجمّع موحّد لعناصر العمل (الافتراضي: 48 استدعاء API متزامنًا). يمكنك التجاوز باستخدام --json-concurrency أو --content-concurrency أو --concurrency (يضبط كليهما).
المخرجات: تعرض المزامنة شعار الإصدار، واكتشاف الصيغة/إطار العمل، وتقدير التكلفة، وأشرطة تقدّم لكل لغة:
champollion v0.1.0
[INFO] Detected format: json (auto)
[INFO] Source: en.json (2,847 keys)
[INFO] Pairs: es-MX:llm, fr:deepl
[INFO] es-MX.json — 2,847 missing
████████████████████████████████ 2,847/2,847 keys
[INFO] fr.json — 2,847 missing
████████████████████████████████ 2,847/2,847 keys
[OK] Synced 5,694 keys total.
تتحدّث أشرطة التقدّم في مكانها بعد كل دفعة (~80 مفتاحًا). استخدم --quiet لعرض الأخطاء/التحذيرات فقط، أو --json للحصول على مخرجات NDJSON قابلة للقراءة آليًا. كلاهما يُخفي شريط التقدّم والشعار.
watch
مزامنة تلقائية عند تغيّر ملف اللغة المصدر. يعمل حتى يُقاطَع بـ Ctrl+C.
champollion watch
audit
يسرد جميع القيم الاحتياطية غير المترجمة المسبوقة بـ [EN] من عمليات تشغيل سابقة. ينتهي برمز الخروج 1 إذا وُجد أي منها — استخدمه كبوابة CI لإفشال عمليات البناء التي تحتوي على ترجمات غير مكتملة.
champollion audit
verify
يعيد قراءة جميع ملفات اللغات من القرص ويتحقق من أن الترجمات موجودة وصحيحة فعلًا. هذا هو التحقق نفسه الذي يعمل تلقائيًا في نهاية كل sync (ما لم يتم تمرير --no-verify).
champollion verify # verify all locale files
champollion verify --warn-only # non-blocking
champollion verify && echo "All good" # CI gate
ما يتحقق منه:
- تطابق المفاتيح — وجود جميع مفاتيح المصدر في كل هدف
- علامات القيم الاحتياطية
[EN]من عمليات تشغيل سابقة - الترجمات الفارغة
- التوافق مع نظام الكتابة — يجب أن تحتوي اللغات غير اللاتينية على ترجمات غير ASCII
- الحفاظ على العناصر النائبة — تطابق عناصر ICU النائبة مع المصدر
- مشاكل الترميز — علامات BOM، والمحارف غير المرئية
- صدى المصدر — القيم المطابقة للمصدر (تحذير)
lint
يفحص الشيفرة المصدرية بحثًا عن نصوص مضمّنة مرئية للمستخدم يجب أن تستخدم استدعاءات ترجمة i18n. يكتشف إطار العمل لديك تلقائيًا (next-intl، react-i18next، vue-i18n، Hugo).
champollion lint # exits 1 if issues found
champollion lint --warn-only # always exits 0
champollion lint --src ./app # custom source directory
champollion lint --min-length 4 # minimum string length to flag
ما يكتشفه:
- النصوص المضمّنة في نصوص JSX، و
placeholder، وalt، وaria-label، وtitle - الملفات التي تحتوي على محتوى مرئي للمستخدم دون استيراد إطار عمل i18n
- المفاتيح الميتة — مفاتيح اللغات التي لا يشير إليها أي ملف مصدري
- درجة التغطية — النسبة المئوية للنصوص التي تمرّ عبر i18n
الاستثناءات: أنشئ .champollionignore في جذر مشروعك (أنماط glob، مثل .gitignore).
wrap
يلفّ النصوص المضمّنة التي اكتشفها lint تلقائيًا داخل استدعاءات t(). يُنشئ نسخًا احتياطية تلقائية قبل تعديل الملفات.
champollion wrap # auto-wrap with backup
champollion wrap --dry # preview wrapping changes
champollion wrap --undo # restore from .champollion-backup/
بوابات الأمان:
- التحقق من نظافة Git (يُتخطى في وضع التشغيل التجريبي)
- نسخ احتياطي تلقائي إلى
.champollion-backup/ - معاينة الفروق قبل كل كتابة ملف
- دعم
--undoللاستعادة من النسخة الاحتياطية
seo
ينشئ عناصر SEO للمواقع متعددة اللغات.
champollion seo hreflang # print hreflang tags
champollion seo sitemap --base-url https://example.com --out sitemap.xml
champollion seo jsonld --base-url https://example.com # JSON-LD schema
| الأمر الفرعي | المخرجات |
|---|---|
hreflang | وسوم <link rel="alternate" hreflang> |
sitemap | sitemap.xml متعدد اللغات |
jsonld | مخطط لغات JSON-LD WebSite |
integrity
يكتشف التلف والانحراف في ملفات اللغات المترجمة.
champollion integrity # exits 1 if issues found
champollion integrity --warn-only # non-blocking
ما يتحقق منه:
- تلف العناصر النائبة (مثلًا،
{name}موجود في المصدر لكنه مفقود في الهدف) - مشاكل الترميز (mojibake، يونيكود غير صالح)
- النسخ غير المترجمة (قيمة الهدف مطابقة للمصدر)
- المفاتيح اليتيمة (مفاتيح في الهدف غير موجودة في المصدر)
- اكتمال فئات الجمع في ICU MessageFormat (مثلًا، تحتاج العربية إلى 6 فئات)
tm
إدارة ذاكرة التخزين المؤقت لذاكرة الترجمة (.champollion/tm.json). تخزّن ذاكرة الترجمة الترجمات السابقة وتقدّمها في عمليات المزامنة اللاحقة بدلًا من استدعاء API.
champollion tm stats # show cache statistics
champollion tm clear # clear cache (with confirmation)
champollion tm clear --yes # clear without confirmation
champollion tm clear --locale fr # clear only French entries
| الأمر الفرعي | المخرجات |
|---|---|
stats | عدد المدخلات، حجم الملف، تفصيل حسب كل لغة |
clear | حذف ملف التخزين المؤقت (كاملًا أو حسب اللغة) |
| الخيار | التأثير |
|---|---|
--locale <code> | مسح مدخلات لغة واحدة فقط |
--yes | تخطي مطالبة التأكيد |
راجع ذاكرة الترجمة لمعرفة كيفية عمل ذاكرة الترجمة ومتى يجب مسحها.
xliff
تصدير واستيراد ملفات XLIFF 1.2 لمراجعتها من قبل مترجمين محترفين. XLIFF هو صيغة التبادل العالمية المدعومة من أدوات الترجمة بمساعدة الحاسوب (CAT) مثل memoQ وSDL Trados وPhrase.
champollion xliff export --locale fr # export French XLIFF
champollion xliff export --locale ja --out ./review/ # custom output path
champollion xliff import .champollion/xliff/fr.xliff # import reviewed file
champollion xliff import ./reviewed.xliff --dry # preview import
| الأمر الفرعي | المخرجات |
|---|---|
export | إنشاء .xliff من ملفات اللغة المصدر + الهدف |
import | دمج ترجمات .xliff المُراجَعة في ملفات اللغات |
| الخيار | التأثير |
|---|---|
--locale <code> | اللغة الهدف للتصدير (إلزامي) |
--out <path> | مسار أو مجلد إخراج مخصص |
--dry | معاينة الاستيراد دون كتابة |
راجع العمل مع مترجمين محترفين للاطلاع على سير العمل الكامل.
status
يعرض إعدادات الأزواج اللغوية، والإضافات المثبّتة، ومستويات الجودة، ونتائج الاختبارات المعيارية.
champollion status
provenance
تدقيق تراخيص موارد الترجمة لجميع الإضافات المثبّتة.
champollion provenance
plugin
إدارة إضافات أساليب الترجمة. الإضافات هي وصفات ترجمة جاهزة تُثبّت في .champollion/methods/.
champollion plugin list # show installed plugins
champollion plugin install ./my-method/ # install from local directory
champollion plugin remove crk-coached-v1 # remove a plugin
راجع مواصفات الإضافات للاطلاع على صيغة بيان الإضافة.
leaderboard
تصفّح أساليب الترجمة وابحث عنها وثبّتها من لوحة صدارة MT Eval Arena. تأتي الأساليب المثبّتة من لوحة الصدارة مع نتائج الاختبارات المعيارية وإعدادات MethodConfig المعيارية الكاملة — وهي الإعدادات الدقيقة المستخدمة أثناء التقييم.
champollion leaderboard # show leaderboard
champollion leaderboard --pair en:fr # filter by language pair
champollion leaderboard --install crk-coached-v8 # install a method plugin
champollion leaderboard --install crk-coached-v8 --apply # install + patch config
| الخيار | التأثير |
|---|---|
--pair <code> | تصفية لوحة الصدارة حسب الزوج اللغوي (مثلًا، en:fr) |
--install <name> | تثبيت إضافة أسلوب من لوحة الصدارة |
--apply | بعد التثبيت، إضافة methodPlugin تلقائيًا إلى champollion.config.json |
سير عمل --apply: عند التثبيت باستخدام --apply، يكتب champollion إضافة الأسلوب في .champollion/methods/ ويعدّل أيضًا champollion.config.json لديك لاستخدامها للزوج اللغوي المعني. هذا هو أسرع مسار من "ما الذي يحقق أفضل النتائج؟" إلى "أنا أستخدمه في الإنتاج."
fonts
ينزّل ويدير خطوط الويب PUA لمحوّلات أنظمة الكتابة الخاصة باللغات المصطنعة. تحتاج اللغات التي تستخدم محارف منطقة الاستخدام الخاص (Klingon وSindarin وKryptonian) إلى خطوط ويب مخصصة لعرض أنظمة كتابتها. ينزّل هذا الأمر تلك الخطوط من مستودعات مفتوحة المصدر موثّقة.
champollion fonts list # show needed fonts
champollion fonts install # download all needed fonts
champollion fonts install --css # also generate CSS snippet
champollion fonts install --dir ./public/fonts # custom output directory
| الأمر الفرعي | المخرجات |
|---|---|
list | يعرض خطوط PUA المطلوبة وحالة تثبيتها |
install | ينزّل الخطوط للغات المُعدّة |
| الخيار | التأثير |
|---|---|
--dir <path> | تجاوز مجلد إخراج الخطوط (يُكتشف تلقائيًا من نوع المشروع) |
--css | إنشاء مقتطف conlang-fonts.css إلى جانب الخطوط |
--config <path> | مسار ملف الإعدادات (يُستخدم لاكتشاف اللغات التي تحتاج إلى خطوط) |
الاكتشاف التلقائي: يُستنتج مجلد الإخراج من بنية مشروعك:
- Docusaurus ←
static/fonts/أوwebsite/static/fonts/ - Hugo ←
static/fonts/ - الافتراضي ←
public/fonts/
محوّلات يونيكود الأصلية (crk ← مقاطع الكري، sr ← السيريلية الصربية) لا تتطلب تثبيت خطوط.
راجع اللغات المصطنعة وأنظمة الكتابة والإملاء للاطلاع على التفاصيل الكاملة لخطوط PUA.
خط الأنابيب ثلاثي الطبقات
استخدم lint وsync وaudit معًا لتدويل (i18n) محكم:
{
"scripts": {
"i18n:lint": "champollion lint",
"i18n:sync": "champollion sync",
"i18n:audit": "champollion audit"
}
}
| الطبقة | الأمر | متى | الغرض |
|---|---|---|---|
| Lint | lint | قبل الإيداع | منع الإيداعات التي تحتوي على نصوص مضمّنة |
| Sync | sync | بعد الإيداع / CI | ترجمة المفاتيح المفقودة والمتغيرة |
| Verify | verify | بعد المزامنة / CI | التأكد من وجود الترجمات وصحتها |
| Audit | audit | خطوة البناء | إفشال النشر إذا احتوت أي لغة على علامات [EN] |
انظر أيضًا
- الإعدادات — مرجع ملف الإعدادات
- أساليب الترجمة — اختيار الأسلوب لكل زوج لغوي
- ذاكرة الترجمة — التخزين المؤقت وتوفير التكاليف
- العمل مع مترجمين محترفين — سير عمل XLIFF
- مواصفات الإضافات — صيغة بيان الإضافة
- دليل CI/CD — أتمتة أوامر CLI في خط الأنابيب لديك
- كيف تعمل المزامنة — فهم خط أنابيب المزامنة
- بوابة الجودة — كيفية التحقق من صحة الترجمات