[2] [[言語タグ]]で使われる[[拡張]]である [DFN[[CODE(lang)@en[[[U]]]]]] は、 [[LDML]] で使われる[[ロケール]]の識別子における[[ロケール]]の特徴の記述を表します。 * 仕様書 [REFS[ - [1] [CITE@en[RFC 6067 - BCP 47 Extension U]] - [25] [CITE[Unicode Locale Extension (‘u’) for BCP 47 - CLDR - Unicode Common Locale Data Repository]] ([TIME[2011-09-21 16:15:42 +09:00]] 版) - [30] [CITE@en-us[UTS #35: Unicode Locale Data Markup Language]] ([TIME[2011-07-19 03:14:51 +09:00]] 版) -- [26] -- [31] '''''' ]REFS] * LDML [3] [[LDML]] は [[Unicode Consortium]] による[[ロケール]]情報の記述のための[[マーク付け言語]]です。 現在の [[LDML]] では[[ロケール]]の識別子として [[BCP 47]] [[言語タグ]]を使っていますが、 [[ロケール]]の記述には[[照合順序]]などの純粋な [[BCP 47]] の仕様だけでは表現できない要素が必要です。 [4] そこで [[LDML]] ([[UTS #35]]) は[[言語タグ]]の中の [CODE(lang)[-[[u]]-]] よりも後の部分にそのような情報を記述する方法を規定しています。 [5] [[RFC 6067]] は [[BCP 47]] の規定に則り[[言語タグ]]の[[拡張]] [CODE(lang)[[[u]]]] を定義し、 [[IANA]] 登録簿に追加しています。実際の [CODE(lang)[[[u]]]] の構文と意味は [[UTS #35]] に委ねられています。 * 構文 [7] [[拡張]] [CODE(lang)@en[[[u]]]] の[RUBYB[[[部分タグ]]]@en[subtag]]は次のような構成を取ることとなっています。 - [8] [CODE(lang)[[[u]]]] (1個) - [9] [RUBYB[[[属性]]]@en[attribute]] (零個以上) : 3文字以上 - [10] [RUBYB[[[キーワード]]]@en[keyword]] -- [11] [RUBYB[[[キー]]]@en[key]] (1個) : 2文字 -- [12] [RUBYB[[[型]]]@en[type]] (零個以上) : 3文字以上 [16] [[言語タグ]]は[[大文字・小文字不区別]]です [SRC[>>31]]。 ** 属性 [13] 同じ[[属性]]が複数指定されている場合、最初のもの以外は無視されます [SRC[[[RFC 6067]] 2.1.]]。 [17] 順序に意味はありません [SRC[[[RFC 6067]] 2.1.]]。 [27] [[属性]]は将来の利用のために予約されていますが、現在は使われていません [SRC[>>26]]。 ** キー [15] 同じ[[キー]]を複数使っては[['''なりません''']] [SRC[[[RFC 6067]] 2.1.]]。 [14] 同じ[[キー]]が複数指定されている場合、最初のもの以外は無視されます [SRC[[[RFC 6067]] 2.1.]]。 [18] 順序に意味はありません [SRC[[[RFC 6067]] 2.1.]]。 ** 型 [19] 順序には意味があります [SRC[[[RFC 6067]] 2.1.]]。 [28] [[型]]が省略されている場合であって、[[型]]に [CODE(lang)[[[true]]]] を指定できる場合には、 これが指定されたものとみなします [SRC[>>26]]。 ** 正準形 [21] [[小文字]]が[[正準形]]です [SRC[[[RFC 6067]] 2.1.1., >>31]]。 [22] [[属性]]と[[キー]]の順序は意味がありませんが、[[ASCII]] [[符号位置]]の順序で並べたものが[[正準形]]です [SRC[[[RFC 6067]] 2.1.1., >>31]]。 * 安定性 [20] [[属性]]、[[キー]]、[[鍵]]は追加されることがあります。 しかし削除されることや本質的な意味が変更されることは無いとされています。 [SRC[[[RFC 6067]] 2.1.]] [23] 既存の[[属性]]、[[キー]]、[[鍵]]の意味に本質的な変更が加わったり、 それらの構造自体が変わったりすることはないとされていますが、 仮にそのような変更がなされる場合には新しい [[RFC]] が発行されることとなっています [SRC[[[RFC 6067]] 2.]]。 ;; [24] 追加など互換性のある変更は [[RFC]] の改訂無しに [[UTS #35]] の改訂だけで行われます。 * 型の一覧 - [CODE(lang)[[[ca]]]] - [CODE(lang)[[[co]]]] - [CODE(lang)[[[cu]]]] - [CODE(lang)[[[ka]]]] - [CODE(lang)[[[kb]]]] - [CODE(lang)[[[kc]]]] - [CODE(lang)[[[kf]]]] - [CODE(lang)[[[kh]]]] - [CODE(lang)[[[kn]]]] - [CODE(lang)[[[ks]]]] - [CODE(lang)[[[kt]]]] - [CODE(lang)[[[nu]]]] - [CODE(lang)[[[tz]]]] - [CODE(lang)[[[va]]]] * 例 [6] [[言語タグ]] [FIG[ [PRE(lang code)[ de-DE-u-attr-co-phonebk ]PRE] ]FIG] - [[言語]] [CODE(lang)[[[de]]]] - [[地域]] [CODE(lang)[[[DE]]]] - [[拡張]] [CODE(lang)[[[u]]]] -- [[属性]] [CODE(lang)[attr]] -- [[キーワード]] --- [[キー]] [CODE(lang)[[[co]]]] --- [[型]] [CODE(lang)[[[phonebk]]]] ... を表します [SRC[[[RFC 6067]] 2.1.]]。 [29] [[Unicodeロケール識別子]] [SRC[>>26]] [FIG[ [PRE(lang code)[ de_DE_u_co_phonebk_cu_ddm ]PRE] ]FIG] [32] [SRC[>>31]] [FIG[ [PRE(lang code)[ u-foo-bar-nu-thai-ca-buddhist ]PRE] ... は[[正準形]]ではありません。 [PRE(lang code)[ u-bar-foo-ca-buddhist-nu-thai ]PRE] ... は[[正準形]]です。 ]FIG]