java多语⾔_JAVA实现多语⾔
做web服务器,为了实现全球业务,服务器端就要实现多语⾔。针对不同的国家、语⾔。返回不同语⾔的描述。
第⼀:JAVA对多语⾔是⽀持的
JAVA对语⾔的描述使⽤java.util.Locale,它主要包含语⾔、国家信息。
例如⼏个常量,
中国的简体中⽂:
Locale SIMPLIFIED_CHINESE = createConstant(“zh”, “CN”);
台湾的繁体
Locale TRADITIONAL_CHINESE = createConstant(“zh”, “TW”);
也可以只包含语⾔信息:
Locale CHINESE = createConstant(“zh”, “”);
以上⼏种语⾔,⽤字符串写就是zh_CN, zh_TW, zh(也有⽤中划线的)。
第⼆:语⾔资源⽂件
你可以在i18n⽬录(或者是com/zhaoyanblog/i18n, com/zhaoyanblog/i18n/resource, 这个是类路径)下为每⼀种语⾔创建⼀个资源⽂件。命名格式如下:
lang_zh_CN.properties
lang_zh_TW.properties
lang_zh.properties
再创建⼀个默认的语⾔对应的资源⽂件:
lang.properties
注:这⾥的⽂件名lang和路径都可以随便起。为什么路径要包含i18n,这个就是个习惯,随便你。i18n的意思就是国际化(internationalization, i和n之间有18个字符)。
资源⽂件⾥配置不同的配置
lang_zh_CN.properties⾥:java学习资源
TITLE=我的苹果
lang_en.properties⾥:
TITLE=my apple
配置⽂件为了防⽌乱码,properties⽂件⾥3个字节以上表⽰的字符(例如中⽂)⼀般使⽤unicode配置。
TITLE=\u6211\u7684\u82f9\u679c
第三:读取配置⽂件的内容
JAVA加载语⾔资源⽂件使⽤java.util.ResourceBundle类。
ResourceBundle lang = Bundle(“com.source.lang”, Locale.SIMPLIFIED_CHINESE);
第四:HTTP协议的多语⾔⽀持。
HTTP协议规定了⼀个header:Accept-Language⽀持多语⾔。多少客户端期望返回的语⾔类型。
格式如下:
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
q=0.8代表前⾯语⾔的⽐重。如果有中⽂就返回中⽂,没有中⽂就返回美式英⽂。再没有就返回中⽂。第五:java web应⽤,获取客户端需要的语⾔。
servlet的HttpServletRequest参数对象⾥可以得到对Accept-Language的解析结果。
protected void service(HttpServletRequest req, HttpServletResponse resp)
{
Locale locale = Locale();
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论