Android自适应国际化语言
转载请标明出处:http://write.blog.****.net/mdeditor#!postId=52606459 文章出自:薛瑄的博客
你也可以查看我的其他同类文章,也会让你有一定的收货
前言
internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n。
一般用语言_地区的形式表示一种语言,如 zh_CN, zh_TW.
各国语言缩写 http://www.loc.gov/standards/iso639-2/php/code_list.php
国家和地区简写 https://www.iso.org/obp/ui/#search
官方文档的这个地址已经失效 http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
国家_地区语言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html
一键实现语言国际化
在使用这个插件的使用遇到任何问题,可以在github上,或者本博客进行提问。我会第一时间帮你解决
我们要装的插件是:AndroidLocalizationer,从github上down后,把下好的zip包解压,里面有个同名的压缩包就是我们的插件包,集成到studio里面就好了,看图:
这样我们就把插件集成好了。然后找到string.xml——>右键——>
这时我们就可以勾选自己要实现的国家的语言了。(这几十种语言应该涵盖了所有的吧,猜的)
然后我们就来看下成果
看见这几面旗子是不是感觉很开心啊,然后我们来看下strings.xml的内容,果然不负我望:
strings.xml
<resources> <string name="app_name">MyZhihuapp</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> <string name="file_path">multidownload</string> <string name="image_data">imageData</string></resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
再看下values-ja (小日本鬼子的 ) strings.xml
<resources> <string name="app_name">MyZhihuapp</string> <string name="hello_world">ハローワールド!</string> <string name="action_settings">設定</string> <string name="file_path">multidownload</string> <string name="image_data">imagedata を扱う</string></resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
接下来看下values-ko(韩国绊子的)strings.xml
<string name="app_name">MyZhihuapp</string><string name="hello_world">전 세계 여러분 안녕하세요!</string><string name="action_settings">설정</string><string name="file_path">multidownload</string><string name="image_data">imageData</string>
- 1
- 2
- 3
- 4
- 5
个人感觉唯一不足的就是:我们改了values/string.xml里面的内容其他语言国际化语言不会自动重新编译(或clean重新编译),要是这样都实现了就更完美了
国际化
为支持多国语言,在res/中创建一个额外的values目录以连字符和ISO国家代码结尾命名,比如values-es/是为语言代码为”es”的资源文件的目录。Android会在运行时根据设备的区域设置,加载相应的资源。详见Providing Alternative Resources
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符。同理,localization(本地化 ),简称L10n。
操作方法:
为了支持国际化语言,我们只要在res/目录下在新建文件夹为:values-语言代号-地区代号。如values-zh-rCN表示简体中文,values-zh-rTW表示繁体等。
注:配置选项包括语言代号、地区代号。表示中文和中国的配置选项是 zh-rCN(zh表示中文,CN表示中国)。 表示英文和美国的配置选项是en-rUS(en表示英文,US表示美国)。前面的r是必须的。
有的博客,在介绍国际化时,并没有给出地区代码,例如:values-jp表示日语。那地区代码到底有什么作用呢?难道是根据不同的地区自动切换语言??知道的同学,指点我一下
举例:支持中文简体的国际化
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
不做任何修改,直接在手机上运行程序,默认的效果如下:
声明:我的手机默认的语言是设置为中文的:
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置。所以程序没有别的选择,只能显示res/values/strings.xml中的信息。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
注:如果想再加一个英语的国际化,新建的文件夹为values-en-rUS,并使用相应的strings.xml文件。
修改res/values-zh-rCN/strings.xml的代码,如下:
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">" 安卓国际化"</string> <string name="hello_world">你好,世界</string> <string name="action_settings">设置</string></resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
此时运行程序,效果如下:
常见问题:
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/login_button"/>
- 1
- 2
- 3
- 4
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string></resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">" 安卓国际化"</string> <string name="hello_world">你好,世界</string> <string name="action_settings">设置</string> <string name="login_button">登陆按钮</string></resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
效果:
activity_main.xml的视图如下:
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
如果手机的语言设置为中文,效果如下:(能正常显示)
图片资源的国际化:
另外,我们不仅可以做字符资源的国际化,我们同样可以做图片资源的国际化。操作如下:
(1)在res/目录下新建一个文件夹代表中文简体的图片资源:drawable-zh-rCN。同理,在res/目录下新建一个文件夹代表日本的图片资源:drawable-jp。然后在这两个文件夹中放入不同的图片,但是要保证图片的文件名是一样的。
(2)于是,当我们在布局文件中通过R.drawable.ResId来引用图片的时候,就可以保证在不同的语言环境下,加载不同国家的图片。
国家_地区的语言缩写代码:
中文(中国):values-zh-rCN
中文(台湾):values-zh-rTW
中文(香港):values-zh-rHK
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE
英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA
阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亚文: values-bg-rBG
加泰罗尼亚文:values-ca-rES
捷克文:values-cs-rCZ
丹麦文:values-da-rDK
德文(奥地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德国):values-de-rDE
德文(列支敦士登):values-de-rLI
希腊文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美国):values-es-rUS
芬兰文(芬兰):values-fi-rFI
法文(比利时):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法国):values-fr-rFR
希伯来文:values-iw-rIL
印地文:values-hi-rIN
克罗里亚文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亚文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韩文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脱维亚文:values-lv-rLV
挪威博克马尔文:values-nb-rNO
荷兰文(比利时):values-nl-BE
荷兰文(荷兰):values-nl-rNL
波兰文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
罗马尼亚文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亚文:values-sl-rSI
塞尔维亚文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛语:values-tl-rPH
土耳其文:values–r-rTR
乌克兰文:values-uk-rUA
越南文:values-vi-rVN
通过程序获取JAVA所有支持的语言和国家的
程序代码如下:
import java.util.Locale;public class Test { public static void main(String[] args) { //调用Locale类的getAvailableLocales方法获取,该方法返回一个数组,其中包含JAVA支持的语言和国家 Locale[] localeList = Locale.getAvailableLocales(); //依次获取所支持的国家和语言 for (int i = 0; i < localeList.length; i++) { System.out.println(localeList[i].getDisplayCountry() + "=" + localeList[i].getCountry() + "" + localeList[i].getDisplayLanguage() + "=" + localeList[i].getLanguage()); } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
输出结果如下(有些国家可能会使用多种语言):
马来西亚=MY马来文=ms卡塔尔=QA阿拉伯文=ar冰岛=IS冰岛文=is芬兰=FI芬兰文=fi=波兰文=pl马耳他=MT英文=en瑞士=CH意大利文=it比利时=BE荷兰文=nl沙特阿拉伯=SA阿拉伯文=ar伊拉克=IQ阿拉伯文=ar波多黎哥=PR西班牙文=es智利=CL西班牙文=es=芬兰文=fi奥地利=AT德文=de=丹麦文=da英国=GB英文=en巴拿马=PA西班牙文=es=塞尔维亚文=sr也门=YE阿拉伯文=ar马其顿王国=MK马其顿文=mk=马其顿文=mk加拿大=CA英文=en越南=VN越南文=vi荷兰=NL荷兰文=nl美国=US西班牙文=es中国=CN中文=zh洪都拉斯=HN西班牙文=es美国=US英文=en=法文=fr=泰文=th=阿拉伯文=ar摩洛哥=MA阿拉伯文=ar=拉托维亚文(列托)=lv=德文=de印度尼西亚=ID印度尼西亚文=in=克罗地亚文=hr南非=ZA英文=en韩国=KR朝鲜文=ko突尼斯=TN阿拉伯文=ar=印度尼西亚文=in=日文=ja塞尔维亚=RS塞尔维亚文=sr白俄罗斯=BY白俄罗斯文=be台湾地区=TW中文=zh苏丹=SD阿拉伯文=ar=葡萄牙文=pt=冰岛文=is日本=JP日文=ja玻利维亚=BO西班牙文=es阿尔及利亚=DZ阿拉伯文=ar=马来文=ms阿根廷=AR西班牙文=es阿拉伯联合酋长国=AE阿拉伯文=ar加拿大=CA法文=fr=斯洛文尼亚文=sl=西班牙文=es立陶宛=LT立陶宛文=lt黑山=ME塞尔维亚文=sr叙利亚=SY阿拉伯文=ar俄罗斯=RU俄文=ru比利时=BE法文=fr西班牙=ES西班牙文=es=保加利亚文=bg以色列=IL希伯来文=iw=瑞典文=sv=英文=en=希伯来文=iw丹麦=DK丹麦文=da哥斯达黎加=CR西班牙文=es香港=HK中文=zh=中文=zh西班牙=ES加泰罗尼亚文=ca泰国=TH泰文=th乌克兰=UA乌克兰文=uk多米尼加共和国=DO西班牙文=es委内瑞拉=VE西班牙文=es波兰=PL波兰文=pl利比亚=LY阿拉伯文=ar约旦=JO阿拉伯文=ar=意大利文=it=乌克兰文=uk匈牙利=HU匈牙利文=hu=爱尔兰文=ga危地马拉=GT西班牙文=es巴拉圭=PY西班牙文=es保加利亚=BG保加利亚文=bg克罗地亚=HR克罗地亚文=hr波斯尼亚和黑山共和国=BA塞尔维亚文=sr罗马尼亚=RO罗马尼亚文=ro卢森堡=LU法文=fr=挪威文=no=立陶宛文=lt新加坡=SG英文=en厄瓜多尔=EC西班牙文=es波斯尼亚和黑山共和国=BA塞尔维亚文=sr尼加拉瓜=NI西班牙文=es=斯洛伐克文=sk=俄文=ru=马耳他文=mt萨尔瓦多=SV西班牙文=es=荷兰文=nl印度=IN印地文=hi=爱沙尼亚文=et希腊=GR希腊文=el斯洛文尼亚=SI斯洛文尼亚文=sl意大利=IT意大利文=it日本=JP日文=ja卢森堡=LU德文=de瑞士=CH法文=fr马耳他=MT马耳他文=mt巴林=BH阿拉伯文=ar=阿尔巴尼亚文=sq=越南文=vi黑山=ME塞尔维亚文=sr巴西=BR葡萄牙文=pt挪威=NO挪威文=no=希腊文=el瑞士=CH德文=de新加坡=SG中文=zh科威特=KW阿拉伯文=ar埃及=EG阿拉伯文=ar爱尔兰=IE爱尔兰文=ga秘鲁=PE西班牙文=es捷克共和国=CZ捷克文=cs土耳其=TR土耳其文=tr=捷克文=cs乌拉圭=UY西班牙文=es爱尔兰=IE英文=en印度=IN英文=en阿曼=OM阿拉伯文=ar塞尔维亚及黑山=CS塞尔维亚文=sr=加泰罗尼亚文=ca=白俄罗斯文=be=塞尔维亚文=sr=朝鲜文=ko阿尔巴尼亚=AL阿尔巴尼亚文=sq葡萄牙=PT葡萄牙文=pt拉脱维亚=LV拉托维亚文(列托)=lv塞尔维亚=RS塞尔维亚文=sr斯洛伐克=SK斯洛伐克文=sk墨西哥=MX西班牙文=es澳大利亚=AU英文=en挪威=NO挪威文=no新西兰=NZ英文=en瑞典=SE瑞典文=sv=罗马尼亚文=ro黎巴嫩=LB阿拉伯文=ar德国=DE德文=de泰国=TH泰文=th=土耳其文=tr哥伦比亚=CO西班牙文=es菲律宾=PH英文=en爱沙尼亚=EE爱沙尼亚文=et塞浦路斯=CY希腊文=el=匈牙利文=hu法国=FR法文=fr
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
参考:
关注我的公众号,轻松了解和学习更多技术
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.****.net/jiangjunshow
转载请标明出处:http://write.blog.****.net/mdeditor#!postId=52606459 文章出自:薛瑄的博客
你也可以查看我的其他同类文章,也会让你有一定的收货
前言
internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n。
一般用语言_地区的形式表示一种语言,如 zh_CN, zh_TW.
各国语言缩写 http://www.loc.gov/standards/iso639-2/php/code_list.php
国家和地区简写 https://www.iso.org/obp/ui/#search
官方文档的这个地址已经失效 http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
国家_地区语言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html
一键实现语言国际化
在使用这个插件的使用遇到任何问题,可以在github上,或者本博客进行提问。我会第一时间帮你解决
我们要装的插件是:AndroidLocalizationer,从github上down后,把下好的zip包解压,里面有个同名的压缩包就是我们的插件包,集成到studio里面就好了,看图:
这样我们就把插件集成好了。然后找到string.xml——>右键——>
这时我们就可以勾选自己要实现的国家的语言了。(这几十种语言应该涵盖了所有的吧,猜的)
然后我们就来看下成果
看见这几面旗子是不是感觉很开心啊,然后我们来看下strings.xml的内容,果然不负我望:
strings.xml
<resources> <string name="app_name">MyZhihuapp</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> <string name="file_path">multidownload</string> <string name="image_data">imageData</string></resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
再看下values-ja (小日本鬼子的 ) strings.xml
<resources> <string name="app_name">MyZhihuapp</string> <string name="hello_world">ハローワールド!</string> <string name="action_settings">設定</string> <string name="file_path">multidownload</string> <string name="image_data">imagedata を扱う</string></resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
接下来看下values-ko(韩国绊子的)strings.xml
<string name="app_name">MyZhihuapp</string><string name="hello_world">전 세계 여러분 안녕하세요!</string><string name="action_settings">설정</string><string name="file_path">multidownload</string><string name="image_data">imageData</string>
- 1
- 2
- 3
- 4
- 5
个人感觉唯一不足的就是:我们改了values/string.xml里面的内容其他语言国际化语言不会自动重新编译(或clean重新编译),要是这样都实现了就更完美了
国际化
为支持多国语言,在res/中创建一个额外的values目录以连字符和ISO国家代码结尾命名,比如values-es/是为语言代码为”es”的资源文件的目录。Android会在运行时根据设备的区域设置,加载相应的资源。详见Providing Alternative Resources
自适应的知识与编程无关,关键在于配置文件的修改。自适应的内容包括:语言、屏幕、平台。今天就来说一下如何自适应国际化言。
internationalization (国际化)简称:i18n,因为在i和n之间还有18个字符。同理,localization(本地化 ),简称L10n。
操作方法:
为了支持国际化语言,我们只要在res/目录下在新建文件夹为:values-语言代号-地区代号。如values-zh-rCN表示简体中文,values-zh-rTW表示繁体等。
注:配置选项包括语言代号、地区代号。表示中文和中国的配置选项是 zh-rCN(zh表示中文,CN表示中国)。 表示英文和美国的配置选项是en-rUS(en表示英文,US表示美国)。前面的r是必须的。
有的博客,在介绍国际化时,并没有给出地区代码,例如:values-jp表示日语。那地区代码到底有什么作用呢?难道是根据不同的地区自动切换语言??知道的同学,指点我一下
举例:支持中文简体的国际化
现在新建一个Android工程Android_i18n,默认在res/values/strings.xml中的代码如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
不做任何修改,直接在手机上运行程序,默认的效果如下:
声明:我的手机默认的语言是设置为中文的:
其实无论手机设置成什么语言,运行的效果都是一样的,因为我们还没有进行国际化设置。所以程序没有别的选择,只能显示res/values/strings.xml中的信息。那现在开始来设置吧。
现在来加一个中文简体的国际化:在res/目录下新建一个文件夹代表中文简体:values-zh-rCN,目录结构如下图所示:
注:如果想再加一个英语的国际化,新建的文件夹为values-en-rUS,并使用相应的strings.xml文件。
修改res/values-zh-rCN/strings.xml的代码,如下:
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">" 安卓国际化"</string> <string name="hello_world">你好,世界</string> <string name="action_settings">设置</string></resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
此时运行程序,效果如下:
常见问题:
问题一:
现在我并没有添加繁体中文的对应的资源,如果我将手机的语言设置为繁体中文,运行程序会是什么现象呢?
答案:如果没有定义繁体中文的资源,那默认加载的就是res/values/目录下的资源。
问题二:
现在定义一个字符串,只在res/values-zh-rCN/下定义,而不在res/values/定义,运行程序会是什么现象呢?
答案:
现在我们在activity_main.xml中添加一个按钮:
<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/login_button"/>
- 1
- 2
- 3
- 4
第04行代码:按钮显示的名字引用了字符串login_button
此时,让res/values/strings.xml的代码保持不变:
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">" Android_i18n"</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string></resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
在res/values-zh-rCN/strings.xml中加一行login_button的声明:(第07行代码)
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">" 安卓国际化"</string> <string name="hello_world">你好,世界</string> <string name="action_settings">设置</string> <string name="login_button">登陆按钮</string></resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
效果:
activity_main.xml的视图如下:
运行程序,如果手机的语言设置为英文,效果如下:(非正常显示)
如果手机的语言设置为中文,效果如下:(能正常显示)
图片资源的国际化:
另外,我们不仅可以做字符资源的国际化,我们同样可以做图片资源的国际化。操作如下:
(1)在res/目录下新建一个文件夹代表中文简体的图片资源:drawable-zh-rCN。同理,在res/目录下新建一个文件夹代表日本的图片资源:drawable-jp。然后在这两个文件夹中放入不同的图片,但是要保证图片的文件名是一样的。
(2)于是,当我们在布局文件中通过R.drawable.ResId来引用图片的时候,就可以保证在不同的语言环境下,加载不同国家的图片。
国家_地区的语言缩写代码:
中文(中国):values-zh-rCN
中文(台湾):values-zh-rTW
中文(香港):values-zh-rHK
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE
英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA
阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亚文: values-bg-rBG
加泰罗尼亚文:values-ca-rES
捷克文:values-cs-rCZ
丹麦文:values-da-rDK
德文(奥地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德国):values-de-rDE
德文(列支敦士登):values-de-rLI
希腊文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美国):values-es-rUS
芬兰文(芬兰):values-fi-rFI
法文(比利时):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法国):values-fr-rFR
希伯来文:values-iw-rIL
印地文:values-hi-rIN
克罗里亚文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亚文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韩文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脱维亚文:values-lv-rLV
挪威博克马尔文:values-nb-rNO
荷兰文(比利时):values-nl-BE
荷兰文(荷兰):values-nl-rNL
波兰文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
罗马尼亚文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亚文:values-sl-rSI
塞尔维亚文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛语:values-tl-rPH
土耳其文:values–r-rTR
乌克兰文:values-uk-rUA
越南文:values-vi-rVN
通过程序获取JAVA所有支持的语言和国家的
程序代码如下:
import java.util.Locale;public class Test { public static void main(String[] args) { //调用Locale类的getAvailableLocales方法获取,该方法返回一个数组,其中包含JAVA支持的语言和国家 Locale[] localeList = Locale.getAvailableLocales(); //依次获取所支持的国家和语言 for (int i = 0; i < localeList.length; i++) { System.out.println(localeList[i].getDisplayCountry() + "=" + localeList[i].getCountry() + "" + localeList[i].getDisplayLanguage() + "=" + localeList[i].getLanguage()); } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
输出结果如下(有些国家可能会使用多种语言):
马来西亚=MY马来文=ms卡塔尔=QA阿拉伯文=ar冰岛=IS冰岛文=is芬兰=FI芬兰文=fi=波兰文=pl马耳他=MT英文=en瑞士=CH意大利文=it比利时=BE荷兰文=nl沙特阿拉伯=SA阿拉伯文=ar伊拉克=IQ阿拉伯文=ar波多黎哥=PR西班牙文=es智利=CL西班牙文=es=芬兰文=fi奥地利=AT德文=de=丹麦文=da英国=GB英文=en巴拿马=PA西班牙文=es=塞尔维亚文=sr也门=YE阿拉伯文=ar马其顿王国=MK马其顿文=mk=马其顿文=mk加拿大=CA英文=en越南=VN越南文=vi荷兰=NL荷兰文=nl美国=US西班牙文=es中国=CN中文=zh洪都拉斯=HN西班牙文=es美国=US英文=en=法文=fr=泰文=th=阿拉伯文=ar摩洛哥=MA阿拉伯文=ar=拉托维亚文(列托)=lv=德文=de印度尼西亚=ID印度尼西亚文=in=克罗地亚文=hr南非=ZA英文=en韩国=KR朝鲜文=ko突尼斯=TN阿拉伯文=ar=印度尼西亚文=in=日文=ja塞尔维亚=RS塞尔维亚文=sr白俄罗斯=BY白俄罗斯文=be台湾地区=TW中文=zh苏丹=SD阿拉伯文=ar=葡萄牙文=pt=冰岛文=is日本=JP日文=ja玻利维亚=BO西班牙文=es阿尔及利亚=DZ阿拉伯文=ar=马来文=ms阿根廷=AR西班牙文=es阿拉伯联合酋长国=AE阿拉伯文=ar加拿大=CA法文=fr=斯洛文尼亚文=sl=西班牙文=es立陶宛=LT立陶宛文=lt黑山=ME塞尔维亚文=sr叙利亚=SY阿拉伯文=ar俄罗斯=RU俄文=ru比利时=BE法文=fr西班牙=ES西班牙文=es=保加利亚文=bg以色列=IL希伯来文=iw=瑞典文=sv=英文=en=希伯来文=iw丹麦=DK丹麦文=da哥斯达黎加=CR西班牙文=es香港=HK中文=zh=中文=zh西班牙=ES加泰罗尼亚文=ca泰国=TH泰文=th乌克兰=UA乌克兰文=uk多米尼加共和国=DO西班牙文=es委内瑞拉=VE西班牙文=es波兰=PL波兰文=pl利比亚=LY阿拉伯文=ar约旦=JO阿拉伯文=ar=意大利文=it=乌克兰文=uk匈牙利=HU匈牙利文=hu=爱尔兰文=ga危地马拉=GT西班牙文=es巴拉圭=PY西班牙文=es保加利亚=BG保加利亚文=bg克罗地亚=HR克罗地亚文=hr波斯尼亚和黑山共和国=BA塞尔维亚文=sr罗马尼亚=RO罗马尼亚文=ro卢森堡=LU法文=fr=挪威文=no=立陶宛文=lt新加坡=SG英文=en厄瓜多尔=EC西班牙文=es波斯尼亚和黑山共和国=BA塞尔维亚文=sr尼加拉瓜=NI西班牙文=es=斯洛伐克文=sk=俄文=ru=马耳他文=mt萨尔瓦多=SV西班牙文=es=荷兰文=nl印度=IN印地文=hi=爱沙尼亚文=et希腊=GR希腊文=el斯洛文尼亚=SI斯洛文尼亚文=sl意大利=IT意大利文=it日本=JP日文=ja卢森堡=LU德文=de瑞士=CH法文=fr马耳他=MT马耳他文=mt巴林=BH阿拉伯文=ar=阿尔巴尼亚文=sq=越南文=vi黑山=ME塞尔维亚文=sr巴西=BR葡萄牙文=pt挪威=NO挪威文=no=希腊文=el瑞士=CH德文=de新加坡=SG中文=zh科威特=KW阿拉伯文=ar埃及=EG阿拉伯文=ar爱尔兰=IE爱尔兰文=ga秘鲁=PE西班牙文=es捷克共和国=CZ捷克文=cs土耳其=TR土耳其文=tr=捷克文=cs乌拉圭=UY西班牙文=es爱尔兰=IE英文=en印度=IN英文=en阿曼=OM阿拉伯文=ar塞尔维亚及黑山=CS塞尔维亚文=sr=加泰罗尼亚文=ca=白俄罗斯文=be=塞尔维亚文=sr=朝鲜文=ko阿尔巴尼亚=AL阿尔巴尼亚文=sq葡萄牙=PT葡萄牙文=pt拉脱维亚=LV拉托维亚文(列托)=lv塞尔维亚=RS塞尔维亚文=sr斯洛伐克=SK斯洛伐克文=sk墨西哥=MX西班牙文=es澳大利亚=AU英文=en挪威=NO挪威文=no新西兰=NZ英文=en瑞典=SE瑞典文=sv=罗马尼亚文=ro黎巴嫩=LB阿拉伯文=ar德国=DE德文=de泰国=TH泰文=th=土耳其文=tr哥伦比亚=CO西班牙文=es菲律宾=PH英文=en爱沙尼亚=EE爱沙尼亚文=et塞浦路斯=CY希腊文=el=匈牙利文=hu法国=FR法文=fr
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
参考:
关注我的公众号,轻松了解和学习更多技术