【问题标题】:How to handle multiple languages in Java apps?如何在 Java 应用程序中处理多种语言?
【发布时间】:2009-08-13 04:47:09
【问题描述】:

我正在编写一个使用 JSP 和 Java 的程序。如何使用属性文件来支持多种语言?

顺便说一句,总有一些东西,比如\u4345
这是什么?他们是怎么来的?

【问题讨论】:

  • 你使用什么样的框架?大多数框架,如 struts、tapestry 等都支持 i18n,所以你只需要检查它们。

标签: java internationalization


【解决方案1】:

对于多种语言,请查看ResourceBundle 类。

关于\u4345,这是Java 的黑暗和非常烦人的遗留角落之一。属性文件需要是 ASCII 格式,因此所有非 ASCII 字符都需要编码为 \uxxxx(它们的 Unicode 值)。您可以通过native2ascii command line tool 转换文件以使用此编码。 如果您使用的是 IDE 或构建工具,则应该有一个自动调用它的选项。

如果属性文件是你自己完全控制的东西,你可以从 Java6 开始,也可以直接在属性文件中使用 UTF-8(或任何其他字符集),并在加载时使用specify that encoding

// new in Java6
props.load(new InputStreamReader(new FileInputStream(file), 'UTF-8'));

同样,这仅在您自己加载属性时才有效,如果其他人这样做则无效,例如 ResourceBundle(用于国际化)。

【讨论】:

【解决方案2】:

http://java.sun.com/docs/books/tutorial/i18n/index.html 上有完整的教程

这指定并解释了您需要了解的任何内容。

【讨论】:

    【解决方案3】:

    Peter 已经提到了 i18n 上的 Java tutorial。如果您正在构建 JSP,您可能希望查看 JSTL,它基本上允许您通过 JSP 标签使用 ResourceBundle 的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多