如何使用 Rails I18n 查找任何级别的翻译?
How to find translation in any level with Rails I18n?
t some_translation_key
仅在some_translation_key
为第一层时才查找,即en.some_translation_key
。我想要一个可以在任何级别找到翻译的方法,即:
en:
level1:
level2:
some_translation_key: 'The translation of some translation key'
我仍然想在不知道 level1
或 level2
的情况下使用 t some_translation_key
访问它。有办法吗?
您可以使用以点分隔的字符串。
t("level1.level2.some_translation_key")
您如何区分 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
的翻译。
参见 4.1.4 "Lazy" 查找 部分 http://guides.rubyonrails.org/i18n.html
如果我没看错你的问题;那么为什么不使用这些属性呢?即使使用 activerecord 也可能是个好主意:http://api.rubyonrails.org/classes/ActiveModel/Translation.html#method-i-human_attribute_name
t some_translation_key
仅在some_translation_key
为第一层时才查找,即en.some_translation_key
。我想要一个可以在任何级别找到翻译的方法,即:
en:
level1:
level2:
some_translation_key: 'The translation of some translation key'
我仍然想在不知道 level1
或 level2
的情况下使用 t some_translation_key
访问它。有办法吗?
您可以使用以点分隔的字符串。
t("level1.level2.some_translation_key")
您如何区分 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
的翻译。
参见 4.1.4 "Lazy" 查找 部分 http://guides.rubyonrails.org/i18n.html
如果我没看错你的问题;那么为什么不使用这些属性呢?即使使用 activerecord 也可能是个好主意:http://api.rubyonrails.org/classes/ActiveModel/Translation.html#method-i-human_attribute_name