国际化 - 列出和添加语言

3
我正在使用Java制作一个应用程序。该应用程序可以通过“ResourceBundle”进行国际化。我想让用户选择他想要的语言来运行该应用程序。现在有一个问题:如何列出可用于该程序的语言?我不想使用“Locale.getAvailableLocales()”,因为我不知道应用程序是否有所选语言的“.properties”文件。第二个问题是:我能否添加外部“.jar”文件之外的其他语言文件?最后一个问题:是否有更好的国际化解决方案?
问候

我想允许用户选择他想要的语言,这是由操作系统免费提供的。 - Andrew Thompson
不是这个意思,我想让用户选择他想要的应用程序语言。 - m4tx
只是一个简单的问题:为什么要强制用户选择他/她的语言而不是检测Locale呢?我真的不知道为什么有这么多人犯这个错误。 - Paweł Dyda
不,我不想强制用户选择他/她的语言。我想检测区域设置,但如果用户想选择其他区域设置,我希望允许他/她这样做。 - m4tx
1个回答

2
您可以将支持的语言列表存储在应用程序的某个常量中。如果需要动态更改,我看到两种解决方案:
  • 使用列出支持语言的属性文件,并在启动时从该属性文件加载它们。
  • 遍历可用的语言或区域设置,尝试加载相应的资源包属性文件(使用Class.getResourceAsStream()),如果获得InputStream,则认为该语言受支持,否则不受支持。
您可以让用户通过将一些目录放入类路径中来添加资源包,除了您的jar文件。将属性文件放入此目录中(请遵循包层次结构),然后就完成了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接