Python 如何在可翻译字符串中不包含打断空格
我们有一个金字塔应用程序,我们必须在英语,西班牙语和法语。我们已经完成了i18n的第一个步骤,但是我们很担心如何在翻译字符串中引入无中断空格 例如,我们有以下几点:Python 如何在可翻译字符串中不包含打断空格,python,gettext,po-file,Python,Gettext,Po File,我们有一个金字塔应用程序,我们必须在英语,西班牙语和法语。我们已经完成了i18n的第一个步骤,但是我们很担心如何在翻译字符串中引入无中断空格 例如,我们有以下几点: USER_UPDATED = _('User "${user}" updated!') 翻译为法语时,必须将其更改为: Utilisateur « ${user} » mise à jour ! 但是«之后的空间和»之前的空间以及!必须是非破坏性的 在编辑PO文件时,我如何将不间断空间放在应该放的位置?我使用Emacs PO模式
USER_UPDATED = _('User "${user}" updated!')
翻译为法语时,必须将其更改为:
Utilisateur « ${user} » mise à jour !
但是«之后的空间和»之前的空间以及!必须是非破坏性的
在编辑PO文件时,我如何将不间断空间放在应该放的位置?我使用Emacs PO模式,但我还没有找到一种方法来做到这一点。使用HTML实体
或Unicode字符160(0xA0),这与在网页上需要不间断空格的任何其他情况相同。您可以使用编辑器直接输入Unicode字符,但坦率地说,我建议使用HTML实体,因为它更清晰。如果HTML实体不合适,也可以使用Python语法\u00a0
转义字符。放入PO文件是不可能的,因为有些文本实际上是针对多种媒体(例如邮件)的,而不仅仅是针对HTML的。但通过“M-x ucs插入RET A0 RET”,我解决了这个问题。金字塔(或变色龙)似乎很关心如何将其转换为,最好使用u'usilisateur«\u00a0${user}\u00a0»miseájour\u00a0!使其更可见代码>谢谢你的建议Aya,我已经把它添加到我的答案中。@Aya但只有当我的代码中有法语字符串时才是这样;但我们在代码中使用英语,在PO文件中使用法语。