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

どうやら、そのように

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 に答える
2

activemodelRails 3.2では、次のキーを変更する必要があります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 に答える
1

以下は、モデルの_formのf.labelを変換するために機能します。

config / locales / yourlanguage.ymlファイル:

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