2011-01-30 2 views
1

Я разрабатываю стойки 2 и весеннее веб-приложение, которое поддерживает два языка: английский и хинди. Я настроил интернационализацию, но он не работает, то есть когда я изменяю кодировку из браузера, текст не изменяется. Я попытался даже изменить локаль programitically, но она по-прежнему не работаетstruts 2 интернационализация не работает

RegisterAction.java

public class RegisterAction extends ActionSupport { 

public String execute(){ 
    return "SUCCESS"; 
} 

public Locale getLocale(){ 
    return new Locale("hi"); 
} 
    } 

struts.xml

<action name="register" class="com.medics.action.RegisterAction"> 
    <result name="SUCCESS">/Register.jsp</result> 
</action> 

Register.jsp

<%@ taglib prefix="s" uri="/struts-tags" %> 
<h4><s:text name="Registration"/></h4> 

global-messages.properties

hello=hello 
Registration=Registration 

global-messages_hi.properties

Registration=\\u2354\\u2379\\u327\\u2367\\u2344\\u2381 

здесь снимок проекта

struts.xml и два сообщения файлы находятся в корневом каталоге пути к классам

ответ

1

К сожалению, вы назвали свои ключи такими же, как ваши значения, на английском языке, поэтому вы не можете точно сказать, правильно ли загружен английский комплект. Мое первое предположение заключается в том, что Struts не знает, что глобальные сообщения * .properties являются языковыми связями.

Попробуйте добавить это к вашему struts.xml:

<constant name="struts.custom.i18n.resources" value="global-messages"/> 

Редактировать

Если вы уверены, что английский пакет загружается, то вы хотите, чтобы отладить приложение, чтобы подтвердить, что языковой стандарт хинди устанавливается должным образом Struts2. Контрольная точка в вашем действии должна позволять вам легко проверить значение getLocale().

+0

Я уже определил пакет resoulse глобальных сообщений в файле struts.properties. Английский пакет правильно загружается, поскольку, когда я изменяю значение в этом пакете, оно отражается на веб-странице. –

+0

Я обновил свой ответ. –

Смежные вопросы