Re: [PATCH 10/25] gettextize: git-merge basic messages

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

 



Ævar Arnfjörð Bjarmason wrote:

> I can't see why translations in the tree (in po/) should be any
> trouble at all for us. What sort of issues do you see that the sed.git
> model might solve?

Only two: log noise and the problem of what to base patches on.

As you noticed while gettextizing (which is pretty much a one-time
thing), it is not much fun to do work on strings that aren't even
going to be used.  So translators might want to work against "next",
or at least "master".  How do the translations get back to "maint"?
Someone has to backport them.  What happens when we merge back to
"master"?

Now multiply that by the number of translations.  Making messages
merge up nicely with git tools as they drift from topic to topic if
translators want to keep both "maint" and "master" translated would
require at least a nice custom merge driver.  

As we noticed before, the .po files are partially automatically
generated anyway.  Merging them as text makes about as much sense
as merging Word-generated .rtf files as text.  To avoid wasting time,
one wants to be able to work with their _content_.

What is that content?

It is a set of key/value pairs: for each string that appears in
the codebase (maybe together with disambiguating translators' notes),
what the translation is for it.  Merging that between branches of the
code base is utterly trivial: take the union.  Actually "merging" as
an operation here does not make sense.  It is not tied to the
development history at all!

Imagine v6.0.0 of git has message "foo".  v6.0.1 changes it to "bar"
because "foo" is not actually true yet, v6.1.0 changes it back to
"foo".  Imagine a linear development history.  Do we want translation
diffs like this:

 commit v6.0.0

 +"foo" is "hello" in language X

 commit v6.0.1

 -"foo" is "hello" in language X
 +"bar" is "goodbye" in language X

 commit v6.1

 -"bar" is "goodbye" in language X
 +"foo" is "hello" in language X

?  But what really happened is this:

 - add foo:hello to translation database
 - add bar:goodbye to translation database

I have been thinking about how to write a merge driver for .po files
(and avoid the tedious merge problems that e.g. the dpkg project runs
into periodically) but the idea of avoiding that altogether is very
appealing to me.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]