我正在用 Java 开发一个应用程序。此应用程序可以使用 ResourceBundle
进行国际化。我想让用户选择他想要的应用程序语言。还有一个问题:如何列出程序可用的语言?我不想使用 Locale.getAvailableLocales()
,因为我不知道应用程序是否有所选语言的 .properties 文件。还有第二个问题:我可以添加在 .jar 文件之外添加其他语言文件的功能吗?最后一个问题:有没有更好的国际化解决方案?
问候
最佳答案
您可以只在您的应用程序的某个常量中存储一个固定的受支持语言环境列表。如果您需要使其动态化,我看到两个解决方案:
- 使用列出支持的语言环境的属性文件,并在启动时从该属性文件加载它们。
- 遍历可用的语言环境(或语言),尝试加载相应的包属性文件(使用
Class.getResourceAsStream()
),并在获得 InputStream 时考虑支持该语言环境,如果你得到 null,则不支持。
除了您的 jar 之外,您还可以通过在类路径中放置一些目录来让用户添加一个包。将属性文件放到这个目录中(根据包层次结构),等等。
关于java - 国际化 - 列出和添加语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10838101/