2008年4月17日 星期四

W3C - Language codes,ISO 639 語言代碼,ISO 3166 標準國家代碼,ISO 4217 貨幣代碼

現在有許多網站都有提供多國語系的版本,例如 iGoogle 首頁(http://www.google.com/ig?hl=zh-tw),其中(zh-tw)便是在 Google 繁體中文的代碼。但各家網站所使用的語系代碼都不太相同,例如有些網站就把繁體中文代碼直接簡化成(tw)。其實這些都沒有錯,只要本身系統區分的出來就好。

但是我的想法偏向比較標準的定義,在全球資訊網聯盟(World Wide Web Consortium,簡稱︰W3C)有了相關定義,在 8.1.1 Language codes 中定義了表示法如下︰

language-code = primary-code ( "-" subcode )*
primary-code︰為 ISO 639 兩個字母的語言縮寫。
subcode︰為 ISO 3166 國家代碼

在國際標準化組織(英文:International Organization for Standardization,簡稱︰ISO) ISO 639 為各語言所訂定的語言代碼,在 ISO 639-1 中定義了中文、漢語的語言代碼為(zh)。但是中文又區分為繁體中文及簡體中文,這部份通常是在後面加上使用該語言的國家和地區代碼來作為區分。例如︰繁體中文為中華民國、台灣(tw)在使用,那麼繁體中文的語言代碼就可以定義為(zh-tw);簡體中文為中華人民共和國(cn)在使用,所以簡體中文的語言代碼定義為(zh-cn)。

至於國家和地區代碼就必須參考 ISO 3166 中 ISO 3166-1 所定義的標準國家代碼,其中包含有二位字母、三位字母、數字代碼,在語言區分通常是使用二位字母代碼。我們更可以利用 ISO 3166-1 中所定義的數字代碼作為系統其他資料國家記錄所使用的代碼,例如︰紀錄會員資料的國家別。

另外還有 ISO 4217 為貨幣及基金代碼,這些我們都可以用來作為資料紀錄的標準。

相關資料︰
W3C 全球資訊網聯盟
Wikipedia - 全球資訊網聯盟
W3C - 8.1.1 Language codes

ISO 國際標準化組織的官方網站
Wikipedia - 國際標準化組織
Wikipedia - ISO 639
Wikipedia - ISO 639-1
Wikipedia - ISO 3166
Wikipedia - ISO 3166-1
Wikipedia - ISO 4217

2 則留言:

wangaguo 提到...

"language-code︰為 ISO 639 兩個字母的語言縮寫。"
寫成
"primary-code︰為 ISO 639 兩個字母的語言縮寫。"可能比較清楚。

這三個狀況zh-TW、zh_TW、zh-tw
主要我想了解的問題,一是"-"或"_"您已說明了答案,二是大寫或小寫,想請問您有無看法?

Ian 懶惰蟲 提到...

Google 在繁體中文通常是用『zh-TW』來表示,例如︰http://www.google.com.tw/ig?hl=zh-TW。不過,你將 hl 參數值改為 zh-tw、zh_TW,也都沒有問題。

我個人是習慣都用小寫『zh-tw』來表示。