88800


[POSIX.1-2017](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07)では、ロケールに対してLC_CTYPEを含む6つのカテゴリが定められています。

一方、[LC_ADDRESS等がglibcによって拡張された](https://man7.org/linux/man-
pages/man5/locale.5.html)ようです。（何故か[glibcマニュアル](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Locales)には載ってませんが）

ここで、ロケール定義ファイルを見ていると、LC_CTYPEの中でtranslit_startなどのキーワードを見かけます。これはPOSIX.1では規定されていませんが、先のLinuxマニュアルには載っています。そして、glibc拡張であるとは記載されていません。

Linuxマニュアルの末尾にはこうあります。

> CONFORMING TO  
>  POSIX.2.

しかし、POSIX.2について[調べてみると、POSIX初版の1つであり](https://en.wikipedia.org/wiki/POSIX)、内容的にもロケールとは関係なく、その後POSIX.1に統合されているように見えます。

以上から、タイトルの質問になります。  
POSIXロケール LC_CTYPEカテゴリのtranslit_startなどはどこから来たのでしょうか？


CC BY-SA 4.0
2022-05-11T09:19:04.080
88761
2022-05-14T08:33:46.020
16954
question
posix locale
POSIXロケール LC_CTYPEカテゴリのtranslit_startなどはどこから来たのか？


断定的な回答はできないのですが、調べた限りでは [JTC1/SC22/WG20
Internationalization](https://www.open-std.org/jtc1/sc22/wg20/)
によるI18N仕様検討が起源の可能性が高いです。

`translit_start`への言及は下記WG20文書でヒットします。

  * 1998-10-21 [N613: Relation between 14652 and 15435](https://www.open-std.org/jtc1/sc22/wg20/docs/N613.TXT)
  * 1998-12-21 [N634: ISO/IEC FCD2 14652](https://www.open-std.org/jtc1/sc22/wg20/docs/n634.pdf)

前者によると [ISO/IEC 14652 Specification method for cultural
conventions](https://www.open-std.org/jtc1/sc22/wg20/docs/n972-14652ft.pdf)
で定義されていそうですが、2002-08-12付けのFinal Textでは直接的に見つけられませでした。WG20では [ISO/IEC 15435 -
Internationalization APIs](https://www.open-
std.org/jtc1/sc22/wg14/www/docs/n1027.pdf)
の策定を目指していたもの、最終ステータスは不明です（少なくともISO/IECサイト上で存在確認できません）。

なお glibc への変更コミットは 1999-08-31 に行われていました。  
<https://github.com/bminor/glibc/commit/4b10dd6c1959577f57850ca427a94fe22b9f3299>


CC BY-SA 4.0
2022-05-13T08:55:49.073
88800
2022-05-13T08:55:49.073
49
88761
answer


@yohjp さんの回答を受けて、更に調査してみて、以下の結論になりました。

JTC1/SC22/WG20によるi18nの検討は[95年から始まっていたと見られる](https://www.open-
std.org/JTC1/SC22/WG20/docs/n400.htm)。この頃から`translit_start`キーワードが使われ、それがglibcに取り込まれた可能性が高い。  
これらの活動結果はTR
14652として公表されたものの、`translit_start`ではなく`LC_XLITERATE`カテゴリを定義した。また、標準化には至らず、2004年に解散した。

その後、i18nの活動は[JTC1/SC35/WG5](https://www.open-
std.org/jtc1/sc35/wg5/)によって行われ、2014年にISO/IEC
30112として標準化された。[2014年のドラフト](https://www.open-
std.org/jtc1/sc35/wg5/docs/30112d10.pdf)では`translit_start`が定義されている。`LC_XLITERATE`カテゴリも消えてはいないが、Annex
Eにあるように、glibcはこれをサポートしていない。  
2018年に規格の改定が行われたが、[2018年のドラフト](https://www.open-
std.org/jtc1/sc35/wg5/docs/30112d12.pdf)でも状況は変わっていない。


CC BY-SA 4.0
2022-05-14T08:33:46.020
88813
2022-05-14T08:33:46.020
16954
88761
answer