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

Reply via email to