我需要根据数字复数一个文本。所以我的翻译文件有这个,
en:
people:
one: %{count} People
other: %{count} Peoples
问题是,我需要加粗数字。所以在我看来,我有这个,
raw t(.people, count: content_tag(:strong, 4))
由于我包含了content_tag,这会使'count'成为<strong> 4 </strong>
的字符串并将其传递给翻译并始终返回'Peoples'吗?
还是有更好的方法来做到这一点。
谢谢
答案 0 :(得分:1)
一种选择是使用原始i18n输出并将HTML放入i18n:
en:
people:
one: <strong>%{count}</strong> People
other: <strong>%{count}</strong> Peoples
然后在你的翻译中使用:
<%= raw t(:people, count: 4) %>
这不是理想的,但您的用例可能很简单,这是最佳解决方案。
另一种方法是使用两种不同的翻译并将它们嵌套,一种用于将其包裹在强标签中,另一种用于复制该单词,传入强HTML,类似于链接的方式: / p>
text_with_anchor: This is a link. %{href} to click it!
t(:text_with_anchor, href: link_to(t(:another_translation), some_path))