الجمهور المستهدف: هذا الدليل مخصص لموظفي Microsoft الداخليين أو الفرق التي لديها صلاحية الوصول إلى بيانات اعتماد تطبيق Co-op Translator GitHub الجاهز أو يمكنهم إنشاء تطبيق GitHub مخصص خاص بهم.
قم بأتمتة ترجمة توثيق مستودعك بسهولة باستخدام إجراء Co-op Translator في GitHub. سيرشدك هذا الدليل خلال إعداد الإجراء لإنشاء طلبات سحب تلقائيًا مع الترجمات المحدثة كلما تم تغيير ملفات Markdown المصدرية أو الصور.
[!IMPORTANT]
اختيار الدليل المناسب:
يشرح هذا الدليل الإعداد باستخدام معرّف تطبيق GitHub ومفتاح خاص. عادةً ما تحتاج إلى طريقة “دليل المؤسسات” هذه إذا:
GITHUB_TOKENلديه صلاحيات محدودة: إعدادات مؤسستك أو مستودعك تقيد الصلاحيات الافتراضية الممنوحة لـGITHUB_TOKENالقياسي. تحديدًا، إذا لم يُسمح لـGITHUB_TOKENبالصلاحيات اللازمة للكتابة (مثلcontents: writeأوpull-requests: write)، فسيفشل سير العمل في دليل الإعداد العام بسبب عدم كفاية الصلاحيات. استخدام تطبيق GitHub مخصص مع صلاحيات محددة يتجاوز هذا القيد.إذا لم ينطبق عليك ما سبق:
إذا كان لدى
GITHUB_TOKENالقياسي الصلاحيات الكافية في مستودعك (أي أنك لست مقيدًا بقيود تنظيمية)، يرجى استخدام دليل الإعداد العام باستخدام GITHUB_TOKEN. الدليل العام لا يتطلب الحصول على معرفات تطبيق أو مفاتيح خاصة ويعتمد فقط علىGITHUB_TOKENالقياسي وصلاحيات المستودع.
قبل إعداد إجراء GitHub، تأكد من توفر بيانات اعتماد خدمة الذكاء الاصطناعي اللازمة لديك.
1. مطلوب: بيانات اعتماد نموذج اللغة الذكي تحتاج إلى بيانات اعتماد لنموذج لغة مدعوم واحد على الأقل:
2. اختياري: بيانات اعتماد الرؤية الحاسوبية (لترجمة الصور)
اتبع الخطوات التالية لإعداد إجراء Co-op Translator في مستودعك:
يستخدم سير العمل مصادقة تطبيق GitHub للتفاعل الآمن مع مستودعك (مثل إنشاء طلبات السحب) نيابة عنك. اختر أحد الخيارين:
انتقل إلى صفحة تطبيق Co-op Translator في GitHub.
اختر تثبيت وحدد الحساب أو المؤسسة التي يوجد بها مستودعك المستهدف.

اختر تحديد مستودعات فقط وحدد مستودعك المستهدف (مثلاً: PhiCookBook). اضغط تثبيت. قد يُطلب منك المصادقة.

1164076..pem من جهة الاتصال المسؤولة عن الصيانة. تعامل مع هذا المفتاح ككلمة مرور واحتفظ به بأمان.تحتاج إلى إضافة بيانات اعتماد تطبيق GitHub وبيانات اعتماد خدمة الذكاء الاصطناعي كأسرار مشفرة في إعدادات مستودعك.
انتقل إلى مستودع GitHub المستهدف (مثلاً: PhiCookBook).
اذهب إلى الإعدادات > الأسرار والمتغيرات > الإجراءات.
ضمن أسرار المستودع، اضغط سر مستودع جديد لكل سر من الأسرار المدرجة أدناه.

الأسرار المطلوبة (لمصادقة تطبيق GitHub):
| اسم السر | الوصف | مصدر القيمة |
|---|---|---|
GH_APP_ID |
معرّف تطبيق GitHub (من الخطوة 1). | إعدادات تطبيق GitHub |
GH_APP_PRIVATE_KEY |
المحتوى الكامل لملف .pem الذي تم تحميله. |
ملف .pem (من الخطوة 1) |
أسرار خدمة الذكاء الاصطناعي (أضف جميع ما ينطبق حسب متطلباتك):
| اسم السر | الوصف | مصدر القيمة |
|---|---|---|
AZURE_AI_SERVICE_API_KEY |
مفتاح خدمة Azure AI (الرؤية الحاسوبية) | Azure AI Foundry |
AZURE_AI_SERVICE_ENDPOINT |
نقطة نهاية خدمة Azure AI (الرؤية الحاسوبية) | Azure AI Foundry |
AZURE_OPENAI_API_KEY |
مفتاح خدمة Azure OpenAI | Azure AI Foundry |
AZURE_OPENAI_ENDPOINT |
نقطة نهاية خدمة Azure OpenAI | Azure AI Foundry |
AZURE_OPENAI_MODEL_NAME |
اسم نموذج Azure OpenAI الخاص بك | Azure AI Foundry |
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME |
اسم نشر Azure OpenAI الخاص بك | Azure AI Foundry |
AZURE_OPENAI_API_VERSION |
إصدار API لـ Azure OpenAI | Azure AI Foundry |
OPENAI_API_KEY |
مفتاح API لـ OpenAI | منصة OpenAI |
OPENAI_ORG_ID |
معرف منظمة OpenAI | منصة OpenAI |
OPENAI_CHAT_MODEL_ID |
معرف نموذج OpenAI المحدد | منصة OpenAI |
OPENAI_BASE_URL |
عنوان قاعدة API مخصص لـ OpenAI | منصة OpenAI |

أخيرًا، أنشئ ملف YAML الذي يعرّف سير العمل المؤتمت.
في الدليل الجذري لمستودعك، أنشئ مجلد .github/workflows/ إذا لم يكن موجودًا.
داخل .github/workflows/، أنشئ ملفًا باسم co-op-translator.yml.
الصق المحتوى التالي في ملف co-op-translator.yml.
name: Co-op Translator
on:
push:
branches:
- main
jobs:
co-op-translator:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install Co-op Translator
run: |
python -m pip install --upgrade pip
pip install co-op-translator
- name: Run Co-op Translator
env:
PYTHONIOENCODING: utf-8
# Azure AI Service Credentials
AZURE_AI_SERVICE_API_KEY: $
AZURE_AI_SERVICE_ENDPOINT: $
# Azure OpenAI Credentials
AZURE_OPENAI_API_KEY: $
AZURE_OPENAI_ENDPOINT: $
AZURE_OPENAI_MODEL_NAME: $
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: $
AZURE_OPENAI_API_VERSION: $
# OpenAI Credentials
OPENAI_API_KEY: $
OPENAI_ORG_ID: $
OPENAI_CHAT_MODEL_ID: $
OPENAI_BASE_URL: $
run: |
# =====================================================================
# IMPORTANT: Set your target languages here (REQUIRED CONFIGURATION)
# =====================================================================
# Example: Translate to Spanish, French, German. Add -y to auto-confirm.
translate -l "es fr de" -y # <--- MODIFY THIS LINE with your desired languages
- name: Authenticate GitHub App
id: generate_token
uses: tibdex/github-app-token@v1
with:
app_id: $
private_key: $
- name: Create Pull Request with translations
uses: peter-evans/create-pull-request@v5
with:
token: $
commit-message: "🌐 Update translations via Co-op Translator"
title: "🌐 Update translations via Co-op Translator"
body: |
This PR updates translations for recent changes to the main branch.
### 📋 Changes included
- Translated contents are available in the `translations/` directory
- Translated images are available in the `translated_images/` directory
---
🌐 Automatically generated by the [Co-op Translator](https://github.com/Azure/co-op-translator) GitHub Action.
branch: update-translations
base: main
labels: translation, automated-pr
delete-branch: true
add-paths: |
translations/
translated_images/
Run Co-op Translator، يجب عليك مراجعة وتعديل قائمة رموز اللغات داخل أمر translate -l "..." -y لتناسب متطلبات مشروعك. القائمة الموجودة كمثال (ar de es...) يجب استبدالها أو تعديلها.on:): المشغل الحالي يعمل عند كل دفع إلى main. للمستودعات الكبيرة، فكر في إضافة فلتر paths: (انظر المثال المعلق في ملف YAML) لتشغيل سير العمل فقط عند تغيير الملفات ذات الصلة (مثل التوثيق المصدري)، لتوفير دقائق تشغيل runner.commit-message، title، body، اسم الفرع، وlabels في خطوة Create Pull Request إذا لزم الأمر.AZURE_OPENAI_...) قبل انتهاء صلاحيتها لتجنب فشل سير العمل.[!WARNING]
حد أقصى لمدة تشغيل runner المستضاف من GitHub:
runners المستضافة من GitHub مثلubuntu-latestلديها حد أقصى لمدة التنفيذ وهو 6 ساعات.
بالنسبة لمستودعات التوثيق الكبيرة، إذا تجاوزت عملية الترجمة 6 ساعات، سيتم إنهاء سير العمل تلقائيًا.
لتجنب ذلك، فكر في:
- استخدام runner مستضاف ذاتيًا (بدون حد زمني)
- تقليل عدد اللغات المستهدفة في كل تشغيل
بمجرد دمج ملف co-op-translator.yml في الفرع الرئيسي (أو الفرع المحدد في مشغل on:)، سيعمل سير العمل تلقائيًا عند دفع تغييرات إلى ذلك الفرع (ومطابقة فلتر paths إذا تم تكوينه).
إذا تم إنشاء أو تحديث ترجمات، سيقوم الإجراء تلقائيًا بإنشاء طلب سحب يحتوي على التغييرات، ليكون جاهزًا للمراجعة والدمج.
إخلاء المسؤولية: تمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسير خاطئ ينشأ عن استخدام هذه الترجمة.