old « 久々の残業 | メイン | 今期アニメ » new

かんたん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
...

old « 久々の残業 | メイン | 今期アニメ » new

トラックバックURL

このエントリーのトラックバックURL:
https://blog.hp-improve.com/mt/mt-tb.cgi/422

コメントする