自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

July 05, 2006 [長年日記]

[Ruby] Railsで日本語を使う時に必須のパッケージ Ruby-GetText

タイトルの割に微妙に欠点(欠点とは思っていませんが(苦笑))が誇張されている感じですねぇ。うーむ。

まず、なんだか、gemが悪者にされていますが、そもそも、Rails自体、gemでインストールされるのだから、そのタイミングで半ば無意識にRuby-GetTextもインストールしちゃえば良いんじゃないかと思います。

にしても、なんで、「gemは致命的」なんでしょう。インストーラのコマンド入力方法がプラグインに比べて難しいとは思えません。Rails使っていても、DBドライバをはじめgemでリリースされているライブラリを使う場面も少なくないですよね。Rails的にPluginより使い勝手が落ちる、というのはともかくとして「致命的」なほど差があるとはとうてい思えません。

Ruby-GetText-Packageは他のプラグインをローカライズするために使用することも可能です。なので他のプラグインより先にロードされる必要があります。さらに言えば、Ruby-GetTextに対応したライブラリがあれば、それらより先に読み込まれる必要があります。そういうことを考慮に入れるとgem(というか普通のライブラリ形式)の方が好都合です。ってそんな(GetText対応された)ライブラリは今のところ見たことないですけど(苦笑)。

「Ruby-GetTextが流行らないのは、名前が悪い様な気がするなぁ」とのことですが、おそらく全世界的に見るとGlobalizeより使われている(=流行っている(?))んじゃないかと思っています。少なくとも英語を除いても12カ国で利用されているはずですし、私のところにはかなり頻繁に質問メールが来たりしています(ホントはMLに投げて欲しいんですけどね(苦笑))。

蛇足ですが現時点でGlobalizeはカナダやヨーロッパあたりのごく一部の国で使われているくらいじゃないでしょうか。日本語のリソースも用意されてないですよね。

日本語に特化して言うと、ActiveHeartやjascaffold等の先輩がいて、そちらに慣れている方が多いという特殊事情があるため、「流行っていない」と感じられるのかもしれません。しかし、確実にRuby-GetTextを使って頂いている方は増えていると実感しています。確実に。

JapaneseUtilsとするのはあり得ないですね。日本語化のためだけのツールじゃありませんし。

「TransSid機能がない」件ですが、この機能自体は日本語化(ローカライズ)とはちょっと別機能ですよねぇ。まぁ、どうしてもと言うことなら取り込むこともできますが、私としては、TransSid機能+絵文字対応+携帯機種判別機能+α的な「携帯専用プラグイン」を作ってRuby-GetTextとは別にインストールできるようにするのが良いんじゃないかと思います。きっと今、その辺の機能をまとめたプラグインを作ると話題の人になれると思いますよ。誰かやりません?(と人頼み)

scaffoldの件はどうなんでしょう。Ruby-GetText対応版があっても良いなぁと思いますが、私自身は自前scaffoldを書いてそちらを使うようにしているのでその際にGetText化を組み込んじゃうんですよね。

「適当な英語を思いつくのがめんどくさー」という場合、Ruby-GetTextをActiveRecord翻訳専用に使えば良いんじゃないかと思います。Viewはもう日本語のみ(GetTextのメソッドは一切使わない)で。テーブルやカラム名だってローマ字で良いんじゃないでしょうか。ってか実際そういう(テーブル名やカラム名にローマ字を使う)プロジェクトは結構あるんじゃないかな(笑)。

「敷居が高い」と思うのは否定しませんが、単純にその学習(インストール)コストを高く見積もりすぎな気がします。一度Ruby-GetText-Packageの開発手順を学習できれば驚くほど簡単にメッセージの日本語化、およびその維持ができると思っています。

まぁ、単純なアプリはともかくとして継続的なRailsアプリ開発でのローカライズツール・ライブラリとしてRuby-GetText-Packageを導入することを考えてはいかがでしょうか。その際には必然的にソースコードのメンテナンスコストに比重が重く置かれるようになるでしょう。

まぁ、ともかく、Ruby-GetTextもまだまだな点があることは事実です。

もし、改善案などがあれば、ご相談ください。ってかパッチください(笑)。

[Ruby] Railsのプラグインについて思うこと

Railsのプラグインの話が出たのでついでに書いておこう。

実はtDiaryのプラグインを開発していた時も思っていたんだけど、優秀で汎用性のあるライブラリに成りうる機能がプラグインとしてRails専用になっちゃうのはちょっと寂しいなぁ、と思う今日この頃。その方が作りやすいのはよくわかる(tDiaryのプラグインの時に経験済み)んだけどね。

例えば、ActiveRecordのサポートプラグイン。ActiveRecord自体はRailsが無くても使えるけど、ActiveRecordサポートプラグインってRailsが無いと動かせないよね?(これ勘違い?だとしたらスマン)

本日のツッコミ(全2件) [ツッコミを入れる]
Yugui (July 06, 2006 16:43)

でもRails勉強会で私が最初にRuby-GetTextのことを知ったとき、うっかり「それってGNU gettextのruby版?」と尋ねて「そうだよ」って答えられて、「ふーん」と流してしまったんですよね。それで話題はGlobalizeに行ってしまった。<br><br>Ruby一般向けのライブラリとしては名前が「gettextだから使ってみる」っていうのが大いにありそうですが、Rails対応部分の名前については、Globalizeという名前の大言壮語っぷりには負けてるかなぁという気がします。

むとう (July 06, 2006 20:17)

するどいですねー。痛いところをぐっさりと(苦笑)。 <br><br>本文では名前の良し悪しについてはわざと言及しませんでした。 <br>かわりに、名前がGlobalize(の大言壮語っぷり)に負けてはいても、実際には(Globalizeではなく)Ruby-GetTextを採用しているプロジェクトはGlobalize以上に負けずに存在し、「名前のせいで流行っていない」と言われる程のことはない、ということを述べたつもりです。 <br><br>Rails向けという意味でのRuby-GetTextはGNU GetTextより全然高機能なローカライゼーションを提供しているという意味ではちょっと名前で損している、というのには同意しますけど、Ruby-GetTextにとってRailsサポートはオマケであることにはかわりがないので、名前をかえるというのは今のところ考えてません。 <br>なので、機能的な面については地道に布教活動をしていくしかないかと思っています。Yuguiさんにもご協力いただけたら幸いです。<br><br>それから、Yuguiさんの出席された勉強会の件ですが、そのころのRuby-GetTextはまだバージョンが古かったのではないでしょうか。 <br>Rails対応が進んできたのはここ数ヶ月のことですので・・・。 <br><br>興味を持っていただいた方、実際に試していただいた方は確実に増えてきていますし、状況は変わってきていると思いますよ。