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 <[email protected]>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 <[email protected]
> >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 <[email protected]>
> > To: Struts Users Mailing List <[email protected]>; Alireza Fattahi
> <
> > [email protected]>; Chris <[email protected]>
> > 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