Internationalisation

API Web 2D en Javascript

Il est possible de changer la langue d'affichage pour s'adapter à une demande de l'utilisateur. Cette aptitude repose sur l'ajout dans l'API Géoportail d'un évènement permettant d'intercepter ce changement de langue.

L'exemple ci-dessous montre comment mettre en place un tel mécanisme :

function initGeoportalMap() {
    ...
    // get default language
    var language= OpenLayers.Lang.getCode();
    var re= new RegExp("^"+language,i);
    var slct= OpenLayers.Util.getElement('gpChooseLang');
    for(var i= 0; i<slct.options.length; i++) {
        if( slct.options[i].value.match(re) ) {
            slct.options[i].selected= true;
        }
    }
    ...
}

Dans la méthode initGeoportalMap() appelée lors du chargement de la page, la langue par défaut (c'est-à-dire celle d'installation du butineur Web) est récupérée. Une recherche sur un élément de formulaire permettant de changer de langue est effectuée. L'élément qui correspond au mieux à la langue est alors sélectionné.

<form style="border:0;margin:0;padding:0;" name="gpLangChange" action="#">
  <select style="font-size:0.75em;" id="gpChooseLang" name="gpChooseLang" size="1"
          onChange="VOTRE_INSTANCE.getMap().setLocale(this.options[this.selectedIndex].value);">
      <option value="fr">Français</option>
      <option value="en">English</option>
      <option value="de">Deutsch</option>
      <option value="es">Español</option>
      <option value="it">Italiano</option>
  </select>
</form>

Le formulaire propose des options qui, à leur sélection, provoque l'appel au changement de la langue de la carte. Cette dernière émet alors un évènement "changelang" qui est intercepté par les gestionnaires d'affichage.

Il est important de noter que la page HTML doit contenir la déclaration d'encodage UTF-8 et doit donc être encodée selon ce jeu de caractères pour avoir un affichage des caractères correct :

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>