【问题标题】:How to have no-break spaces in translatable strings如何在可翻译的字符串中有不间断的空格
【发布时间】:2013-05-23 16:55:33
【问题描述】:

我们有一个 Pyramid 应用程序,我们必须有英语、西班牙语和法语版本。我们已经完成了 i18n 的第一遍,但是我们对如何在我们的翻译字符串中引入不间断空格感到困扰。

例如,我们有以下内容:

USER_UPDATED = _('User "${user}" updated!')

翻译成法语时,必须改为:

Utilisateur « ${user} » mise à jour !

但是 « 之后的空格和 » 之前的空格和 !必须是不间断的。

在编辑 PO 文件时,如何将不间断空格放在应有的位置?我用的是 Emacs PO 模式,还没有找到办法。

【问题讨论】:

    标签: python gettext po-file


    【解决方案1】:

    使用 HTML 实体   或 Unicode 字符 160 (0xA0),与在网页上需要不间断空格的任何其他情况相同。您可以使用编辑器直接输入 Unicode 字符,但坦率地说,我建议使用 HTML 实体,因为它更清晰。如果 HTML 实体不合适,您还可以使用 Python 语法 \u00a0 转义字符。

    【讨论】:

    • 把  在 PO 文件中是不可行的,因为某些文本实际上是针对多种媒体(例如邮件)而不仅仅是针对 HTML。但是使用“M-x ucs-insert RET A0 RET”我解决了这个问题。金字塔(或变色龙)似乎很关心将其翻译成  
    • 使用u'Utilisateur «\u00a0${user}\u00a0» mise à jour\u00a0!' 使其更明显可能会更好
    • 感谢 Aya 的建议,我已将其添加到我的答案中。
    • @Aya 但只有当我的代码中有法语字符串时才会出现这种情况;但我们在代码中使用英语,在 PO 文件中使用法语翻译。
    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2014-05-21
    • 2021-02-28
    • 2019-02-14
    • 2015-03-13
    相关资源
    最近更新 更多