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 找到它?如果不是,解决方案是什么?

4

4 回答 4

4

我有一个类似的问题

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

你的例子对我不起作用,但让我走上了正确的道路。我更改了 activemodel: for activerecord: 这在我的情况下有效。

我也意识到我可以改变

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

f.label :email

并且仍然保留我的翻译。

没有用haml试过。我在我的情况下使用了erb。不知道有没有什么好说的。

于 2011-06-13T13:09:38.337 回答
2

在 Rails 3.2 中,您必须更改activemodel密钥activerecord

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

此外,请考虑如果模型位于模块内部,则必须指出它:

    attributes:
      a_module/user:

这是官方 Rails 文档的链接

于 2013-06-03T07:04:06.467 回答
2

显然,像这样

fi:
  activemodel:
    attributes:
      user:
        email: "Sähköposti"
    errors:
      models:
        user:
          attributes:
            email:
              taken: "on jo käytössä."
于 2011-01-19T15:09:19.383 回答
1

以下内容适用于我以我的模型的 _form 翻译 f.label。

在 config/locales/yourlanguage.yml 文件中:

fr:
  helpers:
    label:
      mymodel:
        attribute1: 'translation1'
        attribute2: 'translation2'
于 2011-11-30T16:08:41.080 回答