国际化 - 列出和添加语言

时间:2012-05-31 17:07:57

标签: java resources internationalization resourcebundle

我正在用Java编写应用程序。该应用程序可以使用ResourceBundle进行国际化。我想允许用户选择他想要的应用程序语言。还有一个问题:如何列出该计划的可用语言?我不想使用Locale.getAvailableLocales(),因为我不知道应用程序是否有所选语言的.properties文件。还有第二个问题:我可以添加在.jar文件之外添加其他语言文件的功能吗?最后一个问题:有没有更好的国际化解决方案?

此致

1 个答案:

答案 0 :(得分:2)

您可以在应用程序的某个常量中存储受支持的语言环境的固定列表。如果你需要使这个动态,我看到两个解决方案:

  • 使用列出支持的语言环境的属性文件,并在启动时从此属性文件加载它们。
  • 遍历可用的语言环境(或语言),尝试加载相应的包属性文件(使用Class.getResourceAsStream()),并考虑如果获得InputStream则支持语言环境,如果获得null则不支持

除了jar之外,您可以通过在类路径中放置一些目录来让用户添加一个包。删除此目录中的属性文件(尊重包层次结构),etvoilà。