Re: gettext-based localization Benderjg@xxxxxx 14 Apr 2002 21:05 UTC

In a message dated 4/12/2002 3:43:11 PM Central Daylight Time,
xxxxxx@bothner.com writes:

>  compatible with it.  I suggest at least a quick look at the gettext
>  manual: http://www.gnu.org/manual/gettext/html_chapter/gettext_toc.html

I admit I am not a gettext expert, AT ALL. I will take a look a closer look
at it.

>  What I don't understand is how using a message tag (or a
>  message number) to identify a message instead of using the
>  message itself (in some primary language) as the tag helps with
>  any of the issues you mention.  You're just adding an extra
>  level of indirection, and while that is sometimes useful, here
>  you're just adding extra cognitive overhead managing the tags.

>From the descriptions of a gettext mechanism you have provided, I would have
calls like the following throughout my code:
   (getttext "(Critical): Link congestion"))

And you say that there are tools that would pull together this information
into a single file for translators and documentors, ok.

But if I were using this mechanism, I would (and would insist that the whole
project did so) define all these strings in a central module(s), on the order
of
   (module AlarmTags mzscheme
        (define LinkCong "(Critical): Link Congestion")
        ...
        (provide (all-defined))

>From one perspective, this might even be better than using message tags: at
least the compiler could complain when the identifiers are not bound.

But I wonder how gettext-style tools would handle this?

>   > But it also makes the process of writing customer documentation (both
>   > in the primary language and the various "foreign languages") easier
>   > when all such messages are in a single place.
>
>  In the gettext model, they are.  Each package has a .pot and one .po
>  file for each supported language.  These are generated from the sources,
>  using a utility program.

I should have been more clear: with the message-tags, the message texts would
ONLY be in a single central place. Consistency between code, the translators
and the customer documentation is a nightmare by any mechanism, as far as I
am concerned. To have the tags spread throughout the code as well as these
.pot files is just an added risk.

>  Let's not re-invent the wheel.  There is a standard used by lots of Free
>  Software.  It works.  A message translation SRFI really needs to be
>  compatible with it.  I suggest at least a quick look at the gettext
>  manual: http://www.gnu.org/manual/gettext/html_chapter/gettext_toc.html

Another data point for a well established mechanism is the Java API for
internationalization (http://java.sun.com/products/jdk/1.1/docs/guide/intl/).
They use strings instead of the more elegant symbols of Scheme/Lisp, but they
seem to come down on the side of message tags. The code has references to
strings that are resource names, where resource bundles provide the
English/French/whatever text of the message.

By the way, I don't per se disagree with having a SRFI that could be
implemented via gettext, but wouldn't implementing localization in Kawa be
easier via Java's internationalization mechanisms?

Jim Bender