-
Notifications
You must be signed in to change notification settings - Fork 4
/
931.txt
158 lines (113 loc) · 8.94 KB
/
931.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
[93] [[言語タグ]]の1つ目の[[部分タグ]]は[DFN[[RUBYB[[[言語]]] @en[[CODE(ABNF)[language]]]]]]です。
[[言語タグ]]全体が[[言語]]を表す識別子ですが、[[言語]][[部分タグ]]は特に狭義の[[言語]]を表します。
;; [94] 例外として、1つ目の[[部分タグ]]が [CODE(lang)[[[x]]]] である場合 ([[私用]])
と [CODE(lang)[[[i]]]] である場合 ([[祖父]]) があります。 [SRC[[[RFC 5646]] 2.2.1.]] (後述)
;; [271] [[言語タグ]]全般については、「[[言語タグ]]」の項も参照してください。
* 仕様書
[REFS[
- [272] '''[[RFC 5646]]'''
- [278] [CITE@en-us[UTS #35: Unicode Locale Data Markup Language]]
-- [280] <http://unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers>
-- [279] <http://unicode.org/reports/tr35/#Language_Locale_Field_Definitions>
]REFS]
* 呼称
[108] [[言語部分タグ]]は、特に他と区別する必要がある場合は[DFN[[RUBYB[一次]@en[primary]][[言語]][[部分タグ]]]]
[SRC[[[RFC 5646]]]] と呼ばれています。
[274] [[Unicode言語識別子]]、[[Unicodeロケール識別子]]では[DFN[[RUBYB[基底言語符号]@en[base language code]]]]、
[DFN[[CODE[unicode_language_subtag]]]] とも呼んでいます
[SRC[>>280]]。
* 語彙
[95] 2文字の[[ラテン文字]]である[[言語]][[部分タグ]]は、
[REFS[
- [103] [[ISO 639-1:2002]] [CITE@en[Codes for the representation of names of languages -- Part 1: Alpha-2 code]]
]REFS]
... で定義、またはそれに基づき登録されたものを更に [[IANA]] に登録したものです。
[SRC[[[RFC 4646]] 2.2.1., [[RFC 5646]] 2.2.1.]]
[96] 3文字の[[ラテン文字]]である[[言語]][[部分タグ]]は、
[REFS[
- [104] [[ISO 639-2:1998]] [CITE@en[Codes for the representation of names of languages -- Part 2: Alpha-3 code - edition 1]]
[SRC[[[RFC 4646]] 2.2.1., [[RFC 5646]] 2.2.1.]]
- [105] [[ISO 639-3:2007]]
[CITE@en[Codes for the representation of names of languages -- Part 3: Alpha-3 code for comprehensive coverage of languages]]
[SRC[[[RFC 5646]] 2.2.1.]]
- [106] [[ISO 639-5:2008]] [CITE@en[Codes for the representation of names of languages -- Part 5: Alpha-3 code for language families and groups]]
[SRC[[[RFC 5646]] 2.2.1.]]
]REFS]
... のいずれかにおいて定義、またはそれに基づき登録されたものを更に
[[IANA]] に登録したものです。
[SRC[[[RFC 4646]] 2.2.1., [[RFC 5646]] 2.2.1.]]
;; [101] [[ISO 639]] で2文字の[[言語符号]]と3文字の[[言語符号]]の両方が定義されている場合、
2文字の方だけが [[IANA]] に登録され、[[言語タグ]]で使ってもよいこととなっています。
既に3文字[[言語符号]]が定義されている[[言語]]に新たに2文字[[言語符号]]が定義されることがあると非互換性が生じてしまいますが、
[[ISO 639/RA-JAC]] はそのような2文字[[言語符号]]の追加は行わないと表明しています。
[SRC[[[RFC 4646]] 2.2.1., [[RFC 5646]] 2.2.1.]]
;; [102] [[ISO 639-2/T]] (Terminology) [[言語符号]]と [[ISO 639-2/B]] ([[Bibliographic]])
[[言語符号]]で2種類の3文字[[言語符号]]がある場合、 Terminology の方だけが [[IANA]]
に登録され、[[言語]]タグで使ってもよいこととなっています。ただし現時点で2種類異なっている[[言語]]はすべて
2文字[[言語符号]]が定義されており、従って >>101 により3文字[[言語符号]]は使えません。
[SRC[[[RFC 4646]] 2.2.1., [[RFC 5646]] 2.2.1.]]
[97] 4文字の[[ラテン文字]]である[[言語]][[部分タグ]]は、将来の拡張のために予約されています。
[SRC[[[RFC 4646]] 2.2.1., [[RFC 5646]] 2.2.1.]]
[98] 5文字から8文字の[[ラテン文字]]である[[言語]][[部分タグ]]は、
[[IANA]] によって登録された[[言語]]です。
ただし、 [[IANA]] に登録しようする前に [[ISO 639]] に従い登録しようと試みなければ[['''ならない''']]
[SRC[[[RFC 5646]] 2.2.1.]]
[WEAK[(以前は試みる[['''べきである''']] [SRC[[[RFC 4646]] 2.2.1.]])]]、またその登録に失敗したものは [[IANA]]
にも登録されそうにないだろう、とされています。
[SRC[[[RFC 4646]] 2.2.1., [[RFC 5646]] 2.2.1.]]
;; [99] 自ら存在意義のない登録制度作って何がしたいんだろう・・・。
[100] [[数字]]その他の[[文字]]や、9文字以上の[[部分タグ]]を先頭に使うことは認められていません。
[CODE(lang)[[[x]]]] や [CODE(lang)[[[i]]]] 以外の1文字の[[部分タグ]]も認められていません。
** [CODE(lang)[mul]]
[216] [CODE(lang)[[[mul]]]] (複数の言語) は、複数個の[[言語タグ]]を指定できるなど他に方法がある時は使う[['''べきではありません''']]。
[SRC[[[RFC 3066]] 2.3, [[RFC 4646]] 4.1., [[RFC 5646]] 4.1.]]
[220] [CODE(HTTP)@en[[[Content-Language:]]]] [[頭欄]]では複数の[[言語タグ]]を併記できます。
[[HTML]] や [[XML]] では[[要素]]ごとに細かく[[言語]]を指定できます。
** [CODE(lang)[und]]
[217] [CODE(lang)[[[und]]]] (未決定) は、[[言語]]が必須である場合を除き使う[['''べきではありません''']]。
[SRC[[[RFC 3066]] 2.3, [[RFC 4646]] 4.1., [[RFC 5646]] 4.1.]]
[218] なお、 [[HTML]] の [CODE(HTMLa)@en[[[lang]]]] [[属性]]や [[XML]] の
[CODE(XMLa)@en[[[xml:lang]]]] [[属性]]では[[空文字列]]により[[言語情報]]無しを表すことができます。
[219] [[歌詞]]の無い[[音楽]]や非言語的な音声、計算機言語などの[[自然言語]]に属さないものについては、
[CODE(lang)[[[zxx]]]] (非言語的、非適用可能) [[言語]][[部分タグ]]を使うことができます。
[287] [[RFC 6497]] は、[[言語]]を特に問題とせず、[[用字系]]についてのみ記述したいとき、
[[言語部分タグ]]に [CODE(lang)@en[[[und]]]] を使うとしています。
[EG[
[288] 例えば [CODE(lang)[und-Latn-t-und-cyrl]] は[[キリル文字]]から[[ラテン文字]]に[[転写]]されたものを表します。
]EG]
** [CODE(lang)[mis]]
[221] [CODE(lang)[[[mis]]]] (未符号化) は、[[言語]]はわかっているものの[[言語符号]]が無いことを表していますが、
[[言語タグ]]では使う[['''べきではありません''']]。
[CODE(lang)[[[und]]]] か[[私用]][[部分タグ]]を使うべきです。
[SRC[[[RFC 5646]] 4.1.]]
;; [222] 「[[言語タグ]]の安定性を損なう」ことが理由 [SRC[[[RFC 5646]] 4.1.]]
とされていますが、情報交換の有用性を鑑みると [CODE(lang)[[[und]]]]
は不適切なんじゃないでしょうか・・・。[[私用]]を使うのがよいですね・・・。
** [CODE(lang)[root]]
[273] [[言語タグ]]の変種である [[Unicode言語識別子]]・[[Unicodeロケール識別子]]は、
[[言語部分タグ]]に相当する部分で特別な値 [CODE(lang)[[[root]]]] を使っています。
** 私用
[276] >>96 には [[ISO 639-2]] による[[私用]]の
[CODE(lang)[[[qaa]]]] ... [CODE(lang)[[[qtz]]]] も含まれています [SRC[[[RFC 4646]] 2.2.1., [[RFC 5646]] 2.2.1.]]。
[277] [[Unicode言語識別子]]、[[Unicodeロケール識別子]]はそのうちの
[CODE(lang)[[[qfz]]]] ... [CODE(lang)[[[qtz]]]] について意味を定義しないので他の[[応用]]が使っても問題ないとしています
[SRC[>>279]]。逆に言えばそれ以外の[[私用]]の[[符号]]は (現在は未定義ですが)
将来的に特別な意味で使われる可能性があります。
** マクロ言語
[281] [[Unicode言語識別子]]、[[Unicodeロケール識別子]]は互換性のためにいくつかの[[マクロ言語]]について、
その全体を指す本来の意味ではなく、代表的な[[言語]]を表すことと解釈するとしています [SRC[>>279]]。
例えば、 [CODE(lang)[[[zh]]]] は[[中文]]全体を指すものですが、特に [CODE(lang)[[[cmn]]]]
([[官話]]) のことを意味するものとみなしています [SRC[>>279]]。
;; [282] このような対応付けの一覧表は [[XML]] のデータで提供されています。
* 歴史
[127] [[言語]][[部分タグ]]は [[RFC 1766]] 以来ずっと最初の[[部分タグ]]として存在しています。
[269] [[RFC 1766]] は2文字言語符号を使ってもよいとしていました。
[SRC[[[RFC 1766]] 2.]]
[261] [[RFC 3066]] は2文字言語符号、3文字言語符号を使ってもよいとしていました。
[SRC[[[RFC 3066]] 2.2.]]
[270] [[RFC 1766]] と [[RFC 3066]] はその他には[[私用]]の [CODE(lang)[[[x]]]] と
[[IANA]] 登録用の [CODE(lang)[[[i]]]]
を認めており、それ以外はすべて使用禁止とされていました。 [SRC[[[RFC 3066]] 2.2.]]
[289] [CITE@en[RFC 7033 - WebFinger]]
( ([TIME[2014-10-26 16:32:10 +09:00]] 版))
<https://tools.ietf.org/html/rfc7033#section-4.4.4.4>