Recherche d'infos sur les gadgets
Malheureusement, cette documentation n’est plus à jour. Si vous préférez, vous pouvez utiliser la documentation en anglais, qui a été mise à jour. Nous vous prions de nous excuser pour ce désagrément.

API Google Gadgets et internationalisation (i18n)

Ce document vous indique comment créer des gadgets pouvant aisément être adaptés un public international.

Sommaire

  1. Introduction
  2. Concepts de base
  3. Encodage adapté à l'internationalisation
  4. Exemple
  5. Création d'un gadget dans une langue prise en charge
  6. Fichiers de localisation
    1. Conventions d'attribution de noms
    2. Meilleures pratiques
  7. Utilisation de fichiers de localisation dans un gadget
    1. Messages de remplacement
    2. Accès aux messages à partir d'un fichier de localisation
    3. Affichage des messages dans le code HTML d'un gadget
  8. Spécifications du gadget Hello World
  9. Tests
  10. Mise en cache
  11. Résolution des problèmes
  12. Langues et pays pris en charge

Introduction

L'API Google Gadgets propose une méthode simple vous permettant d'adapter votre gadget à un public international. Rien de plus facile, il vous suffit pour cela de construire votre gadget de sorte que le texte présenté aux utilisateurs (texte nécessitant d'être traduit) soit regroupé dans des fichiers de localisation séparés du gadget lui-même. Faites-vous aider par des traducteurs externes pour traduire vos chaînes de texte et créer des fichiers de localisation pour chaque paramètre régional. Vous les ajouterez ensuite aux spécifications de votre gadget qui pourra ainsi être consulté par divers groupes d'utilisateurs.

Les gadgets internationaux (gadgets i18n) fonctionnent avec tous les services Google, tels que Google Desktop et Google Page Creator, sans qu'aucune modification ne soit nécessaire.

Pour connaître la liste des pays et des langues pris en charge par la page iGoogle, reportez-vous à la rubrique Pays et langues pris en charge.

Pour plus d'informations sur le fonctionnement des gadgets dans d'autres langues que l'anglais, reportez-vous à la rubrique Gadgets développés dans une langue autre que l'anglais.

Concepts de base

Ce document fait référence à l'internationalisation (i18n) et à la localisation (l10n) :

Le présent document utilise également le concept de "profil de localisation" d'un utilisateur qui comprend deux éléments : le pays (découlant du domaine de l'utilisateur) et la préférence linguistique de l'interface utilisateur (reportez-vous à la rubrique Tests pour plus d'informations).

Encodage adapté à l'internationalisation

L'API Google Gadgets prend en charge le codage UTF-8 pour les valeurs d'attributs XML et dans la section <Content>. Lorsque votre contenu est de type html, UTF-8 est explicitement défini comme le codage par défaut. Nous vous déconseillons de procéder à ce paramétrage vous-même.

Exemple

L'exemple de gadget utilisé dans ce document affiche le message "Hello World" présenté ci-dessous en chinois :

Hello World-Chinese

Dans cet exemple, le menu déroulant permet aux utilisateurs de sélectionner la couleur de police qu'ils souhaitent associer au message "Hello World". Les noms de couleurs qui apparaissent dans le menu sont définis dans des fichiers externes (fichiers de localisation). La langue dans laquelle ce menu est proposé dépend du profil langue/pays de l'utilisateur. Si un utilisateur dont le profil est en anglais exécute ce gadget, le texte apparaîtra dans cette langue. Voici comment se présente la version anglaise lorsque le menu déroulant des préférences utilisateur est sélectionné :

Hello World-English

Cliquez ici pour consulter les spécifications du gadget Hello World.

Création d'un gadget dans une langue prise en charge

Les principales étapes permettant de créer un gadget localisé sont les suivantes :

  1. Écrire le gadget.
  2. Extraire le texte devant être traduit dans les fichiers de localisation.
  3. Trouver une personne capable de vous aider à traduire le gadget.
  4. Le traducteur crée un nouveau fichier de localisation pour un paramètre régional spécifique, selon la langue (français) ou la paire langue/pays (français/Canada, français/France). Notez que les fichiers de localisation rédigés dans d'autres langues que l'anglais doivent être enregistrés au format UTF-8.
  5. Le traducteur vous envoie une URL pointant vers le nouveau fichier de localisation.
  6. Modifiez les spécifications de votre gadget afin d'utiliser ce fichier de localisation.
  7. Si votre gadget est répertorié dans l'annuaire de contenu, patientez une à deux semaines pour que le robot d'exploration et l'architecture pipeline actualisent votre gadget et le rendent disponible sur de nouveaux marchés.

Fichiers de localisation

La stratégie d'internationalisation de Google Gadgets est basée sur les fichiers de localisation. Ce sont des fichiers XML contenant des chaînes de caractères traduites pour un paramètre régional donné. Chaque chaîne est identifiée par un nom unique pour tous les fichiers de localisation.

Les fichiers de localisation peuvent être hébergés par une URL quelconque et partagés par plusieurs applications. Ils concernent chacun un paramètre régional spécifique.

Les fichiers de localisation se présentent comme suit :

<messagebundle>
  <msg name="hello_world"> 
    Hello World. 
  </msg> 
  <msg name="color">Color</msg> 
  <msg name="red">Red</msg> 
  <msg name="green">Green</msg> 
  <msg name="blue">Blue</msg> 
  <msg name="gray">Gray</msg> 
  <msg name="purple">Purple</msg> 
  <msg name="black">Black</msg> 
</messagebundle> 

Vous pouvez inclure les champs suivants dans un fichier de localisation :

Conventions d'attribution de noms

Par convention, les fichiers de localisation sont nommés de la manière suivante :

<language>_<country>.xml 

Lorsqu'il n'existe aucune valeur spécifique concernant la langue ou le pays, on utilise "ALL" par convention. Par exemple, le fichier de_ALL.xml s'applique à tous les germanophones, quel que soit leur pays d'origine. Le fichier de localisation ALL_ALL.xml est celui utilisé par défaut.

Meilleures pratiques

Les conventions d'attribution des noms des fichiers de localisation ne sont pas des règles strictes. Le gadget fait appel aux attributs lang et country du paramètre <Locale> pour associer un fichier de localisation au profil d'utilisateur correspondant, mais n'utilise pas le nom du fichier de localisation.

Bien que l'API Google Gadgets vous apporte une flexibilité accrue, nous vous recommandons d'appliquer les règles suivantes :

Utilisation de fichiers de localisation dans un gadget

La balise <Locale> (insérée dans la section <ModulePrefs>) vous permet de répertorier les fichiers de localisation utilisés par votre gadget. Exemple :

<ModulePrefs title="i18n Example"> 
  <Locale messages="http://doc.examples.googlepages.com/ALL_ALL.xml"/> 
  <Locale lang="de" messages="http://doc.examples.googlepages.com/de_ALL.xml"/> 
  <Locale lang="zh-cn" messages="http://doc.examples.googlepages.com/zh_cn_ALL.xml"/> 
  <Locale lang="fr" messages="http://doc.examples.googlepages.com/fr_ALL.xml"/> 
  <Locale lang="ja" messages="http://doc.examples.googlepages.com/ja_ALL.xml"/> 
  <Locale lang="es" messages="http://doc.examples.googlepages.com/es_ALL.xml"/> 
  <Locale lang="it" messages="http://doc.examples.googlepages.com/it_ALL.xml"/> 
  <Locale lang="ru" messages="http://doc.examples.googlepages.com/ru_ALL.xml"/> 
</ModulePrefs>

Le paramètre <Locale> peut comporter les attributs suivants :

<Locale lang="fr" country="CA" messages="http://example.com/fr_CA.xml"/> 

Lors de son lancement, le gadget utilise le fichier de localisation correspondant le mieux au profil de l'utilisateur.

Pour obtenir la liste des langues et des codes pays acceptés, reportez-vous à la rubrique Pays et langues pris en charge.

Messages de remplacement

Les fichiers de localisation sont associés à une fonction de remplacement. Cette dernière permet au gadget d'utiliser le fichier de localisation le plus pertinent par rapport aux préférences linguistiques et régionales de l'utilisateur (spécifiées dans l'URL). Si le gadget ne détecte aucune correspondance exacte, il passe de nouveau en revue les fichiers de localisation disponibles pour établir la correspondance la plus proche.

La fonction de remplacement vous permet d'afficher des messages "par défaut" (généralement définis dans le fichier ALL_ALL.xml) lorsqu'un paramètre régional ne correspond à aucun fichier de localisation. 

Supposons, par exemple, que les paramètres suivants soient définis dans votre gadget :

<Locale messages="http://x.com/ALL_ALL.xml"/> 
<Locale lang="de" messages="http://x.com/de_ALL.xml"/>
<Locale lang="de" country="DE" messages="http://x.com/de_DE.xml"/> 
<Locale lang="de" country="US" messages="http://x.com/de_US.xml"/>

Comment ces fichiers seront-ils utilisés ? Pour un utilisateur dont le domaine est les États-Unis (http://www.google.com) et dont la préférence linguistique est l'allemand, les messages du fichier de_US.xml s'affichent. Si certains messages ne sont pas disponibles, ceux du fichier de_ALL.xml sont alors présentés à l'utilisateur, puis ceux du fichier ALL_ALL.xml.

Les internautes situés en Allemagne ayant adopté l'interface allemande utiliseront tout d'abord le fichier de_DE.xml, ceux situés en Suisse ayant adopté l'interface allemande utiliseront en premier lieu le fichier de_ALL.xml, enfin ceux situés en Suisse ayant adopté l'interface française utiliseront le fichier ALL_ALL.xml.

Accès aux messages à partir d'un fichier de localisation

Comment les gadgets accèdent-ils au message demandé dans un fichier de localisation ? Prenons le fichier de_ALL.xml (langue allemande, pays défini sur ALL) dans l'exemple de gadget "Hello World" :

<messagebundle>
  <msg name="hello_world">
    Hallo Welt.
  </msg>
  <msg name="color">Farbe</msg> 
  <msg name="red">Rot</msg> 
  <msg name="green">Grün</msg> 
  <msg name="blue">Blau</msg> 
  <msg name="gray">Grau</msg> 
  <msg name="purple">Purpurrot</msg> 
  <msg name="black">Schwarz</msg>
</messagebundle>

Chaque message est associé à un nom unique qui l'identifie. Dans ce message, par exemple,

<msg name="red">Rot</msg> 

le nom unique est "red" et la chaîne de caractères traduite qui apparaît sur le gadget (dans le menu déroulant des préférences utilisateur) est "Rot", traduction allemande du terme "red". L'équivalent anglais de ce message dans le fichier de localisation ALL_ALL.xml est le suivant :

<msg name="red">Red</msg> 

Les spécifications du gadget "Hello World" utilisent la variable de substitution __MSG_ pour indiquer l'endroit où la valeur du fichier de localisation correspondant doit être reportée. Par exemple, l'instruction XML suivante figurant dans les spécifications du gadget "Hello World" sert à ajouter un élément dans le menu déroulant "Color" des préférences utilisateur :

<EnumValue value="Red" display_value="__MSG_red__" /> 

Littéralement, cette ligne signifie : accéder au fichier de localisation correspondant le mieux au profil pays/langue de l'utilisateur, extraire la valeur du message intitulé red afin de remplacer __MSG_red__. Cela permet d'insérer les noms de couleurs (présentés ici en allemand) dans le menu déroulant de préférences utilisateur : Hello World-German

Affichage des messages dans le code HTML d'un gadget

Pour afficher des messages dans la section XML de votre gadget, utilisez des variables de substitution comme indiqué ci-dessus. Pour la partie CDATA de votre gadget, vous disposez d'options quelque peu différentes.

La technique la plus simple consiste à incorporer la variable de substitution dans votre code HTML :

<b>__MSG_hello_world__</b>. 

Vous pouvez également utiliser la fonction de préférences utilisateur getMsg(). Notez que cette fonction vous permet d'accéder à tous les messages du fichier de localisation, pas seulement ceux associés aux préférences utilisateur. Toutefois, cette fonction doit être appelée sur un objet _IG_Prefs. Exemple :

var prefs = new _IG_Prefs(__MODULE_ID__);
prefs.getMsg(“red”);

Spécifications du gadget Hello World

À titre d'exemple, voici les spécifications du gadget "Hello World" :

<?xml version="1.0" encoding="UTF-8" ?> 
<Module>
  <ModulePrefs title="i18n Example"> 
    <Locale messages="http://doc.examples.googlepages.com/ALL_ALL.xml"/>
    <Locale lang="de" messages="http://doc.examples.googlepages.com/de_ALL.xml"/>
    <Locale lang="zh-cn" messages="http://doc.examples.googlepages.com/zh_cn_ALL.xml"/>
    <Locale lang="fr" messages="http://doc.examples.googlepages.com/fr_ALL.xml"/>
    <Locale lang="ja" messages="http://doc.examples.googlepages.com/ja_ALL.xml"/>
    <Locale lang="es" messages="http://doc.examples.googlepages.com/es_ALL.xml"/>
    <Locale lang="it" messages="http://doc.examples.googlepages.com/it_ALL.xml"/>
    <Locale lang="ru" messages="http://doc.examples.googlepages.com/ru_ALL.xml"/> 
  </ModulePrefs>
  <UserPref name="fontcolor" display_name="__MSG_color__" default_value="Red" datatype="enum">
    <EnumValue value="Red" display_value="__MSG_red__" /> 
    <EnumValue value="Green" display_value="__MSG_green__" /> 
    <EnumValue value="Blue" display_value="__MSG_blue__" /> 
    <EnumValue value="Gray" display_value="__MSG_gray__" /> 
    <EnumValue value="Purple" display_value="__MSG_purple__" /> 
    <EnumValue value="Black" display_value="__MSG_black__" /> 
  </UserPref>
  <Content type="html">
  <![CDATA[
    <script type="text/javascript"> 

      displayMsg();
      function displayMsg(){

          // Get userprefs
          var prefs = new _IG_Prefs(__MODULE_ID__);
          // Set font color to user's color choice
          document.fgColor = prefs.getString("fontcolor");
          // Display message
          document.write("<br><h1>");
          // Use prefs.getMsg to go to the appropriate message bundle
          // and get the string associated with the "hello_world" message.
          document.write(prefs.getMsg("hello_world"));
          document.write("</h1>"); 
      }
    </script>
  ]]>
  </Content>
</Module> 

Tests

Pour tester votre gadget, adaptez vos paramètres régionaux et linguistiques à ceux des fichiers de localisation inclus dans votre gadget.

Pour modifier ces paramètres, le meilleur moyen est de modifier l'URL de votre page iGoogle :

http://www.google.com/ig?&gl=<country>&hl=<lang>

Par exemple, dans l'URL suivante, le pays est l'Allemagne (DE) et la langue est l'anglais (en). En général, le pays est prioritaire sur la langue. Ainsi, dans le cas de cette URL, le texte de la page iGoogle s'affiche en allemand :

http://www.google.com/ig?&gl=DE&hl=en

Dans cet exemple, le pays est implicitement les États-Unis et la langue est l'espagnol :

http://www.google.com/ig?hl=es

Pour obtenir la liste des langues et des codes pays acceptés, reportez-vous à la rubrique Pays et langues pris en charge. Le lien suivant peut vous aider à établir une URL adaptée à une langue particulière : http://www.google.fr/help/customize.html#searchlang.

Mise en cache

La mise en cache des fichiers de localisation fonctionne de la même manière que celle des spécifications du gadget lui-même. En général, nous actualisons le cache par intervalles d'une ou deux heures et les serveurs d'hébergement ne peuvent recevoir que 100 à 200 requêtes environ par jour relatives aux fichiers de localisation. Si les serveurs ne sont pas disponibles, nous continuons à utiliser notre "ancienne" copie aussi longtemps que cela est possible.  Dans le gadget developer.xml, si vous désactivez la mise en cache d'un gadget, cela désactive également la mise en cache des fichiers de localisation associés.

Résolution des problèmes

Durant la phase de développement, il est possible que votre gadget n'apparaisse pas ou que le message ??? s'affiche à la place d'un message. Cela peut s'expliquer par l'une des raisons suivantes :

Langues et pays pris en charge

Cette rubrique répertorie les langues et les codes pays pris en charge par la page iGoogle. Par convention, les codes de langue sont en minuscules et les codes de pays en majuscules dans le tableau ci-dessous, mais ce n'est pas une obligation.

La page iGoogle prend en charge les langues suivantes :

Code langue Langue
da
Danois
de Allemand
en Anglais
es Espagnol
fi Finnois
fr Français
it Italien
ja Japonais
ko Coréen
nl Néerlandais
no Norvégien
pt-BR
Portugais (Brésil)
sv Suédois
ru Russe
zh-CN Chinois (simplifié)

La page iGoogle prend en charge les pays suivants :

Code pays Pays
AU Australie
BR Brésil
CA Canada
CH Suisse
CN Chine
DE Allemagne
DK Danemark
ES Espagne
FI Finlande
FR France
IE Irlande
IN Inde
IT Italie
JP Japon
KR Corée
MX Mexique
NL Pays-Bas
NO Norvège
NZ Nouvelle-Zélande
RU Russie
SE Suède
UK Royaume-Uni
US États-Unis

Retour au début

Mis à jour le