Målgrupp: Den här guiden är avsedd för Microsoft-interna användare eller team som har tillgång till nödvändiga autentiseringsuppgifter för den färdigbyggda Co-op Translator GitHub Appen eller kan skapa sin egen anpassade GitHub App.
Automatisera översättningen av dokumentationen i ditt repository enkelt med Co-op Translator GitHub Action. Den här guiden visar hur du ställer in actionen så att den automatiskt skapar pull requests med uppdaterade översättningar när dina ursprungliga Markdown-filer eller bilder ändras.
[!IMPORTANT]
Välj rätt guide:
Den här guiden beskriver installation med GitHub App ID och en privat nyckel. Du behöver oftast denna “Organisationsguide” om:
GITHUB_TOKEN-behörigheter är begränsade: Din organisation eller repository-inställningar begränsar de standardbehörigheter som ges tillGITHUB_TOKEN. OmGITHUB_TOKENinte har nödvändigawrite-behörigheter (somcontents: writeellerpull-requests: write), kommer workflowen i Public Setup Guide att misslyckas på grund av otillräckliga behörigheter. Genom att använda en dedikerad GitHub App med explicit tilldelade behörigheter kringgår du denna begränsning.Om ovanstående inte gäller dig:
Om standard-
GITHUB_TOKENhar tillräckliga behörigheter i ditt repository (dvs. du är inte blockerad av organisationsbegränsningar), använd Public Setup Guide med GITHUB_TOKEN. Den publika guiden kräver inte att du hämtar eller hanterar App ID eller privata nycklar och använder endast standard-GITHUB_TOKENoch repository-behörigheter.
Innan du konfigurerar GitHub Action, se till att du har nödvändiga AI-tjänstautentiseringsuppgifter redo.
1. Obligatoriskt: Autentiseringsuppgifter för AI-språkmodell Du behöver autentiseringsuppgifter för minst en stödd språkmodell:
2. Valfritt: Computer Vision-autentiseringsuppgifter (för bildöversättning)
Följ dessa steg för att konfigurera Co-op Translator GitHub Action i ditt repository:
Workflowen använder GitHub App-autentisering för att säkert interagera med ditt repository (t.ex. skapa pull requests) åt dig. Välj ett alternativ:
Gå till sidan för Co-op Translator GitHub App.
Välj Installera och välj det konto eller den organisation där ditt repository finns.

Välj Endast utvalda repositories och välj ditt repository (t.ex. PhiCookBook). Klicka på Installera. Du kan behöva autentisera dig.

1164076..pem-filen med den privata nyckeln från kontaktpersonen. Behandla denna nyckel som ett lösenord och håll den säker.Du behöver lägga till GitHub App-autentiseringsuppgifter och dina AI-tjänstautentiseringsuppgifter som krypterade secrets i repository-inställningarna.
Gå till ditt repository (t.ex. PhiCookBook).
Gå till Settings > Secrets and variables > Actions.
Under Repository secrets, klicka på New repository secret för varje secret nedan.

Obligatoriska secrets (för GitHub App-autentisering):
| Secret Name | Beskrivning | Värdekälla |
|---|---|---|
GH_APP_ID |
App ID för GitHub App (från Steg 1). | GitHub App-inställningar |
GH_APP_PRIVATE_KEY |
Hela innehållet i den nedladdade .pem-filen. |
.pem-fil (från Steg 1) |
AI-tjänstsecrets (lägg till ALLA som gäller enligt dina förutsättningar):
| Secret Name | Beskrivning | Värdekälla |
|---|---|---|
AZURE_AI_SERVICE_API_KEY |
Nyckel för Azure AI Service (Computer Vision) | Azure AI Foundry |
AZURE_AI_SERVICE_ENDPOINT |
Endpoint för Azure AI Service (Computer Vision) | Azure AI Foundry |
AZURE_OPENAI_API_KEY |
Nyckel för Azure OpenAI-tjänsten | Azure AI Foundry |
AZURE_OPENAI_ENDPOINT |
Endpoint för Azure OpenAI-tjänsten | Azure AI Foundry |
AZURE_OPENAI_MODEL_NAME |
Ditt Azure OpenAI-modellnamn | Azure AI Foundry |
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME |
Ditt Azure OpenAI Deployment-namn | Azure AI Foundry |
AZURE_OPENAI_API_VERSION |
API-version för Azure OpenAI | Azure AI Foundry |
OPENAI_API_KEY |
API-nyckel för OpenAI | OpenAI Platform |
OPENAI_ORG_ID |
OpenAI Organization ID | OpenAI Platform |
OPENAI_CHAT_MODEL_ID |
Specifikt OpenAI-modell-ID | OpenAI Platform |
OPENAI_BASE_URL |
Anpassad OpenAI API Base URL | OpenAI Platform |

Slutligen, skapa YAML-filen som definierar den automatiserade workflowen.
I root-mappen av ditt repository, skapa katalogen .github/workflows/ om den inte redan finns.
Inuti .github/workflows/, skapa en fil som heter co-op-translator.yml.
Klistra in följande innehåll i 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 måste du granska och ändra listan med språkkoder i kommandot translate -l "..." -y så att det passar ditt projekt. Exempellistan (ar de es...) behöver bytas ut eller justeras.on:): Nuvarande trigger körs vid varje push till main. För stora repositories, överväg att lägga till ett paths:-filter (se kommenterat exempel i YAML) för att köra workflowen endast när relevanta filer (t.ex. dokumentation) ändras, vilket sparar runner-minuter.commit-message, title, body, branch-namn och labels i steget Create Pull Request om det behövs.AZURE_OPENAI_...-nycklar) innan de går ut för att undvika att workflowen misslyckas.[!WARNING]
Tidsgräns för GitHub-hostade runners:
GitHub-hostade runners somubuntu-latesthar en maximal körtid på 6 timmar.
För stora dokumentationsrepositories, om översättningsprocessen överskrider 6 timmar, avslutas workflowen automatiskt.
För att undvika detta, överväg:
- Att använda en egen hostad runner (ingen tidsgräns)
- Att minska antalet mål-språk per körning
När filen co-op-translator.yml har mergats till din main-branch (eller den branch som anges i on:-triggern), körs workflowen automatiskt när ändringar pushas till den branchen (och matchar paths-filtret, om det är konfigurerat).
Om översättningar genereras eller uppdateras, skapar actionen automatiskt en Pull Request med ändringarna, redo för din granskning och merge.
Ansvarsfriskrivning: Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Vi strävar efter noggrannhet, men var medveten om att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess originalspråk ska betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.