GitHub Actions¶
Χρησιμοποιήστε το GitHub Actions όταν θέλετε ένα αποθετήριο να μεταφράζει αυτόματα τις τροποποιημένες τεκμηριώσεις και να ανοίγει ένα pull request με τα παραγόμενα αρχεία.
Τα περισσότερα αποθετήρια θα πρέπει να χρησιμοποιούν τη στάνταρ ρύθμιση GITHUB_TOKEN. Χρησιμοποιήστε τη ρύθμιση GitHub App μόνο όταν ο οργανισμός σας περιορίζει τα προεπιλεγμένα δικαιώματα του token ή απαιτεί πιστοποίηση βάσει εφαρμογής.
Προαπαιτούμενα¶
Πριν δημιουργήσετε τη ροή εργασίας, διαμορφώστε τα μυστικά της υπηρεσίας AI που χρειάζεται η εκτέλεση μετάφρασης.
Η μετάφραση κειμένου απαιτεί έναν πάροχο γλωσσικού μοντέλου:
- 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 optionalOPENAI_ORG_IDandOPENAI_BASE_URL
Η μετάφραση εικόνων απαιτεί επιπλέον Azure AI Vision:
AZURE_AI_SERVICE_API_KEYAZURE_AI_SERVICE_ENDPOINT
Δείτε Διαμόρφωση και Ρύθμιση Azure AI για λεπτομέρειες τοπικής διαμόρφωσης.
Τυπική Ρύθμιση¶
Χρησιμοποιήστε αυτή τη ρύθμιση για τα περισσότερα δημόσια και ιδιωτικά αποθετήρια.
Βήμα 1: Προσθήκη Μυστικών Αποθετηρίου¶
Στο στόχο αποθετήριο, ανοίξτε Ρυθμίσεις > Μυστικά και μεταβλητές > Actions, στη συνέχεια προσθέστε τα μυστικά παρόχου που θα χρησιμοποιεί η ροή εργασίας σας.

Βήμα 2: Ενεργοποίηση Δικαιωμάτων Ροής Εργασίας¶
Ανοίξτε Ρυθμίσεις > Actions > Γενικά.
Κάτω από Δικαιώματα ροής εργασίας:
- Επιλέξτε Δικαιώματα ανάγνωσης και εγγραφής.
- Ενεργοποιήστε Να επιτρέπεται στο GitHub Actions να δημιουργεί και να εγκρίνει pull requests.
- Αποθηκεύστε τη ρύθμιση.

Βήμα 3: Προσθήκη της Ροής Εργασίας¶
Δημιουργήστε .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/
Αλλάξτε το translate -l "es fr de" -y στις γλώσσες-στόχους και στις σημαίες περιεχομένου που χρειάζεται το έργο σας. Για μεγάλα αποθετήρια, προσθέστε ένα φίλτρο paths: κάτω από το on: ώστε η ροή εργασίας να τρέχει μόνο όταν αλλάζει η τεκμηρίωση.
Ρύθμιση GitHub App¶
Χρησιμοποιήστε αυτή τη ρύθμιση όταν το GITHUB_TOKEN δεν μπορεί να δημιουργήσει commits ή pull requests στον οργανισμό σας.
Βήμα 1: Δημιουργία ή Εγκατάσταση ενός GitHub App¶
Δημιουργήστε ένα GitHub App με πρόσβαση ανάγνωσης/εγγραφής στα Contents και στα Pull requests, ή εγκαταστήστε την παρεχόμενη από τον οργανισμό εφαρμογή εάν ο οργανισμός σας ήδη διατηρεί μία.
Καταγράψτε:
- App ID
- Περιεχόμενο ιδιωτικού κλειδιού
Αποθηκεύστε τα ως μυστικά του αποθετηρίου:
GH_APP_IDGH_APP_PRIVATE_KEY
Βήμα 2: Δημιουργία Token Εφαρμογής¶
Χρησιμοποιήστε την ίδια ροή εργασίας με τη στάνταρ ρύθμιση, αλλά προσθέστε ένα βήμα app-token πριν το βήμα του 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/
Όρια Εκτελεστών¶
Οι GitHub-hosted runners έχουν μέγιστο χρόνο εκτέλεσης εργασίας. Τα μεγάλα αποθετήρια ή πολλές γλώσσες-στόχοι μπορούν να υπερβούν αυτό το όριο.
Για μεγάλους φόρτους μετάφρασης:
- Μεταφράστε λιγότερες γλώσσες ανά εκτέλεση.
- Χρησιμοποιήστε σημαίες περιεχομένου όπως
-md,-nb, ή-img. - Χρησιμοποιήστε έναν self-hosted runner όταν το μέγεθος του αποθετηρίου ή η καθυστέρηση του μοντέλου καθιστά τους φιλοξενούμενους runners αναξιόπιστους.
Έλεγχος στο CI¶
Χρησιμοποιήστε το co-op-review όταν ένα pull request πρέπει να επικυρώσει τις παραγόμενες μεταφράσεις χωρίς να καλεί παρόχους LLM ή Vision.
- name: Review translated outputs
run: |
co-op-review --changed-from "origin/${{ github.base_ref }}" --format github
co-op-review είναι μια beta εντολή διεπακριβούς (deterministic) ανασκόπησης. Οι έλεγχοι και το σχήμα εξόδου της μπορεί να εξελιχθούν, αλλά έχει σχεδιαστεί να είναι ασφαλής για CI επειδή δεν γράφει αρχεία ούτε καλεί παρόχους μοντέλων.