Aller au contenu principal

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 :

TermeDéfinition
i18nInternationalization : Préparation technique du code pour supporter plusieurs langues.
l10nLocalization : Adaptation concrète à une région spécifique (traduction + culture).
LocaleUn identifiant (ex: fr-FR, en-US) combinant la langue et la région.
Translation KeyUn identifiant unique (ex: auth.login.button) utilisé dans le code à la place du texte brut.