Package | mx.resources |
Interface | public interface IResourceBundle |
Implémenteurs | ResourceBundle |
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Trois concepts principaux sont impliqués dans la localisation : les paramètres régionaux, les ressources et les regroupements de ressources.
Un paramètre régional spécifie une langue et un pays pour lesquels votre application a été localisée. Par exemple, le paramètre régional "en_US"
spécifie English (anglais) tel que parlé aux Etats-Unis (pour plus d’informations, voir la classe mx.resources.Locale).
Une ressource est une valeur nommée dépendant d’un paramètre régional. Par exemple, il se peut que votre application dispose d’une ressource dont le nom est "OPEN"
et dont la valeur pour un paramètre régional English est "Open"
, mais dont la valeur pour un paramètre régional French est "Ouvrir"
.
Un regroupement de ressources est un groupe de ressources nommé dont les valeurs ont été localisées pour un paramètre régional spécifique. Un regroupement de ressources est identifié par la combinaison de ses valeurs bundleName
et locale
, et comporte un objet content
contenant les paires nom-valeur des ressources du regroupement.
L’interface IResourceBundle représente un regroupement de ressources spécifique. Toutefois, la plupart des applications n’ont besoin que d’utiliser la classe IResourceManager. Un objet ResourceManager unique implémentant cette interface gère plusieurs regroupements de ressources, éventuellement pour plusieurs paramètres régionaux, et permet d’accéder aux ressources contenues dans ces regroupements. Par exemple, vous pouvez extraire une ressource spécifique en tant que chaîne en appelant la méthode resourceManager.getString(bundleName, resourceName)
. En changeant la propriété localeChain
de la classe ResourceManager, vous pouvez changer les regroupements de ressources dans lesquels les valeurs de ressources sont recherchées.
En général, vous ne créez pas vous-même les regroupements de ressources ; à la place, ils sont généralement compilés à partir de fichiers *.properties. Un fichier de propriétés nommé MyResources.properties produit un regroupement de ressources avec "MyResources"
pour nom bundleName
. Vous produisez généralement plusieurs versions de chaque fichier de propriétés, une pour chaque paramètre régional que votre application prend en charge.
Les fichiers de propriétés Flex sont similaires aux fichiers de propriétés Java, à la différence qu’ils prennent aussi en charge les directives Embed()
et ClassReference()
MXML. Ces directives opèrent de la même manière dans un fichier de propriétés que dans un fichier CSS, produisant des références de classes. De plus, il est toujours supposé que le codage des fichiers de propriétés Flex est UTF-8.
Les ressources de la structure Flex ont été localisées pour l’anglais américain (paramètre régional "en_US"
) et pour le japonais (paramètre régional "ja_JP"
). Les ressources de structures sont organisées en plusieurs regroupements correspondant aux assemblages de structures ; par exemple, le regroupement « formatters » est utilisé par les classes dans l’assemblage mx.formatters (il existe aussi un regroupement « SharedResources » pour les ressources utilisées par plusieurs assemblages).
Les fichiers de propriétés des ressources de structures (par exemple, formatters.properties) figurent dans les répertoires frameworks/projects/framework/bundles/{locale}/src du SDK Flex. Vos applications sont normalement liées par rapport à la structure Flex en tant que bibliothèque précompilée, framework.swc, dans le répertoire frameworks/libs. Cette bibliothèque ne contient aucune ressource. A la place, les ressources de structures ont été compilées en bibliothèques de regroupements de ressources distinctes telles que framework_rb.swc. Celles-ci sont situées dans les répertoires frameworks/locales/{locale} et votre application doit également être liée dans un ou plusieurs de ces répertoires.
Vous êtes libre d’organiser les propres ressources de votre application dans les regroupements qui vous conviennent. Si vous localisez votre application pour des paramètres régionaux autres que "en_US"
et "ja_JP"
, localisez les fichiers de propriétés de la structure pour ces paramètres régionaux et compilez pour eux des bibliothèques de regroupements de ressources supplémentaires.
Lorsque votre application démarre, la classe ResourceManager reçoit automatiquement les regroupements de ressources ayant été compilés dans l’application. Si vous créez un module de code, les ressources dont ses classes ont besoin sont par défaut compilées dans le module. Lorsque le module est chargé dans une application, les regroupements dont l’application ne dispose pas déjà sont ajoutés à la classe ResourceManager.
Vous pouvez compiler des « modules de ressources » ne contenant que des ressources et les charger avec la méthode loadResourceModule()
de la classe ResourceManager. Avec les modules de ressources, vous pouvez prendre en charge plusieurs paramètres régionaux en chargeant les ressources requises lors de l’exécution au lieu de les compiler dans votre application.
Bien que la classe ResourceManager reçoive normalement les regroupements de ressources ayant été compilés dans votre application ou chargé à partir de modules, vous pouvez aussi créer par programmation des regroupements de ressources et les ajouter vous-même à la classe ResourceManager avec la méthode addResourceBundle()
.
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
bundleName : String [lecture seule]
Nom identifiant ce regroupement de ressources, tel que « MyResources ». | IResourceBundle | ||
content : Object [lecture seule]
Objet contenant des paires clé-valeur pour les ressources dans ce regroupement de ressources. | IResourceBundle | ||
locale : String [lecture seule]
Paramètre régional pour lequel les ressources de ce regroupement ont été localisées. | IResourceBundle |
bundleName | propriété |
bundleName:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Nom identifiant ce regroupement de ressources, tel que "MyResources"
.
Cette propriété en lecture seule est définie lorsqu’un regroupement de ressources est construit.
Les regroupements de ressources qui sont automatiquement créés à partir de fichiers de propriétés compilés comportent des noms de regroupements basés sur les noms de ces fichiers. Par exemple, un fichier de propriétés nommé MyResources.properties produit un regroupement de ressources dont le nom bundleName
est "MyResources"
.
La classe ResourceManager peut gérer plusieurs regroupements comportant le même nom bundleName
, à condition qu’ils disposent de valeurs différentes pour leur propriété locale
.
Implémentation
public function get bundleName():String
content | propriété |
content:Object
[lecture seule] Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Objet contenant des paires clé-valeur pour les ressources dans ce regroupement de ressources.
En général, vous devez accéder aux ressources en utilisant les méthodes IResourceManager telles que getString()
, au lieu d’y accéder directement dans un regroupement de ressources. Toutefois, si vous créez par programmation vos propres regroupements de ressources, vous pouvez les initialiser avec des ressources, comme suit :
var rb:IResourceBundle = new ResourceBundle("fr_FR", "MyResources"); rb.content["LANGUAGE"] = "Francais"; rb.content["GREETING"] = "Bonjour";
Lorsqu’un regroupement de ressources est produit via la compilation d’un fichier de propriétés, ses valeurs de ressources sont de type chaîne ou classe. Par exemple, si le fichier de propriétés contient
LANGUAGE=English MINIMUM_AGE=18 ENABLED=true LOGO=Embed("logo.png")
la valeur de la ressource LANGUAGE
est la chaîne "English"
, la valeur de la ressource MINIMUM_AGE
est la chaîne "18"
, la valeur de la ressource ENABLED
est la chaîne "true"
et la valeur de la ressource LOGO
est une classe qui représente le fichier PNG incorporé.
Vous pouvez utiliser les méthodes IResourceManager telles que getInt()
et getBoolean()
pour convertir les chaînes de ressources telles que "18"
et "true"
vers le type auquel votre code s’attend.
Implémentation
public function get content():Object
locale | propriété |
locale:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Paramètre régional pour lequel les ressources de ce regroupement ont été localisées. Chaîne telle que "en_US"
pour l’anglais américain.
Cette propriété en lecture seule est définie lorsqu’un regroupement de ressources est construit.
Les regroupements de ressources qui sont automatiquement créés à partir de fichiers de propriétés compilés comportent des paramètres régionaux basés sur l’option -compiler.locale
des compilateurs mxmlc ou compc. Par exemple, vous compilez votre application avec l’option -compiler.locale=en_US,ja_JP
et avez spécifié -compiler.source-path=resources/{locale}
de sorte que les ressources de votre application, situées dans resources/en_US/MyResources.properties et resources/ja_JP/MyResources.properties, soient trouvées. Votre application dispose alors de deux regroupements de ressources dont le nom bundleName
est "MyResources"
, un dont le paramètre locale
est "en_US"
et un dont le paramètre locale
est "ja_JP"
.
Implémentation
public function get locale():String
Tue Jun 12 2018, 09:30 AM Z