I18N 国际化 简介

2016-06-17|来源:

软件的国际化:

软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的、符合来访者阅读习惯的页面或数据。
国际化(internationalization)又称为 i18n(读法为i 18 n,据说是因为internationalization(国际化)这个单词从i到n之间有18个英文字母,i18n的名字由此而来)


软件实现国际化,需具备以下两个特征:

  1、对于程序中固定使用的文本元素,例如菜单栏、导航条等中使用的文本元素、或错误提示信息,状态信息等,需要根据来访者的地区和国家,选择不同语言的文本为之服务
  2、对于程序动态产生的数据,例如(日期,货币等),软件应能根据当前所在的国家或地区的文化习惯进行显示


程序的固定文本、日期和货币符合来访者的阅读习惯,所以要使用到国际化(Internationalization)。

I18N、L10N、M17N的异同
I18N(Internationalization):支持多种语言,但是同一时间只能是英文和一种选定的语言,例如英文+中文、英文+德文、英文+韩文等等;

L10N(localization):支持2种语言,英文和另外一种语言(例如中文);

M17N(multilingualization):可以在同一时间支持多种语言,例如你可以在一个页面里看到中文、英文、德文和韩文。


国际化主要包括:
   固定文本的国际化
   期和时间的格式化
   数字:货币的格式化
   占位符国际化
   使用JSTL 中的 fmt 标签实现国际化


查看当前操作系统中可用的语言,通过地区和语言实现国际化配置文件,如
msg_zh_CN.properties
@Test
public void testLocale(){
    Locale[] locales=Locale.getAvailableLocales();
    for(Locale locale : locales){
        System.out.println(locale.getDisplayCountry()+":"+locale.getLanguage()+":"+locale.getCountry());
    }
}


::
阿拉伯联合酋长国:ar:AE
约旦:ar:JO
叙利亚:ar:SY
克罗地亚:hr:HR
比利时:fr:BE
巴拿马:es:PA
马耳他:mt:MT
委内瑞拉:es:VE
:bg:
台湾地区:zh:TW
:it:
:ko:
:uk:
:lv:
丹麦:da:DK
波多黎哥:es:PR
越南:vi:VN
美国:en:US
黑山:sr:ME
瑞典:sv:SE
玻利维亚:es:BO
新加坡:en:SG
巴林:ar:BH
:pt:
沙特阿拉伯:ar:SA
:sk:
也门:ar:YE
印度:hi:IN
:ga:
马耳他:en:MT
芬兰:fi:FI
:et:
:sv:
:cs:
波斯尼亚和黑山共和国:sr:BA
:el:
乌克兰:uk:UA
:hu:
瑞士:fr:CH
:in:
阿根廷:es:AR
埃及:ar:EG
日本:ja:JP
萨尔瓦多:es:SV
巴西:pt:BR
:be:
冰岛:is:IS
捷克共和国:cs:CZ
:es:
波兰:pl:PL
:tr:
西班牙:ca:ES
塞尔维亚及黑山:sr:CS
马来西亚:ms:MY
:hr:
:lt:
西班牙:es:ES
哥伦比亚:es:CO
保加利亚:bg:BG
:sq:
:fr:
:ja:
波斯尼亚和黑山共和国:sr:BA
:is:
巴拉圭:es:PY
:de:
厄瓜多尔:es:EC
美国:es:US
苏丹:ar:SD
:en:
罗马尼亚:ro:RO
菲律宾:en:PH
:ca:
突尼斯:ar:TN
黑山:sr:ME
危地马拉:es:GT
:sl:
韩国:ko:KR
塞浦路斯:el:CY
墨西哥:es:MX
俄罗斯:ru:RU
洪都拉斯:es:HN
香港:zh:HK
挪威:no:NO
匈牙利:hu:HU
泰国:th:TH
伊拉克:ar:IQ
智利:es:CL
:fi:
摩洛哥:ar:MA
爱尔兰:ga:IE
:mk:
土耳其:tr:TR
爱沙尼亚:et:EE
卡塔尔:ar:QA
:sr:
葡萄牙:pt:PT
卢森堡:fr:LU
阿曼:ar:OM
:th:
阿尔巴尼亚:sq:AL
多米尼加共和国:es:DO
古巴:es:CU
:ar:
:ru:
新西兰:en:NZ
塞尔维亚:sr:RS
瑞士:de:CH
乌拉圭:es:UY
:ms:
希腊:el:GR
以色列:iw:IL
南非:en:ZA
泰国:th:TH
:hi:
法国:fr:FR
奥地利:de:AT
:nl:
挪威:no:NO
澳大利亚:en:AU
:vi:
荷兰:nl:NL
加拿大:fr:CA
拉脱维亚:lv:LV
卢森堡:de:LU
哥斯达黎加:es:CR
科威特:ar:KW
:sr:
利比亚:ar:LY
:mt:
瑞士:it:CH
:da:
德国:de:DE
阿尔及利亚:ar:DZ
斯洛伐克:sk:SK
立陶宛:lt:LT
意大利:it:IT
爱尔兰:en:IE
新加坡:zh:SG
:ro:
加拿大:en:CA
比利时:nl:BE
:no:
:pl:
中国:zh:CN
日本:ja:JP
希腊:de:GR
塞尔维亚:sr:RS
:iw:
印度:en:IN
黎巴嫩:ar:LB
尼加拉瓜:es:NI
:zh:
马其顿王国:mk:MK
白俄罗斯:be:BY
斯洛文尼亚:sl:SI
秘鲁:es:PE
印度尼西亚:in:ID
英国:en:GB


相关问答

更多

spring mvc 怎么实现国际化!就是中英繁的转换!是用jq来写方便还是用配置文件!有没有具体

在servlet.xml里配置下不就好了 <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="classpath:i18n/messages" /> </bean>

spring mvc 怎么实现国际化!就是中英繁的转换!是用jq来写方便还是用配置文件!有没有具体

在servlet.xml里配置下不就好了 <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="classpath:i18n/messages" /> </bean>

spring 国际化怎么获取当前所有支持的国际化

1.在spring配置文件中配置资源文件properties的位置及公共名,下列配置指定的properties文件处于src目录下的resources文件夹中,名字为message_info_*.properties。 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <propertyname="basenames"> <list> <value>re ...

spring mvc freemaker 国际化 可以用在css上面吗

ava的资源国际化 ResourceBundle类 Servlet和Spring访问资源文件 Servlet和多语言 Spring MVC+Freemarker+jQuery/js的多语言实现 jFreeReport的多语言国际化 jqGrid的多语言/国际化/i18n实现 jQuery.UI.DatePicker的

spring 国际化 js怎么设置

一、基于浏览器语言的国际化配置   使用Spring的MVC,并且配置中有配置Resource文件   Xml代码 以下是引用片段:   其中,message-info是你的properties文件的通用名。如:我的配置文件叫 message-info.properties,message-info_zh_CN.properties等等,只要有了这个配置,然后配置JSP 渲染器为JSTL支持的,那么在你的JSP文件中使用fmt标记就可以实现客户浏览器语言国际化了。   如: 以下是引用片段:    ...

专题教程

JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
快速入门
Gson教程
快速了解 jdk8 新特征

相关文章

更多

最近更新

更多