3

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

问候

4

1 回答 1

2

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

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

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

于 2012-05-31T17:50:45.483 回答