OVH Cloud OVH Cloud

[WD8] Determiner la langue utilisée

13 réponses
Avatar
STASZEWSKI André
Bonjour,

Que de questions ces derniers temps !
Quelqu'un parmi vous aurait-il une procédure qui renvoit la langue utilisée
sur le poste en cours...
Je dis bien la langue, pas la page code ...
Ca doit bien être écrit qq part dans la BDR ?
--
Cordialement,
André STASZEWSKI
Nouvelle version 3.0 de Photo Visu sur www.PlaneteDev.fr.st

10 réponses

1 2
Avatar
farplus
STASZEWSKI André a formulé ce mardi :
Bonjour,

Que de questions ces derniers temps !
Quelqu'un parmi vous aurait-il une procédure qui renvoit la langue utilisée
sur le poste en cours...
Je dis bien la langue, pas la page code ...
Ca doit bien être écrit qq part dans la BDR ?



HK_User.DefaultControl PanelInternational Slanguage
a+

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
STASZEWSKI André
farplus wrote:
STASZEWSKI André a formulé ce mardi :
Bonjour,

Que de questions ces derniers temps !
Quelqu'un parmi vous aurait-il une procédure qui renvoit la langue
utilisée sur le poste en cours...
Je dis bien la langue, pas la page code ...
Ca doit bien être écrit qq part dans la BDR ?



HK_User.DefaultControl PanelInternational Slanguage
a+



Merci FarPlus une fois de plus (tiens ça rime) pour cette réponse rapide.
Du coup je me pose une autre question :
Sur un ordi en français (comme le miens) la valeur lue est : FRA
Quelles seront les valeurs sur un ordi configuré en Allemand, en Italien et
en Espagnol ?
Il faut que je sois certain de la valeur afin de la manipuler ensuite en
programmation.
Si parmis vous, vous êtes configurés dans l'une de ces langues, merci de
verifier vite fait avec Regedit et de m'en faire part.
Merci aussi de me dire la valeur lue sur :
HK_User.DefaultControl PanelInternationalGeoNation
--
Cordialement,
André STASZEWSKI
Nouvelle version 3.0 de Photo Visu sur www.PlaneteDev.fr.st
Avatar
Romain PETIT
STASZEWSKI André a écrit :

Merci FarPlus une fois de plus (tiens ça rime) pour cette réponse rapide.
Du coup je me pose une autre question :
Sur un ordi en français (comme le miens) la valeur lue est : FRA
Quelles seront les valeurs sur un ordi configuré en Allemand, en Italien et
en Espagnol ?
Il faut que je sois certain de la valeur afin de la manipuler ensuite en
programmation.




Pour cela, la source la plus complète et la plus fiable reste le MSDN :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_9l2r.asp

Regarde également les API natives qui permettent de récupérer les
paramètres de langue du systèmes :
http://msdn.microsoft.com/library/en-us/intl/nls_19f8.asp

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
farplus
STASZEWSKI André avait écrit le 25.05.2004 :
farplus wrote:
STASZEWSKI André a formulé ce mardi :
Bonjour,

Que de questions ces derniers temps !
Quelqu'un parmi vous aurait-il une procédure qui renvoit la langue
utilisée sur le poste en cours...
Je dis bien la langue, pas la page code ...
Ca doit bien être écrit qq part dans la BDR ?



HK_User.DefaultControl PanelInternational Slanguage
a+



Merci FarPlus une fois de plus (tiens ça rime) pour cette réponse rapide.
Du coup je me pose une autre question :
Sur un ordi en français (comme le miens) la valeur lue est : FRA
Quelles seront les valeurs sur un ordi configuré en Allemand, en Italien et
en Espagnol ?
Il faut que je sois certain de la valeur afin de la manipuler ensuite en
programmation.
Si parmis vous, vous êtes configurés dans l'une de ces langues, merci de
verifier vite fait avec Regedit et de m'en faire part.
Merci aussi de me dire la valeur lue sur :
HK_User.DefaultControl PanelInternationalGeoNation



re-bonjour,

au fait je ne sais pas d'où vient le 84 dans la clé géo valeur nation;
les autres codes langues sont en hexa, et tu en retrouveras la liste
soit dans HK_C_RMIMEDatabaseRfc1766, soit
HK_L_MSystemCurrentControlsetControlKeyboard LayoutDosKeybCodes
mais attention: c'est la VALEUR de la clé qui donne le code et non la
donnée
par ex. Français(France) est 0x040c (donnée: fr) Français(belge) est
0x080c (donnée: be). l'octet fort est 0x0c pour le français, l'octet
faible 0x04=France, 0x08 Belgique etc. octet fort pour l'hollande 0x13
donc belge(flamand) 0x813.

A+

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
STASZEWSKI André
Merci à Romain et Farplus pour leurs précieuses informations.

Je vais avoir du pain sur la planche pour trouver comment récupérer les
données hexa à partir de la fonction :
RetourFonction est un entier = API("KERNEL32","GetUserDefaultLCID")
Car c'est bien d'elle qu'il s'agit.
La table est bien dans cette page :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_9l
2r.asp
mais il y a une structure à décoder et je ne sais pas encore comment.
Elle est décrite ici :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_8s
j7.asp
Je vais essayer de cogiter...

--
Cordialement,
André STASZEWSKI
Nouvelle version 3.0 de Photo Visu sur www.PlaneteDev.fr.st
Avatar
farplus
STASZEWSKI André a émis l'idée suivante :
Merci à Romain et Farplus pour leurs précieuses informations.

Je vais avoir du pain sur la planche pour trouver comment récupérer les
données hexa à partir de la fonction :
RetourFonction est un entier = API("KERNEL32","GetUserDefaultLCID")
Car c'est bien d'elle qu'il s'agit.
La table est bien dans cette page :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_9l
2r.asp
mais il y a une structure à décoder et je ne sais pas encore comment.
Elle est décrite ici :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_8s
j7.asp
Je vais essayer de cogiter...


Registre est une chaine="Hkey_Classes_RootMIMEDataBaseRFC1766"
idx est un entier=1
Valhexa est une chaine=RegistreListeValeur(Registre)
ListeVal est une chaine
Temp est une chaine
Tempx est une chaine
temp=ExtraitChaine(Valhexa,idx,rc)
tantque temp<>""
tempx=registrelit(registre,temp)
ListeVal+=temp+tab+tempx+RC
idx++
temp=ExtraitChaine(Valhexa,idx,rc)
fin
// là tu as la chaîne des valeurs hexa sous forme de //
"xxxxxxxx"+tab+langue+RC //sous forme de "bg;Bulgare"

Langue est une chaine=registrelit("hkey_Users.DefaultControl
PanelInternational","Locale")
idx=position(ListeVal,Langue)
si idx>0 alors
temp=Milieu(Listval,idx)
Info("la langue recherchée est "+Extraitchaine(temp,1))
ou alors:
Rech est une chaine
selon langue
cas "0000040c"
rech="français,France"
cas "0000080c"
rech="français, Belgique"
cas...
rech="..."
FIN
A+

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
farplus
Il se trouve que farplus a formulé :
STASZEWSKI André a émis l'idée suivante :
Merci à Romain et Farplus pour leurs précieuses informations.

Je vais avoir du pain sur la planche pour trouver comment récupérer les
données hexa à partir de la fonction :
RetourFonction est un entier = API("KERNEL32","GetUserDefaultLCID")
Car c'est bien d'elle qu'il s'agit.
La table est bien dans cette page :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_9l
2r.asp
mais il y a une structure à décoder et je ne sais pas encore comment.
Elle est décrite ici :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_8s
j7.asp
Je vais essayer de cogiter...


Registre est une chaine="Hkey_Classes_RootMIMEDataBaseRFC1766"
idx est un entier=1
Valhexa est une chaine=RegistreListeValeur(Registre)
ListeVal est une chaine
Temp est une chaine
Tempx est une chaine
temp=ExtraitChaine(Valhexa,idx,rc)
tantque temp<>""
tempx=registrelit(registre,temp)
ListeVal+=temp+tab+tempx+RC
idx++
temp=ExtraitChaine(Valhexa,idx,rc)
fin
// là tu as la chaîne des valeurs hexa sous forme de //
"xxxxxxxx"+tab+langue+RC //sous forme de "bg;Bulgare"

Langue est une chaine=registrelit("hkey_Users.DefaultControl
PanelInternational","Locale")
idx=position(ListeVal,Langue)
si idx>0 alors
temp=Milieu(Listval,idx)
Info("la langue recherchée est "+Extraitchaine(temp,1))



FIN // oublié :-(
ou alors:
Rech est une chaine
selon langue
cas "0000040c"
rech="français,France"
cas "0000080c"
rech="français, Belgique"
cas...
rech="..."
FIN
A+



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
STASZEWSKI André
Bonjour farplus

Je te remercie pour ton code mais finalement j'ai opté pour l'API (sur la
base de Romain)
Je pense que c'est plus sûr en fonction des différentes versions de windows
et puis le code est plus court ;-)
Voilà si tu peux testé le code suivant sur ton ordi pour voir la valeur dans
la trace et la comparer à la liste héxa
de la page ci-dessous pour voir si ça correspond, ce serait sympa.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_9l
2r.asp

Code à tester :
RF est un entier
RF = API("KERNEL32","GetUserDefaultLCID")
Trace("0x"+NumériqueVersChaine(RF,"04X")

Si d'autre personne ayant une langue différente du français standard sur
leur ordi peuvent faire le test et me
donner le resultat ... je serai :-)
--
Cordialement,
André STASZEWSKI
Nouvelle version 3.0 de Photo Visu sur www.PlaneteDev.fr.st
Avatar
farplus
>
Code à tester :
RF est un entier
RF = API("KERNEL32","GetUserDefaultLCID")
Trace("0x"+NumériqueVersChaine(RF,"04X")

Si d'autre personne ayant une langue différente du français standard sur
leur ordi peuvent faire le test et me
donner le resultat ... je serai :-)


code plus court, c'est vrai, reste qu'il faut charger la liste des
codes possibles à la main et ça c'est beaucoup plus long avec toutes
les possibilités d'erreurs inhérentes.

Bien sûr, ça correspond, mais:
une fois que tu as reçu par ex. 0x040c (pour le français,France)
comment tu l'interprètes si tu n'as pas une liste de concordances, ou
si ces concordances changent suivant la version de windows
?(personnellement je ne pense pas, mais tu le crains).

A+

PS: j'ai testé d'autre langues, c'est, comme prévisible, OK

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Franck
fonction renvoyerlangue()

Langue est une chaîne
LangId est un entier = api("kernel32","GetUserDefaultLangID")

SELON PoidsFaible(LangId)
CAS 0x0000
langue="Language Neutral"
CAS 0x0400
langue="Process Default Language"
CAS 0x0401
langue="Arabic (Saudi Arabia)"
CAS 0x0801
langue="Arabic (Iraq)"
CAS 0x0c01
langue="Arabic (Egypt)"
CAS 0x1001
langue="Arabic (Libya)"
CAS 0x1401
langue="Arabic (Algeria)"
CAS 0x1801
langue="Arabic (Morocco)"
CAS 0x1c01
langue="Arabic (Tunisia)"
CAS 0x2001
langue="Arabic (Oman)"
CAS 0x2401
langue="Arabic (Yemen)"
CAS 0x2801
langue="Arabic (Syria)"
CAS 0x2c01
langue="Arabic (Jordan)"
CAS 0x3001
langue="Arabic (Lebanon)"
CAS 0x3401
langue="Arabic (Kuwait)"
CAS 0x3801
langue="Arabic (U.A.E.)"
CAS 0x3c01
langue="Arabic (Bahrain)"
CAS 0x4001
langue="Arabic (Qatar)"
CAS 0x0402
langue="Bulgarian"
CAS 0x0403
langue="Catalan"
CAS 0x0404
langue="Chinese (Taiwan Region)"
CAS 0x0804
langue="Chinese (PRC)"
CAS 0x0c04
langue="Chinese (Hong Kong SAR, PRC)"
CAS 0x1004
langue="Chinese (Singapore)"
CAS 0x0405
langue="Czech"
CAS 0x0406
langue="Danish"
CAS 0x0407
langue="German (Standard)"
CAS 0x0807
langue="German (Swiss)"
CAS 0x0c07
langue="German (Austrian)"
CAS 0x1007
langue="German (Luxembourg)"
CAS 0x1407
langue="German (Liechtenstein)"
CAS 0x0408
langue="Greek"
CAS 0x0409
langue="English (United States)"
CAS 0x0809
langue="English (United Kingdom)"
CAS 0x0c09
langue="English (Australian)"
CAS 0x1009
langue="English (Canadian)"
CAS 0x1409
langue="English (New Zealand)"
CAS 0x1809
langue="English (Ireland)"
CAS 0x1c09
langue="English (South Africa)"
CAS 0x2009
langue="English (Jamaica)"
CAS 0x2409
langue="English (Caribbean)"
CAS 0x2809
langue="English (Belize)"
CAS 0x2c09
langue="English (Trinidad)"
CAS 0x040a
langue="Spanish (Traditional Sort)"
CAS 0x080a
langue="Spanish (Mexican)"
CAS 0x0c0a
langue="Spanish (Modern Sort)"
CAS 0x100a
langue="Spanish (Guatemala)"
CAS 0x140a
langue="Spanish (Costa Rica)"
CAS 0x180a
langue="Spanish (Panama)"
CAS 0x1c0a
langue="Spanish (Dominican Republic)"
CAS 0x200a
langue="Spanish (Venezuela)"
CAS 0x240a
langue="Spanish (Colombia)"
CAS 0x280a
langue="Spanish (Peru)"
CAS 0x2c0a
langue="Spanish (Argentina)"
CAS 0x300a
langue="Spanish (Ecuador)"
CAS 0x340a
langue="Spanish (Chile)"
CAS 0x380a
langue="Spanish (Uruguay)"
CAS 0x3c0a
langue="Spanish (Paraguay)"
CAS 0x400a
langue="Spanish (Bolivia)"
CAS 0x440a
langue="Spanish (El Salvador)"
CAS 0x480a
langue="Spanish (Honduras)"
CAS 0x4c0a
langue="Spanish (Nicaragua)"
CAS 0x500a
langue="Spanish (Puerto Rico)"
CAS 0x040b
langue="Finnish"
CAS 0x040c
langue="French (Standard)"
CAS 0x080c
langue="French (Belgian)"
CAS 0x0c0c
langue="French (Canadian)"
CAS 0x100c
langue="French (Swiss)"
CAS 0x140c
langue="French (Luxembourg)"
CAS 0x040d
langue="Hebrew"
CAS 0x040e
langue="Hungarian"
CAS 0x040f
langue="Icelandic"
CAS 0x0410
langue="Italian (Standard)"
CAS 0x0810
langue="Italian (Swiss)"
CAS 0x0411
langue="Japanese"
CAS 0x0412
langue="Korean"
CAS 0x0812
langue="Korean (Johab)"
CAS 0x0413
langue="Dutch (Standard)"
CAS 0x0813
langue="Dutch (Belgian)"
CAS 0x0414
langue="Norwegian (Bokmal)"
CAS 0x0814
langue="Norwegian (Nynorsk)"
CAS 0x0415
langue="Polish"
CAS 0x0416
langue="Portuguese (Brazilian)"
CAS 0x0816
langue="Portuguese (Standard)"
CAS 0x0418
langue="Romanian"
CAS 0x0419
langue="Russian"
CAS 0x041a
langue="Croatian"
CAS 0x081a
langue="Serbian (Latin)"
CAS 0x0c1a
langue="Serbian (Cyrillic)"
CAS 0x041b
langue="Slovak"
CAS 0x041c
langue="Albanian"
CAS 0x041d
langue="Swedish"
CAS 0x081d
langue="Swedish (Finland)"
CAS 0x041e
langue="Thai"
CAS 0x041f
langue="Turkish"
CAS 0x0421
langue="Indonesian"
CAS 0x0422
langue="Ukrainian"
CAS 0x0423
langue="Belarusian"
CAS 0x0424
langue="Slovenian"
CAS 0x0425
langue="Estonian"
CAS 0x0426
langue="Latvian"
CAS 0x0427
langue="Lithuanian"
CAS 0x0429
langue="Farsi"
CAS 0x042a
langue="Vietnamese"
CAS 0x042d
langue="Basque"
CAS 0x0436
langue="Afrikaans"
CAS 0x0438
langue="Faeroese"
Autres CAS
langue="Langue inconnue"
Fin

renvoyer langue

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
1 2