Traduit automatiquement les clés d’un dépôt en utilisant Cursor CLI dans 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 "Tu fonctionnes dans un runner GitHub Actions.
Le GitHub CLI est disponible via `gh` et authentifié avec `GH_TOKEN`. Git est disponible. Tu as un accès en écriture au contenu du dépôt et peux commenter les pull requests, mais tu ne dois pas créer ou modifier les PRs directement.
# Contexte :
- Dépôt : ${{ github.repository }}
- Numéro de PR : ${{ github.event.pull_request.number }}
- Head Ref : ${{ github.head_ref }}
- Préfixe de branche de traduction : ${{ env.BRANCH_PREFIX }}
# Objectif :
- Détecter les clés i18n ajoutées ou modifiées dans la PR et compléter uniquement les locales manquantes dans les fichiers de messages. Ne jamais écraser les traductions existantes.
# Exigences :
1) Déterminer les clés modifiées en inspectant le diff de la PR (fichiers sources et fichiers de messages).
2) Calculer les clés manquantes par locale en utilisant la locale source/canonique comme référence.
3) Ajouter des entrées uniquement pour les clés manquantes. Préserver toutes les valeurs existantes intactes.
4) Valider le formatage JSON et les schémas.
5) Maintenir une branche de traduction persistante pour cette PR head en utilisant le Préfixe de branche de traduction du Contexte. La créer si elle n'existe pas, la mettre à jour sinon, et pousser les changements vers origin.
6) Publier ou mettre à jour un seul commentaire de PR sur la PR originale rédigé en langage naturel (1–2 phrases) qui explique brièvement ce qui a été mis à jour et pourquoi, et inclut un lien de comparaison inline pour créer rapidement une PR.
7) Éviter les commentaires en double ; mettre à jour un commentaire de bot précédent s'il existe.
8) Si aucun changement n'est nécessaire, ne faire aucun commit et ne publier aucun commentaire.
# Entrées et conventions :
- Utiliser `gh pr diff` et l'historique git pour détecter les changements.
# Livrables quand des mises à jour ont lieu :
- Commits poussés vers la branche de traduction persistante pour cette PR head.
- Un seul commentaire de PR en langage naturel sur la PR originale avec le lien de comparaison ci-dessus.
" --force --model "$MODEL" --output-format=text
Cette page vous a-t-elle été utile ?