spurious .po updates
This discussion is connected to the gimp-docs-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.
This is a read-only list on gimpusers.com so this discussion thread is read-only, too.
spurious .po updates | Vitaly Lomov | 18 Jan 16:16 |
spurious .po updates | Sven Neumann | 18 Jan 17:04 |
spurious .po updates | Ulf-D. Ehlert | 19 Jan 18:04 |
spurious .po updates | Sven Neumann | 21 Jan 22:29 |
spurious .po updates | Marco Ciampa | 22 Jan 08:06 |
spurious .po updates | Ulf-D. Ehlert | 24 Jan 13:40 |
spurious .po updates | Sven Neumann | 25 Jan 13:37 |
spurious .po updates | Ulf-D. Ehlert | 19 Jan 18:03 |
spurious .po updates
After I built the manual, I noticed that a lot of .po files got
updated (svn status), even though the english text is the same. A
typical example is this (after running diff):
-msgid ""
-"See also s with the
msgid. If I commit this, people will think I am a prolific writer :)
and the ChangeLog will not reflect the work I actually did. Any
suggestions? I am aware that I can update individual po files with
some Makefile magic, but how can I build the html and avoid the
problem described?
spurious .po updates
Hi,
On Sun, 2009-01-18 at 15:16 +0000, Vitaly Lomov wrote:
After I built the manual, I noticed that a lot of .po files got updated (svn status), even though the english text is the same. A typical example is this (after running diff): -msgid ""
-"See also
Building the manual should never update any po files. If that is the case, then you guys should fix that. The update of po files should be left to the translators. That's how it works usually and there are good reasons to do it this way. Ulf, can you change this?
Sven
spurious .po updates
Vitaly Lomov (Sonntag, 18. Januar 2009, 16:16):
After I built the manual, I noticed that a lot of .po files got updated (svn status), even though the english text is the same. A typical example is this (after running diff): -msgid ""
-"See also
The po files will be updated, if and only if the corresponding pot files has been changed (which will be updated if and only if the xml source file has been changed).
The above text is obviously from "src/using/docks.xml", which has been modified on 2009-01-12 (one week ago). That's why it has been updated...
That is, before the text started on it's own line, now it's with the msgid.
... but I can't explain this particular difference. I tried
touch src/using/docks.xml &&
make -f Makefile.GNU po/de/using/docks.po
and get
grep -B1 'See also' po/de/using/docks.po
msgid ""
"See also Dialogs and Docking"
so here's no such difference.
Which gettext version do you use? Maybe different gettext versions produce different output? (I have gettext-0.17 installed.)
If I commit this, people will think I am a prolific writer :) and the ChangeLog will not reflect the work I actually did. Any suggestions? I am aware that I can update individual po files with some Makefile magic, but how can I build the html and avoid the problem described?
Hmm, I do not work directly on the SVN working copy, instead I have another copy on "/tmp" and commit only files I have edited. But we can't expect everybody to work this way, so it seems that we really have a problem here...
Bye,
Ulf
spurious .po updates
Sven Neumann (Sonntag, 18. Januar 2009, 17:04):
Building the manual should never update any po files. If that is the case, then you guys should fix that. The update of po files should be left to the translators. That's how it works usually and there are good reasons to do it this way. Ulf, can you change this?
It should be no problem to change this, building html (& pdf, odf) without updating anything.
For example, we can use make's conditional feature and change Makefiles
so that
make [-f Makefile.GNU] html-xx
builds the manual without updating xml and/or po,
make [-f Makefile.GNU] html-xx UPDATE=all (or: RELEASE=yes)
build manual with updating everything (current behaviour).
(Any better ideas are always welcome...)
But note that we lose a powerful make feature: updating exactly what has
to be updated.
Obviously updating po files automatically is a double-edged sword, but
without that feature working will be less comfortable.
BTW, other targets are affected as well, e.g. "make validate-xx" will also update po and xml files if necessary.
So we probably would have to do everything manually: make po-xx, make po/xx/path/to/pofile.po, etc.
Our next major task will be to merge po files (e.g. one po file per directory). This won't solve anything, but should reduce the noise.
Bye, Ulf
spurious .po updates
Hi,
On Mon, 2009-01-19 at 18:04 +0100, Ulf-D. Ehlert wrote:
Obviously updating po files automatically is a double-edged sword, but without that feature working will be less comfortable.
I can only speak for what I know about how po files are handled in an application like GIMP. There the po files used to be updated (and the updated files committed) on 'make dist'. In other words, when making a release. This was changed some years ago because it used to cause a lot of trouble for translators. Imagine a translator working on the po file. After spending several hours, if not days, she wants to commit the changed file to SVN. If someone else changed the file in the meantime, the result is a terrible conflict which is rather difficult to resolve. This means losing a lot of work. Quite often this also means losing a translator. You should definitely try to avoid that.
Sven
spurious .po updates
On Wed, Jan 21, 2009 at 10:29:58PM +0100, Sven Neumann wrote:
Hi,
On Mon, 2009-01-19 at 18:04 +0100, Ulf-D. Ehlert wrote:
Obviously updating po files automatically is a double-edged sword, but without that feature working will be less comfortable.
I can only speak for what I know about how po files are handled in an application like GIMP. There the po files used to be updated (and the updated files committed) on 'make dist'. In other words, when making a release. This was changed some years ago because it used to cause a lot of trouble for translators. Imagine a translator working on the po file. After spending several hours, if not days, she wants to commit the changed file to SVN. If someone else changed the file in the meantime, the result is a terrible conflict which is rather difficult to resolve. This means losing a lot of work. Quite often this also means losing a translator. You should definitely try to avoid that.
Agree 100%. Only translators shold update po files. This is what
intltool-update xx
is meant to (where xx is the language code). It should be a similar mechanism for the GIMP manual.
Just my 2 eurocents: IMHO when you do a simple make it should be a reminder message that hits the translator to update the proper po files before translating reminding he/she how to do it.
bye
spurious .po updates
Marco Ciampa (Donnerstag, 22. Januar 2009, 08:06):
Agree 100%. Only translators shold update po files.
We *are* the translators. Unlike the GIMP application, there are no developers editing C source files and thus adding daily changes (like changed line numbers) to the po files. (Oh god, we're on our own... )
This is what
intltool-update xx
is meant to (where xx is the language code). It should be a similar mechanism for the GIMP manual.
'make po-xx' updates po files for language "xx".
Typically nobody else but you updates the Italien po files. The problem are the po files you didn't edit and don't want to be committed.
Just my 2 eurocents: IMHO when you do a simple make it should be a reminder message that hits the translator to update the proper po files before translating reminding he/she how to do it.
So when do you want to get this message? Should 'make po-xx' just print "Warning: po/xx/path/to/pofile.po is not up-to-date"? Should we change it so that only "make po/xx/path/to/pofile.po" will update this file?
More general: Which commands do we really need, and what do you expect them to do? Which command(s) should update po files, which command(s) shouldn't? (Apparently 'make html-xx' should not update by default...)
Maybe I should first illustrate how the build process works:
In our Makefiles, we have a set of rules which let 'make' determine which files to update and how to do that, e.g.
any-po-file: corresponding-pot-file commands to create/update any-po-file or to do whatever we want
If a po file (here: "any-po-file") is older than its prerequisite pot file (here: "corresponding-pot-file"), the commands will be executed and (usually) the target (here: the po file) will be updated.
There are similar rules for pot files (to be updated if older than source files) and localized xml files (if older than po files).
SOURCE --> POT --> PO --> XML --> HTML/PDF/ODF
where updates are triggered "from right to left", e.g. 'make html' will
update xml files if necessary, making/updating xml files will update po
files if necessary etc.
So editing a source file causes several updates.
It's easy to change this so that po files won't be updated by default, e.g. using different commands depending on a 'make' variable. Then, for example,
make po-xx
or
make po/xx/path/to/pofile.po
will print warning(s),
make po-xx UPDATE=yes
or
make po/xx/path/to/pofile.po UPDATE=yes
will update (possibly all) po file(s).
That's a simple way to prevent 'make' updating too many po files, but
it's not very comfortable. Fine with me, but I don't know if you would
like this...
(Should we consider adding wrapper scripts...?)
So are there any answers, comments, ideas, suggestions, or feature requests?
Bye,
Ulf
spurious .po updates
Hi,
On Sat, 2009-01-24 at 13:40 +0100, Ulf-D. Ehlert wrote:
Marco Ciampa (Donnerstag, 22. Januar 2009, 08:06):
Agree 100%. Only translators shold update po files.
We *are* the translators. Unlike the GIMP application, there are no developers editing C source files and thus adding daily changes (like changed line numbers) to the po files. (Oh god, we're on our own... )
No, you are not. You are the content writers. You are editing the original content, changing the text that is going to be translated by the hordes of translators teams waiting at l10n.gnome.org. Most translators of the GIMP user manual will not even checkout the gimp-help package. They will download the po files from l10n.gnome.org and ask their translation team leader to commit their translation back to the version control system.
Sven