“lang”属性、“hreflang”属性、“srclang”属性
サンプルコード
文書の記述言語を示す
<html lang="ja">
リンク先の記述言語を示す
<a href="en/sample.html" rel="alternate" hreflang="en-US">リンク</a>
翻訳字幕の記述言語を示す
<track src="sample_fr.vtt" kind="subtitles" srclang="fr">
“lang”属性は要素の内容がどのような言語で記述されているかを示します。
“hreflang”属性はリンク先の文書の記述言語を示します。
“srclang”属性は“track”要素においてテキストトラックの記述言語を示します。
属性値は言語コードを利用します。
言語コード
IETF言語タグとは?
“IETF言語タグ(IETF Language Tag)”は“IETF”によって策定された技術仕様で、言語や文字体系を表すために使用されます。“BCP 47”の仕様書で標準化されていることから“BCP47言語タグ(BCP 47 Language Tag)”とも言います。
“IETF(The Internet Engineering Task Force)”は各種インターネット技術の標準化を推進する為に設立された団体です。IETFによって策定された技術仕様は“RFC(Request For Comments)”として発行され、現行のIETF言語タグは2009年にRFC 5646によって発行されました。
IETF言語タグはISO 639やISO 15924といった複数の仕様書で定義された“下位タグ”を組み合わせることで言語や表記体系を表すために使用されます。
IETF言語タグはHTTPやHTMLなど多くの技術標準に使用されています。HTMLにおいて“lang”属性、“hreflang”属性、“srclang”属性の値はこの“IETF言語タグ”で記述します。
URLの国別コードトップレベルドメイン(ccTLD)に使用される国名コード(日本を表す“.jp”など)とは異なることを注意する必要があります。
IETF言語タグの書式
IETF言語タグは1個以上の“下位タグ(subtags)”からなります。
下位タグには以下のようなものがあり、複数記述する場合はハイフン(“-”属)で区切って記述します。
- “language(言語)”タグ
- ISO 639-1、ISO 639-2、ISO 639-3などによって定義される言語コード
- “script(文字体系)”タグ
- ISO 15924によって定義される文字体系の略号
- “region(地域)”タグ
- ISO 3166-1 alpha-2によって定義される国名コード
また、さらに言語を絞り込むために以下の下位タグも定義されています。
- “variant(異体)”タグ
- “extension(拡張)”タグ
- “private use(私用)”タグ
“language”タグのみ必須であり、ほとんどの場合、言語タグで使用されるのは“language”タグのみ、もしくは“language”タグと“region”タグの組み合わせです。
例えば、文書が“アメリカ英語”で記述されていることを示す場合は“language”タグを“en(英語)”、“region”タグを“US(アメリカ)”として記述します。
<html lang="en-US">
日本語の場合“language”タグが“ja(日本語)”、“region”タグが“JP(日本)”なので“ja-JP”となりますが、日本語の場合は一般的に地域を区別する必要はないので通常は“language”タグのみの“ja”とします。
<html lang="ja">
言語タグの大文字と小文字は区別されませんが、一般的に“script”タグは頭文字のみ大文字、“region”タグはすべて大文字、他のタグはすべて小文字で記述されます。
主な言語コードの一覧
以下は主な言語コードです。
言語コード | 言語 |
---|---|
ar | アラビア語 |
bn | ベンガル語 |
cs | チェコ語 |
de | ドイツ語 |
el | ギリシャ語 |
en | 英語 |
en-GB | 英語(イギリス) |
en-US | 英語(アメリカ) |
eo | エスペラント語 |
es | スペイン語 |
fa | ペルシア語 |
fi | フィンランド語 |
fr | フランス語 |
he | ヘブライ語 |
hi | ヒンディー語 |
id | インドネシア語 |
it | イタリア語 |
ja | 日本語 |
km | クメール語(カンボジア語) |
ko | 朝鮮語(韓国語) |
la | ラテン語 |
mn | モンゴル語 |
ms | マレー語 |
my | ビルマ語 |
no | ノルウェー語 |
ojp | 古い日本語 |
pl | ポーランド語 |
pt | ポルトガル語 |
ru | ロシア語 |
sv | スウェーデン語 |
th | タイ語 |
tl | タガログ語(フィリピン語) |
tr | トルコ語 |
ur | ウルドゥー語 |
vi | ベトナム語 |
zh | 中国語 |
zh-CN | 中国語(大陸) |
zh-TW | 中国語(台湾) |
zh-Hans | 中国語(簡体字) |
zh-Hant | 中国語(繁体字) |
使用例
文書の記述言語を示す
<html lang="ja">
リンク先の文書の記述言語を示す
“html”要素で文書の翻訳版を示す
<html lang="ja">
“a”要素でリンク先の文書の翻訳版を示す
<a href="sample.html" hreflang="ja">
文書の翻訳版を示す
“link”要素で文書の翻訳版を示す
<link rel="alternate" href="en/sample.html" hreflang="en">
“a”要素でリンク先が文書の翻訳版であることを示す
<a rel="alternate" href="en/sample.html" hreflang="en">英語版</a>
文書の“hreflang”属性で示された言語での翻訳版を示します。
テキストトラックの記述言語を示す
<track src="sample.vtt" srclang="ja">
“kind”属性を省略した場合、もしくは“kind”属性の属性値が“subtitles”の場合は“srclang”属性は必須属性です。
翻訳字幕の記述言語を示す
<track src="sample_fr.vtt" kind="subtitles" srclang="ja">