0

我们只是用 SimpleForm 替换了 FormTastic,虽然 FormTastic 在 namespace 中使用了我们的翻译,但de.activerecord.*SimpleForm 似乎坚持使用de.simple_form.*. 我四处搜索并阅读了文档,有趣的是,其中包含以下代码片段:

en:
  activerecord:
    models:
        admin/user: User
    attributes:
        admin/user:
            name: Name

但是我在其他任何地方都找不到更多关于是否可以将 SimpleFormen.activerecord.*用作其命名空间的信息。

那么我可以强制 SimpleForm 更改其命名空间吗?非常感谢任何帮助。

4

3 回答 3

3

也有可能只对 YAML 树的部分进行别名/合并:

de:
  active_record: &myAliasName
    models:
      contact:
          name: "Name"
          age: "Alter"
  simple_form:
    <<: *myAliasName
    another_key: "another_value"

结果是:

{
  "de": {
    "simple_form": {
      "models": {
        "contact": {
          "age": "Alter", 
          "name": "Name"
        }
      }, 
      "another_key": "another_value"
    }, 
    "active_record": {
      "models": {
        "contact": {
          "age": "Alter", 
          "name": "Name"
        }
      }
    }
  }
}

这可能是解决此问题的方法,尽管我认为它的性能可能会慢一些。

于 2012-09-04T13:23:54.500 回答
1

检查此文件https://github.com/plataformatec/simple_form/blob/master/lib/simple_form/inputs/base.rb#L161我猜你可以猴子修补它以将命名空间更改为你的。

于 2012-08-30T14:41:23.143 回答
0

我意识到这是一个非常古老的问题,但是当我想在 SimpleForm 3.1 中做同样的事情时,我只是遇到了它。

SimpleForm 现在有一个配置选项来指定 i18n 前缀,它可以在config/initializers/simple_form.rb. 您可以简单地将其配置为使用您希望的任何范围,例如。activerecord而不是simple_form

# Defines which i18n scope will be used in Simple Form.
config.i18n_scope = 'activerecord'
于 2015-04-10T06:07:59.023 回答