我使用Rails的默认I18n模块来转换视图中的字符串。
<%= t("registration.heading") %>
现在,当我在注册视图中时,我所有的字符串都以registration
开头。我总是要写
<%= t("registration.heading.notice") %>
// or
<%= t(:heading, :scope => :registration) %>
最好为该文件定义一个默认作用域(甚至可能是在控制器中),这样调用t
就会自动添加定义的作用域
// controller
set_i18n_default_scope :registration
// view
<%= t(:heading) %>
// --> looks in "registration.heading"
这个是可能的吗?
发布于 2015-03-25 03:38:16
如果您想打印出I18n gem的惰性模式正在查找的密钥,可以将其添加到initializers
文件夹中的i18n.rb
文件中:
module I18n
module Backend
class Simple
module Implementation
alias_method :lookup_orig, :lookup
# Give ability to check I18n looked up keys in lazy mode by setting env var I18N_DEBUG to true
#
def lookup(locale, key, scope = [], options = {})
puts "I18N keys: #{I18n.normalize_keys(locale, key, scope, options[:separator])}" if ENV['I18N_DEBUG']
lookup_orig(locale, key, scope, options)
end
end
end
end
end
(要点:https://gist.github.com/capripot/6e6cf778ad2db0443280)
然后像这样启动你的服务器:
I18N_DEBUG=true bundle exec rails server
https://stackoverflow.com/questions/6137960
复制相似问题