Ruby on rails 如何让Rails自动从YAML翻译键名推断英语翻译?
有没有一种方法可以让Rails自动从键名推断英语翻译 目前我必须明确地编写翻译,因为否则它只会在视图中输出Ruby on rails 如何让Rails自动从YAML翻译键名推断英语翻译?,ruby-on-rails,internationalization,rails-i18n,Ruby On Rails,Internationalization,Rails I18n,有没有一种方法可以让Rails自动从键名推断英语翻译 目前我必须明确地编写翻译,因为否则它只会在视图中输出en,designe.confirmations.new.ressend\u confirmation\u指令 我当前必须在config/locales/en.yml文件中编写的内容: en: devise: confirmations: new: resend_confirmation_instructions: "Resend confirmati
en,designe.confirmations.new.ressend\u confirmation\u指令
我当前必须在config/locales/en.yml
文件中编写的内容:
en:
devise:
confirmations:
new:
resend_confirmation_instructions: "Resend confirmation instructions."
我想要的是:
en:
devise:
confirmations:
new:
resend_confirmation_instructions:
视图应该只输出“重新发送确认指令”。这是直接从该键推断出来的。您始终可以编写自己的异常处理程序:
#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
#config/initializers/i18n.rb
模块I18n
类缺少TranslationExceptionHandler
你可以读更多。我知道没有办法做到这一点,因为这恰恰与翻译背道而驰。然而,在生产中,如果翻译丢失,Rails将显示“重新发送确认指令”,它会在生产中这样做吗?我不知道。顺便说一句,从英文翻译键获取英文文本并不完全是翻译。当你的代码库和翻译键都是英文时,这只是一种避免重复工作的方便方法。为此,你可以配置回退语言。检查此处:@dgilperez回退仅用于在不存在其他翻译的情况下回退到英语翻译。这不是为了从翻译键推断英语翻译…嘿@Magne你最终选择了什么方法?