参考:
https://cloud.tencent.com/developer/article/1024939
1. 区域名称和标识符
1.1. 概述
区域名称遵循 RFC 1766 标准,格式为“aa-BB”(中划线),
其中 aa 是从 ISO 639-1 派生的由两个小写字母构成的代码, BB 是从 ISO 3166 派生的由两个大写字母构成的代码。例如,美国英语为“en-US”。
在双字母语言代码不可用的情况中,将使用从 ISO 639-2 派生的三字母代码;例如,三字母代码“div”用于使用 Dhivehi 语言的区域。某些区域性名称带有指定书写符号的后缀;例如“-Cyrl”指定西里尔语书写符号,“-Latn”指定拉丁语书写符号。
1.2. 标识符表
| 区域描述 | 简写 | 十六进制值 | 十进制值 |
|---|---|---|---|
| 南非荷兰语 | 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 |
| 巴斯克语 | eu | 0x042D | 1069 |
| 白俄罗斯语 | be | 0x0423 | 1059 |
| 保加利亚语 | bg | 0x0402 | 1026 |
| 加泰罗尼亚语 | ca | 0x0403 | 1027 |
| 中文 - 中华人民共和国 | zh-CN | 0x0804 | 2052 |
| 中文 - 中华人民共和国中国香港特别行政区 | zh-HK | 0x0C04 | 3076 |
| 中文 - 新加坡 | zh-SG | 0x1004 | 4100 |
| 中文 - 中国台湾地区 | zh-TW | 0x0404 | 1028 |
| 克罗地亚语 | hr | 0x041A | 1050 |
| 捷克语 | cs | 0x0405 | 1029 |
| 丹麦语 | da | 0x0406 | 1030 |
| 荷兰语 | nl | 0x0413 | 1043 |
| 荷兰语 - 比利时 | nl-BE | 0x0813 | 2067 |
| 英语 - 澳大利亚 | en-AU | 0x0C09 | 3081 |
| 英语 - 伯利兹 | en-BZ | 0x2809 | 10249 |
| 英语 - 加拿大 | en-CA | 0x1009 | 4105 |
| 英语 - 爱尔兰 | en-IE | 0x1809 | 6153 |
| 英语 - 牙买加 | en-JM | 0x2009 | 8201 |
| 英语 - 新西兰 | en-NZ | 0x1409 | 5129 |
| 英语 - 南非 | en-ZA | 0x1C09 | 7177 |
| 英语 - 特立尼达岛 | en-TT | 0x2C09 | 11273 |
| 英语 - 英国 | en-GB | 0x0809 | 2057 |
| 英语 - 美国 | en-US | 0x0409 | 1033 |
| 爱沙尼亚语 | et | 0x0425 | 1061 |
| 波斯语 | fa | 0x0429 | 1065 |
| 芬兰语 | fi | 0x040B | 1035 |
| 法罗语 | fo | 0x0438 | 1080 |
| 法语 - 标准 | fr | 0x040C | 1036 |
| 法语 - 比利时 | fr-BE | 0x080C | 2060 |
| 法语 - 加拿大 | fr-CA | 0x0C0C | 3084 |
| 法语 - 卢森堡 | fr-LU | 0x140C | 5132 |
| 法语 - 瑞士 | fr-CH | 0x100C | 4108 |
| 盖尔语 - 苏格兰 | gd | 0x043C | 1084 |
| 德语 - 标准 | de | 0x0407 | 1031 |
| 德语 - 奥地利 | de-AT | 0x0C07 | 3079 |
| 德语 - 列支敦士登 | de-LI | 0x1407 | 5127 |
| 德语 - 卢森堡 | de-LU | 0x1007 | 4103 |
| 德语 - 瑞士 | de-CH | 0x0807 | 2055 |
| 希腊语 | el | 0x0408 | 1032 |
| Hebrew | he | 0x040D | 1037 |
| 印地语 | hi | 0x0439 | 1081 |
| 匈牙利语 | hu | 0x040E | 1038 |
| 冰岛语 | is | 0x040F | 1039 |
| 印度尼西亚语 | in | 0x0421 | 1057 |
| 意大利语 - 标准 | it | 0x0410 | 1040 |
| 意大利语 - 瑞士 | it-CH | 0x0810 | 2064 |
| 日语 | ja | 0x0411 | 1041 |
| 朝鲜语 | ko | 0x0412 | 1042 |
| 拉脱维亚语 | lv | 0x0426 | 1062 |
| 立陶宛语 | lt | 0x0427 | 1063 |
| 马其顿语 | mk | 0x042F | 1071 |
| 马来语 - 马来西亚 | ms | 0x043E | 1086 |
| 马耳他语 | mt | 0x043A | 1082 |
| 挪威语 - 博克马尔 | no | 0x0414 | 1044 |
| 波兰语 | pl | 0x0415 | 1045 |
| 葡萄牙语 - 标准 | pt | 0x0816 | 2070 |
| 葡萄牙语 - 巴西 | pt-BR | 0x0416 | 1046 |
| 拉托-罗马语 | rm | 0x0417 | 1047 |
| 罗马尼亚语 | ro | 0x0418 | 1048 |
| 罗马尼亚语 - 摩尔多瓦 | ro-MO | 0x0818 | 2072 |
| 俄语 | ru | 0x0419 | 1049 |
| 俄语 - 摩尔多瓦 | ru-MO | 0x0819 | 2073 |
| 塞尔维亚语 - 塞瑞利克 | sr | 0x0C1A | 3098 |
| Setsuana | tn | 0x0432 | 1074 |
| 斯洛文尼亚语 | sl | 0x0424 | 1060 |
| 斯洛伐克语 | sk | 0x041B | 1051 |
| 索布语 | sb | 0x042E | 1070 |
| 西班牙语 - 标准 | es | 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 |
| 苏图语 | sx | 0x0430 | 1072 |
| 瑞典语 | sv | 0x041D | 1053 |
| 瑞典语 - 芬兰 | sv-FI | 0x081D | 2077 |
| 泰语 | th | 0x041E | 1054 |
| 土耳其语 | tr | 0x041F | 1055 |
| 汤加语 | ts | 0x0431 | 1073 |
| 乌克兰语 | uk | 0x0422 | 1058 |
| 乌尔都语 - 巴基斯坦 | ur | 0x0420 | 1056 |
| 越南语 | vi | 0x042A | 1066 |
| 科萨语 | xh | 0x0434 | 1076 |
| 意第绪语 | ji | 0x043D | 1085 |
| 祖鲁语 | zu | 0x0435 | 1077 |
2. 清理脚本
test.py
if __name__ == "__main__":
line_str = ""
line_list = []
with open('lcid.txt', 'r', encoding='utf-8') as f:
count = 0
for line in f:
line_clean = line.strip()
if not line_clean:
continue
count +=1
parts = line_clean.split("-")
if len(parts) >= 2 and count%4==2:
line_clean = f"{parts[0]}-{parts[1].upper()}"
line_str += f"|{line_clean}"
# print(line_str)
if count%4 == 0:
line_str += f"|"
line_list.append(line_str)
# print(line_list)
line_str = ""
last_list = []
for idx,line in enumerate(line_list):
if idx%2 == 0:
last_list.append(line)
else:
print(line)
for idx,line in enumerate(last_list):
print(line)
lcid.txt
区域设置描述
简写
十六进制值
十进制值
南非荷兰语
af
0x0436
1078
印地语
hi
0x0439
1081
阿尔巴尼亚语
sq
0x041C
1052
匈牙利语
hu
0x040E
1038
阿拉伯语 - 阿拉伯联合酋长国
ar-ae
0x3801
14337
冰岛语
is
0x040F
1039
阿拉伯语 - 巴林
ar-bh
0x3C01
15361
印度尼西亚语
in
0x0421
1057
阿拉伯语 - 阿尔及利亚
ar-dz
0x1401
5121
意大利语 - 标准
it
0x0410
1040
阿拉伯语 - 埃及
ar-eg
0x0C01
3073
意大利语 - 瑞士
it-ch
0x0810
2064
阿拉伯语 - 伊拉克
ar-iq
0x0801
2049
日语
ja
0x0411
1041
阿拉伯语 - 约旦
ar-jo
0x2C01
11265
朝鲜语
ko
0x0412
1042
阿拉伯语 - 科威特
ar-kw
0x3401
13313
拉脱维亚语
lv
0x0426
1062
阿拉伯语 - 黎巴嫩
ar-lb
0x3001
12289
立陶宛语
lt
0x0427
1063
阿拉伯语 - 利比亚
ar-ly
0x1001
4097
马其顿语
mk
0x042F
1071
阿拉伯语 - 摩洛哥
ar-ma
0x1801
6145
马来语 - 马来西亚
ms
0x043E
1086
阿拉伯语 - 阿曼
ar-om
0x2001
8193
马耳他语
mt
0x043A
1082
阿拉伯语 - 卡塔尔
ar-qa
0x4001
16385
挪威语 - 博克马尔
no
0x0414
1044
阿拉伯语 - 沙特阿拉伯
ar-sa
0x0401
1025
波兰语
pl
0x0415
1045
阿拉伯语 - 叙利亚
ar-sy
0x2801
10241
葡萄牙语 - 标准
pt
0x0816
2070
阿拉伯语 - 突尼斯
ar-tn
0x1C01
7169
葡萄牙语 - 巴西
pt-br
0x0416
1046
阿拉伯语 - 也门
ar-ye
0x2401
9217
拉托-罗马语
rm
0x0417
1047
巴斯克语
eu
0x042D
1069
罗马尼亚语
ro
0x0418
1048
白俄罗斯语
be
0x0423
1059
罗马尼亚语 - 摩尔多瓦
ro-mo
0x0818
2072
保加利亚语
bg
0x0402
1026
俄语
ru
0x0419
1049
加泰罗尼亚语
ca
0x0403
1027
俄语 - 摩尔多瓦
ru-mo
0x0819
2073
中文 - 中华人民共和国
zh-cn
0x0804
2052
塞尔维亚语 - 塞瑞利克
sr
0x0C1A
3098
中文 - 中华人民共和国中国香港特别行政区
zh-hk
0x0C04
3076
Setsuana
tn
0x0432
1074
中文 - 新加坡
zh-sg
0x1004
4100
斯洛文尼亚语
sl
0x0424
1060
中文 - 中国台湾地区
zh-tw
0x0404
1028
斯洛伐克语
sk
0x041B
1051
克罗地亚语
hr
0x041A
1050
索布语
sb
0x042E
1070
捷克语
cs
0x0405
1029
西班牙语 - 标准
es
0x040A
1034
丹麦语
da
0x0406
1030
西班牙语 - 阿根廷
es-ar
0x2C0A
11274
荷兰语
nl
0x0413
1043
西班牙语 - 玻利维亚
es-bo
0x400A
16394
荷兰语 - 比利时
nl-be
0x0813
2067
西班牙语 - 智利
es-cl
0x340A
13322
英语 - 澳大利亚
en-au
0x0C09
3081
西班牙语 - 哥伦比亚
es-co
0x240A
9226
英语 - 伯利兹
en-bz
0x2809
10249
西班牙语 - 哥斯达黎加
es-cr
0x140A
5130
英语 - 加拿大
en-ca
0x1009
4105
西班牙语 - 多米尼加共和国
es-do
0x1C0A
7178
英语 - 爱尔兰
en-ie
0x1809
6153
西班牙语 - 厄瓜多尔
es-ec
0x300A
12298
英语 - 牙买加
en-jm
0x2009
8201
西班牙语 - 危地马拉
es-gt
0x100A
4106
英语 - 新西兰
en-nz
0x1409
5129
西班牙语 - 洪都拉斯
es-hn
0x480A
18442
英语 - 南非
en-za
0x1C09
7177
西班牙语 - 墨西哥
es-mx
0x080A
2058
英语 - 特立尼达岛
en-tt
0x2C09
11273
西班牙语 - 尼加拉瓜
es-ni
0x4C0A
19466
英语 - 英国
en-gb
0x0809
2057
西班牙语 - 巴拿马
es-pa
0x180A
6154
英语 - 美国
en-us
0x0409
1033
西班牙语 - 秘鲁
es-pe
0x280A
10250
爱沙尼亚语
et
0x0425
1061
西班牙语 - 波多黎各
es-pr
0x500A
20490
波斯语
fa
0x0429
1065
西班牙语 - 巴拉圭
es-py
0x3C0A
15370
芬兰语
fi
0x040B
1035
西班牙语 - 萨尔瓦多
es-sv
0x440A
17418
法罗语
fo
0x0438
1080
西班牙语 - 乌拉圭
es-uy
0x380A
14346
法语 - 标准
fr
0x040C
1036
西班牙语 - 委内瑞拉
es-ve
0x200A
8202
法语 - 比利时
fr-be
0x080C
2060
苏图语
sx
0x0430
1072
法语 - 加拿大
fr-ca
0x0C0C
3084
瑞典语
sv
0x041D
1053
法语 - 卢森堡
fr-lu
0x140C
5132
瑞典语 - 芬兰
sv-fi
0x081D
2077
法语 - 瑞士
fr-ch
0x100C
4108
泰语
th
0x041E
1054
盖尔语 - 苏格兰
gd
0x043C
1084
土耳其语
tr
0x041F
1055
德语 - 标准
de
0x0407
1031
汤加语
ts
0x0431
1073
德语 - 奥地利
de-at
0x0C07
3079
乌克兰语
uk
0x0422
1058
德语 - 列支敦士登
de-li
0x1407
5127
乌尔都语 - 巴基斯坦
ur
0x0420
1056
德语 - 卢森堡
de-lu
0x1007
4103
越南语
vi
0x042A
1066
德语 - 瑞士
de-ch
0x0807
2055
科萨语
xh
0x0434
1076
希腊语
el
0x0408
1032
意第绪语
ji
0x043D
1085
Hebrew
he
0x040D
1037
祖鲁语
zu
0x0435
1077
4363

被折叠的 条评论
为什么被折叠?



