Rails + Ruby-GetText は、emacs のPOモードでさらに快適

Railsアプリケーションの日本語化(国際化)で、Ruby-GetText を使ってみる。MacのCarbon Emacs + rails.elで、poファイルを開くと、POモードになるのが、かなりイイ! Spaceボタンで次の翻訳候補にフォーカスして、RETで日本語訳入力モードに。日本語を入力して C-c C-cで確定。もっと面倒なのかと思っていたけど、かなり簡単。

EmacsScreenSnapz001.gif

以下、単なるインストール・メモなので、詳しくはGetTextのページを参考にするのがよいかと思われます。

Ruby on RailsでRuby-GetText-Packageを使う - よたらぼ 保管庫

rubygems でインストール

$ gem install gettext

application.rb でgettext をinitする。

require 'gettext/rails'

class ApplicationController < ActionController::Base
  init_gettext 'myproject'
end

.rhtml ファイル内の日本語化したい部分を、_('text') で囲む。

<%=h _('Title') %>

lib/tasks/gettext.rake ファイルを作成

require 'gettext/utils'

task :update_po do
     GetText.update_pofiles('myproject', Dir.glob('app/**/*.{rb,rhtml}'), 'myproject 1.0.0')
end

task :make_mo do
     GetText.create_mofiles(true, 'po', 'locale')
end

gettextで、pot ファイル, po ファイルを作成

$ rake update_po
$ pwd
/Rails/myproject
$ mkdir po/ja
$ cd po/ja
$ msginit -i ../myproject.pot -o myproject.po

poファイルに日本語訳を記述。myproject.po を編集する。Carbon Emacs でpo ファイルを開いたら、POモードが起動した。Spaceボタンで次の翻訳候補にフォーカスして、RETで日本語訳入力モードに。日本語を入力して C-c C-cで確定。

poファイルからmoファイルを作成。

rake make_mo

これで、WEBrickなどサーバを起動してアプリケーションを確認すると、アプリケーションの日本語化がされています。

沢山Rails本が出てるな〜と思って、手に取って見てみたら、「かんたんRuby on RailsでWebアプリケーション開発」は、GetTextとか色々なプラグインの説明が多くて楽しいですね。