Ruby on rails 4 有可能干掉yaml吗?
我使用Rails的4.1.4 YAML语言环境文件来存储一些翻译,例如:Ruby on rails 4 有可能干掉yaml吗?,ruby-on-rails-4,yaml,dry,cross-reference,Ruby On Rails 4,Yaml,Dry,Cross Reference,我使用Rails的4.1.4 YAML语言环境文件来存储一些翻译,例如: en: words: en: passport: "passport" ticket: "ticket" train: "train" de: words: en: passport: "passport" ticket: "ticket" train: "train" 有了它,我可以使用t(“words.{to_langua
en:
words:
en:
passport: "passport"
ticket: "ticket"
train: "train"
de:
words:
en:
passport: "passport"
ticket: "ticket"
train: "train"
有了它,我可以使用t(“words.{to_language}.train”)
为选择英语作为其to_language
的德语用户(I18n.locale==:de)返回train
我的问题是:有没有办法我不能重复我自己,并有类似下面的代码
en OR de:
words:
en:
passport: "passport"
ticket: "ticket"
train: "train"
也许我可以将单词的所有内容分配给一个变量,然后只需执行以下操作:
en:
all_words
de:
all_words
谢谢所有单词:&所有单词
话:
嗯:
护照:“护照”
票:“票”
火车:“火车”
嗯:
是的,YAML允许你这么做。特别是,Ruby的YAML有一个称为a的非标准代码,它在您的特定情况下非常有用
例如,如果您有,请说:
base_fruits: &default # Alias the keys here into `default`.
apple: one
banana: two
那你就可以了
fruit_basket_one:
<<: *default # Include all the keys from the alias `default`.
coconut: three # Add another key too.
fruit_basket_two:
<<: *default
durian: five
pear: six
果篮一个:
fruit_basket_one:
<<: *default # Include all the keys from the alias `default`.
coconut: three # Add another key too.
fruit_basket_two:
<<: *default
durian: five
pear: six
en:
words:
en: &all_en_words
passport: "passport"
ticket: "ticket"
train: "train"
de:
words:
en:
<<: *all_en_words
custom_word: "custom translation"