PhilFlash

Flex 3 : Multilingue - Localization - utilitaire copylocale

Si vous écrivez une application multilingue (voir la documentation sur ce sujet) et que vous compilez votre application avec l'option -locale fr_FR, vous allez avoir l'erreur suivante :

Severity and Description Path Resource Location Creation Time Id
unable to open 'C:\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\locale\fr_FR'

En effet, les ressources n'existent pas pour la langue française (fr_FR).

Ces ressources doivent être présentes dans le répertoire :

flex_builder_install/sdks/3.0.0/frameworks/locale

Par défaut, Flex 3 est livré avec lesressources pour l'anglais (en_US) et le japonais (ja_JP)

Solution 1 : solution rapide avec messages en anglais

Il faut utiliser l'utilitaire copylocale.

  1. Il faut passer en mode administrateur et ouvrir une fenêtre de commande par :

    Démarrer > Exécuter... et tapez : cmd

Flex compile les ressources et crée bien un répertoire fr_FR
dans flex_builder_install/sdks/3.0.0/frameworks/locale.

Vous n'avez plus d'erreur de compilation mais les messages restent en anglais.

Solution 2 : copylocale avec langue intermédiaire

copylocale utilise des fichiers de ressources XXX.properties pour les compiler en extension .swc

Ces fichiers sources se trouvent dans des catégories qui correspondent à des sous-répertoires de flex_builder_install/sdks/3.0.0/frameworks/projects.

On a les catégories : airframework, automation, framework, rpc.

Les sources se trouvent dans les répertoires : bundles/<lang>/src

Par exemple, pour la catégorie framework (qui sera compilé en framework_rb.swc),
les fichiers sources se trouvent dans :

flex_builder_install/sdks/3.0.0/frameworks/projects/framework/bundles/en_US/src pour la langue en_US

On trouve les fichiers collections.properties, containers.properties, controls.properties, etc...

L'idée est donc de modifier ces fichiers puis de les compiler en utilisant copylocale. On va donc utiliser une langue intermédiaire par exemple prepare_fr_FR

On procède en trois étapes :

  1. Ouvrir une fenêtre de commande, se positionner dans flex_builder_install/sdks/3.0.0/bin et lancer la commande

    copylocale en_US prepare_fr_FR

  2. Vous pouvez modifier les messages dans les fichiers *.properties dans les répertoires
    flex_builder_install/sdks/3.0.0/frameworks/projects/*/bundles/prepare_fr_FR/src

    Sauvegarder bien les fichiers au format UTF-8

    Pour faire rapide, il y a 3 fichiers importants à traduire : controls.properties validators.properties et formatters.properties dans la catégorie framework donc dans le répertoire projects/framework/bundles/prepare_fr_FR/src

  3. Vous pouvez maitenant compiler les nouvelles ressources en utilisant copylocale. Ouvrir une fenêtre de commande, se positionner dans flex_builder_install/sdks/3.0.0/bin et lancer la commande :

    copylocale prepare_fr_FR fr_FR

Le cas de la catégorie datavisualization

Si vous utilisez des charts de Flex Builder 3 Pro et la langue française (avec l'option -lang fr_FR) vous allez avoir de nouveau l'erreur :

Unable to resolve resource bundle "charts" for locale "fr_FR".

En effet, les solutions précédentes ne créent pas le fichier : datavisualization_rb.swc

Pour controuner cette erreur, c'est un peu plus compliqué. Voici les étapes :

  1. Vérifier que le répertoire fbpro existe dans le répertoire flex_builder_install/sdks/3.2.0/fbpro
    Si ce n'est pas, voici comment le créer :
    • Quitter Flex Builder
    • Faire une copie du fichier license.properties (votre clé Flex Builder) du répertoire
      C:\Documents and Settings\All Users\Application Data\Adobe\Flex\license.properties
    • Effacer ce fichier
    • Lancer Flex Builder
    • Aller dans le menu : Help -> Manage Flex Licences et entrez votre clé Flex Professional
    • Flex va créer le répertoire fbpro

  2. copier le répertoire datavisualization flex_builder_install/sdks/3.2.0/fbpro/projects/datavisualization dans flex_builder_install/sdks/3.2.0/frameworks/projects

  3. Dans le nouveau répertoire projects/datavisualization/bundles/en_US, créer un répertoire src puis déplacer les fichiers properties dans ce répertoire src

    Vous devez voir donc :

    flex_builder_install/sdks/3.0.0/frameworks/projects/datavisualization/bundles/en_US/src
    et les fichiers charts.properties, datamanagement.properties et olap.properties

    Catégorie chart et datavisualization

  4. Appliquer la solution 1 ou 2

Comme tout ceci est un peu compliqué (et tout ceci pour des messages d'erreur interne en développement), voici le fichier : datavisualization_rb.swc

Autres solutions

BabelFlex vous propose une autre méthode pour créer les fichiers de ressources (à partir de projets Flex 3) et une traduction française et espagnole des fichiers properties.

Par contre, le fichier datavisualization_rb.swc a été oublié...

Pour BabelFlex, c'est ici


xhtml   css   cc   508   aaa
Me connaître  |  Me contacter