Rails i18n 在显示之前检查项目是否存在
Rails i18n check if an item exists before display
我有一个基本循环来显示 i18n 列表中的项目:
<% t('.items').each do |item| %>
<p><%=item[:description]%></p>
<p><%=item[:description_html]%></p>
<%end%>
我的 .yml 文件组织如下:
fr:
pages:
index:
items:
- title: The title
description: The description
description_html: <p> The description with HTML tags</p>
有时,项目 description_html
在我的 .yml i18n 文件中没有任何值,所以我想先在我的代码中检查 description_html
是否有值,然后再在我的文件中显示它HTML。有什么建议吗?
谢谢!
如果您只是想测试翻译是否可用,您可以使用 I18n.exists?
例如:
<% if I18n.exists?('pages.index.items.description_html') %>
<%= I18n.t('pages.index.items.description_html') %>
<% end %>
如果您只想在没有翻译时显示一些默认输出,您可以按照 this answer 添加默认值:
<%= I18n.t('pages.index.items.description_html', default: 'No description') %>
我有一个基本循环来显示 i18n 列表中的项目:
<% t('.items').each do |item| %>
<p><%=item[:description]%></p>
<p><%=item[:description_html]%></p>
<%end%>
我的 .yml 文件组织如下:
fr:
pages:
index:
items:
- title: The title
description: The description
description_html: <p> The description with HTML tags</p>
有时,项目 description_html
在我的 .yml i18n 文件中没有任何值,所以我想先在我的代码中检查 description_html
是否有值,然后再在我的文件中显示它HTML。有什么建议吗?
谢谢!
如果您只是想测试翻译是否可用,您可以使用 I18n.exists?
例如:
<% if I18n.exists?('pages.index.items.description_html') %>
<%= I18n.t('pages.index.items.description_html') %>
<% end %>
如果您只想在没有翻译时显示一些默认输出,您可以按照 this answer 添加默认值:
<%= I18n.t('pages.index.items.description_html', default: 'No description') %>