[standards-jig] I18N (Internationalization)

Max Horn max at quendi.de
Thu Mar 14 16:00:17 UTC 2002

First, let me tell you why I think I18N is important: there are many 
jabber components that have to interact with users. Some examples 
include iq:register, iq:search; iq:gateway, and soon maybe x:data. 
These all have to contain some text, for instructions, field labels 
etc. Currently, all of these are usually in english. This is OK while 
Jabber is just a geek thing, but to target the broad masses, I18N of 
so central things as searching for buddies is crucial for the 
survival of Jabber. Hence we have to support it, and we better start 
work on this now than later (actually, it is already quite late, 
IMHO, considering we talked about this 6 months ago).

I browsed through my private list archive. and found that Julian and 
I discussed this topic here before. So, here's an old message from 
Julian, and a (new, different from the orignal) reply by me. If I 
missed some development in this area in the past months, please 
excuse me and point me to a place where I can get additional 

At 14:06 Uhr -0500 04.11.2001, Julian Missig wrote:
>Well, I suggested a *long* time ago that the initial stream:stream 
>should carry an xml:lang attribute, which the server can then 
>identify the language of a session with (and if we want to get more 
>complicated, we can allow xml:lang anywhere in the session - if they 
>do an iq request with an xml:lang different from the session 
>xml:lang, the response should be in the same xml:lang... but that 
>might be a bit much).

I think it's important to allow clients to tag xml:lang on any 
message/presence/iq for now, at least as long as there is no direct 
support for this in the server. Otherwise, we can never make use of 
this until we get servers supporting this feature. If we allow it, 
then we can support xml:lang in clients *now* and get better support 
for the future.

>The only "issue" with xml:lang is that in the examples in the XML 
>recommendation they use "de-DE" instead of "de_DE".
>Other than that, this is precisely what xml:lang is meant for, and I 
>see no reason not to make that the attribute we use.
>Reading you message again... if the xml:lang is done on the initial 
>stream:stream, then the server can tack on xml:lang to the 
><presence> and <message> in two cases:
>* if it's leaving this server, then the other server can determine 
>if xml:lang is necessary
>* if it's staying on the same server, it can determine if the other 
>user is in the same xml:lang or not
>This way, clients would see xml:lang only if it's *different* from 
>their specified xml:lang.

Probably true, though not crucial right now. In fact, xml:lang will 
probably ignored by most clients (except those which wish to hook in 
a service like BabelFish for translation). Far more important is to 
allow service components, like the JUD, to use the information to 
send out localized forms.

>There are several ways to do this, I just want to see xml:lang 
>specified with the initial stream connection (or maybe 
>authentication), and would like it if the client didn't have to tack 
>on xml:lang to everything, following the "let the server do the 
>work" philosophy.

Basically, I think this is a very good proposal. I am willing to help 
with a JEP for this, and I'd instantly implement anything in this 
area in JabberFoX (and Julian said the same for Gabber in the past).


Max Horn
Software Developer

email: <mailto:max at quendi.de>
phone: (+49) 6151-494890

More information about the Standards mailing list