लक्ष्य दर्शक: यह गाइड Microsoft के आंतरिक उपयोगकर्ताओं या उन टीमों के लिए है जिनके पास पहले से बने Co-op Translator GitHub App के लिए आवश्यक क्रेडेंशियल्स हैं या जो अपना खुद का कस्टम GitHub App बना सकते हैं।
अपने रिपॉजिटरी की डाक्यूमेंटेशन का अनुवाद ऑटोमेट करने के लिए Co-op Translator GitHub Action का उपयोग करें। यह गाइड आपको एक्शन सेटअप करने की प्रक्रिया समझाता है ताकि जब भी आपके सोर्स Markdown फाइल या इमेज बदलें, तब अपने आप अपडेटेड अनुवाद के साथ पुल रिक्वेस्ट बन जाए।
[!IMPORTANT]
सही गाइड चुनना:
यह गाइड GitHub App ID और Private Key का उपयोग करके सेटअप की प्रक्रिया बताता है। आपको आमतौर पर यह “संगठन गाइड” तब चाहिए जब:
GITHUB_TOKENकी परमिशन सीमित है: आपके संगठन या रिपॉजिटरी की सेटिंग्स डिफॉल्टGITHUB_TOKENको दी गई परमिशन को सीमित करती हैं। खासकर, अगरGITHUB_TOKENको जरूरीwriteपरमिशन (जैसेcontents: writeयाpull-requests: write) नहीं दी गई है, तो Public Setup Guide में दिया वर्कफ्लो परमिशन की कमी के कारण फेल हो जाएगा। एक डेडिकेटेड GitHub App, जिसे स्पष्ट रूप से परमिशन दी गई है, इस लिमिटेशन को दूर करता है।अगर ऊपर दिया गया आपके लिए लागू नहीं है:
अगर आपके रिपॉजिटरी में स्टैंडर्ड
GITHUB_TOKENके पास पर्याप्त परमिशन है (यानी आपको संगठन की सीमाओं से कोई रुकावट नहीं है), तो कृपया Public Setup Guide using GITHUB_TOKEN का उपयोग करें। पब्लिक गाइड में App ID या Private Key लेने या संभालने की जरूरत नहीं होती, सिर्फ स्टैंडर्डGITHUB_TOKENऔर रिपॉजिटरी परमिशन पर निर्भर करता है।
GitHub Action को कॉन्फ़िगर करने से पहले, सुनिश्चित करें कि आपके पास जरूरी AI सेवा के क्रेडेंशियल्स हैं।
1. जरूरी: AI Language Model क्रेडेंशियल्स आपको कम से कम एक सपोर्टेड Language Model के लिए क्रेडेंशियल्स चाहिए:
2. वैकल्पिक: Computer Vision क्रेडेंशियल्स (इमेज अनुवाद के लिए)
नीचे दिए गए स्टेप्स को फॉलो करें ताकि Co-op Translator GitHub Action को अपने रिपॉजिटरी में कॉन्फ़िगर कर सकें:
वर्कफ्लो आपके रिपॉजिटरी के साथ सुरक्षित रूप से इंटरैक्ट करने के लिए GitHub App authentication का उपयोग करता है (जैसे पुल रिक्वेस्ट बनाना)। कोई एक विकल्प चुनें:
Co-op Translator GitHub App पेज पर जाएँ।
Install चुनें और उस अकाउंट या संगठन को चुनें जिसमें आपका टारगेट रिपॉजिटरी है।

Only select repositories चुनें और अपना टारगेट रिपॉजिटरी (जैसे PhiCookBook) चुनें। Install पर क्लिक करें। आपसे ऑथेंटिकेट करने के लिए कहा जा सकता है।

1164076..pem प्राइवेट की फाइल का कंटेंट लेना होगा। इस की को पासवर्ड की तरह सुरक्षित रखें।आपको GitHub App के क्रेडेंशियल्स और AI सेवा के क्रेडेंशियल्स को अपने रिपॉजिटरी सेटिंग्स में एन्क्रिप्टेड सीक्रेट्स के रूप में जोड़ना होगा।
अपने टारगेट GitHub रिपॉजिटरी (जैसे PhiCookBook) पर जाएँ।
Settings > Secrets and variables > Actions पर जाएँ।
Repository secrets के तहत, नीचे दिए गए हर सीक्रेट के लिए New repository secret पर क्लिक करें।

जरूरी सीक्रेट्स (GitHub App Authentication के लिए):
| सीक्रेट नाम | विवरण | वैल्यू स्रोत |
|---|---|---|
GH_APP_ID |
GitHub App का App ID (स्टेप 1 से)। | GitHub App Settings |
GH_APP_PRIVATE_KEY |
डाउनलोड किए गए .pem फाइल का पूरा कंटेंट। |
.pem फाइल (स्टेप 1 से) |
AI सेवा के सीक्रेट्स (आवश्यकता अनुसार सभी जोड़ें):
| सीक्रेट नाम | विवरण | वैल्यू स्रोत |
|---|---|---|
AZURE_AI_SERVICE_API_KEY |
Azure AI Service (Computer Vision) के लिए Key | Azure AI Foundry |
AZURE_AI_SERVICE_ENDPOINT |
Azure AI Service (Computer Vision) के लिए Endpoint | Azure AI Foundry |
AZURE_OPENAI_API_KEY |
Azure OpenAI सेवा के लिए Key | Azure AI Foundry |
AZURE_OPENAI_ENDPOINT |
Azure OpenAI सेवा के लिए Endpoint | Azure AI Foundry |
AZURE_OPENAI_MODEL_NAME |
आपका Azure OpenAI Model Name | Azure AI Foundry |
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME |
आपका Azure OpenAI Deployment Name | Azure AI Foundry |
AZURE_OPENAI_API_VERSION |
Azure OpenAI के लिए API Version | Azure AI Foundry |
OPENAI_API_KEY |
OpenAI के लिए API Key | OpenAI Platform |
OPENAI_ORG_ID |
OpenAI Organization ID | OpenAI Platform |
OPENAI_CHAT_MODEL_ID |
स्पेसिफिक OpenAI मॉडल ID | OpenAI Platform |
OPENAI_BASE_URL |
कस्टम OpenAI API Base URL | OpenAI Platform |

अंत में, 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 में कमेंटेड उदाहरण देखें) जोड़ने पर विचार करें ताकि वर्कफ्लो सिर्फ तब चले जब जरूरी फाइलें (जैसे सोर्स डाक्यूमेंटेशन) बदलें, जिससे रनर मिनट्स बचें।commit-message, title, body, branch नाम, और labels को Create Pull Request स्टेप में कस्टमाइज़ करें।AZURE_OPENAI_... keys) को समय रहते अपडेट करें।[!WARNING]
GitHub-hosted Runner समय सीमा:
GitHub-hosted रनर जैसेubuntu-latestकी अधिकतम रनिंग समय सीमा 6 घंटे है।
अगर बड़े डाक्यूमेंटेशन रिपॉजिटरी में ट्रांसलेशन प्रोसेस 6 घंटे से ज्यादा हो जाता है, तो वर्कफ्लो अपने आप बंद हो जाएगा।
इससे बचने के लिए:
- सेल्फ-होस्टेड रनर का उपयोग करें (कोई समय सीमा नहीं)
- हर रन में टारगेट भाषाओं की संख्या कम करें
जब co-op-translator.yml फाइल आपके मुख्य ब्रांच (या on: ट्रिगर में दी गई ब्रांच) में मर्ज हो जाती है, तो वर्कफ्लो अपने आप चलेगा जब भी उस ब्रांच में बदलाव पुश किए जाएँ (और अगर paths फिल्टर कॉन्फ़िगर किया है तो उसके अनुसार)।
अगर अनुवाद जनरेट या अपडेट होते हैं, तो एक्शन अपने आप बदलाव के साथ एक Pull Request बना देगा, जो आपकी समीक्षा और मर्जिंग के लिए तैयार रहेगा।
अस्वीकरण: इस दस्तावेज़ का अनुवाद एआई अनुवाद सेवा Co-op Translator का उपयोग करके किया गया है। जबकि हम सटीकता के लिए प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या गलतियाँ हो सकती हैं। मूल दस्तावेज़ को उसकी मूल भाषा में ही प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।