Keyboard Detection?

Scott Rossi scott at tactilemedia.com
Fri Dec 11 18:41:31 EST 2009


Recently, Richmond Mathewson wrote:

> I wonder if there is any way of telling:
> 
> 1. The default language of an end-user's computer?

Here's a function I've used which has worked on Windows from Win95 up
through Vista (not tested on Win 7);  for Mac, has worked last few OS
versions up through Show Leopard, but not sure how far back is supported.
Try it and see if it works for you (watch line wrapping):

# RETURNS LANGUAGE INFO ABOUT HOST OPERATING SYSTEM
# WINDOWS - RETURNS
# -- COUNTRY DESIGNATION
# -- 3 CHAR LANGUAGE CODE
# -- 8 CHAR LOCALE HEX CODE
# -- 4 CHAR LOCALE DECIMAL CODE
# MAC - RETURNS
# -- CURRENT SYSTEM LANGUAGE
# -- AVAILABLE SYSTEM LANGUAGES

function langSpecs
   if "win" is in platform() then
      if word 1 of systemVersion() = "Windows" then
         put url ("file:" & specialFolderPath(system) & "/win.ini") into
tSystem
         set itemDel to "="
         put item 2 of line (lineOffset("sCountry",tSystem)) of tSystem & cr
after tData
         put item 2 of line (lineOffset("sLanguage",tSystem)) of tSystem &
cr after tData
      else
         put queryRegistry("HKEY_CURRENT_USER\Control
Panel\International\sCountry") & cr after tData
         put queryRegistry("HKEY_CURRENT_USER\Control
Panel\International\sLanguage") & cr after tData
      end if
      put queryRegistry("HKEY_CURRENT_USER\Control
Panel\International\Locale") & cr after tData
      put baseConvert(line 3 of tData,16,10) after tData
      return tData
   end if
   if "mac" is in platform() then
      put "defaults read -g" && quote & "AppleLocale" & quote into tCmd
      put shell(tCmd) into currLang
      put replaceText(shell("defaults read NSGlobalDomain
AppleLanguages"),"(\s|\(|\))","") into availableLangs
      return currLang & cr & availableLangs
   end if
   return languagesList
end langSpecs



Regards,

Scott Rossi
Creative Director
Tactile Media, Multimedia & Design





More information about the Use-livecode mailing list