t some_translation_key
仅在some_translation_key
位于第一级时才会找到,即en.some_translation_key
。我想要一种能在任何级别找到翻译的方法,即:
en:
level1:
level2:
some_translation_key: 'The translation of some translation key'
我仍然希望在不知道t some_translation_key
或level1
的情况下使用level2
访问它。有办法吗?
答案 0 :(得分:1)
您可以使用以点分隔的字符串。
t("level1.level2.some_translation_key")
答案 1 :(得分:1)
您如何区分level1.level2.some_key
和level3.level4.some_key
的翻译?
为了获得简洁的翻译密钥,您可以这样做:t '.some_key'
,这将在#{controller}.#{view}.some_key
中查找密钥。
例如,如果您在app/views/users/new.html.erb
中有此代码:
<h1><%= t '.title' %></h1>
Rails会查找包含密钥users.new.title
的翻译。
请参阅http://guides.rubyonrails.org/i18n.html的 4.1.4“懒惰”查找部分
答案 2 :(得分:1)
如果我理解你的问题;那么为什么不使用属性来处理你的工作呢?即使使用activerecord也可能是一个好主意:http://api.rubyonrails.org/classes/ActiveModel/Translation.html#method-i-human_attribute_name