You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Erik Huelsmann <e....@gmx.net> on 2004/09/09 20:00:25 UTC

Translation maintenance requires direct branch commits. (Doesn't it?)

Several translation maintainers have mentioned this and I have promised to
write about it.  In this mail I'm trying to find out if I understand the
issue correctly.  Please feel free to comment.  (Or rather: please comment!
:-)

The translation maintenance process - short version - with a single line of
development:
1. Generate a template from the sources which describes the current state
wrt to translateable messages.
2. If there is a file which already contains messages merge the new state
with the old messages, marking those obsolete which are not in the new
template anymore.
3. Now the translator can remove obsolete messages and add new translations.

So far so good. The merge process in step (2) does not only add and or
remove messages, but also updates the filenames+line numbers associated with
non-changed messages to match those in the current tree.  Due to this fact,
the template (and its derived updated message files) are tree-specific.


Now when the tree is branched, on trunk development continues.  If branch
development halts, there is no issue if all translations were complete at
branchtime.  But normally code development does continue and possibly
translations
development too, at least they were not complete at branch time.

When developing the  branch translation, it is required to run 'make
locale-gnu-po-update' to update translations to the latest state of
translateable messages in the tree. Upon committing this change, any merge
from trunk will conflict on the line numbers included in the messages file
(since after some time the line numbers on trunk will differ from those on
the branch).

Also, after some time, messages which are on trunk won't be in the branch
(these won't be really problematic) and messages on the branch won't be on
trunk (these are problematic, since they will be removed from the
translation at some time).  With code changes you can selectively select
which changes to port to the branch, but with translation maintenance, my
experience (until now) is that commits are large scale updates which are not
one to one associateble with code changes. Therefor it won't be possible to
port over message translations as easily from trunk as it for code.


I wrote the above a week ago and I have been trying to put into this mail
some examples of situations where branch commits are unavoidable. I think I
can't yet explain really clear why one would need branch commits, but as I
promised to send the mail, I'd like translation maintainers to help me out
here and fill in the hole in the explanation.


bye,


Erik.

-- 
Superg�nstige DSL-Tarife + WLAN-Router f�r 0,- EUR*
Jetzt zu GMX wechseln und sparen http://www.gmx.net/de/go/dsl


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Translation maintenance requires direct branch commits. (Doesn't it?)

Posted by Lübbe Onken <l....@rac.de>.
Peter N. Lundblad wrote:
> On Thu, 9 Sep 2004, Erik Huelsmann wrote:
> 
>>Several translation maintainers have mentioned this and I have promised to
>>write about it.  In this mail I'm trying to find out if I understand the
>>issue correctly.  Please feel free to comment.  (Or rather: please comment!
>>:-)
I decided to always work on branch and once 1.1 is out of the door to 
catch up on trunk afterwards. I found it quite annoying to fix/merge 
tiny spelling corrections twice.

> Interesting that you wrote this right after I decided to get the sv.po up
> to date on the branch. My strategy is to:
> a) run locale-gnu-po-update on the branch
That's what I do as well.

> b) go through sv.po on the branch and on trunk in parallell, fixing the
> messages that need fixing on trunk and commit trunk
I do that only on branch, so I'm working the other way round.

> c) Merge that to the po-updated branch, remove obsolete messages, resolve
> conflicts and commit.
I'll do that for trunk once 1.1 is through the door. I'm using poEdit to 
translate and I always refresh my translation memory after fixing 
translations on branch. This way I hope to get a lot of good matches 
when catching up on trunk.

Cheers
-Lübbe

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Translation maintenance requires direct branch commits. (Doesn't it?)

Posted by "Peter N. Lundblad" <pe...@famlundblad.se>.
On Thu, 9 Sep 2004, Erik Huelsmann wrote:

> Several translation maintainers have mentioned this and I have promised to
> write about it.  In this mail I'm trying to find out if I understand the
> issue correctly.  Please feel free to comment.  (Or rather: please comment!
> :-)
>
Interesting that you wrote this right after I decided to get the sv.po up
to date on the branch. My strategy is to:
a) run locale-gnu-po-update on the branch
b) go through sv.po on the branch and on trunk in parallell, fixing the
messages that need fixing on trunk and commit trunk
c) Merge that to the po-updated branch, remove obsolete messages, resolve
conflicts and commit.

I will do step c) above when r10860 is merged. Then I'll see how tedious
the conflict resolution is. We have no removed messages on trunk yet, so
that's not a problem at the moment. OTOH, there is no reason to remove
obsolete messages on the trunk while there are active branches.

I'll come back when I know how this worked out for me.

Regards,
//Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Translation maintenance requires direct branch commits. (Doesn't it?)

Posted by Tobias Ringström <to...@ringstrom.mine.nu>.
plasma wrote:

>I tried to follow 'Maintenance on branches' in TRANSLATING today, but
>  
>
I think that summarizes the current situation quite well. :-)

The current situation is very complex, so I wrote a tool 
(tools/dev/po-merge.py) to help with the maintenance of the translations 
on the branches. I think Erik will update the instructions in 
TRANSLATION soon, but until he does, here's a quick summary of how it's 
supposed to work. The most important thing is that the main translation 
work should still be done on trunk. When updating a translation on a 
branch, do the following:

   1. Make locale-gnu-pot and locale-gnu-po-update on the branch.
   2. Merge in the translated strings from trunk using e.g.:
          * svn cat
            http://svn.collab.net/repos/svn/trunk/subversion/po/sv.po | \
                    po-merge.py sv.po
   3. Optionally translate strings that are not present on trunk.
   4. Commit.

Since the tool is new, it would be great if you could try it out. I know 
Peter Lundblad has used it with great success to update sv.po on the 
1.1.x branch.

/Tobias


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Translation maintenance requires direct branch commits. (Doesn't it?)

Posted by plasma <pl...@ms9.hinet.net>.
On Thu, Sep 09, 2004 at 10:00:25PM +0200, Erik Huelsmann wrote:
> 
> Several translation maintainers have mentioned this and I have promised to
> write about it.  In this mail I'm trying to find out if I understand the
> issue correctly.  Please feel free to comment.  (Or rather: please comment!
> :-)

I tried to follow 'Maintenance on branches' in TRANSLATING today, but
step 7 and 8 confused me.  If we follow steps 7 and 8, then we'll have
three revisions committed if there are fuzzy messages between trunk
and branch.  But I think there should be two revisions at most for
updating trunk and branch.

I found a way that two revisions are enough to update both trunk and
branch.  But I'm not sure if it is direct commit that running 'make
locale-gnu-po-update' then commit.

Below are modified steps:

  5. Locate the fuzzy messages and messages that shows up as
     untranslated.  Append these messages (msgid and msgstr only, line
     number not necessary) in the .po file on trunk.  Prepend '=~ '
     before those lines.
  6. Copy the locally modified trunk version to the branch and run "make
     locale-gnu-po-update".  Repeat step 5 and 6 until all fuzzy and
     untranslated messages on the trunk are gone.
  7. Commit the trunk version.
  8. Merge the revision committed in step 7 into the branch.  Run
     "make locale-gnu-po-update".  Commit.

By doing this, the po file on the trunk will contain many unused
entries, but we don't have to worry about merging the branch version
back to trunk, since these branch-only entries are already in trunk,
just marked as unused.  Run "make locale-gnu-po-update" will bring
them into use.

The drawback: Many unused entries in the truck version.  And you
cannot just 'svn merge -r PREV:COMMITTED some.po; svn commit -m "Merge
trunk changes"'.  This may violate the rule that a branch can only
accept merges from trunk.

You may try the steps now.  There are two mismatching entries between
the trunk and the branch at the writing of this post (r11187).  One is
description for 'svnadmin recover', and the other is 'exported\n' in
svnversion/main.c.


plasma

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org