تكامل Lingo.dev مع Bitbucket
تكامل Lingo.dev مع Bitbucket Pipelines هو تكامل CI/CD مفتوح المصدر وآمن يقوم تلقائيًا بترجمة المحتوى الجديد ويمنع الترجمات غير المكتملة من الوصول إلى الإنتاج. يقوم بإنشاء طلبات السحب أو الالتزامات مباشرة إلى الفرع الخاص بك، اعتمادًا على متطلبات سير عمل فريقك.
كما أنه ينفذ حل النزاعات التلقائي من خلال إعادة القاعدة (rebasing)، بحيث تبقى ترجماتك متزامنة مع الكود الخاص بك دون تدخل يدوي.
يدعم التكامل سيناريوهات سير العمل المتعددة:
- الالتزامات المباشرة للفروع عند دفع تغييرات المحتوى
- طلبات السحب التي تستهدف الفروع لتحديثات الترجمة
عند الانتهاء من هذا الدليل، ستتمكن من:
- إعداد الترجمة الآلية التي يتم تشغيلها بواسطة عمليات دفع الكود؛
- تكوين المصادقة الآمنة باستخدام متغيرات المستودع؛
- الاختيار بين الالتزامات المباشرة أو سير عمل طلبات السحب؛
- فهم كيفية تناسب الترجمة المستمرة مع العملية الحالية الخاصة بك.
لنبدأ!
المتطلبات الأساسية
إعداد المستودع
يجب أن يكون مستودعك مكونًا بـ Lingo.dev CLI مع ملف i18n.json
صالح. إذا لم تقم بإعداد ذلك بعد، أكمل البدء السريع لـ CLI أولاً.
الخطوة 1. إعداد المصادقة
يحتاج تكامل Lingo.dev مع Bitbucket إلى الوصول إلى محرك الترجمة والمستودع الخاص بك. تتم المصادقة من خلال متغيرات المستودع التي تحافظ على أمان بيانات الاعتماد الخاصة بك.
إضافة مفتاح API الخاص بك
انتقل إلى إعدادات المستودع → متغيرات المستودع في المستودع الخاص بك، ثم أضف بيانات اعتماد محرك الترجمة:
لمستخدمي واجهة برمجة التطبيقات LLM الأساسية:
- اسم المتغير:
OPENAI_API_KEY
أوANTHROPIC_API_KEY
- قيمة المتغير: مفتاح API الخاص بك من المزود المعني
لمستخدمي محرك Lingo.dev:
- اسم المتغير:
LINGODOTDEV_API_KEY
- قيمة المتغير: مفتاح API الخاص بمشروعك من lingo.dev/app
إضافة رمز وصول Bitbucket (لوضع طلب السحب)
إذا كنت تخطط لاستخدام وضع طلب السحب، قم بإنشاء رمز وصول:
- انتقل إلى إعدادات المستودع → رموز الوصول → إنشاء رمز وصول للمستودع
- امنح هذه النطاقات:
- قراءة وكتابة المستودعات
- قراءة وكتابة طلبات السحب
- أضف الرمز كمتغير مستودع:
- اسم المتغير:
BB_TOKEN
- قيمة المتغير: رمز وصول Bitbucket الخاص بك
- اسم المتغير:
الخطوة 2. إنشاء سير العمل
قم بإنشاء أو تحديث ملف bitbucket-pipelines.yml
الخاص بك بهذا التكوين الأساسي:
script:
- pipe: lingodotdev/lingo.dev:main
يستخدم هذا التكوين أنبوب Lingo.dev ويشغل محرك الترجمة تلقائيًا.
الأذونات المطلوبة
تتطلب Bitbucket Pipelines الوصول إلى متغيرات المستودع وعمليات git:
متغيرات المستودع:
LINGODOTDEV_API_KEY
— مطلوب لمستخدمي محرك Lingo.devOPENAI_API_KEY
أوANTHROPIC_API_KEY
— مطلوب لمستخدمي واجهة برمجة التطبيقات LLM الأولية
لوضع طلب السحب:
BB_TOKEN
— مطلوب لإنشاء وإدارة طلبات السحب
نطاقات رمز الوصول (عند استخدام وضع طلب السحب):
- قراءة وكتابة المستودعات — الوصول إلى محتوى المستودع وتعديله
- قراءة وكتابة طلبات السحب — إنشاء وإدارة طلبات السحب
تسمح هذه الأذونات للتكامل بقراءة المحتوى الخاص بك، وإنشاء الترجمات، وتحديث المستودع الخاص بك بالمحتوى المترجم.
الخطوة 3. اختيار وضع سير العمل
تكامل Lingo.dev مع Bitbucket يدعم وضعين تشغيليين اعتمادًا على متطلبات مراجعة الكود لفريقك.
وضع الالتزام المباشر (الافتراضي)
يقوم التكامل بإجراء التزامات الترجمات مباشرة إلى الفرع الخاص بك:
script:
- pipe: lingodotdev/lingo.dev:main
يعمل هذا الوضع بشكل أفضل لـ:
- المطورين المنفردين أو الفرق الصغيرة
- فروع الميزات التي ستتم مراجعتها قبل الدمج
- المشاريع التي لا تتطلب فيها تحديثات الترجمة مراجعة منفصلة
وضع طلب السحب
ينشئ التكامل طلبات سحب لتحديثات الترجمة:
script:
- pipe: lingodotdev/lingo.dev:main
variables:
LINGODOTDEV_PULL_REQUEST: "true"
الإعداد المطلوب لوضع طلب السحب
متغيرات المستودع:
يجب تكوين كل من LINGODOTDEV_API_KEY
وBB_TOKEN
كمتغيرات للمستودع.
متطلبات رمز الوصول:
يجب أن يتضمن BB_TOKEN
الخاص بك أذونات القراءة والكتابة لكل من المستودعات وطلبات السحب.
ملاحظة: متغير BB_TOKEN
مطلوب عند استخدام وضع طلب السحب.
يعمل هذا الوضع بشكل أفضل لـ:
- الفرق ذات متطلبات مراجعة الكود الصارمة
- المشاريع التي تحتاج فيها تغييرات الترجمة إلى موافقة منفصلة
- سير العمل الذي يتطلب مراجعة صريحة لجميع التغييرات
الخطوة 4. سيناريوهات سير العمل
يتكيف تكامل Lingo.dev مع Bitbucket مع مختلف سير عمل التطوير. فهم هذه السيناريوهات يساعدك على اختيار التكوين المناسب لفريقك.
السيناريو 1: تحديثات فرع الميزة (الالتزامات المباشرة)
المحفز: الدفع إلى فروع الميزات الإجراء: يلتزم بتحديثات الترجمة مباشرة إلى فرع الميزة
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
التدفق: يتم دفع تغييرات المحتوى إلى فرع الميزة → يلتزم التكامل بالترجمات إلى نفس الفرع
هذا يبقي تحديثات الترجمة ضمن فرع الميزة، مما يضمن مراجعة الترجمات جنبًا إلى جنب مع التغييرات الأصلية.
السيناريو 2: طلبات السحب للتحديثات (وضع طلب السحب)
المحفز: الدفع إلى أي فرع مكوّن الإجراء: ينشئ طلب سحب مع تحديثات الترجمة
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
variables:
LINGODOTDEV_API_KEY: "${MY_LINGODOTDEV_API_KEY}" # or OPENAI_API_KEY/ANTHROPIC_API_KEY
BB_TOKEN: "${MY_ACCESS_TOKEN}"
LINGODOTDEV_PULL_REQUEST: "true"
LINGODOTDEV_PULL_REQUEST_TITLE: "feat: update translations"
LINGODOTDEV_COMMIT_MESSAGE: "feat: update translations"
LINGODOTDEV_WORKING_DIRECTORY: "apps/web"
LINGODOTDEV_PROCESS_OWN_COMMITS: "true"
التدفق: يتم دفع تغييرات المحتوى إلى الفرع → ينشئ التكامل طلب سحب مع الترجمات
هذا يحافظ على مراجعات منفصلة لتحديثات الترجمة.
التكوين المتقدم
قم بتخصيص سلوك التكامل باستخدام متغيرات إضافية:
مثال مع محرك Lingo.dev:
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
variables:
LINGODOTDEV_API_KEY: "${MY_LINGODOTDEV_API_KEY}"
BB_TOKEN: "${MY_ACCESS_TOKEN}"
LINGODOTDEV_PULL_REQUEST: "true"
LINGODOTDEV_PULL_REQUEST_TITLE: "feat: update translations"
LINGODOTDEV_COMMIT_MESSAGE: "feat: update translations"
LINGODOTDEV_WORKING_DIRECTORY: "apps/web"
LINGODOTDEV_PROCESS_OWN_COMMITS: "true"
مثال مع واجهة برمجة تطبيقات LLM الخام:
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
variables:
OPENAI_API_KEY: "${MY_OPENAI_API_KEY}" # or ANTHROPIC_API_KEY
BB_TOKEN: "${MY_ACCESS_TOKEN}"
LINGODOTDEV_PULL_REQUEST: "true"
LINGODOTDEV_PULL_REQUEST_TITLE: "feat: update translations"
LINGODOTDEV_COMMIT_MESSAGE: "feat: update translations"
LINGODOTDEV_WORKING_DIRECTORY: "apps/web"
LINGODOTDEV_PROCESS_OWN_COMMITS: "true"
خيارات التكوين:
LINGODOTDEV_API_KEY
— مفتاح واجهة برمجة تطبيقات محرك Lingo.dev الخاص بك، إذا كنت تستخدم محرك Lingo.devOPENAI_API_KEY
— مفتاح واجهة برمجة تطبيقات OpenAI الخاص بك، إذا كنت تستخدم واجهة برمجة تطبيقات LLM الخامANTHROPIC_API_KEY
— مفتاح واجهة برمجة تطبيقات Anthropic الخاص بك، إذا كنت تستخدم واجهة برمجة تطبيقات LLM الخامLINGODOTDEV_PULL_REQUEST
— إنشاء طلب سحب بدلاً من الالتزام المباشر (الافتراضي:false
)LINGODOTDEV_PULL_REQUEST_TITLE
— عنوان طلب السحب المخصص (الافتراضي:feat: update translations via @lingodotdev
)LINGODOTDEV_COMMIT_MESSAGE
— رسالة الالتزام المخصصة (الافتراضي:feat: update translations via @lingodotdev
)LINGODOTDEV_WORKING_DIRECTORY
— تشغيل التكامل في دليل فرعي (الافتراضي:.
)LINGODOTDEV_PROCESS_OWN_COMMITS
— معالجة الالتزامات التي تم إجراؤها بواسطة هذا التكامل (الافتراضي:false
)BB_TOKEN
— رمز وصول Bitbucket (مطلوب لوضع طلب السحب)