Activeadmin资源名称

kpa*_*615 5 ruby-on-rails internationalization activeadmin

这是一个初学者的问题,但我到处搜索,似乎无法解决它.

我正在使用Rails和ActiveAdmin,并且我已经设置了国际化以使用我的es.yml语言环境.

到现在为止还挺好.管理界面在西班牙语中很好地显示,错误消息,日期等也是如此.甚至表单也会获取模型的名称和属性(因此,formtastic可以使翻译正常).我只有一个语言环境 - 西班牙语:

配置/初始化/ i18n.rb

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

LANGUAGES = [
  [ 'Español', 'es' ]
]
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了在ActiveAdmin界面中获取资源名称的问题.例如,在页面顶部,它显示"用户","估计"等,而不是"Usuarios","Cotizaciones".

我可以通过注册这样的类来解决这个问题:

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" 
Run Code Online (Sandbox Code Playgroud)

那么为什么"Usuario"不会出现在菜单栏上,而是"用户"?我在这里有点神秘.我必须遗漏一些非常简单的东西.

提前致谢!

凯尔

小智 3

正如本期所述:https://github.com/gregbell/active_admin/issues/434

你的初始化程序应该是这样的:

配置/初始化程序/i18n.rb

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

Active Admin 对 i18n 的支持目前还不是很完整也不是很稳定(v0.3.4),但在接下来的几个版本中应该会变得更好。