著作一覧 |
どうも面倒くさそうに思うのは、いろいろ書いてあるけどgettextそのものが必要なんじゃないかな、とかそのあたり。MSWin32は外部のライブラリを用意するのが面倒だ。
でも、実際にやってみたら拍子抜けするほどあっさりできた(追記:つまりGNU gettextそのもののインストールは不要ということ。gemでgettextをinstallする以外にインストールする必要があるものはなかった)。すばらしい。
でも、「Ruby on RailsでRuby-GetText-Packageを使う」のページなんだけど、ちょっと引っかかった箇所がある。
Wikiなんだけど、なんとなくむとぽんさんのところは書いて良いのかどうか、そもそも外部の人間が編集できるのか、わからない(わかりにくい、が正確かな?)。それに、参照情報なだけに、もし間違ったことを書いてしまうとすごくまずい。
というわけで、ここに書いておくのだが。環境はOne-Click InstallerによるMswin32 1.8.4(ASRしか使わないわけではない)。iconvは同梱されているバージョン。
1. makepoタスクのglobの引数。
GetText.update_pofiles("blog", Dir.glob("{lib,bin}/**/*.{rb,rhtml}"), "blog 1.0.0")
となっているけど
GetText.update_pofiles("blog", Dir.glob("{app,vendor}/**/*.{rb,rhtml}"), "blog 1.0.0")
が正しいと思う(Railsのバージョンに依存しているのかも)。
マイグレーションに文字列を使っている場合は、さらに、{app,vendor}の部分を{app,vendor,db}にする必要があると思う。Rakeのスクリプトにも使っていれば、{rb,rhtml}の部分を{rb,rhtml,rake}にする必要もある。なんか、全部、当たり前のことのように今は思うが、最初は書いてある通りにやったから引っかかったのであった。
2.これは常識なのかも知れない(僕がちゃんと読んだのはRailsのページだけだし)けど、poファイルはUTF-8で書く必要がある。なんとなくネイティブな文字コードで良いのかと思ってWindows-31Jで書いたら何も起きなくて(makemoもエラーとかにはならなかったし)ちょっと困惑した(というか、トライエラーしたのだが、第2候補くらいに試したのですぐ解決した)。あと、メモ帳のBOM付きUTF-8でもちゃんと処理してくれたので、これは良いと思った。
以上。
追記:2点目について。「Ruby-GetText-Package開発手順」の「ローカライズする」の箇所にContent-Typeに指定した文字コードを使えと明記してあった。ドキュメントは全部読めということで。
ジェズイットを見習え |
ドキュメントは、私の方で直しておきます。<br><br>それから、GNU GetTextですが、rake updatepoを使う場合はそこに含まれるmsgmerge.exeを使う関係で必要になります。<br><br>もちろん、ランタイムはGNU GetTextはインストール不要です。
どうもありがとうございます。よろしくお願いいたします。<br>updatepoは、最初いちいちpoを消して試していたのでmsgmergeの必要性に気づきませんでした。確かに入れておくほうがよさそうですね。