|
Documentation
Réserver une démoPlateforme
PlateformeMCPCLIAPIWorkflows
GuidesChangelog

Localisation continue

  • Comment ça marche
  • Configuration

Plateformes

  • App GitHub
  • GitHub
  • GitLab CI/CD
  • Bitbucket Pipelines
  • Bonnes pratiques avancées

Bonnes pratiques avancées

Bonnes pratiques avancées pour la localisation CI/CD : choix du workflow, vérification de l’exhaustivité des traductions et résolution des conflits de fusion.

Choisir le bon workflow#

Quatre modèles de workflow couvrent la plupart des organisations d’équipe. Chacun implique ses propres compromis en matière d’automatisation, de charge de relecture et de gestion des branches.

WorkflowIdéal pourCompromis
Commit sur mainPetites équipes, mises à jour sans frictionAucune étape de relecture des traductions
PR depuis mainLes équipes qui veulent relire les traductionsNécessite une approbation manuelle de la PR
Commit sur une branche de fonctionnalitéBranches de fonctionnalité de longue duréeLes commits de traduction apparaissent dans l’historique de la branche
PR depuis une branche de fonctionnalitéContrôle maximal par fonctionnalitéPlusieurs PR à gérer par fonctionnalité

Sur GitHub, la Lingo.dev GitHub App gère la plupart de ces cas de figure côté serveur — elle réagit aux pushes et aux PR, commit les traductions en retour et ne nécessite ni runner ni secret. Privilégiez les modèles CLI ci-dessous lorsque vous exécutez la localisation dans votre propre pipeline.

En cas de doute, commencez par "Commit sur main". C’est le workflow le plus simple, et il évite complètement les conflits de fusion puisqu’il n’y a pas de divergence entre les branches.

Vérifier l’exhaustivité des traductions#

La commande lingo check vérifie que l’ensemble du contenu est traduit sans générer de nouvelles traductions. Elle renvoie un code de sortie non nul si du contenu est manquant :

bash
lingo check

Utilisez-la comme garde-fou de déploiement pour éviter de livrer du contenu non traduit. Installez la CLI avec npm install -g @lingo.dev/cli (Node 22+) et authentifiez le runner à l’aide d’une variable d’environnement LINGO_API_KEY.

yaml
name: Check translations
on: [push, pull_request]
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: npm install -g @lingo.dev/cli
      - run: lingo check
        env:
          LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}

Résoudre les conflits de fusion#

Des conflits de fusion surviennent lorsque le fichier .lingo/lock.json diverge entre les branches, généralement quand les traductions sont mises à jour indépendamment dans plusieurs branches.

Prévention#

Commiter les traductions directement sur main (au lieu d’utiliser des branches de fonctionnalité pour les traductions) élimine complètement les conflits de lockfile.

Résolution par merge#

1

Démarrer le merge

bash
git merge <branch-name>
2

Supprimer le lockfile en conflit

bash
rm .lingo/lock.json
3

Terminer le merge

bash
git add .
git merge --continue
4

Régénérer le lockfile

bash
lingo push

L’exécution de lingo push reconstruit .lingo/lock.json à partir de l’état actuel de vos fichiers source dans le cadre du workflow de synchronisation habituel.

Résolution par rebase#

La même approche fonctionne aussi avec un rebase — supprimez .lingo/lock.json à chaque étape de conflit, poursuivez le rebase, puis exécutez lingo push à la fin pour régénérer le fichier de verrouillage :

bash
git rebase <branch-name>
# On each conflict: rm .lingo/lock.json && git add . && git rebase --continue
lingo push

Étapes suivantes#

GitHub App
Automatisez la localisation sur GitHub, sans runner
lingo push
Synchroniser le contenu source et les traductions
Fonctionnement
Le pipeline de localisation CI/CD
Configuration
Configurer la CI/CD pour votre projet

Cette page vous a-t-elle été utile ?

Max PrilutskiyMax Prilutskiy·Mis à jour il y a 29 jours·3 min de lecture