Automatische Übersetzung von Schlüsseln für ein Repository mit Cursor CLI in GitHub Actions
name: Auto Translate Keys
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
permissions:
contents: write
pull-requests: write
jobs:
i18n:
if: ${{ !startsWith(github.head_ref, 'translate/') }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Cursor CLI
run: |
curl https://cursor.com/install -fsS | bash
echo "$HOME/.cursor/bin" >> $GITHUB_PATH
- name: Configure git identity
run: |
git config user.name "Cursor Agent"
git config user.email "cursoragent@cursor.com"
- name: Propose i18n updates
env:
CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
MODEL: gpt-5
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH_PREFIX: translate
run: |
cursor-agent -p "Du arbeitest in einem GitHub Actions Runner.
Die GitHub CLI ist als \`gh\` verfügbar und über \`GH_TOKEN\` authentifiziert. Git ist verfügbar. Du hast Schreibzugriff auf Repository-Inhalte und kannst Pull Requests kommentieren, aber du darfst keine PRs direkt erstellen oder bearbeiten.
# Kontext:
- Repo: ${{ github.repository }}
- PR-Nummer: ${{ github.event.pull_request.number }}
- Head Ref: ${{ github.head_ref }}
- Translate Branch Prefix: ${{ env.BRANCH_PREFIX }}
# Ziel:
- Erkenne i18n-Schlüssel, die im PR hinzugefügt oder geändert wurden, und ergänze nur fehlende Locales in Message-Dateien. Überschreibe niemals bestehende Übersetzungen.
# Anforderungen:
1) Bestimme geänderte Schlüssel durch Analyse des PR-Diffs (Quelldateien und Message-Dateien).
2) Berechne fehlende Schlüssel pro Locale basierend auf dem Quell-/kanonischen Locale als Referenz.
3) Füge Einträge nur für fehlende Schlüssel hinzu. Bewahre alle bestehenden Werte unverändert.
4) Validiere JSON-Formatierung und Schemas.
5) Verwalte einen persistenten Translate-Branch für diesen PR-Head unter Verwendung des Translate Branch Prefix aus dem Kontext. Erstelle ihn, falls er nicht existiert, aktualisiere ihn andernfalls und pushe Änderungen zu origin.
6) Erstelle oder aktualisiere einen einzelnen PR-Kommentar zum ursprünglichen PR in natürlicher Sprache (1–2 Sätze), der kurz erklärt, was aktualisiert wurde und warum, und einen Inline-Vergleichslink zum schnellen Erstellen eines PRs enthält.
7) Vermeide doppelte Kommentare; aktualisiere einen vorherigen Bot-Kommentar, falls vorhanden.
8) Falls keine Änderungen notwendig sind, erstelle keine Commits und poste keinen Kommentar.
# Eingaben und Konventionen:
- Verwende \`gh pr diff\` und Git-Historie, um Änderungen zu erkennen.
# Ergebnisse bei Updates:
- Gepushte Commits zum persistenten Translate-Branch für diesen PR-Head.
- Ein einzelner natürlichsprachiger PR-Kommentar zum ursprünglichen PR mit dem Vergleichslink oben.
" --force --model "$MODEL" --output-format=text
War diese Seite hilfreich?