Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在可翻译字符串中不包含打断空格_Python_Gettext_Po File - Fatal编程技术网

Python 如何在可翻译字符串中不包含打断空格

Python 如何在可翻译字符串中不包含打断空格,python,gettext,po-file,Python,Gettext,Po File,我们有一个金字塔应用程序,我们必须在英语,西班牙语和法语。我们已经完成了i18n的第一个步骤,但是我们很担心如何在翻译字符串中引入无中断空格 例如,我们有以下几点: USER_UPDATED = _('User "${user}" updated!') 翻译为法语时,必须将其更改为: Utilisateur « ${user} » mise à jour ! 但是«之后的空间和»之前的空间以及!必须是非破坏性的 在编辑PO文件时,我如何将不间断空间放在应该放的位置?我使用Emacs PO模式

我们有一个金字塔应用程序,我们必须在英语,西班牙语和法语。我们已经完成了i18n的第一个步骤,但是我们很担心如何在翻译字符串中引入无中断空格

例如,我们有以下几点:

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文件中使用法语。