hans wrote: ↑Tue Mar 23, 2021 10:33 pm
hans wrote: ↑Fri Mar 12, 2021 1:58 pm
If I update the messages.po with the pot file, then PoEdit marks 249 entries as "need review". If I have a look at these I see that nearly all have a wrong translation. How could that happen?
I analyzed this and the wrong translation is caused by the fuzzy option. Updating with the *.pot-file by Poedit does the same like msgmerge (with fuzzy default enabled). Without that fuzzy option, the strings are just empty as I would except that.
That happen if a program tries to be clever
In fact that are 283 new translation left with your current pot-file.
And can you also provide the pot file for the de.po? So I can check that one too.
Les Newell wrote: ↑Wed Mar 24, 2021 12:56 pm
Ah, that makes sense. The POT file just contains the original English strings along with some information about where they are used. When you merge the POT file into your PO file it discards any translations that are no longer used and adds any missing strings. It looks like Poedit then tries to match the missing strings with others that are close.
Edit: I found you can change that behaviour in File->preferences->translation memory.
I found the real root of this.
It occurs when generating the mo-file. Normally the entries marked as fuzzy should not get compiled into the mo-file, I just learned by the LinuxCNC project. That really makes sense to have a suggested string for the translator, but do not take it for real.
If using Linux msgfmt tool, the mo-file is compiled correctly.
You can explicitly allow the fuzzy entries:
Code: Select all
-f, --use-fuzzy
use fuzzy entries in output
So per default they aren't, what makes really sense.
BUT PoEdit takes always the fuzzy entries into account and I didn't found an option to disable it.
The setting you found is only effective then merging from catalogue (pot) file.
I would recommend to use msgfmt when generating the mo-files (if you are not already using it)
You can try this with such an entry. If correctly it should be ignored unless removing the fuzzy comment.
Code: Select all
#, fuzzy
msgid "Colour"
msgstr "Farbe"