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
これでエラーメッセージとか日本語化された。
でも、フォームのラベルとか国際化されないと思ったら↓ということらしい。
- Rails 2.3.4 と I18n - Rails 雑感 - Ruby on Rails with OIAX
- i18n その後 - うんたらかんたらRuby - Rubyist
- 2009-09-18 - akimatter
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 件のコメント:
むぅ、フォームのラベルとか国際化されない問題は結局2.3.5では載らずに2.3.6ということになったのですね・・・。
ネストの問題があるのか?2.3.6でも載るのか非常に怪しい気がします。
載ってほしいです。
scaffold で日本語までOK、が Rails 当初からの全日本人の夢(?)だったと思うので、ぜひ載ってほしいですよね。
コメントを投稿