【问题标题】:Good localization framework for Java [closed]良好的 Java 本地化框架 [关闭]
【发布时间】:2026-02-22 07:30:01
【问题描述】:

我正在寻找最好的 Java 本地化框架。默认的本地化框架对我来说是不够的。

理想情况下,我正在寻找具有以下功能的本地化框架:

  • 样式支持 - 就像 Apache Wicket 本地化框架一样
  • 格式支持 - 日期和数字格式支持
  • 复数支持 - 就像 GWT 本地化框架一样
  • 消息层次结构 - 在消息级别获得的层次结构中的本地化查找。通常是查找路径 name[style][locale] -> name[locale] -> name[style] -> name,但它是在文件级别获得的 - 如果某些消息不在文件中,则不会被翻译。我希望在消息级别获得本地化。

如果你知道一些好的本地化框架,请给我回音。如果您认为我的要求有问题,也请告诉我。

【问题讨论】:

    标签: java frameworks localization internationalization


    【解决方案1】:

    您在寻找 l10n 框架还是具有 l10n 功能的 web 框架?

    如果您的情况是第二个,除了复数支持,Apache Tapestry 这是一个很好的选择。 :)

    http://tapestry.apache.org

    【讨论】:

    • 顺便说一句,关于复数功能,也许 Tapestry 有,我可能只是没见过。
    • 我正在寻找可以在任何应用程序中使用它的独立框架。
    【解决方案2】:

    看看 ICU4J。 尤其是像 MessageFormat、PluralFormat、SelectFormat 来处理消息,并且还可以处理日期/时间/数字/货币格式。或者直接使用各种格式化程序(DateFormat、NumberFormat等) Java 中的 ChoiceFormat 也值得一看。

    但总的来说,资源包机制加上 MessageFormat 几乎总是足够的(看看 ICU4J 中的 UResourceBundle,比 Java ResourceBundle 更强大)。

    【讨论】: