在我的Java应用程序中,我创建了一个如下所示的Locale
:
new Locale("es") // for spanish
new Locale (Locale.ITALIAN)
new Locale ("gu") // for Gujarati
现在,将通过执行以下操作加载正确的ResourceBundle- textfile:
ResourceBundle messages = ResourceBundle.getBundle("MessagesBundle", currentLocale, loader);
资源文本文件位于单独的文件夹中,其名称为:
MessagesBundle_es.txt, MessagesBundle_it.txt, MessagesBundle_ru.txt, etc...
它们都加载得很好(俄语(-->西里尔文)、土耳其语、捷克语、德语、西班牙语、意大利语等)
但是中文有一个问题。在繁体中文和简体中文的代码中,我创建了如下版本的Locale
对象:
locale = Locale.SIMPLIFIED_CHINESE; //or
locale = Locale.TRADITIONAL_CHINESE; //or
locale= new Locale ("zh","cn") //or
locale= new Locale ("zh","tw") //or
locale= new Locale ("zh","CN") //or
locale= new Locale ("zh","TW") //or
如果调用MessagesBundle文件:
MessagesBundle_zh.txt
将加载该捆绑包。但是如果这个捆绑包被调用
MessagesBundle_zh_CN or MessagesBundle_zh_TW //other postfixes: _zh-TX, _zh_Hans, etc..
要区分简体中文和繁体中文,请忽略ResourceBundle和默认捆绑包:
MessagesBundle.txt
(本例中为English)已加载
我尝试了MessagesBundle文件的几个版本的后缀,以及许多版本来创建区域设置,但是,遗憾的是,都没有成功。下一步我可以尝试什么。我读过很多类似的问题,但没有一个对我有效。
发布于 2021-11-28 23:29:13
你的伙伴似乎不支持像"MessagesBundle_zh_CN.txt“这样的名字。实际上,您可以只使用zh.txt,因为zh-cn/zh-tw可以被两端读取,不会有太大困难
https://stackoverflow.com/questions/51794257
复制相似问题