iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 9
5
Modern Web

前端路上那些重要與不重要的小事系列 第 9

Day09:小事之 HTML lang Attribute

今天要開始來說說網頁相關的東西,不過因為已經很多大大們寫了非常基礎且完整的文章,所以這次所有講到的 HTML、CSS應該都會偏比較冷門,很可能久久才會遇到一次的東西,不過有些個人是覺得還挺有趣的,說不定哪天可以派上用場(?)

正值冬天,為了避免太冷,大家可以裹著棉被觀看(大誤~

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
	
</body>
</html>

上面的 HTML 區塊的內容,相信剛開始學習的人,看到一定非常熟悉
因為所有的教學都會出現這個畫面XD

從第一行開始談起,目前看到的<!DOCTYPE html>宣告,是 HTML5 的宣告方式。

在 HTML5 之前的 HTML 4.01 則有三種宣告方式[1]:
分別是 Strict(嚴格)、Transitional(過渡)、Frameset(框架集)宣告模式,最常看到的是使用Transitional過渡宣告,在此不細講。

不過有挖到早期製作的網站程式碼,前面兩行真是有夠長,所以後來看到 HTML5 的宣告只有<!DOCTYPE html>那麼短真是感動莫名。

lang 屬性

再來要來說說lang屬性

lang屬性指定頁面內容的自然語言。它是 html 標籤的一個屬性,用於設定頁面上所有文字的語言。倘若頁面上的部分文字使用不同語言,你可以給環繞文字的元素的語言屬性賦一個不同的值。[2]
  • 在HTML 4.01中,lang屬性不能用於:<base>,<frame>,<frame>,<hr>,<iframe>,<param>和<script>
  • 在HTML5中,lang屬性可用於任何HTML元素。

而通常一個網頁很少會參雜很多不同的語言,所以一般最常看到的用法是直接用在<html>如下:

<!DOCTYPE html>
<html lang="zh-TW">

最常看到台灣地區使用 zh-TW,其他國家語言可以參照對照表[3]
不過當你去看這個對照表時,會發現一件事,就是...為什麼找不到 zh-TW !!
找到中文欄位你只會看到如下的表格:

因為最新的語言標籤標記法的國際標準是IETF的BCP 47(Best Current Practice)
所有子標籤都可在IANA registry查询

在2007年的國際標準 ISO 639-3中,認定漢語文(zh)是一個大語文(macrolanguage),包含13種語文,因此 zh 不能單獨使用。而 CN、TW 屬於區域代碼,BCP 47 中建議使用具體語種,因此使用繁體中文的話,lang 應該要寫成 zh-Hant。

以 zh 為開頭的語言有(以下只有部分,其餘請上IANA registry查询):

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 臺灣使用的繁體中文

一般寫法是language標籤應全部小寫,region標籤全部大寫,script標籤只有首字母大寫。不同標籤之間用連字型大小-串聯起來。不過不管大小寫,目前瀏覽器都能處理,只不過可能是實際現況,用舊式的zh-TW相容性似乎要高一些。

對這部分有興趣的人可以看參考資料[4]
資料實在太多,寫完應該就變成論文了XDDDDD

另外,寫在 <html> 上面的 lang ,對於區域搜尋有加分效果,因此如果網頁主要推廣區域在台灣,想在台灣地區易被搜尋,那可以寫成 <html lang="zh-TW">

HTML 5 中的 lang 屬性使用

上面有提到在HTML5中,lang屬性可用於任何HTML元素。
也就是說如果整份 html 的語言是用 en,那在網頁中某個區塊想要另外標示為其他語言,那麼就可以直接寫在那個元素上,例如:<p lang="fr">Je suis français</p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <p lang="fr">Je suis français</p>
</body>
</html>

天啊!沒想到寫比較冷門的東西反而篇幅比較長(倒地~/images/emoticon/emoticon20.gif

各位看倌明天見啦~

參考資料:
[1] https://www.w3.org/wiki/Doctypes_and_markup_styles
[2] https://www.w3.org/International/questions/qa-lang-why
[3] https://www.w3schools.com/tags/ref_language_codes.asp
[4] https://www.zhihu.com/question/20797118


上一篇
Day08:小事之與案主溝通 - 下篇
下一篇
Day10:小事之 HTML dir Attribute
系列文
前端路上那些重要與不重要的小事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
Ho.Chun
iT邦新手 5 級 ‧ 2019-01-05 19:32:07

學習了! 感謝/images/emoticon/emoticon41.gif

我要留言

立即登入留言