You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by "Anbazhagan.G" <an...@snovabits.net> on 2014/09/01 07:51:34 UTC

Multilingual not working in inside the zone component

Hi All,

I am developing web application using tapestry 5.3. I have implemented 
multilingual concept in my application. I have property files for Italy, 
German and English. In my application default property is English.

Language changed when selecting language from language setting menu.
My lanugage setting code:

.tml

<li><a t:type="eventLink"  t:event="lanuageSubmit" 
t:context="languageProperty.countryCode" 
href="#">${languageProperty.languages}</a></li>

.java

void onLanuageSubmit(final String langCode) {
try {
localizationSetter.setLocaleFromLocaleName(langCode);
persistentLocale.set(new Locale(langCode));
} catch(final Exception e) {
LOGGER.error("Select language" + Constants.LOGGER_ERROR + e);
}
}

Everythink working fine. But here my problem is multilingual not working 
in inside the zone component.

In my tml page I have one ajax zone link

<a t:type="actionlink" t:id="installByEmail" t:zone="emailPopUp" 
 >Install</a>

and zone body is,

<t:zone t:id="emailPopUp">
<t:if test="enableEmailPopUp">
<div id="changePassword" class="overlay">
<div id="overlayalertBox" >
<div class="closeImg"><a href="#" onclick="closePopUp();"><img 
src="${context:layout/images/close.png}" /></a></div>
<h1>${message:installbyemail}</h1>
<table width="100%" class="resetPassword" cellspacing="0" cellpadding="6">
<tr><td>${message:enterEmail}</td></tr>
<tr><td><input class="changePwdField" t:type="TextField" 
t:value="appInstallEmail" t:validate="true" t:id="appInstallEmail" 
/></td></tr>
<tr><td style="text-align: center;">
<input t:type="submit" t:value="Send" t:id="emailSubmit" />&nbsp;&nbsp;
<input t:type="submit" t:value="Cancel" t:id="cancelSubmit" /></td></tr>
</table>
</div>
</div>
</t:if>
</t:zone>

.java

@InjectComponent
private Zone emailPopUp;

Object onActionFromInstallByEmail() {
if(request.isXHR()) {
enableEmailPopUp = true;
return emailPopUp.getBody();
}
}

After selecting Italy language, the page content changed to Italy. And 
then clicking install link, its load the default language property in 
inside the zone instead of Italy language property.

For Example,

Default Language: English
installbyemail=Install By Email

Select Language: Italy
installbyemail=Installare via e-mail

After clicking install link, its load only default language 
property(English), instead of Italy language property.

Please any one help to solve this issue.

Best Regards,
Anbazhagan.G