2015-02-11 1 views
1

Есть ли способ включить Rails для автоматического перевода английских переводов с имен ключей?Как сделать Rails автоматическим перевод английских переводов с YAML?

В настоящее время я должен явно написать перевод, потому что в противном случае он просто вывел en, devise.confirmations.new.resend_confirmation_instructions в виде.

То, что я в настоящее время приходится писать в config/locales/en.yml файле:

en: 
    devise: 
    confirmations: 
     new: 
     resend_confirmation_instructions: "Resend confirmation instructions." 

То, что я хотел бы иметь:

en: 
    devise: 
    confirmations: 
     new: 
     resend_confirmation_instructions: 

И вид должен просто вывести «инструкция подтверждение Resend.» который выводится непосредственно из этого ключа.

+1

Невозможно сделать это (что я знаю), потому что это точно отражает точку переводов. В производстве, однако, Rails будет отображать «Resend Confirmation Instructions», если перевод отсутствует –

+0

Ах, будет ли это делать на производстве? Я этого не знал. Btw, получение английского текста с английского языка перевода не является переводом. Это просто удобный способ избежать дублирования работы, когда ваши кодовые базы и ключи перевода на английском языке в любом случае. – Magne

+0

Для этого вы можете настроить резервные языки. Проверьте здесь: http://stackoverflow.com/a/7886246/488195 – dgilperez

ответ

2

Вы всегда можете написать свой собственный обработчик исключений:

#config/initializers/i18n.rb 

module I18n 
    class MissingTranslationExceptionHandler < ExceptionHandler 
    def call(exception, locale, key, options) 
     if exception.is_a?(MissingTranslation) 
     key.split('.').last.try(:humanize) 
     else 
     super 
     end 
    end 
    end 
end 

I18n.exception_handler = I18n::MissingTranslationExceptionHandler.new 

Вы можете прочитать больше on the guides.

 Смежные вопросы

  • Нет связанных вопросов^_^