Determine active OS langguage
lists at mangomultimedia.com
Thu Oct 6 12:26:44 EDT 2005
On Oct 6, 2005, at 12:30 AM, graham samuel wrote:
> More significantly the 'queryregistry' call doesn't happen in your
> script because it would only be called if the platform **wasn't**
> Win32, which it is! I altered the logic a bit so that the registery
> is queried for the Win32 case, and bingo! I got 'fr'. So the key
> idea works. Don't know what the replaceText problem is.
Doh, I was testing something right before uploading the stack and
forgot to switch the script back so it was testing the platforms
correctly. Sorry about that. I'm glad to hear it did work once you
switched it yet. I had entered the incorrect codes for German and
Italian in the script I posted so I've updated the stack in my user
space (trevordevore). Here is the latest function for anyone who
cares. I added a couple of extra languages to it as well.
Blue Mango Multimedia
trevor at mangomultimedia.com
* Returns the two letter language code that a program can use to load
a language file.
* @return 2 letter lang
local tAppLangs = "en,fr,de,es,it,pt,zh,zh,ja,ko"
--> CHINESE APPEARS TWICE FOR SIMPLIFIED AND TRADITIONAL (MAC OS X)
--> zh-Hans = simplified chinese
--> zh-Hant = traditinoal chinese
set wholeMatches to true
if platform() is "MacOS" then
put "en,fr,de,es,it,pt,zh-Hans,zh-Hant,ja,ko" into tLangs
put replaceText(shell("defaults read NSGlobalDomain
AppleLanguages"),it,"") into tUserLangs
else if platform() is "Win32" then
put "9,12,7,10,16,22,4,4,17,18" into tLangs
put queryRegistry("HKEY_CURRENT_USER\Control Panel
\International\Locale") into tUserLangs
put baseConvert(tUserLangs,16,10) bitAND 1023 into tUserLangs
repeat for each item tLang in tUserLangs
put itemOffset(tLang, tLangs) into i
if i > 0 then exit repeat
if i > 0 then return item i of tAppLangs
else return "en"
More information about the Use-livecode