IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Detecter la langue de Windows [Batch]


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Novembre 2018
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Novembre 2018
    Messages : 64
    Points : 33
    Points
    33
    Par défaut Detecter la langue de Windows
    Bonjour, je cherche en batch un script permettant de trouver la langue utilisée par Windows pour ensuite créer une condition "goto" avec.

    Du style:
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    if /i "%language%" == "French" goto :French

  2. #2
    Nouveau membre du Club Avatar de Lockan
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Avril 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2019
    Messages : 14
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    Il y'a le moyen de détecter la langue selon la langue utilisée dans le nom des répertoires généraux windows (du genre if exist .../downloads = anglais, téléchargements = français ... etc).

    Sinon y'a une solution plus sympatoche qui consiste à aller chercher l'info dans le registre :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FOR /F "TOKENS=2,*" %%I IN ('REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language" ^| FIND /I "Default"') DO SET CODE=%%J
    IF /I %CODE% EQU "040C" SET LANG=FR
    IF /I %CODE% EQU "0009" SET LANG=EN
    :: ...
    ECHO %LANG%

    Tu dois pouvoir retrouver la liste complète des codes de langues windows sur internet. Si tu as besoin de toute la liste, je te conseille de la mettre dans un fichier texte que tu parcourras avec un FOR. ça sera plus lisible et maintenable.

    A savoir que cette liste contient aussi les variations pour chaque langues (du genre français canadien etc.).

  3. #3
    Membre à l'essai Avatar de Medeay
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Tu peut également passer par la clef de registre HKCU\Control Panel\International\Geo cela évitera de devoir coder la table de conversion des valeurs 040c en country code FR

    Mais il faudra bien garder à l’esprit que la c'est une clef de registre HKEY_CURRENT_USER et non HKEY_LOCAL_MACHINE

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
     
    for /f "tokens=3,*" %%d in ('REG QUERY "HKCU\Control Panel\International\Geo" /v Name') do set LANG=%%d
    echo %LANG%
    pause

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Ces entrées ne semble pas symétrique
    Et HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language semble être statique alors que la langue de l'os peut être modifiée.
    D'ailleurs plusieurs langues peuvent être présentes.

    https://www.fekwx.com/threads/resolu...-windows.2696/
    Langue d'affichage actuelle de l'utilisateur

    HKCU \ Panneau de configuration \ Bureau
    PreferredUILanguages

    Machine locale

    La langue d'installation est définie lors de l'installation et n'est jamais modifiée
    La valeur par défaut de la clé "HKLM \ SYSTEM \ CurrentControlSet \ Control \ nls \ language" est définie sur la même valeur. Cette valeur est mal lu par certains programmes d'installation InstallShield, ce qui entraîne l'interface en anglais sur Windows localisé.
    Si vous changez la langue d'affichage, la nouvelle valeur est stockée dans

    HKLM \ SYSTEM \ CurrentControlSet \ Contrôle \ MUI \ Paramètres
    LangueUI préférée

    Langue du système

    C'est la langue pour l'utilisateur du système.
    Avant qu'un utilisateur soit connecté, cette langue est utilisée.
    Cela signifie que c'est une langue pour l'écran d'accueil, et pour l'OOBE.

    HKEY_USERS \ S-1-5-18 \ Panneau de configuration \ Bureau \ MuiCached
    MachinePreferredUILanguages
    Tu peux aussi obtenir la langue d’installation de l'OS via le WMI sous forme décimal
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=2 delims==" %%A in ('wmic path win32_OperatingSystem get OSLanguage /Value') do set Language=%%A

    Correspondance : https://www.science.co.il/language/Locale-codes.php

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Novembre 2018
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Novembre 2018
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Medeay Voir le message
    Tu peut également passer par la clef de registre HKCU\Control Panel\International\Geo cela évitera de devoir coder la table de conversion des valeurs 040c en country code FR

    Mais il faudra bien garder à l’esprit que la c'est une clef de registre HKEY_CURRENT_USER et non HKEY_LOCAL_MACHINE

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
     
    for /f "tokens=3,*" %%d in ('REG QUERY "HKCU\Control Panel\International\Geo" /v Name') do set LANG=%%d
    echo %LANG%
    pause
    Je crois que le code est plutôt celui la non ? ( Nation à la place de Name.) Et nation de permet pas de retrouver la langage
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     for /f "tokens=3,*" %%d in ('REG QUERY "HKCU\Control Panel\International\Geo" /v Nation') do set LANG=%%d
    echo %LANG%

    Ou celui-la le permettrait peut-être non ?

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=3,*" %%d in ('REG QUERY "HKEY_CURRENT_USER\Control Panel\International\User Profile" /v Languages) do set LANG=%%d echo %LANG%

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajout d'une seconde langue S/Windows
    Par akli_agha dans le forum Windows
    Réponses: 2
    Dernier message: 07/12/2006, 14h55
  2. Ajout d'une langue sous Windows
    Par akli_agha dans le forum Delphi
    Réponses: 1
    Dernier message: 04/12/2006, 09h54
  3. Changement de la langue de Windows XP
    Par busy999 dans le forum Windows XP
    Réponses: 1
    Dernier message: 23/11/2006, 01h12
  4. Modification compléte de la langue sous Windows XP
    Par Watany dans le forum Windows XP
    Réponses: 1
    Dernier message: 08/02/2006, 10h39
  5. Recuperer langue de windows
    Par gilles641 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 03/08/2005, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo