Appearance
🌍 Système de Multilinguisme
L'application est conçue pour être entièrement multilingue, permettant à l'utilisateur de choisir sa langue préférée depuis l'interface. Le système gère à la fois les contenus dynamiques provenant du CMS et les textes statiques intégrés à l'application.
📖 Concept Global
Le multilinguisme repose sur trois piliers :
- Langue Active (
activeLocale) : La langue choisie par l'utilisateur (ou détectée automatiquement), stockée dans les préférences. - Traductions CMS : Données récupérées depuis Directus via des champs
translations. - Traductions Statiques : Libellés de l'interface (boutons, titres système) définis directement dans le code source.
Cascade de Fallback
Pour garantir qu'un texte est toujours affiché, le système applique une cascade de repli (fallback) :
- Langue demandée (ex:
fr-FR). - Langue de secours (
fallbackLocale, généralementen-US). - Première traduction disponible (pour le CMS).
- Clé technique ou champ vide (en dernier recours).
🛠️ Architecture Technique
Détection et Stockage
La langue est gérée par le store activeLocale (src/lib/stores/preferences.ts).
- Priorité 1 : Paramètre URL
?lang=. - Priorité 2 : Langue stockée localement (si déjà choisie).
- Priorité 3 : Langue du navigateur (
navigator.language). - Défaut :
fr-FR.
Direction de Lecture (RTL/LTR)
Le système supporte les langues s'écrivant de droite à gauche (ex: Arabe). La direction est automatiquement mise à jour sur l'élément racine du DOM en fonction de la locale active.
🧭 Sommaire de la section
| Guide | Description |
|---|---|
| Traductions CMS | Comment les contenus Directus sont localisés et résolus. |
| Traductions Statiques | Gestion des libellés intégrés au code source (STATIC_LABELS). |
| Détails d'Implémentation | Helpers techniques, stores et cascades de fallback. |
| Dépannage | Problèmes courants de détection ou d'affichage. |