2011-01-19 3 views
1
# in the login form in new.html.haml 
= f.label :email, t('.email') 

# in fi.yml 
fi: 
    activemodel: 
    errors: 
     models: 
     user: 
      attributes: 
      email: 
       taken: "on jo käytössä." # means "is in use" 

# The actual error message generated 
=>"Email on jo käytössä." 

だから、ActiveModelのエラーメッセージでフィールド名をどのようにローカライズしますか?

私はラベルのメールの翻訳を追加し、YESの場合、どこに必要がありますすることができ...エラーメッセージの残りの部分の前にフィールド名を追加します..しかし、フィールド名が翻訳されていませんActiveModelがそれを検出するように移動しますか? そうでない場合、解決策は何ですか?

答えて

2

はどうやら、そう

fi: 
    activemodel: 
    attributes: 
     user: 
     email: "Sähköposti" 
    errors: 
     models: 
     user: 
      attributes: 
      email: 
       taken: "on jo käytössä." 
4

ように私はあなたの例では、私のために働くが、右のトラックに私を送っていなかった同様の問題

fi: 
    activemodel: 
    attributes: 
     user: 
     email: "Sähköposti" 

を持っていました。 activemodel:をactiverecord:に変更しましたが、私の場合はうまくいきました。

また、私は

f.label :email 

f.label :email, t('.email') 

を変更し、まだ私の翻訳を保つことができる実現。

ハムで試したことがありません。私は私の場合にエルブを使用しました。それに何か言いたいことがあるかどうかはわかりません。

1

私のモデルの_form内のf.labelを翻訳するには、以下のように動作します。

のconfig /ロケール/ yourlanguage.ymlファイルでは、次の場合を考慮していることを取る、また

fi: 
    activerecord: 
    attributes: 
     user: 
     email: "Sähköposti" 
    errors: 
     models: 
     user: 
      attributes: 
      email: 
       taken: "on jo käytössä." 

:Railsの3.2に

fr: 
    helpers: 
    label: 
     mymodel: 
     attribute1: 'translation1' 
     attribute2: 'translation2' 
3

、あなたがactiverecordためactivemodelキーを変更する必要がありますモデルはモジュール内にあります。

attributes: 
     a_module/user: 

Heそれはlink to the official Rails documentationです。

関連する問題