IETF言語タグ
IETF言語タグ(英語: IETF language tag)は、IETF の BCP47(Best Current Practice。現在は RFC 5646 と RFC 4647)により定義される技術仕様である。これは HTTP[1]、HTML[2]、XML[3]、PNG[4]、のような多くの技術標準において使われている。
書式
[編集]言語タグは、ハイフンによって分けられる、1つ以上の「下位タグ (subtag)」から構成される。一般には下位タグは次の順番で書かれる。
- language(言語)
- script(文字体系)
- region(地域)
- variant(異体)
- extension(拡張)
- private use(私用)
よって、書式はおおよそ次のようになる。(このうち language タグのみ必須)
language-script-region-variant-extension-privateuse
それぞれの下位タグは以下の規格から派生している。
- language : ISO 639-1、ISO 639-2、ISO 639-3、ISO 639-5[5]
- script : ISO 15924
- region : ISO 3166-1 alpha-2、UN M.49
- variant : (独自のものにつき派生元の規格なし)
- extension : (将来の拡張のための予約領域につき派生元の規格なし)
- privateuse : (私的利用部分につき派生元の規格なし)
IANA によって管理されている Language Subtag Registry(言語下位タグレジストリ)には、現在公開されている有効な下位タグの一覧がある。
下位タグにおいてはアルファベットの大文字小文字を区別しないが、仕様では言語下位タグレジストリと同じ方法で、つまり region 下位タグについてはすべて大文字で、script 下位タグについては頭文字のみを大文字で、その他すべての下位タグについては小文字で、記すよう推奨している。
言語タグの使い方としてよく見られるスタイルは、単に language 下位タグのみを使うか、language 下位タグと region 下位タグを使う方法である。例えば、en
は単一の language 下位タグ(ISO 639-1より)から構成され、英語を表す。一方、en-CA
は、language 下位タグの後に region 下位タグ CA
(ISO 3166-1 より)をくっつけて構成され、カナダ英語を表す。
歴史
[編集]IETF言語タグは、1995年5月発行の RFC 1766 で初めて定義された。これは2001年1月に RFC 3066 で置き換えられた。これは ISO 639-2 コードを追加し(以前は ISO 639-1 コードのみが許容されていた)、初めて下位タグに数字を使うことを認めた。
仕様の次の版は、2006年9月発行の RFC 4646(仕様の主要部分)と RFC 4647(マッチングの振る舞いについて)であった。RFC 4646 は言語タグにより構造化された書式を導入し、以前から用いられていた ISO 639(part 1と2)と ISO 3166 に加えて ISO 15924 と UN M.49 を利用しており、下位タグのレジストリを古いものから新しいものに置き換えている。なおこれ以前に定義されていたタグで、新しい構造に適合しないものについては、RFC 3066 との互換性を維持するために継承されている。
IETFワーキンググループは仕様の次の版を準備しているところであり、現在承認作業中である。この版の主な目的は言語下位タグレジストリに ISO 639-3 を取り入れることにある[6]。
言語タグの例
[編集]以下は BCP47 から抜粋したものである[7]。
- language 下位タグのみ:
de
(ドイツ語)ja
(日本語)i-enochian
(grandfathered タグの例)
- language-script:
zh-Hant
(繁体字で書かれた中国語)zh-Hans
(簡体字で書かれた中国語)sr-Cyrl
(キリル文字で書かれたセルビア語)sr-Latn
(ラテン文字で書かれたセルビア語)
- language-script-region:
zh-Hans-CN
(中国大陸にて用いられる、簡体字で書かれた中国語)sr-Latn-CS
(セルビアモンテネグロにて用いられる、ラテン文字で書かれたセルビア語)
- language-variant:
sl-nedis
(スロベニア語 Nadiza 方言)
- language-region-variant:
de-CH-1901
(スイスにて用いられる、ドイツ語1901年正書法で書かれたドイツ語)sl-IT-nedis
(イタリアにて用いられる、スロベニア語 Nadiza 方言)
- language-script-region-variant:
sl-Latn-IT-nedis
(イタリアにて用いられる、ラテン文字で書かれたスロベニア語 Nadiza 方言。注:sl
は暗黙裡にLatn
を含んでいるので、このタグは推奨されない)
- language-region:
en-US
(アメリカにて用いられる英語)es-419
(ラテンアメリカとカリブ地域にて用いられるスペイン語、UN 地域コード利用)
など。
脚注
[編集]- ^ RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, section 3.1.3.1. Language Tags
- ^ HTML Living Standard, section 3.2.6.2 The lang and xml:lang attributes
- ^ Extensible Markup Language (XML) 1.0 (Fifth Edition), section 2.12
- ^ Portable Network Graphics (PNG) Specification (Second Edition), section 11.3.4.5
- ^ RFC 5646, section 2.2.1
- ^ Language Tag Registry Update charter
- ^ Examples of Language Tags, Tags for Identifying Languages, 2006.
関連項目
[編集]外部リンク
[編集]- BCP 47 - 現在の仕様
- Language Subtag Registry(言語下位タグレジストリ) - IANA により管理
- 検索ツール
- Language tags in HTML and XML - W3C による概要説明
- Language Tags - 非公式サイト、さまざまなツールがある
- IANA Language Subtag Registry Search - 非公式サイト、下位タグを検索できる。