Hi Paul,
> 1) Do you know of a batch file or scripting way to change to a specific
> language for non-Unicode applications?
The only way I know is to pass an XML file as parameter to intl.cpl:
http://www.microsoft.com/globaldev/v...iguration.mspx
The "SystemLocale" element of the XML file sets the language to use, for
non-Unicode programs.
As Michael Kaplan explained in one of his blog entries - updating the locale
involves complex logic which isn't exposed as a script-level API. In
VBScript you can query the locale with GetLocale:
http://msdn2.microsoft.com/en-us/library/d457t70w.aspx
... but you can't SET the locale with a "SetLocale". Instead, you need to
call the complex logic embedded in intl.cpl
> 2) Some languages like Maltese, don't appear in the long list of
> languages. Is that because Maltese is a Unicode-only encoding and there
> can be no non-Unicode applications that use Maltese?
Not necessarily; it just means that single-byte character set support for
the language is not available in that copy of Windows. Some languages do
have pre-Unicode codepages, but are not included in the list of available
languages, just because the NLS codepage files are not installed in Windows.
The list of codepages installed by default is fairly comprehensive however,
for "major world languages" (not that I like that term).
Prior to Unicode, single byte encodings were pretty messy. There wasn't a
nice neat set of pre-Unicode encodings. Take Greek, for example: there were
many different proprietary schemes used to display Greek script and language
using single bytes - WinGreek, GreekKeys, etc. Many of these requiresd
special drivers to be installed. So you can't just turn on non-Unicode
Greek, and hope that it will work (well, you can *hope* it will work; but
.... hoping is all you can do :-).
In the case of Maltese, I'm not sure what kind of pre-Unicode or non-Unicode
(ie, single-byte) encodings were available. I don't know of any ANSI
codepage for Maltese. I suspect Maltese non-Unicode encoding schemes were
pretty proprietary: keyboard and display drivers, to get the "G with a dot
on top", "C with a dot on top", "H with a bar", etc.
> 3) If answer to 2 is 'yes', then do you know of a list of such
> Unicode-only languages?
Well, these languages aren't "unicode-only" But here's a useful list of
languages, supported in Vista:
http://www.microsoft.com/globaldev/n...indows%20Vista
If the ANSI column is "0" then, there is no ANSI codepage support in
Windows. I guess that's roughly equivalent to "Unicode only".
> 4) Do you know of a free non-unicode application that ships with Vista or
> from elsewhere that a newbie to this language/locale/region stuff can use
> to demonstrate the effect of changing the locale in this way? Is there a
> tutorial URL? I suppose one would need the correct fonts installed to see
> the effect?
I should probably write one :-)
On XP, you can experiment a bit with different locales, by using the
AppLocale utility:
http://www.microsoft.com/globaldev/tools/apploc.mspx
However Applocale does not run on Vista. I guess the World-ready guys at
Microsoft will come out with an updated version at some stage; but they
probably have more pressing priorities right now.
Also some useful info here:
http://www.microsoft.com/globaldev/g...rg_lclmdl.mspx
http://www.microsoft.com/globaldev/D...s/Locales.mspx
In fact *every* page under the Globaldev portal is pretty useful; I think we
discussed that a couple of weeks ago.
There are several good books. I found this one very useful:
http://www.amazon.com/exec/obidos/ASIN/0735615837/
although, it is rather oriented towards developers writing in C/C++. But,
lots of good info.
Hope it helps,
--
Andrew McLaren
amclar (at) optusnet dot com dot au