问题描述
我希望能够像这样挽救I18n::MissingTranslationData
:
I want to be able to rescue I18n::MissingTranslationData
like so:
begin
value = I18n.t('some.key.that.does.not.exist')
puts value
return value if value
rescue I18n::MissingTranslationData
puts "Kaboom!"
end
我尝试了上面的方法,但是它似乎并没有进入救援的范围.我只是在控制台上看到(由于puts
):translation missing: some.key.that.does.not.exist
.我从没见过Kaboom!
.
I tried the above, but it doesn't seem to go into the rescue block. I just see, on my console (because of puts
): translation missing: some.key.that.does.not.exist
. I never see Kaboom!
.
我如何使它工作?
推荐答案
IMO,这很奇怪,但是在i18n (0.5.0)
的当前版本中,您应该传递一个要救援的异常:
IMO, it's pretty strange but in the current version of i18n (0.5.0)
you should pass an exception that you want to rescue:
require 'i18n'
begin
value = I18n.translate('some.key.that.does.not.exist', :raise => I18n::MissingTranslationData)
puts value
return value if value
rescue I18n::MissingTranslationData
puts "Kaboom!"
end
,它将在将来的0.6版本中修复(您可以对其进行测试- https://github.com/svenfuchs/i18n )
and it will be fixed in the future 0.6 release (you can test it - https://github.com/svenfuchs/i18n)
这篇关于您如何救援I18n :: MissingTranslationData?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!