2011-01-19 91 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

相关问题