Ruby言語やLinuxのネタが多いです。
January 04, 2008 [おもひで]
■ そうそう。ようやくRuby-GetText-Package付属のRailsサンプルを2.0化できました。概ね問題なかったのですが、1点、どうやら、pluginの評価順番が変わった(それとも、helperメソッドの評価方法が変わった?)っぽくて、今までのサンプルのままだとローカライズできない部分がありました。
具体的には、2.0では、pluginのinit.rbで、ActionView::BaseにローカライズされたModule(ブラグインの実体)をincludeする修正が必要でした。
もうちょっといいアイデア(GetText側で吸収する案)がないか探してみたのですが見つからず。残念。
すべてのパターンで当てはまるかどうかは分かりませんが、ご参考までに。
January 28, 2008 [おもひで]
■ [Rails] ActionMailerで文字化け
ActionMailerとRuby-GetTextを使うとたまにUTF-8→ISO-2022-JPの変換に失敗したりして文字化けするとのレポートと、その回避策をいただいた。
最初は、このパッチをそのまま取り入れようと思ったのだが、きちんと考えてみることにした。
まず、いただいたパッチではinput(メッセージを作るところまでの文字コード)を$KCODEで指定している。output(実際にメールとして出力される文字コード)はISO-2022-JPだ。
Ruby-GetText + Railsでは、内部の文字コードは$KCODEというよりも、GetText.output_charsetで指定されたものが使用されることになる。実際は$KCODEとoutput_charsetを揃えないとまともに実行はできないので、まぁ、これはこれで良いとは思うのだけど、厳密にするならoutput_charsetを使った方が良いように思う。
次に・・・これはそもそも論になるのだけど、Ruby-GetTextのActionMailerサポートは、日本語しかサポートできていない。
これはやっぱりいけていない。inputは$KCODEに従うにしろoutput_charsetに従うにしろ、outputは各言語ごとに指定できた方がよいかもしれない。となると、NKFではなく、Iconvに切り替えた方が良いような気もする。
さらに言うと、NKFはJRubyではまったく使えない。Iconvも使えないけどPseudo IconvレベルのものはRuby-GetTextで用意できたのでIconvの方がちょっと有利。
しかしながら、パッチの詳細を見ていくと、NKFの細かなオプションまで使用しているので、逆に言うとここまで指定できるようなものも用意しないと文字化けを避けれないのかもしれない(とするとやはり日本語のみNKFを使えるようにするとか・・・)。
というあたりで眠くなってきたので寝ることにする。やっぱり、もう少しゆっくり考えてみよう。


