Hi Trevor
Tried your function out on a French Windows XP SP2 system running
RunRev 2.6 (after taking out spurious returns) and it didn't work -
it just returned "en" because your registry query put nothing into
tUserLangs. I am no expert, but it looks to me as if the Registry
entries in the French system are under Control Panel\International
\iCountry or \sCountry or \sLanguage
The value of iCountry on my system is 33 [which is the international
phone code] and of sCountry is France [which is of course both French
and English for France - presumably a German system for example would
not say 'Germany' but 'Deutschland', but I haven't got a system to
test it on) and of sLanguage is FRA. There is also \Locale which is a
Hex figure 0000040C.
I'll experiment further it you would like to suggest which direction
to take.
HTH
Graham
On Tue, 4 Oct 2005 16:17:51 -0700, Trevor DeVore
<[EMAIL PROTECTED]> wrote:
Here is what I came up with by combing the hints everyone provided.
My app has language files identified using 2 character language codes
(en,fr,de,etc). This function returns one of those language codes
based on the platform the app is running on.
I've tested on OS X with English, French, German, Spanish and
Italian. I tested Win XP with English and it worked but haven't
tested the other languages yet since I don't have Windows in anything
but English. If anyone wants to let me know how it works on their
international system that would be great. Otherwise I will just wait
to hear back from the localization company.
Thanks for the pointers.
--
Trevor DeVore
Blue Mango Multimedia
[EMAIL PROTECTED]
/**
* Returns the two letter language code that our program can use to
load a language file.
*
* @return 2 letter lang
*/
function getUserLang
local tAppLangs = "en,fr,de,es,it" --> LANGUAGE CODES THAT
WILL BE RETURNED BY FUNCTION
local tAppLangsMac = "en,fr,de,es,it" --> LANGUAGE CODES THAT
MAC OS RETURNS
local tAppLangsWin = "9,12,17,10,6" --> DECIMAL
REPRESENTATIONS OF PRIMARY LANGUAGE CODES WINDOWS RETURNS
local tUserLangs
local i
set wholeMatches to true
if platform() is "MacOS" then
put replaceText(shell("defaults read NSGlobalDomain
AppleLanguages"),"(\s|\(|\))","") into tUserLangs
repeat for each item tLang in tUserLangs
put itemOffset(tLang, tAppLangsMac) into i
if i > 0 then exit repeat
end repeat
else if platform() is "Win32" then
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, tAppLangsWin) into i
if i > 0 then exit repeat
end repeat
--> LINUX
else
end if
if i > 0 then return item i of tAppLangs
else return "en"
end getUserLang
----------------------------------------
Graham Samuel / The Living Fossil Co. / UK and France
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution