Yesod 的内置 i18n 消息文件非常好,但我注意到两个问题:
- 它似乎不允许评论。这些对于为译者提供(或提醒自己)消息的上下文非常有帮助。我是否漏掉了注释语法?
- < 和 > 字符是 HTML 转义的。这可以防止将简单的 HTML 部分(例如 )添加到消息中。除了在 .hs 文件中编码消息之外,还有解决方法吗?
感谢您的建议!
最佳答案
- 通过创建以
#
开头的行来进行评论. 如果翻译人员不熟悉 HTML 标签,那么强制他们处理 HTML 标签可能不是一个好主意。另外,如果您想稍后更改一些实现细节,例如决定要替换
<span class="foo">foo</span>
,该怎么办?与<em>foo</em>
?相反,我建议使用一些类似 Markdown 的语法
Something that needs to be *emphasized*.
。然后,您可以使用 Hackage 上的各种 Markdown 库对字符串进行后处理。如果您避免使用
mkMessage
,这很容易自动完成。 TemplateHaskell 函数用于生成您的消息并制作您自己的消息RenderMessage
使用 Markdown 语法处理器的类实现。我看不到在保留mkMessage
的同时做到这一点的方法。调用,但我知道 Yesod 的创建者 @michael-snoyman 可能在 API 中隐藏了一个钩子(Hook),允许这种情况发生,他通常会在 SO 上阅读这些问题。
关于haskell - 是否可以在 Yesod 的消息文件中添加注释或 HTML 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9343756/