Frappe Framework
Résolution de la langue
Comment Frappe choisit la langue d’une session (frappe.lang) et comment exploiter chaque niveau de priorité dans vos apps ou vos scripts.
Ordre de résolution
Cette page explique comment Frappe détermine la langue d’une session et comment vous pouvez exploiter ce mécanisme dans vos apps ou vos scripts.
La langue de la session dépend de la valeur de frappe.lang, résolue dans l’ordre suivant :
| Priorité | Source | Clé | Portée |
|---|---|---|---|
| 1 | Form Dict | _lang | Tous les utilisateurs |
| 2 | Cookie | preferred_language | Utilisateur invité (Guest) uniquement |
| 3 | En-tête de requête | Accept-Language | Utilisateur invité (Guest) uniquement |
| 4 | Document User | language | Utilisateur connecté |
| 5 | System Settings | language | Tout le site (valeur de repli) |
Form Dict : _lang
Le paramètre _lang du Form Dict a la priorité la plus haute. Le définir met à jour tous les composants traduisibles de la requête concernée. Frappe s’en sert à certains endroits pour gérer les modèles d’e-mail (Email Template) et les vues d’impression.
Cookie : preferred_language
Passer ?_lang=ru à chaque requête n’est pas toujours pratique. Pour un réglage de langue persistant mais temporaire, vous pouvez définir la clé preferred_language dans les cookies. Frappe utilise ce mécanisme pour le sélecteur de langue du site web. Il permet de conserver la langue côté client.
À retenir
Pris en compte uniquement pour les utilisateurs invités (Guest). Ignoré pour les utilisateurs connectés.
En-tête de requête : Accept-Language
Une autre méthode, plus propre et standard, consiste à utiliser l’en-tête Accept-Language. Si les deux mécanismes précédents ne sont pas définis, Frappe lit les valeurs de cet en-tête, qui contient la liste ordonnée des langues acceptées par le client. La documentation Mozilla détaille cet en-tête.
À retenir
Pris en compte uniquement pour les utilisateurs invités (Guest). Ignoré pour les utilisateurs connectés.
Document User et System Settings
Le document User possède un champ language qui fixe la langue de session de cet utilisateur. Ce réglage est conservé quel que soit l’appareil ou le client, ce qui permet à un utilisateur de voir le site web et le bureau (Desk) dans la langue de son choix. Par exemple, si un utilisateur choisit « Russian » sur un site en français, le site est automatiquement traduit en russe dès qu’il se connecte.
Le champ language des paramètres système (System Settings) fixe la langue de tout le site. Il a la priorité la plus basse et sert de langue de repli pour toutes les sessions.
