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

3 réponses

1 2
Avatar
STASZEWSKI André
Bonjour

farplus wrote:
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.



Et le copier/coller dans le lien que j'ai donné ? c'est pas fait pour les
chiens !


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



--------------------------------------
Il n'y a qu'a faire cette fonction qui sauve l'info dans la BDR :
--------------------------------------
FONCTION UtiliseCodeLangue()

CN est une chaîne
RF,CodeLangue est un entier // Type C :LCID
RF = API("KERNEL32","GetUserDefaultLCID")
CN = "0x"+NumériqueVersChaine(RF,"04X")

SELON Minuscule(CN)
CAS "0x040c","0x080c","0x0c0c","0x100c","0x140c","0x180c","0x0456","0x0437"
// Français
CodeLangue = 1
CAS "0x0407","0x0807","0x0c07","0x1007","0x1407","0x0413","0x0813" //
Allemand
CodeLangue = 3
CAS "0x0410","0x0810" // Italien
CodeLangue = 4
AUTRES CAS // Anglais et autres
CodeLangue = 2
FIN

RENVOYER CodeLangue
--------------------------------------
Puis dans l'ini du projet rajouter :
--------------------------------------
gLangue est un entier (contient la valeur lu dans la BDR et par défaut la
valeur de la fonction UtiliseCodeLangue())

SELON gLangue
CAS 1 : Nation(5) //Français
CAS 2 : Nation(3) //Anglais
CAS 3 : Nation(1) //Allemand
CAS 4 : Nation(11) //Italien
FIN

Ainsi le 1er lancement du programme qui s'ouvre dans un de ces 4 pays (et
dérivés) affiche d'entrée la bonne langue, sinon il s'ouvre en Anglais...
--
Cordialement,
André STASZEWSKI
Nouvelle version 3.0 de Photo Visu sur www.PlaneteDev.fr.st
Avatar
farplus
Salut André,
petit à petit on y arrive...

STASZEWSKI André avait prétendu :
Bonjour

farplus wrote:
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.



Et le copier/coller dans le lien que j'ai donné ? c'est pas fait pour les
chiens !


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



--------------------------------------
Il n'y a qu'a faire cette fonction qui sauve l'info dans la BDR :
--------------------------------------
FONCTION UtiliseCodeLangue()

CN est une chaîne
RF,CodeLangue est un entier // Type C :LCID
RF = API("KERNEL32","GetUserDefaultLCID")
CN = "0x"+NumériqueVersChaine(RF,"04X")

SELON Minuscule(CN)
CAS "0x040c","0x080c","0x0c0c","0x100c","0x140c","0x180c","0x0456","0x0437"
// Français
CodeLangue = 1
CAS "0x0407","0x0807","0x0c07","0x1007","0x1407","0x0413","0x0813" //
Allemand
CodeLangue = 3
CAS "0x0410","0x0810" // Italien
CodeLangue = 4
AUTRES CAS // Anglais et autres
CodeLangue = 2
FIN

RENVOYER CodeLangue
--------------------------------------
Puis dans l'ini du projet rajouter :
--------------------------------------
gLangue est un entier (contient la valeur lu dans la BDR et par défaut la
valeur de la fonction UtiliseCodeLangue())

SELON gLangue
CAS 1 : Nation(5) //Français
CAS 2 : Nation(3) //Anglais
CAS 3 : Nation(1) //Allemand
CAS 4 : Nation(11) //Italien
FIN

Ainsi le 1er lancement du programme qui s'ouvre dans un de ces 4 pays (et
dérivés) affiche d'entrée la bonne langue, sinon il s'ouvre en Anglais...



plus élégant:
Nation(UtiliseCodeLangue())
-------------------------
FONCTION UtiliseCodeLangue()

CN est une chaîne
RF,CodeLangue est un entier // Type C :LCID
RF = API("KERNEL32","GetUserDefaultLCID")
CN = "0x"+NumériqueVersChaine(RF,"04X")




SELON Minuscule(CN)
CAS
"0x040c","0x080c","0x0c0c","0x100c","0x140c","0x180c","0x0456","0x0437"
// Français
CodeLangue = 5
CAS "0x0407","0x0807","0x0c07","0x1007","0x1407","0x0413","0x0813" //
Allemand
CodeLangue = 1
CAS "0x0410","0x0810" // Italien
CodeLangue = 11
AUTRES CAS // Anglais et autres
CodeLangue = 3
FIN

RENVOYER CodeLangue

:-)

Bonne journée

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

farplus à suggéré :

Salut André,
petit à petit on y arrive...

plus élégant:
Nation(UtiliseCodeLangue())
-------------------------
FONCTION UtiliseCodeLangue()

CN est une chaîne
RF,CodeLangue est un entier // Type C :LCID
RF = API("KERNEL32","GetUserDefaultLCID")
CN = "0x"+NumériqueVersChaine(RF,"04X")




SELON Minuscule(CN)
CAS
"0x040c","0x080c","0x0c0c","0x100c","0x140c","0x180c","0x0456","0x0437"
// Français
CodeLangue = 5
CAS "0x0407","0x0807","0x0c07","0x1007","0x1407","0x0413","0x0813"
// Allemand
CodeLangue = 1
CAS "0x0410","0x0810" // Italien
CodeLangue = 11
AUTRES CAS // Anglais et autres
CodeLangue = 3
FIN

RENVOYER CodeLangue

:-)

Bonne journée



C'est exactement ce que j'ai fais en premier, mais comme j'agis sur un
selecteur, j'ai opté plutôt pour renvoyer la position du selecteur avec les
valeurs 1..4
Mais bon, chacun fait en fontion de ce qu'il recherche...
Bonne journée aussi...
--
Cordialement,
André STASZEWSKI
Nouvelle version 3.0 de Photo Visu sur www.PlaneteDev.fr.st
1 2