我一直在使用 Yesod 的消息系统来帮助保持我的语言一致。例如,我有一条名为 MsgBrand 的消息,它可以毫无问题地插入到 Hamlet 文件中。但是,我现在正在使用需要此类信息的 JavaScript 库。

var tour = Tour.new();

tour.addSteps([
  { element: "#some-id",
    title:   "Some Title",
    content: "_{MsgTourStepFoo}"
  }
]);

但是,_{MsgTourStepFoo} 逐字出现在呈现的 JavaScript 代码中。换句话说,没有插值。这是正常的还是我错过了什么?

最佳答案

这是正常的。我们可以有一个 i18n 的 Julius 变体,但到目前为止一直避免使用它,因为它似乎比它的值(value)更令人困惑。相反,您可以使用 getMessageRender 获取消息渲染函数,然后从 Julius 调用它,例如:

Haskell:
messageRender <- getMessageRender

Julius:
content: "#{messageRender MsgTourStepFoo}"

关于Yesod Julius 消息插值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19369669/

10-12 19:17