7

I18n de reserva se carga:temporal de repliegue i18n desactivar en Rails

I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks) 

Cualquier idea ahora a deshabilitar temporalmente ella? Tengo formularios, en los que deseo editar varias versiones de idiomas, y con el método alternativo, obtengo campos con el idioma predeterminado, si la traducción dada aún no está presente.

Respuesta

0

¿Estás utilizando globalizar?

Estoy usando I18n para mis cadenas de sistema y globalize3 para mis traducciones de atributos. Quiero que las cadenas del sistema retrocedan, pero no los atributos. Me retrocesos simplemente para discapacitados globalizado sólo con un pequeño parche mono:

config/inicializadores/i18n.rb:

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

# monkey patch globalize3 to not use fallbacks 
module Globalize 
    def self.fallbacks? 
    false 
    end 
end 
4

se puede pasar la opción fallback: true-I18n.t, lo que evitará I18n mirando hacia arriba desde otros lugares (see implementation here). Pero probablemente no sea parte de la API pública ...

2

Puede pasar :fallback => 'false' en sus llamadas I18n.translate, pero esto no es parte de la API pública.

Otra forma es posible que desee probar es el siguiente:

I18n.available_locales.each do 
    |al| I18n.fallbacks.merge!({al => [al]}) 
end 

Esto, básicamente, hacer que la reserva para cada lugar disponible para incluir sólo a sí mismo. Entonces, si la traducción no se encuentra en sí misma, entonces no hay un retroceso al que recurrir.

Sin embargo, entonces necesita encontrar una manera de restaurar a la reserva predeterminada.

Usted puede hacer eso por ejemplo, con una declaración como:

I18n.available_locales.each do 
    |al| I18n.fallbacks.merge!({al => [al, I18n.default_locale]}) 
end 
1

si alguien todavía se pregunta cómo hacerlo, puede cambiar el I18n.fallbacks sobre la marcha:

def foo 
    I18n.fallbacks[:at] = [:at] 
    # do stuff with I18n#t 
ensure 
    I18n.fallbacks[:at] = [:at, :de] # or whatever is was before 
end 

No está seguro qué tan seguro es eso sin embargo.

Cuestiones relacionadas