Loading AI tools
来自维基百科,自由的百科全书
地區設定(英語:locale),也稱作「在地化策略集」、「本地環境」,是表達程式使用者地區方面的軟體設定。不同系統、平台、與軟體有不同的地區設定處理方式和不同的設定範圍,但是一般地區設定最少也會包括語言和地區。作業系統的地區設定通常比較複雜。地區設定的內容包括:資料格式、貨幣金額格式、小數點符號、千分位符號、度量衡單位、通貨符號、日期寫法、日曆類型、文字排序、姓名格式、位址等等。
此條目包含指南或教學內容。 (2018年8月15日) |
此條目可參照英語維基百科相應條目來擴充。 (2024年1月17日) |
地區設定的主要目標是讓使用者選擇最適合他自己的設定。比如用以上的Windows作比喻:在控制面板的區域和語言選擇中,使用者可以選擇自己的字元集排序方法;當瀏覽檔案時,系統會使用「使用者選擇的排序」來排列檔案。
電腦中一套定義使用者的語言、國家和用於定義使用者希望在其使用者介面上看到的各種可以改變的選擇的參數集合。通常一個地區設定識別碼至少包括一個語言識別碼和一個區域識別碼。
在UNIX和Windows中,地區設定的控制是不同的。在UNIX下,通常通過環境變數來控制地區設定。這些環境變數包括:LC_ALL, LC_CTYPE, LC_TIME, 等等。你可以通過改變這些環境變數來控制你的程式或者命令所表現出來的地區設定,前提是這些程式或者命令必須是已經被國際化的和在地化的。在Windows下,你可以通過改變控制面板上的「語言/區域」中的區域的值來設定Windows的當前使用者的地區設定。
在Ubuntu作業系統中,使用man locale-gen或man locale可獲得關於locale實現的細節。實際上是由glibc庫實現的。
locale相關(環境)變數生效的優先順序:[1]
可以把上述環境變數設在/etc/profile 或 /etc/environment等系統初始檔案中。值得注意的是,若LANG或LC_ALL被設定為 "C",那麼LANGUAGE的值將被忽視。 [2]
除 C 和 POSIX這兩個locale名稱外,locale的名稱並未標準化。Linux平台與Windows系統的locale名稱有很大不同。Linux名稱的命名規則為:
language[_territory[.codeset]][@modifier]
其中language是ISO 639-1標準中定義的雙字母的語言代碼,territory是ISO 3166-1標準中定義的雙字母的國家和地區代碼,codeset是字元集的名稱 (如 UTF-8等),而 modifier 則是某些 locale 變體的修正符。
bash中的使用範例:
$ LC_TIME=en_US.UTF-8 date Fri Oct 31 19:51:16 CST 2014 $ LC_TIME=fi_FI.UTF-8 date pe 31.10.2014 19.52.00 +0800 $ LC_TIME=zh_CN.UTF-8 date 2014年 10月 31日 星期五 19:53:07 CST
相關系統檔案:
相關系統命令:
en_US.UTF-8 UTF-8 cs_CZ.UTF-8 UTF-8 cs_CZ.iso88592 iso88592 zh_CN.UTF-8 UTF-8 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030
儲存並關閉此檔案。執行sudo dpkg-reconfigure --force locales,則重新生成字元集。
cd /usr/share/locales sudo ./install-language-pack zh_CN
也可以安裝zh_CN的相關語言套件。
Windows SDK規定,「語言」是與溝通有關的一組屬性的集合,包括所有允許的字元、通貨符號、日期時間格式等等。每個「語言」有一個語言名字與語言識別碼。語言往往還需要指出國家/地區,如「英語(美國)」使用的語言名字是「en-US」。
每個地區設定(locale)是一個「語言」及一個排序規則。Windows XP支援超過150個地區設定(locale);Windows Vista支援超過200個地區設定(locale);Windows 7支援至少365個地區設定(locale)。每個地區設定(locale)有地區設定名字(Locale Name )與地區設定識別碼(Locale ID ,LCID )。例如:"de-DE_phoneb"是德國德語使用德式電話薄排序規則(該排序規則與拉丁字母序稍有不同)。 「區域識別碼」(Locale ID ,LCID )為32位元的值,在程式設計中經常用到。LCID構成為:
+-------------+---------+-------------------------+-------------------------+ | Reserved | Sort ID | SubLanguage ID | Primary Language ID | +-------------+---------+-------------------------+-------------------------+ 31 20 19 16 15 10 9 0 bit
LCID的低10位是主語言(primary language)的ID;高6位指定次語言(sublanguage)。LCID的低16位元稱為語言識別碼(language identifier),資料類型名為LANGID。例如,中文作為主語言,編號是0x04。作為次語言的台灣中文的編號是0x01;簡體中文的編號是0x02,香港中文是0x03,新加坡中文是0x04,澳門中文是0x05。因此,「中國大陸簡體中文」的區域識別碼等於次語言的標識0x02左移10位,再加上主語言的標識0x04,即(0x02<<10)+0x04=2052,所以簡體中文的LCID是2052。類似的,可以算出繁體中文的LCID是1028。美國英語的LCID是1033。使用Windows預定義宏,MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED)的結果也是2052。所有的語言-國家地區列表見:MSDN:Language Identifier Constants and Strings(頁面存檔備份,存於網際網路檔案館)
排序識別碼(Sort Order Identifier)占4位元,用於表示排序的方法。如簡體中文有SORT_CHINESE_PRC(筆劃序)、SORT_CHINESE_PRCP(拼音序)。例如,使用筆劃序的簡體中文的locale名字為"zh-CN_stroke"。所有排序規則列表見:Sort Order Identifiers(頁面存檔備份,存於網際網路檔案館)。
地區設定名字(Locale Name )的命名格式為:
locale :: primaryLanguage[-Script][-SubLanguage[_sortorder]] | "locale-name" | "language[_countryORregion[.CodePage]]" | ".CodePage" | "C" | "" | NULL
可理解為:
對於C標準庫函式setlocale(),指定參數locale的基本格式為:
Locale Name | language[_country_region[.code_page]]
上述language與country_region一般不用縮寫,詳細列表見National Language Support (NLS) API Reference(頁面存檔備份,存於網際網路檔案館)。例如,對與中文簡體,使用字串"chinese"、"chinese-simplified"、"chinese_CHN"、"chs",都能得到"Chinese (Simplified)_People's Republic of China.936"效果。
作業系統有一個當前地區設定。使用者可以在控制面板的地區設定中改變它。每個地區設定有許多相關的資訊,編程時可以用Locale information types取得這些值的資訊。作業系統賦予每個執行緒一個地區設定,初始值為LOCALE_SYSTEM_DEFAULT
相關系統API函式:
區域描述 | 簡寫 | 十六進制值 | 十進制值 |
---|---|---|---|
南非荷蘭語 | af | 0x0436 | 1078 |
南非荷蘭語(南非) | af-ZA | ||
阿姆哈拉語 | am | ||
阿姆哈拉語(衣索比亞) | am-ET | ||
阿爾巴尼亞語 | sq | 0x041C | 1052 |
阿拉伯語 | ar | ||
阿拉伯語-阿拉伯聯合大公國 | 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 |
馬普切語 | arn | ||
馬普切語(智利) | arn-CL | ||
阿拉伯語-阿曼 | ar-OM | 0x2001 | 8193 |
阿拉伯語-卡達 | ar-QA | 0x4001 | 16385 |
阿拉伯語-沙烏地阿拉伯 | ar-SA | 0x0401 | 1025 |
阿拉伯語-敘利亞 | ar-SY | 0x2801 | 10241 |
阿拉伯語-突尼斯 | ar-TN | 0x1C01 | 7169 |
阿拉伯語-葉門 | ar-YE | 0x2401 | 9217 |
阿薩姆語 | as | ||
阿薩姆語-印度 | as-IN | ||
亞美尼亞語 | hy | 0x042B | 1067 |
亞塞拜然語 | az | ||
亞塞拜然語-拉丁文 | az-Latn | 0x042C | 1068 |
亞塞拜然語-西里爾文 | az-Cyrl | 0x082C | 2092 |
亞塞拜然語-拉丁文-亞塞拜然 | az-Latn-AZ | 0x042C | 1068 |
亞塞拜然語-西里爾文-亞塞拜然 | az-Cyrl-AZ | 0x082C | 2092 |
巴什基爾語 | ba | ||
巴什基爾語-俄羅斯 | ba-RU | ||
巴斯克語 | eu | 0x042D | 1069 |
白俄羅斯語 | be | 0x0423 | 1059 |
白俄羅斯語-白俄羅斯 | be-BY | ||
保加利亞語 | bg | 0x0402 | 1026 |
保加利亞語-保加利亞 | bg-BG | ||
孟加拉語 | bn | ||
孟加拉語-孟加拉 | bg-BD | ||
孟加拉語-印度 | bg-IN | ||
藏語 | bo | ||
藏語-中國 | bo-CN | ||
布列塔尼語 | bo | ||
布列塔尼語-法國 | br-FR | ||
波士尼亞語 | bs | ||
波士尼亞語(西里爾文) | bs-Cyrl | ||
波士尼亞語(西里爾文,波士尼亞與赫塞哥維納) | bs-Cyrl-BA | ||
波士尼亞語(拉丁文) | bs-Latn | ||
波士尼亞語(拉丁文,波士尼亞與赫塞哥維納) | bs-Latn-BA | ||
加泰隆語 | ca | 0x0403 | 1027 |
加泰隆尼亞語(西班牙) | ca-ES | 0x0403 | 1027 |
中文 | zh | ||
中文-中國大陸-拼音排序 | zh-CN | 0x0804 | 2052 |
中文-中國大陸-筆畫排序 | zh-CN_stroke | 0x20804 | |
中文(簡體) | zh-Hans | 0x0004 | |
中文(繁體) | zh-Hant | 0x7C04 | |
中文-香港特別行政區 | zh-HK | 0x0C04 | 3076 |
中文-香港特別行政區部首筆畫序 | zh-HK_radstr | 0x0C04 | 3076 |
中文-澳門特別行政區 | zh-MO | 0x1404 | 5124 |
中文-澳門特別行政區部首筆畫序 | zh-MO_radstr | 0x1404 | 5124 |
中文-澳門特別行政區筆畫序 | zh-MO_stroke | 0x1404 | 5124 |
中文-新加坡 | zh-SG | 0x1004 | 4100 |
中文-新加坡筆畫序 | zh-SG_stroke | 0x1004 | 4100 |
中文-台灣 | zh-TW | 0x0404 | 1028 |
中文-台灣-Bopomofo排序 | zh-TW | 0x30404 | |
中文-台灣拼音序 | zh-TW_pronun | 0x0404 | 1028 |
中文-台灣部首筆畫序 | zh-TW_radstr | 0x0404 | 1028 |
克羅埃西亞語 | hr | 0x041A | 1050 |
科西嘉語 | co | ||
科西嘉語(法國) | co-FR | ||
捷克語 | cs | 0x0405 | 1029 |
捷克語(捷克共和國) | cs-CZ | ||
威爾斯語 | cy | ||
威爾斯語(英國) | cy-GB | ||
丹麥語 | da | 0x0406 | 1030 |
丹麥語(丹麥) | da-DK | 1030 | |
荷蘭語-荷蘭 | nl-nl | 0x0413 | 1043 |
荷蘭語-比利時 | nl-be | 0x0813 | 2067 |
英語-加勒比 | en-029 | ||
英語-澳大利亞 | 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 |
德語-德國-Dictionary排序 | de-DE | 0x0407 | 1031 |
德語-德國-Phone book排序 | de-DE_phoneb | 0x10407 | |
德語-奧地利 | de-AT | 0x0C07 | 3079 |
德語-列支敦斯登 | de-LI | 0x1407 | 5127 |
德語-盧森堡 | de-LU | 0x1007 | 4103 |
德語-瑞士 | de-CH | 0x0807 | 2055 |
下索布語 | dsb | ||
下索布語(德語) | dsb_DE | ||
迪維西語 | dv | ||
迪維西語(馬爾地夫) | dv_MF | ||
希臘語 | el | 0x0408 | 1032 |
希臘語(希臘) | el-GR | 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 |
札那語 | 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 |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.