wie Schienen i18n Ausweich Funktionen nutzen
-
26-09-2019 - |
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
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)
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