[1] [DFN[Unicode [RUBYB[言語識別子]@en[language identifier]]]]は、 [[LDML]] で用いられている[[言語符号]]です。

* 仕様書

[REFS[
- [2] [CITE@en-us[UTS #35: Unicode Locale Data Markup Language]] ([TIME[2011-07-19 03:14:51 +09:00]] 版) <http://unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers>
]REFS]

* 構文

[3] [[Unicode言語識別子]]は [[IETF]] の[[言語タグ]]を元に定義されていますが、若干の差異があります。

- [4] 特別な識別子である [CODE(lang)[[[root]]]] を使えます。
- [5] [[拡張言語]]、[[私用]]、[[祖父化]]は使えません。
- [6] [[拡張]]は使えません。 ([[拡張]]を含むと [[Unicodeロケール識別子]]になります。)
- [7] [[符号]] ([[言語タグ]]でいう[[部分タグ]]のこと。) の区切子として [CODE(lang)[[[-]]]] だけでなく、
[CODE(lang)[[[_]]]] も使えます。

* 意味

[11] 一部の私用の[[部分タグ]]の解釈が独自に定義されています。詳しくは各[[部分タグ]]の項を参照してください。

* 関連

[12] [[Unicode言語タグ]]とは別です。

* 歴史

[8] 「[[Unicode言語識別子]]」という用語は第1.6版で登場しました。ただし名前がついたのがこの時ですが、
それ以前から[[LDMLロケール識別子]]の前半部分として実質的に同じ定義で存在していました。

[REFS[
- [9] [CITE@en-us[UTS #35: Unicode Locale Data Markup Language]] ([TIME[2008-07-02 09:56:03 +09:00]] 版) <http://unicode.org/reports/tr35/tr35-10.html#Unicode_Language_and_Locale_Identifiers>
]REFS]

[10] 当初から [[BCP 47]] の[[言語タグ]]のバリエーションとして定義されていたようですが、
改訂を一部先取りしたり、 [[BCP 47]] で認められている一部の構文を省略したりしているので、
完全に同一ではありません。