2009-09-06 6 views
5

http://guides.rubyonrails.org/i18n.html に指定された命令を使用して、モデルのフィールドを翻訳しましたが、ラベルは翻訳されません。私は間違っている。 ActiveRecordエラーメッセージ:フィールドの翻訳

私はフィールド nameUserモデルを持っていると私はそれがブラジルのポルトガル語(pt_BR)に変換したいのですが、私は私のpt_br.ymlを得た:私は、ページに着い

pt_br: 
    errors: "Erro!" 
    activerecord: 
     models: 
      user: "Usuário" 
     attributes: 
      name: "Nome" 
      address: "Endereço" 
     errors: 
      template: 
       body: "Por favor, corrija os campos assinalados" 
       header: "Dados inválidos" 
      messages: 
       blank: "é obrigatório" 
       taken: "já existe" 
       too_short: "incompleto" 

フォームで:

<% form_for(@usuario) do |f| %> 
<%= f.error_messages %> 
<%= f.label :name %> 
<%= f.text_field :name %> 
<% end %> 

私は、私はそれがために好きなフィールドは、「名前」としてではなく「ノーム」と名付けてい土台。 また、私は何が不足している私のenvironment.rbに

config.i18n.default_locale = :pt_br 

がありますか?

答えて

5

あなたはすなわち、userの下であなたの属性を名前空間に必要:

pt_br: 
    activerecord: 
    attributes: 
     user: 
     name: "Nome" 
     address: "Endereço" 

ます。また、自動的にラベルを翻訳するためにi18n_label pluginをインストールすることができます。

+0

優秀!それはうまくいきましたが、あなたのリンクに何か問題があります(おそらくアンダースコア) –

+0

うまくいきました。リンクは今すぐ修正する必要があります。 – eremite

0

<%= f.label :name, t('activerecord.attributes.name') %>を試すことができます。

+0

それはフィールドのために動作しますが、(私は空白の必須フィールドを離れるときに、たとえば、)私はまだエラーフレームに未翻訳のテキストを取得 –

0

human_attribute_name? Rails 2.1.0以来存在しています。

私はそれが他のどのソリューションその後、より良いことだと思う:

<%= f.label :name, User.human_attribute_name(:name) %> 
関連する問題