Daniel Egger wrote:
> > Also, one important drawback of keeping all translations in one file in
> > CVS, and forcing translators to edit this file, is that it gets almost
> > impossible to verify the integrity of translations. As a translator and
> > creator and maintainer of the translation, I feel that it is important
> > that errors in my translation are my errors alone, and that I'm the only
> > one responsible for them. Translation errors introduced by other people
> > without permission are, well, "annoying" to say the least.
> It's quite tricky to introduce any errors in XML files and easy at the
> same time to fix them.
I think you misunderstood what I meant. I wasn't referring to
syntactical errors, I was referring to pure language errors. There's no
tool in the world other than manual inspection that can help me fully
verify those, and I'd rather have to do this tedious work as rarely as
possible, as opposed to at every cvs commit of another translator, just
to catch an unwanted change of my translation.
> CVS guarantees a certain amount of integrity
> so having conflicting changes is not a problem.
How does this solve the "I committed a newer file with my translation
updated, but accidentally/intentionally messed with yours" problem? I
don't see how.
> AND: XML can be easily
> verified to be correct when there's a schema file, even remotely, and
> in theory the GNOME CVS server could be teached to only allow checkin
> of valid XML files.
Yes, you can check syntax, but you completely missed my point.
> > With a whole bunch of different people committing to the same file,
> > verifying the integrity of individual translations becomes almost
> > impossible.
> It's not more of a problem then with several people working on
> other files concurrently; that's what CVS is for.
It's different. First of all, for every source file it is only a small
number of trusted people that should be able to commit, namely the
developers of that project. I think there are not many projects where
more than 20 developers are expected to commit directly to the same
source file. You're free to correct me if I'm wrong.
But in the GTP we have 40 language teams alone, most of them with at
least one person with GIMP cvs access. Even if we only make the
assumption "one language team = one translator" (which in many cases
will be very wrong) there's 40 translators that will commit to the same
I can tell you that the number of translators that I know (and hence
trust) is significantly lower than 40. So this is a real problem, and
for the amount of people it affects alone a different problem than for
source files in a project.
> I admit that more people on the same file are likely to have more conflicts
> but that's only a theoretical problem or how often do translations change?
I update translations daily. Not all of them, mind you. :-)
For most translations, I tend to revisit them once a month on average
while doing my daily round of updates, I believe (if they have changed).
But I know that this isn't entirely uncommon, and a dozen of translators
that do the same and/or add new translations and I have a whole bunch of
cvs commits in the mean time that I have to cvs diff to inspect when I
revisit. I'd rather not have to do that.
> > Such a file will easily become one of the most committed
> > files in gimp CVS,
> Okay, the most changed file is definitely the ChangeLog; who often
> do you think there were conflicts? I had a couple (4 or 5) including
> my more active time but Sven and Mitch can surely tell you how
> often it occured to them in the last few months - just to give you
> an idea how likely problems here are.
Yes, but that's the very nature of the ChangeLog. It is *supposed* to be
edited with every commit.
Also, ChangeLogs are mostly for developers. Not many people don't cry or
flame if there is a typo or a tab or dot is missing. However, if
something is wrong in a translation, which usually is immediately
visible to a large number of end users, that's another matter.
> > and the danger of someone accidentally or
> > intentionally messing with someone elses translation without permission
> > becomes much more imminent.
> Don't think so. It's about as easy to touch an .po file.
But in that case I can at least easily spot it! I thought I had already
explained that it is the easy and early detection of other people's
grateful unannounced changes to my translations I want to keep. Why do
you think I use an $Id$ tag in all my po files?
> > much (and thus removing another translation) when for example cutting
> Yes, mistakes happen, but also in other sources.
Surely, but the problem is worse with translations. If you accidentally
remove a line too much in the source, chances are big that you will
notice that when compiling to test your changes.
If other people edit a .desktop or XML file directly and accidentally
cut away the line with my translation, it will not get detected
syntactically (that languages' translation is simply gone and it is
still valid syntactically), the only one developer noticing that it is
missing will be me and I will have little chance of detecting it myself
until I revisit the translation and carefully inspect it manually.
Someone else doing a cvs diff for that commit could also notice the
change by accident, but he or she might not know that this was was an
unwanted change, and the chances of he or she notifying me, or knowing
that I should be notified, are probably even smaller.
And this is all aside that the number of translators are usually many
more than developers, and that this is simply a logistical problem for
that fact alone.
> > and pasting, and there's always the danger of someone wanting to
> > "improve" another translation, without seeing the need to ask first.
> You fear competition?
Not at all. However, I reserve the right to maintain my own
translations. That doesn't mean that I'm reluctant to any other
contributions to my translations, it's just that I want changes
discussed openly, and I reserve the right to have the final say on what
Every new translation I do (and most bigger updates) I send out for
review by other translators and other interested people on a mailing
list, and I'm usually very open-minded about changes (archives are here:
http://www.softwolves.pp.se/misc/arkiv/sv/8/date.html , although Swedish
translation discussions are unfortunately only in Swedish). Also, I
usually do honor all suggestions I get from users of the application.
That doesn't mean that I like cvs-commit races and "gratitious changes"
by someone not willing to openly discuss a change, but rather just wants
to (cowardly) silently commit a change to have it "his" way, usually
ignoring all well-founded (and reviewed) reasons it is the way it is,
and that others, including the maintainer of the translation, might be
of a different opinion. Open discussion and maintainership are the key
> Well, I pissed off some evolution people while
> fixing their DocBook->HTML converter once and they didn't want to have
> it fixed for some reason (heck, they even wrote a contributors
> killerscript because of that) so I left it alone and let them fix their
> own crap and decided not to use realtime translation for gimp-help.
> What's the lesson? Some people have no sense of cooperation so better
> let them alone.
I don't blame the Evolution maintainers. If a change went in without
approval, they had all rights in the world to back it out and even ban
you from committing to their module. That's how maintainership works.
Some are welcoming other people's silent commits, others wants to review
and discuss it first before it (eventually) goes in. And that policy is
up to the maintainer to decide.
> It's the same with translations; some people don't
> want contributors for their files and others don't mind when people
> have something to contribute but that's not really a matter of the
I don't mind if people want to contribute, not at all. It's just that I
want to have a fair chance of discussing linguistic changes before they
go in, and if I and the person suggesting the change in the end should
disagree even after discussions, I want the final say on what goes in,
as I maintain the translation. That usually doesn't happen, but that's
the policy we have with translations, and it's very similar to how it
works for CVS modules.
> > With a single file, the only way of verifying the integrity of my own
> > translations is basically having to resort to 'cvs diff' after every
> > single commit to this file in CVS, which will hardly be practical.
> > With separate po files, commits to "my" file are much more rare, and I
> > basically only have to ensure that the last committer was me (easily
> > doable by putting in a CVS "$Id$" tag in the file) to be sure that the
> > translation hasn't been changed by someone else without permission.
> Ayee, reading this lines really annoys me. GIMP grew to such a beautiful
> project because of cooperation. Egoism and arrogance are definitely
> wrong here; if you don't want your sources to be touched then keep them
> closed source.
Umm, I think you are seriously misunderstanding the roles of free
software and maintainership here. Free software doesn't give you the
right to directly change my work. It gives you the right to fork it and
do all the changes you like to your copy, but you have no right to
impose your changes on my version without approval.
If we really should disagree about changes even after lenghty
discussions and you have an alternative translation that you want to see
used in the module, then we have to bring this up with the module
maintainer and let him/them make the decision.
Also, you make this sound like this would be a common scenario with
people wanting to fork translations. It is not. Suggestions for changes
are usually accepted, so I don't see your problem with me wanting to
have control over my work, even from this point.
> Competition is good and the fittest translation will
> survive and that's not something fixed one person can decide, in doubt
> people will need to discuss about it.
Cooperation is usually in many cases better than competition, especially
when there are limited resources like in the free software world.
Especially translation resources are usually limited. If someone should
be unsatisfied with my decision regarding a proposed change (which is
uncommon, in almost all cases I accept changes, and where that isn't
true we discuss it some more, listen to other people's opinions, and
usually agree in the end), and has the time and motivation to provide
and maintain an alternative translation, he or she is free to do so.
Trying to silently sneak in changes without any open discussion or
approval still isn't the way to go.
Gimp-developer mailing list