i18n使用simple_form标记嵌套模型

时间:2011-10-06 07:51:29

标签: ruby-on-rails-3 internationalization nested-attributes simple-form

如果是项目:

  • has_many:tasks
  • accepted_nested_attributes_for:tasks

我正在使用simple_form,如此(简化):

simple_form_for @project do |f|
  f.input :project_name
  f.simple_fields_for :tasks do |j|
    j.input :task_name
  end
  f.submit
end

我如何将:task_name的标签国际化?我在simple_form.it.yml文件中尝试了很多组合,例如:

it:
  simple_form:
    labels:
      project:
        project_name: 'Nome progetto'
        task:
          task_name:  'Nome compito'

无法在文档中找到示例。谷歌指出了几个明显相关的封闭问题:

https://github.com/plataformatec/simple_form/issues/48

https://github.com/plataformatec/simple_form/issues/194

但到目前为止,我处于亏损状态......

谢谢! 朱塞佩

4 个答案:

答案 0 :(得分:17)

就您的表单接受许多任务而言,您应该复数task。它适用于simple_form:

it:
  simple_form:
    labels:
      project:
        project_name: 'Nome progetto'
        tasks:
          task_name:  'Nome compito'

答案 1 :(得分:3)

使用默认的Rails i18n。

it:
  activerecord:
    attributes:
      task:
        task_name:  'Nome compito'

答案 2 :(得分:3)

SimpleForm应该回退到it.simple_form.labels.task.task_name,但它不会。

你可以用一些YAML'hack'来模拟它。

it:
  simple_form:
    labels:
      task: &task_labels
        task_name:  'Nome compito'
      project:
        project_name: 'Nome progetto'
        tasks:
          <<: *task_labels

您甚至可以在<<: *task_labels行之后自定义项目任务的标签。

答案 3 :(得分:0)

我想知道这是否有用:

activerecord.errors.models.[model_name].attributes.[attribute_name]
activerecord.errors.models.[model_name]
activerecord.errors.messages
errors.attributes.[attribute_name]
errors.messages