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

July 04, 2004 [おもひで]

[Ruby] Ruby-GetText-Package-0.6.0 released

リリースした。なんか、ますますリリース作業に時間がかかるようになってきてしまった....。いつになっても苦手な作業だ。

さて、今回の目玉は、対象文字列を抽出してpoファイルを生成してくれるrgettextが、rubyのソースだけではなくGlade-2の生成したXMLファイル(.gladeファイル)からも直接poファイルを生成できるようになったことだ。

rgettextは複数のソース、.gladeファイルをまとめて指定できるので、ソースがXMLだろうがrubyのソースだろうが関係なく1つのpoファイルにまとめることができるようになった。

これで、Ruby-GNOME2で国際化アプリを作るときの最後の障害が排除できた....かな?

以前、Ruby-GetText-PackageをRubyで再実装するときに、どうせ車輪の再発明をするくらいなら出力ファイルであるmoファイルをGNU GetTextのバイナリフォーマット互換にせずに、XMLかなんか(当時はYAMLが無かった)で表現した方が良いのではないかと一時期悩んだこともあった。

#ってか実装までしたんだよなー。

でも、最近は、Ruby/Libglade2等のようにGNU GetTextのmoファイルが前提となるようなライブラリがあることを知ったので、このmo互換路線は結果的には良かったなぁという気がしてきた。あまりいろいろなフォーマットが乱立するのもどうかなと思うしね。

おっと。こういう書き方すると、Ruby-GetText-PackageはまるでRuby-GNOME2のためのライブラリと思われる人もいるかもしれないけど、そうではないつもり。

是非、他のツールキット、コンソールアプリ、なんでも良いんだけど国際化をする際には使ってみて欲しいなぁ。

#とはいっても、moファイルの読み込み等で起動時のオーバーヘッドが

#あるので、CGIなんかには向かないかも知れないんだけどね。

あ、そうそう、もう一つ改善したところとして、rgettextが以下のようなフォーマットもサポートできるようになった(はず)。オレはあまり気にしない方なんだけど、案外、要望が多かったんだよな。

str1 = _("aaa
bbb
ccc")
 
str2 = _("aaa"
         "bbb"
         "ccc")
 
str3 = _("aaa") + foo + _("bbb")

本日のツッコミ(全4件) [ツッコミを入れる]
lrz (July 05, 2004 04:44)

非常によい!

むとぽん (July 05, 2004 10:16)

Thanks ;)

なかだ (July 08, 2004 07:58)

ヒアドキュメントはダメですか。

$ rgettext -v
/usr/bin/rgettext 1.12 (2004/07/03)

$ cat a.rb
str = _(<<EOS)
aaa
EOS
$ rgettext a.rb
private method `gsub' called for nil:NilClass

むとぽん (July 09, 2004 02:48)

そこまで考えてませんでした...(^^;)。


編集