Next: , Previous: , Up: Conclusion   [Contents][Index]


16.1 GNU gettextの歴史

国際対応の重要性やアルゴリズムは、非公式にではありますがが毎日のように数年に渡ってGNUで論議されてきました。ときにはGNU libcに関係して、あるときはHurdに関係して、あるいはその他のものに関係してです(誰もはっきり とは覚えていません)。そしてそれから作業は実際に始まりましたが、これは先だっての議論とは独立したものでした。

全ては、Patrick D’CruzeがGNU fileutilsバージョン3.9.2の国際対応についてのアイディアそして主導権を得たとき、つまり1994年の7月に始まりました。彼はそれから保守担当者であるJim Meyeringに、国際対応に関する変更をどのようにして正式リリースに含めるかについて尋ねました。最初のドラフトは#ifdefの塊で面食らうような代物でしたので、Jimはもっと良い方法を求めていました。PatrickとJimはこの分野においての試みや経験を共有していました。そして、結局のところこの作業はGNUに大きなインパクトを与えると感じたので、Jimは標準がどのようなものであるかを知りたくなり、そして彼はRichard Stallmanにコンタクトを取りました。Richardはその時点で、glocaleとなるコード全体のデザインについて非常に手早くかつ丁寧に記述しました。

Jimはglocaleを実装し、PatrickやRichardから多くのフィードバックを受けました。もちろん、Mitchum DSouza(catgetsのようなパッケージを記述した)やRoland McGrath,またDavid MacKenzieやFrançois Pinard、Paul Eggertらからのフィードバックもありました。様々な方向性が入り乱れ、しかもそれら全てに互換性があるというわけではなかったため、2、3のテストリリースの後、glocaleは破棄されました。特にPaul Eggert — 彼は常にSolarisを注視していました — は、glocalecatgetsにもとづくAPI上にgettextAPIを使用することを提唱しました。

Jimがある程度距離と時間をおき、そして二人目のパパになった間に、RolandはGNU libcを国際対応させたいと望んでおり、Ulrich Drepperがそのプロジェクトに加わりました。glocaleから作業を始める代わりに、Ulrichは一からコードを書き直しましたが、それはglocaleの作業で明らかになったガイドラインにより一層従う形になっていました。それからUlrichは以前のフォーラムから新しいプロジェクト用に人員を獲得し、glocaleをまずmsgutilsと改称しました。それは後にnlsutilsという名前になり、さらにgettextという名称になりました。これは1995年5月頃にRichardによって公式に受諾されました。

Ulrich Drepperが1995年の四月にGNU gettextで書いたことに言及してまとめとしようかと思います。POモードを含んだパッケージの最初の公式リリースは1995年の7月に行われ、そのバージョン番号は0.7でした。その他の人々はUlrichの回りの議論フォーラムで作成された、小さなコードのかけらやテストの結 果といった諸々のものを寄贈しました。彼らの名前はGNU gettextに付随するTHANKSファイルに納められました。

この作業が進んでいた間、Françoisは最初に半ダースのGNUパッケージにglocaleを、続いてgettextを現在のように適用してプリテストの状態にし、進化するツールを微調整するための効果的なユーザ環境を準備しました。 彼はまた、翻訳プロジェクトを組織化し統合する責任をも引き受けました。 Patrick D’Cruzeは多くのネイティブランゲージのための20の非モデレートなメーリングリスト、そして二つのモデレートされたリスト(一つは全てのチームに直ちに届くもの、もう一つは国際化されたフリーソフトウェアパッケージの全ての自発的な管理者に連絡するためのもの)を作成し管理しました。そしてほぼ一年の間に 多くの国々の人々の間で非公式な情報交換が行われ、翻訳者チームが1995年5月に発足しました。

FrançoisはまたGreg McGaryの協力を受け、1995年の六月にPOモードを書きあげています。これはUlrichのパッケージに寄贈されました。彼はまたGNU gettextのTexinfoマニュアルも寄贈しています。

1997年に、Ulrich DrepperはGNU libc 2.0をリリースし、これには関数gettexttextdomainbindtextdomainが含まれていました。

2000年に、Ulrich Drepperはplural form処理(ngettext関数)をGNU libcに追加しました。その後2001年、彼はGNU libc 2.2.xをリリースし、これには完全なインターナショナリゼーションをもつ、最初のフリーなCライブラリーでした。

GNU libcのGeneral Maintainerとしての役割によりUlrichは極めて多忙になったため、2000年にGNU gettextのメンテナンスをBruno Haibleに譲り渡しました。Brunoもツールにplural form処理を追加し、UTF-8とCJK localeのサポートの追加、およびPOファイルを取り扱うための新しいツールをいくつか記述しました。