GitHub Actions
Traduction IA avec GitHub Actions et Lingo.dev CI/CD
Qu'est-ce que GitHub Actions ?
GitHub Actions est une plateforme CI/CD et d'automatisation intégrée à GitHub. Elle permet aux utilisateurs de définir des workflows dans des fichiers YAML pour compiler, tester et déployer du code ou automatiser des tâches déclenchées par des événements du dépôt.
Qu'est-ce que Lingo.dev CI/CD ?
Lingo.dev CI/CD est un outil alimenté par l'IA pour localiser des applications et du contenu en CI/CD, garantissant que les traductions ne deviennent jamais obsolètes. Pour GitHub, Lingo.dev fournit une GitHub Action personnalisée qui simplifie l'intégration.
À propos de ce guide
Ce guide explique comment configurer Lingo.dev CI/CD avec la GitHub Action Lingo.dev et Lingo.dev Engine.
Étape 1. Configurer Lingo.dev CLI
Pour commencer, suivez le Démarrage rapide pour Lingo.dev CLI.
Vous devriez obtenir :
- une clé API pour Lingo.dev
- un fichier
i18n.jsonqui configure le comportement du pipeline de traduction - la possibilité de traduire du contenu avec
npx lingo.dev@latest run
Étape 2. Configurer un secret de dépôt
- Accédez à Settings > Secrets and variables > Actions.
- Cliquez sur New repository secret.
- Dans le champ Name, saisissez
LINGODOTDEV_API_KEY. - Dans le champ Secret, saisissez une clé API Lingo.dev.
- Cliquez sur Add secret.
Étape 3. Choisir un workflow
Vous pouvez configurer Lingo.dev CI/CD de différentes manières pour prendre en charge différents workflows. Voici quelques-uns des workflows que nous recommandons (et pour lesquels nous fournissons des exemples) :
- Lorsque du contenu est fusionné dans
main, committer les traductions dansmain - Lorsque du contenu est fusionné dans
main, créer une pull request depuismain - Lorsque du contenu est fusionné dans une branche de fonctionnalité, committer les traductions dans la branche
- Lorsque du contenu est fusionné dans une branche de fonctionnalité, créer une pull request depuis la branche
Mais il n'existe pas de workflow « idéal ». Tous présentent des compromis. Si vous ne savez pas par où commencer, nous vous recommandons de débuter avec la première option. C'est le workflow le plus simple et le plus transparent.
Étape 4. Configurer le workflow
-
Dans le dépôt, créez un répertoire
.github/workflows:mkdir -p .github/workflowsVeillez à inclure le
.au début de.github. -
Dans le répertoire
.github/workflows, créez un fichier YAML :touch .github/workflows/translate.ymlLe nom du fichier n'a pas d'importance.
-
Copiez l'un des exemples de workflows dans le fichier.
-
Si le workflow crée des pull requests :
- Accédez à Paramètres > Actions > Général.
- Activez Autoriser GitHub Actions à créer et approuver des pull requests.
- Cliquez sur Enregistrer.
-
Validez et poussez les modifications vers la branche
main:git add .github/workflows/translate.yml git commit -m "feat: GitHub action for Lingo.dev" git push
(Facultatif) Étape 5. Personnaliser le workflow
Lingo.dev CI/CD possède des valeurs par défaut qui, dans la plupart des cas, n'ont pas besoin d'être personnalisées. Vous pouvez les remplacer en passant des paramètres à l'action GitHub :
Paramètres disponibles :
version: version de Lingo.dev CLI (par défaut :"latest")api-key: clé API de la plateforme Lingo.dev (obligatoire)pull-request: créer une pull request avec les modifications (par défaut :false)commit-message: message de commit personnalisé (par défaut :"feat: update translations via @LingoDotDev")pull-request-title: titre de pull request personnalisé (par défaut :"feat: update translations via @LingoDotDev")commit-author-name: nom de l'auteur du commit Git (par défaut :"Lingo.dev")commit-author-email: email de l'auteur du commit Git (par défaut :"[email protected]")working-directory: répertoire de travail (par défaut :".")process-own-commits: traiter les commits effectués par cette action (par défaut :false)parallel: exécuter en mode parallèle (par défaut :false)
Exemple avec des paramètres personnalisés :
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
commit-message: "My custom commit message!"
parallel: true
Exemples de workflows
Commit vers main
Lorsque du contenu est fusionné dans main, commit des traductions dans main.
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 depuis main
Lorsque du contenu est fusionné dans main, création d'une pull request à partir de main.
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 dans une branche de fonctionnalité
Lorsque du contenu est fusionné dans une branche de fonctionnalité, commit des traductions dans la branche.
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 depuis une branche de fonctionnalité
Lorsque du contenu est fusionné dans une branche de fonctionnalité, création d'une pull request à partir de la branche.
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 }}