2009/12/10

Rails I18n

参考

i18n 用に、ブランチを作って作業する。

git checkout master
git branch i18n
git checkout i18n

amatsuda's i18n_generators at master - GitHub をインストール。

script/plugin install git://github.com/amatsuda/i18n_generators.git

次で config/environment.rb に config/locales/ja.yml と config/locales/translation_ja.yml が作成される。モデルも適当に翻訳されてる。

script/generate i18n ja

これでエラーメッセージとか日本語化された。

でも、フォームのラベルとか国際化されないと思ったら↓ということらしい。

2009-09-18 - akimatter にあるとおり app/controllers/application_controller.rb にモンキーパッチを追加したらラベルも国際化された。

ネストしたフォームのラベルも OK!

<% @post.tags.build if @post.tags.empty? %>
<% form_for(@post) do |post_form| %>
<%= post_form.error_messages %>

<p>
<%= post_form.label :name %><br />
<%= post_form.text_field :name %>
</p>
<p>
<%= post_form.label :title %><br />
<%= post_form.text_field :title %>
</p>
<p>
<%= post_form.label :content %><br />
<%= post_form.text_area :content %>
</p>
<h2>タグ</h2>
<% post_form.fields_for :tags do |tag_form| %>
<p>
<%= tag_form.label :name %>
<%= tag_form.text_field :name %>
</p>
<% unless tag_form.object.nil? || tag_form.object.new_record? %>
<p>
<%= tag_form.label :_delete %>
<%= tag_form.check_box :_delete %>
</p>
<% end %>
<% end %>
<p>
<%= post_form.submit '保存' %>
</p>
<% end %>

2 件のコメント:

milkcocoa さんのコメント...

むぅ、フォームのラベルとか国際化されない問題は結局2.3.5では載らずに2.3.6ということになったのですね・・・。
ネストの問題があるのか?2.3.6でも載るのか非常に怪しい気がします。
載ってほしいです。

Yoshinori Tahara さんのコメント...

scaffold で日本語までOK、が Rails 当初からの全日本人の夢(?)だったと思うので、ぜひ載ってほしいですよね。