Destinatari: Questa guida è pensata per utenti nella maggior parte dei repository pubblici o privati dove le autorizzazioni standard di GitHub Actions sono sufficienti. Utilizza il GITHUB_TOKEN integrato.
Automatizza la traduzione della documentazione del tuo repository in modo semplice con la GitHub Action Co-op Translator. Questa guida ti accompagna nella configurazione dell’action per creare automaticamente pull request con traduzioni aggiornate ogni volta che i tuoi file Markdown sorgente o le immagini vengono modificati.
[!IMPORTANT]
Scegliere la guida giusta:
Questa guida spiega la configurazione più semplice usando il
GITHUB_TOKENstandard. È il metodo consigliato per la maggior parte degli utenti perché non richiede la gestione di chiavi private sensibili di GitHub App.
Prima di configurare la GitHub Action, assicurati di avere pronti le credenziali del servizio AI necessario.
1. Obbligatorio: Credenziali del Modello Linguistico AI Hai bisogno delle credenziali per almeno uno dei modelli linguistici supportati:
2. Opzionale: Credenziali AI Vision (per la traduzione delle immagini)
Segui questi passaggi per configurare la GitHub Action Co-op Translator nel tuo repository usando il GITHUB_TOKEN standard.
GITHUB_TOKEN)Questo workflow utilizza il GITHUB_TOKEN integrato fornito da GitHub Actions. Questo token concede automaticamente i permessi necessari al workflow per interagire con il tuo repository in base alle impostazioni configurate nel Passo 3.
Devi solo aggiungere le credenziali del servizio AI come segreti criptati nelle impostazioni del tuo repository.
Sotto Repository secrets, clicca su New repository secret per ogni segreto richiesto elencato qui sotto.
(Riferimento immagine: mostra dove aggiungere i segreti)
Segreti richiesti per i servizi AI (Aggiungi TUTTI quelli che servono in base ai tuoi Prerequisiti):
| Nome Segreto | Descrizione | Fonte Valore |
|---|---|---|
AZURE_AI_SERVICE_API_KEY |
Chiave per Azure AI Service (Computer Vision) | Il tuo Azure AI Foundry |
AZURE_AI_SERVICE_ENDPOINT |
Endpoint per Azure AI Service (Computer Vision) | Il tuo Azure AI Foundry |
AZURE_OPENAI_API_KEY |
Chiave per Azure OpenAI service | Il tuo Azure AI Foundry |
AZURE_OPENAI_ENDPOINT |
Endpoint per Azure OpenAI service | Il tuo Azure AI Foundry |
AZURE_OPENAI_MODEL_NAME |
Nome del tuo modello Azure OpenAI | Il tuo Azure AI Foundry |
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME |
Nome del deployment Azure OpenAI | Il tuo Azure AI Foundry |
AZURE_OPENAI_API_VERSION |
Versione API per Azure OpenAI | Il tuo Azure AI Foundry |
OPENAI_API_KEY |
API Key per OpenAI | La tua piattaforma OpenAI |
OPENAI_ORG_ID |
ID Organizzazione OpenAI (Opzionale) | La tua piattaforma OpenAI |
OPENAI_CHAT_MODEL_ID |
ID modello OpenAI specifico (Opzionale) | La tua piattaforma OpenAI |
OPENAI_BASE_URL |
Base URL API OpenAI personalizzata (Opzionale) | La tua piattaforma OpenAI |
La GitHub Action necessita dei permessi concessi tramite il GITHUB_TOKEN per effettuare il checkout del codice e creare pull request.
GITHUB_TOKEN i permessi necessari contents: write e pull-requests: write per questo workflow.
Infine, crea il file YAML che definisce il workflow automatizzato usando GITHUB_TOKEN.
.github/workflows/ se non esiste già..github/workflows/, crea un file chiamato 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, DEVI controllare e modificare la lista dei codici lingua all’interno del comando translate -l "..." -y per adattarla alle esigenze del tuo progetto. La lista di esempio (ar de es...) va sostituita o aggiornata.on:): Il trigger attuale si attiva ad ogni push su main. Per repository grandi, valuta di aggiungere un filtro paths: (vedi esempio commentato nello YAML) per eseguire il workflow solo quando cambiano i file rilevanti (es. documentazione sorgente), risparmiando minuti di esecuzione.commit-message, title, body, nome del branch e le labels nel passaggio Create Pull Request se necessario.[!WARNING]
Limite di tempo dei runner GitHub-hosted:
I runner GitHub-hosted comeubuntu-latesthanno un limite massimo di esecuzione di 6 ore.
Per repository di documentazione molto grandi, se il processo di traduzione supera le 6 ore, il workflow verrà terminato automaticamente.
Per evitarlo, valuta:
- L’uso di un runner self-hosted (senza limiti di tempo)
- La riduzione del numero di lingue di destinazione per ogni esecuzione
Una volta che il file co-op-translator.yml è stato inserito nel tuo branch principale (o nel branch specificato nel trigger on:), il workflow verrà eseguito automaticamente ogni volta che vengono apportate modifiche a quel branch (e corrispondono al filtro paths, se configurato).
Disclaimer: Questo documento è stato tradotto utilizzando il servizio di traduzione AI Co-op Translator. Pur impegnandoci per garantire l’accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non siamo responsabili per eventuali fraintendimenti o interpretazioni errate derivanti dall’uso di questa traduzione.