Le blog francophone consacré
aux technologies Esri

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. 

  1. 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.

  2. 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 :
    var env = GetEnvironment()
    // console(env.locale)
    var langue = Left(env.locale,2) 
    if(langue=='fr'){
      return $feature.name_fr
    }
    else
    {
      return $feature.name_en
    }
    
    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".

  3. 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' />`
    }
  4. 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.

 

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: