2011-12-18 8 views
6

Creé el nuevo proyecto Rails 3. Trato de usar traducciones en mis puntos de vista así:¿Cómo habilitar los errores de traducción de Rails I18n en las vistas?

= t('.translate_test') 

En mi navegador me parece "translate_test" lugar "my test translation" bruja me puse en en.yml.

Mi pregunta principal - ¿por qué no puedo ver el error como "Missing translation: en ..."?

+0

posible duplicado de [Rieles: cómo tratar la traducción local faltante como error durante la prueba] (http://stackoverflow.com/questions/8066901/rails-how-to-treat-locale-translation-missing-as-error -durante la prueba) – Besi

Respuesta

8

En Rails 3 no vuelven a mostrar este texto. Si inspecciona el elemento en la fuente html, verá el mensaje de traducción faltante.

Puede activar mecanismos de emergencia, trate de poner en su entorno o un inicializador lo siguiente:

config.i18n.fallbacks = false 
11

he creado esta inicializador a raise una excepción - se pasan argumentos para que sepa qué tecla i18n ¡Está perdido!

# only for development and test 
if Rails.env.development? || Rails.env.test? 

    # raises exception when there is a wrong/no i18n key 
    module I18n 
    class JustRaiseExceptionHandler < ExceptionHandler 
     def call(exception, locale, key, options) 
     if exception.is_a?(MissingTranslationData) 
      raise exception.to_exception 
     else 
      super 
     end 
     end 
    end 
    end 

    I18n.exception_handler = I18n::JustRaiseExceptionHandler.new 

end 

Source

+0

Muchas gracias, con este sistema es muy fácil verificar todos los _missing traduce_ ejecutando las pruebas ... si tiene una buena cobertura, por supuesto. – fguillen

3

uso el más simple y ver solución específica para mostrar los errores a la vista cuando la traducción no se encuentra mediante la adición de este estilo en su application.css.scss o alguna hoja de estilo mundial:

.translation_missing{ 
    font-size: 30px; 
    color: red; 
    font-family: Times; 

    &:before{ 
    content: "Translation Missing :: "; 
    font-size: 30px; 
    font-family: Times; 
    color: red; 
} 
} 
+0

Agradable y pragmático. Los otros enfoques anteriores no me funcionaron con Rails 4.x. Creé un 'debug.css' y lo incluí condicionalmente en mi plantilla:' = stylesheet_link_tag 'debug' a menos que Rails.env.production? ' – Besi

Cuestiones relacionadas