*cited from KITTENC.TXT: KITTENC - catgets/kittengets compatible resource compiler KITTENC 'compiles' language resources to strings and attaches these strings to the executable program such that the program can retrieve these strings at execution time. This way it is enough to copy a file to another place WITHOUT taking care that the resources (in the NLS directory) are also copied. KITTENC has 2 basic modes of operation: KITTENC fdisk.exe ATTACH NLS\fdisk.DE attaches the german resources to fdisk.exe, and makes german the default language for fdisk.exe. KITTENC fdisk.exe ATTACH NLS\fdisk.?? attaches the all resources to fdisk.exe, and then requires the definition of SET LANG=DE if you want german messages. this saves a lot of disk space compared old KITTEN/NLS approach as everything is stored in a single file with cluster slack exactly once, not once for each message file. also, the new runtime KITTEN.C is 600 byte smaller then the original as all the intelligence, parsing etc. are done at compile time. it's implementation also saves a few byte for each message translation call bcause clever;) USAGE: replace old KITTEN.H by new KITTEN.H replace old KITTEN.C by new KITTEN.C add something similar to your main() function main(int argc, char *argv[]) { { static char nls_buffer[4000]; kittenopen(argv[0], nls_buffer, sizeof(nls_buffer)); } so kitten has some room to store messages and not forcing to call malloc(). compile add as last step KITTENC fdisk.exe ATTACH NLS\fdisk.?? where NLS\fdisk.?? are the aasumed language resources for your program to your build instructions. that should be it. now set LANG=ES and enjoy your spanish translation ********* building KITTENC.EXE *********** to build DOS KITTENC.EXE, run BUILD.BAT for a watcom executable for a WINDOWS executable (and easier developing) start KITTENC.DSW with MS Visual Studio or compatible environment. however it should be easy to port to a diffenet environment as the process is as complicated as wcl kittenc.c kitten.c -k10000 -d0 if errorlevel 1 goto END :: depending on OS and compiler :: executables are write protected while they execute copy kittenc.exe temp.exe /Y kittenc temp.exe attach nls\kittenc.?? copy temp.exe kittenc.exe ************************************************** download from www.drivesnapshot.de/freedos/kittenc1.zip the project is mostly done; time for feedback. btw: the code for the new KITTEN is down to ~500, but requires sprintf() and printf() Tom