Vous ne pouvez pas utiliser InstallLanguage sous HKLM \ SYSTEM \ CurrentControlSet \ Control \ nls \ langue
parce que c'est juste ce qu'il dit qu'il est: Installer la langue
Bien que vous pouvez directement installer la version localisée de Windows, ce n'est pas toujours fait, car ce n'était pas sur mon PC. Au lieu de cela, un pack de langue est appliqué, ce qui est correct, mais la langue d'affichage n'est pas la même que la langue d'installation.
De même, si un utilisateur change sa langue d'affichage, le libellé InstallLanguage ne reflète pas la modification. Et il pourrait y avoir plus d'utilisateurs avec différents langages d'affichage.
- Affichage actuel de l'utilisateur Langue
HKCU \ Control Panel \ Desktop
PreferredUILanguages
FOR /F "tokens=3" %%a IN ('reg query "HKCU\Control Panel\Desktop" /v PreferredUILanguages ^| find "PreferredUILanguages"') DO set UILanguage=%%a
echo User Display Language: %UILanguage%
Il existe une différence entre la langue de la machine locale, la langue du système et la langue de l'utilisateur. Il y a aussi des réglages séparés pour la langue BCD, utilisée pour la récupération et le gestionnaire de démarrage
langue d'installation est défini lors de l'installation et ne change jamais
également une valeur par défaut 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 \ Control \ MUI \ Paramètres
PreferredUiLanguages
ceci surpassera valeur InstallLanguage sous HKLM \ SYSTEM \ CurrentControlSet \ Control \ nls \ language
Il existe une confusion dans les types de valeurs, alors que InstallLanguage est LCID, PreferredUiLanguages est une chaîne LCID. Cette langue est ensuite signalée en tant que langue machine locale. Il n'est pas utilisateur Langue d'affichage
C'est la langue de l'utilisateur du système.
Avant qu'un utilisateur ne soit connecté, cette langue est utilisée.
Cela signifie qu'il s'agit d'une langue pour l'écran d'accueil et pour l'OOBE.
HKEY_USERS \ S-1-5-18 \ Control Panel \ Desktop \ MuiCached
MachinePreferredUILanguages
Il y a aussi un moyen WMI pour obtenir la langue du système d'exploitation, mais Je n'ai pas testé laquelle de ces langues vous obtiendrez
wmic o s get locale, oslanguage, CODESET
FOR /F "tokens=2 delims==" %%a IN ('wmic os get OSLanguage /Value') DO set OSLanguage=%%a
echo OS Language: %OSLanguage%
Borderline serverfault question. – gn22
Vous voulez la langue de l'interface utilisateur, non? Pas le lieu? – Joey