Удаление лишних языков раскладок клавиатуры в Windows 10

Несколько раз в Windows 10 замечал странный баг, когда в списке раскладок клавиатуры языковой панели появляются лишние языки. Например, у меня на ноутбуке было установлено 2 языка: русский, английский. Но после очередного обновления Windows 10, в списке языков появились еще два дополнительных языка – English (United Kingdom) и English (Canada), хотя я их не добавлял. Теперь в списке раскладок клавиатуры у меня отображается четыре языка. Причем Windows не дает удалить дополнительные языки (кнопка Remove в языковой панели неактивна). При переключении языков клавишами Shift+Alt , или через языковую панель в трее, приходится переключаться между 4 раскладками клавиатуры вместо 2, что очень неудобно!

после установки WIndows 10 1803 появились дополнительные языки

Рассмотрим, как удалить такие неудаляемые раскладки клавиатуры в Windows 10 и Windows 11.

В Windows 10 обычно можно удалить любой язык раскладки клавиатуры, который не используется в качестве основного языка по умолчанию. Однако вы можете столкнуться с багом, когда некоторые языки нельзя удалить.

Первый раз баг с неудаляемой раскладкой клавиатуры появился после апгрейда до Windows 10 1803 (в этом билде было много других сюрпризов, например дополнительный раздел восстановления, который появился после обновления).
Баг проявляется, если добавить дополнительный язык, который использует тот же базовый язык, что и текущий язык отображения Windows. Такой дополнительный язык язык удалить нельзя.

К примеру, если английский язык (United States) является текущим языком интерфейса Windows, то после добавления английского языка (United Kingdom) вы не сможете удалить оба этих языка из списка предпочтительных. И, конечно, очень неудобно, что в языковой панели в системно трее (области уведомлений) появился лишний ненужный язык.

С помощью команды lpksetup вы не сможете удалить дополнительные языки из системы, т.к. этих языковых пакетов в Windows не установлено:

lpksetup /u en-gb
lpksetup /u en-ca

Удаление лишнего языка в Windows 10 с помощью PowerShell

Удалить ненужный дополнительный язык можно только с помощью PowerShell.

  1. Запустите Windows PowerShellс правами администратора;
  2. Выведите список установленных в Windows 10 языков пользователя командой: Get-WinUserLanguageList
    Get-WinUserLanguageList
  3. Запомните значение LanguageTag для предпочитаемого языка. К примеру, Ваш предпочитаемый язык English (United States): LanguageTag = en-US
  4. Сохраните значение предпочитаемого языка в переменную: $1=New-WinUserLanguageList en-US
  5. Теперь можно установить данный язык в качестве основного, удалив все остальные дополнительные языки: Set-WinUserLanguageList $1
  6. Клавишей Y нужно подтвердить удаление дополнительных языков.
    Set-WinUserLanguageList удаление дополнительных языков
  7. Убедитесь, что все дополнительные языки клавиатуры пропали.

Если вы хотите оставить в Windows несколько языковых раскладок клавиатуры, можно удалить только ненужные языки. К примеру, вы хотите удалить языки с LanguageTag en-Gb и zh-Hans-CN.

$LanguageList = Get-WinUserLanguageList
$DeleteLang = $LanguageList | where LanguageTag -eq "en-Gb"
$LanguageList.Remove($DeleteLang)
Set-WinUserLanguageList $LanguageList –Force

Для удаления китайского языка, замените вторую строку на:

$DeleteLang = $LanguageList | where LanguageTag -eq "zh-Hans-CN"

Или вы можете указать список языков, которые нужно оставить:

$1=New-WinUserLanguageList en-US
$1.Add("eu-US")
$1.Add("ru")

Set-WinUserLanguageList $1

Закройте консоль PowerShell и убедитесь, что все лишние языки в языковой панели Windows исчезли.

Как удалить лишнюю языковую раскладку через реестр Windows?

Если дополнительные языки удалились из списка языков ввода, но все еще отображаются в раскладках клавиатуры, нужно вручную удалить их из реестра.

  1. Запустите regedit.exe с правами администратора;
  2. Перейдите в ветку реестра HKEY_USERS\.DEFAULT\Keyboard Layout\Preload . Здесь отображается список языков, доступных на экране входа в систему;
  3. В ветке HKEY_CURRENT_USER\Keyboard Layout\Preload отображаются активные раскладки клавиатуры текущего пользователя. Например, 00000419 – русская раскладка, 0000409 – английская раскладка, 00000407 – немецкий и т.д.;раздел реестра keyboard layout preload содержит список включенных раскладок клавиатуры
  4. Удалите все ненужные языковые раскладки из реестра. Если нужно, измените нумерацию параметров реестра (названия параметров должны быть последовательными и начинаться с 1).

После этого ненужный язык пропадет из списка языков ввода.

Если дополнительные раскладки клавиатуры появляются на рабочем столе в удаленной RDP/RDS сессии, вы можете заблокировать передачу локальных раскладок клавиатуры на удаленном хосте с помощью параметра реестра:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v IgnoreRemoteKeyboardLayout /t REG_DWORD /d 1

Если вы уверены, что вам не нужна определенная раскладка, вы можете ее полностью заблокировать. Полный список раскладок клавиатуры хранится в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\.

Например, вы хотите заблокировать языковую раскладку 00000404 (Chinese (Traditional) - US Keyboard) .

  1. Сначала удалите лишние языки с помощью PowerShell (описано выше);
  2. Найдите подраздел 00000404 в указанной ветке реестра и переименуйте его в 00000404-no;полностью удалить язык ввода в Windows
  3. Перезагрузите Windows;
  4. Проверьте, что указанная раскладка клавиатуры больше не отображается.

Предыдущая статья Следующая статья


Комментариев: 50 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)