Activeadmin资源名称

时间:2011-12-11 14:24:40

标签: ruby-on-rails internationalization activeadmin

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

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

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

配置/初始化/ i18n.rb

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

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

我在ActiveAdmin界面中获取资源名称时遇到问题。例如,在页面顶部,它显示“用户”,“估计”等,而不是“Usuarios”,“Cotizaciones”。

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

ActiveAdmin.register User,:as => “usuario”做 ... 端

然后我得到了admin_usuarios_pathadmin_usuarios_url/admin/usuarios等我觉得非常难看。我宁愿在内部使用英语。 active_admin/resource/naming的ActiveAdmin来源说它应该是正在从本地化文件中读取的模型的human_name

(在控制台中)

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

那么为什么“Usuario”不会显示在菜单栏上,而是“User”?我在这里有点神秘。我必须遗漏一些非常简单的东西。

提前致谢!

凯尔

2 个答案:

答案 0 :(得分: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!

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

答案 1 :(得分:0)

控制器中必须有一些内容覆盖默认语言环境。如果设置了locale参数,则它将成为会话的默认值。您可以尝试清除您的Cookie,但是不知何故该区域设置被设置为另一个值,您可以尝试通过向您的网址添加GET prarmeter将其强制为西班牙语,但其他帖子参数可能会覆盖它。

您可以通过向URL添加参数来设置区域设置参数。尝试www.myapp.com/controller/action?locale=eswww.myapp.com/controller/action?parameters_from_active_admin=foo&locale=es

之类的内容

如果该dosnt适用于您,请查看Rails控制台并查看提供给应用程序的参数?是否有区域设置参数设置为es?

以外的其他参数

有关详细信息,请参阅Rails i18n guide