2012-05-31 51 views
3

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

问候

+0

*“我想让用户选择他想要的语言”*它由操作系统免费提供。 –

+0

不......我的意思是:“我想让用户选择他想要的应用程序的语言”:) – m4tx

+0

只是一个简单的问题:为什么你要强制用户选择他/她的语言而不是检测Locale ?我真的不知道为什么这么多人犯这个错误。 –

回答

2

你可以只保存在你的应用程序的一些常量支持的区域设置固定列表。如果您需要使此动态,我看到两个解决方案:

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

除了jar之外,你可以通过在classpath中加入一些目录来添加一个bundle。将属性文件放在这个目录中(尊重包层次结构),等等。