Есть ли способ ссылаться на константу в yaml с рельсами? - PullRequest
5 голосов
/ 24 августа 2011

Есть ли способ, чтобы мой файл 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!"

1 Ответ

7 голосов
/ 24 августа 2011

Строковые инструменты 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Возникает исключение.

Это не относится к YAML в целом, но, похоже, ваш вопрос касается файлов перевода.

...