筆者在今天修改網頁模板時發現了lang屬性,大可能是模板都是歪果仁寫的,因此,通常你們在網頁模板裏都會見到 這樣的寫法,由於他們的語言是英文,因此這樣寫無可厚非。瀏覽器
可是咱們在修改的時候應該改爲什麼樣子的呢?是 仍是 仍是 ?markdown
說實話,筆者以前一直沒有注意這個,因此在寫下本文以前也一直出於懵逼狀態。框架
因而,筆者查找了一些資料,整理成此文。搜索引擎
HTML 的 lang 屬性可用於網頁或部分網頁的語言。這對搜索引擎和瀏覽器是有幫助的。atom
根據 W3C 推薦標準,咱們應該經過 標籤中的 lang 屬性對每張頁面中的主要語言進行聲明,好比:code
lang屬性的取值應該遵循 《BCP 47 - Tags for Identifying Languages》
對因而否可使用 , [4.1.2. Using Extended Language Subtags] 中說明以下:blog
隨着本文件的採用,特定的ISO 639-3子標籤可用於識別這些不一樣語言系列或分組中包含的語言。這提供了之前不存在的語言標籤選擇:索引
也就是說,單一的 zh 和 zh-CN 均屬於廢棄用法。圖片
問題主要在於,zh 如今不是語言code了,而是macrolang,能做爲語言code的是cmn(國語)、yue(粵語)、wuu(吳語)等。開發
一般建議寫成 zh-cmn 而不是光寫 cmn,主要是考慮兼容性(至少可匹配 zh),有很多軟件和框架尚未據此更新。
zh-CN 的問題還在於,其實多數狀況下標記的是簡體中文,可是不恰當的使用了地區,這致使一樣用簡體中文的 zh-SG(新加坡)等沒法匹配。更典型的是 zh-TW 和 zh-HK。
因此其實應該使用 zh-Hans / zh-Hant 來表示簡體和繁體。那麼完整的寫法就是 zh-cmn-Hans,表示簡體中文書寫的普通話/國語。通常而言沒有必要加地區代碼,除非要表示地區特異性,通常是詞彙不同(好比維基百科的大陸簡體和新馬簡體)。