かんたんRuby on RailsでWebアプリケーション開発 05
2007年10月07日
5日目。
4日目で作ったファイルの日本語化。
それだけ。
以下メモ。
Ruby-GetText:Rails日本語化用ライブラリ。エラーメッセージも日本語化出来る。
potファイル:プログラムから抽出した文字列IDと文字列の設定位置を登録したテキストファイル。
poファイル:potを元に各国語用に翻訳したテキストファイル。
moファイル:言語ごとのpoファイルから作成されたバイナリファイル。実行時にGetTextが参照する。
日本語化する部分の変更方法:
_(文字列):プログラム内の文字列用
<% _(文字列) %>:htmlに書かれた文字列用
作成されたpoファイルは記述する"Content-Type"の文字コードで保存する。
手順:
・GetTextインストール
・GetTextのロード&初期化設定。
・モデルの実行時に参照する文字列を_()で囲む
・モデルのテーブル上には存在しないフィールドをN_('クラス名|フィールド名')でマ ークする。←意味がよく分からない
・rhtml内の文字列を_()で囲む。
・po/moファイル作成用ビルドファイルを用意する。
・Rakeコマンドでpotファイルを作成。
・potファイルを元にpoファイルを作成。
・poファイルに日本語を埋め込む。
・Rakeコマンドでmoファイルを作成。
以下、最新ruby&railsを使う場合の修正点。
公式ページで配布されているtxtから抜粋。
■5日目
Ruby-GetTextのRailsでの利用方法について、本章で紹介している方法から、以下のように修正してください。
1. Rails環境全体でgettext/rails がrequireされるようにする。
P.172では、application.rb の先頭で require 'gettext/rails' を呼び出すようにしていますが、
config/environment.rb の最後で呼び出すように修正します。
-app\controllers\application.rb からrequire 'gettext/rails'の行を削除
-config\environment.rb の最後の行にrequire 'gettext/rails' を追加
2. requireは、必要とするRakeタスクで個別に実行する
p.176 では、require 'gettext/utils' を gettext.rakeの先頭で呼び出していますが、これを別タスクとして、gettextを
呼び出す各タスクから依存させます。
task :load_gettext do
require 'gettext/utils'
end
task :update_po => :load_gettext do
...
task :make_mo => :load_gettext do
...