Hi!
Just thought I'd throw another piece of code out
to the world, since it was useful for me and may
be useful to you.
http://icculus.org/~aspirin/findlocale/
This is a self-contained C module for attempting to
detect the primary language preference of the user
on unixoids and win32.
This is pertinent to game development because games
are examples of applications which will usually
handle their own string-drawing and resource-bundling
and whose cores aren't necessarily in a C-alike, so
can't/won't necessarily leverage l10n mechanisms
provided by their operating system and its native
UI toolkits.
As the readme indicates, findlocale won't identify
/ translate strings; that is out-of-scope. But I
hope that it's a reasonable cross-platform basis for
making the decision of which l10n pack to use by
default, whatever app-specific form that may take.