Имена ресурсов Activeadmin - PullRequest
       13

Имена ресурсов Activeadmin

5 голосов
/ 11 декабря 2011

это вопрос новичка, но я искал везде и не могу решить его.

Я использую Rails и ActiveAdmin, и я настроил интернационализацию для использованиямой es.yml язык.

Пока все хорошо.Интерфейс администратора хорошо отображается на испанском языке, как и сообщения об ошибках, даты и т. Д. Даже формы выбирают названия моделей и атрибутов (так что formtastic получает переводы нормально).У меня есть только одна локаль - испанский:

config / initializers / i18n.rb

#encoding: utf-8
I18n.default_locale = :es

LANGUAGES = [
  [ 'Español', 'es' ]
]

У меня проблема с переводом имен ресурсов в интерфейсе ActiveAdmin, хоть.Например, в верхней части страницы вместо слов «Усуарии», «Котиционы» указано «Пользователи», «Оценки» и т. Д.

Я могу решить эту проблему, зарегистрировав классы следующим образом:

ActiveAdmin.register User,: as => "usuario" do ... end

но затем я получаюadmin_usuarios_path, admin_usuarios_url, /admin/usuarios и т. Д., Которые я нахожу очень, очень уродливыми.Я бы предпочел использовать английский для внутреннего пользования.Источник ActiveAdmin для active_admin/resource/naming говорит, что он должен выбрать модель human_name, которая правильно считывается из файла локализации:

(в консоли)

User.model_name.human.titleize
=> "Usuario" 

Итакпочему «Усуарио» отображается не в строке меню, а «Пользователь»?Я немного озадачен здесь.Я должен упустить что-то действительно простое.

Заранее спасибо!

Кайл

Ответы [ 2 ]

3 голосов
/ 12 января 2012

Как уже упоминалось в этом выпуске: https://github.com/gregbell/active_admin/issues/434

Ваш инициализатор должен выглядеть следующим образом:

config / initializers / i18n.rb

I18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
I18n.locale = :es
I18n.default_locale = :es
I18n.reload!

Поддержка Active Admin для i18n в настоящее время не очень полная и не стабильная (v0.3.4), но она должна улучшиться в следующих нескольких выпусках.

0 голосов
/ 11 декабря 2011

В контроллере должно быть что-то, перекрывающее локаль по умолчанию. Если задан параметр языкового стандарта, он становится значением по умолчанию для сеанса. Вы можете попытаться очистить ваши куки, однако каким-то образом языковой стандарт был установлен на другое значение, вы можете попробовать принудительно установить его на испанский, добавив параметр GET в ваш URL, однако другие параметры записи могут переопределить его.

Вы можете установить параметр локали, добавив параметр в URL. Попробуйте что-то вроде www.myapp.com/controller/action?locale=es или www.myapp.com/controller/action?parameters_from_active_admin=foo&locale=es

Если это не работает, взгляните на консоль Rails и посмотрите параметры, предоставленные приложению? Есть ли для параметра локали значение, отличное от es?

Для получения дополнительной информации см. Руководство Rails i18n .

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