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