Python 为什么msgmerge不更新更改的字符串?

Python 为什么msgmerge不更新更改的字符串?,python,localization,translation,gettext,Python,Localization,Translation,Gettext,我们的*.po文件包含以下内容: #: store/jinja2/store/macros.html:35 #, python-format msgid "%(percent)s%% Trained Crew" msgstr "%%(percent)s% Eğitimli Mürettebat" 显然这是错误的。翻译不懂转义,移动了太少的百分号。我们得到了一个更正的*.pot: #: store/jinja2/store/macros.html:35 #, python-format msgi

我们的*.po文件包含以下内容:

#: store/jinja2/store/macros.html:35
#, python-format
msgid "%(percent)s%% Trained Crew"
msgstr "%%(percent)s% Eğitimli Mürettebat"
显然这是错误的。翻译不懂转义,移动了太少的百分号。我们得到了一个更正的*.pot:

#: store/jinja2/store/macros.html:35
#, python-format
msgid "%(percent)s%% Trained Crew"
msgstr "%%%(percent)s Eğitimli Mürettebat"
我们试图使用msgmerge更新*.pot中的*.po,如下所示:

msgmerge django.po django.pot --no-fuzzy-matching --no-wrap --update

但是,这不会导致*.po条目发生更改。它仍然是第一个值。我是否需要添加一个额外的标志来强制它更新旧字符串?还是每次更新时都需要删除并重新生成*.po文件

你所描述的听起来令人困惑。你说“我们得到了一个更正的*.pot back”是什么意思。pot文件通常是新生成的po模板,没有任何翻译。然后,
msgmerge
从旧po文件中获取任何翻译,并从pot文件中生成带有msgid:s的新po文件,以及从旧po文件中生成任何匹配的翻译。这本身就是一种混淆,因为po和pot的格式完全相同,并且仅在约定上有所不同。我的理解是,我生成一个po,复制它并将其重命名为pot,然后将其发送给翻译人员。翻译后它仍然是一个罐子,直到我将它合并回po。这是我们的实际过程,我们从来没有实际重命名它,它一直被称为po。也许我有相反的论点?我周一回来后会查一查。我的目的不是抱怨你使用这些术语,更重要的是我不明白你在说什么。我不明白你的例子中django.po和django.pot的内容是什么。确切的问题是我把参数颠倒了,因为我对术语感到困惑。(第二个问题是msgmerge并没有按照我所希望的方式工作。)你所描述的听起来令人困惑。你说“我们得到了一个更正的*.pot back”是什么意思。pot文件通常是新生成的po模板,没有任何翻译。然后,
msgmerge
从旧po文件中获取任何翻译,并从pot文件中生成带有msgid:s的新po文件,以及从旧po文件中生成任何匹配的翻译。这本身就是一种混淆,因为po和pot的格式完全相同,并且仅在约定上有所不同。我的理解是,我生成一个po,复制它并将其重命名为pot,然后将其发送给翻译人员。翻译后它仍然是一个罐子,直到我将它合并回po。这是我们的实际过程,我们从来没有实际重命名它,它一直被称为po。也许我有相反的论点?我周一回来后会查一查。我的目的不是抱怨你使用这些术语,更重要的是我不明白你在说什么。我不明白你的例子中django.po和django.pot的内容是什么。确切的问题是我把参数颠倒了,因为我对术语感到困惑。(第二个问题是msgmerge的工作方式与我所希望的不同。)