我在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项目并且将它们弄得一团糟字符串分开(特别是翻译文件)。
谢谢你,抱歉新手问题,但我在网上找不到任何东西......
答案 0 :(得分:0)
我相信您需要插入要传递给I18n.t
方法的字符串:
= I18n.t('.salutation', customer_name: "#{order.name}")
注意:我没有测试过这个,但我相信它会起作用。
答案 1 :(得分:0)
您需要将{{order.name}}
作为字符串传递:
= I18n.t('.salutation', customer_name: '{{order.name}}')
这将按预期输出Dear {{order.name}}
。