Internationalization questions

How do I set a xxx keymap? (xxx = German, French, Swedish, ...)

(written by Christian Steigies)

You will need the "loadkeys" command, which is part of the kbd package.

kbd is maintained by Andries E. Brouwer <aeb@cwi.nl> and you can find it at ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/ and ftp://ftp.win.tue.nl/pub/linux/util/. The current version is 0.93.

On the SuSE aktuell (March 1997) an older version is on CD 2 as /kernel/kbd-0.92.tar.gz

Install kbd (gunzip and untar the archive, preferably in /usr/local/src, then "make") and "make install". If you use version 0.92 (or lower?) you need to remove resizeicons from the Makefile). You will then have all the executables in the right place and a whole lot of keymaps in /usr/lib/kbd/keytables/.

As of version 0.93 these keytables are more or less useless for m68k users, since they are for PC-style keyboards. Loading one of these on an Amiga or Atari screws up the keyboard layout so that its virtually unusable. Later versions include some Amiga and Atari keymaps you can work from.

You need to make one by yourself or get one from ftp://ftp.uni-erlangen.de/pub/Linux/680x0/bin/system/keymaps/, where Roman Hodek has started collecting Amiga and Atari keymaps. Get the keymap you want to install, say de-amiga.map, and put it in /usr/lib/kbd/keytables/ (In newer kbd versions, hopefully m68k keymaps will also be included.)

Typing "loadkeys de-amiga" will then load this keymap. To load this keymap during boot, create a rc.loadkeys in /etc/rc.d like (don't include the lines starting with ---):

--- rc.loadkeys ---
#! /bin/sh
#
# rc.loadkeys      load German keyboard map
#
# Version:         @(#)/etc/rc.d/rc.loadkeys
#
 
loadkeys de-amiga
--- rc.loadkeys ---

Debian/m68k has a more automated way of handling the keymaps (through the kbd Debian package). The package includes several Amiga and Atari keymaps for various layouts.

How do I create a xxx keymap?

(written by Christian Steigies)

The "showkey" command (part of kbd) will tell you which scancode is generated for every key you press, just write down what you want to be generated by this key ;-)

The easiest way is to get a keymap for your computer and only change the keys you want to be mapped differently. "dumpkeys" shows you the current keyboard mapping, "dumpkeys -l" will show you all the names of the symbols that can be mapped to the keyboard. "man keytables" tells more about creating keytables.

When you have made a keymap, contact Roman Hodek <rnhodek@informatik.uni-erlangen.de> so you can upload it.

How do I set up my shell to use non-ASCII characters?

(written by Christian Steigies and Haidinger Walter)

To type umlauts and more in bash, create an .inputrc in your home dir with:

--- .inputrc ---
set meta-flag On
set convert-meta Off
set output-meta On
--- .inputrc ---

Within tcsh, you need to use the following procedure:

You need an 8-bit clean tcsh with nls support along with the locale package.

In your tcsh, type "echo $version". It should say something like tcsh 6.07.02 (Astron) 1996-10-27 (m68k-unknown-linux) options 8b,nls,dl,= al

Only the options are important. It should show at least "8b" and "nls". If not, you need to recompile tcsh, but, AFAIK, the tcsh binary on the Linux/m68k mirrors has both options set.

How do I use locales?

(written by Haidinger Walter)

To use locale, you need at least libc-5.4.17 (or libc6). I'd recommend to install the lib/libc-5.4.23.bin.tar.gz package if you haven't already. 5.4.23 is a bug-fix release to 5.4.17 and does not introduce new features.

Next, you need the locale database. I know three sources:

Whether you have the SuSE distribution or not, I strongly recommend that you read the mini-HOWTO 'Locales' at least once. It not only describes how to get, build and install the locale package, but also the system requirements and, most important, the usage of the associated commands and environment variables!

So, just follow the instructions of the 'Locales' mini-HOWTO to setup the locale-package and customize it to your system. Finally, set your environment variables to the appropriate values and put them into your .tcshrc.

If you cannot wait that long, have a look at /usr/share/i18n/locales. If you're German, try (in tcsh):

setenv LC_ALL  de_DE
setenv LC_LANG de_DE

bash users would use:

LC_ALL=de_DE
LC_LANG=de_DE
export LC_ALL LC_LANG

How do I use my keymap in X?

(thanks to Boris Bojic for mentioning this on linux-apus)

You need to disable the X Keyboard Extension; add the following line to your XF86Config file:

XkbDisable