Batch qui détecte la langue du système d'expl

Résolu/Fermé
petitbul Messages postés 208 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 7 février 2014 - 28 janv. 2010 à 12:09
 Utilisateur anonyme - 28 janv. 2010 à 21:22
Bonjour, j'ai créer un batch avec plusieurs langues ( en, fr, nl )
exemple:
echo off
cls
echo What is your languages ? (En)
echo Quelles est votre langues ? (Fr)
echo Wat is youstalen ? (Nl)
set /p l=Reponce, Answer, Antwoord:
if %l%==en goto en
if %l%==fr goto fr
if %l%==nl goto nl

:en
set m=Thanks
goto 1

:nl
set m=Bedankt
goto 1

:fr
set m=Merci
goto 1

:1
cls
echo %l%
pause>nul

c'est bien mais je ne trouve pas un code qui permet de savoir qu'elle est la langue du système d'exploitation
sans poser la question et en fonction de la langue aller dans "fr" ou "en" ....


Merci ...
A voir également:

16 réponses

Utilisateur anonyme
28 janv. 2010 à 12:23
Hello,

A ma connaissance, ça ne peut pas se faire directement. En revanche, voilà comment tu pourrais faire :

Au début de ton batch, tu appelles un script vbs qui détermine la langue de l'OS. Il faut modifier le vbs pour qu'il aile écrire ça dans un petit fichier.

Ensuite tu vas lire la valeur présente dans le fichier

Enfin tu fais le test de cette valeur et tu vas sur la langue correspondante.

Voilou !


Le script vbs il suffit de remplacer le msgbox par une routine d'écriture dans un fichier) :

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From
Win32_OperatingSystem")

For Each objItem in colItems
Select Case objItem.OSLanguage
Case 1 strLang = "Arabic"
Case 4 strLang = "Chinese (Simplified) - China"
Case 9 strLang = "English"
Case 1025 strLang = "Arabic - Saudi Arabia"
Case 1026 strLang = "Bulgarian"
Case 1027 strLang = "Catalan"
Case 1028 strLang = "Chinese (Traditional) - Taiwan"
Case 1029 strLang = "Czech"
Case 1030 strLang = "Danish"
Case 1031 strLang = "German - Germany"
Case 1032 strLang = "Greek"
Case 1033 strLang = "English - United States"
Case 1034 strLang = "Spanish - Traditional Sort"
Case 1035 strLang = "Finnish"
Case 1036 strLang = "French - France"
Case 1037 strLang = "Hebrew"
Case 1038 strLang = "Hungarian"
Case 1039 strLang = "Icelandic"
Case 1040 strLang = "Italian - Italy"
Case 1041 strLang = "Japanese"
Case 1042 strLang = "Korean"
Case 1043 strLang = "Dutch - Netherlands"
Case 1044 strLang = "Norwegian - Bokmal"
Case 1045 strLang = "Polish"
Case 1046 strLang = "Portuguese - Brazil"
Case 1047 strLang = "Rhaeto-Romanic"
Case 1048 strLang = "Romanian"
Case 1049 strLang = "Russian"
Case 1050 strLang = "Croatian"
Case 1051 strLang = "Slovak"
Case 1052 strLang = "Albanian"
Case 1053 strLang = "Swedish"
Case 1054 strLang = "Thai"
Case 1055 strLang = "Turkish"
Case 1056 strLang = "Urdu"
Case 1057 strLang = "Indonesian"
Case 1058 strLang = "Ukrainian"
Case 1059 strLang = "Belarusian"
Case 1060 strLang = "Slovenian"
Case 1061 strLang = "Estonian"
Case 1062 strLang = "Latvian"
Case 1063 strLang = "Lithuanian"
Case 1065 strLang = "Persian"
Case 1066 strLang = "Vietnamese"
Case 1069 strLang = "Basque"
Case 1070 strLang = "Serbian"
Case 1071 strLang = "Macedonian (FYROM)"
Case 1072 strLang = "Sutu"
Case 1073 strLang = "Tsonga"
Case 1074 strLang = "Tswana"
Case 1076 strLang = "Xhosa"
Case 1077 strLang = "Zulu"
Case 1078 strLang = "Afrikaans"
Case 1080 strLang = "Faeroese"
Case 1081 strLang = "Hindi"
Case 1082 strLang = "Maltese"
Case 1084 strLang = "Gaelic"
Case 1085 strLang = "Yiddish"
Case 1086 strLang = "Malay - Malaysia"
Case 2049 strLang = "Arabic - Iraq"
Case 2052 strLang = "Chinese (Simplified) - PRC"
Case 2055 strLang = "German - Switzerland"
Case 2057 strLang = "English - United Kingdom"
Case 2058 strLang = "Spanish - Mexico"
Case 2060 strLang = "French - Belgium"
Case 2064 strLang = "Italian - Switzerland"
Case 2067 strLang = "Dutch - Belgium"
Case 2068 strLang = "Norwegian - Nynorsk"
Case 2070 strLang = "Portuguese - Portugal"
Case 2072 strLang = "Romanian - Moldova"
Case 2073 strLang = "Russian - Moldova"
Case 2074 strLang = "Serbian - Latin"
Case 2077 strLang = "Swedish - Finland"
Case 3073 strLang = "Arabic - Egypt"
Case 3076 strLang = "Chinese (Traditional) - Hong Kong SAR"
Case 3079 strLang = "German - Austria"
Case 3081 strLang = "English - Australia"
Case 3082 strLang = "Spanish - International Sort"
Case 3084 strLang = "French - Canada"
Case 3098 strLang = "Serbian - Cyrillic"
Case 4097 strLang = "Arabic - Libya"
Case 4100 strLang = "Chinese (Simplified) - Singapore"
Case 4103 strLang = "German - Luxembourg"
Case 4105 strLang = "English - Canada"
Case 4106 strLang = "Spanish - Guatemala"
Case 4108 strLang = "French - Switzerland"
Case 5121 strLang = "Arabic - Algeria"
Case 5127 strLang = "German - Liechtenstein"
Case 5129 strLang = "English - New Zealand"
Case 5130 strLang = "Spanish - Costa Rica"
Case 5132 strLang = "French - Luxembourg"
Case 6145 strLang = "Arabic - Morocco"
Case 6153 strLang = "English - Ireland"
Case 6154 strLang = "Spanish - Panama"
Case 7169 strLang = "Arabic - Tunisia"
Case 7177 strLang = "English - South Africa"
Case 7178 strLang = "Spanish - Dominican Republic"
Case 8193 strLang = "Arabic - Oman"
Case 8201 strLang = "English - Jamaica"
Case 8202 strLang = "Spanish - Venezuela"
Case 9217 strLang = "Arabic - Yemen"
Case 9226 strLang = "Spanish - Colombia"
Case 10241 strLang = "Arabic - Syria"
Case 10249 strLang = "English - Belize"
Case 10250 strLang = "Spanish - Peru"
Case 11265 strLang = "Arabic - Jordan"
Case 11273 strLang = "English - Trinidad"
Case 11274 strLang = "Spanish - Argentina"
Case 12289 strLang = "Arabic - Lebanon"
Case 12298 strLang = "Spanish - Ecuador"
Case 13313 strLang = "Arabic - Kuwait"
Case 13322 strLang = "Spanish - Chile"
Case 14337 strLang = "Arabic - U.A.E."
Case 14346 strLang = "Spanish - Uruguay"
Case 15361 strLang = "Arabic - Bahrain"
Case 15370 strLang = "Spanish - Paraguay"
Case 16385 strLang = "Arabic - Qutar"
Case 16394 strLang = "Spanish - Bolivia"
Case 17418 strLang = "Spanish - El Salvador"
Case 18442 strLang = "Spanish - Honduras"
Case 19466 strLang = "Spanish - Nicaragua"
Case 20490 strLang = "Spanish - Puerto Rico"
Case Else strLang = objItem.OSLanguage
End Select
Next

MsgBox strLang
1
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
28 janv. 2010 à 12:39
hello
tu peux tester la variable LANG
1036 pour le français, la liste des codes est là http://office.microsoft.com/fr-fr/excel/HA010346351036.aspx

if %LANG% EQU 1036 goto fr
1
Utilisateur anonyme
28 janv. 2010 à 21:22
bel effort de ta part aussi :o)
1
petitbul Messages postés 208 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 7 février 2014 14
28 janv. 2010 à 12:32
Ok je vais essayer ca vers 15h10 car je doit partir

Merci ;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
28 janv. 2010 à 12:47
Me semble que c'est une variable Unix, ça, non ?...
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
28 janv. 2010 à 12:52
Windows et Unix
C:> ver
Microsoft Windows XP [version 5.1.2600]

C:> echo %LANG%
1036
--------------
$ uname
Linux
$ echo $LANG
en_US.UTF-8
0
Utilisateur anonyme
28 janv. 2010 à 12:54
Marche pô chez moi :o(

Ah ça y est, j'ai pigé... Normal, la variable n'est pas positionnée par défaut, donc ça ne marchera pas partout...
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
28 janv. 2010 à 13:07
je n'ai pas souvenir de l'avoir définie chez moi
0
Utilisateur anonyme
28 janv. 2010 à 13:25
Certains softs le font car ils ont besoin de la variable ,mais l'OS par défaut, je ne suis pas sûr. Je vérifierai.
0
petitbul Messages postés 208 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 7 février 2014 14
28 janv. 2010 à 16:46
salut, j'ai essayer le script mais il met Erreure Ligne 5 caract. 55 "unterminated string constant"

merci....
0
petitbul Messages postés 208 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 7 février 2014 14
28 janv. 2010 à 19:36
voila j'ai obtenu la réponce "francais - france" mais il ne veut pas ecrire dans un fichiers .


Merci de votre aide
0
Utilisateur anonyme
28 janv. 2010 à 19:52
Tu as écrit quoi comme routine d'écriture ? Poste le code ici, on verra pourquoi ça marche pas
0
petitbul Messages postés 208 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 7 février 2014 14
28 janv. 2010 à 19:56
Const ForWriting = 2
Dim fso, f

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\Lang.txt", ForWriting,true)
f.write("strLang")

voila ....
0
petitbul Messages postés 208 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 7 février 2014 14
28 janv. 2010 à 20:05
il ecrit strLang mais pas la langue quand c'est la commande "MsgBox strLang"
0
petitbul Messages postés 208 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 7 février 2014 14
28 janv. 2010 à 20:11
j'ai trouver ... c'est


Const ForWriting = 2
Dim fso, f

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\Lang.txt", ForWriting,true)
f.write(strLang)

sans les " "
0
petitbul Messages postés 208 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 7 février 2014 14
28 janv. 2010 à 20:41
voici mon batch Maintenant :

fichier vbs(modifier car le batch n'aime pas les espaces):

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_OperatingSystem")

For Each objItem in colItems
Select Case objItem.OSLanguage
Case 1 strLang = "Arabic"
Case 4 strLang = "Chinese (Simplified) - China"
Case 9 strLang = "English"
Case 1025 strLang = "Arabic - Saudi Arabia"
Case 1026 strLang = "Bulgarian"
Case 1027 strLang = "Catalan"
Case 1028 strLang = "Chinese (Traditional) - Taiwan"
Case 1029 strLang = "Czech"
Case 1030 strLang = "Danish"
Case 1031 strLang = "German - Germany"
Case 1032 strLang = "Greek"
Case 1033 strLang = "English"
Case 1034 strLang = "Spanish - Traditional Sort"
Case 1035 strLang = "Finnish"
Case 1036 strLang = "French"
Case 1037 strLang = "Hebrew"
Case 1038 strLang = "Hungarian"
Case 1039 strLang = "Icelandic"
Case 1040 strLang = "Italian - Italy"
Case 1041 strLang = "Japanese"
Case 1042 strLang = "Korean"
Case 1043 strLang = "Dutch"
Case 1044 strLang = "Norwegian - Bokmal"
Case 1045 strLang = "Polish"
Case 1046 strLang = "Portuguese - Brazil"
Case 1047 strLang = "Rhaeto-Romanic"
Case 1048 strLang = "Romanian"
Case 1049 strLang = "Russian"
Case 1050 strLang = "Croatian"
Case 1051 strLang = "Slovak"
Case 1052 strLang = "Albanian"
Case 1053 strLang = "Swedish"
Case 1054 strLang = "Thai"
Case 1055 strLang = "Turkish"
Case 1056 strLang = "Urdu"
Case 1057 strLang = "Indonesian"
Case 1058 strLang = "Ukrainian"
Case 1059 strLang = "Belarusian"
Case 1060 strLang = "Slovenian"
Case 1061 strLang = "Estonian"
Case 1062 strLang = "Latvian"
Case 1063 strLang = "Lithuanian"
Case 1065 strLang = "Persian"
Case 1066 strLang = "Vietnamese"
Case 1069 strLang = "Basque"
Case 1070 strLang = "Serbian"
Case 1071 strLang = "Macedonian (FYROM)"
Case 1072 strLang = "Sutu"
Case 1073 strLang = "Tsonga"
Case 1074 strLang = "Tswana"
Case 1076 strLang = "Xhosa"
Case 1077 strLang = "Zulu"
Case 1078 strLang = "Afrikaans"
Case 1080 strLang = "Faeroese"
Case 1081 strLang = "Hindi"
Case 1082 strLang = "Maltese"
Case 1084 strLang = "Gaelic"
Case 1085 strLang = "Yiddish"
Case 1086 strLang = "Malay - Malaysia"
Case 2049 strLang = "Arabic - Iraq"
Case 2052 strLang = "Chinese (Simplified) - PRC"
Case 2055 strLang = "German - Switzerland"
Case 2057 strLang = "English"
Case 2058 strLang = "Spanish - Mexico"
Case 2060 strLang = "French"
Case 2064 strLang = "Italian - Switzerland"
Case 2067 strLang = "Dutch"
Case 2068 strLang = "Norwegian - Nynorsk"
Case 2070 strLang = "Portuguese - Portugal"
Case 2072 strLang = "Romanian - Moldova"
Case 2073 strLang = "Russian - Moldova"
Case 2074 strLang = "Serbian - Latin"
Case 2077 strLang = "Swedish - Finland"
Case 3073 strLang = "Arabic - Egypt"
Case 3076 strLang = "Chinese (Traditional) - Hong Kong SAR"
Case 3079 strLang = "German - Austria"
Case 3081 strLang = "English"
Case 3082 strLang = "Spanish - International Sort"
Case 3084 strLang = "French"
Case 3098 strLang = "Serbian - Cyrillic"
Case 4097 strLang = "Arabic - Libya"
Case 4100 strLang = "Chinese (Simplified) - Singapore"
Case 4103 strLang = "German - Luxembourg"
Case 4105 strLang = "English"
Case 4106 strLang = "Spanish - Guatemala"
Case 4108 strLang = "French"
Case 5121 strLang = "Arabic - Algeria"
Case 5127 strLang = "German - Liechtenstein"
Case 5129 strLang = "English"
Case 5130 strLang = "Spanish - Costa Rica"
Case 5132 strLang = "French"
Case 6145 strLang = "Arabic - Morocco"
Case 6153 strLang = "English"
Case 6154 strLang = "Spanish - Panama"
Case 7169 strLang = "Arabic - Tunisia"
Case 7177 strLang = "English"
Case 7178 strLang = "Spanish - Dominican Republic"
Case 8193 strLang = "Arabic - Oman"
Case 8201 strLang = "English"
Case 8202 strLang = "Spanish - Venezuela"
Case 9217 strLang = "Arabic - Yemen"
Case 9226 strLang = "Spanish - Colombia"
Case 10241 strLang = "Arabic - Syria"
Case 10249 strLang = "English"
Case 10250 strLang = "Spanish - Peru"
Case 11265 strLang = "Arabic - Jordan"
Case 11273 strLang = "English"
Case 11274 strLang = "Spanish - Argentina"
Case 12289 strLang = "Arabic - Lebanon"
Case 12298 strLang = "Spanish - Ecuador"
Case 13313 strLang = "Arabic - Kuwait"
Case 13322 strLang = "Spanish - Chile"
Case 14337 strLang = "Arabic - U.A.E."
Case 14346 strLang = "Spanish - Uruguay"
Case 15361 strLang = "Arabic - Bahrain"
Case 15370 strLang = "Spanish - Paraguay"
Case 16385 strLang = "Arabic - Qutar"
Case 16394 strLang = "Spanish - Bolivia"
Case 17418 strLang = "Spanish - El Salvador"
Case 18442 strLang = "Spanish - Honduras"
Case 19466 strLang = "Spanish - Nicaragua"
Case 20490 strLang = "Spanish - Puerto Rico"
Case Else strLang = objItem.OSLanguage
End Select
Next

Const ForWriting = 2
Dim fso, f

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\Lang.txt", ForWriting,true)
f.write(strLang)

batch:

echo off
rem j'execute le script "vbs"
start strLang.vbs
type c:\Lang.txt
set a=
set /P a= < c:\Lang.txt
if %a%==French goto fr
if %a%==Dutch goto nl
if %a%==English goto en
cls
echo What is your languages ? (En)
echo Quelles est votre langues ? (Fr)
echo Wat is youstalen ? (Nl)
set /p l=Reponce, Answer, Antwoord:
if %l%==en goto en
if %l%==fr goto fr
if %l%==nl goto nl

:en
set m=Thanks
goto 1

:nl
set m=Bedankt
goto 1

:fr
set m=Merci
goto 1

:1
cls
echo %l%
pause>nul


Voila Merci a tous .....
0