Ingénierie//15 min de lecture

CI/CD pour la Localisation : Automatiser les Traductions dans votre Pipeline de Déploiement

Eray Gündoğmuş
Partager

CI/CD pour la Localisation : Automatiser les Traductions dans votre Pipeline de Déploiement

Points Clés

  • L'intégration CI/CD élimine la gestion manuelle des fichiers de traduction et garantit que les traductions sont livrées à chaque déploiement
  • L'extraction et la validation automatisées des chaînes détectent les traductions manquantes avant qu'elles n'atteignent la production
  • Les builds déclenchés par webhook permettent une localisation continue — les traductions sont mises en ligne dès leur approbation
  • Les vérifications pré-fusion peuvent bloquer les PRs contenant des chaînes non traduites, empêchant les localisations incomplètes d'être livrées

Pourquoi Automatiser la Localisation dans CI/CD ?

Les flux de travail de localisation manuels créent des goulots d'étranglement :

  • Les développeurs oublient de télécharger les nouvelles chaînes vers le TMS
  • Les fichiers traduits attendent dans le TMS que quelqu'un les télécharge
  • Des conflits de fusion surviennent lors du placement manuel des fichiers
  • Les traductions manquantes se glissent en production

L'automatisation CI/CD résout ces problèmes en faisant de la synchronisation des traductions une partie standard de chaque build et déploiement.

Architecture du Pipeline

Code Push → CI Triggered → Extract Strings → Push to TMS
                                                  ↓
Production ← Deploy ← Build ← Pull Translations ← Translations Complete (webhook)

Implémentation avec GitHub Actions

Sur Pull Request : Valider les Traductions

name: Translation Check
on: pull_request

jobs:
  check-translations:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Scan for new strings
        run: npx better-i18n scan --check
        # Échoue si des chaînes non traduites sont trouvées

      - name: Validate translation files
        run: npx better-i18n validate
        # Vérifie la syntaxe JSON, les clés manquantes, la cohérence des espaces réservés

Lors de la Fusion vers Main : Synchroniser et Déployer

name: Deploy with Translations
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Push new strings to TMS
        run: npx better-i18n push
        env:
          BETTER_I18N_TOKEN: ${{ secrets.BETTER_I18N_TOKEN }}

      - name: Pull latest translations
        run: npx better-i18n pull --all

      - name: Build
        run: npm run build

      - name: Deploy
        run: npm run deploy

À la Fin de la Traduction : Build Déclenché par Webhook

name: Translation Update
on:
  repository_dispatch:
    types: [translations-updated]

jobs:
  rebuild:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx better-i18n pull --all
      - run: npm run build
      - run: npm run deploy

Vérifications de Validation Automatisées

Intégrez ces vérifications dans votre CI Pipeline :

VérificationCe qu'elle DétecteQuand l'Exécuter
Traductions manquantesClés sans traductions dans les langues ciblesVérification PR
Cohérence des espaces réservés{name} dans la source mais {nom} dans la traductionVérification PR
Syntaxe JSON/XLIFFFichiers de traduction malformésChaque build
Longueur des chaînesTraductions dépassant les limites de caractères de l'UIVérification PR
Clés inutiliséesClés de traduction plus référencées dans le codePlanifié hebdomadaire

Gestion des Traductions Incomplètes

Toutes les traductions ne seront pas complètes au moment du déploiement. Stratégies :

  1. Repli sur la langue source — Afficher l'anglais si la traduction est manquante (la plus courante)
  2. Bloquer le déploiement — Ne déployer que lorsque toutes les langues cibles sont traduites à 100 % (la plus stricte)
  3. Seuil de pourcentage — Déployer si la langue est traduite à >90 %, bloquer si en dessous
  4. Priorité par clé — Les chaînes critiques de l'UI doivent être traduites, les non-critiques peuvent utiliser le repli

FAQ

Dois-je committer les fichiers de traduction dans git ? Oui. Committer les fichiers de traduction garantit que les builds fonctionnent même si l'API TMS est indisponible. Le CI Pipeline récupère les traductions fraîches et committe automatiquement les modifications.

Comment éviter les conflits de fusion dans les fichiers de traduction ? Utilisez le TMS comme source de vérité. CI récupère les traductions fraîches à chaque build, écrasant les fichiers locaux. Les développeurs ne modifient jamais les fichiers de traduction manuellement.

Que faire si les traductions ne sont pas prêtes quand je dois déployer ? Utilisez des stratégies de repli (afficher la langue source pour les chaînes non traduites). Suivez le pourcentage de complétion des traductions et configurez des alertes quand il tombe en dessous du seuil.

Comment gérer le développement basé sur des branches ? Poussez les chaînes des feature branches vers des namespaces ou branches TMS séparés. Fusionnez les traductions quand la feature branch est fusionnée dans main.

Puis-je exécuter un CI/CD de localisation pour les applications mobiles également ? Oui. Les mêmes principes s'appliquent — pousser les chaînes vers le TMS, récupérer les traductions pendant le build, valider avant la publication. Spécifique au mobile : inclure les métadonnées ASO dans le pipeline et valider les formats de fichiers .strings/.xml.

Comments

Loading comments...