Internationalisation (i18n)
Vue d'ensemble
L'internationalisation n'est pas qu'une simple traduction de mots. C'est un processus de conception qui permet au logiciel de s'adapter à différentes langues, régions et cultures sans modification du code source.
Architecture
La stratégie repose sur une séparation claire des responsabilités entre le client (Frontend) et le serveur (Backend).
Frontend
Le Frontend gère l'affichage dynamique et l'interaction directe avec l'utilisateur. Ses responsabilités incluent :
- Traduction des labels et messages.
- Formatage local : Dates, heures, nombres et devises.
- Détection de la langue via les préférences utilisateur (français par défaut).
Backend
Le Backend assure la cohérence des données envoyées et la communication sortante. Ses responsabilités incluent :
- Localisation des messages d'erreur renvoyés par les API.
- Emails et notifications : Envoi de messages traduits selon la préférence de l'utilisateur.
- Données traduisibles : Gestion du contenu dynamique (ex: descriptions de produits en plusieurs langues dans la DB).
- Négociation de contenu via les headers HTTP (Accept-Language).
Concepts Clés
Avant de commencer l'implémentation, voici les termes essentiels à maîtriser :
| Terme | Définition |
|---|---|
| i18n | Internationalization : Préparation technique du code pour supporter plusieurs langues. |
| l10n | Localization : Adaptation concrète à une région spécifique (traduction + culture). |
| Locale | Un identifiant (ex: fr-FR, en-US) combinant la langue et la région. |
| Translation Key | Un identifiant unique (ex: auth.login.button) utilisé dans le code à la place du texte brut. |