On Thu, Mar 19, 2009 at 08:57:29AM +0800, Dongsheng Song wrote:
> 2009/3/18 Jens Seidel <jensseidel_at_users.sf.net>:
> > This works only if you are able to translate all new fuzzy strings at once
> > after updating the PO file. What if you want to update the file (or parts of
> > it) later? You have to dig into the history, use svn annotate, ...
I did not referred to changed source references such as the first line in
#: ../include/svn_error_codes.h:171
msgid "Bogus mime-type"
msgstr "Ungültiger Mime-Typ"
but to multiple changes in the msgid. If since the initial translation
5 changes happened to a string (e.g. a large help message) one would
need to perform 5 svn operations (remember that a stanza could also be
moved in the PO file, lines could be differently wrapped, ...).
Nevertheless I agree that often a single svn diff -cREV could be sufficient and
that many update-po calls require additional digging for affected revision
numbers. Having the old translated string as comment via --previous does
nevertheless not harm and avoids digging in the history at all, right?
And I suggest not to call update-po every day or week (some projects, such
as the Debian installer do this) but once (or maybe twice) before a release.
(Once before the "please update your translation" mail is sent out and
immediately before the final tarball is created.) This does *not* harm.
Do you use a very outdated version of gettext? --previous is supported
since version 0.16, from October 2006. From the gettext changelog:
* msgmerge has a new option --previous that has the effect of saving the
previous msgid of message when making them fuzzy. These previous msgids are
stored in the resulting PO file, using a pseudo-comment syntax like this:
#, fuzzy
#| msgid "too many arguments"
msgid "too few arguments"
msgstr "trop d'arguments"
The translator then only needs to compare the previous and the current
msgid ("too many arguments" and "too few arguments"), and infer which
parts of the translation she needs to change.
msgattrib has a new option --clear-previous that removes these #| lines.
> As I said, I don't think source references in PO files is necessary.
It is necessary for Subversion as many, many translation comments are
missing. I very often have to dig into the source to see how a string is
used. I have a few minor patches laying around ...
PO file format is indeed not suitable for ordinary patch based merging.
But there exists msgmerge ...
> On the contrary, in my opinion, source references should removed for
> minimize diffs.
I partly agree but as the repository size is probably no problem and using
source references is standard and the default I would prefer keeping it.
But I understand your arguments ...
> Otherwise, the output of 'svn annotate' is hard to read.
I normally ignore lines containing #:. Just use
svn annotate ko.po | grep -v " #: "
Are there real arguments against using --previous as default and calling
update-po once before a release? Please mention these.
Jens
Received on 2009-03-19 15:04:58 CET