Rails I18n中的懒惰查找是一种不好的做法吗?

时间:2012-04-17 09:50:05

标签: ruby-on-rails internationalization rails-i18n

在Rails视图中使用较短的i18n键(例如t '.submit_button')可以更容易输入,但它实际上是否合适?稍后您决定重构您的视图和部分内容时,您必须记住更新相应的本地化条目。根据他们的商业含义来命名它们并且总是指定完整的密钥名称会不会更加健壮?

2 个答案:

答案 0 :(得分:6)

好吧,我正在使用混合物。 ; - )

对于诸如“是”,“否”,“提交”,“取消”之类的内容,我倾向于使用名为“默认值”的命名空间,因此我总是像t 'defaults.cancel'一样使用它。这也可以解决你上面提到的“submit_button”问题。 对于我的具体观点,我决定使用延迟查找功能。

如果你想要特定视图的I18n键,你必须决定什么最适合你:

  • 如果你不介意在你的yaml文件中搜索I18n键和 如果更改视图,请更改它们。优点是你 在视图中为每次I18n.t调用保存一些字符。

  • 但如果您经常更改视图名称(不确定为什么要这样做) 必须这样做:))那么你可能会更好地使用你描述的方式。

正如我已经说过的,我更喜欢第一种选择,因为它对我来说更方便。

答案 1 :(得分:4)

作为旁注;

如果您需要检查Rails如何解析那些延迟查找I18n键,以及Rails正在查找它们,这可能有助于您的调试:

http://cache.preserve.io/8vupog4s/index.html (原文是http://unixgods.org/~tilo/Rails/where_is_Rails_trying_to_lookup_L10N_strings.html