有没有办法让我的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!"
答案 0 :(得分:7)
I18N字符串工具支持interpolation:
I18n.t('foo.bar', :baz => 'stackoverflow.com')
然后在en.yml
:
foo:
bar:
I love %{baz} so much!
请不要尝试将%{default}
或%{scope}
用作字符串中的变量,I18n.translate
将其用于其他内容:
如果翻译使用
:default
或:scope
作为插值变量,则会引发I18n::ReservedInterpolationKey
异常。
这一般不适用于YAML,但您的问题似乎是关于翻译文件。