IETF BCP 47言語タグは、インターネット上で人間の言語を識別するために使用される標準化されたコードです。 [1]タグ構造は、インターネット技術タスクフォース(IETF)[1]によってBest Current Practice(BCP)47で標準化されています。[1]サブタグはIANA言語サブタグレジストリによって管理されています。[2] [3] [4]
国、地域、または書記体系(スクリプト)の言語バリアントを区別するために、IETF 言語タグは、 ISO 639、ISO 15924、ISO 3166-1、およびUN M.49などの他の標準のサブタグを組み合わせています。たとえば、タグは英語、ラテンアメリカスペイン語、ロマンシュ語、キリル文字で書かれたセルビア語、台湾enで話されている伝統的な漢字を使用する閩南語、香港で話されている伝統的な漢字を使用する広東語、およびチューリッヒドイツ語を表します。
es-419rm-sursilvsr-Cyrlnan-Hant-TWyue-Hant-HKgsw-u-sd-chzh
これはHTTP、[5]、 HTML、[6]、 XML [7]、PNG [ 8 ]などのコンピューティング標準で使用されます。
歴史
IETF 言語タグは、1995 年 3 月に発行されたHarald Tveit Alvestrandが編集した RFC 1766 で初めて定義されました。タグは ISO 639 の 2 文字の言語コードと ISO 3166 の 2 文字の国コードを使用し、3 文字から 8 文字の異体またはスクリプトのサブタグを含むタグ全体の登録を許可しました。
2001 年 1 月、これは RFC 3066 によって更新され、 ISO 639-2の 3 文字コードの使用が追加され、数字を含むサブタグが許可され、言語タグの一致を支援するために HTTP/1.1 の言語範囲の概念が採用されました。
仕様の次の改訂は、2006 年 9 月に Addison Philips とMark Davisによって編集された RFC 4646 (仕様の主要部分)と、一致動作を扱う RFC 4647 [9]の発行で行われました。RFC 4646 では、言語タグのより構造化された形式が導入され、ISO 15924 の 4 文字のスクリプト コードと UN M.49 の 3 桁の地理的地域コードの使用が追加され、古いタグのレジストリが新しいサブタグのレジストリに置き換えられました。新しい構造に準拠しない以前に定義された少数のタグは、RFC 3066 との互換性を維持するために 継承されました。
仕様の現在のバージョンであるRFC 5646 [10]は2009年9月に公開されました。この改訂の主な目的は、 ISO 639とBCP 47間の相互運用性を高めるために、 ISO 639-3と639-5の3文字コードを言語サブタグレジストリに組み込むことでした。[11]
言語タグの構文
各言語タグは、ハイフン (-) で区切られた 1 つ以上の「サブタグ」で構成されます。各サブタグは、基本的なラテン文字または数字のみで構成されます。
x-プレフィックスで始まる私的使用言語タグと、旧言語タグ レジストリに以前登録されていた i-プレフィックスで始まる言語タグを含む旧言語タグを除き、サブタグは次の順序で出現します。
- ISO 639-1 (2002)の 2 文字の言語コード、またはISO 639-2 (1998)、ISO 639-3 (2007)、または ISO 639-5 (2008)の 3 文字のコードに基づく、または BCP 47プロセスを通じて登録され、 5文字から 8 文字で構成される単一の主要言語サブタグ。
- 最大 3 つのオプションの拡張言語サブタグ。それぞれ 3 文字で構成され、ハイフンで区切られます。(現在、同等の優先プライマリ言語サブタグがない拡張言語サブタグは、言語サブタグ レジストリに登録されていません。言語タグのこのコンポーネントは、下位互換性と ISO 639 の将来の部分を可能にするために保存されています。)
- オプションのスクリプト サブタグ。ISO 15924の 4 文字のスクリプト コードに基づいています(通常はTitle Caseで記述されます)。
- ISO 3166-1 alpha-2の 2 文字の国コード(通常は大文字で記述)、または地理的地域を表すUN M.49の 3 桁のコードに基づくオプションの地域サブタグ。
- オプションのバリアント サブタグ。ハイフンで区切られ、それぞれ 5 ~ 8 文字、または数字で始まる 4 文字で構成されます (バリアント サブタグは IANA に登録されており、外部標準には関連付けられていません)。
- オプションの拡張サブタグ。ハイフンで区切られ、それぞれ 1 文字(文字xを除く)とハイフンで構成され、その後にハイフンで区切られた 2 文字から 8 文字までの 1 つ以上のサブタグが続きます。
- オプションの私的使用サブタグ。文字xとハイフンで構成され、その後にハイフンで区切られた 1 ~ 8 文字のサブタグが続きます。
サブタグは大文字と小文字を区別しませんが、仕様では言語サブタグ レジストリと同じ大文字と小文字を使用することを推奨しています。つまり、地域サブタグは大文字、スクリプト サブタグはタイトル ケース、その他のサブタグはすべて小文字です。この大文字の使用は、基礎となる ISO 標準の推奨事項に従います。
オプションのスクリプトと地域のサブタグは、言語タグに識別情報を追加しない場合は省略することをお勧めします。たとえば、スペイン語はラテン文字で記述されることが予想されるため、es-Latnよりもesが優先されます。また、日本で使用される日本語は他の地域で使用される日本語と大きく変わらない ため、 ja-JPよりもjaが優先されます。
すべての言語領域を有効な地域サブタグで表せるわけではありません。主要言語の国内地域方言は、変種サブタグとして登録されます。たとえば、カタロニア語のバレンシア変種のvalencia変種サブタグは、言語サブタグ レジストリにプレフィックスcaで登録されています。この方言はほぼスペインでのみ話されているため、地域サブタグES は通常省略できます。
さらに、ラテン語などの伝統的な文字や文字自体を参照しない文字タグもあり、これらは通常Zで始まります。たとえば、Zsye は絵文字、Zmthは数学表記、Zxxx は未記述の文書、Zyyy は未確定の文字を参照します。
IETF 言語タグは、多くのアプリケーションでロケール識別子として使用されています。RFC 4647 で説明されている戦略が適切でない場合は、これらのアプリケーションでロケールの定義、エンコード、および一致に関する独自の戦略を確立する必要がある場合があります。
IETF 言語タグの使用、解釈、およびマッチングは、現在 RFC 5646 および RFC 4647 で定義されています。言語サブタグ レジストリには、現在有効なすべてのパブリック サブタグがリストされています。プライベート使用のサブタグは実装に依存し、それらを使用するサード パーティ間のプライベート契約の対象となるため、レジストリには含まれていません。これらのプライベート契約は BCP 47 の範囲外です。
一般的な主要言語サブタグのリスト
以下は、最も一般的に使用される主要言語サブタグの一部の一覧です。この一覧は主要言語サブタグのごく一部 (2% 未満) を表しています。詳細については、言語サブタグ レジストリに直接問い合わせてください。
他の規格との関係
一部のタイプのサブタグはISOまたはUNコア標準から派生していますが、これらの標準に完全に従っているわけではありません。そうすると、言語タグの意味が時間の経過とともに変化する可能性があります。特に、ISO 639、ISO 15924、ISO 3166、またはUN M49によって割り当てられたコードから派生したサブタグは、コードが対応するコア標準から削除された場合でも、有効な (ただし非推奨の) サブタグのままです。標準が後で削除されたコードに新しい意味を割り当てた場合でも、対応するサブタグは古い意味を保持します。
この安定性は RFC 4646 で導入されました。
ISO 639-3 および ISO 639-1
RFC 4646では「拡張言語サブタグ」( extlangと呼ばれることもある)の概念が定義されていたが、当時はそのようなサブタグは登録されていなかった。[13] [検証失敗] [14] [検証失敗]
RFC 5645 および RFC 5646 では、レジストリにまだ存在していなかったすべての言語のISO 639-3コードに対応するプライマリ言語サブタグが追加されました。さらに、特定のマクロ言語に含まれる言語のコードは、拡張言語サブタグとして登録されました。手話も、プレフィックスsgnで extlang として登録されました。これらの言語は、含まれる言語のサブタグのみ (北京語の場合はcmn ) または言語と extlang の組み合わせ ( zh-cmn ) のいずれかで表すことができます。ほとんどの目的には、最初のオプションが推奨されます。2 番目のオプションは「extlang 形式」と呼ばれ、RFC 5646 で新しく追加されました。
RFC 4646 より前に登録され、現在は「継承」または「冗長」に分類されているタグ全体 (新しい構文に適合するかどうかによって異なります) は、対応する ISO 639-3 ベースの言語サブタグ (存在する場合) に置き換えられ、非推奨となっています。いくつか例を挙げると、閩南語(中国語)ではzh-min-nanよりもnan が推奨されます。客家語 (中国語)ではi-hakやzh-hakkaよりもhakが推奨されます。アメリカ手話ではsgn-USよりもaseが推奨されます。
Windows Vista以降のバージョンのMicrosoft WindowsはRFC 4646をサポートしています。[15]
ISO 639-5 および ISO 639-1/2
ISO 639-5 は、言語コレクションをアルファ 3 コードで定義しますが、これは ISO 639-2 で最初にエンコードされた方法とは異なります (ISO 639-1 にすでに存在する 1 つのコード、 ISO 639-1 ではbh、 ISO 639-2 ではbihとして包括的にエンコードされたビハール語を含みます)。具体的には、言語コレクションの一部が排他的に定義されるのではなく、言語コレクションはすべて ISO 639-5 で包括的に定義されるようになりました。つまり、言語コレクションの範囲は以前よりも広くなり、場合によっては ISO 639-2 内ですでに個別にエンコードされていた言語を包含できることもあります。
たとえば、ISO 639-2コードafaは以前は「アフロアジア語(その他)」という名前に関連付けられており、すでに独自のコードを持つアラビア語などの言語は除外されていました。ISO 639-5では、このコレクションは「アフロアジア語」と名付けられ、そのような言語がすべて含まれています。ISO 639-2は2009年に排他的な名前を、包括的なISO 639-5の名前と一致するように変更しました。[16]
これらのコレクションの古い (排他的な) 定義にまだ依存している可能性のある実装が壊れるのを避けるために、ISO 639-5 では、ISO 639-2 ですでにエンコードされているすべてのコレクションに対してグループ化タイプ属性を定義します (このようなグループ化タイプは、ISO 639-5 でのみ追加された新しいコレクションに対しては定義されていません)。
BCP 47 は、言語コレクションのサブタグを識別するための「スコープ」プロパティを定義します。ただし、特定のコレクションを包括的または排他的として定義しておらず、これらのサブタグの言語サブタグ レジストリの説明フィールドは ISO 639-5 (包括的) の名前と一致していますが、ISO 639-5 グループ化タイプ属性は使用していません。その結果、コレクションのプライマリ言語サブタグを含む BCP 47 言語タグは、コレクションが包括的であるか排他的であるかが不明瞭になる可能性があります。
ISO 639-5 では、これらのコレクションのメンバーとなる言語は正確には定義されていません。これらのコレクションの包括的な定義を使用して、コレクションの階層的な分類のみが定義されています。このため、RFC 5646 では、ほとんどのアプリケーションで言語コレクションにサブタグを使用することは推奨されていませんが、「複数の言語」や「未定」など、意味がさらに限定されていないサブタグよりもサブタグの方が好まれます。
対照的に、マクロ言語内の個々の言語の分類は、ISO 639-3 と言語サブタグ レジストリの両方で標準化されています。
ISO 15924、ISO/IEC 10646、Unicode
スクリプト サブタグは、 ISO 15924で定義されたコード リストから、RFC 4646 が公開されたときに初めて言語サブタグ レジストリに追加されました。スクリプト サブタグは、プライマリ言語サブタグと拡張言語サブタグの後、ただし地域サブタグやバリアント サブタグなどの他の種類のサブタグの前に、言語タグにエンコードされます。
一部の主要言語サブタグは、「Suppress-Script」というプロパティで定義されています。これは、別のスクリプトで記述できる場合でも、言語に対して通常デフォルトで単一のスクリプトが想定される場合を示します。このような場合は、スクリプト サブタグを省略して、一致の成功率を高めることをお勧めします。必要に応じて、区別するために別のスクリプト サブタグを追加することもできます。たとえば、ほとんどのコンテキストでは、 yi がyi-Hebrよりも推奨されます。これは、イディッシュ語に対してはヘブライ語のスクリプト サブタグが想定されるためです。
別の例として、zh-Hans-SG はzh-Hansと同等であると考えられます。これは、地域コードが重要ではない可能性が高いためです。シンガポールで使用される中国語の書き方は、中国語が書かれている他の国と同じ簡体字中国語文字を使用します。ただし、スクリプト サブタグは重要であるため、維持されます。
ISO 15924 には、 UnicodeおよびISO/IEC 10646内で統合されているスクリプト異体 (たとえば、中国語の簡体字と繁体字を表すHansとHant ) のコードが含まれています。これらのスクリプト異体は、ほとんどの場合書誌目的でエンコードされますが、言語の観点からは必ずしも重要ではありません (たとえば、ラテン文字のフラクトゥール語とゲール語の異体を表すLatfとLatgスクリプト コードは、Unicode および ISO/IEC 10646 ではほとんどが通常のラテン文字でエンコードされています)。これらは、言語タグで、文字、発音区別符号、およびデフォルトの書記素クラスターとしての二重音字/三重音字の異なる分析、または文字の大文字/小文字のルールの違いによる綴り方や意味の違いを明らかにするために役立つ場合があります。
ISO 3166-1およびUN M.49
2 文字の地域サブタグは、ISO 3166-1で割り当てられた、または「例外的に予約されている」コードに基づいています。 ISO 3166 保守機関が、以前別の国に割り当てられていたコードを再割り当てする場合、そのコードに対応する既存の BCP 47 サブタグはその意味を保持し、UN M.49に基づく新しい地域サブタグが新しい国に登録されます。 UN M.49 は、南米などの地理的地域の数値地域サブタグのソースでもあります005。 経済地域の UN M.49 コードは使用できません。
地域サブタグは、特定の地域で「使用されている」言語の変種を指定するために使用されます。変種が地域的な性質を持ち、イギリス英語( en-GB ) とアメリカ英語( en-US ) を区別する場合のように、関係する国を特定することで適切に把握できる場合に適切です。簡体字と繁体字の中国語の文字のように、違いが文字または文字変種である場合は、地域サブタグではなく文字サブタグで表現する必要があります。この例では、zh-CN/zh-SG/zh-MYとzh-TW/zh-HK/zh-MOの代わりに、 zh- Hansとzh-Hant を使用する必要があります。
地域的な変種と考えられる言語に固有の言語サブタグが存在する場合、言語と地域の組み合わせではなく、より具体的なサブタグを使用する方が望ましい場合がよくあります。たとえば、ar-DZ (アルジェリアで使用されるアラビア語) は、アルジェリアのアラビア語の場合にはarqと表現した方が適切です。
コア基準の遵守
言語の識別に関する意見の相違は、BCP 47 や、それを構成するコア標準にまで及ぶ可能性があります。たとえば、パンジャブ語を話す人の中には、ISO 639-3 の [pan]「パンジャブ語」と [pnb]「西パンジャブ語」の区別は不正確である (つまり、この 2 つは同じ言語であると考えている)、アラビア文字のサブバリエーションはISO 15924 で別々にエンコードされる必要がある (たとえば、ラテン文字のフラクトゥールスタイルとゲールスタイルのように)、BCP 47 はこれらの見解を反映する、またはそれらに関するコア標準を無効にすべきである、と考えている人もいます。
BCP 47は、この種の判断をコア標準に委任しており、コア標準を覆したり置き換えたりしようとはしていない。バリアントサブタグと(理論上は)主要言語サブタグは個別に登録できるが、コア標準に矛盾する方法では登録できない。[17]
拡張機能
拡張サブタグ(拡張言語サブタグと混同しないでください) を使用すると、必ずしも言語を識別するとは限らない追加情報を言語タグに添付できます。拡張機能の 1 つの用途は、カレンダーや通貨などのロケール情報をエンコードすることです。
拡張サブタグは、シングルトンと呼ばれる 1 つの文字 ( x以外) で始まる、ハイフンで区切られた複数の文字列で構成されます。各拡張は、その拡張のデータの管理を行う登録機関を識別する独自のIETF RFCで説明されています。IANAは、シングルトンの割り当てを担当しています。
2014 年 1 月現在、2 つの延長が割り当てられています。
拡張 T (変換されたコンテンツ)
拡張機能 T を使用すると、言語タグに、タグ付けされたデータがどのように音訳、転写、またはその他の方法で変換されたかに関する情報を含めることができます。たとえば、en-t-jpタグは、元の日本語から翻訳された英語のコンテンツに使用できます。追加のサブ文字列は、翻訳が機械的に行われたか、公開された標準に従って行われたかを示すことができます。
拡張Tについては、2012年2月に公開された情報RFC 6497で説明されています。[18]登録機関はUnicodeコンソーシアムです。
拡張子 U (Unicode ロケール)
拡張機能 U を使用すると、共通ロケール データ リポジトリ(CLDR)にあるさまざまなロケール属性を言語タグに埋め込むことができます。これらの属性には、国の区分、カレンダーとタイム ゾーン データ、照合順序、通貨、数値システム、キーボード識別などが含まれます。
例としては次のようなものがあります:
- gsw-u-sd-chzh はチューリッヒ州で使用されているスイスドイツ語を表します。
- ar-u-nu-latn は、アラビア文字の数字(٠ から ٩) の代わりに基本ラテン数字(0 から 9)を使用してアラビア語のコンテンツを表します。
- he-IL-u-ca-hebrew-tz-jeruslm は、伝統的なヘブライ暦を使用し、 tz データベースで識別される「Asia/Jerusalem」タイム ゾーンでイスラエルで話されているヘブライ語を表します。
拡張Uについては、2010年12月に公開された情報RFC 6067で説明されています。[19]登録機関はUnicodeコンソーシアムです。
参照
参考文献
- ^ abc Phillips, Addison; Davis, Mark (2009 年 9 月)。「BCP 47 に関する情報 » RFC エディター」。
- ^ 「言語サブタグレジストリ」。iana.org。インターネット割り当て番号機関。 2018年12月5日閲覧。
- ^ 「言語タグ拡張レジストリ」。iana.org。インターネット割り当て番号機関。 2018年12月6日閲覧。
- ^ 「IANA — プロトコルレジストリ」iana.org . 2015年7月28日閲覧。
- ^ Fielding, Roy T.; Reschke, Julian F. 編 (2014 年 6 月)。「言語タグ」。ハイパーテキスト転送プロトコル (HTTP/1.1 ) : セマンティクスとコンテンツ。セクション 3.1.3.1。doi : 10.17487/ RFC7231。RFC 7231 。
- ^ 「言語情報とテキストの方向」w3.org 。 2015年7月28日閲覧。
- ^ 「Extensible Markup Language (XML) 1.0 (第5版)」。w3.org 。 2015年7月28日閲覧。
- ^ 「Portable Network Graphics (PNG) 仕様 (第 2 版)」。w3.org。2015年7 月 28 日閲覧。
- ^ Phillips, Addison; Davis, Mark (2006 年 9 月)。「RFC 4647 – 言語タグのマッチング」。
- ^ Phillips, Addison; Davis, Mark (2009 年 9 月)。「RFC 5646 – 言語を識別するためのタグ」。
- ^言語タグレジストリ更新憲章 2007-02-10 に Wayback Machineでアーカイブ
- ^ 「文化の文字コード - リスト」。2022年8月7日時点のオリジナルよりアーカイブ。2022年1月8日閲覧。
- ^ Addison Phillips、Mark Davis (2008)。「言語を識別するためのタグ (RFC 4646 の改訂版の古いドラフトで、現在は廃止されており、まもなく消える可能性があります)」。IETF WG LTRU。2008年 6 月 23 日閲覧。
- ^ Doug Ewell (2008). 「言語サブタグレジストリの更新 (RFC 4645 の改訂版の古いドラフト。現在は廃止されており、まもなく消滅する可能性があります)」(1MB) 。IETF WG LTRU 。2008 年 6 月 23 日閲覧。
- ^ 「GetGeoInfoA 関数 (winnls.h) – Win32 アプリ」。
- ^ 「ISO 639-2 言語コードリスト – 言語名を表すコード(米国議会図書館)」。loc.gov 。 2015年7月28日閲覧。
- ^ Ewell, Doug (2022-08-12). 「Re: [Ietf-languages] パンジャブ語のコード修正に関する推奨事項」。2022年8月12日閲覧。
- ^ Davis, M.; Phillips, A.; Umaoka, Y.; Falk, C. (2012 年 2 月). 「BCP 47 Extension T – Transformed Content」. rfc-editor.org . RFC エディター(情報). doi : 10.17487/RFC6497 . RFC 6497 . 2022 年6 月 24 日閲覧。
- ^ Davis, M.; Phillips, A.; Umaoka, Y. (2010 年 12 月). 「BCP 47 Extension U」. rfc-editor.org . RFC エディター(情報). doi : 10.17487/RFC6067 . RFC 6067 . 2022 年6 月 24 日閲覧。
外部リンク
- BCP 47 言語タグ – 現在の仕様
- 異なる日付に別々に公開された 2 つの RFC が 1 つのドキュメントに連結されています。
- RFC 4647 – 言語タグのマッチング
- RFC 5646 – 言語を識別するためのタグ
- (以前の情報 RFC 4645 を補完する関連情報 RFC 5645 と、これらの BCP 47 改訂の間にレジストリに追加または変更された各言語について他者によって個別に公開されたその他の個別の登録フォームも参照)
- 異なる日付に別々に公開された 2 つの RFC が 1 つのドキュメントに連結されています。
- 言語サブタグレジストリ – IANA によって管理されています
- 言語サブタグレジストリ検索 – サブタグを検索し、レジストリのエントリを表示します
- 「HTML と XML の言語タグ」 – W3C より
- 「言語タグ」 – IETF 言語タグ レジストリ更新ワーキング グループより
