Django 法语翻译 - 如何处理翻译字符串中的单引号?

use*_*774 5 python django translation language-translation

我正在使用 Python 3.5.2 和 Django 1.10。

\n\n

我已收到法语翻译 .po 文件,并且可以运行compilemessages 命令而不会收到任何错误。

\n\n

但是,当我运行该网站时,许多页面拒绝加载。

\n\n

我怀疑这是因为法语翻译 .po 文件在翻译字符串中包含许多单引号 (\')。

\n\n

例如,

\n\n
#: .\\core\\constants\\address_country_style_types.py:274\nmsgid "Ascension Island"\nmsgstr "\xc3\x8ele de l\'Ascension"\n
Run Code Online (Sandbox Code Playgroud)\n\n

我记得在某处读过(但在任何地方都找不到该引用)单引号前面必须有一个正斜杠或反斜杠。所以我尝试了,但是当我运行compilemessage命令时,我收到一条错误消息:

\n\n
C:\\Users\\me\\desktop\\myapp\\myapp\\locale\\fr\\LC_MESSAGES\\django.po:423:18: invalid control sequence\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么如何避免字符串中的法语单引号问题呢?

\n\n

这是我的法语 .po 文件的标头:

\n\n
# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR THE PACKAGE\'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the PACKAGE package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid ""\nmsgstr ""\n"Project-Id-Version: PACKAGE VERSION\\n"\n"Report-Msgid-Bugs-To: \\n"\n"POT-Creation-Date: 2017-05-04 12:55+1000\\n"\n"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"\n"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"\n"Language-Team: LANGUAGE <LL@li.org>\\n"\n"MIME-Version: 1.0\\n"\n"Content-Type: text/plain; charset=UTF-8\\n"\n"Content-Transfer-Encoding: 8bit\\n"\n"Plural-Forms: nplurals=2; plural=(n > 1);\\n"\n
Run Code Online (Sandbox Code Playgroud)\n

use*_*774 4

我不确定这个问题的原因是什么(也许翻译者以某种方式损坏了文件?)。

\n\n

但是,解决方法是不使用标准单引号',而是使用这个单引号(取自 MS Word 中的符号):

\n\n

\xe2\x80\xb2

\n\n

我还没有和法语翻译人员核实过这一点,但它看起来和工作都很好。

\n\n

我希望这可以帮助别人。

\n