2010-11-02 6 views

Respuesta

-8

no, no es posible. Si usa I18, necesita tener un archivo que corresponda al idioma, de lo contrario I18n se quejará.

Por supuesto, puede establecer el idioma predeterminado en su archivo environment.rb. Debe estar cerca de la parte inferior y puede configurarlo para el idioma que desee, pero en su carpeta locales/ necesitará la correspondiente traducción yml.

1

La respuesta de David es la solución correcta a la pregunta, otra forma (más detallada) de hacerlo es volver a scue y devolver la clave:

def translate_nicely(key) 
    begin 
    I18n.translate!(key) 
    rescue 
    key 
    end 
end 
+1

Utilizando la lógica excepción de flujo condicional es generalmente mala práctica. Del libro de refactorización: http://www.refactoring.com/catalog/replaceExceptionWithTest.html –

+0

Estoy de acuerdo en que, en general, es una mala práctica, también he dicho que la solución de David es la forma correcta de recurrir a un valor predeterminado. Por supuesto, también hay casos (pragmáticos) en los que no desea que la aplicación exhiba un error y use un valor predeterminado sensato para proporcionar una mejor experiencia de usuario. Yo diría que es justo desviarse de las directrices y manejar los errores muy bien cuando este es el caso. – Steventux

7

En los rieles 4 puede cambiar el manejador de excepciones.

Agregue lo siguiente al config/initializers/i18n.rb:

module I18n 
    class MissingTranslationExceptionHandler < ExceptionHandler 
    def call(exception, locale, key, options) 
     if exception.is_a?(MissingTranslation) 
     key 
     else 
     super 
     end 
    end 
    end 
end 

I18n.exception_handler = I18n::MissingTranslationExceptionHandler.new 

ahora en vistas que sólo puede hacer:

Guía
<p><%= t "Not translated!" %></p> 

sobre el tema: http://guides.rubyonrails.org/i18n.html#using-different-exception-handlers

+0

Puede que solo quiera esto para un entorno específico. Agregar esto como un inicializador limita las posibilidades. Pero gracias por el enlace. –

Cuestiones relacionadas