I18n在Rails 3中有一个admin命名空间

时间:2012-03-14 17:22:02

标签: ruby-on-rails ruby internationalization

我正在根据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”却不起作用。任何人都知道这是什么问题?

3 个答案:

答案 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} })。)