这是一个初学者的问题,但我到处搜索,似乎无法解决它。
我正在使用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_path
,admin_usuarios_url
,/admin/usuarios
等我觉得非常难看。我宁愿在内部使用英语。 active_admin/resource/naming
的ActiveAdmin来源说它应该是正在从本地化文件中读取的模型的human_name
:
(在控制台中)
User.model_name.human.titleize
=> "Usuario"
那么为什么“Usuario”不会显示在菜单栏上,而是“User”?我在这里有点神秘。我必须遗漏一些非常简单的东西。
提前致谢!
凯尔
答案 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=es
或www.myapp.com/controller/action?parameters_from_active_admin=foo&locale=es
如果该dosnt适用于您,请查看Rails控制台并查看提供给应用程序的参数?是否有区域设置参数设置为es?
以外的其他参数有关详细信息,请参阅Rails i18n guide。