2011-01-19 51 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錯誤消息中的字段名稱?

我可以添加一個翻譯標籤電子郵件,如果是,應該如何使之讓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, t('.email') 

f.label :email 

,仍然保持我的翻譯。

還沒有用哈姆試過。我在我的情況下使用了erb。不知道有沒有什麼可說的。

1

以下工作爲我翻譯我的模型_form中的f.label。

在config /區域設置/ yourlanguage.yml文件:

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

在Rails 3.2,你必須改變activemodelactiverecord

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

另外,還要考慮的是,如果模型是在一個模塊內,你必須指出它:

attributes: 
     a_module/user: 

他重新它是link to the official Rails documentation

相關問題