【发布时间】:2021-01-20 09:57:27
【问题描述】:
我想显示一个翻译,其中迭代中的当前项目是翻译键。
在我的模型中,我有:
def self.topics
[ "topic_birds", "topic_trees" ]
end
在我看来:
Book.topics.each do |topic|
...
<p><%= t(topic) %></p>
...
end
在我的 YML 文件中
topic_birds: 'Birds'
topic_trees: 'Trees'
而不是返回:
Birds
Trees
我的代码返回:
Topic Birds
Topic Trees
所以看来翻译函数在我的each 语句中不接受或正确解释变量topic。相反,它返回密钥的格式化版本(大写首字母和空格),而不是 YML 文件的翻译。
【问题讨论】:
-
什么不起作用? yml 应该(按照约定)由语言命名,例如
en.yml,并且文件应该完全嵌套在语言键中。en:,以及嵌套在该键/对象中的所有内容。 (所以YML中全限定翻译key是en.topic_birds,调用是t('topic_birds'),而I18n.locale = :en -
@wyattisimo 打败了我 :)。他准确地回答了我要做什么!
标签: ruby iteration translation