Alright my friends. I've made a bunch of changes to support these translations, and it would be great if a couple of you could take them for a spin.
I have implemented user home directories (for everyone except 'admin') under /users.
There is now a config file called environment.conf. There's one for the system as a whole, in /system/config/environment.conf.
User-specific settings (.conf files) go in /users/<username>/config. The admin account uses the system settings for everything.
At login time, the kernel first loads environment variables from the system environment.conf file, then overrides them with any found in the user's home directory.
The environment variable 'LANG' specifies the user's language choice. Locale-specific things, such as binary .mo message (language) files, are installed under /system/locale.
I'm still working to integrate language choice - for the user at login time, and for the system at install time, into the programs. So far, I've created a 'language chooser' dialog window that can be invoked from programs, and I've built that into the 'User Manager' (/programs/users) program. You'll find a 'set language' button there now.
To test things out in the current form, you should login to the system as admin, start up the user manager, create a new user, and then select a language for him. Log out, and back in as the user you created. The user environment propagates down through a process tree, so logging in will set it for everything that follows, but you can also open a command window, use the 'setenv' command to set 'LANG', and then any programs you launch from the command line will inherit that. You can also set it system-wide in /system/config/environment.conf, but I'm still working on making that affect everything, such as the initial login windows.
It looks pretty good! Could you guys click around, try things out, and possibly update the .po files with any missing strings? It looks like the 'View' program is missing some things, for example. Note that the .po files are now saved with the ISO-8859-15 character set. Visopsys doesn't support UTF-8 yet. I've created a couple of scripts, utils/makepot.sh and utils/mergepot.sh in the source tree, for automating updates. makepot.sh is designed for individual program source files, though; you have to do manual xgettext command when you want to combine messages from a bunch of different source files into a single .pot, a la libwindow.pot.
Of course, a lot of the things the user sees are defined in the config files, such as /system/config/desktop.conf, etc. Any chance you guys could translate those? I'll work out a system to use different ones, based on the current language.
Source code zipped here: http://visopsys.org/files/visopsys/viso ... 09-src.zip