首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails I18n,检查翻译是否存在?

Rails I18n,检查翻译是否存在?
EN

Stack Overflow用户
提问于 2012-09-10 22:07:26
回答 6查看 37.7K关注 0票数 76

在rails 3应用程序中,我想在输出翻译之前检查它是否存在,如果它不存在,则返回到一些静态文本。我可以这样做:

代码语言:javascript
复制
if I18n.t("some_translation.key").to_s.index("translation missing")

但我觉得应该有比这更好的方法。如果rails在未来将“翻译缺失”更改为“找不到翻译”,该怎么办?或者,如果由于某种奇怪的原因,文本中包含“翻译缺失”怎么办?有什么想法吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-09-10 22:11:17

根据您所描述的,这应该是可行的:

代码语言:javascript
复制
I18n.t("some_translation.key", :default => "fallback text")

有关详细信息,请参阅documentation

票数 136
EN

Stack Overflow用户

发布于 2015-11-06 08:49:33

您还可以使用

代码语言:javascript
复制
I18n.exists?(key, locale)
I18n.exists?('do_i_exist', :en)
票数 75
EN

Stack Overflow用户

发布于 2013-06-15 22:11:42

:default并不总是一个解决方案。将此用于更高级的情况:

helpers/application.rb:

代码语言:javascript
复制
def i18n_set? key
  I18n.t key, :raise => true rescue false
end

任何ERB模板:

代码语言:javascript
复制
<% if i18n_set? "home.#{name}.quote" %>
  <div class="quote">
    <blockquote><%= t "home.#{name}.quote" %></blockquote>
    <cite><%= t "home.#{name}.cite" %></cite>
  </div>
<% end %>
票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12353416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档