GitHub Actions¶
Folosește GitHub Actions când vrei ca un repository să traducă automat documentația modificată și să deschidă un pull request cu rezultatele generate.
Majoritatea repository-urilor ar trebui să folosească configurația standard GITHUB_TOKEN. Folosește configurarea GitHub App numai când organizația ta restricționează permisiunile implicite ale token-ului sau solicită autentificare bazată pe aplicație.
Prerequisites¶
Înainte de a crea workflow-ul, configurează secretele serviciilor AI de care rulează traducerea ta are nevoie.
Traducerea textului necesită un singur furnizor de modele de limbaj:
- Azure OpenAI:
AZURE_OPENAI_API_KEY,AZURE_OPENAI_ENDPOINT,AZURE_OPENAI_MODEL_NAME,AZURE_OPENAI_CHAT_DEPLOYMENT_NAME,AZURE_OPENAI_API_VERSION - OpenAI:
OPENAI_API_KEY,OPENAI_CHAT_MODEL_ID, plus opționalOPENAI_ORG_IDșiOPENAI_BASE_URL
Traducerea imaginilor necesită în plus Azure AI Vision:
AZURE_AI_SERVICE_API_KEYAZURE_AI_SERVICE_ENDPOINT
Vezi Configuration și Azure AI Setup pentru detalii de configurare locală.
Standard Setup¶
Folosește această configurare pentru majoritatea repository-urilor publice și private.
Step 1: Add Repository Secrets¶
În repository-ul țintă, deschide Settings > Secrets and variables > Actions, apoi adaugă secretele furnizorului pe care workflow-ul tău le va folosi.

Step 2: Enable Workflow Permissions¶
Deschide Settings > Actions > General.
Sub Workflow permissions:
- Selectează Read and write permissions.
- Activează Allow GitHub Actions to create and approve pull requests.
- Salvează setarea.

Step 3: Add the Workflow¶
Creează .github/workflows/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_API_KEY: ${{ secrets.AZURE_AI_SERVICE_API_KEY }}
AZURE_AI_SERVICE_ENDPOINT: ${{ secrets.AZURE_AI_SERVICE_ENDPOINT }}
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_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: |
translate -l "es fr de" -y
- name: Create Pull Request with translations
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_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.
Generated by Co-op Translator.
branch: update-translations
base: main
labels: translation, automated-pr
delete-branch: true
add-paths: |
translations/
translated_images/
Schimbă translate -l "es fr de" -y la limbile țintă și la flag-urile de conținut de care are nevoie proiectul tău. Pentru repository-urile mari, adaugă un filtru paths: sub on: astfel încât workflow-ul să ruleze doar când se schimbă documentația.
GitHub App Setup¶
Folosește această configurare atunci când GITHUB_TOKEN nu poate crea commit-uri sau pull request-uri în organizația ta.
Step 1: Create or Install a GitHub App¶
Creează o GitHub App cu acces de citire/scriere la Contents și Pull requests, sau instalează aplicația furnizată de organizație dacă organizația ta deja întreține una.
Înregistrează:
- App ID
- Private key contents
Stochează-le ca secrete ale repository-ului:
GH_APP_IDGH_APP_PRIVATE_KEY
Step 2: Generate an App Token¶
Folosește același workflow ca în configurarea standard, dar adaugă un pas app-token înainte de pasul pull request:
- 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"
branch: update-translations
base: main
delete-branch: true
add-paths: |
translations/
translated_images/
Runner Limits¶
Runner-urile găzduite de GitHub au o durată maximă pentru joburi. Repository-urile mari sau multe limbi țintă pot depăși această limită.
Pentru fluxuri mari de lucru de traducere:
- Tradu mai puține limbi pe rulare.
- Folosește flag-uri de conținut precum
-md,-nb, sau-img. - Folosește un runner self-hosted când dimensiunea repository-ului sau latența modelului face ca runner-urile găzduite să fie nesigure.
Review in CI¶
Folosește co-op-review când un pull request ar trebui să valideze traducerile generate fără a apela la furnizori LLM sau Vision.
- name: Review translated outputs
run: |
co-op-review --changed-from "origin/${{ github.base_ref }}" --format github
co-op-review este o comandă de revizuire deterministă în beta. Verificările și schema de output se pot schimba, dar este proiectată să fie sigură pentru CI deoarece nu scrie fișiere și nu apelează furnizori de modele.