通常我使用windows编程,但最近我改为linux,Ubuntu。如图所示,Netbeans找不到资源包,而我将它们放在/ project / build / class文件夹和/ project / src文件夹中。
在Windows上这可行,但在Ubuntu上没有。
我的代码:
public Taal getTaal()
{
return taal;
}
-
public Taal (String l)
{
if (l.equals("nl")) this.locale = new Locale("Nederlands");
if (l.equals("en")) this.locale = new Locale("English");
if (l.equals("de")) this.``locale = new Locale("Deutsch");
resourceBundle = ResourceBundle.getBundle("resource",locale);
}
public String getText(String key)
{
return resourceBundle.getString(key);
}
我称之为:
while (!keuze.equals("nl") && !keuze.equals("de") && !keuze.equals("en"))
{
System.out.println("Voor Nederlands: typ nl");
System.out.println("Für Deutsch, erwählt de");
System.out.println("For English: choose en");
keuze = s.nextLine();
}
dc.setTaal(keuze);
while (juisteLetter == false)
{
while(nummer > 2 || nummer < 1)
{
try
{
System.out.println(dc.getTaal().getText("aanmeldenOfRegistreren"));
nummer = s.nextInt();
我将resourceBundles文件保存为:resource_English.properties 并且文件中的句子例如是: aanmeldenOfRegistreren =按1登录,按2登记
因此,如果我在控制台中输入“en”,我会收到此错误:
线程“main”中的异常java.util.MissingResourceException:无法找到基本名称资源的包,locale english
我不明白为什么netbeans找不到resourceBundles。
答案 0 :(得分:0)
Locale构造函数将语言转换为小写,并记录为接受最多8个字符的值。语言参数应该是标准的2字母ISO代码,而不是一些任意字符串。使用标准代码,一切都应该没问题。
顺便说一下,你要求用户输入这些标准代码,这样你就可以通过将它们转换为完整的大写语言名称来实现自己的拍摄。