المعالجة المتوازية
توفر واجهة سطر أوامر Lingo.dev معالجة متوازية من خلال أمر run
، الذي يعالج مهام التوطين المتعددة بشكل متزامن لتقليل وقت الترجمة بشكل كبير للمشاريع الكبيرة.
سيحل أمر run
تدريجياً محل أمر i18n
في الإصدارات المستقبلية، مع توفير نفس الوظائف مع تحسينات كبيرة في الأداء من خلال المعالجة المتزامنة.
الاستخدام الأساسي
معالجة جميع الترجمات بالمعالجة المتوازية:
npx lingo.dev@latest run
التحكم في مستوى التزامن:
npx lingo.dev@latest run --concurrency 20
يستخدم أمر run
نفس ملفات التكوين i18n.json
و i18n.lock
كأمر i18n
القياسي.
كيف تعمل المعالجة المتوازية
تقوم واجهة سطر أوامر Lingo.dev بتوزيع مهام التوطين عبر عدة عمال متزامنين، ومعالجة أزواج اللغات المختلفة وأنماط الملفات في وقت واحد.
نظرة عامة على البنية:
- إنشاء المهام — تحلل واجهة سطر الأوامر التكوين الخاص بك وتنشئ مهام فردية لكل مجموعة لغة/ملف
- توزيع العمال — يتم توزيع المهام عبر عمليات عمال متعددة
- المعالجة المتزامنة — يقوم العمال بمعالجة الترجمات في وقت واحد مع منع تعارضات الملفات
- تجميع النتائج — يتم كتابة الترجمات المكتملة بأمان إلى الملفات المستهدفة
التحكم في التزامن
تعيين عدد العمال:
npx lingo.dev@latest run --concurrency 15
التزامن الافتراضي هو 10 عمال. القيم الأعلى تعالج الترجمات بشكل أسرع ولكنها تستهلك المزيد من موارد النظام وقد تصل إلى حدود معدل واجهة برمجة التطبيقات.
التزامن الأمثل يعتمد على قدرات نظامك وحدود مزود الترجمة. ابدأ بالإعداد الافتراضي وقم بالتعديل بناءً على الأداء.
المعالجة المستهدفة
معالجة لغات محددة:
npx lingo.dev@latest run --locale es --locale fr
معالجة أنواع ملفات محددة:
npx lingo.dev@latest run --bucket json
معالجة ملفات محددة:
npx lingo.dev@latest run --file components/header
معالجة مفاتيح محددة:
npx lingo.dev@latest run --key welcome.title
فرض إعادة الترجمة:
npx lingo.dev@latest run --force
تعمل خيارات الاستهداف هذه بشكل مطابق لأمر i18n
ولكنها تعالج المهام بالتوازي.
منع حالة التسابق
واجهة سطر أوامر Lingo.dev تمنع تلف الملفات أثناء المعالجة المتوازية من خلال ضمانات متعددة:
مزامنة الإدخال/الإخراج — تتم مزامنة عمليات نظام الملفات لمنع قيام عدة عمليات بالكتابة إلى نفس الملف في وقت واحد.
حماية ملف القفل — يستخدم ملف i18n.lock
عمليات ذرية لمنع التلف أثناء التحديثات المتزامنة.
المعالجة المعاملاتية — تكتمل كل مهمة بالكامل أو تفشل بنظافة، مما يضمن حالات ملفات متسقة.
تحسين الأداء
راقب موارد النظام عند استخدام قيم تزامن عالية. تم تصميم واجهة سطر الأوامر لتكون فعالة، ولكن المشاريع الكبيرة جدًا قد تستفيد من مراقبة الموارد.
ابدأ بالإعدادات الافتراضية:
npx lingo.dev@latest run
# يستخدم إعدادات تزامن محسّنة
قم بالتوسع تدريجيًا:
npx lingo.dev@latest run --concurrency 20
# قم بالزيادة إذا كان النظام يتعامل جيدًا مع الحمل
استهدف محتوى محدد للتكرار:
npx lingo.dev@latest run --file src/components
# معالجة المكونات المتغيرة فقط
التوافقية
يحافظ أمر run
على توافق كامل مع التكوينات الحالية:
- نفس تنسيق
i18n.json
— لا يتطلب تغييرات في التكوين - نفس سلوك
i18n.lock
— تتبع الترجمة التدريجية يعمل بشكل متطابق - نفس تنسيقات الملفات — جميع أنواع الحاويات مدعومة
- نفس خيارات الاستهداف — تعمل علامات
--locale
و--bucket
و--key
و--file
و--force
بشكل متطابق
الانتقال من أمر i18n
:
# الأمر الحالي
npx lingo.dev@latest i18n
# المكافئ المتوازي
npx lingo.dev@latest run
تنتقل جميع الوظائف مباشرة مع تحسين كبير في الأداء.
بنية مجموعة العمال
واجهة سطر أوامر Lingo.dev تستخدم نظام مجموعة عمال متطور:
التخصيص الديناميكي — يتم إنشاء العمال بناءً على موارد النظام وإعدادات التزامن.
توزيع المهام — يتم توزيع المهام بالتساوي عبر العمال باستخدام خوارزميات محسّنة.
تتبع التقدم — مراقبة التقدم في الوقت الفعلي عبر جميع العمليات المتوازية.
إدارة الموارد — التنظيف التلقائي وإلغاء تخصيص الموارد عند اكتمال المعالجة.