[12] 言語タグの拡張「t
」は、翻訳、転写など変形の方法を記述するものです。
[21] t
拡張は、それを表す t
という部分タグの後に、
言語タグと欄をつなげたものです。言語タグは変換元の言語を表しますが、省略できます。
欄は変換についての追加情報を表し、任意の個数記述できます。ただし言語タグを省略した場合は、
最低1つは欄が必要です。 >>5
[13] 変換元として t
拡張内に埋め込まれる言語タグは、正規かつ妥当かつ正準形でなければなりません。
また、拡張や私用は含んではなりません。 >>5 なおここで「正規」とは、
irregular
でなく regular
に一致することをいいます。
[18] 変換についての追加情報を任意の個数、「欄」として含めることができます。 欄は先頭の部分タグとしてラテン文字と数字の2文字を使って表します。 この先頭の部分タグを欄分離子といいます。 >>5
[22] 各欄は、欄分離子のあと、3-8文字のラテン文字や数字で構成する部分タグが1つ以上必要です。 >>5 それらの部分タグの意味は欄の種類により異なります。
[23] 同じ欄分離子を1つの言語タグで複数回使ってはなりません。 欄同士の順序には意味はありませんが、アルファベット順で整列したものを正準形とします。 >>5
[27] 欄の定義は LDML で規定されることになっていますが、実際には XML ファイルの構文が定義されているだけで、 その意味は XML ファイル中に簡単に説明されているだけです。
[28] t
拡張の定義は http://unicode.org/repos/cldr/trunk/common/bcp47/transform.xml
に含まれると説明されていますが、実際には欄ごとに別のファイルに含まれています。
m0
欄[29] m0
欄は変換方式を表します >>5, >>35。
[30] この欄は最初に定義されたもので、 RFC 6497 にも説明があります。 RFC は他の場所の定義を要約したような体になっていますが、実際には RFC が最も詳しい説明のようです・・・。
[31] この欄に属する部分タグで数字だけで構成するものは、日付を表すことになっています。 その場合、他の部分タグがなければならず、最後の部分タグでなければならず、 4桁で年を表すか、6桁で年月を表すか、8桁で年月日を表すかのいずれかでなければならず、 できるだけ短くするべきです。この日付自体、必要な時だけ使うべきです。 >>5
i0
欄k0
欄t0
欄s0
欄[47] s0
欄は、
アクセント処理、適切な引用符の選択、
十六進数表記といったような種々の変形(元)を表します。
「Transform source for non-languages/scripts.」と説明されています。
d0
欄[47] d0
欄は、
正規化、case folding、アクセント処理、適切な引用符の選択、
十六進数表記といったような種々の変形(先)を表します。
「Transform destination for non-languages/scripts.」と説明されています。
h0
欄[48] 「Language mixed into hybrid language tag」を表すと説明されています。
[50] es-t-h0-en
は Spanglish を表すとされています。
x0
欄[44] 構文的に適切な任意の部分タグの列を使うことができます >>43。すなわち、 3-8文字の英数字の部分タグを任意個指定できます。
[45] t
拡張の構文やその他の要件は RFC にいくつもありますが、
BCP 47 のいう「拡張の妥当性」には明確に言及されていません。例えば未登録の欄を使うと拡張は非妥当となるのかは不明瞭です。
[25] 新たな欄や値の定義は Unicode CLDR 技術委員会の手続きにより LDML に追加することで行われるとされています。 >>5
[34] 構文や意味を変更する場合には RFC が必要なものの、そのような安定性を損なう変更は Unicode Consortium の方針に反するとされています。 >>5
[58]
開発初期には拡張 s
と拡張 t
でわけて記述する案もありました。
>>57
- "zh-t-i0-pinyin", to indicate Chinese text generated with a pinyin input method
- "en-t-k0-dvorak", to identify a Dvorak keyboard for English
- "it-t-k0-osx-extended", to request an extended Mac keyboard for Italian
私用のタグの例:
- "ru-t-en-x0-mobile", to indicate a translation from English to Russian for use on a mobile device, or
- "ja-t-de-m0-und-x0-medical", to identify a machine translation from German to Japanese with a specialized dictionary for medical terms.
[17] マーク付け言語などで変換の前後の言語タグをそれぞれ記述できるときには t
拡張は使う必要はありません >>5。
i
,x
,u
など) が含まれることはありません。1文字の部分タグは拡張や私用の区切りとして使われるので、t
拡張内に含めることは原理上できません。更に、 RFC 3066 までに IANA に登録され、 RFC 4646 以後の正規な言語タグの構文に合致しないタグや、 未登録のタグや正準形でないタグは使えないことになります。この辺りは少し厳し目ですね。なお、 大文字と小文字の違いは正準形か否かとは独立しているので、問題となりません。