为什么msgmerge将我的翻译标记为模糊?

时间:2014-11-26 10:25:28

标签: localization internationalization translation gettext po

我使用msgmerge将现有的po文件与更新的pot文件合并,例如

msgmerge test-zh_TW.po test.pot  > test.po

我发现在msgmerge之后,有些字段被标记为fuzzy,为什么会这样?

(我想知道原因,我知道我可以用-N关闭它们,但为什么它是第一名的默认值?)

1 个答案:

答案 0 :(得分:5)

引用手册的文档

  

模糊条目,即使它们为大多数其他目的考虑翻译条目,通常也要求翻译者进行修订。这些工具可以通过应用程序msgmerge根据新的PO模板文件更新旧的已翻译的PO文件来生成,当此工具假设某些新的msgid仅稍微修改了一个旧的msgid时,并选择配对它的想法成为新修改条目的旧翻译。原始字符串(msgid字符串)的轻微更改通常应反映在已翻译的字符串中,这需要翻译人员的干预。因此,msgmerge可能会将某些条目标记为模糊。

简而言之,这是因为msgmerge中的模糊匹配算法发现一些新消息足够接近旧消息,以保证将其与旧翻译相关联,但它标志着它是模糊的,以便提示翻译人员修改翻译,因为它只是模糊或部分匹配。

这是默认行为的原因是因为msgmerge.c的实现具有以下行。

/* Determines whether to use fuzzy matching.  */
static bool use_fuzzy_matching = true;

<强>参考