国际化日常产出

时间:2012-03-16 13:32:20

标签: java jsp internationalization

我需要在JSP中输出一周中的几天。显然,我可以这样做:

<fmt:message key="day.monday" />
<fmt:message key="day.tuesday" />
...

并在特定于语言环境的消息资源文件中包含星期几。但我注意到有一个java.text.DateSymbols类,它包含实用程序方法,用于将星期几字符串作为数组获取,该数组具有一个带有语言环境字符串的构造函数。我尝试使用<jsp:useBean>使用此功能,但我看不到设置语言环境的简单方法 - 使用<fmt:setLocale>无效。

我是以错误的方式来做这件事的吗?这似乎是一件相当普遍的事情,我无法看到这种内置方式。

1 个答案:

答案 0 :(得分:2)

首先,请注意,根据具体情况,星期几可以写成nominativedativegenitive,...(写在其他案件)。因此,直接使用DateFormatSymbols并不是最好的想法,因为它可能导致国际化缺陷 将这些名称导出到资源并让翻译人员决定哪种语言最适合他们的语言可能是个好主意。

注意:不要回收这些翻译,因为语法可能会在一个地方出现,而在其他地方完全不正确,这取决于上下文。

如果你想要使用一些依赖于Locale的类,你需要创建HttpSession并将Locale对象存储到它。然后,您可以在后端检索它并返回有效的与语言环境相关的信息 但这并不容易。好吧,人们有很多原因可以创建Spring Framework,Struts,JSF等等。事实上,JSP本身很难用。