【发布时间】:2014-03-25 09:48:25
【问题描述】:
我正在尝试用 Java 本地化程序。
package javaapplication8;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
public class LanguageController {
private final Map supportedLanguages;
private final ResourceBundle translation;
public LanguageController(String language){
supportedLanguages = new HashMap();
supportedLanguages.put("English",Locale.ENGLISH);
supportedLanguages.put("Italiano",Locale.ITALIAN);
//here I get error
translation = ResourceBundle.getBundle("language", supportedLanguages.get(language));
}
public String getWord(String keyword)
{
return translation.getString(keyword);
}
}
在课堂上,我尝试用两种不同的语言(意大利语和英语)打印一个单词。我有两个属性文件
- Language.propeties
- Language_it.propeties
在课堂上:
LanguageController langController_it = new LanguageController("Italiano");
System.out.println(langController_it.getWord("Option"));
LanguageController langController_en = new LanguageController("English");
System.out.println(langController_en.getWord("Option"));
编辑:第一个问题解决方案java.util.MissingResourceException: Can't find bundle for base name 'property_file name', locale en_US
那行supportedLanguages.get(language)仍然有错误
【问题讨论】:
-
你的问题是什么?你的程序看起来像 Localization not I18n
-
@anish 请问,有什么区别?
-
您正在使用 Locale 概念为您的产品添加语言支持,请参阅 WIki,en.wikipedia.org/wiki/Language_localization,对于 I18n,您必须了解产品中的 UTF 支持
标签: java internationalization locale