[128] [DFN[[RUBYB[[[地域]]] @en[[CODE(ABNF)[region]]]]]][[部分タグ]]は、
特定の[[国]]や[[地域]]における[[言語]]のバリエーション ([[方言]]や[[綴り]]の差異など)
を表すために使うことあができます。
[SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]

;; [272] [[言語タグ]]全体については、「[[言語タグ]]」の項も参照してください。

* 仕様書

[REFS[
- [273] '''[[RFC 5646]]'''
- [276] [CITE@en-us[UTS #35: Unicode Locale Data Markup Language]] ([TIME[2011-07-19 03:14:51 +09:00]] 版) 
-- [277] <http://unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers>
-- [278] <http://unicode.org/reports/tr35/#Language_Locale_Field_Definitions>
-- [19] 
[CITE[Unicode Locale Data Markup Language ([[LDML]])]], [TIME[2022-04-06T14:24:49.000Z]], [TIME[2022-09-03T07:27:31.674Z]] <https://unicode.org/reports/tr35/#unicode_region_subtag-also-known-as-a-unicode-region-code-or-a-unicode-territory-code>
- [6] 
[CITE@ja-jp[[[meta]] — Meta table (OpenType 1.9) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2022-12-03T02:43:31.000Z]] <https://learn.microsoft.com/ja-jp/typography/opentype/spec/meta#scriptlangtag-values>


]REFS]

* 呼称

[274] [[Unicode言語識別子]]、[[Unicodeロケール識別子]]では[DFN[[RUBYB[[[領土]]]@en[territory]]]]、
[DFN[[CODE[[[unicode_region_subtag]]]]]] とも呼ばれています [SRC[>>276]]。

* 文脈

[129] 
[[IETF言語タグ]]の[[地域部分タグ]]は、[[言語]]、[[拡張言語]]、[[用字系]]の後で、
その他の[[部分タグ]]の前になければ[['''なりません''']]
[SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]。

[145] 
[[IETF言語タグ]]の[[地域部分タグ]]は複数個あっては[MUST[なりません]]。
[SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]


[10] 
[[IETF言語タグ]]の[[地域部分タグ]]は、
他の[[言語]]と区別するような意味を持たない時は省略して[MAY[構いません]]。
[SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]
[SEE[ [[言語部分タグと地域部分タグの組合せ]] ]]

[3] 
[CODE[ScriptLangTag]]
では、
[[用字系部分タグ]] (必須) の直後に1つだけ置けます。
省略も可能です。


[14] [CITE@ja[マップのローカライズ  |  Google Maps JavaScript API  |  Google Developers]]
([TIME[2017-08-18 09:12:07 +09:00]])
<https://developers.google.com/maps/documentation/javascript/localization?hl=ja>


* 語彙

** 2文字ラテン文字

[130] 2文字の[[ラテン文字]]の[[地域]][[部分タグ]]は、
[REFS[
- [131] [[ISO 3166-1]] [CITE@en[Codes for the representation of names of countries and their subdivisions -- Part 1: Country codes]]
]REFS]
... で定義された、またはそれにより登録された2文字の[[国符号]]を更に
[[IANA]] に登録したものです。
[SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]

[23] 
[[ISO 3166]] も参照。

*** 例外的予約国符号

[279] >>131 で「[RUBYB[例外的の予約]@en[exceptionally reserved]]」された 
2文字の[[国符号]]についても、 [[RFC 4646]] には含まれていませんでしたが、
[[RFC 5646]] においては [[IANA]] に登録され、利用できることとされています。
[SRC[[[RFC 5646]] 2.2.4.]] 

**** [CODE(lang)@en[UK]]

[280] ただし、 [CODE(lang)[[[GB]]]] と同義の [CODE(lang)[[[UK]]]]
は除外されています [SRC[[[RFC 5646]] 2.2.4.]]。

[291] [[Unicode地域符号]]としては、 [CODE(lang)@en[[[UK]]]] も認められています。
ただし、やはり [CODE(lang)@en[[[GB]]]] が[[正規形]]とされています。 [SRC[>>278, >>19]]

*** 私用

[281] [[私用]]の [CODE(lang)[[[AA]]]],
[CODE(lang)[[[QM]]]] ... [CODE(lang)[[[QZ]]]],
[CODE(lang)[[[XA]]]] ... [CODE(lang)[[[XZ]]]],
[CODE(lang)[[[ZZ]]]] も [[IANA]] に登録されており、利用することができます
[SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]。

[282] [[Unicode言語識別子]]、[[Unicodeロケール識別子]]では、そのうち特に
[CODE(lang)[[[XA]]]] .... [CODE(lang)[[[XZ]]]] を[[応用]]が使っても良いと定めています。
[SRC[>>278]]

;; [283] 逆にそれ以外の[[私用]]の[[Unicode領土符号]]は特別な意味を割り当てるために予約されているということです。

[5] [CODE[XK]] は、[[コソボ]]を表すため用いられています。
[[LDML]] もそれを追認しています ([CODE[XK]], [CODE[XKK]], [N[983]]) [SRC[>>19]]。 

;; [18] [[LDML]] の「industry practice」という注釈になんとなく[[闇]]を感じますね。
あくまで[[慣習]]を記録しただけで主体的に[[規定]]するのではないという逃げ道を残しているような。

[2] 
他の [[ISO 3166]] の[[応用]]での割当については [[ISO 3166]] を参照。

**** [CODE(lang)[QO]]

[284] [[Unicode言語識別子]]、[[Unicodeロケール識別子]]では
[DFN[[CODE(lang)[[[QO]]]]]] は [[Outlying Oceania]] を表します [SRC[>>278]]。

[21] 
[[LDML]]
によれば
[CODE[QO]] / [DFN[[CODE[QOO]]]] / [DFN[[N[961]]]]
は
[[Oceania]] ([N[009]]) の[[国]]で
[[subcontinent]]
を持たないものを表します。
[SRC[>>19]]



**** [CODE(lang)[QU]]

[285] [[Unicode言語識別子]]、[[Unicodeロケール識別子]]では
[DFN[[CODE(lang)[[[QU]]]]]] は[RUBYB[[[欧州連合]]]@en[European Union]]を表します [SRC[>>278]]。

[286] しかし [CODE(lang)[[[EU]]]] を用いるのが[RUBYB[好ましい]@en[preferred]]とされています [SRC[>>278]]。

[22] 
[[LDML]]
[CODE[QU]] / [DFN[[CODE[QUU]]]] / [DFN[[N[967]]]]
[SRC[>>19]]

;; [287] [CODE(lang)[[[EU]]]] が割り当てられる前にこちらの意味が定義されたようです。

**** [CODE(lang)[ZZ]]

[288] [[Unicode言語識別子]]、[[Unicodeロケール識別子]]では
[DFN[[CODE(lang)[[[ZZ]]]]]] は[RUBYB[未知・非妥当な領土]@en[Unknown or Invalid Territory]]を表します [SRC[>>278]]。

[20] 
[[LDML]]
は 
[CODE[ZZ]] / [DFN[[CODE[ZZZ]]]] / [DFN[[N[999]]]] を
[[API]] で使ったり、
非妥当な[[符号]]を置き換えるのに使ったりすると注釈しています。
[SRC[>>19]]

** 3文字数字

[132] 3文字の[[数字]]の[[地域]][[部分タグ]]は、
[REFS[
- [133] [[UN M.49]] [CITE@en[UN Standard Country or Area Codes for Statistical Use]]
]REFS]
... により定義、または登録されたものを更に [[IANA]]
に登録したものです。ただしこれには例外が多くあります。
[SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]

[FIG[
- [134] [[大陸]] (macro-geographical (continental)) やその一部の数値符号は登録しなければ[['''なりません''']]。 [SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]
- [135] 経済グループ (economic groupings) やその他のグループ (other groupings) の数値符号は登録しては[['''なりません''']]。 [SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]
- [136] [[ISO 3166-1]] が以前別の地域に割り当てていた国符号を別の地域に再割当し、 [[IANA]] 登録簿上で衝突が発生するときには、かわりにこちらの数値符号を登録しなければ[['''なりません''']]。 [SRC[[[RFC 5646]] 2.2.4.]] [WEAK[([[RFC 4646]] 2.2.4. にも類似した規定がありますが、曖昧で意味がよくわかりませんでした。)]]
- [137] [[ISO 3166-1]] に対応する[[国符号]]が存在する数値符号は登録しては[['''なりません''']]。 
[SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]
-- [138] これ、 >>136 の場合を除き、ということでいいんですよね・・・。
- [140] [CODE(lang)[[['''830''']]]] ([[チャネル諸島]]) は [[IANA]]
に登録してもよいとされています。 [SRC[[[RFC 5646]] 2.2.4.]]
-- [141] [[RFC 4646]] 時代には [[RFC 4645]] の 4. に示された4つの地域を
[[IANA]] に登録しても良いとされていましたが、 [[RFC 4645]] 
自体がそのうちの3つは出版の数ヶ月前に [[ISO 3166-1]] 
対応する[[国名符号]]が割り当てられているため不適格となった、と述べています。
[SRC[[[RFC 4646]] 2.2.4., [[RFC 4545]] 4.]]
-- [4] その4つとは:
---      830   Channel Islands
---      831   Guernsey
---      832   Jersey
---      833   Isle of Man
-- [142] [[チャネル諸島]]が [[IANA]] に登録されていないのは、
[[ISO 3166-1]] にいずれ登録されることを期待して、ということでしょうか・・・。
- [143] その他の数値符号は [[IANA]] に登録しては[['''なりません''']]。
[SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]
- [144] 附属書 X の英数字符号は [[ISO 3166-1]] の[[符号]]と同じものであり、
登録しては[['''なりません''']]。
[SRC[[[RFC 4646]] 2.2.4., [[RFC 5646]] 2.2.4.]]
]FIG]

[292] [[Unicode地域符号]]としては、 [DFN[[CODE[[[001]]]]]] ([[世界]]) は[RUBYB[標準形]@en[standard form]]を表すとされています。
[SRC[>>278]]

[EG[
[293] 例えば [CODE(lang)@en[[[ar-001]]]] は現代標準アラビア語を表します [SRC[>>278]]。
]EG]

[16] 
[[LDML]]
の
[CODE[territories]]
[[属性]]では、
[[領土]]固有の指定がない場合に適用される[[既定値]]を記述するときに、
[CODE[001]] 
が使われます。

-*-*-

[7] 
[CODE[ScriptLangTag]]
では、実装が[[言語]]や[[用字系]]にうまく対応付けられないかもしれないので[RUBYB[推奨されない][not recommended]]とされます
[SRC[>>6]]。

;; [8] 
理論上は「北米スペイン語」「中南米スペイン語」のようなものに便利なのかもしれませんが、
[[フォント]]構成上そうした分類が必要にはなりにくいのかもしれませんし、
あるとしても[[国符号]]を列挙した方が[[相互運用性]]は高そうです。

* 歴史

[262] [[RFC 3066]] では2文字[[国符号]]と、3文字から8文字の[[部分タグ]]が2番目の[[部分タグ]]として認められていました。
3文字から8文字の[[部分タグ]]は [[IANA]] に登録することができるものとされていました。
1文字の[[部分タグ]]は将来の拡張のために予約されていました。
[SRC[[[RFC 3066]] 2.2]]

;; [263] 当時は[[用字形]][[部分タグ]]はなく、また[[私用]]は1番目の[[部分タグ]]に
[CODE(lang)[[[x]]]] を使うことによってのみ表せました。

[290] [[RFC 1766]] では2番目以降の[[部分タグ]]として任意の値を登録できるとされていました
[SRC[[[RFC 1766]] 2.]]。

[271] [[RFC 1766]] と [[RFC 3066]] は [[ISO 3166]] における[[私用]]の[[国符号]]
(>>130) に言及していました
[SRC[[[RFC 1766]] 2., [[RFC 3066]] 2.2.]]。 [[RFC 1766]] では単に [[ISO]]
で予約されているとしているだけでしたが、 [[RFC 3066]] では使っては[['''ならない''']]とされていました。 
[[RFC 4646]] 以降は使って良いとされています。
