po file format (was: File trashed by previous translator ?)

Christian Stimming stimming at tuhh.de
Wed Apr 23 07:10:21 EDT 2008


Quoting Derek Atkins <warlord at MIT.EDU>:
>>>>>  1313 #: ../src/business/business-gnome/glade/billterms.glade.h:10
>>>>>  1314 #, fuzzy
>>>>>  1315 msgid ""
>>>>>  1316 "Days\n"
>>>>>  1317 "Proximo"
>>>>>  1318 msgstr "Próximo"
>>>>>  1319
>>>
>>> This is a broken translation.  The translation (msgstr) should include
>>> both the translation of "Days" and the translation of "Proximo"
>>
>> Actually no, the translation is not broken, it simply hasn't
>> translated this msgid so far. Please note the marker "fuzzy" in front
>> of the translation - any translation marked as "fuzzy" is ignored by
>> the rest of the gettext system, just as if it had no msgstr
>> translation at all.
>
> That's not how I read it.  If it hasn't be translated wouldn't the
> msgstr match the msgid?

There are two questions here:

1. What will appear in program, i.e. which translation will make it  
into the msgfmt-compiled .gmo file? The answer is: No translation will  
appear in the program. Any translation marked as "fuzzy" is ignored by  
the rest of the gettext system (i.e. msgfmt), just as if it had no  
msgstr translation at all. This statement is true regardless of what  
msgstr has been set to.

2. Where does the msgstr content come from? I think the confusing part  
here is whether any human translator would have inserted such a msgstr  
to this msgid. And I think the usual explanation is that this  
msgid/msgstr hasn't been touched by any human translator so far - it  
was simply automatically matched by msgmerge when updating the  
translation. msgmerge for whatever reason decided this msgstr might  
match that msgid and inserted it here, BUT marked as FUZZY. This is  
all fine and good as long as everyone keeps in mind that "fuzzy means  
untranslated".

That's why I emphasize this again and again: If a msgid is marked as  
fuzzy, it says nobody knows anything about this msgstr. The only thing  
known is that this msgstr will not appear in the program, as the msgid  
will be treated as untranslated.

Regards,

Christian



More information about the gnucash-devel mailing list