【发布时间】:2014-01-16 14:26:13
【问题描述】:
Rails/HAML/YAML 中的国际化存在语法问题,在连接字符串时将 JavaScript (?) 变量传递给 yaml。
在国际化之前,HAML 文件如下所示:
Dear {{order.name}},
我更改了它,以下工作正常 - 在 en.yml 中
en:
salutation: "Dear %{customer_name},"
在 HAML 文件中:
= I18n.t('.salutation', customer_name: "Robert")
但是,我想将 {{order.name}} 中的值分配给它,而不是“Robert”。以下方法不起作用:
= I18n.t('.salutation', customer_name: {{order.name}})
= I18n.t('.salutation', customer_name: order.name)
= I18n.t('.salutation', customer_name: @order.name)
将变量排除在 yaml 之外并使用 {{variable}} 语法在 HAML 中构建字符串的解决方法并不方便,因为我们在不同的地方使用了多个 yaml 项目,撕掉会很麻烦字符串分开(尤其是翻译文件)。
谢谢你,很抱歉这个新手问题,但我在网上找不到任何东西......
【问题讨论】:
-
指定
I18n.t('.salutation', customer_name: @order.name)时会出现哪个错误? -
Dear {{order.name}},看起来不像 HAML。看起来像液体 -
对我来说看起来像是一些 JS 前端框架。
-
{{order.name}} 应该是 JS 前端(推特引导程序,如果我是正确的)。
-
@majioja:没有真正的错误信息,只是没有显示文字...
标签: ruby-on-rails internationalization haml yaml