区域设置
区域设置(locale)是表达程序用户地区方面的软件设定。不同系统、平台、与软件有不同的区域设置处理方式和不同的设置范围,但是一般区域设置最少也会包括语言和地区。操作系统的区域设置通常比较复杂。区域设置的内容包括:小数点符号、单位制、通货符号、日期写法、日历类型、文字排序等等。
区域设置的主要目标是让用户选择最适合他自己的设定。比如用以上的Windows作比喻:在控制面板的区域和语言选择中,用户可以选择自己的排序方法,当浏览文件时,系统会使用「用户选择的排序」来排列文件。
目录 |
实际落实 [编辑]
计算机中一套定义用户的语言、国家和用于定义用户希望在其用户界面上看到的各种可以改变的选择的参数集合。通常一个区域设置标识符至少包括一个语言标识符和一个区域标识符。
在UNIX和Windows中,区域设置的控制是不同的。在UNIX下,通常通过环境变量来控制区域设置。这些环境变量包括:LC_ALL, LC_CTYPE, LC_TIME, 等等。你可以通过改变这些环境变量来控制你的程序或者命令所表现出来的区域设置,前提是这些程序或者命令必须是已经被国际化的和本地化的。在Windows下,你可以通过改变控制面板上的“语言/区域”中的区域的值来设定Windows的当前用户的区域设置。
区域标识符 [编辑]
「区域标识符」(Locale ID ,LCID ),亦称「区域性标识符」或「区域性名称和标识符」,是对世界各地区,尤其是对语言的统一标识,在程序设计中经常用到。LCID的低10位是主语言(primary language)的ID;LCID的高4位指定次语言(sublanguage)。
例如,中文作为主语言,编号是0x04。作为次语言的繁体中文的编号是0x01;简体中文的编号是0x02。因此,“中国大陆简体中文”的区域标识符等于次语言的标识0x02左移10位,再加上主语言的标识0x04,即(0x02<<10)+0x04=2052,所以简体中文的LCID是2052。类似的,可以算出繁体中文的LCID是1028。美国英语的LCID是1033。
同一个LCID,可以有多种字符集编码表示。例如,Windows操作系统的简体中文的默认编码字符集(即代码页)是GBK,即“936 (ANSI/OEM - Simplified Chinese GBK)”。而Linux操作系统统一使用UTF8字符集,所以简体中文的默认编码字符集是UTF8.
列表 [编辑]
| 区域描述 | 简写 | 十六进制值 | 十进制值 |
|---|---|---|---|
| 南非荷兰语 | af | 0x0436 | 1078 |
| 阿尔巴尼亚语 | sq | 0x041C | 1052 |
| 阿拉伯语-阿拉伯联合酋长国 | ar-ae | 0x3801 | 14337 |
| 阿拉伯语-巴林 | ar-bh | 0x3C01 | 15361 |
| 阿拉伯语-阿尔及利亚 | ar-dz | 0x1401 | 5121 |
| 阿拉伯语-埃及 | ar-eg | 0x0C01 | 3073 |
| 阿拉伯语-伊拉克 | ar-iq | 0x0801 | 2049 |
| 阿拉伯语-约旦 | ar-jo | 0x2C01 | 11265 |
| 阿拉伯语-科威特 | ar-kw | 0x3401 | 13313 |
| 阿拉伯语-黎巴嫩 | ar-lb | 0x3001 | 12289 |
| 阿拉伯语-利比亚 | ar-ly | 0x1001 | 4097 |
| 阿拉伯语-摩洛哥 | ar-ma | 0x1801 | 6145 |
| 阿拉伯语-阿曼 | ar-om | 0x2001 | 8193 |
| 阿拉伯语-卡塔尔 | ar-qa | 0x4001 | 16385 |
| 阿拉伯语-沙特阿拉伯 | ar-sa | 0x0401 | 1025 |
| 阿拉伯语-叙利亚 | ar-sy | 0x2801 | 10241 |
| 阿拉伯语-突尼斯 | ar-tn | 0x1C01 | 7169 |
| 阿拉伯语-也门 | ar-ye | 0x2401 | 9217 |
| 亚美尼亚语 | hy | 0x042B | 1067 |
| 阿塞拜疆语-拉丁文 | az-az | 0x042C | 1068 |
| 阿塞拜疆语-西里尔文 | az-az | 0x082C | 2092 |
| 巴斯克语 | eu | 0x042D | 1069 |
| 白俄罗斯语 | be | 0x0423 | 1059 |
| 保加利亚语 | bg | 0x0402 | 1026 |
| 加泰隆语 | ca | 0x0403 | 1027 |
| 中文-中国 | zh-cn | 0x0804 | 2052 |
| 中文-香港特别行政区 | zh-hk | 0x0C04 | 3076 |
| 中文-澳门特别行政区 | zh-mo | 0x1404 | 5124 |
| 中文-新加坡 | zh-sg | 0x1004 | 4100 |
| 中文-台湾 | zh-tw | 0x0404 | 1028 |
| 克罗地亚语 | hr | 0x041A | 1050 |
| 捷克语 | cs | 0x0405 | 1029 |
| 丹麦语 | da | 0x0406 | 1030 |
| 荷兰语-荷兰 | nl-nl | 0x0413 | 1043 |
| 荷兰语-比利时 | nl-be | 0x0813 | 2067 |
| 英语-澳大利亚 | en-au | 0x0C09 | 3081 |
| 英语-伯利兹 | en-bz | 0x2809 | 10249 |
| 英语-加拿大 | en-ca | 0x1009 | 4105 |
| 英语-加勒比 | en-cb | 0x2409 | 9225 |
| 英语-印度 | en-in | 0x4009 | 16393 |
| 英语-爱尔兰 | en-ie | 0x1809 | 6153 |
| 英语-牙买加 | en-jm | 0x2009 | 8201 |
| 英语-马来西亚 | en-my | 0x4409 | 17417 |
| 英语-新西兰 | en-nz | 0x1409 | 5129 |
| 英语-菲律宾 | en-ph | 0x3409 | 13321 |
| 英语-新加坡 | en-sg | 0x4809 | 18441 |
| 英语-南非 | en-za | 0x1C09 | 7177 |
| 英语-特立尼达岛 | en-tt | 0x2C09 | 11273 |
| 英语-英国 | en-gb | 0x0809 | 2057 |
| 英语-美国 | en-us | 0x0409 | 1033 |
| 英语-津巴布韦 | en-zw | 0x3009 | 12297 |
| 爱沙尼亚语 | et | 0x0425 | 1061 |
| 波斯语 | fa | 0x0429 | 1065 |
| 芬兰语 | fi | 0x040B | 1035 |
| 法罗语 | fo | 0x0438 | 1080 |
| 法语-法国 | fr-fr | 0x040C | 1036 |
| 法语-比利时 | fr-be | 0x080C | 2060 |
| 法语-加拿大 | fr-ca | 0x0C0C | 3084 |
| 法语-卢森堡 | fr-lu | 0x140C | 5132 |
| 法语-瑞士 | fr-ch | 0x100C | 4108 |
| 盖尔语-爱尔兰 | gd-ie | 0x083C | 2108 |
| 盖尔语-苏格兰 | gd | 0x043C | 1084 |
| 德语-德国 | de-de | 0x0407 | 1031 |
| 德语-奥地利 | de-at | 0x0C07 | 3079 |
| 德语-列支敦士登 | de-li | 0x1407 | 5127 |
| 德语-卢森堡 | de-lu | 0x1007 | 4103 |
| 德语-瑞士 | de-ch | 0x0807 | 2055 |
| 希腊语 | el | 0x0408 | 1032 |
| 希伯来语 | he | 0x040D | 1037 |
| 印地语 | hi | 0x0439 | 1081 |
| 匈牙利语 | hu | 0x040E | 1038 |
| 冰岛语 | is | 0x040F | 1039 |
| 印度尼西亚语 | id | 0x0421 | 1057 |
| 意大利语-意大利 | it-it | 0x0410 | 1040 |
| 意大利语-瑞士 | it-ch | 0x0810 | 2064 |
| 日语 | ja | 0x0411 | 1041 |
| 朝鲜语 | ko | 0x0412 | 1042 |
| 拉脱维亚语 | lv | 0x0426 | 1062 |
| 立陶宛语 | lt | 0x0427 | 1063 |
| 马其顿 | mk | 0x042F | 1071 |
| 马来语-马来西亚 | ms-my | 0x043E | 1086 |
| 马来语-文莱 | ms-bn | 0x083E | 2110 |
| 马耳他语 | mt | 0x043A | 1082 |
| 马拉地语 | mr | 0x044E | 1102 |
| 挪威-伯克梅尔 | nb-no | 0x0414 | 1044 |
| 挪威-尼诺斯克语 | nn-no | 0x0814 | 2068 |
| 波兰语 | pl | 0x0415 | 1045 |
| 葡萄牙语-葡萄牙 | pt-pt | 0x0816 | 2070 |
| 葡萄牙语-巴西 | pt-br | 0x0416 | 1046 |
| 罗曼什语 | rm | 0x0417 | 1047 |
| 罗马尼亚语-罗马尼亚 | ro | 0x0418 | 1048 |
| 罗马尼亚语-摩尔多瓦共和国 | ro-mo | 0x0818 | 2072 |
| 俄语 | ru | 0x0419 | 1049 |
| 俄罗斯-摩尔多瓦共和国 | ru-mo | 0x0819 | 2073 |
| 梵文 | sa | 0x044F | 1103 |
| 塞尔维亚语-西里尔语 | sr-sp | 0x0C1A | 3098 |
| 塞尔维亚语-拉丁文 | sr-sp | 0x081A | 2074 |
| Setsuana | tn | 0x0432 | 1074 |
| 斯洛文尼亚语 | sl | 0x0424 | 1060 |
| 斯洛伐克语 | sk | 0x041B | 1051 |
| 索布语 | sb | 0x042E | 1070 |
| 西班牙语-西班牙 (现代) | es-es | 0x0C0A | 3082 |
| 西班牙语-西班牙 (传统) | 0x040A | 1034 | |
| 西班牙语-阿根廷 | es-ar | 0x2C0A | 11274 |
| 西班牙语-玻利维亚 | es-bo | 0x400A | 16394 |
| 西班牙语-智利 | es-cl | 0x340A | 13322 |
| 西班牙语-哥伦比亚 | es-co | 0x240A | 9226 |
| 西班牙语-哥斯达黎加 | es-cr | 0x140A | 5130 |
| 西班牙语-多米尼加共和国 | es-do | 0x1C0A | 7178 |
| 西班牙语-厄瓜多尔 | es-ec | 0x300A | 12298 |
| 西班牙语-危地马拉 | es-gt | 0x100A | 4106 |
| 西班牙语-洪都拉斯 | es-hn | 0x480A | 18442 |
| 西班牙语-墨西哥 | es-mx | 0x080A | 2058 |
| 西班牙语-尼加拉瓜 | es-ni | 0x4C0A | 19466 |
| 西班牙语-巴拿马 | es-pa | 0x180A | 6154 |
| 西班牙-秘鲁 | es-pe | 0x280A | 10250 |
| 西班牙语-波多黎各 | es-pr | 0x500A | 20490 |
| 西班牙语-巴拉圭 | es-py | 0x3C0A | 15370 |
| 西班牙语-萨尔瓦多 | es-sv | 0x440A | 17418 |
| 西班牙语-乌拉圭 | es-uy | 0x380A | 14346 |
| 西班牙语-委内瑞拉 | es-ve | 0x200A | 8202 |
| 南部索托语 | st | 0x0430 | 1072 |
| 斯瓦希里语 | sw | 0x0441 | 1089 |
| 瑞典语-瑞典 | sv-se | 0x041D | 1053 |
| 瑞典语-芬兰 | sv-fi | 0x081D | 2077 |
| 泰米尔语 | ta | 0x0449 | 1097 |
| 鞑靼语 | tt | 0X0444 | 1092 |
| 泰语 | th | 0x041E | 1054 |
| 土耳其语 | tr | 0x041F | 1055 |
| 特松加 | ts | 0x0431 | 1073 |
| 乌克兰语 | uk | 0x0422 | 1058 |
| 乌都语 | ur | 0x0420 | 1056 |
| 乌兹别克语-西里尔文 | uz-uz | 0x0843 | 2115 |
| 乌兹别克语-拉丁文 | uz-uz | 0x0443 | 1091 |
| 越南语 | vi | 0x042A | 1066 |
| 班图语 | xh | 0x0434 | 1076 |
| 意第绪语 | yi | 0x043D | 1085 |
| 祖鲁语 | zu | 0x0435 | 1077 |