GitHub Actions
الترجمة بالذكاء الاصطناعي مع GitHub Actions وLingo.dev CI/CD
ما هو GitHub Actions؟
GitHub Actions هي منصة CI/CD وأتمتة مدمجة في GitHub. تتيح للمستخدمين تعريف سير العمل في ملفات YAML لبناء واختبار ونشر الكود أو أتمتة المهام التي يتم تشغيلها بواسطة أحداث المستودع.
ما هو Lingo.dev CI/CD؟
Lingo.dev CI/CD هي أداة مدعومة بالذكاء الاصطناعي لتوطين التطبيقات والمحتوى في CI/CD، مما يضمن عدم تقادم الترجمات أبدًا. بالنسبة لـ GitHub، توفر Lingo.dev إجراء GitHub مخصصًا يبسط التكامل.
حول هذا الدليل
يشرح هذا الدليل كيفية إعداد Lingo.dev CI/CD باستخدام إجراء Lingo.dev GitHub وLingo.dev Engine.
الخطوة 1. إعداد Lingo.dev CLI
للبدء، اتبع دليل البدء السريع لـ Lingo.dev CLI.
يجب أن ينتهي بك الأمر بـ:
- مفتاح API لـ Lingo.dev
- ملف
i18n.jsonيقوم بتكوين سلوك خط أنابيب الترجمة - القدرة على ترجمة المحتوى باستخدام
npx lingo.dev@latest run
الخطوة 2. تكوين سر المستودع
- انتقل إلى Settings > Secrets and variables > Actions.
- انقر على New repository secret.
- في حقل Name، أدخل
LINGODOTDEV_API_KEY. - في حقل Secret، أدخل مفتاح API الخاص بـ Lingo.dev.
- انقر على Add secret.
الخطوة 3. اختيار سير العمل
يمكنك إعداد Lingo.dev CI/CD بطرق مختلفة لدعم سير عمل مختلفة. هذه بعض سير العمل التي نوصي بها (ونقدم أمثلة عليها):
- عند دمج المحتوى في
main، قم بالالتزام بالترجمات إلىmain - عند دمج المحتوى في
main، قم بإنشاء طلب سحب منmain - عند دمج المحتوى في فرع ميزة، قم بالالتزام بالترجمات إلى الفرع
- عند دمج المحتوى في فرع ميزة، قم بإنشاء طلب سحب من الفرع
لكن لا يوجد سير عمل "أفضل". جميعها لها مقايضات. إذا لم تكن متأكدًا من أين تبدأ، نوصي بالبدء بالخيار الأول. إنه أبسط سير عمل وأكثرها شفافية.
الخطوة 4. إعداد سير العمل
-
في المستودع، أنشئ دليل
.github/workflows:mkdir -p .github/workflowsتأكد من تضمين
.في بداية.github. -
في دليل
.github/workflows، أنشئ ملف YAML:touch .github/workflows/translate.ymlاسم الملف غير مهم.
-
انسخ أحد أمثلة سير العمل إلى الملف.
-
إذا كان سير العمل ينشئ طلبات سحب:
- انتقل إلى الإعدادات > الإجراءات > عام.
- فعّل السماح لـ GitHub Actions بإنشاء طلبات السحب والموافقة عليها.
- انقر على حفظ.
-
قم بتنفيذ الالتزام ودفع التغييرات إلى فرع
main:git add .github/workflows/translate.yml git commit -m "feat: GitHub action for Lingo.dev" git push
(اختياري) الخطوة 5. تخصيص سير العمل
Lingo.dev CI/CD لديه قيم افتراضية لا تحتاج في معظم الحالات إلى التخصيص. يمكنك تجاوزها عن طريق تمرير مدخلات إلى GitHub Action:
المدخلات المتاحة:
version: إصدار Lingo.dev CLI (افتراضي:"latest")api-key: مفتاح API لمنصة Lingo.dev (مطلوب)pull-request: إنشاء طلب سحب مع التغييرات (افتراضي:false)commit-message: رسالة التزام مخصصة (افتراضي:"feat: update translations via @LingoDotDev")pull-request-title: عنوان طلب السحب المخصص (افتراضي:"feat: update translations via @LingoDotDev")commit-author-name: اسم مؤلف التزام Git (افتراضي:"Lingo.dev")commit-author-email: البريد الإلكتروني لمؤلف التزام Git (افتراضي:"[email protected]")working-directory: دليل العمل (افتراضي:".")process-own-commits: معالجة الالتزامات التي تم إجراؤها بواسطة هذا الإجراء (افتراضي:false)parallel: التشغيل في الوضع المتوازي (افتراضي:false)
مثال مع مدخلات مخصصة:
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
commit-message: "My custom commit message!"
parallel: true
أمثلة سير العمل
الالتزام بالفرع الرئيسي
عند دمج المحتوى في main، يتم commit الترجمات إلى main.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
Pull request من main
عند دمج المحتوى في main، يتم إنشاء pull request من main.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
pull-request: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Commit إلى فرع الميزة
عند دمج المحتوى في فرع ميزة، يتم commit الترجمات إلى الفرع.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
Pull request من فرع الميزة
عند دمج المحتوى في فرع ميزة، يتم إنشاء pull request من الفرع.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
pull-request: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}