在rails 3应用程序中,我想在输出翻译之前检查它是否存在,如果它不存在,则返回到一些静态文本。我可以这样做:
if I18n.t("some_translation.key").to_s.index("translation missing")
但我觉得应该有比这更好的方法。如果rails在未来将“翻译缺失”更改为“找不到翻译”,该怎么办?或者,如果由于某种奇怪的原因,文本中包含“翻译缺失”怎么办?有什么想法吗?
发布于 2012-09-10 22:11:17
发布于 2015-11-06 08:49:33
您还可以使用
I18n.exists?(key, locale)
I18n.exists?('do_i_exist', :en)
发布于 2013-06-15 22:11:42
:default
并不总是一个解决方案。将此用于更高级的情况:
helpers/application.rb:
def i18n_set? key
I18n.t key, :raise => true rescue false
end
任何ERB模板:
<% if i18n_set? "home.#{name}.quote" %>
<div class="quote">
<blockquote><%= t "home.#{name}.quote" %></blockquote>
<cite><%= t "home.#{name}.cite" %></cite>
</div>
<% end %>
https://stackoverflow.com/questions/12353416
复制相似问题