可以在Yesod的消息文件中添加注释或HTML标签吗?

时间:2012-02-18 18:08:31

标签: haskell internationalization yesod

Yesod的内置i18n消息文件非常好,但我注意到两个问题:

  1. 似乎不允许发表评论。这些对于为翻译提供翻译(或提醒自己)的上下文非常有帮助。我错过了评论语法吗?
  2. <和>字符是HTML转义的。这可以防止添加简单的HTML,例如< em>一条消息。除了在.hs文件中编写消息之外,还有一种解决方法吗?
  3. 感谢您的任何建议!

1 个答案:

答案 0 :(得分:5)

  1. 通过以#
  2. 开头的行进行评论
  3. 如果他们不熟悉HTML标签,强制翻译人员处理HTML标签可能不是一个好主意。此外,如果您想稍后更改某些实施细节,例如决定要将<span class="foo">foo</span>替换为<em>foo</em>该怎么办?

    相反,我建议在Something that needs to be *emphasized*.中使用类似Markdown的语法。然后,您可以使用Hackage上的各种Markdown库对字符串进行后处理。

    如果您避免使用mkMessage TemplateHaskell函数生成消息,而是使用Markdown语法处理器创建自己的RenderMessage类实现,则很容易自动执行此操作。在保持mkMessage调用时我没有看到这样做的方法,但是我知道Yesod的创建者@ michael-snoyman可能在某个地方隐藏了一个钩子,允许这种情况发生,并且他通常会在SO上阅读这些问题。