Conseils & Astuces ArcGIS Online - N°179
N° 179 - Gérer des fenêtres contextuelles multilingues
On me demande parfois si ArcGIS peut prendre en charge des cartes web
multilingues. Généralement, le besoin est d'afficher, dans une seule et même
carte web, des fenêtres contextuels dont la langue s'adapte à la langue de
l'utilisateur. La récente mise à jour d'Arcade (1.23) apportent une solution
intéressante avec la fonction
GetEnvironment()
pour tester le contexte de langue de l'application et modifier en conséquence
l'expression des étiquettes, des fenêtres contextuels, ...
Dans cet article je vous propose de voir un exemple concret de configuration
d'une fenêtre contextuelle en français et en anglais.
-
La carte web que j'utilise contient une couche avec les sites classés de
l'UNESCO. Les champs contenant le nom du site et celui contenant la
description sont disponibles dans les 2 langues (français et anglais).
Je souhaite donc que la fenêtre contextuelle de cette couche soit en français lorsque l'environnement de l'utilisateur est en français et en anglais dans les autres cas.
-
Je souhaite tout d'abord avoir le nom du site en tant que titre de ma
fenêtre contextuelle. Je vais donc rédiger une première expression Arcade
pour le titre /
L'expression est la suivante :
L'expression récupère l'environnement de l'application et en particulier la propriété "locale" qui contient le code de la langue (fr, fr-fr, en, en-us, es, ...). En fonction de cette valeur, on utilise le champs "name_fr" ou "name_en".var env = GetEnvironment() // console(env.locale) var langue = Left(env.locale,2) if(langue=='fr'){ return $feature.name_fr } else { return $feature.name_en }
-
De la même manière, on utilisera une expression Arcade pour définir le
contenu de la fenêtre contextuelle. Nosu y afficherons le descriptif du
site ainsi qu'une photo dont l'URL est dans un des champs de la table
attributaire de la couche.
L'expression est la suivante :
var env = GetEnvironment() var langue = Left(env.locale,2) if(langue=='fr'){ var description = $feature.short_description_fr }else{ var description = $feature.short_description_en } return { type : 'text', text : `${description}<img src='${$feature.url_image}' width='150px' />` }
- La fenêtre contextuelle est maintenant prête et doit voir le comportement escompté. Lorsque l'utilisateur est dans un contexte de langue française, le contenu de la fenêtre contextuelle est en français.
Lorsque l'utilisateur est dans un contexte de langue non-française, le contenu de la fenêtre contextuelle est en anglais.
Remarques :
-
Dans le contexte d'une application web (Map Viewer, Instant Apps,
Experience Builder, Application JavaScript ArcGIS personnalisée,...) la langue renvoyée par la fonction GetEnvironment() est celle du profil de l'utilisateur ArcGIS connecté. Si
l'utilisateur n'est pas connecté à un portail ArcGIS, c'est alors la
langue définie dans le navigateur qui est retournée.
- La fonction GetEnvironment() ne sera prise en charge dans ArcGIS Pro qu'à partir de la version 3.2 (novembre 2023).
Bonne route sur ArcGIS Online !
Pour retrouver l'ensemble des Conseils & Astuces ArcGIS Online,
cliquez sur ce lien.
0 comments :
Enregistrer un commentaire