【发布时间】:2012-02-18 18:08:30
【问题描述】:
Yesod 的内置 i18n 消息文件非常好,但我注意到两个问题:
- 它似乎不允许 cmets。这些对于给翻译人员(或提醒自己)信息的上下文非常有帮助。有没有我遗漏的注释语法?
- 字符是 HTML 转义的。这可以防止将简单的 HTML 位(例如 )添加到消息中。除了在 .hs 文件中编码消息之外,还有其他解决方法吗?
感谢您的任何建议!
【问题讨论】:
标签: haskell internationalization yesod
Yesod 的内置 i18n 消息文件非常好,但我注意到两个问题:
感谢您的任何建议!
【问题讨论】:
标签: haskell internationalization yesod
# 开头。如果翻译人员不熟悉 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 可能在API 的某个地方隐藏了一个允许这种情况发生的钩子,他通常在 SO 上阅读这些问题。
【讨论】: