Formatage des dates, nombres et devises en vietnamien : guide CLDR
← Blog
🌏 Localisation5 min de lecture

Formatage des dates, nombres et devises en vietnamien : guide CLDR

💡 Le vietnamien utilise les dates en ordre jour-mois-année (dd/MM/yyyy), le point comme séparateur de milliers et la virgule comme séparateur décimal - l'inverse de l'anglais. Le dong vietnamien (VND, ₫) n'a pas de sous-unités, les prix sont donc toujours des entiers. Configurer correctement la locale vi-VN prend moins d'une heure et évite les erreurs d'affichage silencieuses qui nuisent à la conversion.

À retenir

  • Date : dd/MM/yyyy (le jour en premier) - 11/10/2026 = 11 octobre, pas le 10 novembre.
  • Nombres : point = milliers, virgule = décimale : 1.250.000,75 et non 1,250,000.75.
  • VND : toujours des entiers - afficher 1.250.000 ₫, jamais 1.250.000,00 ₫.
  • Pas de pluriel grammatical : utiliser la catégorie CLDR other pour tous les comptes en vietnamien.
  • Utiliser Intl.NumberFormat('vi-VN') et Intl.DateTimeFormat('vi-VN') plutôt que de coder des séparateurs en dur.

Quel format de date le vietnamien utilise-t-il ?

L'ordre des dates en vietnamien est petit-boutiste : jour, puis mois, puis année. Le format court du Unicode CLDR pour vi est dd/MM/y. Cela correspond à la plupart des pays d'Europe continentale et diffère du format américain (M/d/y). L'année sur quatre chiffres évite toute ambiguïté entre les siècles.

Les dates écrites en toutes lettres suivent le modèle ngày [jour] tháng [mois] năm [année]. Le 11 octobre 2026 s'écrit ngày 11 tháng 10 năm 2026. Les jours de la semaine sont numérotés à partir du lundi : Thứ Hai (lundi) jusqu'à Thứ Bảy (samedi), le dimanche étant Chủ Nhật. CLDR définit le lundi comme premier jour de la semaine au Vietnam.

Les contextes officiels et techniques au Vietnam utilisent l'heure au format 24 heures : 13:45, pas 1:45 PM. L'API Intl de JavaScript gère cela automatiquement avec la locale :

new Intl.DateTimeFormat('vi-VN').format(new Date('2026-10-11'));
// "11/10/2026"
new Intl.DateTimeFormat('vi-VN', { dateStyle: 'full' }).format(new Date('2026-10-11'));
// "Chủ Nhật, 11 tháng 10, 2026"

Pourquoi les séparateurs numériques vietnamiens cassent-ils les paiements ?

Les symboles numériques CLDR pour vi-VN inversent la convention anglaise. En vietnamien, le point (.) regroupe les milliers et la virgule (,) marque la décimale. Un utilisateur qui voit 1,250.00 ₫ ne lit pas "un million deux cent cinquante mille". Il lit un nombre légèrement supérieur à un. Cette erreur de lecture provoque une perte concrète de conversions à la page de paiement.

L'affichage correct de 1 250 500,75 (en notation française) est 1.250.500,75 en vietnamien. L'API ECMA-402 Intl gère cela sans code personnalisé :

new Intl.NumberFormat('vi-VN').format(1250500.75);
// "1.250.500,75"

Ne jamais coder en dur des points décimaux ou des séparateurs de milliers dans des chaînes de devises destinées aux utilisateurs vietnamiens. Toujours déléguer au formateur de la plateforme avec la locale correcte.

Comment formater le VND (dong vietnamien) dans une application ?

Le dong vietnamien (VND, ₫) n'a pas de sous-unités en circulation. Tous les prix de détail et les factures utilisent des nombres entiers. La norme CLDR pour VND définit maximumFractionDigits: 0. Certaines bibliothèques i18n appliquent par défaut deux décimales pour toutes les devises, il faut donc surcharger cette valeur pour VND afin d'éviter un ",00" source de confusion.

  • Correct : 1.250.000 ₫
  • Source de confusion : 1.250.000,00 ₫
new Intl.NumberFormat('vi-VN', {
  style: 'currency',
  currency: 'VND',
  maximumFractionDigits: 0
}).format(1250000);
// "1.250.000 ₫"

Formes abrégées CLDR utilisées dans les interfaces vietnamiennes : N (nghìn, millier), Tr (triệu, million), Tỷ (milliard). "1,5 Tr ₫" signifie 1.500.000 ₫. De nombreux sites e-commerce vietnamiens affichent VND et USD en parallèle, car une partie des acheteurs en ligne vietnamiens est familière des prix en dollars des plateformes internationales.

Pluriel, classificateurs et champs d'adresse

Le vietnamien n'a pas de pluriel grammatical. La même forme nominale est utilisée que le nombre soit 1 ou un million. CLDR définit deux catégories de pluriel pour vi : "one" (i = 0 ou n = 1) et "other". En pratique, seul "other" est utilisé pour tous les comptes. Cela simplifie considérablement les chaînes ICU MessageFormat :

  • Anglais : {count, plural, one {# item} other {# items}}
  • Vietnamien : {count, plural, other {# sản phẩm}}

Une subtilité : le vietnamien utilise des classificateurs (mots compteurs) qui varient selon la catégorie du nom, pas selon la quantité. Pour les personnes : "3 người" ; pour les livres : "2 cuốn sách" ; pour les objets plats : "5 tờ giấy". La traduction automatique choisit souvent le mauvais classificateur pour les noms abstraits ou les nouvelles catégories de produits.

Pour les formulaires d'adresse, le vietnamien utilise l'ordre du plus petit au plus grand : numéro et nom de rue, puis quartier (phường ou xã), puis arrondissement (quận ou huyện), puis ville ou province. Exemple : "123 Lê Lợi, Phường Bến Nghé, Quận 1, TP. Hồ Chí Minh". Un formulaire d'adresse occidental à deux lignes ne convient pas aux utilisateurs vietnamiens. Divisez en quatre champs distincts : Rue, Quartier, Arrondissement et Ville ou Province.

Ce que vous pouvez configurer vous-même et quand un spécialiste apporte de la valeur

Tout ce qui est décrit ci-dessus, les formats de date, séparateurs de nombres, décimales du VND et règles de pluriel, est une configuration purement technique. Votre équipe d'ingénierie peut le gérer entièrement avec l'API Intl ou une bibliothèque compatible ICU comme Format.js, ICU4J ou Android ResourceBundle. Aucun linguiste vietnamien n'est nécessaire à cette couche.

Un spécialiste de la localisation de sites web en vietnamien apporte une valeur réelle au niveau du contenu :

  • Révision des chaînes mixtes où un nombre apparaît dans une phrase et la grammaire vietnamienne environnante doit correspondre.
  • Vérification que les abréviations numériques compactes ("N", "Tr", "Tỷ") correspondent aux conventions attendues par votre audience cible - le vietnamien du Nord et du Sud diffèrent dans certaines expressions financières courantes.
  • Identification des références au Tết, aux textes du calendrier lunaire et aux jours fériés qui nécessitent une formulation culturellement adaptée plutôt qu'une simple conversion de date.
  • Vérification de l'utilisation des classificateurs dans les notifications et les chaînes de comptage que la traduction automatique gère souvent mal.

FAQ

Dois-je utiliser vi ou vi-VN comme balise de locale ?

Les deux fournissent les mêmes données CLDR. La recommandation BCP 47 est d'utiliser la balise la plus courte qui identifie votre locale : vi est correct et minimal. Utilisez vi-VN si votre framework nécessite un code de région explicite. Les deux fonctionnent dans l'API Intl, next-intl, Format.js et ICU4J.

Pourquoi ma bibliothèque affiche-t-elle un point comme séparateur décimal alors que CLDR indique une virgule ?

Certaines bibliothèques i18n plus anciennes utilisent par défaut la locale racine ou la locale du système d'exploitation plutôt que les données CLDR. Vérifiez que vous passez explicitement 'vi-VN' au formateur et que la version de votre bibliothèque est basée sur les données CLDR actuelles. CLDR 48 est la dernière version stable en 2026.

Mon site permet le paiement en USD. Dois-je quand même afficher le VND ?

La Banque d'État du Vietnam exige que les biens et services vendus au Vietnam soient tarifés en VND. Afficher uniquement des prix en USD sur un site destiné au marché vietnamien n'est pas conforme à la réglementation et perturbe la plupart des consommateurs locaux. Affichez le VND comme prix principal avec le symbole ₫, et optionnellement un équivalent USD en plus petit. Utilisez toujours zéro décimale pour le VND.

Comment gérer le calendrier lunaire vietnamien dans une application de planning ?

Le calendrier grégorien est le calendrier officiel pour tous les usages juridiques et commerciaux au Vietnam. Le calendrier lunaire (Âm lịch) est utilisé pour les événements culturels et la planification du Tết. CLDR prend en charge le calendrier bouddhiste comme approximation. Pour une conversion précise entre le calendrier grégorien et le calendrier lunaire vietnamien, utilisez une bibliothèque dédiée. Afficher les deux dates côte à côte est une pratique courante dans les applications de calendrier vietnamiennes.

Définir vi-VN dans l'API Intl affecte-t-il la traduction ou seulement le formatage ?

L'API Intl contrôle uniquement le formatage : nombres, dates et devises. Elle ne charge pas les chaînes traduites. Vous avez toujours besoin d'un système i18n distinct avec un catalogue de messages en vietnamien pour traduire le texte de votre interface. Définir vi-VN dans Intl.NumberFormat formate les nombres correctement mais ne traduit pas "checkout" en "thanh toán".

Sources officielles

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

DevisWhatsApp