在 I18n 中覆盖嵌套翻译

Overwriting nested translations in 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

由于 copy/pasting,存在重复代码。

将默认指针移动到汽车的选项在我的场景中并不是一个真正的选项。

有更好的方法吗?

自己修好了,解决方法是给car多加一个指针,而不是移动指针。

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