Public țintă: Acest ghid se adresează utilizatorilor din majoritatea depozitelor publice sau private unde permisiunile standard GitHub Actions sunt suficiente. Folosește GITHUB_TOKEN integrat.
Automatizează traducerea documentației din depozitul tău cu ușurință folosind acțiunea Co-op Translator pe GitHub. Acest ghid te ajută să configurezi acțiunea astfel încât să creeze automat pull request-uri cu traduceri actualizate ori de câte ori se modifică fișierele tale Markdown sursă sau imaginile.
[!IMPORTANT]
Alegerea ghidului potrivit:
Acest ghid descrie configurarea simplă folosind
GITHUB_TOKENstandard. Este metoda recomandată pentru majoritatea utilizatorilor, deoarece nu necesită gestionarea unor chei private sensibile pentru aplicații GitHub.
Înainte de a configura acțiunea GitHub, asigură-te că ai la dispoziție credențialele pentru serviciul AI.
1. Obligatoriu: Credențiale pentru modelul AI de limbaj Ai nevoie de credențiale pentru cel puțin un model de limbaj suportat:
2. Opțional: Credențiale AI Vision (pentru traducerea imaginilor)
Urmează pașii de mai jos pentru a configura acțiunea Co-op Translator în depozitul tău folosind GITHUB_TOKEN standard.
GITHUB_TOKEN)Acest workflow folosește GITHUB_TOKEN integrat, oferit de GitHub Actions. Acest token acordă automat permisiuni workflow-ului pentru a interacționa cu depozitul tău, conform setărilor din Pasul 3.
Trebuie doar să adaugi credențialele serviciului AI ca secrete criptate în setările depozitului.
Sub Repository secrets, apasă New repository secret pentru fiecare secret AI necesar din lista de mai jos.
(Referință imagine: Arată unde se adaugă secretele)
Secrete AI necesare (Adaugă TOATE care se aplică în funcție de cerințele tale):
| Nume secret | Descriere | Sursa valorii |
|---|---|---|
AZURE_AI_SERVICE_API_KEY |
Cheie pentru Azure AI Service (Computer Vision) | Azure AI Foundry |
AZURE_AI_SERVICE_ENDPOINT |
Endpoint pentru Azure AI Service (Computer Vision) | Azure AI Foundry |
AZURE_OPENAI_API_KEY |
Cheie pentru serviciul Azure OpenAI | Azure AI Foundry |
AZURE_OPENAI_ENDPOINT |
Endpoint pentru serviciul Azure OpenAI | Azure AI Foundry |
AZURE_OPENAI_MODEL_NAME |
Numele modelului Azure OpenAI | Azure AI Foundry |
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME |
Numele deployment-ului Azure OpenAI | Azure AI Foundry |
AZURE_OPENAI_API_VERSION |
Versiunea API pentru Azure OpenAI | Azure AI Foundry |
OPENAI_API_KEY |
Cheie API pentru OpenAI | Platforma OpenAI |
OPENAI_ORG_ID |
ID organizație OpenAI (Opțional) | Platforma OpenAI |
OPENAI_CHAT_MODEL_ID |
ID model OpenAI specific (Opțional) | Platforma OpenAI |
OPENAI_BASE_URL |
URL de bază personalizat pentru API OpenAI (Opțional) | Platforma OpenAI |
Acțiunea GitHub are nevoie de permisiuni acordate prin GITHUB_TOKEN pentru a face checkout la cod și a crea pull request-uri.
contents: write și pull-requests: write necesare workflow-ului.
În final, creează fișierul YAML care definește workflow-ul automatizat folosind GITHUB_TOKEN.
.github/workflows/ dacă nu există deja..github/workflows/, creează fișierul 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
# === AI Service Credentials ===
AZURE_AI_SERVICE_API_KEY: $
AZURE_AI_SERVICE_ENDPOINT: $
AZURE_OPENAI_API_KEY: $
AZURE_OPENAI_ENDPOINT: $
AZURE_OPENAI_MODEL_NAME: $
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: $
AZURE_OPENAI_API_VERSION: $
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: 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, TREBUIE să verifici și să modifici lista codurilor de limbă din comanda translate -l "..." -y pentru a corespunde cerințelor proiectului tău. Lista exemplu (ar de es...) trebuie înlocuită sau ajustată.on:): Trigger-ul actual rulează la fiecare push pe main. Pentru depozite mari, ia în considerare adăugarea unui filtru paths: (vezi exemplul comentat din YAML) pentru a rula workflow-ul doar când se modifică fișiere relevante (ex: documentația sursă), economisind minutele runner-ului.commit-message, title, body, numele branch și labels din pasul Create Pull Request dacă este necesar.[!WARNING]
Limită de timp pentru runner-ul găzduit de GitHub:
Runner-ele găzduite de GitHub, precumubuntu-latest, au o limită maximă de execuție de 6 ore.
Pentru depozite mari de documentație, dacă procesul de traducere depășește 6 ore, workflow-ul va fi oprit automat.
Pentru a evita acest lucru, ia în considerare:
- Utilizarea unui runner self-hosted (fără limită de timp)
- Reducerea numărului de limbi țintă per rulare
După ce fișierul co-op-translator.yml este integrat în ramura principală (sau ramura specificată în trigger-ul on:), workflow-ul va rula automat ori de câte ori se fac modificări pe acea ramură (și se potrivește cu filtrul paths, dacă este configurat).
Declarație de responsabilitate: Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original, în limba sa nativă, trebuie considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de oameni. Nu ne asumăm răspunderea pentru orice neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.