Why msgmerge marked some of my translation as fuzzy?

1.1k views Asked by At

I use msgmerge to merge my existing po file with an updated pot file, e.g.

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

I've found that after the msgmerge, some of the fields are marked as fuzzy, why is that?

(I want to know the reason, I know I can turnoff them by -N, but why it is the default in the 1st place?)

1

There are 1 answers

0
Appleman1234 On

Quoting the documentation for the manual

Fuzzy entries, even if they account for translated entries for most other purposes, usually call for revision by the translator. Those may be produced by applying the program msgmerge to update an older translated PO files according to a new PO template file, when this tool hypothesises that some new msgid has been modified only slightly out of an older one, and chooses to pair what it thinks to be the old translation for the new modified entry. The slight alteration in the original string (the msgid string) should often be reflected in the translated string, and this requires the intervention of the translator. For this reason, msgmerge might mark some entries as being fuzzy.

In short it is because the fuzzy matching algorithm in msgmerge, finds some of the new messages to be close enough to the old one, to warrant associating it with the old translation, but it marks it is a fuzzy, in order to prompt the translator to revise the translation because it is only a fuzzy or partial match.

The reason this is the default behaviour is because the implementation of msgmerge.c has the following lines.

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

References