我們經常需要用縮寫的程式碼來表示一種語言,比如用en表示英語,用de表示德語。ISO 639就是規定語種程式碼的國際標準。
最早的時候,ISO 639規定的程式碼是,用兩個拉丁字母表示一種語言,這被稱為ISO 639-1。但是,兩個拉丁字母最多隻有262=676種組合,而世界上已知的語言總數可能有六七千種,因此明顯是不夠的。所以,後來又規定了ISO 639-2,用三個拉丁字母的組合表示一種語言。
常見語言的ISO 程式碼如下表。
ISO639-1 Code | ISO639-2 Code | 中文名 | 英文名 |
ar | ara | 阿拉伯語 | Arabic |
ko | kor | 朝鮮語 | Korean |
de | deu | 德語 | German |
ru | rus | 俄語 | Russian |
fr | fra | 法語 | French |
zh | zho | 漢語 | Chinese |
la | lat | 拉丁語 | Latin |
pt | por | 葡萄牙語 | Portuguese |
ja | jpn | 日語 | Japanese |
es | spa | 西班牙語 | Spainese |
en | eng | 英語 | English |
it | ita | 義大利語 | Italian |
hi | hin | 印地語 | Hindi |
yi | yid | 意第緒語 | Yiddish |
完整的語言程式碼表請看這裡。
但是隻規定語種程式碼還不夠,在同一種語言中,往往還包括許多種變體,比如中文分為簡體中文和繁體中文兩種,因此還必須規定子程式碼。
以往,人們常用zh-CN表示在中國大陸地區使用的中文,也就是簡體中文,用zh-TW表示在臺灣地區使用的中文,也就是繁體中文。但是,這種表示法很不完善,試問中國大陸地區出版的繁體中文書籍,應該如何用程式碼表示呢?
目前,語言的標籤表示法的國際標準是RFC 4646,名稱是《Tags for Identifying Languages》。
簡單說,這個檔案規定,一種語言的標籤應該按照如下方式排列:
language-script-region-variant-extension-privateuse
1. language:這部分就是ISO 639規定的程式碼,比如中文是zh。
2. script:表示變體,比如簡體漢字是zh-Hans,繁體漢字是zh-Hant。
3. region:表示語言使用的地理區域,比如zh-Hans-CN就是中國大陸使用的簡體中文。
4. variant:表示方言。
5. extension-privateus:表示擴充套件用途和私有標識。
一般約定,language標籤全部小寫,region標籤全部大寫,script標籤只有首字母大寫。不同標籤之間用連字號-連結。
下面列出一些與中文有關的語言標籤。
zh-Hans 簡體中文
zh-Hans-CN 大陸地區使用的簡體中文
zh-Hans-HK 香港地區使用的簡體中文
zh-Hans-MO 澳門使用的簡體中文
zh-Hans-SG 新加坡使用的簡體中文
zh-Hans-TW 臺灣使用的簡體中文
zh-Hant 繁體中文
zh-Hant-CN 大陸地區使用的繁體中文
zh-Hant-HK 香港地區使用的繁體中文
zh-Hant-MO 澳門使用的繁體中文
zh-Hant-SG 新加坡使用的繁體中文
zh-Hant-TW 臺灣使用的繁體中文
此外,還有一些目前仍在使用,但因不符合規範,將被逐步替代(grandfathered)的標籤。
zh-hakka 客家話
zh-cmn 普通話
zh-cmn-Hans 簡體普通話
zh-cmn-Hant 繁體普通話
zh-gan 江西話
zh-guoyu 國語
zh-min 福建話
zh-min-nan 閩南話
zh-wuu 吳語(上海話)
zh-xiang 湖南話
zh-yue 粵語
有一點需要注意,任何合法的標籤都必須經過IANA的認證,已透過認證的標籤可以在這個網頁查到。此外,網上還有一個非官方的標籤搜尋引擎。
[延伸閱讀]
* W3C: Language tags in HTML and XML
(完)