[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

How to update a po file collection when upstream also change them



Hello,

a while ago, someone (Denis?) raised a major issue in my designs and dreams
of a central po files collection in debian.

Let's imagine that upstream distribute a fr.po file, but it's suboptimal. It
gets fixed (or completed) internally in debian, and everything is great and
such.

But how to deal with a new upstream release? Dropping the upstream po file
is very impolite with upstream translators. Moreover, they may have improved
in the meanwhile. Dropping the debian translation is a bit suicidal. 

Here is a proposal:
In the DB, you store not only the working copy (which get improved and used
within debian), but also the original file you got from upstream.

Then, on new upstream release, you have 3 files: orig.po, curr.po and new.po 
 - resync new.po against the pot, since some debian patch may add msgids
 - foreach msgid in new.po 
   if it wasn't in curr.po also, take the new translation and go ahead
   else
     if msgstr(orig) != msgstr(curr) # was improved internally
       if msgstr(orig) == msgstr(new) # wasn't improved upstream
         take translation from curr.po
       else # was improved upstream
         concatenate the translations from curr and from new, and mark fuzzy
     else # wasn't improved internally
       Take translation from new.po


I think it could work. Actually, I suspect that this is the way rosetta
works, but since I cannot access its source code, I cannot say. Anyone has
some more info?

Bye, Mt.

Attachment: signature.asc
Description: Digital signature


Reply to: