Subject: Re: [PATCH] Internationalization of git-gui

From: Brett Schwarz <[email-masked]>
Date: Sat, 21 Jul 2007 09:29:56 -0700 (PDT)

> ----- Original Message ----
> From: Christian Stimming <[email-masked]>
> To: Brett Schwarz <[email-masked]>
> Cc: Paolo Ciarrocchi <[email-masked]>; Shawn O. Pearce <[email-masked]>; Johannes Schindelin <[email-masked]>; [email-masked]
> Sent: Friday, July 20, 2007 2:40:27 PM
> Subject: Re: [PATCH] Internationalization of git-gui
> 
> Am Freitag, 20. Juli 2007 20:34 schrieb Brett Schwarz:
> > After the glossary of terms has been create, it is easy to create the
> > catalog file (assuming we use Tcl's standard mechanism). Each locale should
> > have it's own file, named <locale_name>.msg (for example, es.msg for
> > spanish). Inside that file, you just create entries for each glossary term
> > (the below assumes that the msgcat namespace was imported):
> >
> >   mcset es Hello Hola
> >   mcset es "Hello %s" "Hola %s"
> 
> I beg your pardon, but I think you grossly misunderstood what I meant
> by "glossary". So before we end up in further confusion, let me clarify how
> the general translation approach works. I'll use gettext wording because
> that's what I know (from being the i18n guy in the gnucash project), but you
> can easily insert any other wording you like here.
> 

Ok, perhaps I did misunderstand you. From below, now I do understand...thanks.

> #1 For the translation in general, there is the set of all user-visible
> strings in the source language (here: english). In gettext terms this is
> called the "PO template file", git-gui.pot, also called the message template
> file. This set of to-be-translated strings needs to be extracted from the
> source code, which can be done by the xgettext program.
> 
> #2 For each target language, there is a human-readable mapping file that maps
> each source string (english) into the target language. In gettext terms this
> is the "PO file", de.po and it.po and ja.po and whatnot, also called the
> translation file. This is the *only* file translators actually work with.
> Gettext uses its PO file format here and a plethora of different tools exist
> to help translators editing these files. (Examples: emacs po-mode,
> KBabel, ...)
> 
> #3 For each target language, the translation files are converted to a
> (potentially not human-readable) "compiled" mapping file, which is then read
> at program runtime and used for the actual translation. For the gettext po
> file format, the msgfmt program can convert this to Tcl's .msg files.
> 
> If I understand correctly, your above suggestion implies that for Tcl msgcat,
> the file in #2 and #3 are one and the same? In my opinion this might make
> sense if and only if that file format is supported by at least as many
> translation tools and offers as flexible translation updates as gettext's po
> file format does. From my experience the po file format indeed offers a bunch
> of features that other translation file formats are missing but which are of
> significant help to the translator. That's why I would strongly suggest to do
> the actual translation inside a po file, and have it converted to the msg
> file afterwards.
> 

Yes, for the msgcat files, you create just the mapping files...that's it. No intermediate steps. So, a workflow would look something like this:

1) Somebody creates the initial "template" file. This is usually in the source's language (i.e. english). This too is just a msgcat file. Note that this file is not strictly necessary, but helps other translators.

2) A translator copies the template file, to their target language file, and edits the text:
    # cp en.msg es.msg
    # vi es.msg
    this
        mcset en Hello Hello
    get's changed to this
        mcset es Hello Hola
    etc

That's it. There is no compilation needed, and no need for a makefile entry.

Now, even though I think this approach is alot more simplier and straight forward, I do recognize that alot of people are probably accustomed to the po format, and since the actual generation of the msgcat files are only done by the maintainer, I don't really have anything against using the po format.

I know it's already been decided to use the po format, but I just wanted to make sure to follow up on this email.

Thanks,
    --brett

____________________________________________________________________________________
Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games.
http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow