Skip to content

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 ​

  1. Importer activeLocale dans contextStore.
  2. Ajouter activeLocale aux dépendances de asyncDerived.
  3. Transmettre la locale courante Ă  createContextFromData.
  4. Ajouter context['locale'] et context['lang'] dans la construction du contexte.
  5. Vérifier avec les tests de store qu'un changement de langue met à jour contextStore.data.locale et contextStore.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.