【问题标题】:Is it possible to add comments or HTML tags to Yesod's message files?是否可以在 Yesod 的消息文件中添加评论或 HTML 标签?
【发布时间】:2012-02-18 18:08:30
【问题描述】:

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

  1. 它似乎不允许 cmets。这些对于给翻译人员(或提醒自己)信息的上下文非常有帮助。有没有我遗漏的注释语法?
  2. 字符是 HTML 转义的。这可以防止将简单的 HTML 位(例如 )添加到消息中。除了在 .hs 文件中编码消息之外,还有其他解决方法吗?

感谢您的任何建议!

【问题讨论】:

    标签: haskell internationalization yesod


    【解决方案1】:
    1. 注释以# 开头。
    2. 如果翻译人员不熟悉 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 上阅读这些问题。

    【讨论】:

    • 嗯...允许后处理是一个有趣的想法,使用 Markdown 语法真的很好。你能把这个通过电子邮件发送到列表中吗?
    • 谢谢,# 对我来说很好用。我认为你是对的,我不想允许任意 HTML,并且基本上将选择标记后处理回其原始形式。但我个人认为 *ML 标签语法比 Markdown 更容易理解,也更难搞砸。
    猜你喜欢
    • 2012-04-17
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    相关资源
    最近更新 更多