[WINEDOCS] Add French translation for Wine's FAQ
Francois Gouget
fgouget at free.fr
Fri May 13 04:47:56 CDT 2005
On Fri, 13 May 2005, Dimi Paun wrote:
> On Thu, 2005-05-12 at 16:49 +0200, Francois Gouget wrote:
>> This patch adds the framework for translating Wine's documentation and
>> adds a translation of the FAQ to French as a demonstration.
>
> No compressed patches, please.
I know, I only compressed it because of the size.
> Also, the patch is big, and some things are cleaner than others.
> Let's break it down a bit.
Ok.
>> Here is what the framework does:
>>
>> * first it moves most of en/Makefile.in to Make.rules.in so that this
>> code can be shared across the various translations.
>
> Well, the reason I didn't do that is for cases like incomplete
> translations.
>
> We can move to Make.rules.in:
> -- DB2* defines
> -- the targets (docs, pdf, etc)
> -- the tar rules
Ok, I'll start with just the above.
I had moved the WINE*_SRCS variables to Make.rules.in because they are
needed to have proper dependencies in the po translations. Raw SGML
translation can use it even if they only translate one book. The only
case where it could be a problem for raw SGML translations is if it
translates only part of a book, i.e. if it translates
wineusr-configuring.sgml but not wineusr-fonts.sgml. I'm not sure how
likely or desirable that is. Maybe we could generate empty/placeholder
files to deal with this case.
The alternative is to duplicate the SGML source file list into each
po Makefile or in Makepo.rules.in.
[...]
>> * the actual translation is stored in a po file, one per documentation
>> document. So for French we currently have fr/wine-faq.po and later we
>> will also have wineusr-guide.po and winelib-guide.po.
>
> I'm not too hot about it to be honest. SGML is hard on the eye, this .po
> stuff seems to be even worse. But maybe it's easier to work with due to
> the various tools. If it makes it easier for you to maintain the
> translation, I'm cool with it.
It is *very much* easier. Just one example. At CodeWeavers we have a
German translation of the CrossOver documentation. Initially it was in
SGML. But I don't speak German so I had no idea what was up-to-date and
what was not, which means it was impossible to say whether it was 90%
obsolete (not shippable) or >90% up-to-date. Using the system of CVS
version tracking you proposed could give an indication on a per-file
basis but that's pretty coarse (wineusr: 10 files, 9% resolution, it's
worse for wine-faq). With po files I know which paragraphs are
up-to-date and which are not (1373 paragraphs, 0.07% resolution).
> However, I'm not sure this will be the
> preferred way for all translators out there, so we shouldn't force it
> on everybody.
With the framework as I made it, non-po translations can use
Make.rules.in and then things work exactly the same as for the English
documentation.
>> * Using po files lets us track exactly which translation paragraphs
>> are up to date and which are not. It also lets us leverage the tools
>> that have been developed around that format such as KBabel and maybe
>> even make it possible for contributors to translate the documentation
>> online using tools like Pootle (http://pootle.wordforge.org/), Kartouche
>> (http://i18n.kde.org/tools/kartouche/) or Rosetta
>> (https://launchpad.ubuntu.com/rosetta).
>
> This is great, but I doubt such tools can tell you *what* changed when
> something did change (the *what* here is "how did paragraph change")
It doesn't but then even a basic diff won't tell you that. A basic diff
will also get confused and tell you most of the file changed if lines
got rewrapped. PO files don't care.
>> * The link between the SGML files and the PO files and back is handled
>> by PO4A (http://po4a.alioth.debian.org/).
>
> I'm a bit worried about this one. It's new, debian specific, etc.
> There's no .rpm for it, and that makes me nervous. Tools like this
> must be easily available.
The project is reasonably active. And it's just perl so installation is
pretty trivial. We could even stick it in a po4a/ directory in CVS and
use it from there.
> Even if we go for it, maybe we'll have to keep the generated .sgml
> in CVS (just like configure).
That's a possibility.
>> * So configure.ac checks for the po4a tools. If they are missing then
>> the translated documentation cannot be built. I also added a
>> Makepo.rules.in that should be used by Makefiles building translated
>> documentation. What it does is just include the main Make.rules.in file
>> and add a couple of rules for generating SGML using PO files, and
>> extending the 'clean' target. This last bit cannot be put in the
>> top-level Make.rules.in because it does '$(RM) $(ALLBOOKS:%=%.sgml)'
>> which would be unfortunate in the en directory.
>
> The $(RM)... can remain local, and the rules can go in Make.rules.in.
> It would be confusing to have too many rule files.
Ok.
>> sed -e 's/^<\(article .*\) lang="en">$/<\1 lang="fr">/' -e
>> 's/^<\(book .*\) lang="en">$/<\1 lang="fr">/' wine-faq.posgml
>> >wine-faq.sgml || (rm -f wine-faq.sgml && false)
>
> Nasty. BTW, the 'lang="en"' part of the patch can go in separately too.
Ok, will submit it separately.
--
Francois Gouget fgouget at free.fr http://fgouget.free.fr/
Computers are like airconditioners
They stop working properly if you open WINDOWS
More information about the wine-devel
mailing list