Mar*_*kus 18 ruby-on-rails internationalization ruby-on-rails-3
我正在使用Rails的默认I18n模块在视图中翻译我的字符串.
<%= t("registration.heading") %>
Run Code Online (Sandbox Code Playgroud)
现在,当我在注册视图中时,我的所有字符串都以registration.我总是要写
<%= t("registration.heading.notice") %>
// or
<%= t(:heading, :scope => :registration) %>
Run Code Online (Sandbox Code Playgroud)
定义该文件的默认范围(甚至可能在控制器中)会很好,因此调用会t自动添加已定义的范围
// controller
set_i18n_default_scope :registration
// view
<%= t(:heading) %>
// --> looks in "registration.heading"
Run Code Online (Sandbox Code Playgroud)
这可能吗?
Ars*_*en7 19
如果您组织翻译,请添加视图名称,如下所示:
en:
registration:
index:
heading: "Registration heading"
Run Code Online (Sandbox Code Playgroud)
那你可以用这个:
<%= t(".heading") %>
Run Code Online (Sandbox Code Playgroud)
请注意,第一个字符是一个点.
您可以在Rails Internationalization(I18n)API Guide中阅读它
如果您有许多视图共享的文本,并且您不希望在每个视图的每个部分中复制相同的翻译,则可以使用YAML参考.在维基百科上很好地描述了它们:http://en.wikipedia.org/wiki/YAML#Repeated_nodes
有可能的.检查Rails i18n API的 4.1.4节
4.1.4"懒惰"查找
Rails 2.3实现了在视图中查找区域设置的便捷方式.当你有以下字典时:
es: books:
index:
title: "Título"
Run Code Online (Sandbox Code Playgroud)
你可以在里面查看books.index.title值
app/views/books/index.html.erb这样的模板(注意点):
<%= t '.title' %>
Run Code Online (Sandbox Code Playgroud)
关于懒惰查找:
这是这类问题的一般解决方案
常见问题:Rails在哪里试图查找L10N/I18N字符串? - 例如,在进行懒惰查找时
猜测并不容易,因为视图,控制器,模型,标签,帮助器或验证等等都不同......但......
很容易直接找到,使用这个:
http://www.unixgods.org/Rails/where_is_Rails_trying_to_lookup_L10N_strings.html
这有助于弄清楚Rails认为当前范围是什么(例如,当使用".heading"时)
3个简单步骤:
(4.然后将I18N字符串添加到密钥标识的位置)
奇迹般有效 :-)
| 归档时间: |
|
| 查看次数: |
8282 次 |
| 最近记录: |