i18nによる日本語化
Rails2.2から様々な言語に対応できるように、国際化i18n(internationalizationの頭と後ろのiとn、中の文字数が18文字)が標準で搭載されました。
この機能によりラベル名やエラーメッセージなどの日本語化が簡単にできるようになりました。
なお、提供されたプログラムを特定の言語に対応させることを地域化L10N(localization)といい、Railsでもいままで様々な地域化の試みがなされていました。
引き続いてプロジェクトproj001を使って日本語化を説明します。
1.amatsuda-i18nのインストール
コマンド プロンプト |
|
2.i18nによる生成
config/localesフォルダにja.ymlとtranslation_ja.ymlという日本語リソースファイルを生成します。
コマンド プロンプト |
|
3.config/locales/ja.ymlの内容確認
/config/locales/ja.yml |
|
4.動作確認
WEBrickを再立ち上げして実行します。
エラーメッセージが日本語化されました。
5.メッセージ内の項目名の日本語化
メッセージは日本語化されたが、メッセージの中のテーブル名や項目名はひらがなや英字のままです。
/config/locales/translation_ja.ymlを変更することで対応します。
変更前 /config/locales/translation_ja.yml |
|
変更後 /config/locales/translation_ja.yml |
|
6.動作確認
エラーメッセージ内の項目名が日本語化されました。
7.ラベル部分の日本語化
(1) translation_ja.ymlの更新
タイトルやラベルの部分は、まだ英字のままです。
これに対応するには/config/locales/translation_ja.ymlに追加します。
/config/locales/translation_ja.yml |
|
(2) ビュープログラムの修正
次の各プログラムを修正します。
/app/viws/addresses/edit.html.erb
/app/viws/addresses/index.html.erb
/app/viws/addresses/new.html.erb
/app/viws/addresses/show.html.erb
たとえば、該当箇所を<%=t(label.Yubin)%>と記述すると"郵便"という表示になります。
/app/views/addresses/index.html.erb |
|
8.Paginateの日本語化
(1) index.html.erbの修正
indexの画面を見るとPaginateの部分だけが日本語化されていません。
これを日本語化するにはwill-paginateの指定部分でオプションを付けることで解決します。
/app/views/addresses/index.html.erb |
|