2017-08-19 9 views
0

Ruby on Railsアプリケーションがあります。私は私のアプリケーションでスペイン語と英語のサポートを持っています。しかし、スペイン語モードの場合には、翻訳が欠落しているという例外があります。Ruby on Rails i18n activerecordのカスタムメッセージ

class Company < ApplicationRecord 
    validates :name, length: { in: 5..15, message: :bad_name } 
end 

en.yml

en: 
    activerecord: 
    errors: 
     models: 
     company: 
      attributes: 
      name: 
       bad_name: 'message in english' 

sp.yml

​​

念のため、私は英語でアプリケーションを開くエラー:

は、私は以下のモデルがあります。私は "英語のメッセージ"メッセージを受け取り、それは大丈夫です。

一方、スペイン語で開いてテストすると、次のエラーが表示されます。私は私が欠けているものを見ることができない

ActiveRecord::RecordInvalid: 
    translation missing: sp.activerecord.errors.messages.record_invalid 

任意の提案、

感謝。

+0

:正しい言語ファイルがes.ymlという名前とのように見えるべきか? – bitsapien

答えて

0

他にもこのファイルがありますか? "espanol"のiso-codeであるため、sp.ymlの名前をes.ymlに変更してください。

また、spansihファイルにactiverecord.errors.messages.record_invalidのメッセージを含めるようにしてください。これは表示されますか?

0

実際にあなたのロケールでスペイン語を使用するには、I18n.locale = :esを設定する必要があります。私はあなたのロケールを混ぜ合わせたと思います。あなたはロケールを設定して、会社を作成しているコードのスニペットを共有できる

es: 
    activerecord: 
    errors: 
     models: 
     company: 
      attributes: 
      name: 
       bad_name: 'message in spanish' 
関連する問題