connaitre la langue

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Guillot
Messages : 672
Inscription : jeu. 25/juin/2015 16:18

connaitre la langue

Message par Guillot »

salut les gars,

quelqu'un sait comment determiner la langue definie sur son pc ?
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Re: connaitre la langue

Message par case »

sous windows,

Code : Tout sélectionner

; code issu de winapi library de rsbasic.de
; https://www.rsbasic.de/download#Programmierung


 Sprache$=Space(255)
 VerLanguageName_(GetUserDefaultLangID_(),@Sprache$,255)
 MessageRequester("","Sprache: "+Sprache$,0)
ImageImage
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: connaitre la langue

Message par Mesa »

Code : Tout sélectionner

; keya http://www.purebasic.fr/english/viewtopic.php?f=12&t=66552
CompilerIf #PB_Compiler_OS = #PB_OS_Windows
  Define Buffer$, buflen, bytesread, LC
  LC = #LOCALE_SLANGUAGE
  ;Note - some apps would be better using #LOCALE_SYSTEM_DEFAULT instead of #LOCALE_USER_DEFAULT
  buflen = GetLocaleInfo_(#LOCALE_USER_DEFAULT, LC, @Buffer$, 0)    ;MS recommends using GetLocaleInfoEx_() if only supporting Vista and later
  Buffer$ = Space(buflen)
  bytesread = GetLocaleInfo_(#LOCALE_USER_DEFAULT, LC, @Buffer$, buflen)
  If bytesread = 0
    Debug "Failed" ;call GetLastError()
  Else
    Debug Buffer$ ; Français (France)
  EndIf
  
CompilerElse ;#PB_OS_Linux, (and #PB_OS_MacOS ?)
  #LC_CTYPE = 0
  #LC_NUMERIC = 1
  #LC_TIME = 2
  #LC_COLLATE = 3
  #LC_MONETARY = 4
  #LC_MESSAGES = 5
  #LC_ALL = 6
  #LC_PAPER = 7
  #LC_NAME = 8
  #LC_ADDRESS = 9
  #LC_TELEPHONE = 10
  #LC_MEASUREMENT = 11
  #LC_IDENTIFICATION = 12
  
  lcaddr.i = setlocale_(#LC_ALL, #Null)  ;If last param is Null the function reads instead of writes
  If lcaddr
    Debug "Result=" + PeekS(lcaddr,-1,#PB_Ascii)
  Else
    Debug "Failed"
  EndIf  
  
  ;// Or alternatively ...
  Debug "LANG environment var = " + GetEnvironmentVariable("LANG")
  
  ;Macos
  CurrentLocale = CocoaMessage(0, 0, "NSLocale currentLocale")
  LocaleIdentifer = CocoaMessage(0, CurrentLocale, "objectForKey:$", @"kCFLocaleIdentifierKey")
  CocoaMessage(@Language, LocaleIdentifer, "UTF8String")
  Debug PeekS(Language, -1, #PB_UTF8)
  
  
  
CompilerEndIf

CompilerIf #PB_Compiler_OS = #PB_OS_MacOS
  Procedure.s GetUserLocale()  ;by Danilo - http://www.purebasic.fr/english/viewtopic.php?f=19&t=50795&start=137
    Protected result.s, NSUserDefaults_defs, NSString_locale
    NSUserDefaults_defs = CocoaMessage(0,0,"NSUserDefaults standardUserDefaults")
    If NSUserDefaults_defs
      NSString_locale  = CocoaMessage(0,NSUserDefaults_defs,"objectForKey:$",@"AppleLocale")
      If NSString_locale
        result = PeekS(CocoaMessage(0, NSString_locale, "UTF8String"), -1, #PB_UTF8)
        autorelease(NSString_locale)
      EndIf
      autorelease(NSUserDefaults_defs)
    EndIf
    ProcedureReturn result
  EndProcedure
  
CompilerEndIf
M.
Avatar de l’utilisateur
Guillot
Messages : 672
Inscription : jeu. 25/juin/2015 16:18

Re: connaitre la langue

Message par Guillot »

merci les gars,

comme je vois, y'a rien de simple et multiplateforme !
Répondre