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

sva*_*lek 4 haskell internationalization yesod

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

  1. 它似乎不允许评论.这些对于为翻译提供翻译(或提醒自己)的上下文非常有帮助.我错过了评论语法吗?
  2. <和>字符是HTML转义的.这可以防止将诸如<em>之类的HTML的简单位添加到消息中.除了在.hs文件中编写消息之外,还有一种解决方法吗?

谢谢你的任何建议!

dfl*_*str 5

  1. 通过以行开头制作注释#.
  2. 如果他们不熟悉HTML标签,强制翻译人员处理HTML标签可能不是一个好主意.另外,如果您想稍后更改某些实现细节,比如决定要替换它<span class="foo">foo</span>,该<em>foo</em>怎么办?

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

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