struts 2 国际化不起作用

发布于 2024-10-15 03:35:13 字数 971 浏览 0 评论 0原文

我正在开发 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

这里是项目 struts.xml 的快照

,两个消息文件是在类路径的根目录中

I am developing struts 2 and spring web application which suppoerts two languages: english and hindi.
I have configured internationalization but it is not working i.e. when I change the encoding from browser, the text does not change.
I have tried to even change the locale programitically but it still does not work

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

here is the snapshot of the project

struts.xml and the two messages files are in the root of the classpath

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情定在深秋 2024-10-22 03:35:13

不幸的是,您将密钥命名为与英语值相同的名称,因此您无法真正判断英语包是否已正确加载。我的第一个猜测是 Struts 不知道 global-messages*.properties 是语言包。

尝试将其添加到您的 struts.xml:

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

编辑

如果您确定正在加载英语包,那么您将需要调试应用程序以确认 Struts2 正确设置了印地语区域设置。操作中的断点应该允许您轻松检查 getLocale() 的值。

Unfortunately, you named your keys the same as your values in English, so you can't really tell if the English bundle is being loaded properly either. My first guess is that Struts does not know that global-messages*.properties are language bundles.

Try adding this to your struts.xml:

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

Edit

If you are sure that the English bundle is loading, then you'll want to debug the application to confirm that the Hindi locale is being set properly by Struts2. A breakpoint in your action should allow you to easily check the value of getLocale().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文