Question

Je cherche à internationaliser une application Flex sur laquelle je travaille et je suis curieux de savoir s'il existe des meilleures pratiques ou des recommandations à cet effet.

Googler pour obtenir de telles informations donne lieu à une poignée de petits articles et de blogs, chacun traitant de le faire différemment, et les avantages et les inconvénients ne sont pas tout à fait clairs.

Modifié pour réduire la portée:

  • Besoin de ne supporter que deux langues (en_CA et fr_CA)
  • Besoin de pouvoir basculer au moment de l'exécution
Était-ce utile?

La solution

Bien sûr, après avoir cherché un peu plus sur Google, je tombe sur un article sur localisation d'exécution .

Et suivez ces étapes:

Ajoutez les éléments suivants aux arguments du compilateur pour spécifier les paramètres régionaux pris en charge et leur chemin: (Dans Flex Builder, sélectionnez le projet et accédez aux propriétés - > Compilateur Flex - > Arguments supplémentaires du compilateur)

-locale = en_CA, fr_CA -source-path = locale / {locale}

Créez les fichiers suivants:

src/locale/en_CA/resources.properties
src/locale/fr_CA/resources.properties

Le compilateur se plaint ensuite: impossible d'ouvrir "C: \ Program Files \ Adobe \ Flex Builder 3 \ sdks \ 3.1.0 \ frameworks \ locale \ en_CA"

Qui semble être lié au bogue SDK-12507

Contourner:
Dans le répertoire sdks \ 3.1.0 \ bin , exécutez les commandes suivantes:

copylocale en_US en_CA  
copylocale en_US fr_CA

Ceci créera les répertoires de paramètres régionaux dans l'installation de Flex Builder et y créera certaines ressources requises.

Puis, dans vos fichiers .mxml , référencez le regroupement de ressources:

<mx:Metadata>
    [ResourceBundle("resources")]
</mx:Metadata>

Et internationaliser les chaînes:

<mx:TitleWindow title="Window Title">

devient:

<mx:TitleWindow 
    title="{resourceManager.getString('resources', 'windowTitle')}">

et

var name:String = "Name";

devient:

var name:String = resourceManager.getString("resources", "name");

Et dans votre fichier src / locale / en_CA / resources.properties :

windowTitle=Window Title
name=Name
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top