From: Junio C Hamano <gitster@pobox.com>
To: "Shawn O. Pearce" <spearce@spearce.org>
Cc: "Peter Karlsson" <peter@softwolves.pp.se>,
しらいしななこ <nanako3@bluebottle.com>,
git@vger.kernel.org
Subject: Re: [PATCH] Update Japanese translation
Date: Sat, 15 Mar 2008 00:43:34 -0700 [thread overview]
Message-ID: <7v4pb8o2jd.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <20080315062734.GG8410@spearce.org> (Shawn O. Pearce's message of "Sat, 15 Mar 2008 02:27:35 -0400")
"Shawn O. Pearce" <spearce@spearce.org> writes:
> Junio C Hamano <gitster@pobox.com> wrote:
> ...
>> Shawn, I think you guys should nail down the workflow right first, and
>> then mention the above a bit more prominently to avoid future accidents
>> like this.
>>
>> It is perfectly fine if Peter regenerated the POT file for everybody as
>> the i18n coordinator, but the thing is, I think that regeneration should
>> have been done *before* you asked for translators to send in the
>> translation updates, not _after_ they have fetched from you in response to
>> your call for help and started working.
>
> Yes. I clearly dropped the ball on that one. I did try by asking
> for assistance _before_ a tagged release, but I failed to make sure
> the POT was up to date first.
After looking at the process and README once again, I think the problem
was not Peter's update to POT file itself. Keeping POT up to date
relative to the software is absolutely necessary. What was unwarranted
was that the same commit updated language files by running msgmerge before
checking if there is any outstanding translation work. If we assume that
the translators do not have access to msgmerge, that is a good service to
them (the less they have to do, the better), but otherwise, it is better
to be leave po/${language}.po files alone.
How about doing something like this?
po/README | 62 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 50 insertions(+), 12 deletions(-)
diff --git a/po/README b/po/README
index 9d8b736..8264079 100644
--- a/po/README
+++ b/po/README
@@ -178,18 +178,6 @@ step.
$ msgmerge -U po/af.po po/git-gui.pot
-[NEEDSWORK: who is responsible for updating po/git-gui.pot file by
-running xgettext? IIRC, Christian recommended against running it
-nilly-willy because it can become a source of unnecessary merge
-conflicts. Perhaps we should mention something like "
-
-The po/git-gui.pot file is updated by the internationalization
-coordinator from time to time. You _could_ update it yourself, but
-translators are discouraged from doing so because we would want all
-language teams to be working off of the same version of git-gui.pot.
-
-" here?]
-
This updates po/af.po (again, replace "af" with your language
code) so that it contains msgid lines (i.e. the original) that
your translation did not have before. There are a few things to
@@ -207,3 +195,53 @@ watch out for:
- New messages added to the software will have msgstr lines with empty
strings. You would need to translate them.
+
+The po/git-gui.pot file is updated by the internationalization
+coordinator from time to time. You _could_ update it yourself, but
+translators are discouraged from doing so because we would want all
+language teams to be working off of the same version of git-gui.pot.
+
+****************************************************************
+
+This section is a note to the internationalization coordinator, and
+translators do not have to worry about it too much.
+
+The message template file po/git-gui.pot needs to be kept up to date
+relative to the software the translations apply to, and it is the
+responsibility of the internationalization coordinator.
+
+When updating po/git-gui.pot file, however, _never_ run "msgmerge -U
+po/xx.po" for individual language translations, unless you are absolutely
+sure that there is no outstanding work on translation for language xx.
+Doing so will create unnecessary merge conflicts and force needless
+re-translation on translators. The translator however may not have access
+to the msgmerge tool, in which case the coordinator may run it for the
+translator as a service.
+
+But mistakes do happen. Suppose a translation was based on an older
+version X, the POT file was updated at version Y and then msgmerge was run
+at version Z for the language, and the translator sent in a patch based on
+version X:
+
+ ? translated
+ /
+ ---X---Y---Z (master)
+
+The coordinator could recover from such a mistake by first applying the
+patch to X, replace the translated file in Z, and then running msgmerge
+again based on the updated POT file and commit the result. The sequence
+would look like this:
+
+ $ git checkout X
+ $ git am -s xx.patch
+ $ git checkout master
+ $ git checkout HEAD@{1} po/xx.po
+ $ msgmerge -U po/xx.po po/git-gui.pot
+ $ git commit -c HEAD@{1} po/xx.po
+
+State in the message that the translated messages are based on a slightly
+older version, and msgmerge was run to incorporate changes to message
+templates from the updated POT file. The result needs to be further
+translated, but at least the messages that were updated by the patch that
+were not changed by the POT update will survive the process and do not
+need to be re-translated.
next prev parent reply other threads:[~2008-03-15 7:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-14 13:03 [PATCH] Update Japanese translation しらいしななこ
2008-03-14 22:25 ` [PATCH] git-gui: update russian translation Alex Riesen
2008-03-15 5:08 ` [PATCH] Update Japanese translation Shawn O. Pearce
2008-03-15 5:51 ` Junio C Hamano
2008-03-15 6:27 ` Shawn O. Pearce
2008-03-15 7:43 ` Junio C Hamano [this message]
2008-03-16 4:25 ` Shawn O. Pearce
2008-03-16 5:46 ` Junio C Hamano
2008-03-16 13:08 ` Peter Karlsson
2008-03-15 11:12 ` しらいしななこ
-- strict thread matches above, loose matches on Subject: below --
2015-11-03 12:47 [PATCH] Update japanese translation miurahr
2015-11-03 20:40 ` Junio C Hamano
2015-11-06 14:36 ` Hiroshi Miura
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7v4pb8o2jd.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=nanako3@bluebottle.com \
--cc=peter@softwolves.pp.se \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).