2011-10-07 7 views
25

エラーのあるフォームを送信すると、エラーメッセージが返されます。これらのエラーメッセージをi18nでどのように翻訳できますか?私はすでに私の見解で他のすべてのテキストの翻訳を行っているので、18nがRailsでどのように動作するかを知っています。私は今これを得ます:アクティブレコードモデルの検証を翻訳する方法

2 errors prohibited this user from being saved: 

Email translation missing: nl.activerecord.errors.models.user.attributes.email.blank 
Email translation missing: nl.activerecord.errors.models.user.attributes.email.blank 

私はタイトルとエラーの両方を翻訳したいと思います。

答えて

32

タイトルの翻訳が可能です:

nl: 
    activerecord: 
    errors: 
     template: 
     header: 
      one: "1 error prohibited this %{model} from being saved" 
      other: "%{count} errors prohibited this %{model} from being saved" 
     body: "There were problems with the following fields:" 

エラーメッセージを翻訳するには、 SE翻訳の次の順序:

activerecord.errors.models.user.attributes.name.blank 
activerecord.errors.models.user.blank 
activerecord.errors.messages.blank 
errors.attributes.name.blank 
errors.messages.blank 

だからあなたが追加することができます。

nl: 
    activerecord: 
    errors: 
     models: 
     user: 
      attributes: 
      email: 
       blank: "foo blank in nl bar baz" 

あなたにいくつかのより多くの洞察力を与える可能性がある、Rails Internationalization (I18n) API Guideに記載されます。

+0

正解、私は本当に気づかなかった。私は明確にするために管理部分を削除します。ありがとう! – tbuehlmann

10

rails I18n guideはこれをかなりうまくカバーしています。あなたは、属性変換するためにconfig/locales/nl.ymlに次のように置くことができ

:エラーメッセージの

nl: 
    activerecord: 
    models: 
     user: "User" 
    attributes: 
     email: "Email" 

を、ActiveRecordのは、次の名前空間でそれらを検索します:

activerecord.errors.models.[model_name].attributes.[attribute_name] 
activerecord.errors.models.[model_name] 
activerecord.errors.messages 
errors.attributes.[attribute_name] 
errors.messages 

modelattributevalueを補間され、翻訳された形で利用できます。例:

nl: 
    errors: 
    messages: 
     blank: "Please fill the %{model}'s %{attribute}" 
20

find hereできるオランダ語の翻訳ファイルを使用してください。 ActiveRecord検証メッセージのほとんど(すべてではないにしても)の翻訳が含まれています。

プロジェクト内のファイルをconfig/locales/にコピーします。

代替方法

あなたが更新された翻訳の恩恵を受けるしたい場合は、あなたのGemfileに次の代わりに手で翻訳ファイルをコピーする追加:

gem 'rails-i18n' 
+1

通常、新しいレールアプリを作成するときに最初に行うことですが、自動的に行う方法があるかどうかは分かりますか? –

+0

いいえ、本当に! ) – rdvdijk

+0

このプラグインはかなりいいです:https://github.com/zargony/rails-i18n-updater、私はそれをテストしませんでした。 –

関連する問題