co-op-translator

Χρήση του Co-op Translator GitHub Action (Δημόσια Ρύθμιση)

Απευθύνεται σε: Αυτός ο οδηγός προορίζεται για χρήστες σε δημόσια ή ιδιωτικά αποθετήρια όπου τα τυπικά δικαιώματα GitHub Actions είναι επαρκή. Χρησιμοποιεί το ενσωματωμένο GITHUB_TOKEN.

Αυτοματοποιήστε τη μετάφραση της τεκμηρίωσης του αποθετηρίου σας εύκολα με το Co-op Translator GitHub Action. Ο οδηγός αυτός σας καθοδηγεί στη ρύθμιση της ενέργειας ώστε να δημιουργεί αυτόματα pull requests με ενημερωμένες μεταφράσεις κάθε φορά που αλλάζουν τα αρχεία Markdown ή οι εικόνες πηγής σας.

[!IMPORTANT]

Επιλογή σωστού οδηγού:

Αυτός ο οδηγός περιγράφει τη πιο απλή ρύθμιση με χρήση του τυπικού GITHUB_TOKEN. Αυτή είναι η προτεινόμενη μέθοδος για τους περισσότερους χρήστες, καθώς δεν απαιτεί διαχείριση ευαίσθητων Private Keys για GitHub App.

Προαπαιτούμενα

Πριν ρυθμίσετε το GitHub Action, βεβαιωθείτε ότι έχετε έτοιμα τα απαραίτητα διαπιστευτήρια για την υπηρεσία AI.

1. Απαραίτητο: Διαπιστευτήρια AI Language Model Χρειάζεστε διαπιστευτήρια για τουλάχιστον ένα υποστηριζόμενο Language Model:

2. Προαιρετικό: Διαπιστευτήρια AI Vision (για Μετάφραση Εικόνων)

Ρύθμιση και Παραμετροποίηση

Ακολουθήστε τα παρακάτω βήματα για να ρυθμίσετε το Co-op Translator GitHub Action στο αποθετήριό σας χρησιμοποιώντας το τυπικό GITHUB_TOKEN.

Βήμα 1: Κατανόηση Αυθεντικοποίησης (Χρήση GITHUB_TOKEN)

Αυτό το workflow χρησιμοποιεί το ενσωματωμένο GITHUB_TOKEN που παρέχει το GitHub Actions. Το token αυτό δίνει αυτόματα δικαιώματα στο workflow να αλληλεπιδρά με το αποθετήριό σας, σύμφωνα με τις ρυθμίσεις που θα ορίσετε στο Βήμα 3.

Βήμα 2: Ρύθμιση Μυστικών του Αποθετηρίου

Χρειάζεται μόνο να προσθέσετε τα διαπιστευτήρια της υπηρεσίας AI ως κρυπτογραφημένα μυστικά στις ρυθμίσεις του αποθετηρίου σας.

  1. Μεταβείτε στο αποθετήριο σας στο GitHub.
  2. Επιλέξτε Settings > Secrets and variables > Actions.
  3. Στην ενότητα Repository secrets, κάντε κλικ στο New repository secret για κάθε απαραίτητο μυστικό υπηρεσίας AI που αναφέρεται παρακάτω.

    Επιλογή ρύθμισης action (Αναφορά εικόνας: Δείχνει πού προσθέτετε τα μυστικά)

Απαραίτητα Μυστικά Υπηρεσίας AI (Προσθέστε ΟΛΑ όσα ισχύουν σύμφωνα με τα Προαπαιτούμενα):

Όνομα Μυστικού Περιγραφή Πηγή Τιμής
AZURE_AI_SERVICE_API_KEY Κλειδί για Azure AI Service (Computer Vision) Το Azure AI Foundry σας
AZURE_AI_SERVICE_ENDPOINT Endpoint για Azure AI Service (Computer Vision) Το Azure AI Foundry σας
AZURE_OPENAI_API_KEY Κλειδί για Azure OpenAI service Το Azure AI Foundry σας
AZURE_OPENAI_ENDPOINT Endpoint για Azure OpenAI service Το Azure AI Foundry σας
AZURE_OPENAI_MODEL_NAME Όνομα μοντέλου Azure OpenAI Το Azure AI Foundry σας
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME Όνομα deployment Azure OpenAI Το Azure AI Foundry σας
AZURE_OPENAI_API_VERSION Έκδοση API για Azure OpenAI Το Azure AI Foundry σας
OPENAI_API_KEY API Key για OpenAI Η πλατφόρμα OpenAI σας
OPENAI_ORG_ID OpenAI Organization ID (Προαιρετικό) Η πλατφόρμα OpenAI σας
OPENAI_CHAT_MODEL_ID Συγκεκριμένο OpenAI model ID (Προαιρετικό) Η πλατφόρμα OpenAI σας
OPENAI_BASE_URL Custom OpenAI API Base URL (Προαιρετικό) Η πλατφόρμα OpenAI σας

Βήμα 3: Ρύθμιση Δικαιωμάτων Workflow

Το GitHub Action χρειάζεται δικαιώματα μέσω του GITHUB_TOKEN για να κάνει checkout τον κώδικα και να δημιουργεί pull requests.

  1. Στο αποθετήριό σας, πηγαίνετε στο Settings > Actions > General.
  2. Κάντε scroll στην ενότητα Workflow permissions.
  3. Επιλέξτε Read and write permissions. Αυτό δίνει στο GITHUB_TOKEN τα απαραίτητα δικαιώματα contents: write και pull-requests: write για το workflow.
  4. Βεβαιωθείτε ότι το checkbox για Allow GitHub Actions to create and approve pull requests είναι επιλεγμένο.
  5. Πατήστε Save.

Ρύθμιση δικαιωμάτων

Βήμα 4: Δημιουργία Αρχείου Workflow

Τέλος, δημιουργήστε το YAML αρχείο που ορίζει το αυτοματοποιημένο workflow με χρήση του GITHUB_TOKEN.

  1. Στον root φάκελο του αποθετηρίου σας, δημιουργήστε τον φάκελο .github/workflows/ αν δεν υπάρχει ήδη.
  2. Μέσα στο .github/workflows/, δημιουργήστε ένα αρχείο με όνομα co-op-translator.yml.
  3. Επικολλήστε το παρακάτω περιεχόμενο στο 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/
  1. Προσαρμόστε το Workflow:
    • [!IMPORTANT] Γλώσσες-στόχοι: Στο βήμα Run Co-op Translator, ΠΡΕΠΕΙ να ελέγξετε και να τροποποιήσετε τη λίστα των κωδικών γλωσσών μέσα στην εντολή translate -l "..." -y ώστε να ταιριάζει με τις ανάγκες του project σας. Η παράδειγμα λίστα (ar de es...) πρέπει να αντικατασταθεί ή να προσαρμοστεί.
    • Trigger (on:): Το τρέχον trigger εκτελείται σε κάθε push στο main. Για μεγάλα αποθετήρια, σκεφτείτε να προσθέσετε ένα φίλτρο paths: (δείτε το σχολιασμένο παράδειγμα στο YAML) ώστε το workflow να τρέχει μόνο όταν αλλάζουν σχετικά αρχεία (π.χ. τεκμηρίωση πηγής), εξοικονομώντας χρόνο εκτέλεσης.
    • Λεπτομέρειες PR: Προσαρμόστε το commit-message, title, body, το όνομα του branch και τα labels στο βήμα Create Pull Request αν χρειάζεται.

Εκτέλεση του Workflow

[!WARNING]
Χρονικό Όριο Εκτέλεσης GitHub-hosted Runner:
Τα GitHub-hosted runners όπως το ubuntu-latest έχουν μέγιστο όριο εκτέλεσης 6 ώρες.
Για μεγάλα αποθετήρια τεκμηρίωσης, αν η διαδικασία μετάφρασης ξεπεράσει τις 6 ώρες, το workflow θα τερματιστεί αυτόματα.
Για να το αποφύγετε:

Μόλις το αρχείο co-op-translator.yml συγχωνευτεί στο κύριο branch σας (ή στο branch που ορίζεται στο trigger on:), το workflow θα εκτελείται αυτόματα κάθε φορά που γίνονται αλλαγές σε αυτό το branch (και ταιριάζουν με το φίλτρο paths, αν έχει ρυθμιστεί).


Αποποίηση Ευθύνης: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI Co-op Translator. Παρότι καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να γνωρίζετε ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρανοήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.