ActionViewドキュメント によると。見積もり:
現在のI18nロケールで(views.labels。<modelname>。<attribute>を介して)翻訳が見つからない場合、または明示的に指定しない限り、ラベルのテキストはデフォルトで属性名になります。
「ユーザー」モデルと登録フォームがあります。関連する部分の抜粋は次のとおりです。
<% form_for(@user) do |f| %>
...
<p>
<%= f.label :username %>
<%= f.text_field :username, :class => 'full_width' %>
</p>
...
<% end %>
ドットは重要でないコードを隠します。
ドキュメントを理解しているので、ロケールファイル(この場合は:dk)で翻訳を提供すると、dk.ymlは次のようになります。
dk:
views:
labels:
user:
username:
"blahblah"
Railsはラベルテキストを翻訳し、「Username」の代わりに「blahblah」を挿入する必要があります。
これは起こっていないので、私は何かを逃したに違いありません。助けていただければ幸いです。
ここで別の解決策を見つけたと思います。
私のアプリはバージョン2.3.5でした。これを2.3.8に変更し、<%= f.label :username %>
は次の翻訳を使用するようになりました。
dk:
activerecord:
attributes:
user:
username:
私はこのチケットにヒントを見つけました:
https://Rails.lighthouseapp.com/projects/8994/tickets/745-form-label-should-use-i18n
Rails 3.1では、少し変更されています。
<% form_for @post do |f| %>
<%= f.label :title %>
<%= f.text_field :title %>
<%= f.submit %>
<% end %>
en:
helpers:
label:
post:
title: 'Customized title'