InstantRailsとRuby-GetText-Package

| コメント(0)

当然作るアプリは最初、日本語が使えれば良いということで、viewなどはガリガリ日本語で直接書いてしまうのが、手っ取り早くて良いような気がした。

しかし性格的に全体がカッチリしてないと次に進めないのか、多言語対応するための仕組みを調べ始めてしまう。めっちゃ参考にしているライド・オン・Railsでは、Special-GenerationとRuby-GetText-Packageが紹介されている。

Supecial-Generationはscaffoldジェネレータの拡張で、多言語対応というより、Ruby on Railsの中の日本語に対応しているミニフレームワークと言った雰囲気。ちょっと私の趣味に合わない気がしたのでスルーの方向で。

Ruby-GetText-Packageはスタンダードっぽい。こっちを採用し、ごにょごにょ始めることに。

躓いたのは、InstantRailsでpoファイルのマージが出来ないというところ。ライド・オン・RailsではRakefileを拡張し、rakeタスクとしてpoファイルを作成できるようにしているが、内部でmsgmergeというコマンドが使われており、それが見つからないらしい。msgmergeはGnu GetTextのコマンドの様だ。

> rake update_po (in Y:/usr/home/iwazawa/workspace/hogehoge) po/hogehoge.pot Y:/usr/local/InstantRails/ruby/bin/rake.bat: No such file or directory - msgmerge po/hogehoge.pot tmp.pot rake aborted! You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.empty? Y:/usr/home/iwazawa/workspace/hogehoge/rakefile:16 (See full trace by running task with --trace)

InstantRailsのRubyのインストールセットの中にrmsgmergeというコマンドがあり、これをGnu GetTextの代わりに使えるという情報をゲットした。やり方は<InstantRails install path>\use_ruby.cmdファイルに

set MSGMERGE_PATH=<InstantRails install path>\ruby\bin\rmsgmerge.cmd

という行を追加するというもの。これではInstantRailsのruby用コマンドプロンプトからしか実行できないが、radrailsでPATHを指定する方法が分らず妥協するとする。

あと、use_ruby.cmdファイルの冒頭のコメント部に、「このファイルはInstantRailsによって生成されるので、テンプレートな<InstantRails install path>\conf_files\use_ruby.cmdファイルを編集するように」といった、お達しがあるのだが、言われるままに変更してもいっこうに、コマンドプロンプトの環境が変わらなかったため、仕方なく直接書き換えました。



コメントする

このブログ記事について

このページは、iwazerが2007年5月19日 17:57に書いたブログ記事です。

ひとつ前のブログ記事は「7777」です。

次のブログ記事は「iTunesのフルスクリーン」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。