【问题标题】:Activeadmin Resource NamesActiveadmin 资源名称
【发布时间】:2012-01-17 21:03:30
【问题描述】:

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

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

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

config/initializers/i18n.rb

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

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

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

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

ActiveAdmin.register 用户,:as => "usuario" 做 ... 结束

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

(在控制台中)

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

那么为什么菜单栏上没有出现“Usuario”,而是“用户”呢?我在这里有点迷惑。我一定错过了一些非常简单的东西。

提前致谢!

凯尔

【问题讨论】:

    标签: ruby-on-rails internationalization activeadmin


    【解决方案1】:

    控制器中必须有覆盖默认语言环境的内容。如果设置了语言环境参数,那么它将成为会话的默认值。您可以尝试清除 cookie,但不知何故将语言环境设置为另一个值,您可以尝试通过将 GET 参数添加到您的 URL 来强制它为西班牙语,但其他 post 参数可能会覆盖它。

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

    如果这对您有用,请查看 Rails 控制台并查看提供给应用程序的参数?是否有设置为 es 以外的语言环境参数?

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

    【讨论】:

    • 谢谢@Devin。这似乎不是存在另一个语言环境的问题。当我在开发模式下加载站点时,它无法加载翻译,直到我修改了一个 ActiveAdmin 文件(在app/admin 下)——之后它就可以工作了! (ruby 1.9.2、rails 3.1.3、ActiveAdmin 0.3.3)简单地触摸文件不会产生相同的效果。更有可能是缓存问题?不幸的是,部署的站点的行为相同(使用乘客/apache)。
    • 嗯,是的,缓存层是什么样的?我认为缓存内容时会考虑 i18n 语言环境...
    【解决方案2】:

    如本期所述: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) 不是很完整也不是很稳定,但在接下来的几个版本中应该会变得更好。

    【讨论】:

    • 感谢 Jean-Do,成功了!我仍然有一些尴尬的复数形式,但这可能是我的错,还没有真正研究过变形器。
    猜你喜欢
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多