sphinx gettext 在先前匹配的 msg 前面插入空引号“”

问题描述 投票:0回答:1

当前,当我更改原始文件中的内容时,我的工作流程是这样的:

  • make gettext
    更新 *.pot 文件
  • sphinx-intl update -p build/gettext -l fr
    从中创建 *.po 文件

但是,这总是会导致以下行为: *.po 文件中的一些较长的消息没有正确更新,或者更正确地说,它们 更新了,尽管它们没有改变。

sphinx-intl update
将在跨越多行的每个段落前插入引号“”。这是它的样子:

之前:(在一些法语 *.po 文件中):

msgid "Some longer paragraph text that spans multiple lines. This text was just"
"lying here and matched a sequence within the file before gettext inserted"
"unnecessary quotes on top."
msgstr "Un texte de paragraphe plus long qui s'étend sur plusieurs lignes. Ce texte se trouvait juste ici et correspondait à une séquence dans le fichier avant que gettext n'insère des guillemets inutiles par-dessus."

之后

msgid ""
"Some longer paragraph text that spans multiple lines. This text was just"
"lying here and matched a sequence within the file before gettext inserted"
"unnecessary quotes on top."
msgstr ""
"Un texte de paragraphe plus long qui s'étend sur plusieurs lignes "
"Ce texte se trouvait juste ici et correspondait à une séquence dans le "
"fichier avant que gettext n'insère des guillemets inutiles par-dessus."

这非常烦人,因为它不再与它应该匹配的文本匹配!只有当我删除前导“”时,文本才会再次匹配。我想知道是否会发生这种情况,因为我倾向于将翻译后的 msgstr 写成一行而没有中间引号(它们有什么用呢?)。在

sphinx-intl update
之后,它们被引号括起来......

这是怎么回事,我该如何预防?

internationalization python-sphinx gettext po
1个回答
0
投票

如此处类似问题的已接受答案中所述,这是正常的 gettext 行为。开头的空字符串标记多行条目。所以理论上这不应该弄乱对齐。如果您的工作流程允许,也许在首先构建 *.po 文件时也可以使用此标准格式,这样更新就不会重新格式化未更改的行。

© www.soinside.com 2019 - 2024. All rights reserved.