I've been following this discussion, and it seems that the best approach
would be to have a new interface to klogd, that puts out '[nn]' prefixed
strings, followed by a default english interpretation. This way all
translating lookup can be done in user space...
(I just cam up with this - there's probably lots of holes in it..)
-- Old code that hasn't been changed yet --
...
printk(KERN_ERR "sc887CT: Disk hosage has occured on platter %d\n",platterid);
...
-- New and Improved! Visual Internationalized(TM) Code++!
...
#define KID_DEVICE_AHA9800 (KTYP_BUS_SCSI|0x7381)
#define KID_DEVICE_SC887CT (KTYP_DEVICE_DISK|0x7382) /* 0x7382 is unique */
#define KID_DEVICE_MACH128 (KTYP_DEVICE_DISPLAY|0x7383)
...
klogmsg(KID_DEVICE_AHA9800,KMSG_ERR,
KMSG_BUS_FAILURE|KMSG_SEEK_ERROR,seeknum,seekdata);
---- Kernel to klogd-lang -----
<6>sc887CT: Disk hosage has occured on platter 3
[6] 0x12347382 0x07600020 0x00000005 0x00000201
<6>AHA9800: Scsi Bus Failure: Seek error on seek 5, Host 0 Channel 0 Host 2 Lun 1
---- Klogd-lang to syslogd -----
========= No internationalization =============
<6>sc887CT: Disk hosage has occured on platter 3
<6>AHA9800: Scsi Bus Failure: Seek error on seek 5, Host 0 Channel 0 Host 2 Lun 1
========= 'Travel' internationalization ===========
<6>sc887CT: Disk hosage has occured on platter 3
<6>AHA9800: The Scsi greyhound has missed the stop at mile 5 of Highway 21 off of I00
========= 'VMS' internationalization =============
<6>sc887CT: Disk hosage has occured on platter 3
<6>AHA9800: SCSI-BUS-FAIL: SEEKERR DRIVE 0-0-2-1
etc...
-- Jason McMullan - Research Programmer, Robotics Institute, CMUMe: http://www.ul.cs.cmu.edu/~jmcc Linux GGI: http://synergy.caltech.edu/~ggi