Målgruppe: Denne veiledningen er for interne Microsoft-brukere eller team som har tilgang til nødvendige legitimasjoner for den forhåndsbygde Co-op Translator GitHub-appen eller kan opprette sin egen tilpassede GitHub-app.
Automatiser oversettelsen av dokumentasjonen i ditt repository enkelt med Co-op Translator GitHub Action. Denne veiledningen viser deg hvordan du setter opp actionen slik at den automatisk oppretter pull requests med oppdaterte oversettelser hver gang kilde-Markdown-filer eller bilder endres.
[!IMPORTANT]
Velg riktig veiledning:
Denne veiledningen beskriver oppsett med GitHub App ID og en privat nøkkel. Du trenger vanligvis denne “Organisasjonsveiledningen” hvis:
GITHUB_TOKEN-tillatelsene er begrenset: Organisasjonen eller repository-innstillingene dine begrenser standardtillatelsene som gis tilGITHUB_TOKEN. Spesielt hvisGITHUB_TOKENikke har nødvendigewrite-tillatelser (somcontents: writeellerpull-requests: write), vil workflowen i Offentlig oppsettveiledning feile på grunn av manglende tillatelser. Ved å bruke en dedikert GitHub-app med eksplisitte tillatelser unngår du denne begrensningen.Hvis dette ikke gjelder deg:
Hvis standard
GITHUB_TOKENhar tilstrekkelige tillatelser i ditt repository (dvs. du ikke er blokkert av organisasjonsbegrensninger), bruk Offentlig oppsettveiledning med GITHUB_TOKEN. Den offentlige veiledningen krever ikke at du skaffer eller håndterer App ID-er eller private nøkler, og bruker kun standardGITHUB_TOKENog repository-tillatelser.
Før du konfigurerer GitHub Action, må du sørge for at du har nødvendige AI-tjenestelegitimasjoner klare.
1. Påkrevd: AI Language Model-legitimasjon Du trenger legitimasjon for minst én støttet språkmodell:
2. Valgfritt: Computer Vision-legitimasjon (for bildeoversettelse)
Følg disse stegene for å konfigurere Co-op Translator GitHub Action i ditt repository:
Workflowen bruker GitHub App-autentisering for å samhandle sikkert med repositoryet ditt (f.eks. opprette pull requests) på dine vegne. Velg ett alternativ:
Gå til Co-op Translator GitHub App-siden.
Velg Install og velg kontoen eller organisasjonen der repositoryet ditt ligger.

Velg Only select repositories og velg repositoryet ditt (f.eks. PhiCookBook). Klikk Install. Du kan bli bedt om å autentisere.

1164076..pem-filen med privat nøkkel fra kontaktpersonen for vedlikehold. Behandle denne nøkkelen som et passord og hold den sikker.Du må legge til GitHub App-legitimasjon og AI-tjenestelegitimasjon som krypterte secrets i repository-innstillingene.
Gå til repositoryet ditt (f.eks. PhiCookBook).
Gå til Settings > Secrets and variables > Actions.
Under Repository secrets, klikk New repository secret for hver secret som er listet opp nedenfor.

Påkrevde secrets (for GitHub App-autentisering):
| Secret Name | Beskrivelse | Kilde til verdi |
|---|---|---|
GH_APP_ID |
App ID for GitHub App (fra Steg 1). | GitHub App-innstillinger |
GH_APP_PRIVATE_KEY |
Hele innholdet i den nedlastede .pem-filen. |
.pem-fil (fra Steg 1) |
AI-tjeneste-secrets (legg til ALLE som gjelder ut fra forutsetningene dine):
| Secret Name | Beskrivelse | Kilde til verdi |
|---|---|---|
AZURE_AI_SERVICE_API_KEY |
Nøkkel for Azure AI Service (Computer Vision) | Azure AI Foundry |
AZURE_AI_SERVICE_ENDPOINT |
Endpoint for Azure AI Service (Computer Vision) | Azure AI Foundry |
AZURE_OPENAI_API_KEY |
Nøkkel for Azure OpenAI-tjeneste | Azure AI Foundry |
AZURE_OPENAI_ENDPOINT |
Endpoint for Azure OpenAI-tjeneste | Azure AI Foundry |
AZURE_OPENAI_MODEL_NAME |
Ditt Azure OpenAI-modellnavn | Azure AI Foundry |
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME |
Ditt Azure OpenAI deployment-navn | Azure AI Foundry |
AZURE_OPENAI_API_VERSION |
API-versjon for Azure OpenAI | Azure AI Foundry |
OPENAI_API_KEY |
API-nøkkel for OpenAI | OpenAI Platform |
OPENAI_ORG_ID |
OpenAI-organisasjons-ID | OpenAI Platform |
OPENAI_CHAT_MODEL_ID |
Spesifikk OpenAI-modell-ID | OpenAI Platform |
OPENAI_BASE_URL |
Tilpasset OpenAI API Base URL | OpenAI Platform |

Til slutt, opprett YAML-filen som definerer den automatiserte workflowen.
I rotmappen til repositoryet ditt, opprett .github/workflows/-mappen hvis den ikke finnes.
Inne i .github/workflows/, opprett en fil som heter co-op-translator.yml.
Lim inn følgende innhold 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å du gå gjennom og endre listen over språk-koder i translate -l "..." -y-kommandoen slik at den passer til prosjektets behov. Eksempellisten (ar de es...) må byttes ut eller tilpasses.on:): Nåværende trigger kjører på hver push til main. For store repositories, vurder å legge til en paths:-filter (se kommentert eksempel i YAML) for å kun kjøre workflowen når relevante filer (f.eks. kilde-dokumentasjon) endres, for å spare runner-minutter.commit-message, title, body, branch-navn og labels i steget Create Pull Request om nødvendig.AZURE_OPENAI_...-nøkler) før de utløper for å unngå feil i workflowen.[!WARNING]
Tidsbegrensning for GitHub-hosted runner:
GitHub-hostede runnere somubuntu-latesthar en maksimal kjøretid på 6 timer.
For store dokumentasjons-repositories, hvis oversettelsesprosessen tar mer enn 6 timer, vil workflowen automatisk bli avbrutt.
For å unngå dette, vurder:
- Å bruke en self-hosted runner (ingen tidsbegrensning)
- Å redusere antall mål-språk per kjøring
Når co-op-translator.yml-filen er merget inn i hovedgrenen (eller grenen spesifisert i on:-triggeren), vil workflowen automatisk kjøres hver gang det pushes endringer til den grenen (og matcher paths-filteret, hvis konfigurert).
Hvis det genereres eller oppdateres oversettelser, vil actionen automatisk opprette en Pull Request med endringene, klar for gjennomgang og merging.
Ansvarsfraskrivelse: Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi tilstreber nøyaktighet, må du være oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.