u拡張

u (言語タグ)

[2] 言語タグで使われる拡張である U は、 LDML で使われるロケールの識別子におけるロケールの特徴の記述を表します。

仕様書

呼称

[52] Java 方面では -u- のことを追加のUnicode言語タグ拡張機能などと呼んでいるようで。 この呼称は Unicode言語タグと紛らわしいので、避けるべきです。

LDML

[3] LDMLUnicode Consortium によるロケール情報の記述のためのマーク付け言語です。 現在の LDML ではロケールの識別子として BCP 47 言語タグを使っていますが、 ロケールの記述には照合順序などの純粋な BCP 47 の仕様だけでは表現できない要素が必要です。

[4] そこで LDML (UTS #35) は言語タグの中の -u- よりも後の部分にそのような情報を記述する方法を規定しています。

[5] RFC 6067BCP 47 の規定に則り言語タグ拡張 u を定義し、 IANA 登録簿に追加しています。実際の u の構文と意味は UTS #35 に委ねられています。

構文

[7] 拡張 u部分タグ (subtag) は次のような構成を取ることとなっています。

[16] 言語タグ大文字・小文字不区別です >>31

属性

[13] 同じ属性が複数指定されている場合、最初のもの以外は無視されます RFC 6067 2.1.

[17] 順序に意味はありません RFC 6067 2.1., >>31

[27] 属性は将来の利用のために予約されていますが、現在は使われていません >>26

キー

[15] 同じキーを複数使ってはなりません RFC 6067 2.1.

[14] 同じキーが複数指定されている場合、最初のもの以外は無視されます RFC 6067 2.1.

[18] 順序に意味はありません RFC 6067 2.1., >>31

[19] 順序には意味があります RFC 6067 2.1.

[38] kavt の場合を除き、 部分タグ1つによって表現されます。 >>26

[39] ただし将来にわたって保証されている性質ではなさそうです。
[44] vt は1つ以上の部分タグによってが表現されます。
[43] ka部分タグ1つとは限らないとありますが、どうなり得るのかは不明です。 blanked を表すためにを省略できるということなのでしょうか。

[45] 言及がありませんが、 kr も1つ以上の部分タグによってが表現されます。

[46] 言及がありませんが、 ca には間に「-」が入るが登録されています。

[28] が省略されている場合であって、true を指定できる場合には、 これが指定されたものとみなします >>26。それ以外の場合はどこでも定義されていません。

[40] true を値として指定できる場合であっても、省略した時の既定値が false とは限りません >>26

正準形

[21] 小文字正準形です RFC 6067 2.1.1., >>31

[22] 属性キーの順序は意味がありませんが、ASCII 符号位置の順序で並べたものが正準形です RFC 6067 2.1.1., >>31

[33] キー正準形であるものが正準形です >>31

安定性

[20] 属性キーは追加されることがあります。 しかし削除されることや本質的な意味が変更されることは無いとされています。 RFC 6067 2.1.

[23] 既存の属性キーの意味に本質的な変更が加わったり、 それらの構造自体が変わったりすることはないとされていますが、 仮にそのような変更がなされる場合には新しい RFC が発行されることとなっています RFC 6067 2.

[24] 追加など互換性のある変更は RFC の改訂無しに UTS #35 の改訂だけで行われます。

適合性

[37] u 拡張BCP 47 言語タグの構文上利用可能なすべての拡張部分タグの並びを構文的に正しい値として認めています。 従って言語タグu 部分の整形式性と u 拡張としての構文的な正しさは等価です。

[36] しかし構文的に正しいすべての u 拡張部分タグに対して意味が定義されているわけではありません。 UTS #35>>25属性キー妥当 (valid) であるものの一覧が提供されており、 それに基づき u 拡張妥当かどうかを判断できます。

型の一覧

[41] 次のが定義されています。

[42] は新規に追加されることがたまにあり、次の一覧は最新でないかもしれません。

[49] >>47,>>48JSON 形式の一覧データファイルがあります。

[6] 言語タグ

de-DE-u-attr-co-phonebk

... を表します RFC 6067 2.1.

[29] Unicodeロケール識別子 >>26

de_DE_u_co_phonebk_cu_ddm

[32] >>31

u-foo-bar-nu-thai-ca-buddhist

... は正準形ではありません。

u-bar-foo-ca-buddhist-nu-thai
... は正準形です。

メモ

[50] [css-fonts-4] Clarify precedence of font-presentation versus lang/xml… (Litherum著, ) https://github.com/w3c/csswg-drafts/commit/ee2603f6fd2d90e070a3d393159033651eb0c1b7

[51] [css-fonts-4] Clarify precedence of font-presentation versus lang/xml:lang · Issue #2138 · w3c/csswg-drafts () https://github.com/w3c/csswg-drafts/issues/2138