Since I live in a country where we use more letters than they do in the big country west of us I have had the dubious pleasure to spend quite a lot of time internationalizing applications. This page contains a list of what I have done.

Note that these patches are provided AS IS. They are not officially recognized by anyone. But they are all in use at our site (or at least has been).


The c-library contains routines which are used to classify characters (isprint() et al) as well as routines for converting between upper and lower case letters (toupper() and tolower()). That is the code is there but it must have some data which describes the current character set. Compiled into the c-library are the definitions for US-ASCII. If you want the library to know how to handle other character sets you have to supply the needed definitions. These definitions is what this package contains.

People are still hacking away at the locale code in libc som I am shooting at a moving target. That is why there currently are two different set of datafiles. There will probably be more in the future.

The following files are available:

Installation instructions
This is a short file which explains how to install the other files.
locdef5.0-5.1.tar.gz (1.2k)
Locale definitions for libc versions 5.0 up to but not including 5.1.
locdef5.1-.tar.gz (18k)
Locale definitions for libc versions 5.1 and later.
It may be worth to note that locdef5.0-5.1.tar.gz and locdef5.1-.tar.gz installs in different places so it is safe to install both (i.e. they will NOT interfere with each other).

More information can be found at


X Version 11 relese 6 actually has support for internationalized clients, and after fix-04 it even works :-). Unfortunately they didn't internationalize all clients, most notably xterm. Below follows those three fixes I have made.
On certain Sun keyboards there are "dead" keys (those with a small square and a punctuation character above it). To support these you have to patch the compose table. To apply this patch you should go to the top X11R6 directory and run "patch < iso8859-1.patch".

This is a very small patch which makes xclipboard accept composed keys. To apply this patch you should go to the top X11R6 directory and run "patch < xclipboard.c.patch".

The most important patch is this which internationalizes xterm. To apply this go to the xterm source directory (.../XV11R6/xc/programs/xterm) and run "patch < xterm.i18n.patch". I have submitted this patch to the XConsortium, and perhaps it will become official some day.


The Sun server in X11R5 supported just a couple of keyboards (Type2, Type3 and Type4 US). I added support for type 5 keyboards and all national keyboard layouts that Sun ships. While I was hacking away in the server I also added support for the Compose and NumLock keys. This support is not pretty, and I hope it will die eventually as people upgrade to X11R6. But if you have to use release 5 you can probably benefit from this patch.

The patch is sunkbd.930314.tar.Z and it contains a README-file which explains the installation.

Tk 3.6

I have patched Tk3.6 to use the internationalization routines in XV11R6 This patch is not perfect but it is here: tk36.i18n.patch. To apply just go to the Tk3.6 source directory and run "patch < tk36.i18n.patch".

Fortunately Dr. Ousterhout has included this functionality in Tk4 (tk4.0b2 and later), so this patch shouldn't really be needed.

Last modified 2007-04-21 17:59:51 by MaF.