I know this works correctly:

    <s:div cssClass="title">
        <s:if test="#session.request_locale == 'es'">
            <s:property value="#request.genericPresentation.titleEs"
escapeHtml=""/>
        </s:if>
        <s:elseif test="#session.request_locale == 'en'">
            <s:property value="#request.genericPresentation.titleEn" />
        </s:elseif>
        <s:elseif test="#session.request_locale == 'pt'">
            <s:property value="#request.genericPresentation.titlePt" />
        </s:elseif>
    </s:div>


On Tue, Sep 10, 2013 at 3:08 PM, Chris Pratt <thechrispr...@gmail.com>wrote:

> locale.language is just the language, so it will never match the Language
> plus the Country.  If you need to test both you could do:
>
> <s:if test="%{(locale.language == 'en') && (locale.country == 'US')}">
>
> You might even be able to get away with:
>
> <s:if test = %{(locale.language + '_' + locale.country) == 'en_US'}">
>
> But I haven't tested it to be sure.
>   (*Chris*)
>
>
> On Tue, Sep 10, 2013 at 12:39 AM, Alireza Fattahi <afatt...@yahoo.com
> >wrote:
>
> > Thanks for your solution .
> > The
> > <s:if test="%{locale.language == 'en_US'}">
> > did not work! I don't know why !
> >
> > But I used your solution which seems much better tahn mine !
> >
> > ~Regards,
> > ~~Alireza Fattahi
> >
> >
> > ________________________________
> >  From: Chris <christal...@yahoo.fr>
> > To: Struts Users Mailing List <user@struts.apache.org>; Alireza Fattahi
> <
> > afatt...@yahoo.com>; Chris <christal...@yahoo.fr>
> > Sent: Monday, 9 September 2013, 7:49
> > Subject: Re: s:if and locale
> >
> >
> > Hello ,
> > Could you please write how do you define
> >
> > The locale is = ${locale}  //Here the correct locale is displayed!
> > I see in my browser  ( even source code )
> >
> > The locale is =   //Here the correct locale is displayed!
> >
> >
> > ________________________________
> > Please try this expresion and tell us if it works
> > <s:if test="%{locale.language == 'en_US'}">
> >
> > You will have to test your "locale" it in every jsp ?
> > Couldn't you use for example, a global.properties file and struts.xml
> > <constant name="struts.custom.i18n.resources" value="global" />
> >
> > in the file global.properties :cssfile=englshstyle.css
> > in the file global_es.properties :cssfile=spanishstyle.css
> > in yourjsp : <link href='<s:text name="cssfile" />' rel="stylesheet"
> > type="text/css" />
> > It works with sample
> >
> http://struts.apache.org/development/2.x/docs/message-resource-files.html
> > but the links are with parameter like .... action?request_locale=en
> > and you will need many properties file
> >
> >
> >
> > ________________________________
> > HI,
> >
> > I have used the strtuts I18n feature for managing the localization.  The
> > site works fine and the messages are selected from correct resource
> bundels.
> >
> > I have this problem....
> >
> > I want to change css base on the user locale.
> > So I use below code in jsp:
> > **************************
> > The locale is = ${locale}  //Here the correct locale is displayed!
> > <s:if test="%{locale == 'en_US'}"> //This condition is always false
> >      <link href="site-en.css" rel="stylesheet" type="text/css" />
> > </s:if>
> > <s:else>
> >    <link href="site-other.css" rel="stylesheet" type="text/css" />
> > </s:else>
> > **************************
> >
> > No matter what the locale value is, always the else condition is
> triggered
> > !!
> > The jsp out puts
> > **************
> > The locale is=en_US
> >    <link href="site-other.css" rel="stylesheet" type="text/css" />
> > **********
> >
> >
> > When I see the Struts ValueStack with <s:debug/> the locale value is
> > correct and is what it has too.
> >
> > Is there any thing wrong with my test conditin please help!
> >
> > ~Regards,
> > ~~Alireza Fattahi
> >
>



-- 
Hernán

Reply via email to