Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

7avr/093

Flex Localization – Ajouter de nouvelles langues (locale)

Pour ajouter une langue nationale à votre projet, pour l'internationalisation, voici la marche à suivre:

  • Ajoutez la langue à l'option locale de votre compilateur. Vous pouvez l'ajouter dans Flex Builder en faisant clic droit sur le projet puis Flex Compiler puis dans Additional Compiler Arguments. Voici par exemple, comment on ajoute la langue espagnole (en Espagne):
-locale=en_US,es_ES

Si vous n'utilisez pas Flex Builder mais plutôt mxmlc, éditer le fichier flex-config.xml et ajouter les langues avec la syntaxe suivante:

<locale>
    <locale-element>en_US</locale-element>
    <locale-element>es_ES</locale-element>
</locale>
  • Assurez vous que vous avez bien crée le nouveau dossier ainsi que le nouveau fichier de propriété correspondant à la nouvelle langue. Ces fichiers doivent être liés au source path. Pour cela, jetez un oeil à cet article:

Flex Localization – Compilation de ressources dans une application Flex

  • Il faut ensuite créer les Resource Bundles du framework pour la nouvelle locale

Création des Resource Bundles pour le framework Flex

L'option -locale définit quelle langue nationale inclure dans le source path. Elle indique aussi au compilateur quelle ressources utiliser pour le framework Flex (quelle langue pour le framework). Les composants du framework Flex comme les Label ou les Button utilisent des ressources, tout comme votre application peut le faire. Les ressources dont ont besoin ces classes sont situées dans des librairies comme framework.swc ou dans des Bundles séparés. Par défaut, les framework resources pour la locale en_US sont inclus avec le SDK Flex. Si vous ajoutez une locale à votre application, vous devez générer les ressources pour le framework dans cette langue.

7avr/092

Flex Localization – Syntaxe des fichiers properties pour la l10n

Vous avez vu dans les tutoriaux précédents, comment créer des fichiers properties et comment compiler ces fichiers properties dans des Resources Bundles, directement dans une application Flex. Vous allez maintenant voir quelle syntaxe utiliser pour écrire ces fichiers.

Chaque ligne prend la forme clé = valeur. Voici quelques règles d'utilisation:

  • Les lignes dans les fichiers properties ne sont pas terminées par des ; ou d'autres caractères
  • Vous pouvez utiliser un signe "=", ou ":" ou un espace pour séparer la valeur de la clé comme ceci:
key = value
key : value
key value
  • Pour ajouter un commentaire à votre fichier properties, commencez la ligne par un # ou un !. Vous pouvez insérer un espace avant le # ou le ! dans une ligne de commentaire. Les exemples suivant sont des commentaires:
! This is a comment.
# This is a comment.
  • Les espaces précédant une valeur sont supprimés (stripped). Ceux à la fin ne le sont pas.
  • Vous pouvez utiliser les échappement standard comme \n (newline), \r (return), \t (tab), \u0020 (space) et \\ (backslash)
  • Backslash-space est un échappement pour un espace. Par exemple, si une valeur commence par un espace, vous devez l'écrire avec un backslash-space ou le compilateur va interpréter l'espace comme l'espace optionnel en début de valeur. Vous n'avez pas à échapper les espace à l'intérieur d'une valeur. L'exemple suivant à une valeur commençant par un espace:
key =\ value
  • Vous pouvez continuer une ligne en la terminant par un backslash. Les espaces précédant la ligne suivant seront supprimés
  • Les Backslash qui ne font pas partie d'un échappement sont supprimés. Par exemple, \A est simplement A
  • Vous n'avez pas besoin d'échapper les quotes et doubles quote
  • Les lignes contenant simplement des espaces sont ignorées

Si vous avez des problèmes avec les caractères accentués (ou le signe euro par exemple qui ne passera pas de base), consultez cet article:

Flex Tips – Insérer des caractères accentués dans un Resource Bundle (bug d'encodage)

7avr/090

Flex Localization – Compilation de ressources dans une application Flex

Après avoir crée des fichiers ressource .properties, vous pouvez soit compiler ces ressources dans des "bundles" dans votre application, soit le compiler en tant que "module" pour qu'ils soient chargé à l'exécution.

  • Si vous compilez ces ressources dans l'application, le compilateur mxmlc va les convertir en sous-classe de la classe ResourceBundle, et les ajouter à votre application à la compilation.
  • Si vous compilez ces ressources dans des "Resources Modules", le compilateur va les compiler en fichier SWF que vous pourrez charger à la volée

Nous verrons la compilation de Resources Module dans un prochain tuto Flex, penchons nous plutôt sur la compilation de Resource Bundles.

Compiler des ressources dans l'application en ligne de commande

Avec le compilateur mxmlc

  1. Spécifiez une ou plusieurs "locale" à compiler dans votre application, avec l'option -locale du compilateur. La valeur de cette option est utilisée par l'option -source-path pour trouver le fichier contenant les ressources. L'option -library-path utilise aussi cette valeur pour inclure un framework localisé
  2. Spécifiez l'emplacement de la ressource avec l'option -source-path. Vous pouvez ajouter des ressources pour plus d'un langage national en utilisant le token {locale}
  3. Fixez la velur de l'option -allow-source-path-overlap à true. C'est optionnel mais si vous ne le faîtes pas, vous pourriez obtenir un warning indiquant que le source path est un sous-repertoire du source path du projet.

Voici un exemple de ligne de commande pour mxmlc. Ici, l'application LocalizedForm.mxml utilise une ressource pour un seul langage national, en_US:

mxmlc -locale=en_US -source-path=c:\myapp\locale\{locale} -allow-source-path-overlap=true c:\myapp\LocalizedForm.mxml

Vous pouvez spécifier les locale dans le fichier flex-config.xml utilisé par le compilateur mxmlc. Spécifiez les locales en utilisant le tag <locale> comme dans cet exemple:

<locale>
    <localeElement>en_US</localeElement>
</locale>

Pour ajouter des entrées à votre source-path dans le fichier de config, utilisez le tag <source-path> comme ceci:

<source-path>
    <path-element>locale/{locale}</path-element>
</source-path>

Le tag <source-path> est commenté par défaut

Remplis sous: Localization, XML Lire la suite