我正在根据Rails指南的建议开发一个Rails应用程序来创建文件夹树和带有翻译的文件。 我的文件夹树与此类似:
|-defaults
|---es.rb
|---en.rb
|-models
|---book
|-----es.rb
|-----en.rb
|-views
|---defaults
|-----es.rb
|-----en.rb
|---books
|-----es.rb
|-----en.rb
|---users
|-----es.rb
|-----en.rb
|---navigation
|-----es.rb
|-----en.rb
config / locales / views / books / en.yml中的内容与此类似:
es:
books:
index:
title: "Título"
在app里面的app / views / books / index.html.erb这样的模板(注意点):
<%= t '.title' %>
当我没有命名空间时,我在视图中的翻译工作得很好但是我在后端使用的命名空间“admin”却不起作用。任何人都知道这是什么问题?
答案 0 :(得分:2)
我正在使用<%= t '.title' %>
,因为我使用“懒惰”查找 http://guides.rubyonrails.org/i18n.html#lazy-lookup。
Rails实现了在视图中查找区域设置的便捷方式。如果您有以下字典:
es:
books:
index:
title: "Título"
你可以像这样在app / views / books / index.html.erb模板中查找books.index.title值(注意点):
<%= t '.title' %>
答案 1 :(得分:0)
您只需要在您的yaml中包含命名空间:
es:
admin:
books:
index:
title: "Título"
然后在视图中使用<%= t '.title' %>
访问字符串。
我刚用Rails 4.0.x进行了测试
答案 2 :(得分:-1)
您只需要使用{scope}运算符,如http://guides.rubyonrails.org/i18n.html#looking-up-translations
所述(我不确定你为何使用带有点的<%= t '.title' %>
- 你应该使用代表字段名称(<%= t 'title' %>
)的字符串或符号({{1} })。)