GetTextによる日本語化の手順
通常の日本語化(プラグインを除く)
rakeファイル
- lib/tasks/gettext.rake
- 以下のrakeファイルを追加する。
desc "Update pot/po files." task :updatepo do require 'gettext/utils' GetText.update_pofiles( "softwarebook", #テキストドメイン名(init_gettextで使用した名前) Dir.glob("{app,config,components,lib}/**/*.{rb,rhtml}"), #ターゲットとなるファイル "softwarebook 1.0.0") #アプリケーションのバージョン end desc "Create mo-files" task :makemo do require 'gettext/utils' GetText.create_mofiles(true, "po", "locale") end
初めての翻訳
- 翻訳対象を_()dで囲む。
- RadRailsの「Rake タスク」タブで、updatepoを選択して、実行ボタン。
- po/softwarebook.potファイルが作成される。
- poフォルダの中にjaフォルダを作成する。
- ターミナルで以下のコマンドを実行する。
cd ~/railsapp/softwarebook/po msginit -i softwarebook.pot -o ja/softwarebook.po
-
- po/ja/softwarebook.poファイルが作成される。
- softwarebook.poファイルを翻訳する。
- RadRailsの「Rake タスク」タブで、makemoを選択して、実行ボタン。
LoginEngine、UserEngineを日本語化する場合
rakeファイル
- vendor/plugins/user_engine/Rakefile
- 以下のrakeファイルを追加する。(UserEngineの場合)
desc "Create mo-files for L10n" task :makemo do require 'gettext/utils' GetText.create_mofiles(true, "po", "locale") end $: << "../../../" desc "Update pot/po files to match new version." task :updatepo do require 'gettext/utils' GetText::ActiveRecordParser.init(:db_yml => "../../../config/database.yml") GetText.update_pofiles("user_engine", Dir.glob("{app,lib}/**/*.{rb,rhtml}"), "user_engine 1.0.0") end
vendor/plugins/user_engine/app/controllers/*_controller.rbへの追記
下記のように、init_gettext "user_engine"を追記する。(user、role、permissionのコントローラーすべてに追記する。)
class UserController < ApplicationController init_gettext "user_engine" ...(以下省略)...
初めての翻訳
- 翻訳対象を_()で囲む。
- ターミナルで以下のコマンドを実行する。
cd ~/railsapp/softwarebook/vendor/plugins/user_engine updatepo
-
- vendor/plugins/user_engine/po/user_engine.potファイルが作成される。
- poフォルダの中にjaフォルダを作成する。
- ターミナルで以下のコマンドを実行する。
cd ~/railsapp/softwarebook/vendor/plugins/user_engine/po msginit -i user_engine.pot -o ja/user_engine.po
-
- vendor/plugins/user_engine/po/ja/user_engine.poファイルが作成される。
- user_engine.poファイルを翻訳する。
- ターミナルで以下のコマンドを実行して完了。
cd ~/railsapp/softwarebook/vendor/plugins/user_engine makemo
以降、翻訳ファイルを更新する場合は、以下の手順を繰り返し。
- 翻訳対象を_()で囲む。
- ターミナルで以下のコマンドを実行する。
cd ~/railsapp/softwarebook/vendor/plugins/user_engine updatepo
-
- user_engine.potファイルとuser_engine.poファイルが更新される。
- user_engine.poファイルを翻訳する。
- ターミナルで以下のコマンドを実行して完了。
cd ~/railsapp/softwarebook/vendor/plugins/user_engine makemo