HTMLタグの lang 属性には、HTMLで使用する言語を指定します。lang 属性は省略可能です。
日本語の場合は、lang属性に「ja」を指定する。
<html lang="ja">
lang属性に「ja-JP」を指定してもよい。
<html lang="ja-JP">
2通りの方法があるが、どちらでも違いはない。
HTML5においてlangはグローバル属性であるため、すべてのHTMLタグに指定できる。ただし、一般的にhtmlタグに指定することが多い。
lang属性には、次の言語を指定できる。
値 | 意味 |
---|---|
ar | アラビア語 |
de | ドイツ語 |
en | 英語 |
es | スペイン語 |
fr | フランス語 |
it | イタリア語 |
ja | 日本語 |
ko | 韓国語 |
pt | ポルトガル語 |
ru | ロシア語 |
th | タイ語 |
tr | トルコ語 |
vi | ベトナム語 |
zh | 中国語 |
言語に国を指定することもできる。
値 | 意味 |
---|---|
en-AU | 英語(オーストラリア) |
en-CA | 英語(カナダ) |
en-GB | 英語(イギリス) |
en-NZ | 英語(ニュージーランド) |
en-SG | 英語(シンガポール) |
en-US | 英語(アメリカ) |
fr-CA | フランス語(カナダ) |
fr-FR | フランス語(フランス) |
ja-JP | 日本語(日本) |
ko-KP | 朝鮮語(北朝鮮) |
ko-KR | 韓国語(韓国) |
pt-BR | ポルトガル語(ブラジル) |
pt-PT | ポルトガル語(ポルトガル) |
th-TH | タイ語(タイ) |
zh-cmn-Hans | 中国語・普通話・簡体字 |
zh-cmn-Hans-CN | 中国語・普通話・簡体字(中国大陸) |
zh-cmn-Hant | 中国語・普通話・繁体字 |
zh-cmn-Hant-TW | 中国語・台湾華語・繁体字(台湾) |
zh-yue-Hant | 中国語・広東語・繁体字 |
zh-yue-Hant-HK | 中国語・広東語・繁体字(香港) |
言語と国を指定できる理由は、同じ言語でも地域によってルールが異なるからである。
たとえば、日付の表記は同じ英語であってもイギリスとアメリカで異なる。
国 | 日付の表記 |
---|---|
イギリス | 19th November 2019 |
アメリカ | November 19th, 2019 |
日付の年月日をどのような順番で表記するかは、英語という言語によって規定されているのではなく、地域の文化によって違うためである。
この考え方を理解できれば、英語で日本人の名前を「姓-名」と「名-姓」のどちらで書くか、といった議論はナンセンスだとわかる。 実際、Xi Jinping(習近平)やMoon Jae-in(文在寅)のように、中国人や韓国人の名前は英語の文献であっても「姓-名」の順で表記する。
日本語(ja)は日本(JP)でしか使われていないため、lang="ja"
と lang="ja-JP"
に違いはない。
バージョン | 分類 |
---|---|
HTML 4.01 Transitional | 国際化属性 |
HTML 4.01 Strict | 国際化属性 |
XHTML 1.0 Strict | 国際化属性 |
HTML5 | グローバル属性 |
JavaScriptからはHTMLElementインタフェースを通じてlang属性にアクセスできる。
lang属性が value で始まる値である要素タイプ element にマッチする。たとえば、パターン
p[lang|="en"]
は、lang属性の値が
"en-US"
や
"en-GB"
であるp要素タイプにマッチする。
p要素のlang属性が「en-」で始まる値であれば赤く表示する例を次に示す。
<html>
<head>
<style>
p[lang|="en"] { color: red }
</style>
</head>
<body>
<p lang="ja-JP">Japan</p>
<p lang="en-UK">United Kingdom</p>
<p lang="en-US">United States of America</p>
</body>
</html>
上記の表示例を次に示す。
Japan
United Kingdom
United States of America
Web Hypertext Application Technology Working Group (2022) "Semantics, structure, and APIs of HTML documents" HTML Living Standard