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

Wicket Java Discussion :

Problème d'internationalisation d'une application Wicket


Sujet :

Wicket Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Problème d'internationalisation d'une application Wicket
    Bonjour à tous,
    Voici mon premier post sur ce forum.

    Je tente de procéder à l'internationalisation d'une application wicket. J'ai suivi plusieurs tutos puis adapter pour arriver au résultat souhaité, mais ça ne fonctionne pour le moment pas.

    J'aimerai avoir dans un pannel 2 boutons me permettant de switcher d'une langue à l'autre...
    Mon pannel se nomme 'WicketHeaderPannel'; j'ai donc un .java et un .html associé.

    Dans mon .html j'ai ceci:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <wicket:message key="helloworld">Hello</wicket:message>
                <input type="submit" wicket:id="fr_language" value="FR"/> | 
                <input type="submit" wicket:id="en_language" value="EN"/>

    Dans mon .java, j'ai ceci (modification de Locale afin que wicket ne prenne pas le locale par défaut enregistré dans la session):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    add(new Button("en_language")
            {
                @Override
                public void onSubmit()
                {
                    System.out.println("traceeeeeeeeee");
                    getSession().setLocale(Locale.ENGLISH);
                    setRedirect(true);
                    setResponsePage(HomePage.class);
                }
            });
            add(new Button("fr_language")
            {
                @Override
                public void onSubmit()
                {
                    getSession().setLocale(Locale.FRENCH);
                    setRedirect(true);
                    setResponsePage(HomePage.class);
                }
            });
    Lors d'un clic sur bouton, je me choppe une exception:
    GRAVE: Could not find Form parent for [MarkupContainer [Component id = en_language]]
    org.apache.wicket.WicketRuntimeException: Could not find Form parent for [MarkupContainer [Component id = en_language]]
    at org.apache.wicket.markup.html.form.FormComponent.getForm(FormComponent.java:737)
    ....
    Une idée?


    Edit:

    J'ai bien sur un WicketHeaderPannel_en.properties(helloworld: Salut) et un WicketHeaderPannel_fr.properties(helloworld: Hellow) qui contienne ma clé "helloworld".

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,

    Les composants de type Button avec les id en_language et fr_language doivent être placés dans un composant de type Form (ou mieux encore dans ton cas, StatelessForm).

    Ce qui devrait donner :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <wicket:message key="helloworld">Hello</wicket:message>
    <form wicket:id="langForm">
                <input type="submit" wicket:id="fr_language" value="FR"/> | 
                <input type="submit" wicket:id="en_language" value="EN"/>
    </form>

    et la partie Java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    StatelessForm langForm = new StatelessForm("langForm");
    langForm.add(new Button("en_language")
            {
                @Override
                public void onSubmit()
                {
                    System.out.println("traceeeeeeeeee");
                    getSession().setLocale(Locale.ENGLISH);
                    setRedirect(true);
                    setResponsePage(HomePage.class);
                }
            });
     
    langForm.add(new Button("fr_language")
            {
                @Override
                public void onSubmit()
                {
                    getSession().setLocale(Locale.FRENCH);
                    setRedirect(true);
                    setResponsePage(HomePage.class);
                }
            });
     
    add(langForm);

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Tu gères!
    Fonctionnel, merci.

    Si prochain post il y a, je ferai attention aux balises code ;-)

    Question: Pourquoi fallait-il placer cela dans un form?

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

Discussions similaires

  1. Problème d'internationalisation d'une application
    Par jbrasselet dans le forum ASP.NET
    Réponses: 5
    Dernier message: 28/06/2011, 13h58
  2. Problème d'accès depuis une application
    Par Cédric_07 dans le forum Access
    Réponses: 5
    Dernier message: 24/05/2006, 10h21
  3. [MySQL] Problème de tri pour une application
    Par nanor21 dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 11/05/2006, 19h08
  4. [Unicode] Internationalisation d'une application
    Par Thierry Laborde dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2003, 20h15

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