cómo utilizar los carriles i18n características de repliegue
-
26-09-2019 - |
Pregunta
Tengo este problema 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"
No sé por qué el modelo del libro no recibe el masaje de reserva. Tengo conjunto config.i18n.fallbacks = true
. Estoy usando Rails 3
Solución
Cuando un por defecto se da, se devolverá su valor si la traducción es que falta:
I18n.t :missing, :default => 'Not here'
# => 'Not here'
Más información aquí
Otros consejos
I situado en config / application.rb generalmente
config.i18n.fallbacks =[:de, :fr, :en]
Así que puede desacelerar el orden del repliegue.
Sin embargo, mantener la atención en algunos entornos / *. Rb la configuración se sobrescribe.
¿Ha habilitado retrocesos para su back-end? Asumiendo que es simple (basado en yml en el ejemplo):
poner esto en un inicializador:
require "i18n/backend/fallbacks"
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
En los carriles 3+, se establece en el config / archivos entornos:
# 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
Creo que la mejor manera de manejar una cadena que falta, es para mostrar una configuración regional predeterminada, en lugar de un mensaje de error.
Añadir esta línea en application.rb de repliegue a la configuración regional Inglés.
config.i18n.fallbacks = [:en]
En caso de que desee para especificar la configuración regional retrocesos específicos, puede utilizar lo siguiente:
config.i18n.fallbacks = {:de => [:de,:en], :en => [:en,:de]}
Además, cabe destacar que se puede activar y desactivar los mecanismos de emergencia en base a su medio ambiente.
Así, mientras que en el desarrollo que podría tener sentido para tener visualiza un error, en su lugar puede permitir retrocesos en su environments/production.rb
con lo siguiente:
config.i18n.fallbacks = true