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.