انتقل إلى المحتوى

تبقى التحليلات الاختيارية وتسجيل الجلسات والإعلانات متوقفة ما لم توافق عليها. يمكنك رفضها واستخدام Transglot. غيّر اختيارك في أي وقت من تفضيلات ملفات تعريف الارتباط. سياسة الكوكيز

للفرق التي تدمج التغييرات يومياً

التعريب المستمر: كل لغة، مع كل دمج.

يقوم التعريب المستمر بترجمة السلاسل النصية الجديدة والمعدّلة تلقائياً مع تغير الكود، بدلاً من انتظار مرحلة منفصلة قبل كل إصدار. تبقى كل لغة جاهزة للإطلاق متزامنةً مع الكود الذي يحتاجها.

محاكاة لطريقتي العمل، وليست قياساً فعلياً. اضغط على «دمج تغيير» واقرأ العمود الأيمن: فهو ما يراه مستخدمو تلك اللغة.
acme / web
mainAdd a gift cardcheckout.gift_card
frAjouter une carte cadeauمترجم
deGeschenkkarte hinzufügenمترجم
jaギフトカードを追加مترجم
arأضف بطاقة هديةمترجم
pt-BRAdicionar vale-presenteمترجم
اللغات الجاهزة للإطلاق الآن5 من أصل 5
السلاسل المتأخرة عن الفرع الرئيسيلا يوجد
الإجابة المختصرة

ما هو التعريب المستمر؟

التعريب المستمر هو أسلوب عمل تُرسل فيه السلاسل النصية الجديدة والمعدّلة للترجمة تلقائياً فور تغيرها، وتعود النصوص المترجمة إلى المنتج دون الحاجة إلى جدولة يدوية.

لا توجد مرحلة ترجمة منفصلة، لأن الترجمة لا تتوقف أبداً. عندما يدمج المطور سلسلة نصية، تتبعها الترجمات في نفس مسار الكود، ولا يتوقف الإطلاق بانتظار ملفات أي شخص.

هو شق التعريب ضمن التسليم المستمر. الفريق الذي يدمج التغييرات يومياً ويسلم مهام الترجمة كل بضعة أسابيع يعاني من تأخر اللغات عن الكود معظم أيام الشهر. يقلص التعريب المستمر هذه الفجوة لتصبح بطول دورة تشغيل واحدة.

لا يعني ذلك نشر مخرجات الآلة دون مراجعة. أنت تحدد السلاسل التي تحتاج تدخلاً بشرياً، ويمكن أن يتضمن الإصدار فقط ما تمت مراجعته.

التعريب المستمر مقابل التقليدي

الفرق يكمن في توقيت حدوث الترجمة، ليس من يقوم بذلك.

يوجد المترجمون والمراجعون وقوائم المصطلحات في كلا العمودين. ما يتغير هو توقيت بدء العمل وحجم كل جزء.
جنبًا إلى جنب
متى تتم الترجمة
في مرحلة قبل كل إصدار
ما الذي يبدأ العملية
شخص ما يصدر ملفاً
حجم كل جزء
أسابيع من السلاسل النصية دفعة واحدة
ما ينتظره الإصدار
عودة الملف
تغيير متأخر في النص
رحلة ذهاب وإياب أخرى
ما يعمل عليه المترجم
جدول بيانات يحتوي على سلاسل نصية
اللغات عند الإطلاق
متدرجة، موجة تلو الأخرى
سلسلة نصية واحدة، من البداية إلى النهاية

كيف تعمل الترجمة المستمرة

تابع سلسلة نصية جديدة واحدة خلال الدورة. تظهر كل خطوة ما ستراه فعلياً.

محطتك الطرفية، أو سجل التكامل المستمر CI
+ "checkout.gift_card": "Add a {brand} gift card"
$ git push origin main
$ transglot push --wait
push locales/en.json (en, json_nested)
Batch: #4182
$ transglot pull
written locales/fr.json
written locales/ja.json
checkout.gift_card
المصدرAdd a {brand} gift card
frAjouter une carte cadeau {brand}مسودة Glossa
de{brand}-Geschenkkarte hinzufügenمن الذاكرة، 0 كلمة
ja{brand} ギフトカードを追加مسودة Glossa
arأضف بطاقة هدية {brand}مسودة Glossa
البوابات الأربع، عملية تشغيل واحدة
العناصر النائبةتم إصلاح 1
صيغ الجمعناجح
مصطلحات المسردناجح
المدةناجح
ja · فقدان العنصر النائب، تم الإصلاح مرة واحدة، وإعادة الفحصギフトカードを追加{brand} ギフトカードを追加
cart.save
تغير المصدرSave Save draft
frEnregistrerتمت المراجعة بواسطة شخص: تم الاحتفاظ بها، وتم إبلاغكمقترح: Enregistrer le brouillon
deEntwurf speichernسطر آلي: تمت الترجمة مرة أخرى
طلب سحبمحدث في مكانه
تحديث الترجماتtransglot/sync → mainمفتوح، واحد لكل مستودع
locales/fr.json+3 −1
locales/de.json+3 −1
locales/ja.json+3 −1
أو، في طلب سحب على GitHub، علّق/translate

يصل التغيير إلى Transglot عبر واجهة سطر الأوامر، أو إجراء GitHub، أو التطبيق على مضيف Git الخاص بك. يتم تحليل الملفات المصدرية بأحد 20 تنسيقاً أصلياً، وتتم مقارنة كل سلسلة نصية بما يحتفظ به المشروع بالفعل. تنتقل فقط السلاسل النصية الجديدة والمتغيرة.

يتم ملء السطر بمطابقة تامة من ذاكرة الترجمة دون احتساب أي كلمات. يتم إرسال ما تبقى إلى Glossa مع مسرد المصطلحات ودليل الأسلوب والسياق الخاص بهذا المفتاح.

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

لا تقوم العملية التشغيلية بالكتابة فوق سطر قام شخص بتحريره أو مراجعته. إذا تغير مصدره لاحقاً، يبقى النص كما هو، وتحسب العملية السطر وتعلمك بذلك، ومن خطة الفريق ينتظر اقتراح تحديث بجانبه ليقوم شخص ما بقبوله.

تقوم تطبيقات Git بإيداع ملفات اللغة المحلية في فرع مزامنة واحد والحفاظ على طلب سحب واحد محدثاً. على GitHub، اكتب التعليق /translate على طلب سحب وستظهر الملفات في الفرع الخاص بذلك الطلب. أو انشر إلى شبكة توصيل المحتوى (CDN)، وسيقرأ المنتج الجاري التغيير دون الحاجة إلى إصدار جديد على الإطلاق.

حيث تحترق الفرق

ست طرق يفشل فيها التعريب المستمر، وما يمنع كل منها

عملية تشغيل تكتب فوق عمل شخص

يتحقق كل كاتب من حالة السطر أولاً: عملية تشغيل، ومطابقة في الذاكرة، وعملية دفع. يبقى السطر الذي حرره أو راجعه شخص، وتقوم العملية التشغيلية بالإبلاغ عنه.

الفرنسية، تمت المراجعة، تغير المصدر مؤخراً

محفوظة، محسوبة، مُبلَّغ عنها

تصل السلسلة المعطوبة إلى بيئة الإنتاج

كل رمز تم إدخاله يجب أن يخرج مرة أخرى. في مشروع ICU، تبقى الرسالة التي ستسبب خطأً أثناء العرض خارج عملية السحب، والموصل، وحزمة CDN، ويقوم التشغيل بتسميتها.

{count, plural, one {# article}

مستبعدة من الملف، مسماة في التشغيل

تمتلئ المستودع بطلبات السحب الآلية

فرع مزامنة واحد وطلب سحب واحد لكل مستودع. تندمج دفعتان سريعتان فيه بدلاً من فتح فرع ثانٍ.

#812 #815 #819 #823 تحديث الترجمة

#812 transglot/sync، محدّث في المكان

يترك تعديل المصدر الترجمات القديمة خلفه

يسجل كل صف هدف المصدر الذي كُتب بناءً عليه، لذا يُعرف أن السلسلة المتغيرة قديمة في كل اللغات دفعة واحدة، ولا يتم إعادة تشغيل ذلك المفتاح فقط.

تحول الحفظ إلى حفظ كمسودة. لا تزال fr وde وja تقول "حفظ"

إعادة تشغيل fr وde وja لهذا المفتاح الواحد

كل تشغيل يفوتل المشروع بالكامل مرة أخرى

يُحدد حجم التشغيل بناءً على ما تغير. لا تُرسل السلسلة غير المتغيرة، ولا تكلف مطابقة الذاكرة التامة أي كلمات، ويُرفض الصف المملوك لشخص قبل إنفاق أي شيء.

الملف يحتوي على 48,000 كلمة

هذا التشغيل: 60 كلمة

يمحو طلب السحب غير المكتمل ملف اللغة

إذا أبلغ الخادم عن عدم وجود إدخالات للغة معينة، يرفض طلب السحب الكتابة فوق ملف يحتوي على محتوى، وينتهي بالرمز 1 ليتوقف خط الأنابيب هناك.

السحب: 0 إدخال لـ ja، الملف يحتوي على 1,204

رفض الكتابة فوق locales/ja.json بحزمة فارغة

  • run 4182 fr: العنصر النائب مفقود من المسودة، تم إصلاحه عند إعادة المحاولة
  • run 4182 de: تم الاحتفاظ بـ 3 صفوف، شخص ما يملكها
  • run 4182 ja: 41 صفًا من الذاكرة، 0 كلمات
  • run 4183 ar: صيغة الجمع مفقودة بعد إعادة المحاولة، تم رفض الصف
  • pull تمت كتابة locales/pt-BR.json
  • sync تم تحديث transglot/sync، طلب السحب رقم 812
مقاسة مقابل الاثنين اللذين تقارن بينهما

تتصل الثلاثة جميعاً بمستودعك. الاختلاف يكمن في ما يحدث عند الدمج.

مأخوذ من صفحات كل شركة الخاصة في 5 نوفمبر 2026. يأتي صف السعر من صفحات المقارنة لدينا، المرتبطة أدناه، والتي تظهر الخطة والحسابات. تتغير الأسعار والخطط، لذا تحقق منها قبل اتخاذ القرار.

Transglot
تم دمج سلسلة نصية جديدة
مترجم افتراضياً
يبدأ الإرسال التشغيل. يمكن لإعداد في المشروع تعطيله.
فشلت الترجمة في فحص
يُصلح مرة واحدة، ثم يُرفض
بالنسبة لعنصر نائب تالف، أو صيغة جمع، أو مصطلح محظور، في كل صف من كل تشغيل. يتم تسجيل تجاوز الطول. في مشروع ICU، يبقى الصف التالف خارج السحب، والموصلات، وشبكة توصيل المحتوى (CDN).
قام شخص ما بالفعل بتحرير الصف
يرفض التشغيل كتابته
كذلك مطابقة الذاكرة والإرسال. إذا تغير المصدر لاحقاً، يُبلغ التشغيل عن الصف.
طلبات السحب في مستودع نشط
فرع واحد، طلب سحب واحد
يُحدّث في مكانه عند كل إرسال.
ما تحسبه الخطة
الكلمات المترجمة، مرة واحدة لكل لغة
التطابقات التامة في الذاكرة لا تكلف شيئًا. تخزين السلسلة النصية لا يكلف شيئًا.
ما يغطي تكلفة الذكاء الاصطناعي
كلمات الخطة
لا يتم فوترتها بشكل منفصل.
نفس المهمة: 5,000 سلسلة نصية في 10 لغات
$39 شهرياً
Team، الترجمة مشمولة
GitHub وGitLab وBitbucket وAzure Repos وواجهة سطر الأوامر وخادم MCP
جميعها
تبدأ تطبيقات Git من خطة Team وتغطي إصدارات السحابة.
استخدم ما تشغله بالفعل

ابدأ من حيثما توجد نصوصك. كل باب يؤدي إلى نفس خط الأنابيب.

نفس الذاكرة، والمسرد، والبوابات، والمراجعة، بغض النظر عن الباب الذي دخلت منه السلسلة النصية.
.github/workflows/translations.yml
on:
push:
branches: [main]
jobs:
translations:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v7
- uses: transglot/transglot-action@v1
with:
token: ${{ secrets.TRANSGLOT_TOKEN }}
ما الذي يجب فعله أولاً

كيفية إعداد الترجمة المستمرة

  1. استخراج السلاسل النصية من الشيفرة البرمجية

    تحتاج كل سلسلة نصية تظهر للمستخدم إلى مفتاح ثابت في ملف التعريب. يقرأ Transglot 20 تنسيقاً، لذا احتفظ بالتنسيق الذي لديك.

  2. ربط المستودع

    يبحث أمر التهيئة عن ملفات التعريب الخاصة بك، ويسجّل دخولك عبر المتصفح، ويرفع ما لديك بالفعل، ويشغّل أول ترجمة.

  3. تشغيلها عند كل دمج

    أضِف إجراء GitHub، أو استدعِ واجهة سطر الأوامر من أي نظام تكامل مستمر آخر، أو ثبّت التطبيق لـ GitHub أو GitLab أو Bitbucket أو Azure Repos.

  4. حدّد ما يحتاج إلى مراجعة بشرية

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

احسب التكاليف بناءً على أرقامك الخاصة

تكلفة التشغيل عند كل دمج: الكلمات التي تغيّرت.

الكلمة هي كلمة مصدرية، تُحتسب مرة واحدة لكل لغة هدف. يُحدَّد حجم العملية بناءً على ما تغيّر، لذا فإن الدمج الذي يلمس اثنتي عشرة كلمة في خمس لغات يُحتسب بستين، بغض النظر عن حجم المشروع.

25
40
6
20,000
الكلمات شهريًا26,000بناءً على هذه الأرقام · 25 عمليات دمج أسبوعياً، 40 كلمات لكل منها، 6 لغات

مناسب لخطة Starter: $19/mo، 300,000 كلمة شهرياً.

هذا يمثل حوالي 9% من الحد المسموح.

التشغيل الأول، مرة واحدة120,000سلاسلك النصية الموجودة في كل لغة. الترجمات التي تستوردها لا تُترجم مرة أخرى.

يُحتسب هذا للترجمة فقط. فحوصات الجودة، ومسودات نبرة العلامة التجارية، والإصلاحات تُحتسب أيضاً ككلمات، بينما التطابقات التامة من الذاكرة لا تكلف شيئاً. تبدأ واجهة سطر الأوامر وإجراء GitHub من خطة Starter، وتبدأ تطبيقات GitHub وGitLab وBitbucket وAzure Repos من خطة Team.

ما لن تفعله من أجلك

ثلاثة أمور لا تحلّها الترجمة المستمرة

السلاسل النصية لا تزال عالقة داخل الكود

لا يمكن لخط الأنابيب ترجمة إلا ما يستطيع قراءته. يجب أولاً إصلاح السلاسل النصية المضمنة في الكود والجمل المركبة من أجزاء، وهي السبب المعتاد لتعطل عملية النشر.

لا يوجد مالك للمحتوى النصي

تقوم الأتمتة بنقل السلاسل النصية، لكنها لا تقرر كيف يسمي منتجك الأشياء. يجب أن يتولى شخص ما مسؤولية المسرد اللغوي، وإلا فإن اللغة التي لا يقرأها أحد ستشهد انحرافاً دون أن يلاحظه أحد.

محتوى يتطلب حكماً بشرياً

تستحق النصوص القانونية والأسعار وشعارات العلامة التجارية تدقيقاً بشرياً. أرسلها للمراجعة وأبقها خارج الملفات المنشورة حتى يمنحها شخص ما الموافقة النهائية.

الأسئلة الشائعة حول الترجمة المستمرة

الأسئلة التي تطرحها الفرق قبل تفعيل الخدمة.

ما هي الترجمة المستمرة؟
هي طريقة عمل يتم فيها إرسال السلاسل النصية الجديدة والمعدلة للترجمة تلقائياً بمجرد تغيرها، وتعود النصوص المترجمة إلى المنتج دون الحاجة إلى تسليم مجدول. تحل هذه الطريقة محل مرحلة الترجمة التي تسبق الإصدار بدورة صغيرة بعد كل تغيير.
تجمع الترجمة التقليدية السلاسل النصية في ملف وترسله خارجياً قرب موعد الإصدار ثم تنتظر. تنقل الترجمة المستمرة كل تغيير فور حدوثه، مما يجعل القطع صغيرة، ويتم إطلاق اللغات معاً، كما أن التغيير المتأخر في النص يكلف إعادة تشغيل لمفتاح واحد بدلاً من جولة اتصال أخرى كاملة.
لا. يقوم CI/CD ببناء واختبار وإصدار الكود. تحافظ الترجمة المستمرة على حركة الترجمات جنباً إلى جنب معه. يلتقيان في خط الأنابيب: يمكن للدفع الذي يشغل اختباراتك أيضاً إرسال السلاسل النصية للترجمة وإعادة الملفات.
لا. تتفاعل تطبيقات GitHub وGitLab وBitbucket وAzure Repos مع عملية الدفع دون إضافة أي شيء إلى خط الأنابيب الخاص بك، وتتفاعل موصلات المحتوى مع التغييرات في نظام إدارة المحتوى أو المتجر. تتوفر واجهة سطر الأوامر (CLI) وإجراء GitHub إذا كنت تريد دمجها داخل سير العمل الخاص بك.
لا. يمكن نشر المسودات، أو يمكن لقاعدة السحب أن تحمل فقط ما تمت مراجعته بواسطة شخص، ملفاً تلو الآخر. يعمل المراجعون في المحرر مع مصطلحات المسرد ومطابقات الذاكرة ولقطات الشاشة بجانب كل صف.
لا. يفحص التشغيل ومطابقة الذاكرة والدفع الصف أولاً، ويظل الصف الذي قام شخص بتحريره أو مراجعته كما هو. إذا تغير مصدره لاحقاً، يبقى النص كما هو، ويقوم التشغيل بحساب الصف والإبلاغ عنه، ومن خطة الفريق يتم إرفاق تحديث مقترح لقبوله من قبل شخص ما.
تميل إلى أن تكون أكثر أهمية في الفرق الصغيرة، لأن لا أحد لديه وظيفة تشغيل عمليات التسليم اليدوية. إذا كنت تنشر بلغة واحدة بدون خطة للغة ثانية، فيمكن الانتظار.
يتم تحديد حجم التشغيل قبل بدئه. الخطة المجانية لها حد أقصى صارم. تتوقف الخطة المدفوعة عند الحد المسموح به ما لم تقم بتشغيل الاستخدام الزائد المقاس، والذي يتوقف عند سقف إنفاق تحدده أنت. في بيئة CI، يخرج سطر الأوامر بالرمز 3 عندما يتجاوز التشغيل الحد، بحيث يمكن لخط الأنابيب التصرف بناءً على ذلك.
نعم، على GitLab.com وBitbucket Cloud وAzure DevOps Services. لا تغطي التطبيقات إصدارات GitLab أو Bitbucket Data Center التي تتم إدارتها ذاتياً، لكن سطر الأوامر يعمل في أي بيئة CI تحتوي على Node 22 ويمكنها الوصول إلى واجهة برمجة التطبيقات.
نعم. تقرأ موصلات المحتوى من نظام إدارة محتوى أو متجر أو مركز مساعدة، وتكتب الموصلات ثنائية الاتجاه اللغة التي تمت مراجعتها مرة أخرى. بعضها للاستيراد فقط، وتوضح صفحة كل موصل أيهما ينطبق.
نعم. انشر لغة محلية إلى شبكة توصيل المحتوى (CDN) ويقوم منتجك بقراءتها أثناء التشغيل من خلال حزم SDK الخاصة بالتشغيل. يتم تخزين أحدث عنوان URL مؤقتاً لمدة ستين ثانية، ويحتفظ كل إصدار منشور بعنوان URL الخاص به، ويتم الاحتفاظ بأحدث عشرين إصداراً.
تستورد الأداة المشاريع والمفاتيح والترجمات الحالية من Lokalise, Phrase, Crowdin, Transifex, Weblate and POEditor. تُعد الترجمات المستوردة عملاً يدوياً، لذا لن يتم استبدالها. الخدمة مجانية في جميع الباقات وتعمل مرة واحدة.