覆盖I18n中的嵌套翻译

时间:2015-01-13 09:46:06

标签: ruby-on-rails rails-i18n

说我有以下en.yml:

default_category: &default
  car:
    wheel: Wheel
    engine: Engine
    ...
    ...
    breaks: Breaks

some_other_category:
  <<: *default

在不必复制粘贴所有其他翻译的情况下,覆盖单词breaks的最佳方法是什么?

到目前为止已经尝试过:

如果你这样做:

default_category: &default
  car:
    wheel: Wheel
    engine: Engine
    ...
    ...
    breaks: Breaks

some_other_category:
  <<: *default
  car:
    breaks: Super Breaks

wheelengine之类的所有其他翻译都已移至some_other_category,因为我覆盖了car:的所有翻译

如果你这样做:

default_category: &default
  car:
    wheel: Wheel
    engine: Engine
    ...
    ...
    breaks: Breaks

some_other_category:
  <<: *default
  car:
    wheel: Wheel
    engine: Engine
    ...
    ...
    breaks: Super Breaks

由于复制/粘贴,代码重复。

在我的方案中,将默认指针移动到汽车的选项实际上不是一个选项。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我自己修正了,解决方案是添加一个额外的指针指向汽车,而不是移动指针。

default_category: &default
  car: &default_car
    wheel: Wheel
    engine: Engine
    ...
    ...
    breaks: Breaks

some_other_category:
  <<: *default
  car:
    <<: *default_car
    breaks: Super Breaks

来源:https://gist.github.com/bowsersenior/979804