Appearance
Mustache Locale Context ​
Problématique ​
Les templates Mustache venant du CMS avaient besoin d'une variable de langue pour produire des URLs, labels et paramètres localisés. Sans cette variable, les intégrateurs de contenu devaient dupliquer des contenus par langue ou coder des contournements.
Aperçu de la Solution ​
Le store contextStore dérive maintenant aussi de activeLocale et reconstruit le contexte quand la langue change. Les variables intégrées locale (format long, ex : fr-FR) et lang (format court, ex : fr) sont ajoutées dans createContextFromData au même niveau que les autres variables applicatives.
Les deeplinks executes via performMenuAction('deeplink', ...) appliquent egalement un rendu Mustache au moment de l'ouverture, ce qui permet d'utiliser {{lang}} et {{locale}} dans les URI CMS.
Guide d'Implémentation ​
- Importer
activeLocaledanscontextStore. - Ajouter
activeLocaleaux dĂ©pendances deasyncDerived. - Transmettre la locale courante Ă
createContextFromData. - Ajouter
context['locale']etcontext['lang']dans la construction du contexte. - Vérifier avec les tests de store qu'un changement de langue met à jour
contextStore.data.localeetcontextStore.data.lang.
Exemple de Code ​
mustache
https://example.com/landing?lang={{lang}}&locale={{locale}}&uid={{uid}}Avec activeLocale = en-US, la sortie devient :
text
https://example.com/landing?lang=en&locale=en-US&uid=<device-uid>Notes de Performance ​
Le recalcul du contexte est limité à un merge de données et à la reconstruction d'un objet dictionnaire. L'impact runtime est négligeable face au gain fonctionnel de réactivité des templates.