-
Notifications
You must be signed in to change notification settings - Fork 4
/
941.txt
407 lines (275 loc) · 18.7 KB
/
941.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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
[6] [DFN[[[ISO 15924]]]] は、世界各地で用いられる[[用字系]]に対して[[符号]]を与えるものです。
* 仕様書
[REFS[
- [123] [[ISO 15924]] [CITE@en[Information and documentation -- Codes for the representation of names of scripts]]
(有料)
- [244] [CITE@en-us[ISO 15924 Registration Authority]] ([TIME[2009-09-26 07:40:01 +09:00]] 版) <http://unicode.org/iso15924/>
]REFS]
* 英字符号
[22]
各[[用字系]]に[[ラテン文字]]4文字の[[符号]]が割り当てられています
(一覧: >>251)。
[23]
通常、1文字目は[[大文字]]、2文字目以降は[[小文字]]で表記されます。
[27]
[[用字系符号]]を採用した各種プロトコルで[[大文字と小文字]]をどう扱うかは、
それぞれです。
;; [26] [[capitalize]] は奇妙な表記にも見えますが、
[[小文字]]表記する[[言語符号]]や[[大文字]]表記する[[国符号]]と書き分けているようです。
** 私用
[24]
[[ISO]] (と [[RA]]) が定める標準の[[符号]]の他に、
[[私用]]が認められる[[符号]]群があります。
[25]
各種[[規格]]や実装がその一部を使っています。
[235] >>123 には[[私用]]の [CODE(lang)[[[Qaaa]]]] .. [CODE(lang)[[[Qabx]]]] も含まれます。
[SRC[[[RFC 4646]] 2.2.3., [[RFC 5646]] 2.2.3.]]
[241] [[Unicode言語識別子]]・[[Unicodeロケール識別子]]では [CODE(lang)[[[Qaaq]]]]-[CODE(lang)[[[Qabx]]]]
は将来も意味を割り当てないので[[私用]]として使って良いとしています [SRC[>>233]]。
それ以外の >>235 の[[用字系]][[部分タグ]]は特別な意味に使う意図があるようで、
>>236、>>239、>>240 の3つが定義されている他、残りも将来の拡張で使用できるように予約しているようです (明記されていませんが)。
*** [CODE(lang)[Qaai]]
[236] [[Unicode言語識別子]]・[[Unicodeロケール識別子]]では [DFN[[CODE(lang)[[[Qaai]]]]]]
に「[RUBYB[継承]@en[inherited]]」という意味を割り当てています [SRC[>>233]]。
[237] ただし、 [CODE(lang)[[[Zinh]]]] を使うのがより好ましいともしています [SRC[>>233]]。
;; [238] [CODE(lang)[[[Zinh]]]] は後から正式に [[ISO 15924]] の[[符号]]として割り当てられたようです。
*** [CODE(lang)[Qaac]]
[255]
[[Unicode用字系特性値]]の別名として[[用字系符号]]に相当するものを定める
[[PropertyValueAliases.txt]] によれば、
[CODE(lang)[[[Qaac]]]] は [CODE(lang)@en[[[Coptic]]]] / [CODE(lang)@en[[[Copt]]]]
と同義とされています。
*** その他
[13] [[絵文字]]に [DFN[[CODE[Qaae]]]] が用いられたことがありますが、
現在は [CODE[Zsye]] が好ましいと考えられています [SRC[>>1]]。
[14] [[Klingon]] に [DFN[[CODE[Qaak]]]] が用いられたことがあります [SRC[>>1, >>2]] が、
現在は [CODE[Piqd]] が好ましいと考えられています。
[REFS[
- [1] [CITE@en[Replace private use tags for emoji (Qaae) and Klingon (Qaak) with new ISO 15924 tags · Issue #139 · googlei18n/nototools]]
([TIME[2016-01-13 16:01:04 +09:00]] 版)
<https://github.com/googlei18n/nototools/issues/139>
[FIG(quote)[
[FIGCAPTION[
[2] [CITE@en[Klingon alphabets - Wikipedia, the free encyclopedia]]
([TIME[2016-01-03 02:49:04 +09:00]] 版)
<https://en.wikipedia.org/wiki/Klingon_alphabets>
]FIGCAPTION]
> Bing currently uses the Qaak private use script code for pIqaD until an official ISO 15924 script code is assigned.
]FIG]
]REFS]
** [CODE(lang)[Zinh]]
[5]
[DFN[[CODE[Zinh]]]] は「inherited script」を表すとされています。
[7]
ただし [[IANA登録簿]]では、 [[言語タグ]]での利用は想定していないとされています。
[8]
[[Unicode言語識別子]]・[[Unicodeロケール識別子]]には他に [CODE[Qaai]]
がありますが、より新しい [CODE[Zinh]] がより好ましいとされています [SRC[>>233]]。
[9]
[[UCD]] では [CODE[Inherited][Inherited (UCD)]] と同義とされています。
;; [15] [[IETF言語タグ]]にはない [[XSL-FO]] の独自の拡張で [CODE[inherit]]
という値がありますが、[[言語タグ]]全体の "inherit" を表していて、
[[用字系]]だけが対象の [CODE[Zinh]] とは少し違います。
>>17 も参照。
[44]
[CODE[ScriptLangTag]]
では使う[RUBYB[べきではありません][should not]]
[SRC[>>43]]。
** [CODE(lang)[Zxxx]]
[12]
[DFN[[CODE[Zxxx]]]]
は unwritten document
を表すとされています。
[46]
[CODE[ScriptLangTag]]
では使う[RUBYB[べきではありません][should never]]
[SRC[>>43]]。
** [CODE(lang)[Zyyy]]
[239] [[Unicode言語識別子]]・[[Unicodeロケール識別子]]では [DFN[[CODE(lang)[[[Zyyy]]]]]]
に「[RUBYB[共通]@en[common]]」という意味を割り当てています [SRC[>>233]]。
[3] [[UCD]] では [CODE[Common][Common (UCD)]] と同義です。
[45]
[CODE[ScriptLangTag]]
では使う[RUBYB[べきではありません][should not]]
[SRC[>>43]]。
** [CODE(lang)[Zzzz]]
[240] [[Unicode言語識別子]]・[[Unicodeロケール識別子]]では [DFN[[CODE(lang)[[[Zzzz]]]]]]
に「[RUBYB[不明]@en[unknown]]」という意味を割り当てています [SRC[>>233]]。
[4] [[UCD]] では [CODE[Unknown][Unknown (UCD)]] と同義です。
[250] [CODE(lang)@en[[[kr]]]] (>>246) においては [CODE(lang)@en[[[Zzzz]]]] は [CODE(lang)@en[[[others]]]]
と同義とされており、明示されていない[[符号]]すべてを表す [SRC[>>247]] ことになっています。
[47]
[CODE[ScriptLangTag]]
では使う[RUBYB[べきではありません][should never]]
[SRC[>>43]]。
** その他
[10] [DFN[[CODE[Zmth]]]] は Mathmatical notation
を表すとされています。
[11] [DFN[[CODE[Zsye]]]] は記号 (絵文字版) を、
[DFN[[CODE[Zsym]]]] は記号を表すとされています。
* 数字符号
[31]
[[0埋め]]ありで[[ASCII数字]]3桁で表される数値符号があります。
[32] >>244 に登録済み符号の一覧があります。
[33] 利用されているのかは不明です。
* 一覧
[251] [[ISO 15924]] の[[用字系符号]]の一覧は >>244 にあり、 [[HTML]] および[[平文]]形式で公開されています。
[[Unicode用字系特性値]]との対応関係も記述されています (>>249)。
[252] [[BCP 47]] の登録簿にも[[用字系部分タグ]]の一覧が含まれています。 [[BCP 47]] の項を参照してください。
[REFS[
- [253] [CITE[manakai/data-web-defs]] ([TIME[2014-03-08 02:20:43 +09:00]] 版) <https://github.com/manakai/data-web-defs>
]REFS]
[254] >>253 にも[[用字系部分タグ]]や [CODE(lang)@en[[[kr]]]] の値とその実装に必要な情報が [[JSON]] として含まれています。
- [36] [CITE@en[iso-codes / iso-codes · [[GitLab]]]], [TIME[2022-11-14T11:38:21.000Z]] <https://salsa.debian.org/iso-codes-team/iso-codes>
-- [34] [CITE@en[data/iso_15924.json · main · iso-codes / iso-codes · [[GitLab]]]], [TIME[2022-11-14T11:37:55.000Z]] <https://salsa.debian.org/iso-codes-team/iso-codes/-/blob/main/data/iso_15924.json>
[37] >>34 符号の一覧および >>36 その名称の各言語[[翻訳テキスト]]データ。
- [38] [CITE@en[GitHub - wooorm/iso-15924: ISO 15924 codes]], [TIME[2022-11-14T11:39:05.000Z]] <https://github.com/wooorm/iso-15924>
-- [39] [CITE@en[iso-15924/index.js at main · wooorm/iso-15924 · GitHub]], [TIME[2022-11-14T11:39:40.000Z]] <https://github.com/wooorm/iso-15924/blob/main/index.js>
[40] >>39 符号の一覧、 [[Unicode用字系特性値]]との対応関係入り。
* 文脈
[245] [[ラテン文字]]4文字の[[用字系符号]]は、次のように使われています。
[FIG(list)[ [29] [[用字系符号]]の用法
- [[言語タグ]]の[[用字系部分タグ]]として (>>230)
- [[言語タグ]]の[[拡張U]]の [CODE(lang)@en[[[kr]]]] の[[型]]の一部として (>>246)
- [[言語タグ]]の[[拡張U]] の [CODE(lang)@en[[[nu]]]] の[[型]]として (>>256)
- [[Unicode用字系特性値]]の[[別名]]として (>>28)
- [[XSL-FO]] [CODE['script']] [[特性]]の値として (>>17)
- [[PLS]] [CODE[orthography]] [[属性値]]として (>>18)
- [CODE(HTTP)@en[[[Content-Script:]]]]/[CODE(HTTP)@en[[[Accept-Script:]]]] の値として
- [[用字系札]]の[[用字系部分タグ]]として
]FIG]
-*-*-
[17] [[XSL-FO]] の [CODE(XSL)['script']] 特性では値に
[CODE(ABNF)[<ISO Script Code> / 'auto' / 'none' / 'inherit']]
を採用しています。
仕様書: [CSECTION[Formatting Properties]]
<http://www.w3.org/TR/xsl/slice7.html#script>
-*-*-
[18]
[CITE[Pronunciation Lexicon Specification (PLS) Version 1.0]]
<http://www.w3.org/TR/pronunciation-lexicon/#S4.5>
では [CODE(XMLa)[[[orthography]]]] 属性に
[[ISO 15924]] の名前を採用しています。
[21] 同仕様 (や関連仕様) の [CODE(XMLa)[[[alphabet]]]]
属性では [CODE(XML)[[[ipa]]]] など表音字母の種類を指定しますが、
それもここでいう[Q[用字系札]]の範疇のような気もしますしむしろ[[言語札]]の特殊なもののような気もしますが自然言語は別レイヤで更に存在していますし(謎)。
結局言語と文字(の種類)と文字の使い方(の体系)は切っても切り離せないのに多対多対応なのが悪いのだ(謎)。
* 言語タグの用字系部分タグ
[120] [[IETF言語タグ]]における[DFN[[RUBYB[[[用字系]]] @en[[CODE(ABNF)[script]]]]]][[部分タグ]]は、
[[言語]]を書き表す時に使う[[用字系]]や[RUBYB[[[書字体系]]]@en[writing system]]を表します。
[[ISO 15924]] のラテン文字4文字による[[用字系符号]]がそのまま利用されています。
;; [231] [[言語タグ]]全体については、「[[言語タグ]]」の項を参照してください。
[234] [[Unicode言語識別子]]・[[Unicodeロケール識別子]]では [DFN[[[Unicode]] [RUBYB[用字系符号]@en[script code]]]]
または [DFN[[CODE[unicode_script_subtag]]]] と呼ばれています [SRC[>>233]]。
** 仕様書
[REFS[
- [232] [[BCP 47]]
- [233] [CITE@en-us[UTS #35: Unicode Locale Data Markup Language]] ([TIME[2011-07-19 03:14:51 +09:00]] 版) <http://unicode.org/reports/tr35/#Language_Locale_Field_Definitions>
- [247] [CITE@en-us[UTS #35: Unicode LDML: Collation]] ([TIME[2013-09-18 19:18:43 +09:00]] 版) <http://www.unicode.org/reports/tr35/tr35-collation.html#Script_Reordering>
- [43]
[CITE@ja-jp[[[meta]] — Meta table (OpenType 1.9) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2022-12-03T02:39:04.000Z]] <https://learn.microsoft.com/ja-jp/typography/opentype/spec/meta#scriptlangtag-values>
]REFS]
** 意味
[230] [[用字系]][[部分タグ]]はその[[言語タグ]]によって表される[[言語]]で主として使う[[用字系]]を表しているだけであって、
その[[言語タグ]]が付された対象がその[[用字系]]だけによって構成されるとは限りません。
[SRC[[[RFC 5646]] 4.2.]]
** 構文
[122] [[用字系部分タグ]]として用いられる4文字の[[ラテン文字]]である[[用字系]]は、 [[ISO 15924]]
で定義、またはそれに従い登録されたものを、更に [[IANA]] に登録したものです。
[SRC[[[RFC 4646]] 2.2.3., [[RFC 5646]] 2.2.3.]]
;; [125] [[用字系]]として [[ISO 15924]] に含まれていないものは [[IANA]]
に登録することはできません。 [[RFC 4646]] には必要があれば[[異体]]として登録できると記述されていました
[SRC[[[RFC 4646]] 2.2.3.]] が、 [[RFC 5646]] では削除されています。
** 文脈
[121]
[[IETF言語タグ]]では、
[[用字系]]は[[言語]]や[[拡張言語]]の後で、他の[[部分タグ]]の前に高々1つだけ置かなければ[MUST[なりません]]
[SRC[[[RFC 4646]] 2.2.3., [[RFC 5646]] 2.2.3.]]。
[124]
[[IETF言語タグ]]に[[用字系部分タグ]]を含めても他と区別する上で意味が無い時、
[[言語部分タグ]]や[[拡張言語部分タグ]]の[[登録][IANA登録簿]]に
[CODE[Suppress-Script]]
が含まれている時には、
[[用字系]]は省略する[SHOULD[べきです]]。
[SRC[[[RFC 4646]] 2.2.3., [[RFC 5646]] 2.2.3.]]
[41]
[CODE[ScriptLangTag]] では[[用字系部分タグ]]は必須で、ちょうど1個だけ書けます。
[[言語部分タグ]]の次に書きますが、
[[言語部分タグ]]が省略された場合は先頭に来ます。
** 言語タグの用字系抑制
[200] [[IANA]] 登録簿には [[Suppress-Prefix]] (用字系抑制) 欄があります。
これは[[言語]]と[[拡張言語]]の登録にのみ使われ、
当該[[言語]]・[[拡張言語]]と指定された[[用字系]]を組み合わせて使う[['''べきではない''']]ことを表します。
[SRC[[[RFC 4646]] 3.1., [[RFC 5646]] 3.1.2.]]。
[201] 使うべきではないというのは不適切な組み合わせというわけではなく、
自明な組み合わせであるので必要がない限り明示しなくても良いということです。
使わないことにより [[RFC 3066]] 以前の[[用字系]]が無い頃の[[言語タグ]]との互換性を維持できます
[SRC[[[RFC 5646]] 3.1.9.]]。
;; [207] ほんと、なんで[[用字系]]を間に挟んだんでしょうね・・・。
[EG[
[208] 例えば [CODE(lang)[[[is]]]] ([[アイスランド語]]) は普通 [CODE(lang)[[[Latn]]]]
([[ラテン文字]]) で表記されるので、 [CODE(lang)[[[is]]]] の用字系抑制には
[CODE(lang)[[[Latn]]]] が指定されています。従って [CODE(lang)[[[is-Latn]]]]
ではなく、単に [CODE(lang)[[[is]]]] とするべきです。
[211] しかし他の[[用字系]]と併用する場合には、敢えて明示する意味があるかもしれません。
例えば[[アイスランド語]]を [CODE(lang)[[[Brai]]]] ([[点字]]) 表記した[[文書]]と[[ラテン文字]]で表記した[[文書]]が選択できるなら、それぞれ
[CODE(lang)[[[is-Brai]]]] と [CODE(lang)[[[is-Latn]]]] と表すのが良いでしょう。
[SRC[[[RFC 4646]] 4.1., [[RFC 5646]] 4.1.]]
]EG]
[EG[
[212] 複数の[[用字系]]が使われることがある[[言語]]であっても、
[[用字系]]を明示せずに省略した方が良いこともあります。例えば[[音声]]だけなら、
[[用字系]]は意味が無いので省略して [CODE(lang)[[[uz]]]] のように表すことができます。
あるいは、「書かれていない」ことを表す [CODE(lang)[[[Zxxx]]]] を使って
[CODE(lang)[[[uz-Zxxx]]]] のように表すこともできます。
[SRC[[[RFC 4646]] 4.1., [[RFC 5646]] 4.1.]]
]EG]
[42]
[CODE[ScriptLangTag]] では[[用字系部分タグ]]は必須で、
[[IETF言語タグ]]の[[用字系抑制]]側の設計とは真逆です。
* 拡張Uの [CODE(lang)@en[kr]] における用字系符号
[242] [[用字系]]は、[[U拡張]]の [CODE(lang)@en[[[kr]]]] の[[型]]の一部としても使うことができます。
[246] [[言語タグ]]の[[拡張U]]の [CODE(lang)@en[[[kr]]]] では[[用字系符号]]以外の[[文字]]の種別を表す値も使える他、
利用可能な[[用字系]]の値も制限されています [SRC[>>247]]。
* 拡張Uの [CODE(lang)@en[nu]] における用字系符号
[256] [[LDML]] および[[言語タグ]]の[[拡張U]]の [CODE(lang)@en[[[nu]]]] では[[数字]]の種類に識別子を与えていますが、
対応する[[用字系符号]]をそのまま用いるのを原則とし、それで表現できないものに対してはそれより長い識別子を与えています。
* Unicode用字系特性値における用字系符号
[248] [[Unicode用字系特性値]]も[[用字系]]を識別するものですが、 [[Unicode]] と
[[ISO 15924]]
では[[用字系]]の粒度が異なっているため、必ずしも[[一対一対応]]していません。
[28]
が、対応関係にあるものについては、
[[ISO 15924]]
の符号と同じ4文字符号が
[[Unicode用字系特性値]]側でも短い[[別名]]となっていて、
区別なく使えます。
[SEE[ [[Unicode用字系特性値]] ]]
[249] [[ISO 15924]] の登録簿 (>>244) には、両者の対応関係も「[[Property Value Alias]]」として記載されています。
* 関連
[16]
その他の符号体系は[[用字系]]参照。
* 歴史
[126] [[RFC 1766]] や [[RFC 3066]] の頃は[[用字系]][[部分タグ]]はありませんでした。
[19] RFC 1766 は[[用字系]]の識別までを含めた例として [CODE(LANG)[az-arabic]] と
[CODE(LANG)[az-cyrillic]] を挙げていますが、 RFC 3066
にはそのような用途の例示さえありません。 [639FAQ] (>>3) は用字系の識別には言語符号より
[[ISO15924]] を使うようにと言っているのと関係があるかもしれません
(しないかもしれません)。
[20] しかしなんにせよ用字系の指定も含めた言語札が使えた方が、
(用字系を別途指定出来る規格なんて多分ないので) 良いと思います。
[30] [[正書法]]がどうこうを含んだ奴は用字系込みに近いよな。違うことは違うが。
[35] >>19-30 [[用字系札]]を使えるようにしる!
[148] [[RFC 3066]] までは[[用字系]][[部分タグ]]はなかったので、
[CODE(lang)[[[zh-TW]]]] のように[[言語]]と[[地域]]を直接つなげたものが一般的で、
現在でも広く用いられていますが、 [[RFC 4646]] はなぜか[[用字系]]を間に挟む構文としました。
そのため [CODE(lang)[[[zh-Hant-TW]]]] のような表記がより厳密なものとされ、
実質的な非互換変更となっています。
[[前方一致]]などの一般的な比較方法でも [CODE(lang)[[[zh-TW]]]] と
[CODE(lang)[[[zh-Hant-TW]]]] は一致しません。
;; [149] [CODE(lang)[[[zh-TW]]]] は[[台湾]]で使われている[[伝統字]]の[[中文]]を表す[[言語タグ]]として広く使われていますが、
[[RFC 4646]] 以降の定義に従うなら単に[[台湾]]の[[中文]]を表すに過ぎず、
[[伝統字]]であることまで含めた意味でこの[[言語タグ]]を使うことは不正確になります。
意味的な一貫性を考えれば確かにその方が良いのでしょうが、既存の慣習的解釈に対して非互換変更を行う価値があるようには到底思えません。
現に [[RFC 4646]] が出版されてから数年が立ちますが、 [CODE(lang)[[[zh-Hant-TW]]]]
のような表記が普及している、あるいは普及していくようにはまったく思えません。