java - 国际化 - 列出和添加语言

标签 java resources internationalization resourcebundle

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

问候

最佳答案

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

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

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

关于java - 国际化 - 列出和添加语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10838101/

相关文章:

java - 大堆上最坏情况垃圾收集持续时间大约是多少

java - fragment 上的 Mapbox 膨胀 View

java - 我应该为每个 Activity 实例化一个新的 Facebook 变量,还是使用静态 Facebook 变量

WPF 资源的代码隐藏?

methods - Openrasta 的 Get 方法在资源处理程序中的优先级问题

internationalization - 使用 diazo 呈现的页面模板不加载国际化字符串

java - 如何在 Selenium 中没有物理键盘的情况下按键盘键

android - 所有 Android 资源文件夹的完整列表?

python - Django {% trans %} 模板标签给出 DjangoUnicodeDecodeError

javascript - 将 message.properties 暴露给 javascript?