haskell - 是否可以在 Yesod 的消息文件中添加注释或 HTML 标签?

标签 haskell internationalization yesod

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

  1. 它似乎不允许评论。这些对于为译者提供(或提醒自己)消息的上下文非常有帮助。我是否漏掉了注释语法?
  2. < 和 > 字符是 HTML 转义的。这可以防止将简单的 HTML 部分(例如 )添加到消息中。除了在 .hs 文件中编码消息之外,还有解决方法吗?

感谢您的建议!

最佳答案

  1. 通过创建以 # 开头的行来进行评论.
  2. 如果翻译人员不熟悉 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/

相关文章:

haskell - YesodAuthEmail 无法推断出 m ~ HandlerFor site0

templates - 如何在 Yesod 中导入莎士比亚模板?

haskell - 如何展平haskell中的列表列表

haskell - 列表的头部可以代表多个值吗

c++ - Qt、MSVC 和/Zc :wchar_t- == I want to blow up the world

GWT 国际化工具

haskell - 如何从 yesod settings.yml 文件中获取值

haskell - PolyKinds 的不明确类型

haskell - Haskell 的 `Data.Vector.Mutable.unsafeNew` 是否会将内存清零?

java - 有什么方法可以检测 Java 中的 RTL 语言吗?