Localisation continue en vietnamien avec Crowdin
← Blog
🌏 Localisation9 min de lecture

Localisation continue en vietnamien avec Crowdin

💡 La localisation continue automatise le cycle push-pull entre votre dépôt et Crowdin, gardant les traductions vietnamiennes en phase avec chaque version. Configuration minimale : GitHub connecté, un fichier crowdin.yml à la racine, et un seuil d'approbation native avant fusion. Principal piège vietnamien : la dérive Unicode NFD/NFC qui fait passer des chaînes inchangées pour nouvelles et double les coûts de traduction.

À retenir

  • L'intégration GitHub de Crowdin se synchronise toutes les heures par défaut : les nouvelles chaînes sources sont uploadées automatiquement, les traductions vietnamiennes approuvées reviennent sous forme de PR sur une branche préfixée l10n_.
  • Un crowdin.yml à quatre champs (project_id, api_token, chemin source, chemin traduction avec %locale%) suffit pour démarrer ; la CLI ignore les fichiers inchangés pour garder les pipelines CI rapides.
  • Normalisez vos fichiers JSON sources en Unicode NFC avant chaque push pour éviter que l'encodage NFD de macOS génère de fausses "nouvelles chaînes".
  • Le vietnamien est souvent 10 à 25 % plus long que l'anglais ; effectuez des tests de mise en page avec le locale vi après chaque version importante.
  • Exigez une approbation humaine pour les chaînes vietnamiennes avant la fusion : la traduction automatique gère bien le contenu UI générique, mais les erreurs de ton passent inaperçues aux outils d'estimation de qualité automatisés.

Qu'est-ce que la localisation continue, et pourquoi le vietnamien prend-il du retard ?

La localisation traditionnelle suit un modèle en cascade : les développeurs gèlent les chaînes, les transmettent aux traducteurs, attendent le lot, puis livrent. Dans un produit agile moderne, cela signifie que la version vietnamienne sort des semaines après la version française - un écart de confiance visible pour les 78 millions d'internautes vietnamiens (DataReportal, 2024).

La localisation continue remplace le gel de chaînes par un déclencheur automatisé. Dès qu'un développeur pousse de nouvelles chaînes vers le dépôt source, le TMS détecte le diff et les achemine vers les traducteurs. Une fois approuvées, la plateforme ouvre une pull request et la version vietnamienne sort avec la même version. Plus de lot, plus de retard.

Pour les équipes françaises qui localisent vers le vietnamien, ce flux automatisé est particulièrement précieux : le vietnamien est une langue à tons complexes dont la qualité ne peut pas être vérifiée par un revieweur non natif, ce qui rend le processus d'approbation native essentiel à chaque cycle.

Comment fonctionne la synchronisation Crowdin et GitHub ?

L'intégration GitHub de Crowdin est bidirectionnelle. Lorsque vous poussez votre fichier source (par exemple src/locales/fr.json ou en.json) sur GitHub, Crowdin extrait les chaînes nouvelles ou modifiées dans le projet. Quand les traducteurs approuvent les chaînes vietnamiennes dans l'éditeur Crowdin, la plateforme pousse le fichier traduit vers une branche préfixée l10n_ et ouvre une pull request automatiquement.

L'intervalle de synchronisation est d'une heure par défaut. Vous pouvez déclencher une synchronisation immédiate via Sync Now dans le tableau de bord, ou utiliser la CLI dans un pipeline CI/CD pour un contrôle plus fin. L'intégration prend également en charge la gestion des branches : des branches Crowdin séparées pour main, staging et les branches de fonctionnalités isolent l'état de traduction par piste de publication.

Les plateformes TMS alternatives - Phrase TMS, Lokalise et Smartcat - proposent le même modèle déclenché par webhook. Les concepts fondamentaux (upload du fichier source au push, PR de traduction à l'approbation) sont cohérents ; les différences portent principalement sur la tarification et la profondeur de l'automatisation.

Que doit contenir un crowdin.yml minimal pour un projet vietnamien ?

Placez un fichier crowdin.yml à la racine de votre dépôt. La configuration minimale viable pour un projet JSON avec cible vietnamienne :

project_id: "YOUR_PROJECT_ID"
api_token: "%CROWDIN_API_TOKEN%"
base_path: "."
files:
  - source: /src/locales/en.json
    translation: /src/locales/%locale%.json
    ignore:
      - /src/locales/en.json

L'espace réservé %locale% correspond à vi pour le vietnamien, produisant src/locales/vi.json. La règle ignore empêche le fichier source d'être traité comme cible de traduction.

Ajoutez deux étapes à votre pipeline CI (exemple GitHub Actions) :

- name: Upload sources to Crowdin
  run: crowdin upload sources --config crowdin.yml
- name: Download approved Vietnamese
  run: crowdin download --language vi --config crowdin.yml

Stockez CROWDIN_API_TOKEN comme secret de dépôt, jamais en dur dans le fichier de configuration. La CLI Crowdin utilise des uploads sources mis en cache et ignore les fichiers inchangés depuis la dernière exécution.

Quels pièges spécifiques au vietnamien brisent les workflows automatisés ?

Trois modes de défaillance sont propres au vietnamien dans les pipelines de localisation continue :

Dérive de normalisation Unicode. Les diacritiques vietnamiens ont deux représentations Unicode valides : NFC précomposé (un seul point de code par caractère accentué) et NFD décomposé (lettre de base plus marque combinante). Les éditeurs macOS écrivent souvent en NFD ; la plupart des TMS stockent en NFC. Quand votre fichier source arrive en NFD, la mémoire de traduction considère chaque chaîne diacritique comme nouvelle, les scores de correspondance tombent à zéro, et vous payez pour retraduire des chaînes déjà traitées. Ajoutez .normalize("NFC") dans un hook pre-commit.

Erreurs de marques tonales. Le vietnamien possède six tons écrits sous forme de diacritiques. Une marque incorrecte change entièrement le sens du mot : "ma" (fantôme), "mà" (mais), "má" (joue), "mả" (tombe), "mã" (code), "mạ" (riz en plant). Les outils d'estimation de qualité automatisés ne signalent pas les erreurs tonales car le texte produit reste du vietnamien valide. Exigez une relecture humaine pour toutes les chaînes orientées client.

Allongement des chaînes. Les chaînes vietnamiennes font couramment 10 à 25 % de plus que l'anglais. Les étiquettes de navigation, le texte des boutons et les onglets d'applications mobiles peuvent déborder silencieusement dans les builds automatisés. Effectuez des tests de régression de mise en page avec le locale vi pour détecter les débordements avant les utilisateurs.

Ce que votre équipe peut gérer en interne, et quand un spécialiste vietnamien natif fait économiser de l'argent

La couche automatisation - configuration Crowdin, crowdin.yml, intégration GitHub, pipeline CI/CD - est entièrement une tâche de développeur. Aucun spécialiste externe requis.

Pour la couche traduction, la frontière pratique est la suivante :

  • Contenu UI générique et informatif : La traduction automatique avec une relecture vietnamienne native est rentable. Les outils MT neuronaux modernes gèrent bien le vocabulaire produit courant ; la relecture corrige les erreurs tonales et les formulations non naturelles.
  • Textes marketing et sensibles à la marque : Un traducteur natif qui maîtrise le registre du vietnamien du Nord (le standard pour le business formel) et la voix de votre produit produira un texte qui convertit. Le texte MT générique se lit comme une traduction littérale aux yeux des utilisateurs vietnamiens.
  • Chaînes techniques, juridiques ou financières : La terminologie sino-vietnamienne de domaine spécialisé est cruciale ici. Un spécialiste natif avec une connaissance du domaine choisit le terme que les utilisateurs utilisent réellement, et non le calque du terme source.

Le service de localisation de sites web en vietnamien couvre à la fois la revue de pipeline et la couche de traduction humaine pour les produits web entrant sur le marché vietnamien.

FAQ

Puis-je utiliser le plan gratuit de Crowdin pour une localisation vietnamienne continue ?

Le plan gratuit de Crowdin prend en charge un projet avec des fonctionnalités limitées. L'intégration GitHub et la gestion de branches qui rendent la localisation continue pratique nécessitent un plan payant. Phrase TMS et Lokalise proposent des plans payants comparables ; comparez les tarifs actuels sur leurs sites respectifs.

Quel code de locale dois-je utiliser pour le vietnamien dans mes fichiers de locale ?

Utilisez vi (ISO 639-1) pour le vietnamien sans variante régionale, ou vi-VN (IETF BCP 47) quand vous devez préciser le Vietnam. Dans le crowdin.yml, l'espace réservé %locale% produit le code de locale tel que configuré dans les paramètres du projet.

Crowdin prend-il en charge la mémoire de traduction et le glossaire pour le vietnamien ?

Oui. Crowdin maintient une mémoire de traduction (TM) au niveau du projet pour le vietnamien. Quand une chaîne source change, la TM affiche la traduction vietnamienne précédente avec un score de correspondance, réduisant les coûts de retraduction. Les glossaires permettent de verrouiller les termes techniques sino-vietnamiens pour assurer la cohérence entre plusieurs traducteurs.

Comment empêcher des traductions vietnamiennes automatiques de partir en production ?

Configurez un seuil d'approbation minimum dans les paramètres du projet Crowdin et paramétrez l'intégration GitHub pour créer une PR de traduction uniquement quand toutes les chaînes atteignent ce seuil. Vous pouvez aussi ajouter le drapeau --export-approved-only à l'étape crowdin download dans votre pipeline CI pour ne télécharger que les chaînes approuvées par un humain.

La localisation continue fonctionne-t-elle aussi pour les applications mobiles ?

Oui. Crowdin prend en charge les formats Android XML, iOS .strings et Flutter ARB en plus du JSON. L'intégration GitHub fonctionne de manière identique : les chaînes sources sont poussées vers Crowdin à chaque commit, les traductions vietnamiennes approuvées reviennent sous forme de PR. Les recommandations sur la normalisation Unicode et les tests de mise en page s'appliquent également au mobile.

Sources officielles

Written by Dao Huy (Lucas), Vietnamese translator & localization specialist (EN · ZH · FR → Vietnamese). See translation services →

DevisWhatsApp