首先是编辑国际化信息
文件命名为:XXX_xx_XX.properties
黄色部分是固定的国际化语言缩写
部分国际化语言缩写如下:
简体中文(中国)
zh-cn
繁体中文(台湾地区)
zh-tw
繁体中文(香港)
zh-hk
英语(香港)
en-hk
英语(美国)
en-us
英语(英国)
en-gb
英语(全球)
en-ww
英语(加拿大)
en-ca
英语(澳大利亚)
en-au
英语(爱尔兰)
en-ie
英语(芬兰)
en-fi
芬兰语(芬兰)
fi-fi
英语(丹麦)
en-dk
丹麦语(丹麦)
da-dk
英语(以色列)
en-il
希伯来语(以色列)
he-il
英语(南非)
en-za
英语(印度)
en-in
英语(挪威)
en-no
英语(新加坡)
en-sg
英语(新西兰)
en-nz
英语(印度尼西亚)
en-id
英语(菲律宾)
en-ph
英语(泰国)
en-th
英语(马来西亚)
en-my
英语(阿拉伯)
en-xa
韩文(韩国)
ko-kr
日语(日本)
ja-jp
荷兰语(荷兰)
nl-nl
荷兰语(比利时)
nl-be
葡萄牙语(葡萄牙)
pt-pt
葡萄牙语(巴西)
pt-br
法语(法国)
fr-fr
法语(卢森堡)
fr-lu
法语(瑞士)
fr-ch
法语(比利时)
fr-be
法语(加拿大)
fr-ca
西班牙语(拉丁美洲)
es-la
西班牙语(西班牙)
es-es
西班牙语(阿根廷)
es-ar
西班牙语(美国)
es-us
西班牙语(墨西哥)
es-mx
西班牙语(哥伦比亚)
es-co
西班牙语(波多黎各)
es-pr
德语(德国)
de-de
德语(奥地利)
de-at
德语(瑞士)
de-ch
俄语(俄罗斯)
ru-ru
意大利语(意大利)
it-it
希腊语(希腊)
el-gr
挪威语(挪威)
no-no
匈牙利语(匈牙利)
hu-hu
土耳其语(土耳其)
tr-tr
捷克语(捷克共和国)
cs-cz
斯洛文尼亚语
sl-sl
波兰语(波兰)
pl-pl
瑞典语(瑞典)
sv-se
西班牙语(智利)
es-cl
msg_zh_CN.properties:
msg = \u8BE5\u5B66\u751F\u7684\u59D3\u540D {0} \u548C\u5E74\u9F84 {1}
msg_zh_TW.properties:
msg = \u8A72\u5B78\u751F\u7684\u59D3\u540D {0} \u548C\u5E74\u9F61 {1}
注:
- 当你输入中文的时候,会自动转换为对应的字节码
- properties 文件内容以键值对的形式存在
在配置中引入
<beanid="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<propertyname="basename"value="msg"></property>
</bean>
如果要列举多个:
<beanid="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<propertyname="basenames">
<list>
<value>msg</value>
...
</list>
</property>
</bean>
注:
- 其他部分是固定的,只是 value 是发生变化
- value 值对应上面命名中的红色部分,例如:msg_zh_CN.properties;如果要访问这个文件,则 value 值为 msg;
使用例子:
(是将需要的数据以数组的形式组合,下面代码一看就知道是什么意思了,也不用多加说明了)
Object[] obj = new Object[]{student.getName(), student.getAge()};
//System.out.println("该学生的姓名:" + student.getName() +" 年龄:" + student.getAge());
System.out.println(context.getMessage("msg", obj, Locale.CHINA));
System.out.println(context.getMessage("msg", obj, Locale.TAIWAN));
注:properties 中的 {0}、{1} ... 对应数组中的索引的值
就这么简单
渣渣就得在 Bug 中挣扎!
一分耕耘一分收获