HTML5中的lang屬性,zh-CN仍是zh-Hans?

1、資源html

先提供資源。若是我弄錯了什麼,請以這些文檔爲準:瀏覽器

W3C文檔IANA已登記的子標籤BCP 47RFC 5646翻譯

2、格式簡介htm

先上一張圖片:blog

一個Language Tags,由①到⑦一共四個子標籤組成。有什麼盤算不清楚的,請參考資源部分提供的文檔。圖片

3、各部分含義ip

①language:主語言,用代碼「zh」表示漢語,小寫。好像對於大小寫沒有強制要求,習慣而已。仍是遵循習慣吧,總讓別人看着彆扭不是彰顯個性的好辦法。
②extlang:翻譯成「擴展的語言」?對於漢語而言,這個部分表示的是普通話和方言。好比「cmn」表示普通話,「yue」表示粵語,「lzh」我也不知道表示什麼。小寫。
③script:書寫格式,漢語不存在西方語言的拼寫變化,只有「簡體」和「繁體」之分。「Hans」表示簡體,「Hant」表示繁體,首字母大寫。
④region:地區,跟漢語有關的地區大概就是中國大陸(CN)、中國臺灣(TW)、中國香港(HK)、中國澳門(MO)、新加坡(SG)這五處。
⑤⑥⑦:你猜……資源

4、方言的困擾文檔

我數了一下,除了「cmn」表示普通話以外,IANA還批准了至少13個方言子標籤,羅列以下:get

cdo、cjy、cpx、czh、czo、gan、hak、hsn、lzh、mnp、nan、wuu、yue

引發困惑的是,這些標籤,既能夠做爲extlang子標籤表示方言(擴展的語言?)也能夠放在language位置做爲主語言。那麼這些標籤和傳統的「zh」標籤是什麼關係呢?IANA把「zh」定義爲「macrolanguage」,搞不清楚怎麼翻譯,微語言?宏語言?仍是語系?BCP 47的觀點認爲漢語包含若干語言,它彷佛認爲漢語的方言能夠視爲獨立的語言。因此,「zh」依然能夠做爲主語言,而後在extlang的位置標示方言,即<html lang="zh-cdo-Hans」>這樣的格式。同時它也支持直接把方言做爲主語言使用,即<html lang="cdo-Hans」>這樣的格式。

弄清方言帶來的困惑以後,我我的的建議是使用「zh」做爲主語言。我不想進行政治討論也不想研究深奧的學術問題,建議只使用「zh」作主語言子標籤的惟一理由是避免混亂。如今爲數很少(就算很少吧)的方言標籤仍是一種很幸福的狀態。別忘了江湖上有着反擊戰中用方言當密語的傳說,而哈爾濱西安成都恐怕又是不一樣的方言。誰知道IANA的大佬們將來會批准出多少箇中國的語言來,都背下來?或者維護代碼的時候,先查一下這是中國方言仍是某個犄角旮旯的外語?

「zh」表示中文;「zh-xxx"仍是表示中文,不過須要考慮方言特性。這樣的表達不會帶來任何誤解。

5、越短越好

W3C的建議是:「The golden rule when creating language tags is to keep the tag as short as possible」。標籤的某些部分確實沒有必要。好比若是不涉及語音合成等應用,extlang部分存在的意義微乎其微,無論你是什麼方言口音,寫出來的是同樣的文字。而region部分對於漢語而言彷佛實意義也不大,有人知道新加坡人說普通話和大陸人有什麼區別嗎,我不太清楚。

因此,W3C的示例就成了最好的用法——「zh-Hans」——中文,簡體。足矣。或者我我的以爲只用「zh」也能夠,混用簡繁能夠有啊。

6、兼容

傳統上,通常使用「zh-CN」,新的標準是否是被全部的瀏覽器支持,這個我真的沒有精力去試一試,或者目前使用「zh-Hans-CN」更保險一些?

7、免責

不能保證內容的正確性。更可靠的手段是閱讀標準文檔。

寫這篇小文,是由於剛剛幫朋友講了一下相關的內容,就順手寫下來了。還能幫到別的網友的話,那是個人榮幸。

雖然提供了四個資源連接,其實這一次我並無再次閱讀。全是靠記憶寫的,若是有什麼錯誤的地方,還請諒解,也請您向我指出。

相關文章
相關標籤/搜索