Titre
Sous-titre
Titre
Paragraphe1
Paragraphe2
Paragraphe3
Titre
Paragraphe1
Paragraphe2
Paragraphe3
Titre
Sous-titre
Identificateurs de paramètres régionaux (BCP 47)
Les balises BCP 47 telles que « en-US » ou « zh-Hans-CN » indiquent la langue, l'alphabet et la région. Elles constituent la base de tout système d'internationalisation et déterminent les traductions, les formats et les règles applicables.
Unicode et UTF-8
Unicode attribue un point de code unique à chaque caractère de chaque alphabet. L'UTF-8 est le codage le plus répandu sur le Web et garantit un affichage correct du texte, quelle que soit la langue.
Clés de traduction
Les clés de traduction sont des identifiants fixes qui renvoient à des chaînes spécifiques à une locale. Elles dissocient votre code source du contenu traduisible, ce qui permet un développement et une traduction en parallèle.
Pluralisation (unité de soins intensifs)
Les langues ont des règles de pluriel différentes : l'anglais en compte deux, l'arabe six. ICU MessageFormat gère les pluriels, le genre et certaines expressions au sein d'une syntaxe unique.
Assistance RTL
L'arabe, l'hébreu et d'autres écritures se lisent de droite à gauche. La prise en charge de la lecture de droite à gauche nécessite de inverser la disposition, de retourner les icônes et d'utiliser les propriétés logiques CSS à la place des propriétés « left » et « right ».
Date / Montant / Devise
Les dates, les nombres et les devises varient selon les paramètres régionaux. L'API Intl et des bibliothèques telles que date-fns proposent un formatage adapté aux paramètres régionaux ; ainsi, 1 000,50 s'affiche sous la forme 1 000,50 en allemand.
Titre
Sous-titre
JSON
Particulièrement apprécié pour les applications web (React, Vue, Angular). Lisible par l'utilisateur, prend en charge l'imbrication pour des structures de clés bien organisées. Il n'y a pas de norme intégrée pour la formation des pluriels ; c'est pourquoi des bibliothèques telles que ICU MessageFormat comblent cette lacune.
XLIFF
Norme industrielle basée sur XML pour l'échange de traductions entre outils. Prise en charge par toutes les plateformes TMS professionnelles. Format détaillé mais riche en fonctionnalités, avec prise en charge intégrée des notes, du suivi de l'état d'avancement et des métadonnées.
PO/POT (Gettext)
Format open source classique utilisé dans les écosystèmes Python, PHP et Ruby. Prise en charge intégrée du pluriel grâce à une syntaxe dédiée aux formes plurielles. Largement pris en charge par les traducteurs et les outils de traduction.
ARB
Application Resource Bundle est le format standard de Flutter et Dart. Basé sur JSON et prenant en charge la syntaxe des messages ICU, il permet de gérer les pluriels et les sélections de manière native. Il est utilisé par l'outil gen-l10n de Flutter.
.strings / .stringsdict
Formats natifs de la plateforme Apple pour le développement sous iOS et macOS. Le fichier .strings gère de simples paires clé-valeur, tandis que le fichier .stringsdict utilise la structure XML des fichiers plist pour les règles de pluralisation.
.resx
Format de fichier de ressources .NET utilisé pour les applications C# et VB.NET. Basé sur XML, il offre une intégration étroite avec les outils Visual Studio. Prend en charge les ressources typées pour les chaînes de caractères, les images et d'autres ressources.
Titre
Sous-titre
Auditez votre base de code
Identifiez toutes les chaînes de caractères, tous les formats de date et tous les modèles dépendants des paramètres régionaux qui sont codés en dur. Déterminez quels composants et quelles pages contiennent du texte destiné aux utilisateurs qui doit être extrait.
Externaliser les chaînes de caractères
Déplacez tout le texte destiné aux utilisateurs vers des fichiers de ressources structurés (JSON, XLIFF ou PO). Remplacez les chaînes intégrées par des appels de fonction de traduction qui font référence à des clés.
Choisissez vos outils
Choisissez une bibliothèque d'internationalisation (i18n) pour votre framework, un système de gestion des traductions (TMS) pour faciliter la collaboration, et optez pour un processus de traduction assuré par des traducteurs humains, par l'IA ou un système hybride.
Intégrer et expédier
Intégrez votre bibliothèque d'internationalisation (i18n) au routage et au rendu, connectez votre système de gestion de traduction (TMS) à votre infrastructure de CI/CD pour une synchronisation automatique, et déployez les paquets de paramètres régionaux via un CDN pour une diffusion rapide.
Titre
Sous-titre
Intégration Développeur
Évaluez les outils CLI, la compatibilité SDK, les flux de travail basés sur Git et les hooks CI/CD. Les meilleures plateformes TMS s'intègrent directement dans votre pipeline de développement afin que les traductions restent synchronisées avec les modifications du code automatiquement.
Mémoire de Traduction
La mémoire de traduction stocke les traductions précédemment approuvées et les suggère pour des chaînes similaires ou identiques. Cela réduit les coûts de traduction, accélère les délais et maintient la cohérence dans tout votre produit.
Fonctionnalités de Collaboration
Recherchez des flux de révision, des commentaires en ligne, des glossaires partagés et des chaînes d'approbation. Ces fonctionnalités permettent aux traducteurs, aux réviseurs et aux développeurs de collaborer sans goulets d'étranglement ni malentendus.
IA et Automatisation
Les plateformes TMS modernes proposent des suggestions de traduction automatique, des contrôles qualité automatisés, des opérations par lots et un routage intelligent. Les flux de travail assistés par IA réduisent les efforts manuels tout en maintenant la qualité des traductions.
Titre
Sous-titre
React
Modèles React-intl, React-i18next et FormatJS
Next.js
Localisation (i18n) de l'App Router, du middleware et des composants serveur
Vue
API de composition vue-i18n et intégration des SFC
Angular
Prise en charge intégrée de l'internationalisation (i18n), ngx-translate et Transloco
Svelte
svelte-i18n, le routage SvelteKit et les stores
Flutter
le paquet intl, les fichiers ARB et les outils de localisation gen-l10n
React Native
i18next, la localisation d'Expo et les modules natifs
Nuxt
Module @nuxtjs/i18n avec routage automatique
Titre
Sous-titre
Concaténation de chaînes
La construction de phrases par concaténation de fragments ne fonctionne pas dans les langues où l'ordre des mots est différent. Utilisez plutôt ICU MessageFormat avec des espaces réservés.
Chaînes de caractères codées en dur
Intégrer du texte destiné aux utilisateurs directement dans le code source rend la traduction impossible sans modification du code. Externalisez toutes les chaînes de caractères dès le début.
Ignorer les pluriels
La simple condition if/else pour distinguer le singulier du pluriel ne fonctionne qu'en anglais. De nombreuses langues possèdent plusieurs formes de pluriel qui nécessitent l'application des règles de pluriel de l'ICU.
Une traduction après coup
Ajouter la fonctionnalité d'internationalisation après le lancement implique une refonte coûteuse. Concevoir dès le départ en tenant compte de l'internationalisation permet de gagner du temps et d'éviter l'accumulation de dette technique.
Titre
Sous-titre
- Toutes les chaînes destinées aux utilisateurs ont été transférées dans des fichiers de ressources
- Détection de la langue mise en place (navigateur, URL, préférences de l'utilisateur)
- La pluralisation est gérée à l'aide de ICU MessageFormat pour toutes les langues cibles
- Le formatage de la date, de l'heure, des nombres et des devises utilise l'API Intl ou une solution équivalente
- Prise en charge de la mise en page RTL testée avec les propriétés logiques CSS
- Paramètres de localisation de secours configurés en cas de traductions manquantes
- Les clés de traduction respectent une convention de nommage cohérente
- Le pipeline CI vérifie qu'il n'y a pas de clés de traduction manquantes ou inutilisées
Titre
Sous-titre
- Pseudo
- Visuel
- Automatisé
- Linguistique
- Expansion
Titre
Sous-titre
Quelle est la différence entre l'internationalisation (i18n) et la localisation (L10n) ?
L'internationalisation (i18n) est le processus technique qui consiste à concevoir un logiciel de manière à ce qu'il puisse prendre en charge plusieurs langues et régions. La localisation (L10n) est le processus de gestion du contenu qui consiste à adapter ce logiciel à une configuration régionale spécifique, notamment en traduisant les textes, en ajustant les formats et en veillant à ce que le contenu soit adapté à la culture locale. L'i18n s'effectue une seule fois au niveau du code source ; la L10n s'effectue pour chaque configuration régionale prise en charge.
Quelle bibliothèque d'internationalisation devrais-je utiliser ?
Le choix de la meilleure bibliothèque dépend de votre framework. Pour React, react-intl (FormatJS) et react-i18next sont les plus couramment utilisées. Les développeurs Vue ont généralement recours à vue-i18n. Angular intègre une prise en charge native de l'internationalisation (i18n), parallèlement à des solutions communautaires telles que Transloco. Les projets Svelte utilisent svelte-i18n. Évaluez chaque option en fonction de la taille du bundle, de la prise en charge d'ICU et de la qualité de son intégration avec votre modèle de rendu.
Dans combien de langues dois-je lancer mon produit ?
Commencez par deux ou trois langues prioritaires, en vous basant sur vos données utilisateur existantes ou sur une étude de marché ciblée. Cela vous permettra de valider votre architecture d'internationalisation, votre flux de travail de traduction et votre processus d'assurance qualité à une échelle raisonnable. Une fois que vous disposerez d'un pipeline fiable, étendez vos activités à d'autres langues en utilisant des analyses pour déterminer les paramètres régionaux à ajouter en priorité.
Puis-je utiliser la traduction automatique pour mon application ?
Une approche hybride s'avère efficace : recourir à la traduction automatique pour les premières ébauches et les contenus à fort volume et à faible niveau de criticité, puis faire appel à des relecteurs humains pour peaufiner les chaînes de texte où la qualité est primordiale, telles que les textes marketing, les messages d'erreur et les textes juridiques. La traduction automatique neuronale moderne s'est considérablement améliorée, mais la relecture humaine reste indispensable pour garantir les nuances, le ton de la marque et la justesse culturelle.
Qu'est-ce que la pseudo-localisation ?
La pseudo-localisation est une technique de test qui consiste à remplacer le texte par des caractères accentués ou étendus (par exemple, en transformant « Hello » en « [~Hellllo~] ») sans en modifier le sens. Elle aide les développeurs à repérer les chaînes codées en dur, les troncatures de texte et les problèmes de mise en page avant que les traductions définitives ne soient disponibles. La plupart des bibliothèques d'internationalisation et des outils de gestion de traduction prennent en charge la génération automatique de résultats pseudo-localisés.
Comment gérer la localisation du contenu dynamique ?
Utilisez les espaces réservés de MessageFormat d'ICU pour l'interpolation (par exemple, « Bonjour, {name} ») plutôt que de concaténer des chaînes de caractères. Pour les pluriels, utilisez la syntaxe de pluriel d'ICU qui s'adapte aux règles de chaque langue. Évitez de construire des phrases à partir de fragments, car l'ordre des mots varie d'une langue à l'autre. Pour le texte enrichi, utilisez des espaces réservés balisés qui permettent aux traducteurs de réorganiser les éléments HTML sans altérer le balisage.