【问题标题】:Web application in jsp/servlets - localization using fmt:messagejsp/servlets 中的 Web 应用程序 - 使用 fmt:message 进行本地化
【发布时间】:2013-03-21 15:23:42
【问题描述】:

我正在 Tomcat 7.0 上使用 jsp 和 servlet 编写简单的 www 应用程序。它是多语言的,我想将所有消息外部化以便于翻译。我正在尝试使用 fmt:message 标签来实现这一点。这是我的测试页面:

SimplePage.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<fmt:setLocale value="en_US" scope="application" />
<fmt:setBundle basename="localization.message" var="b" />
<html>
<body>
    <fmt:message key="key1" bundle="${b}" />
</body>

message_en_US.properties

key1=test

页面输出为:

???key1???

我已将 message_en_US.properties 放入名为“localization”的源文件夹中。我也尝试将它放入 WEB-INF、WebContent 和 src(更改包的基本名称) - 结果是一样的。感谢您的帮助。

【问题讨论】:

标签: java jsp servlets bundle


【解决方案1】:

如果您将它放在名为 localization 的源文件夹中,则无需在其前面加上本地化。

<fmt:setBundle basename="message" var="b" />

【讨论】:

  • 这究竟是如何回答具体问题的? OP 在这方面似乎没有做错任何事情。
  • 嗯...但它现在正在工作,我的意思是因为我删除了本地化前缀。但我想知道这是保存我的本地化文件的正确位置吗?
  • @BalusC 它也适用于我。我现在怀疑自己,但fmt 库及其bundle 标记使用类路径资源来评估您的捆绑包。因此,将它们放在源文件夹中是一种方法。
  • OP提到它放在一个名为localization的源文件夹中,我将其解释为包localization,那么localization.message的基本名称应该是正确的。但显然这解决了它。使用的术语似乎有些混淆/误读。
  • 不,他说into source folder named "localization".
猜你喜欢
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
  • 2016-09-26
  • 2011-03-01
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多