Есод юлиус интерполяция сообщений

Я использую систему сообщений Yesod, чтобы помочь сохранить согласованность моего языка. Например, у меня есть сообщение с именем MsgBrand, которое без проблем вставляется в файлы Hamlet. Однако сейчас я использую библиотеку JavaScript, которая нуждается в такой информации.

var tour = Tour.new();

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

Тем не мение, _{MsgTourStepFoo} появляется в отрендеренном коде JavaScript дословно. Другими словами, нет интерполяции. Это нормально или я что-то упустил?

1 ответ

Решение

Это нормально. Мы могли бы иметь i18n-вариант Юлиуса, но пока избежали его просто потому, что, похоже, это будет больше путаницы, чем стоит. Вместо этого вы можете использовать getMessageRender, чтобы получить функцию рендеринга сообщения, а затем вызвать ее из Julius, что-то вроде:

Haskell:
messageRender <- getMessageRender

Julius:
content: "#{messageRender MsgTourStepFoo}"
Другие вопросы по тегам