Tikslinė auditorija: Šis vadovas skirtas Microsoft vidiniams naudotojams arba komandoms, turinčioms prieigą prie iš anksto paruoštos Co-op Translator GitHub programėlės kredencialų arba galinčioms susikurti savo GitHub programėlę.
Automatiškai išverskite savo repozitorijos dokumentaciją naudodami Co-op Translator GitHub Action. Šiame vadove rasite instrukcijas, kaip sukonfigūruoti veiksmą, kad automatiškai būtų kuriami pull request'ai su atnaujintais vertimais, kai tik pasikeičia jūsų Markdown failai ar paveikslėliai.
Important
Pasirinkite tinkamą vadovą:
Šiame vadove aprašyta konfigūracija naudojant GitHub App ID ir privatų raktą. Šis „organizacijos vadovo“ metodas paprastai reikalingas, jei: GITHUB_TOKEN leidimai yra apriboti: Jūsų organizacijos ar repozitorijos nustatymai riboja standartinio GITHUB_TOKEN suteikiamus leidimus. Jei GITHUB_TOKEN neturi reikiamų write leidimų (pvz., contents: write ar pull-requests: write), viešojo vadovo darbo eiga nepavyks dėl nepakankamų leidimų. Naudojant specialią GitHub programėlę su aiškiai suteiktais leidimais, šis apribojimas apeinamas.
Jei aukščiau aprašyta situacija jums netaikoma:
Jei standartinis GITHUB_TOKEN turi pakankamai leidimų jūsų repozitorijoje (t. y. jūsų neblokuoja organizaciniai apribojimai), naudokite viešąjį vadovą su GITHUB_TOKEN. Viešajam vadovui nereikia gauti ar valdyti App ID ar privačių raktų – pakanka standartinio GITHUB_TOKEN ir repozitorijos leidimų.
Prieš konfigūruodami GitHub Action, įsitikinkite, kad turite reikiamus AI paslaugų kredencialus.
1. Privaloma: AI kalbos modelio kredencialai Reikalingi bent vienos palaikomos kalbos modelio kredencialai:
- Azure OpenAI: Reikalingas Endpoint, API Key, Model/Deployment pavadinimai, API versija.
- OpenAI: Reikalingas API Key, (pasirinktinai: Org ID, Base URL, Model ID).
- Daugiau informacijos rasite Palaikomi modeliai ir paslaugos.
- Konfigūravimo vadovas: Azure OpenAI konfigūravimas.
2. Pasirinktinai: Kompiuterinės regos kredencialai (vaizdų vertimui)
- Reikalinga tik jei norite versti tekstą paveikslėliuose.
- Azure Computer Vision: Reikalingas Endpoint ir Subscription Key.
- Jei nepateiksite, veiksmas veiks tik su Markdown.
- Konfigūravimo vadovas: Azure Computer Vision konfigūravimas.
Vadovaukitės šiais žingsniais, kad sukonfigūruotumėte Co-op Translator GitHub Action savo repozitorijoje:
Darbo eiga naudoja GitHub App autentifikaciją, kad saugiai galėtų veikti jūsų repozitorijoje (pvz., kurti pull request'us) jūsų vardu. Pasirinkite vieną variantą:
A variantas: Įdiekite iš anksto paruoštą Co-op Translator GitHub programėlę (Microsoft vidiniam naudojimui)
-
Eikite į Co-op Translator GitHub App puslapį.
-
Pasirinkite Install ir pasirinkite paskyrą ar organizaciją, kurioje yra jūsų repozitorija.
-
Pasirinkite Only select repositories ir pažymėkite savo repozitoriją (pvz.,
PhiCookBook). Spauskite Install. Gali tekti patvirtinti tapatybę. -
Gaukite programėlės kredencialus (vidinis procesas): Kad darbo eiga galėtų autentifikuotis kaip programėlė, jums reikės dviejų duomenų, kuriuos suteikia Co-op Translator komanda:
- App ID: Unikalus Co-op Translator programėlės identifikatorius. App ID yra:
1164076. - Privatus raktas: Turite gauti visą
.pemprivataus rakto failo turinį iš atsakingo asmens. Laikykite šį raktą saugiai, kaip slaptažodį.
- Pereikite prie 2 žingsnio.
- Jei norite, galite susikurti ir sukonfigūruoti savo GitHub programėlę. Įsitikinkite, kad ji turi Read & write prieigą prie Contents ir Pull requests. Jums reikės jos App ID ir sugeneruoto privataus rakto.
Turite pridėti GitHub programėlės kredencialus ir AI paslaugų kredencialus kaip užšifruotas paslaptis repozitorijos nustatymuose.
-
Eikite į savo repozitoriją (pvz.,
PhiCookBook). -
Eikite į Settings > Secrets and variables > Actions.
-
Skiltyje Repository secrets spauskite New repository secret kiekvienai žemiau nurodytai paslapčiai.
Privalomos paslaptys (GitHub programėlės autentifikacijai):
| Paslapties pavadinimas | Aprašymas | Vertės šaltinis |
|---|---|---|
GH_APP_ID |
GitHub programėlės App ID (iš 1 žingsnio). | GitHub App nustatymai |
GH_APP_PRIVATE_KEY |
Visas atsisiųsto .pem failo turinys. |
.pem failas (iš 1 žingsnio) |
AI paslaugų paslaptys (pridėkite visas, kurios taikomos pagal jūsų poreikius):
| Paslapties pavadinimas | Aprašymas | Vertės šaltinis |
|---|---|---|
AZURE_AI_SERVICE_API_KEY |
Azure AI Service raktas (Computer Vision) | Azure AI Foundry |
AZURE_AI_SERVICE_ENDPOINT |
Azure AI Service Endpoint (Computer Vision) | Azure AI Foundry |
AZURE_OPENAI_API_KEY |
Azure OpenAI paslaugos raktas | Azure AI Foundry |
AZURE_OPENAI_ENDPOINT |
Azure OpenAI paslaugos Endpoint | Azure AI Foundry |
AZURE_OPENAI_MODEL_NAME |
Azure OpenAI modelio pavadinimas | Azure AI Foundry |
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME |
Azure OpenAI diegimo pavadinimas | Azure AI Foundry |
AZURE_OPENAI_API_VERSION |
Azure OpenAI API versija | Azure AI Foundry |
OPENAI_API_KEY |
OpenAI API raktas | OpenAI Platform |
OPENAI_ORG_ID |
OpenAI organizacijos ID | OpenAI Platform |
OPENAI_CHAT_MODEL_ID |
Konkretus OpenAI modelio ID | OpenAI Platform |
OPENAI_BASE_URL |
OpenAI API bazinis URL | OpenAI Platform |
Galiausiai sukurkite YAML failą, apibrėžiantį automatizuotą darbo eigą.
-
Repozitorijos šakniniame kataloge sukurkite
.github/workflows/katalogą, jei jo dar nėra. -
Kataloge
.github/workflows/sukurkite failą pavadinimuco-op-translator.yml. -
Įklijuokite žemiau pateiktą turinį į 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: ${{ secrets.AZURE_AI_SERVICE_API_KEY }}
AZURE_AI_SERVICE_ENDPOINT: ${{ secrets.AZURE_AI_SERVICE_ENDPOINT }}
# Azure OpenAI Credentials
AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }}
AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
AZURE_OPENAI_MODEL_NAME: ${{ secrets.AZURE_OPENAI_MODEL_NAME }}
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_CHAT_DEPLOYMENT_NAME }}
AZURE_OPENAI_API_VERSION: ${{ secrets.AZURE_OPENAI_API_VERSION }}
# OpenAI Credentials
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_ORG_ID: ${{ secrets.OPENAI_ORG_ID }}
OPENAI_CHAT_MODEL_ID: ${{ secrets.OPENAI_CHAT_MODEL_ID }}
OPENAI_BASE_URL: ${{ secrets.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: ${{ secrets.GH_APP_ID }}
private_key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- name: Create Pull Request with translations
uses: peter-evans/create-pull-request@v5
with:
token: ${{ steps.generate_token.outputs.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/
- Priderinkite darbo eigą:
- [!IMPORTANT] Tikslinės kalbos:
Run Co-op Translatoržingsnyje BŪTINAI peržiūrėkite ir pakeiskite kalbų kodų sąrašą komandojetranslate -l "..." -y, kad jis atitiktų jūsų projekto poreikius. Pavyzdinis sąrašas (ar de es...) turi būti pakeistas arba pakoreguotas. - Trigger (
on:): Dabartinis trigger'is veikia kiekvieną kartą, kai įvyksta push įmain. Didelėms repozitorijoms rekomenduojama pridėtipaths:filtrą (žr. YAML komentaruose), kad darbo eiga būtų vykdoma tik pasikeitus aktualiems failams (pvz., dokumentacijai), taip taupant runner minutes. - PR informacija: Jei reikia, pritaikykite
commit-message,title,body,branchpavadinimą irlabelsžingsnyjeCreate Pull Request.
- Saugumas: Visada saugokite jautrius kredencialus (API raktus, privačius raktus) kaip GitHub Actions paslaptis. Niekada jų neatskleiskite darbo eigos faile ar repozitorijos kode.
- [!IMPORTANT] Rakto atnaujinimas (Microsoft vidiniams naudotojams): Atkreipkite dėmesį, kad Azure OpenAI raktas, naudojamas Microsoft viduje, gali turėti privalomą atnaujinimo politiką (pvz., kas 5 mėnesius). Būtinai atnaujinkite atitinkamas GitHub paslaptis (
AZURE_OPENAI_...raktus) prieš jiems pasibaigiant, kad išvengtumėte darbo eigos klaidų.
Warning
GitHub-hosted Runner laiko limitas:
GitHub-hosted runner'iai, tokie kaip ubuntu-latest, turi maksimalų vykdymo laiką – 6 valandas.
Jei didelės dokumentacijos repozitorijos vertimo procesas užtruks ilgiau nei 6 valandas, darbo eiga bus automatiškai nutraukta.
Kad to išvengtumėte, apsvarstykite:
- Naudoti self-hosted runner (be laiko limito)
- Sumažinti tikslinių kalbų skaičių per vieną vykdymą
Kai co-op-translator.yml failas bus sujungtas į pagrindinę šaką (ar kitą šaką, nurodytą on: trigger'yje), darbo eiga automatiškai bus vykdoma kiekvieną kartą, kai į tą šaką bus įkelti pakeitimai (ir atitiks paths filtrą, jei jis sukonfigūruotas).
Jei bus sugeneruoti ar atnaujinti vertimai, veiksmas automatiškai sukurs Pull Request su pakeitimais, paruoštais jūsų peržiūrai ir sujungimui.
Atsakomybės atsisakymas: Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Svarbios informacijos atveju rekomenduojame profesionalų žmogaus vertimą. Mes neatsakome už nesusipratimus ar neteisingą interpretaciją, kylančią dėl šio vertimo naudojimo.



