阅读:0
作者:严长生
Linux setlocale()区域设置格式说明以及名称汇总
使用 setlocale() 进行区域设置(本地设置、地域设置)时,可以通过 locale 参数指明具体的地域设置名称(字符串),也就是设置为哪种地域,或者说哪种语言文化。
C语言标准并未对 locale 的格式进行说明,只是要求编译器至少支持以下三个名称:
locale 在 Windows 和 Linux 下有不同的格式,除了上面三个强制要求的名称,其他名称在 Windows 和 Linux 下的写法一般不同。本文只讲解 Linux 下的地域设置格式,如果读者希望了解 Windows 下的情况,请猛击《Windows setlocale()区域设置格式说明以及名称汇总》。
举一个简单的例子:
charset 可以省略,此时会选择当前语言的默认 charset。Linux 发行版大都使用 UTF-8 编码,它是 Unicode 字符集的一种编码方式,能够支持世界上的所有语言;省略 charset,也就意味使用 UTF-8。
C语言标准并未对 locale 的格式进行说明,只是要求编译器至少支持以下三个名称:
- "C":默认的地域设置,只包含了很少的地域信息;
- "":使用当前操作系统默认的地域设置;
- NULL:不设置任何地域信息,而是用来获取当前地域设置的名称。
locale 在 Windows 和 Linux 下有不同的格式,除了上面三个强制要求的名称,其他名称在 Windows 和 Linux 下的写法一般不同。本文只讲解 Linux 下的地域设置格式,如果读者希望了解 Windows 下的情况,请猛击《Windows setlocale()区域设置格式说明以及名称汇总》。
Linux 下 locale 的格式
在 Linux 下,locale 的命名格式为:language_area.charset
language 表示语言,例如英语或中文;area 表示使用该语言的地区,例如美国或者中国大陆;charset 表示字符集编码,例如 UTF-8 或者 GBK。举一个简单的例子:
zh_CN.UTF-8
zh 代表中文,CN 代表大陆地区,UTF-8 表示字符集编码。charset 可以省略,此时会选择当前语言的默认 charset。Linux 发行版大都使用 UTF-8 编码,它是 Unicode 字符集的一种编码方式,能够支持世界上的所有语言;省略 charset,也就意味使用 UTF-8。
locale 名称 | 说明 |
---|---|
af_ZA | 南非语 |
ar_AE | 阿拉伯语(阿联酋) |
ar_BH | 阿拉伯语(巴林) |
ar_DZ | 阿拉伯语(阿尔及利亚) |
ar_EG | 阿拉伯语(埃及) |
ar_IQ | 阿拉伯语(伊拉克) |
ar_JO | 阿拉伯语(约旦) |
ar_KW | 阿拉伯语(科威特) |
ar_LB | 阿拉伯语(黎巴嫩) |
ar_LY | 阿拉伯语(利比亚) |
ar_MA | 阿拉伯语(摩洛哥) |
ar_OM | 阿拉伯语(阿曼) |
ar_QA | 阿拉伯语(卡塔尔) |
ar_SA | 阿拉伯语(沙特阿拉伯) |
ar_SY | 阿拉伯语(叙利亚) |
ar_TN | 阿拉伯语(突尼斯) |
ar_YE | 阿拉伯语(也门) |
az_AZ | 阿塞拜疆语(拉丁文) |
az_AZ | 阿塞拜疆语(西里尔文) |
be_BY | 比利时语 |
bg_BG | 保加利亚语 |
bs_BA | 波斯尼亚语(拉丁文,波斯尼亚和黑塞哥维那) |
ca_ES | 加泰隆语 |
cs_CZ | 捷克语 |
cy_GB | 威尔士语 |
da_DK | 丹麦语 |
de_AT | 德语(奥地利) |
de_CH | 德语(瑞士) |
de_DE | 德语(德国) |
de_LI | 德语(列支敦士登) |
de_LU | 德语(卢森堡) |
dv_MV | 第维埃语 |
el_GR | 希腊语 |
en_AU | 英语(澳大利亚) |
en_BZ | 英语(伯利兹) |
en_CA | 英语(加拿大) |
en_CB | 英语(加勒比海) |
en_GB | 英语(英国) |
en_IE | 英语(爱尔兰) |
en_JM | 英语(牙买加) |
en_NZ | 英语(新西兰) |
en_PH | 英语(菲律宾) |
en_TT | 英语(特立尼达) |
en_US | 英语(美国) |
en_ZA | 英语(南非) |
en_ZW | 英语(津巴布韦) |
es_AR | 西班牙语(阿根廷) |
es_BO | 西班牙语(玻利维亚) |
es_CL | 西班牙语(智利) |
es_CO | 西班牙语(哥伦比亚) |
es_CR | 西班牙语(哥斯达黎加) |
es_DO | 西班牙语(多米尼加共和国) |
es_EC | 西班牙语(厄瓜多尔) |
es_ES | 西班牙语(传统) |
es_ES | 西班牙语(国际) |
es_GT | 西班牙语(危地马拉) |
es_HN | 西班牙语(洪都拉斯) |
es_MX | 西班牙语(墨西哥) |
es_NI | 西班牙语(尼加拉瓜) |
es_PA | 西班牙语(巴拿马) |
es_PE | 西班牙语(秘鲁) |
es_PR | 西班牙语(波多黎各(美)) |
es_PY | 西班牙语(巴拉圭) |
es_SV | 西班牙语(萨尔瓦多) |
es_UY | 西班牙语(乌拉圭) |
es_VE | 西班牙语(委内瑞拉) |
et_EE | 爱沙尼亚语 |
eu_ES | 巴士克语 |
fa_IR | 法斯语 |
fi_FI | 芬兰语 |
fo_FO | 法罗语 |
fr_BE | 法语(比利时) |
fr_CA | 法语(加拿大) |
fr_CH | 法语(瑞士) |
fr_FR | 法语(法国) |
fr_LU | 法语(卢森堡) |
fr_MC | 法语(摩纳哥) |
gl_ES | 加里西亚语 |
gu_IN | 古吉拉特语 |
he_IL | 希伯来语 |
hi_IN | 印地语 |
hr_BA | 克罗地亚语(波斯尼亚和黑塞哥维那) |
hr_HR | 克罗地亚语 |
hu_HU | 匈牙利语 |
hy_AM | 亚美尼亚语 |
id_ID | 印度尼西亚语 |
is_IS | 冰岛语 |
it_CH | 意大利语(瑞士) |
it_IT | 意大利语(意大利) |
ja_JP | 日语 |
ka_GE | 格鲁吉亚语 |
kk_KZ | 哈萨克语 |
kn_IN | 卡纳拉语 |
ko_KR | 朝鲜语 |
kok_IN | 孔卡尼语 |
ky_KG | 吉尔吉斯语(西里尔文) |
lt_LT | 立陶宛语 |
lv_LV | 拉脱维亚语 |
mi_NZ | 毛利语 |
mk_MK | 马其顿语(FYROM) |
mn_MN | 蒙古语(西里尔文) |
mr_IN | 马拉地语 |
ms_BN | 马来语(文莱达鲁萨兰) |
ms_MY | 马来语(马来西亚) |
mt_MT | 马耳他语 |
nb_NO | 挪威语(伯克梅尔)(挪威) |
nl_BE | 荷兰语(比利时) |
nl_NL | 荷兰语(荷兰) |
nn_NO | 挪威语(尼诺斯克)(挪威) |
ns_ZA | 北梭托语 |
pa_IN | 旁遮普语 |
pl_PL | 波兰语 |
pt_BR | 葡萄牙语(巴西) |
pt_PT | 葡萄牙语(葡萄牙) |
qu_BO | 克丘亚语(玻利维亚) |
qu_EC | 克丘亚语(厄瓜多尔) |
qu_PE | 克丘亚语(秘鲁) |
ro_RO | 罗马尼亚语 |
ru_RU | 俄语 |
sa_IN | 梵文 |
se_FI | 北萨摩斯语(芬兰) |
se_FI | 斯科特萨摩斯语(芬兰) |
se_FI | 伊那里萨摩斯语(芬兰) |
se_NO | 北萨摩斯语(挪威) |
se_NO | 律勒欧萨摩斯语(挪威) |
se_NO | 南萨摩斯语(挪威) |
se_SE | 北萨摩斯语(瑞典) |
se_SE | 律勒欧萨摩斯语(瑞典) |
se_SE | 南萨摩斯语(瑞典) |
sk_SK | 斯洛伐克语 |
sl_SI | 斯洛文尼亚语 |
sq_AL | 阿尔巴尼亚语 |
sr_BA | 塞尔维亚语(拉丁文,波斯尼亚和黑塞哥维那) |
sr_BA | 塞尔维亚语(西里尔文,波斯尼亚和黑塞哥维那) |
sr_SP | 塞尔维亚(拉丁) |
sr_SP | 塞尔维亚(西里尔文) |
sv_FI | 瑞典语(芬兰) |
sv_SE | 瑞典语 |
sw_KE | 斯瓦希里语 |
syr_SY | 叙利亚语 |
ta_IN | 泰米尔语 |
te_IN | 泰卢固语 |
th_TH | 泰语 |
tl_PH | 塔加路语(菲律宾) |
tn_ZA | 茨瓦纳语 |
tr_TR | 土耳其语 |
tt_RU | 鞑靼语 |
uk_UA | 乌克兰语 |
ur_PK | 乌都语 |
uz_UZ | 乌兹别克语(拉丁文) |
uz_UZ | 乌兹别克语(西里尔文) |
vi_VN | 越南语 |
xh_ZA | 班图语 |
zh_CN | 中文(简体) |
zh_HK | 中文(香港) |
zh_MO | 中文(澳门) |
zh_SG | 中文(新加坡) |
zh_TW | 中文(繁体) |
zu_ZA | 祖鲁语 |