IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Localization sous Flex3 fonctionne pas [Fait]


Sujet :

Flex

  1. #1
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut Localization sous Flex3 fonctionne pas
    Bonjour,

    j'essaie actuellement de localiser mon application sous FlexBuilder 3.0.19x. J'ai suivi les tutoriels que l'on trouve un peu partout, mais je n'arrive à rien.

    J'essaie de compiler 2 locales (fr_FR et en_US) et de la modifier au runtime.

    Comme "Additional compiler arguments", j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    -locale=fr_FR,en_US -source-path=..\locale\{locale} -allow-source-path-overlap=true
    Dans mon projet, j'ai (à la racine), mes répertoires "locale\fr_FR" et "locale\en_US". Chacun contient un fichier "i18n.properties" avec les bonnes chaines dedans.

    Mes resources sont soit insérées directement dans le mxml comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <mx:Canvas label="{resourceManager.getString('i18n','xxx')}" ...
    soit comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <mx:TextArea text="@Resource(bundle='i18n',key='yyy')" ...
    ou alors, en AS3:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var s:String = resourceManager.getString("i18n", "xxx")

    J'ai mis un bouton qui me permette de modifier la locale, il fait uniquement ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private function onLocaleChange(e:Event):void {        
            resourceManager.localeChain = ["en_US"];
    }
    Et là, bin bêtement, je pensais avoir tout bon. Mais lorsque je clique sur mon bouton, il ne se passe rien, la locale ne change pas (nul part, que ce soit dans les chaînes mxml ou as3)....

    Quelqu'un aurait une idée?

    Merci
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  2. #2
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    je ne l'ai jamais fait comme tu le présente(intéressant ) , quand tu vérifies après avoir cliqué sur ton bouton , que vaut resourceManager.localeChain?

    as tu vérifié que ce n'était pas un problème de refresh?

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par Jim_Nastiq Voir le message
    je ne l'ai jamais fait comme tu le présente(intéressant )
    Ha bon? Je savais pas qu'il existait autre chose

    Citation Envoyé par Jim_Nastiq Voir le message
    quand tu vérifies après avoir cliqué sur ton bouton , que vaut resourceManager.localeChain?
    Elle vaut ce que je viens de lui mettre, à savoir "en_US"

    Citation Envoyé par Jim_Nastiq Voir le message
    as tu vérifié que ce n'était pas un problème de refresh?
    Euh... comment je fais ça?


    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  4. #4
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    il n'y a pas de façon précise, il faut suivre le fonctionnement du code en debug pour voir ou "s'arrete" l'information.

    typiquement je soupconne soit qu'aucun évènement n'est levé quand tu changes ton local ou alors que l'ihm a bien prise en compte les modifs mais ne les affiche pas(pb de refresh) . Je ne peux pas aller plus loin, je ne connais pas le ressourceManager, c'est donc à toi de faire le debug


    tiens moi au courant

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  5. #5
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Mouais... les événements Event.CHANGE sont propagés... mais rien n'y fait, mon appli reste deséspérément en français...

    Sinon, quelle est la méthode que tu utilises?
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  6. #6
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Errata: ça vient de la ligne du "Additional compiler argument"

    Maintenant, reste à trouver quoi y mettre précisément
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  7. #7
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Je ne vois pas d'erreurs, je regarderais chez moi ce soir comment je l'avais configuré si besoin, en attendant as tu regardé ce lien :
    http://labs.adobe.com/wiki/index.php...e_Localization

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Je ne vois pas ce qui pose problème avec ton code. De mon côté, j'utilise les boutons suivants pour changer de locale (mais en précisant uniquement le local de destination comme toi ça fonctionne aussi)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        <mx:Button label="To English" click="resourceManager.localeChain = ['en_US', 'fr_FR']"/>
        <mx:Button label="To French" click="resourceManager.localeChain = ['fr_FR', 'en_US']"/>
    J'affiche mes messages comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:Label text="{resourceManager.getString('messagesFlex', 'menu.Home')}" />
    Et j'ajoute la balise suivante dans le mxml principal de mon application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<mx:Metadata>
    		[ResourceBundle("messages")]
    		[ResourceBundle("messagesFlex")]
    	</mx:Metadata>
    La seule différence est que pour ajouter les locales dans mon chemin d'accès je ne le précise pas en tant qu'arguments de la ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -locale=fr_FR,en_US -allow-source-path-overlap=true
    , mais dans Flex build path > source path > add folder > "\locale\{locale}"

    Mes locales étant situés à la racine de l'application soit :
    src
    |-<classes>
    |-<composants>
    |-<locale>
    ----|-<en_US>
    --------|-messages.properties
    ----|-<fr_FR>
    --------|-messages.properties
    |-monMain.mxml


    Seule différence donc apparemment mon dossier <locale> se trouve dans le répertoire <src> et non pas à la racine du projet (comme toi). :/
    Ou alors explication plus simple, ton fichier .properties situé dans ton locale en_US ne contient pas les bonnes clés. Flex prend donc celles du locale fr_FR... Vérifie en lançant ton application avec le local en_US (pour voir si il s'agit bien d'un problème de changement de locale dynamique ou non).

  9. #9
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    OK, merci de toutes ces précisions. Je vais tester un de ces quatres, actuellement j'utilise un vieux truc "deprecated", à base de ResourceBundle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [ResourceBundle("en")]  
    private var en:ResourceBundle;
    au moins j'ai pas de soucis avec ça. Je ferai un update de mon projet pour la prochaine release...
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  10. #10
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    Je me permet de te demander des précisions Pill_S car j'ai tenté d'utiliser le resourceManager mais visiblement mes text et label ne sont rafraichit à la volée uniquement lorsqu'ils sont déclaré dans le tag mxml et pas dans des composants AS ...

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  11. #11
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Oui, moi c'est à peu près pareil... Lorsque je change de langue, ça reload entièrement l'appli (mes composants de changement de langue sont insérés en html et pas dans Flex)

    Désolé, je peux pas trop t'aider....
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  12. #12
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    J'ai finalement réussi a obtenir ce que je souhaitais (changement de langue à la volée)

    j'en ai fait un tutoriel sur mon blog, pour ceux que ca peut interesser : Localisation avec Flex 3

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Commande regedit /s sous Vista fonctionne pas?
    Par Quicksilvain dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 11/02/2013, 16h29
  2. "Enregistrer sous" ne fonctionne pas
    Par nassimanocus dans le forum Bases de données
    Réponses: 8
    Dernier message: 10/12/2012, 10h31
  3. Réponses: 18
    Dernier message: 19/08/2004, 15h11
  4. Java ne fonctionne pas sous Firefox
    Par Info-Rital dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 29/07/2004, 23h37
  5. Réponses: 6
    Dernier message: 27/01/2004, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo