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

Taglibs Java Discussion :

[struts2]Internationalisation pager ? [FAQ] [DisplayTag]


Sujet :

Taglibs Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut [struts2]Internationalisation pager ?
    Bonjour,

    Je travaille sur struts2 et j'utilise la librairie DisplayTag pour l'affichage de mes tableaux. Je bute sur l'internationalisation des messages liés au pager (ie les liens de navigation, pas les colonnes du tableau).

    Dans la doc du site, il est écrit que je dois créer un fichier displaytag_en.properties et un autre displaytag_fr.properties (pour Français et Anglais par exemple). J'ai placé ces 2 fichiers dans le répertoire WEB-INF/classes.

    Malheureusement, une fois dans l'appli, quelque soit la langue choisie, tous mes messages s'affichent en Français.

    Quelqu'un sait ce qui cloche ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2007
    Messages : 68
    Par défaut
    Bon, j'ai trouvé une solution.

    Il faut ajouter cette classe :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    package org.displaytag.localization;
     
    import java.util.Iterator;
    import java.util.Locale;
    import java.util.Collections;
     
    import javax.servlet.http.HttpServletRequest ;
    import javax.servlet.jsp.PageContext;
    import javax.servlet.jsp.tagext.Tag;
     
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.struts2.views.jsp.TagUtils ;
    import org.displaytag.Messages;
     
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.LocaleProvider;
    import com.opensymphony.xwork2.TextProvider;
    import com.opensymphony.xwork2.util.OgnlValueStack ;
    import com.opensymphony.xwork2.util.ValueStack;
     
    /**
    * Struts2/Webwork2 implementation of a resource provider and locale
    resolver.<br/>
    * Tested with diplaytag 1.1 and struts2 2.0.1<br/>
    * # Set this values in displaytag.properties #<br/>
    * <code>
    * locale.resolver = org.displaytag.localization.I18nWebwork2Adapter<br/>
    * locale.provider = org.displaytag.localization.I18nWebwork2Adapter <br/>
    * </code>
    * Date: 08-mar-2007
    * Time: 13:11:31
    * @author Carles Gasques Baró
    * @version 1.0
    */
    public class I18nWebwork2Adapter implements LocaleResolver, I18nResourceProvider
    {
       public static final String UNDEFINED_KEY = "???";
     
       private static Log log = LogFactory.getLog(I18nWebworkAdapter.class);
     
       public Locale resolveLocale(HttpServletRequest request)
       {
     
           Locale result = null;
           ValueStack stack = ActionContext.getContext().getValueStack();
     
           Iterator iterator = stack.getRoot().iterator();
           while (iterator.hasNext())
           {
               Object o = iterator.next();
     
               if (o instanceof LocaleProvider)
               {
                   LocaleProvider lp = (LocaleProvider) o;
                   result = lp.getLocale();
     
                   break;
               }
           }
     
           if (result == null)
           {
               log.debug("Missing LocalProvider actions, init locale to default");
               result = Locale.getDefault ();
           }
     
           return result;
       }
     
       public String getResource(String resourceKey, 
    		                     String defaultValue, 
    		                     Tag tag, 
    		                     PageContext pageContext)
       {
           String key = (resourceKey != null) ? resourceKey : defaultValue;
     
           String message = null;
           OgnlValueStack stack =
        	   (OgnlValueStack)TagUtils.getStack(pageContext);
           Iterator iterator = stack.getRoot().iterator();
     
           while(iterator.hasNext())
           {
               Object o = iterator.next();
     
               if(o instanceof TextProvider){
                   TextProvider tp = (TextProvider) o;
                   message = tp.getText( key, defaultValue, Collections.EMPTY_LIST , stack);
                   break;
               }
           }
     
           if (message == null && resourceKey != null)
           {
               log.debug(Messages.getString("Localization.missingkey ", resourceKey));
               message = UNDEFINED_KEY + resourceKey + UNDEFINED_KEY;
           }
     
           return message;
       }
    }
    Puis dans le displaytag.properties modifier ces lignes pour utiliser le ressource provider struts2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # locale provider (Jstl provider by default)
    locale.provider=org.displaytag.localization.I18nWebwork2Adapter
     
    # locale.resolver (nothing by default, simply use locale from request)
    locale.resolver=org.displaytag.localization.I18nWebwork2Adapter

  3. #3
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut
    Merci
    Je me demandais aussi comment faire...
    Super ca marche !

  4. #4
    Invité de passage
    Profil pro
    Ingénieur développement logiciel
    Inscrit en
    Juin 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciel

    Informations forums :
    Inscription : Juin 2009
    Messages : 1
    Par défaut surcharge des messages
    Bonjour,
    D'abord je te remercie pour cette réponse.
    Le problème c'est que je voudrais aussi surcharger les messages de la barre de navigation.
    J'ai mis
    paging.banner.full=<span class="pagelinks">[<a href="{1}">Premier</a>/<a href="{2}">Précedent</a>]{0} [ <a href="{3}">Suivant</a>/ <a href="{4}">Dernier</a>]</span>

    Mais j'ai toujours le message par défaut qui s'affiche.
    Est ce que vous avez une solution pour ce prob.
    Merci par avance.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/05/2014, 15h51
  2. [Kylix] internationalisation
    Par bohort dans le forum EDI
    Réponses: 1
    Dernier message: 26/07/2004, 18h26
  3. [STRUTS] INTERNATIONALISATION ==>> EXEMPLE
    Par zarbydigital dans le forum Struts 1
    Réponses: 10
    Dernier message: 23/03/2004, 14h55
  4. [Unicode] Internationalisation d'une application
    Par Thierry Laborde dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2003, 20h15
  5. [CR] internationalisation d'un report
    Par osoudee dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 24/06/2002, 16h54

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