在我正在工作的一个项目中,我希望根据当前语言环境加载不同的资源。对于字符串,这很容易实现:只需通过添加一些文件创建资源包,例如
但是,如何加载非简单字符串的本地化资源呢?
具体而言,我想根据语言环境加载图像和 HTML 文件。获取到该资源的正确 URL 就足够了。例如,我想要有一个
简单地使用
我想到的一个解决方案是,在我的
请注意,这不是一个 Android 应用程序,只是一个标准的 Java 8 桌面应用程序。
Localization.properties
和 Localization_de.properties
,然后通过 ResourceBundle.getBundle("domain.project.Localization")
加载它即可。但是,如何加载非简单字符串的本地化资源呢?
具体而言,我想根据语言环境加载图像和 HTML 文件。获取到该资源的正确 URL 就足够了。例如,我想要有一个
Welcome.html
和 Welcome_de.html
文件,在当前语言环境为德语时加载后者。简单地使用
getClass().getResource("Welcome.html")
并不能解决问题,它总是返回那个文件,并不会处理语言环境。我还没有找到方便的方法来解决这个问题,除了根据当前语言环境手动更改文件名。我想到的一个解决方案是,在我的
Localization.properties
文件中添加一个键,其中包含正确本地化 HTML 文件的名称。但这感觉有点糊弄人,不太对。请注意,这不是一个 Android 应用程序,只是一个标准的 Java 8 桌面应用程序。