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 run zu übersetzen

Schritt 2. Ein Repository-Secret konfigurieren

  1. Navigieren Sie zu Settings > Secrets and variables > Actions.
  2. Klicken Sie auf New repository secret.
  3. Geben Sie im Feld Name LINGODOTDEV_API_KEY ein.
  4. Geben Sie im Feld Secret einen Lingo.dev API-Schlüssel ein.
  5. 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 main zusammengeführt werden, Übersetzungen in main committen
  • Wenn Inhalte in main zusammengeführt werden, einen Pull Request von main erstellen
  • 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

  1. Erstellen Sie im Repository ein Verzeichnis .github/workflows:

    mkdir -p .github/workflows
    

    Achten Sie darauf, den Punkt am Anfang von .github einzufügen.

  2. Erstellen Sie im Verzeichnis .github/workflows eine YAML-Datei:

    touch .github/workflows/translate.yml
    

    Der Name der Datei ist nicht wichtig.

  3. Kopieren Sie einen der Beispiel-Workflows in die Datei.

  4. Falls der Workflow Pull Requests erstellt:

    1. Navigieren Sie zu Settings > Actions > General.
    2. Aktivieren Sie Allow GitHub Actions to create and approve pull requests.
    3. Klicken Sie auf Save.
  5. 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 }}

Auf GitHub ansehen

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 }}

Auf GitHub ansehen

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 }}

Auf GitHub ansehen

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 }}

Auf GitHub ansehen