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 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 nie veralten. Es basiert auf Lingo.dev CLI und ist über den Befehl ci verfügbar:
npx lingo.dev@latest ci --help
Über diesen Leitfaden
Dieser Leitfaden erklärt, wie man Lingo.dev CI/CD mit GitHub Actions und Lingo.dev Engine einrichtet.
Schritt 1. Lingo.dev CLI einrichten
Befolgen Sie zunächst den Schnellstart für Lingo.dev CLI.
Am Ende sollten Sie Folgendes haben:
- einen API-Schlüssel für Lingo.dev
- eine
i18n.json-Datei, die das Verhalten einer Übersetzungspipeline konfiguriert - die Möglichkeit, Inhalte mit
npx lingo.dev@latest runzu übersetzen
Schritt 2. Ein 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. Einen 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, Übersetzungen inmaincommitten - Wenn Inhalte in
mainzusammengeführt werden, einen Pull Request vonmainerstellen - Wenn Inhalte in einen Feature-Branch zusammengeführt werden, Übersetzungen in den Branch committen
- Wenn Inhalte in einen Feature-Branch zusammengeführt werden, einen Pull Request vom Branch erstellen
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, unsichtbarste Workflow.
Schritt 4. Workflow einrichten
-
Erstellen Sie im Repository ein Verzeichnis
.github/workflows:mkdir -p .github/workflowsAchten Sie darauf, den Punkt am Anfang von
.githubeinzufügen. -
Erstellen Sie im Verzeichnis
.github/workflowseine YAML-Datei:touch .github/workflows/translate.ymlDer Name der Datei ist nicht wichtig.
-
Kopieren Sie einen der Beispiel-Workflows in die Datei.
-
Falls 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 in den
main-Branch:git add .github/workflows/translate.yml git commit -m "feat: GitHub action for Lingo.dev" git push
(Optional) Schritt 5. Workflow anpassen
Lingo.dev CI/CD hat Standardwerte, die in den meisten Fällen nicht angepasst werden müssen. Sie können diese jedoch mit den CLI-Flags des ci-Befehls überschreiben,
npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY" --commit-message "Meine benutzerdefinierte Commit-Nachricht!"
Um alle verfügbaren Optionen anzuzeigen, siehe CLI-Befehle.
Beispiel-Workflows
Commit in main
Wenn Inhalte in main gemergt werden, werden Übersetzungen in main committet.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Lingo.dev
run: npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
env:
LINGODOTDEV_API_KEY: ${{ secrets.LINGODOTDEV_API_KEY }}
Pull Request von main
Wenn Inhalte in main gemergt werden, wird ein Pull Request von main erstellt.
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Lingo.dev
run: npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
env:
LINGODOTDEV_API_KEY: ${{ secrets.LINGODOTDEV_API_KEY }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Commit zum Feature-Branch
Wenn Inhalte in einen Feature-Branch zusammengeführt werden, werden Übersetzungen in den Branch committet.
name: Translate
on:
push:
branches-ignore: [main]
permissions:
contents: write
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Lingo.dev (commit to non-main)
run: npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
env:
LINGODOTDEV_API_KEY: ${{ secrets.LINGODOTDEV_API_KEY }}
Pull Request vom Feature-Branch
Wenn Inhalte in einen Feature-Branch zusammengeführt werden, wird ein Pull Request vom Branch erstellt.
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: Run Lingo.dev
run: npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
env:
LINGODOTDEV_API_KEY: ${{ secrets.LINGODOTDEV_API_KEY }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}