Localisation de contenu HTML à l’aide de la structure de localisation HTML d’AIR

Adobe AIR 1.1 et ultérieur

Le SDK d’AIR 1.1 comprend une structure de localisation HTML, que définit le fichier JavaScript AIRLocalizer.js. Ce fichier réside dans le répertoire frameworks du SDK d’AIR. Il contient une classe air.Localizer, qui propose des fonctionnalités facilitant la création d’applications prenant en charge plusieurs versions localisées.

Chargement du code de la structure de localisation HTML d’AIR

Pour utiliser la structure de localisation, copiez le fichier AIRLocalizer.js dans votre projet. Incluez-le ensuite dans le fichier HTML principal de l’application, à l’aide d’une balise script :

<script src="AIRLocalizer.js" type="text/javascript" charset="utf-8"></script>

Vous pouvez ensuite appeler l’objet air.Localizer.localizer par le biais de code JavaScript :

<script> 
    var localizer = air.Localizer.localizer; 
</script>
L’objet air.Localizer.localizer est un objet singleton qui définit des méthodes et des propriétés relatives à l’utilisation et à la gestion des ressources localisées. La classe Localizer comprend les méthodes suivantes :

Méthode

Description

getFile()

Extrait le texte d’un paquet de ressources spécifié pour un jeu de paramètres régionaux spécifique. Voir Extraction de ressources d’un jeu de paramètres régionaux spécifique .

getLocaleChain()

Renvoie les langues qui figurent dans le chaînage de jeux de paramètres régionaux. Voir Définition du chaînage de jeux de paramètres régionaux

getResourceBundle()

Renvoie les clés du regroupement et les valeurs correspondantes sous forme d’objet. Voir Extraction de ressources d’un jeu de paramètres régionaux spécifique .

getString()

Extrait la chaîne définie pour une ressource. Voir Extraction de ressources d’un jeu de paramètres régionaux spécifique .

setBundlesDirectory()

Définit l’emplacement du répertoire de regroupements. Voir Personnalisation des paramètres de la structure de localisation HTML d’AIR .

setLocalAttributePrefix()

Définit le préfixe utilisé par les attributs de localisation utilisés dans des éléments DOM HTML. Voir Personnalisation des paramètres de la structure de localisation HTML d’AIR

setLocaleChain()

Définit l’ordre des langues dans le chaînage de jeux de paramètres régionaux. Voir Définition du chaînage de jeux de paramètres régionaux

sortLanguagesByPreference()

Trie les jeux de paramètres régionaux du chaînage de jeux de paramètres régionaux en fonction des paramètres du système d’exploitation. Voir Définition du chaînage de jeux de paramètres régionaux

update()

Met à jour le DOM HTML (ou un élément DOM) avec les chaînes localisées du chaînage de jeux de paramètres régionaux en cours. Pour plus d’informations sur les chaînages de jeux de paramètres régionaux, voir Gestion des chaînages de jeux de paramètres régionaux . Pour plus d’informations sur la méthode update() , voir Mise à jour d’éléments DOM afin qu’ils utilisent le jeu de paramètres régionaux en cours .

La classe Localizer comprend les propriétés statiques suivantes :

Propriété

Description

localizer

Renvoie une référence à l’objet singleton Localizer de l’application.

ultimateFallbackLocale

Jeu de paramètres régionaux utilisé lorsque l’application ne prend en charge aucune préférence utilisateur. Voir Définition du chaînage de jeux de paramètres régionaux

Spécification des langues prises en charge

Utilisez l’élément <supportedLanguages> dans le fichier descripteur de l’application pour identifier les langues prises en charge par l’application. Cet élément est utilisé uniquement par iOS, le moteur d’exécution captif de Mac et les applications Android ; il est ignoré par tous les autres types d’applications.

Si vous ne spécifiez pas l’élément <supportedLanguages> , le programme de mise en package exécute par défaut les actions suivantes en fonction du type d’application :

  • iOS : les langues prises en charge par le moteur d’exécution d’AIR sont répertoriées dans l’App Store d’iOS comme langues prises en charges dans l’application.

  • Moteur d’exécution captif de Mac : toute application mise en package avec un paquet captif ne possède aucune information de localisation.

  • Android : le paquet d’application dispose de ressources pour toutes les langues prises en charge par le moteur d’exécution d’AIR.

Pour plus d’informations, voir supportedLanguages .

Définition de regroupements de ressources

La structure de localisation HTML lit les versions localisées des chaînes dans des fichiers de localisation . Un fichier de localisation est un ensemble de valeurs basées sur des clés, sérialisées dans un fichier de texte. Ce type de fichier est parfois appelé un regroupement .

Créez dans le répertoire de projet de votre application un sous-répertoire que vous nommerez locale. (Vous pouvez également utiliser un autre nom, voir Personnalisation des paramètres de la structure de localisation HTML d’AIR .) Ce répertoire contient les fichiers de localisation et est appelé le répertoire de regroupements .

Créez un sous-répertoire dans le répertoire de regroupements pour chaque jeu de paramètres régionaux pris en charge par votre application. Attribuez à chaque sous-répertoire un nom correspondant au code du jeu de paramètres régionaux. Par exemple, nommez le répertoire français « fr » et le répertoire anglais « en ». Vous pouvez utiliser un trait de soulignement (_) pour définir un jeu de paramètres régionaux constitué d’une langue et d’un code de pays. Par exemple, nommez le répertoire anglais américain « en_us ». Vous pouvez éventuellement remplacer le trait de soulignement par un tiret (« en-us », par exemple). La structure de localisation HTML prend ces deux formats en charge.

Libre à vous d’ajouter tout nombre de fichiers de ressources à un sous-répertoire de jeu de paramètres régionaux. En règle générale, vous créez un fichier de localisation par langue (et le placez dans le répertoire correspondant à celle-ci). La structure de localisation HTML comprend une méthode getFile() qui vous permet de lire le contenu d’un fichier (voir Extraction de ressources d’un jeu de paramètres régionaux spécifique .

Les fichiers dotés de l’extension .properties constituent des fichiers de propriétés de localisation. Ils permettent de définir les paires clé-valeur d’un jeu de paramètres régionaux. Un fichier de propriétés définit une valeur chaîne sur chaque ligne. Ainsi, l’exemple suivant attribue la valeur chaîne « Hello in English. » à une clé nommée greeting :

greeting=Hello in English.

Un fichier de propriétés contenant le texte suivant définit six paires clé-valeur :

title=Sample Application 
greeting=Hello in English. 
exitMessage=Thank you for using the application. 
color1=Red 
color2=Green 
color3=Blue

Cet exemple illustre une version anglaise du fichier de propriétés, à stocker dans le répertoire en.

Une version française de ce fichier de propriétés est placée dans le répertoire fr :

title=Application Example 
greeting=Bonjour en français. 
exitMessage=Merci d'avoir utilisé cette application. 
color1=Rouge 
color2=Vert 
color3=Bleu

Vous pouvez définir plusieurs fichiers de ressources pour différents types d’information. Imaginons un fichier nommé legal.properties, qui contient un modèle de texte juridique (tel un avis de copyright). Libre à vous de réutiliser cette ressource dans diverses applications. Vous pouvez de même créer plusieurs fichiers définissant du contenu localisé pour différentes parties de l’interface utilisateur.

Utilisez le codage UTF-8 pour ces fichiers afin de prendre en charge plusieurs langues.

Gestion des chaînages de jeux de paramètres régionaux

Lorsque votre application charge le fichier AIRLocalizer.js, il examine les jeux de paramètres régionaux définis dans celle-ci. Ces jeux correspondent aux sous-répertoires du répertoire de regroupements (voir Définition de regroupements de ressources ). La liste des jeux de paramètres régionaux disponibles est appelée chaînage de jeux de paramètres régionaux . Le fichier AIRLocalizer.js trie automatiquement le chaînage de jeux de paramètres régionaux en fonction de l’ordre de préférence défini par les paramètres du système d’exploitation. (La propriété Capabilities.languages trie les langues d’interface utilisateur du système d’exploitation dans l’ordre de préférence.)

Par conséquent, si une application définit des ressources pour "en", "en_US" et "en_UK", la structure de localisation HTML d’AIR trie le chaînage de jeux de paramètres régionaux de manière appropriée. Lorsqu’une application démarre sur un système qui indique que le jeu de paramètres régionaux principal correspond à "en", le chaînage est trié de la façon suivante : ["en", "en_US", "en_UK"] . Dans ce cas, l’application recherche des ressources dans le regroupement « en » en premier, puis dans le regroupement "en_US".

Cependant, si le système indique que le jeu de paramètres régionaux principal correspond à "en_US", le tri devient ["en_US", "en", "en_UK"] . Dans ce cas, l’application recherche des ressources dans le regroupement "en_US" en premier, puis dans le regroupement "en".

Par défaut, l’application définit le premier jeu de paramètres régionaux du chaînage en tant que jeu à utiliser par défaut. Vous pouvez inviter l’utilisateur à sélectionner un jeu de paramètres régionaux lors de la première exécution de l’application. Vous pouvez ensuite choisir de stocker la sélection dans un fichier de préférences et utiliser ce jeu de paramètres régionaux lors de démarrages suivants.

Votre application peut utiliser des chaînes de ressource de tout jeu de paramètres régionaux du chaînage. Si un jeu de paramètres régionaux spécifique ne définit pas une chaîne de ressource, l’application utilise la chaîne de ressource correspondante suivante d’autres jeux de paramètres régionaux du chaînage.

Vous pouvez personnaliser le chaînage de jeux de paramètres régionaux en appelant la méthode setLocaleChain() de l’objet Localizer. Voir Définition du chaînage de jeux de paramètres régionaux

Mise à jour d’éléments DOM avec du contenu localisé

Un élément de l’application peut référencer une valeur de clé dans un fichier de propriétés de localisation. Ainsi, l’élément title de l’exemple ci-dessous spécifie un attribut local_innerHTML . La structure de localisation utilise cet attribut pour rechercher une valeur localisée. Par défaut, la structure recherche des attributs dont le nom commence par « local_ ». Elle met à jour les attributs portant un nom correspondant au texte suivant « local_ ». Dans ce cas, elle définit l’attribut innerHTML de l’élément title . L’attribut innerHTML utilise la valeur définie pour la clé mainWindowTitle dans le fichier de propriétés par défaut (default.properties) :

<title local_innerHTML="default.mainWindowTitle"/>

Si le jeu de paramètres régionaux en cours ne définit pas de valeur correspondante, la structure de localisation examine le reste du chaînage de jeux. Elle utilise le jeu suivant du chaînage pour lequel une valeur est définie.

Dans l’exemple suivant, le texte (attribut innerHTML ) de l’élément p utilise la valeur de la clé greeting définie dans le fichier de propriétés par défaut :

<p local_innerHTML="default.greeting" />

Dans l’exemple suivant, l’attribut value (et le texte affiché) de l’élément input utilise la valeur de la clé btnBlue définie dans le fichier de propriétés par défaut :

<input type="button" local_value="default.btnBlue" />

Pour mettre à jour le DOM HTML afin qu’il utilise les chaînes définies dans le chaînage de jeu de paramètres régionaux en cours, appelez la méthode update() de l’objet Localizer. L’appel de la méthode update() force l’objet Localizer à analyser le DOM et à appliquer des manipulations lorsqu’il détecte des attributs de localisation (« local_... ») :

air.Localizer.localizer.update();

Vous pouvez définir des valeurs pour un attribut (tel que « innerHTML ») et pour l’attribut de localisation correspondant (tel que « local_innerHTML »). Dans ce cas, la structure de localisation ne remplace la valeur de l’attribut que si elle détecte une valeur correspondante dans le chaînage de localisation. Par exemple, l’élément suivant définit les attributs value et local_value :

<input type="text" value="Blue" local_value="default.btnBlue"/>

Vous pouvez aussi vous contenter de mettre à jour un élément DOM spécifique. Pour plus d’informations, voir Mise à jour d’éléments DOM afin qu’ils utilisent le jeu de paramètres régionaux en cours

Par défaut, la structure de localisation HTML d’AIR applique le préfixe « local_ » aux attributs définissant des paramètres de localisation pour un élément. Ainsi, un attribut local_innerHTML définit par défaut le regroupement et le nom de ressource utilisés pour la valeur innerHTML d’un élément. De même, un attribut local_value définit par défaut le regroupement et le nom de ressource utilisés pour l’attribut value d’un élément. Vous pouvez configurer la structure de localisation de sorte à utiliser un préfixe autre que « local_ ». Voir Personnalisation des paramètres de la structure de localisation HTML d’AIR .

Mise à jour d’éléments DOM afin qu’ils utilisent le jeu de paramètres régionaux en cours

Lorsque l’objet Localizer met à jour le DOM HTML, les éléments marqués doivent utiliser des valeurs d’attribut basées sur des chaînes définies dans le chaînage de jeux de paramètres régionaux en cours. Pour que la structure de localisation HTML mette à jour le DOM HTML, appelez la méthode update() de l’objet Localizer :

air.Localizer.localizer.update();

Pour mettre à jour un élément DOM spécifique seulement, transmettez-le en tant que paramètre à la méthode update() . La méthode update() possède un seul paramètre, parentNode , qui est facultatif. Lorsqu’il est spécifié, le paramètre parentNode définit l’élément DOM à localiser. L’appel de la méthode update() en incluant le paramètre parentNode définit des valeurs localisées pour tous les éléments enfants qui spécifient des attributs de localisation.

Soit, par exemple, l’élément div ci-dessous :

<div id="colorsDiv"> 
    <h1 local_innerHTML="default.lblColors" ></h1> 
    <p><input type="button" local_value="default.btnBlue" /></p> 
    <p><input type="button" local_value="default.btnRed" /></p> 
    <p><input type="button" local_value="default.btnGreen" /></p> 
</div>

Pour mettre cet élément à jour afin qu’il utilise les chaînes localisées définies dans le chaînage de jeu de paramètres régionaux en cours, utilisez le code JavaScript suivant :

var divElement = window.document.getElementById("colorsDiv"); 
air.Localizer.localizer.update(divElement);

Si le chaînage de jeux de paramètres régionaux ne contient pas de valeur de clé, la structure de localisation définit la valeur de l’attribut sur la valeur de l’attribut « local_ ». Ainsi, imaginons que dans l’exemple précédent, la structure de localisation n’a pas trouvé de valeur pour la clé lblColors (dans aucun des fichiers default.properties du chaînage de jeux de paramètres régionaux). Dans ce cas, elle attribue la valeur "default.lblColors" à l’attribut innerHTML . L’utilisation de cette valeur indique une absence de ressources (au développeur).

La méthode update() distribue un événement resourceNotFound lorsqu’une ressource est introuvable dans le chaînage de jeux de paramètres régionaux. La constante air.Localizer.RESOURCE_NOT_FOUND définit la chaîne "resourceNotFound" . L’événement possède trois propriétés : bundleName , resourceName et locale . La propriété bundleName représente le nom du regroupement introuvable. La propriété resourceName représente le nom de la ressource introuvable. La propriété locale représente le nom du jeu de paramètres régionaux dans lequel la ressource est introuvable.

La méthode update() distribue un événement bundleNotFound lorsque le regroupement spécifié est introuvable. La constante air.Localizer.BUNDLE_NOT_FOUND définit la chaîne "bundleNotFound" . L’événement possède deux propriétés : bundleName et locale . La propriété bundleName représente le nom du regroupement introuvable. La propriété locale représente le nom du jeu de paramètres régionaux dans lequel la ressource est introuvable.

La propriété update() s’exécute en mode asynchrone (et distribue des événements resourceNotFound et bundleNotFound de manière asynchrone). Le code suivant définit des écouteurs pour les événements resourceNotFound et bundleNotFound :

air.Localizer.localizer.addEventListener(air.Localizer.RESOURCE_NOT_FOUND, rnfHandler); 
air.Localizer.localizer.addEventListener(air.Localizer.BUNDLE_NOT_FOUND, rnfHandler); 
air.Localizer.localizer.update(); 
function rnfHandler(event) 
{ 
    alert(event.bundleName + ": " + event.resourceName + ":." + event.locale); 
} 
function bnfHandler(event) 
{ 
    alert(event.bundleName + ":." + event.locale); 
}

Personnalisation des paramètres de la structure de localisation HTML d’AIR

La méthode setBundlesDirectory() de l’objet Localizer vous permet de personnaliser le chemin d’accès au répertoire de regroupements. La méthode setLocalAttributePrefix() de l’objet Localizer vous permet de personnaliser le chemin d’accès au répertoire de regroupements et la valeur d’attribut utilisée par l’objet.

Le répertoire de regroupements par défaut correspond au sous-répertoire de jeux de paramètres régionaux du répertoire d’application. Vous pouvez spécifier un autre répertoire en appelant la méthode setBundlesDirectory() de l’objet Localizer. Cette méthode gère un paramètre unique, path , qui représente sous forme de chaîne le chemin d’accès au répertoire de regroupements souhaité. Le paramètre path prend en charge les valeurs suivantes :

  • Une chaîne définissant un chemin relatif au répertoire d’application, telle que "locales"

  • Une chaîne définissant une URL valide utilisant le modèle d’URL app , app-storage ou file , telle que "app://languages" (n’utilisez pas le modèle d’URL http )

  • Un objet File

Pour plus d’informations sur les URL et les chemins de répertoire, voir :

Par exemple, le code suivant définit le répertoire de regroupements sur le sous-répertoire languages du répertoire de stockage de l’application (répertoire d’application) :

air.Localizer.localizer.setBundlesDirectory("languages");

Définissez le paramètre path sur un chemin valide. Sinon, la méthode renvoie une exception BundlePathNotFoundError. « BundlePathNotFoundError » correspond à la propriété name de cette erreur, dont la propriété message spécifie le chemin non valide.

Par défaut, la structure de localisation HTML d’AIR applique le préfixe « local_ » aux attributs définissant des paramètres de localisation pour un élément. Par exemple, l’attribut local_innerHTML définit le regroupement et le nom de ressource utilisés pour la valeur innerHTML de l’élément input suivant :

<p local_innerHTML="default.greeting" />

La méthode setLocalAttributePrefix() de l’objet Localizer vous permet d’utiliser un préfixe d’attribut autre que « local_ ». Cette méthode statique gère un paramètre unique, qui correspond à la chaîne à utiliser comme préfixe d’attribut. Par exemple, le code suivant force la structure de localisation à utiliser « loc_ » comme préfixe d’attribut :

air.Localizer.localizer.setLocalAttributePrefix("loc_");

Vous pouvez personnaliser le préfixe d’attribut utilisé par la structure de localisation. Vous souhaiterez peut-être personnaliser le préfixe si la valeur par défaut (« local_ ») crée un conflit avec le nom d’un autre attribut utilisé par le code. Lorsque vous appelez cette méthode, veillez à utiliser des caractères valides pour les attributs HTML. (La valeur ne doit pas contenir d’espaces, par exemple.)

Pour plus d’informations sur l’utilisation d’attributs de localisation dans des éléments HTML, voir Mise à jour d’éléments DOM avec du contenu localisé .

Les paramètres relatifs au répertoire de regroupements et au préfixe d’attribut ne sont pas persistants d’une session d’application à une autre. Si vous utilisez des paramètres personnalisés, veillez donc à les définir à chaque initiation de l’application.

Définition du chaînage de jeux de paramètres régionaux

Lorsque vous chargez le code AIRLocalizer.js, il définit automatiquement le chaînage de jeux de paramètres régionaux par défaut. Les jeux de paramètres régionaux disponibles dans le répertoire de regroupements et les paramètres de langue du système d’exploitation définissent ce chaînage (pour plus d’informations voir Gestion des chaînages de jeux de paramètres régionaux ).

Vous pouvez modifier le chaînage de jeux de paramètres régionaux en appelant la méthode statique setLocaleChain() de l’objet Localizer. Ainsi, vous souhaiterez peut-être appeler cette méthode si l’utilisateur indique qu’il préfère utiliser une langue spécifique. La méthode setLocaleChain( ) gère un paramètre unique, chain , qui correspond à un tableau de jeux de paramètres régionaux, tel que ["fr_FR","fr","fr_CA"] . L’ordre des jeux dans le tableau détermine l’ordre dans lequel la structure recherche ultérieurement des ressources. Si une ressource est absente du premier jeu du chaînage, la structure continue la recherche dans les autres jeux. Si l’argument chain est absent, n’est pas un tableau ou est un tableau vide, la fonction échoue et renvoie une exception IllegalArgumentsError.

La méthode statique getLocaleChain() de l’objet Localizer renvoie un tableau répertoriant les jeux de paramètres régionaux du chaînage en cours.

Le code suivant lit le chaînage en cours et ajoute deux jeux de paramètres régionaux français au début :

var currentChain = air.Localizer.localizer.getLocaleChain(); 
newLocales = ["fr_FR", "fr"]; 
air.Localizer.localizer.setLocaleChain(newLocales.concat(currentChain));

La méthode setLocaleChain() distribue un événement « change » lorsqu’elle met à jour le chaînage de jeux de paramètres régionaux. La constante air.Localizer.LOCALE_CHANGE définit la chaîne « change ». L’événement possède une propriété unique, localeChain , un tableau des codes de jeux de paramètres régionaux que comprend le nouveau chaînage. Le code suivant définit un écouteur pour cet événement :

var currentChain = air.Localizer.localizer.getLocaleChain(); 
newLocales = ["fr_FR", "fr"]; 
localizer.addEventListener(air.Localizer.LOCALE_CHANGE, changeHandler); 
air.Localizer.localizer.setLocaleChain(newLocales.concat(currentChain)); 
function changeHandler(event) 
{ 
    alert(event.localeChain); 
}

La propriété statique air.Localizer.ultimateFallbackLocale représente le jeu de paramètres régionaux utilisé lorsque l’application ne prend pas en charge de préférences utilisateur. La valeur par défaut est "en" . Vous pouvez définir un autre jeu de paramètres régionaux, comme illustré ci-dessous :

air.Localizer.ultimateFallbackLocale = "fr";

Extraction de ressources d’un jeu de paramètres régionaux spécifique

La méthode getString() de l’objet Localizer renvoie la chaîne définie pour une ressource dans un jeu de paramètres régionaux spécifique. Lors de l’appel de la méthode, il est inutile de spécifier une valeur locale . Dans ce cas, la méthode examine la totalité du chaînage de jeux de paramètres régionaux et renvoie la chaîne du premier jeu contenant le nom de ressource concerné. Cette méthode prend en charge les paramètres suivants :

Paramètre

Description

bundleName

Regroupement contenant la ressource. Il s’agit du nom du fichier de propriétés sans l’extension .properties. Par exemple, si ce paramètre est défini sur "alerts" , le code Localizer examine les fichiers de localisation appelés alerts.properties.

resourceName

Nom de la ressource.

templateArgs

Facultatif. Tableau de chaînes servant à remplacer les balises numérotées dans la chaîne de remplacement. Par exemple, soit un appel à la fonction dans lequel le paramètre templateArgs est défini sur ["Raúl", "4"] et la chaîne de ressource correspondante est "Hello, {0}. You have {1} new messages." . Dans ce cas, la fonction renvoie "Hello, Raúl. You have 4 new messages." . Pour ne pas tenir compte de ce paramètre, transmettez la valeur null .

locale

Facultatif. Code du jeu de paramètres régionaux (tel que "en" , "en_us" ou "fr" ) à utiliser. Si un jeu de paramètres régionaux est indiqué et qu’aucune valeur correspondante n’est trouvée, la méthode ne recherche pas de valeurs dans les autres jeux du chaînage. Si aucun code de jeu de paramètres régionaux n’est spécifié, la fonction renvoie la chaîne du premier jeu du chaînage qui contient une valeur pour le nom de ressource donné.

La structure de localisation peut mettre à jour des attributs DOM HTML marqués. Vous pouvez cependant utiliser les chaînes localisées autrement. Ainsi, vous pouvez utiliser une chaîne dans du contenu HTML généré dynamiquement ou en tant que valeur de paramètre dans un appel de fonction. Par exemple, le code suivant appelle la fonction alert() avec la chaîne définie dans la ressource error114 du fichier de propriété par défaut du jeu de paramètres régionaux fr_FR :

alert(air.Localizer.localizer.getString("default", "error114", null, "fr_FR"));

La méthode getString() distribue un événement resourceNotFound si la ressource est introuvable dans le regroupement spécifié. La constante air.Localizer.RESOURCE_NOT_FOUND définit la chaîne "resourceNotFound" . L’événement possède trois propriétés : bundleName , resourceName et locale . La propriété bundleName représente le nom du regroupement introuvable. La propriété resourceName représente le nom de la ressource introuvable. La propriété locale représente le nom du jeu de paramètres régionaux dans lequel la ressource est introuvable.

La méthode getString() distribue un événement bundleNotFound lorsque le regroupement spécifié est introuvable. La constante air.Localizer.BUNDLE_NOT_FOUND définit la chaîne "bundleNotFound" . L’événement possède deux propriétés : bundleName et locale . La propriété bundleName représente le nom du regroupement introuvable. La propriété locale représente le nom du jeu de paramètres régionaux dans lequel la ressource est introuvable.

La méthode getString() s’exécute en mode asynchrone (et distribue les événements resourceNotFound et bundleNotFound en mode asynchrone). Le code suivant définit des écouteurs pour les événements resourceNotFound et bundleNotFound :

air.Localizerlocalizer.addEventListener(air.Localizer.RESOURCE_NOT_FOUND, rnfHandler); 
air.Localizerlocalizer.addEventListener(air.Localizer.BUNDLE_NOT_FOUND, bnfHandler); 
var str = air.Localizer.localizer.getString("default", "error114", null, "fr_FR"); 
function rnfHandler(event) 
{ 
    alert(event.bundleName + ": " + event.resourceName + ":." + event.locale); 
} 
function bnfHandler(event) 
{ 
    alert(event.bundleName + ":." + event.locale); 
}

La méthode getResourceBundle() de l’objet Localizer renvoie le regroupement spécifié pour un jeu de paramètres régionaux donné. La valeur renvoyée de la méthode est un objet dont les propriétés correspondent aux clés du regroupement. (Si l’application ne trouve pas le regroupement spécifié, la méthode renvoie null .)

La méthode reconnaît deux paramètres : locale et bundleName .

Paramètre

Description

locale

Jeu de paramètres régionaux (par exemple « fr » ).

bundleName

Nom du regroupement.

Par exemple, le code suivant appelle la méthode document.write() pour charger le regroupement par défaut pour le jeu de paramètres régionaux fr. Il appelle ensuite la méthode document.write() pour écrire les valeurs des clés str1 et str2 dans ce regroupement :
var aboutWin = window.open(); 
var bundle = localizer.getResourceBundle("fr", "default"); 
aboutWin.document.write(bundle.str1); 
aboutWin.document.write("<br/>"); 
aboutWin.document.write(bundle.str2); 
aboutWin.document.write("<br/>");

La méthode getResourceBundle() distribue un événement bundleNotFound lorsque le regroupement spécifié est introuvable. La constante air.Localizer.BUNDLE_NOT_FOUND définit la chaîne "bundleNotFound" . L’événement possède deux propriétés : bundleName et locale . La propriété bundleName représente le nom du regroupement introuvable. La propriété locale représente le nom du jeu de paramètres régionaux dans lequel la ressource est introuvable.

La méthode getFile() de l’objet Localizer renvoie le contenu d’un regroupement, sous forme de chaîne, pour un jeu de paramètres régionaux donné. Le fichier de regroupement est lu au format UTF-8. La méthode prend en charge les paramètres suivants :

Paramètre

Description

resourceFileName

Nom du fichier de ressource ( "about.html" , par exemple).

templateArgs

Facultatif. Tableau de chaînes servant à remplacer les balises numérotées dans la chaîne de remplacement. Par exemple, soit un appel à la fonction dans lequel le paramètre templateArgs est défini sur ["Raúl", "4"] et le fichier de ressource correspondant contient deux lignes :

<html> 
<body>Hello, {0}. You have {1} new messages.</body> 
</html> 

Dans ce cas, la fonction renvoie une chaîne de deux lignes :

<html> 
<body>Hello, Raúl. You have 4 new messages. </body> 
</html> 
locale

Code de jeu de paramètres régionaux à utiliser, tel que "en_GB" . Si un jeu de paramètres régionaux est indiqué et qu’aucun fichier correspondant n’est trouvé, la méthode n’examine pas les autres jeux du chaînage. Si aucun code de jeu de paramètres régionaux n’est spécifié, la fonction renvoie le texte du premier jeu du chaînage comportant un fichier qui correspond à resourceFileName .

Par exemple, le code suivant appelle la méthode document.write() à l’aide du contenu du fichier about.html du jeu de paramètres régionaux fr :

var aboutWin = window.open(); 
var aboutHtml = localizer.getFile("about.html", null, "fr"); 
aboutWin.document.close(); 
aboutWin.document.write(aboutHtml);

La méthode getFile() distribue un événement fileNotFound lorsqu’une ressource est introuvable dans le chaînage de jeux de paramètres régionaux. La constante air.Localizer.FILE_NOT_FOUND définit la chaîne "fileNotFound" . La méthode getFile() s’exécute en mode asynchrone (et distribue l’événement fileNotFound de manière asynchrone). L’événement possède deux propriétés : fileName et locale . La propriété fileName représente le nom du fichier introuvable. La propriété locale représente le nom du jeu de paramètres régionaux dans lequel la ressource est introuvable. Le code suivant définit un écouteur pour cet événement :

air.Localizer.localizer.addEventListener(air.Localizer.FILE_NOT_FOUND, fnfHandler); 
air.Localizer.localizer.getFile("missing.html", null, "fr"); 
function fnfHandler(event) 
{ 
    alert(event.fileName + ": " + event.locale); 
}