GitHub Actions
KI-Übersetzung mit GitHub Actions und Lingo.dev CI/CD
Was ist GitHub Actions?
GitHub Actions ist eine in GitHub integrierte CI/CD- und Automatisierungsplattform. Sie ermöglicht es Benutzern, Workflows in YAML-Dateien zu definieren, um Code zu erstellen, zu testen und bereitzustellen oder Aufgaben zu automatisieren, die durch Repository-Ereignisse ausgelöst werden.
Was ist Lingo.dev CI/CD?
Lingo.dev CI/CD ist ein KI-gestütztes Tool zur Lokalisierung von Apps und Inhalten in CI/CD, das sicherstellt, dass Übersetzungen niemals veralten. Für GitHub stellt Lingo.dev eine benutzerdefinierte GitHub Action bereit, die die Integration vereinfacht.
Über diesen Leitfaden
Dieser Leitfaden erklärt, wie Sie Lingo.dev CI/CD mit der Lingo.dev GitHub Action und Lingo.dev Engine einrichten.
Schritt 1. Lingo.dev CLI einrichten
Folgen Sie zunächst dem Quickstart für Lingo.dev CLI.
Sie sollten am Ende Folgendes haben:
- einen API-Schlüssel für Lingo.dev
- eine
i18n.jsonDatei, die das Verhalten einer Übersetzungspipeline konfiguriert - die Möglichkeit, Inhalte mit
npx lingo.dev@latest runzu übersetzen
Schritt 2. Repository-Secret konfigurieren
- Navigieren Sie zu Settings > Secrets and variables > Actions.
- Klicken Sie auf New repository secret.
- Geben Sie im Feld Name
LINGODOTDEV_API_KEYein. - Geben Sie im Feld Secret einen Lingo.dev API-Schlüssel ein.
- Klicken Sie auf Add secret.
Schritt 3. Workflow auswählen
Sie können Lingo.dev CI/CD auf verschiedene Arten einrichten, um unterschiedliche Workflows zu unterstützen. Dies sind einige der Workflows, die wir empfehlen (und für die wir Beispiele bereitstellen):
- Wenn Inhalte in
mainzusammengeführt werden, werden Übersetzungen inmaincommittet - Wenn Inhalte in
mainzusammengeführt werden, wird ein Pull Request vonmainerstellt - Wenn Inhalte in einen Feature-Branch gemergt werden, werden Übersetzungen in den Branch committet
- Wenn Inhalte in einen Feature-Branch gemergt werden, wird ein Pull Request vom Branch erstellt
Es gibt jedoch keinen "besten" Workflow. Alle haben Kompromisse. Wenn Sie nicht sicher sind, wo Sie beginnen sollen, empfehlen wir, mit der ersten Option zu starten. Es ist der einfachste und unauffälligste Workflow.
Schritt 4. Den Workflow einrichten
-
Erstellen Sie im Repository ein
.github/workflowsVerzeichnis:mkdir -p .github/workflowsStellen Sie sicher, dass Sie den
.am Anfang von.githubeinfügen. -
Erstellen Sie im
.github/workflowsVerzeichnis eine YAML-Datei:touch .github/workflows/translate.ymlDer Name der Datei ist nicht wichtig.
-
Kopieren Sie einen der Beispiel-Workflows in die Datei.
-
Wenn der Workflow Pull Requests erstellt:
- Navigieren Sie zu Settings > Actions > General.
- Aktivieren Sie Allow GitHub Actions to create and approve pull requests.
- Klicken Sie auf Save.
-
Committen und pushen Sie die Änderungen zum
mainBranch:git add .github/workflows/translate.yml git commit -m "feat: GitHub action for Lingo.dev" git push
(Optional) Schritt 5. Den Workflow anpassen
Lingo.dev CI/CD hat Standardwerte, die in den meisten Fällen nicht angepasst werden müssen. Sie können diese überschreiben, indem Sie Inputs an die GitHub Action übergeben:
Verfügbare Inputs:
version: Lingo.dev CLI-Version (Standard:"latest")api-key: Lingo.dev Platform API Key (erforderlich)pull-request: Einen Pull Request mit Änderungen erstellen (Standard:false)commit-message: Benutzerdefinierte Commit-Nachricht (Standard:"feat: update translations via @LingoDotDev")pull-request-title: Benutzerdefinierter Pull Request-Titel (Standard:"feat: update translations via @LingoDotDev")commit-author-name: Git Commit-Autor-Name (Standard:"Lingo.dev")commit-author-email: Git Commit-Autor-E-Mail (Standard:"[email protected]")working-directory: Arbeitsverzeichnis (Standard:".")process-own-commits: Commits verarbeiten, die von dieser Action erstellt wurden (Standard:false)parallel: Im Parallel-Modus ausführen (Standard:false)
Beispiel mit benutzerdefinierten Inputs:
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
commit-message: "My custom commit message!"
parallel: true
Beispiel-Workflows
Commit zu main
Wenn Inhalte in main zusammengeführt werden, Übersetzungen in main committen.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
Pull Request von main
Wenn Inhalte in main zusammengeführt werden, einen Pull Request von main erstellen.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
pull-request: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Commit in Feature-Branch
Wenn Inhalte in einen Feature-Branch zusammengeführt werden, Übersetzungen in den Branch committen.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
Pull Request von Feature-Branch
Wenn Inhalte in einen Feature-Branch zusammengeführt werden, einen Pull Request vom Branch erstellen.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
pull-request: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}