Step 1: Επιλέξτε έναν πάροχο μετάφρασης
Η δράση λειτουργεί με Azure AI Translator, Μετάφραση AWS και Μετάφραση Google Cloud πίσω από μια ενοποιημένη επιφάνεια API. Επιλέξτε έναν μόνο πάροχο ανά εκτέλεση με την είσοδο provider — η ροή εργασίας συμπεριφέρεται πανομοιότυπα ανεξάρτητα από τον πάροχο. μόνο τα διαπιστευτήρια διαφέρουν. Δείτε Πάροχοι μετάφρασης για πλήρη σύγκριση.
Step 2: Προσθήκη διαπιστευτηρίων και ροής εργασιών
Αποθηκεύστε τα διαπιστευτήρια του παρόχου σας ως μυστικά αποθετηρίου GitHub και, στη συνέχεια, δημιουργήστε .github/workflows/translate.yml. Επιλέξτε τον πάροχο σας παρακάτω για τη συγκεκριμένη ρύθμισή του — η υπόλοιπη ροή εργασίας είναι πανομοιότυπη.
Azure AI Translator
Το Azure είναι η προεπιλεγμένη υπηρεσία παροχής, επομένως provider μπορεί να παραλειφθεί. Δώστε έναν πόρο Azure AI Translator στην πύλη Azure και, στη συνέχεια, αποθηκεύστε τα διαπιστευτήριά του:
Αποθηκεύστε τα ως μυστικά αποθετηρίου
TRANSLATOR_KEY— Το κλειδί συνδρομής για τον πόρο.TRANSLATOR_ENDPOINT— τη διεύθυνση URL του τοπικού τελικού σημείου.TRANSLATOR_REGION— την περιοχή Azure του πόρου.
Προσθήκη της ροής εργασίας
name: translate
on: push: branches: [main] paths: - "src/**/*.en.resx" - "src/**/*.en.json"
permissions: contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - id: translate uses: IEvangelist/resource-translator@v3 with: provider: | azure: subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} region: ${{ secrets.TRANSLATOR_REGION }} sourceLocale: en toLocales: '["fr","de","es"]' - if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} branch: machine-translationΜετάφραση AWS
Ρυθμίστε το provider σε aws. Προτιμήστε το OIDC μέσω aws-actions/configure-aws-credentials ώστε να μην αποθηκεύονται μακροχρόνια μυστικά — οι εξαγωγές βημάτων AWS_REGION για εσάς. Για να χρησιμοποιήσετε στατικά κλειδιά, αποθηκεύστε:
Αποθηκεύστε τα ως μυστικά αποθετηρίου
AWS_ACCESS_KEY_ID— το αναγνωριστικό κλειδιού πρόσβασης AWS.AWS_SECRET_ACCESS_KEY— το μυστικό κλειδί πρόσβασης AWS.
Απαιτείται πάντα μια περιοχή — ορίστε την με awsRegion ή τη μεταβλητή περιβάλλοντος AWS_REGION.
Προσθήκη της ροής εργασίας
name: translate
on: push: branches: [main] paths: - "src/**/*.en.resx" - "src/**/*.en.json"
permissions: id-token: write # for aws-actions/configure-aws-credentials (OIDC) contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::123456789012:role/gh-actions-translate aws-region: us-east-1 - id: translate uses: IEvangelist/resource-translator@v3 with: provider: | aws: region: us-east-1 # or rely on AWS_REGION from the step above formality: FORMAL brevity: true sourceLocale: en toLocales: '["fr","de","es"]' - if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} branch: machine-translationΜετάφραση Google Cloud
Ρυθμίστε το provider σε google. Πραγματοποιήστε έλεγχο ταυτότητας είτε με διαπιστευτήριο JSON λογαριασμού υπηρεσίας είτε με κλειδί API — δώστε ακριβώς ένα:
Αποθηκεύστε τα ως μυστικά αποθετηρίου
GCP_TRANSLATE_CREDENTIALS— ένα κλειδί JSON λογαριασμού υπηρεσίας (ως συμβολοσειρά JSON).GCP_TRANSLATE_API_KEY— ή ένα κλειδί API του Google Cloud.
Ένα προαιρετικό googleProjectId συνάγεται από τα διαπιστευτήρια όταν παραλείπεται.
Προσθήκη της ροής εργασίας
name: translate
on: push: branches: [main] paths: - "src/**/*.en.resx" - "src/**/*.en.json"
permissions: contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - id: translate uses: IEvangelist/resource-translator@v3 with: provider: | google: # Provide EITHER a service-account JSON credential... credentials: ${{ secrets.GCP_TRANSLATE_CREDENTIALS }} # ...OR an API key: # apiKey: ${{ secrets.GCP_TRANSLATE_API_KEY }} model: nmt sourceLocale: en toLocales: '["fr","de","es"]' - if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} branch: machine-translationStep 3: Δέσμευση αρχείου πηγαίου πόρου
Τα αρχεία πόρων χρησιμοποιούν τη σύμβαση Name.<sourceLocale>.<ext>. Για παράδειγμα, Greetings.en.resx γίνεται Greetings.fr.resx, Greetings.de.resx και ούτω καθεξής μετά από ένα τρέξιμο.
Step 4: Let smart change detection protect your bill
changeDetection defaults to smart and stores a compact .github/resource-translator-state.json manifest in the repo. Commit that file so future runs can reuse stable translations, preserve manual target edits, and send only new, missing, changed, or settings-invalidated keys to the provider. If localized files already exist, run once with snapshotOnly: true to create the manifest without provider calls.
Step 5: Επιθεωρήστε την έξοδο
Μόλις ολοκληρωθεί η ροή εργασίας, η ενέργεια εκθέτει τρεις εξόδους που μπορείτε να συνδέσετε σε μια περιγραφή PR: summary-title, summary-details και has-new-translations. Γράφει επίσης μια περίληψη Markdown στη σελίδα εργασίας μέσω core.summary.