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

[Résolu/Fermé]
Signaler
Messages postés
208
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
7 février 2014
-
 Utilisateur anonyme -
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 ...

16 réponses


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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
18247
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 août 2021
5 333
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci


bel effort de ta part aussi :o)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
208
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
7 février 2014
14
Ok je vais essayer ca vers 15h10 car je doit partir

Merci ;-)

Me semble que c'est une variable Unix, ça, non ?...
Messages postés
18247
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 août 2021
5 333
Windows et Unix
C:> ver
Microsoft Windows XP [version 5.1.2600]

C:> echo %LANG%
1036
--------------
$ uname
Linux
$ echo $LANG
en_US.UTF-8

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...
Messages postés
18247
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 août 2021
5 333
je n'ai pas souvenir de l'avoir définie chez moi

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.
Messages postés
208
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
7 février 2014
14
salut, j'ai essayer le script mais il met Erreure Ligne 5 caract. 55 "unterminated string constant"

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


Merci de votre aide

Tu as écrit quoi comme routine d'écriture ? Poste le code ici, on verra pourquoi ça marche pas
Messages postés
208
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
7 février 2014
14
Const ForWriting = 2
Dim fso, f

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

voila ....
Messages postés
208
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
7 février 2014
14
il ecrit strLang mais pas la langue quand c'est la commande "MsgBox strLang"
Messages postés
208
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
7 février 2014
14
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 " "
Messages postés
208
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
7 février 2014
14
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 .....