Стойки 2 интернационализация не работает - PullRequest
1 голос
/ 30 января 2011

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

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

Вот снимок проекта

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

1 Ответ

1 голос
/ 31 января 2011

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

Попробуйте добавить это в файл struts.xml:

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

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

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

...