我想使用 yml 文件中声明的变量。
例如,我声明了 site_name
并希望在下面的 description
中使用它。
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
变量与附加文本结合起来?
最佳答案
简短的回答是,我相信,不,你不能按照你想要的方式使用 an alias 在 YAML 中进行字符串插值。 .
就您而言,我要做的就是在我的区域设置文件中包含类似以下内容:
en:
site_name: "Site Name"
static_pages:
company:
description: ! '%{site_name} is an online system'
然后以站点名称作为参数调用适当的 View :
t('.description', site_name: t('site_name'))
这会让您“站点名称是一个在线系统”
。
但是,如果您迫切希望在 YAML 文件中使用别名将字符串连接在一起,则以下完全不推荐代码也可以通过让字符串成为数组的两个元素来工作: p>
en:
site_name: &site_name "Site Name"
static_pages:
company:
description:
- *site_name
- "is an online system"
然后您将在适当的 View 中加入
数组,如下所示:
t('.description').join(" ")
这也会让您“站点名称是一个在线系统”
。
但是,在您决定走这条路之前,除了 @felipeclopes 链接到的问题之外,请看一下:
- this StackOverflow answer关于连接 i18n 字符串(tl;dr,为了您的翻译团队,请不要这样做)。
- StackOverflow 问题 here和 here与您的问题类似。
关于ruby-on-rails - 在rails国际化yml文件中传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13055753/