i18n et l10n pour le vietnamien : par où commencer
← Blog
🌏 Localisation7 min de lecture

i18n et l10n pour le vietnamien : par où commencer

💡 L'internationalisation (i18n) est le travail d'ingénierie effectué une seule fois pour rendre un code source prêt : encodage UTF-8, externalisation des chaînes et formatage sensible à la locale. La localisation (l10n) est l'adaptation traductionnelle et culturelle répétée pour chaque langue cible. Pour le vietnamien, i18n doit toujours précéder l10n : une déclaration d'encodage manquante ou des chaînes codées en dur feront échouer la meilleure traduction à l'exécution.

À retenir

  • i18n est le fondement technique effectué une seule fois ; l10n est construit dessus et ne peut réussir sans lui.
  • Le minimum i18n pour le vietnamien : UTF-8 partout, lang="vi" sur l'élément <html>, toutes les chaînes dans des fichiers de locale, et un formatage date/nombre/devise conforme à la locale vi.
  • l10n pour le vietnamien ajoute : une traduction par un locuteur natif, des choix de registre sino-vietnamien adaptés au contexte, et un contrôle qualité de mise en page pour des chaînes 10-20% plus longues qu'en anglais.
  • Passer directement à la traduction sans i18n est l'erreur la plus coûteuse : le code source doit être remanié pendant que la traduction est déjà en cours.
  • Les deux phases influencent le SEO : i18n établit la structure d'URL et les signaux hreflang ; l10n produit le contenu vietnamien que Google indexe et classe.

Quelle est la différence entre i18n et l10n ?

Le W3C Internationalization Activity définit les deux termes avec précision. L'internationalisation (i18n) est la conception et le développement qui permettent à un produit d'être facilement localisé pour des audiences qui varient par leur culture, leur région ou leur langue. La localisation (l10n) est l'adaptation d'un produit, d'une application ou d'un document pour répondre aux exigences linguistiques, culturelles et autres d'un marché cible spécifique.

En pratique : i18n est ce que les ingénieurs font au code source ; l10n est ce que les traducteurs et spécialistes du contenu font avec le contenu. Les abréviations dérivent de la première et de la dernière lettre de chaque mot, le chiffre représentant les lettres intermédiaires (i18n en a 18, l10n en a 10).

Pourquoi i18n doit-elle précéder l10n pour le vietnamien ?

Le vietnamien utilise un alphabet latin étendu avec 29 lettres de base et des diacritiques combinants qui marquent 6 tons phonémiques. Un code source qui stocke du texte dans un encodage hérité comme Windows-1258 corrompra ces diacritiques dès qu'une chaîne vietnamienne est chargée. Une interface avec des chaînes françaises codées en dur signifie que chaque cycle de traduction nécessite également une modification du code, bloquant les flux de travail parallèles.

i18n crée les crochets techniques que l10n vient remplir. Sans ces crochets, même une traduction parfaite ne peut pas s'intégrer proprement. Pour la liste de contrôle complète, consultez liste de contrôle de localisation de site web en vietnamien.

La liste de contrôle i18n pour un code source prêt pour le vietnamien

Complétez ces tâches d'ingénierie avant de commencer la traduction :

  • Encodage UTF-8 : Déclarez charset="UTF-8" dans chaque réponse HTTP et dans la balise HTML <meta charset> dans les 1 024 premiers octets. Le W3C Internationalization Activity identifie cela comme l'étape la plus critique pour afficher correctement les diacritiques vietnamiennes.
  • Attribut de langue : Définissez lang="vi" sur l'élément <html> de chaque page vietnamienne. Utilisez lang="vi-VN" uniquement pour distinguer le vietnamien du Vietnam des variantes de la diaspora.
  • Externalisation des chaînes : Déplacez chaque chaîne visible par l'utilisateur vers des fichiers de ressources de locale (JSON, XLIFF ou PO), indexées par ID. Exemple dans vi.json : "checkout_button": "Thanh toán". Les chaînes codées en dur sont la cause principale d'une localisation incomplète.
  • Formatage sensible à la locale : Utilisez les API Intl de la plateforme ou une bibliothèque compatible ICU pour les dates, les nombres et les devises. En JavaScript : new Intl.NumberFormat('vi-VN', { style: 'currency', currency: 'VND' }).format(250000) renvoie le correct "250.000 ₫".
  • Structure d'URL : Adoptez des chemins en sous-répertoire (example.com/vi/) dès le départ. Modifier la structure d'URL après le lancement risque des liens brisés et des perturbations SEO.
  • Mises en page flexibles : Concevez des composants UI qui tolèrent la croissance de longueur des chaînes. Le texte vietnamien est généralement 10-20% plus long que l'anglais équivalent, ce qui affecte les libellés de boutons, les éléments de navigation et les colonnes de tableau.

Qu'est-ce que l10n ajoute par-dessus i18n ?

Une fois le code source internationalisé, l10n remplit le contenu spécifique à la locale :

  • Traduction : Chaque chaîne du fichier de locale est traduite par un locuteur vietnamien natif, y compris les libellés UI, les messages d'erreur, les titres meta, les méta-descriptions et les textes alt.
  • Choix de registre : Le vietnamien possède des registres formels et familiers distincts. Le vocabulaire sino-vietnamien (emprunté au chinois classique) signale l'expertise dans les contextes techniques, financiers et médicaux. Un spécialiste natif fait des choix de registre délibérés correspondant au public et au domaine.
  • Adaptation culturelle : La devise VND (sans subdivision décimale), le format de date DD/MM/YYYY et le format 24 heures dans les contextes formels diffèrent des valeurs par défaut du français et doivent être appliqués correctement dans chaque chaîne localisée.
  • Contrôle qualité de mise en page : Une révision visuelle finale aux largeurs mobile et bureau confirme que les chaînes vietnamiennes plus longues ne cassent pas les menus de navigation, les boutons ou les tableaux de données.

Tableau de décision pratique : tâche i18n ou l10n ?

Utilisez ce tableau pour catégoriser rapidement vos tâches de localisation avant de démarrer un projet vietnamien. Une erreur courante : livrer un fichier de traduction avant que l'externalisation des chaînes soit terminée, rendant l'intégration impossible.

TâchePhaseQui la réalise
Passer l'encodage des fichiers en UTF-8i18nIngénieur
Ajouter lang="vi" à l'élément HTMLi18nIngénieur
Déplacer les chaînes vers le fichier vi.jsoni18nIngénieur
Implémenter les formateurs Intl de date et nombrei18nIngénieur
Mettre en place le routage URL /vi/i18nIngénieur
Implémenter hreflang bidirectionneli18nIngénieur
Traduire toutes les chaînes dans vi.jsonl10nTraducteur vietnamien
Réviser les choix de registre sino-vietnamienl10nSpécialiste vietnamien natif
Tester la mise en page aux longueurs vietnamiennesl10nIngénieur QA + relecteur vietnamien
Recherche de mots-clés vietnamiens pour le SEOl10nSpécialiste SEO vietnamien

En interne ou avec un spécialiste : où se situe la frontière ?

i18n est un travail d'ingénierie que votre propre équipe de développement doit piloter. Tous les grands frameworks embarquent un support i18n : Next.js, React i18next, Vue i18n, Angular i18n, WPML pour WordPress. Il s'agit d'une décision d'architecture du code source, pas d'une tâche à externaliser.

La qualité de l10n dépend du type de contenu. La traduction automatique (Google Traduction, DeepL) gère correctement les contenus structurés à grand volume lorsqu'un relecteur vietnamien natif post-édite le résultat. Pour une comparaison détaillée, consultez notre traduction automatique vs traduction humaine pour le vietnamien. Pour les textes d'interface, le marketing et la terminologie spécialisée, la traduction directe par un spécialiste vietnamien natif surpasse constamment la post-édition de TA en qualité et en précision de registre.

Pour une localisation professionnelle de site web en vietnamien couvrant le français, l'anglais et le chinois comme langues source, le service sur ce site prend en charge la phase l10n avec une expertise vietnamienne native.

FAQ

Peut-on commencer à traduire en vietnamien avant que i18n soit terminée ?

Les fichiers de contenu statique (articles de blog, articles d'aide) peuvent être traduits immédiatement et ne dépendent pas de l'i18n du code source. Les chaînes d'interface ne peuvent pas être intégrées dans le produit avant que l'externalisation des chaînes soit complète et que le chargement des fichiers de locale fonctionne dans l'application. Lancer les deux pistes en parallèle est possible ; prévoyez une période d'attente d'intégration pour les chaînes UI.

Quelle est la configuration i18n minimale pour un site web marketing simple ?

Pour un site marketing statique simple : déclarez l'encodage UTF-8, ajoutez lang="vi" aux pages vietnamiennes, utilisez une URL en sous-répertoire (/vi/) et implémentez hreflang bidirectionnel. L'externalisation des chaînes est moins urgente pour les sites statiques, mais facilite considérablement les mises à jour futures. Ajoutez le formatage sensible à la locale uniquement si des prix ou des dates apparaissent.

hreflang est-il une tâche i18n ou l10n ?

hreflang est une tâche i18n. C'est un signal technique implémenté dans le HTML ou les en-têtes HTTP par les ingénieurs, qui indique aux moteurs de recherche la langue cible d'une page et les versions alternatives dans d'autres langues. Ce n'est pas un travail de traduction. Cependant, hreflang requièrt que la structure d'URL vietnamienne soit décidée au préalable, et dépend donc des décisions d'architecture i18n.

Comment vérifier que les chaînes vietnamiennes sont correctement encodées ?

Ouvrez une page vietnamienne dans un navigateur et affichez le code source HTML brut. Le texte vietnamien doit apparaître sous forme de caractères Unicode lisibles : "Tiếng Việt", et non sous forme de séquences corrompues. Si vous observez des caractères tronqués, corrigez l'encodage au niveau du serveur : vérifiez que l'en-tête HTTP Content-Type inclut charset=UTF-8, puis confirmez que les fichiers source sont enregistrés en UTF-8 sans BOM.

Sources officielles

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

DevisWhatsApp