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

Résolu
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 ...
Configuration: Windows XP Pro Fujitsu Siemens Core 2 Duo

16 réponses

  1. 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
    1. Contributeur
      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
      1. bel effort de ta part aussi :o)
        1
        1. Ok je vais essayer ca vers 15h10 car je doit partir

          Merci ;-)
          0
          1. Me semble que c'est une variable Unix, ça, non ?...
            0
            1. Contributeur
              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
              1. 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
                1. Contributeur
                  je n'ai pas souvenir de l'avoir définie chez moi
                  0
                  1. 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
                    1. salut, j'ai essayer le script mais il met Erreure Ligne 5 caract. 55 "unterminated string constant"

                      merci....
                      0
                      1. voila j'ai obtenu la réponce "francais - france" mais il ne veut pas ecrire dans un fichiers .

                        Merci de votre aide
                        0
                        1. Tu as écrit quoi comme routine d'écriture ? Poste le code ici, on verra pourquoi ça marche pas
                          0
                          1. 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
                            1. il ecrit strLang mais pas la langue quand c'est la commande "MsgBox strLang"
                              0
                              1. 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
                                1. 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