I18n in rails 3.2:对控制器内的翻译进行作用域或懒惰查找

时间:2014-10-10 12:29:18

标签: ruby-on-rails internationalization

我尝试在控制器中检索一些翻译,但范围将被忽略。 例如:

在create action中的UsersController

t(".notice")

会寻找' notice'在第一级(即en - >通知)a不在en - >用户 - >创建 - >注意。 我怎样才能激活"范围,以便我不必进入

t("users.create.notice") 

每次。

为什么默认情况下会为视图激活范围的延迟查找,而不是控制器?

使用rails 3.2

1 个答案:

答案 0 :(得分:2)

不幸的是,除非你升级到Rails 4,否则你运气不好。

Rails i18n guide section 3.2.13 on "lazy" lookups说:

  

Rails实现了在视图

中查找区域设置的便捷方式

(强调他们的;懒惰查找功能仅限于Rails 3.2中的视图)

This is the commit to Rails 4也将“懒惰”查找带入控制器。

截至撰写本文时,

The latest Rails i18n guide表示延迟查找在Rails 4中仅供查看,但由于您可以在t(".notice")操作中使用UsersController#create,因此它不再正确并取回预期值。