Domanda

ho questo 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"

Non so il motivo per cui il modello libro non ottiene il massaggio fallback. Ho impostato config.i18n.fallbacks = true. Sto usando Rails 3

È stato utile?

Soluzione

Quando un : di default è dato, il suo valore verrà restituito se la traduzione non è presente:

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

Più informazioni qui

Altri suggerimenti

I set in config / application.rb solito

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

Così si può rallentare l'ordine del fallback.

Ma mantenere l'attenzione in alcuni ambienti / *. Rb la configurazione viene sovrascritto.

Hai attivato fallback per il vostro back-end? Supponendo E 'semplice (sulla base di yml nell'esempio):

mettere questo in un inizializzatore:

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

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

in Rails 3+, questo è impostato nella cartella config / file ambienti:

  # 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

Credo che il modo migliore per gestire una stringa mancante, è quello di visualizzare una località di default, piuttosto che un messaggio di errore.

Aggiungi questa linea in application.rb di ripiego per il locale inglese.

config.i18n.fallbacks = [:en]

Nel caso in cui si desidera specificare fallback locale-specifici, è possibile utilizzare il seguente:

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

Si noti inoltre che è possibile abilitare e disabilitare le ricadute in base al proprio ambiente. Così, mentre sullo sviluppo potrebbe avere un senso di avere un errore visualizzato, è possibile invece abilitare fallback nel environments/production.rb con la seguente:

config.i18n.fallbacks = true
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top