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

May 05, 2006 [長年日記]

[Rails] Ruby on Railsで日本語しか使わない場合でもRuby-GetText-Packageを使う理由

Ruby-GetText-Packageは元々メッセージの国際化のためのライブラリです。なので、とかく、

「アプリを国際化したい場合は使った方が良いよ。」

という話になります。これはこれで正しいのですが、Ruby On Railsに限って言うと、

「日本語でRoRを使う場合はとにかく使った方が便利だよ。」

なのです。ホント?

ViewやControllerでわざわざ英語を考えて_("eigo shiranaimon")なんて書いてらんねーよ、と思う方がいるかもしれません。

でも、国際化を考えない場合、_("eigo shiranaimon")なんてわざわざやらずに、素直に "英語しらないもん" と書いてしまえば良いわけです。

だとしたら、Ruby-GetText-Packageを使うメリット無いじゃん。と思うかもしれませんがそんなことはありません。

まず、Modelの各カラムを抽出したリソースファイル(メッセージカタログ, poファイルのこと)を自動で作成してくれます。このリソースファイルに日本語を記述するだけで、いろいろなところ(主に入力エラー時のカラム名等)が日本語化されます。テーブルが増えたりカラムが増減したりした場合もRakeのコマンド一発で差分を適切にリソースファイルにはき出してくれます。これを手作業でやったりしたらそれはもう大変な作業です。

さらに、入力エラー画面はRuby-GetText-Packageを使うだけ(追記:インストールしてinit_gettextを呼ぶだけ)で、全て日本語化されている状態になります。

また、Content-Typeも適切に指定してくれます。RJS等を一緒に使う場合、Content-Typeを指定する際にちょっとしたトリックが必要なのですが、Ruby-GetText-Packageを入れてしまえば意識する必要がありません。

ActionMailerについても、標準ではUTF-8のメールになってしまいますが、Ruby-GetText-Packageインストールするだけ使うだけ(インストールしてinit_gettextを呼ぶだけ)でISO2022JPに変換されてメールされるようになります。

これらだけでも、日本語+Ruby On Railsの組み合わせではRuby-GetText-Packageを使ってみる価値はあるのではないでしょうか。ぜひ、一度、使ってみてくださいね。