[146] [RUBYB[[[異体]]] @en[[CODE(ABNF)[variant]]]]は、
他の[[部分タグ]]によって表せない、[[言語]]や[[方言]]の
“追加の[RUBYB[よく認識された]@en[well-recognized]]バリエーション”
を表します。
[SRC[[[RFC 4646]] 2.2.5., [[RFC 5646]] 2.2.5.]]

;; [265] [[言語タグ]]全体については、「[[言語タグ]]」の項をご覧ください。

* 仕様書

[REFS[
- [266] '''[[BCP 47]]'''
- [269] [CITE@en-us[UTS #35: Unicode Locale Data Markup Language]] ([TIME[2011-07-19 03:14:51 +09:00]] 版) 
-- [267] '''<http://unicode.org/reports/tr35/#Language_Locale_Field_Definitions>'''
-- [270] <http://unicode.org/reports/tr35/#Legacy_Variants>
]REFS]

* 呼称

[268] [[Unicode言語識別子]]、[[Unicodeロケール識別子]]では
[DFN[[[unicode_variant_subtag]]]]、[DFN[[[Unicode]] [RUBYB[言語異体符号]@en[language variant code]]]]とも呼ばれています
[SRC[>>267]]。

* 順序と組み合わせ

[151] [[異体]]は任意の個数、含めることができます。
[SRC[[[RFC 4646]] 2.2.5., [[RFC 5646]] 2.2.5.]]
ただし同じ[[異体]]を複数回使っては[['''なりません''']]。
[SRC[[[RFC 4646]] 4.1., [[RFC 5646]] 2.2.5.]]

[152] [[異体]]の [[IANA]] への登録には [[Prefix]] を任意の個数指定することができます。
[[Prefix]] が指定されると、その[[異体]]は [[Prefix]] (のいずれか)
で指定された[[部分タグ]]がすべて前に含まれた状態でのみ使う[['''べきです''']]。
[SRC[[[RFC 4646]] 2.2.5., [[RFC 5646]] 2.2.5.]]

[EG[
[154] 例えば [CODE(lang)[[[de-1996]]]] のように使われる [CODE(lang)[[['''1996''']]]]
は、登録上 [[Prefix]] が [CODE(lang)[[[de]]]] となっており、 
[CODE(lang)[[[de-1996]]]] や [CODE(lang)[[[de-CH-1996]]]] のような[[言語タグ]]は使って構いませんが、
[CODE(lang)[[[ja-1996]]]] のようには使うべきではありません。
]EG]

[153] また[[異体]]によっては他の[[異体]]と同時に使えないことがあります。

[EG[
[224] 例えば [CODE(lang)[[['''1901''']]]] と [CODE(lang)[[['''1996''']]]] 
を同時に使う[['''べきではありません''']]。
[SRC[[[RFC 4646]] 2.2.5., [[RFC 5646]] 2.2.5.]]
]EG]

[160] [[異体]]が複数個含まれる時、 [[Prefix]] が指定されているものについては前の方に、
指定されていないものは後ろの方に並べる[['''べきです''']]。重要なものから前に並べますが、
順序が決まらない時はアルファベット順とします。
[SRC[[[RFC 5646]] 4.1.]]

[EG[
[225] 例えば、 [CODE(lang)[[[en-scotland-fonipa]]]] は、
- [CODE(lang)[[[scotland]]]] の [[Prefix]] は [CODE(lang)[[[en]]]]
- [CODE(lang)[[[fonipa]]]] は [[Prefix]] 無し

... なのでこれが正しい順序です。
[SRC[[[RFC 5646]] 4.1.]]
]EG]

[EG[
[226] 例えば、 [CODE(lang)[[[sl-IT-rozaj-biske-1994]]]] は、
- [CODE(lang)[[[rozaj]]]] の [[Prefix]] は [CODE(lang)[[[sl]]]]
- [CODE(lang)[[[biske]]]] の [[Prefix]] は [CODE(lang)[[[sl-rozaj]]]]
- [CODE(lang)[[['''1994''']]]] の [[Prefix]] は [WEAK[([CODE(lang)[[[sl-rozaj]]]] もあるけどより長いのは)]] [CODE(lang)[[[sl-rozaj-biske]]]]

... なので、これが正しい順序です。
[SRC[[[RFC 5646]] 4.1.]]
]EG]

* 文脈

[147] 
[[IETF言語タグ]]では、
[[異体部分タグ]]は[[言語部分タグ]]、
[[拡張言語部分タグ]]、
[[用字系部分タグ]]、
[[地域部分タグ]]よりは後で、
[[拡張部分タグ]]や[[私用部分タグ]]よりは前になければ[MUST[なりません]]。
[SRC[[[RFC 4646]] 2.2.5., [[RFC 5646]] 2.2.5.]]

[1] 
[CODE[ScriptLangTag]]
では、
[[地域部分タグ]]の直後に0個[[以上]]書けます。
[[地域部分タグ]]が省略されている場合は、
[[用字系部分タグ]]の直後に当たります。

* 語彙

[150] [[異体]]は5-8文字の[[英数字]]または最初が[[数字]]の4文字の[[英数字]]であり、 [[IANA]]
に登録しなければ[['''なりません''']]。他の[[部分タグ]]とは違って、
[[ISO]] など特定の規格から半自動的に決まる文字列ではなく、
[[IANA]] への登録によって値と意味が決まります。
[SRC[[[RFC 4646]] 2.2.5., [[RFC 5646]] 2.2.5.]]

[271] [[Unicode言語識別子]]、[[Unicodeロケール識別子]]では以前 [[IANA]]
に登録されていない[[異体]]が使われていました。その一覧は >>270 にあります。

* 歴史

[156] [[異体]]に相当する部分は [[RFC 3066]] までは構文の制約
(8文字以下の[[英数字]] [SRC[[[RFC 3066]] 2.1]]) のもとで自由に使えるとされていました。

[2] 
[[RFC 4646]] 以降は [[IANA]] に登録しなければならないとされており、
実質的に[[非互換変更]]となっています。

;; [264] 3つ目以降の[[部分タグ]]はすべて制限なく使えるようになっていたので、
[[私用]]や[[拡張]]に当たるものもなく、等しく追加の情報として扱われていました。
