質問

私はこのi18nの問題

activerecord:
  notices:
    messages:
      success: 
        create: "Something was created"
    models:
      user:
        success:
            create: "Thanks for registration"

I18n.t("activerecord.notices.models.user.success.create")
# => "Thanks for registration"


I18n.t("activerecord.notices.models.book.success.create") 
# => "translation missing: de, activerecord, notices, models, book, success, create"

なぜだかよくわかりませんのモデルさんをフォールバックのマッサージを行います。きでしょうか。 config.i18n.fallbacks = true.を使用していレールの3

役に立ちましたか?

解決

をすると

:デフォルトののオプションが指定された翻訳が失われている場合、その値が返されます

I18n.t :missing, :default => 'Not here'
# => 'Not here'

詳細情報ここ

他のヒント

で設定しますconfig/願います。rb通常

    config.i18n.fallbacks =[:de, :fr, :en]

できますので減速のフォールバック.

さま、ありがとうございました注目の一部環境/*.rbの設定が上書きされます。

あなたのバックエンドのためのフォールバックを有効にしていますか?それは(例ではYMLに基づいて)単純だと仮定します:

初期化子でこれを入れます:

require "i18n/backend/fallbacks" 
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)

https://github.com/svenfuchs/i18n/wiki/Fallbacksする

には、これは設定で設定されている、3+レール/環境ファイルます:

  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
  # the I18n.default_locale when a translation can not be found)
  config.i18n.fallbacks = true
私が不足している文字列を処理するための最良の方法は、エラーメッセージではなく、デフォルトのロケールを表示することであると考えています。

英語ロケールにフォールバックするapplication.rbにこの行を追加します。

config.i18n.fallbacks = [:en]

あなたはロケール固有のフォールバックを指定したい場合は、次のものを使用することができます

config.i18n.fallbacks = {:de => [:de,:en], :en => [:en,:de]}

また、ご使用の環境に基づいてフォールバックを有効にして無効にすることができます。 だから、開発の一方で、それはあなたの代わりに、次のあなたのenvironments/production.rbでフォールバックを有効にすることができ、エラーが表示されていても意味があります:

config.i18n.fallbacks = true
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top