我一直在阅读有关此问题的其他问题和答案,但我不明白资源边界是如何完全工作的。
我认为这与 Joomla 使用多语言选项的方式类似。
基本上,您有要阅读的不同语言的不同消息的文件。
所以我在 src/Lang 文件夹中创建了 System.properties
我在里面创造
STARTING_MYAPP=Starting my app
我在这里可能是错的,但无论如何我无法读取默认文件。现在我脑死亡了,我读不懂任何东西
我就是这样做的
Locale locale = Locale.getDefault();
String basename ="System";
ResourceBundle resourceBundle = ResourceBundle.getBundle(basename, locale);
System.out.println(resourceBundle.getString("STARTING_MYAPP"));
//UserPreferences UserPrefs = new UserPreferences();
当我调用 getBundle() 时,它有两个输入,基本名称和语言环境,对吧。我在使用基本名称时遇到问题。如果我的文件位于 src/lang/System.properties 内,我应该如何查找它。 basename =“系统”,basename =“Lang / System”,basename =“System.properties”,basename =“myProject.label”。
我尝试了所有这些和更多组合,但不起作用,我总是得到类似的东西
线程“main”中出现异常 java.util.MissingResourceException:找不到基本名称系统的包,区域设置 en_US
关于区域设置,我如何将其保留为默认值,这样我就不必使用 System_en_US.properties 或类似的东西。
基本名称的结构类似于完全限定的类名(因为资源包可以是类),因此如果您的类路径根是src
资源是一个文件src/lang/System.properties
,那么基本名称是lang.System
.
关于语言环境,我如何将其留给
默认,所以我不必使用
System_en_US.properties 或其他东西
像那样。
只需使用getBundle() http://download.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String)仅采用基本名称的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)