Frage

Ich habe dieses Problem 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"

Ich weiß nicht, warum das Buch Modell nicht die Ausweich Massage bekommt. Ich habe Satz config.i18n.fallbacks = true. Ich bin mit Rails 3

War es hilfreich?

Lösung

Wenn ein : default Option angegeben wird, wird sein Wert zurückgegeben, wenn die Übersetzung fehlt:

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

Weitere Informationen hier

Andere Tipps

Ich habe in config / application.rb in der Regel

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

So können Sie die Reihenfolge der Ausweich verzögern.

Aber halten Aufmerksamkeit in einigen Umgebungen / *. Rb die Konfiguration überschrieben.

Haben Sie Fallbacks für Ihren Backend aktiviert? Unter der Annahme, es ist einfach (basierend auf yml in Beispiel):

setzen diese in einem Initialisierer:

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

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

In Schienen 3+, so ist dieser in der config / Umgebungen Dateien:

  # 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

Ich glaube, der beste Weg, um eine fehlende Zeichenfolge zu handhaben, ist ein Standardgebietsschema angezeigt werden, anstatt eine Fehlermeldung aus.

Fügen Sie diese Zeile in application.rb zum Englisch locale Rückfall.

config.i18n.fallbacks = [:en]

Falls Sie länderspezifische Fallbacks angeben, können Sie die folgende verwenden:

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

Auch die Notiz, die Sie auf Ihre Umgebung aktivieren und deaktivieren Fallbacks basiert. Während also auf der Entwicklung könnte es sinnvoll sein, einen Fehler angezeigt hat, können Sie stattdessen Fallbacks in Ihrem environments/production.rb mit folgendem aktivieren können:

config.i18n.fallbacks = true
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top