有没有办法用轨道引用yaml中的常量?
有没有办法让我的en.yml文件包含常量?
# en.yml foo: bar: I love BAZ so much! # initializers/constants.rb BAZ = "stackoverflow.com" I18n.t("foo.bar") -> "I love stackoverflow.com so much!"
?
如果没有,有没有办法自我引用yaml文件?
foo: bar: I love *baz* so much! baz: stackoverflow.com I18n.t("foo.bar") -> "I love stackoverflow.com so much!"
I18N字符串工具支持插值 :
I18n.t('foo.bar', :baz => 'stackoverflow.com')
然后在en.yml
:
foo: bar: I love %{baz} so much!
只是不要尝试在字符串中使用%{default}
或%{scope}
作为变量, I18n.translate
将其用于其他内容:
如果转换使用
:default
或:scope
作为插值变量,则引发I18n::ReservedInterpolationKey
exception。
这一般不适用于YAML,但您的问题似乎是关于翻译文件。