I18n в Rails 3 с пространством имен администратора - PullRequest
6 голосов
/ 14 марта 2012

Я разрабатываю приложение 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"

A внутри шаблона app / views / books / index.html.erb, как этот (обратите внимание на точку):

<%= t '.title' %>

Когда у меня нет пространства имен, мои переводы в представлениях работают хорошо, но с пространством имен «admin», которое я использую в своем бэкэнде, это не работает. Кто-нибудь знает в чем проблема?

Ответы [ 3 ]

2 голосов
/ 15 марта 2012

Я использую <%= t '.title' %>, потому что я использую «Ленивый» поиск http://guides.rubyonrails.org/i18n.html#lazy-lookup.

В Rails реализован удобный способ поиска локали внутри представлений.Если у вас есть следующий словарь:

es:
  books:
    index:
      title: "Título"

, вы можете найти значение books.index.title в шаблоне app / views / books / index.html.erb следующим образом (отметьте точку):

<%= t '.title' %>
0 голосов
/ 09 декабря 2014

Вам просто нужно включить пространство имен в ваш yaml:

es:
  admin:
    books:
      index:
        title: "Título"

Затем вы получаете доступ к строке с <%= t '.title' %> в вашем представлении. Я только что проверил это с Rails 4.0.x

0 голосов
/ 14 марта 2012

Вам нужно только использовать оператор: scope, как описано здесь http://guides.rubyonrails.org/i18n.html#looking-up-translations

(я не уверен, почему вы используете <%= t '.title' %> с точкой - вы должны либо использовать строкукоторый представляет имя поля (<%= t 'title' %>) или символ (<%= t :title %>).)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...