如果语言是英语,有没有办法阻止.translation_missing
课程出现在视图中?由于英文文本是正确的,我不需要翻译它。
现在我添加了样式来屏蔽span.translation_missing
,如果语言环境是默认范围,但是如果语言环境是:en
更新:为了清楚起见,我在.erb
个文件中进行了翻译,所以说<%= t "Menu item" %>
变为<span class="translation_missing">Menu item<span>
,这是过度的。我只需要将:en
locale
答案 0 :(得分:2)
我认为通过标准方法无法实现此目的,但您可以添加如下补丁:
module I18n::MissingTranslation::Base
def html_message_with_en_fix
(locale == :en) ? key : html_message_without_en_fix
end
alias_method_chain :html_message, :en_fix
def message_with_en_fix
(locale == :en) ? key : message_without_en_fix
end
alias_method_chain :message, :en_fix
end
或者,如果您不想使用补丁,您也可以定义自己的方法并自己捕获异常:
def my_translate(key)
begin
I18n.t(key, :raise => I18n::MissingTranslationData)
rescue I18n::MissingTranslationData
(I18n.locale == :en) ? key.to_s : I18n.t(key)
end
end
另见this answer。
(我已经更新了两个答案以返回翻译字符串而不是感谢空白/无。)