I'm at a 12.2 box right now, but AFAIR this should work:
Copy /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi to /etc/hal/fdi/policy/ and edit it, replace "us" with your keyboard to get it functional with the X server.
EDIT: I think you have to remove the line from /etc/X11/xorg.conf to make that work.
To get German keyboard in runlevel 3 you can choose the right keymap during the install, and the installer will usually save it right. What the installer does is create the file /etc/rc.d/rc.keymap with the following content. And be sure to make the file executable (chmod 755 /etc/rc.d/rc.keymap).
Code:
#!/bin/sh
# Load the keyboard map. More maps are in /usr/share/kbd/keymaps.
if [ -x /usr/bin/loadkeys ]; then
/usr/bin/loadkeys de-latin1.map
fi
The third thing you have to do is what you already did, to change /etc/profile.d/lang.sh
Ah, and I think because you use a utf8 locale you have to append the line "unicode_start" to /etc/rc.d/rc.local.