ruby-on-rails – 在rails国际化yml文件中传递变量

我想使用在yml文件中声明的变量。
例如,我声明了site_name,并希望在下面的描述中使用它。

en:
  site_name: &site_name "Site Name"
  static_pages:
    company:
      description: *site_name #this works fine
      description: "#{*site_name} is an online system" #this doesn't work

如何组合* site_name变量和其他文本?

简单的答案是,我相信,你不能做YAML的字符串插值你想使用an alias

在你的情况下,我要做的是在我的语言环境文件中有类似如下:

en:
  site_name: "Site Name"
  static_pages:
    company:
      description: ! '%{site_name} is an online system'

然后调用相应的视图以站点名称作为参数:

t('.description', site_name: t('site_name'))

这将让你“站点名称是一个在线系统”。

然而,如果你绝望在你的YAML文件中使用别名将字符串连接在一起,以下完全不推荐的代码也可以通过将字符串作为数组的两个元素:

en:
  site_name: &site_name "Site Name"
  static_pages:
    company:
      description:
        - *site_name
        - "is an online system"

然后你将在适当的视图中像这样加入数组:

t('.description').join(" ")

这也会让你“站点名称是一个在线系统”。

然而,在你决定走这条路之前,除了@felipeclopes链接的问题,看看:

> this StackOverflow answer关于串联i18n字符串(tl; dr请不要为您的翻译团队的缘故)。
> StackOverflow问题herehere类似于你的问题。

http://stackoverflow.com/questions/13055753/passing-variables-inside-rails-internationalization-yml-file

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ruby-on-rails – 在rails国际化yml文件中传递变量