Вы тут: Главная → Popular → Как удалить неудаляемые языки и раскладки клавиатуры в Windows
В чате @winsiders участник Kato пожаловался на необычную проблему после обновления до Windows 10 1803. Изначально у него в системе было три языка – английский (US), русский и украинский, а после обновления добавилось еще два английских – United Kingdom и Canada, которые не удалялись в Параметрах (кнопка Remove недоступна). Соответственно, эти языки появлялись в списке раскладок клавиатуры, хотя в настройках их не было.
[+] Сегодня в программе
Теория
В общем случае, можно удалить любой язык, который не используется по умолчанию. Например, если в системе только английский и русский языки, то первый можно удалить, если основным назначен второй. При этом неважно, каким был исходный язык системы (дистрибутива), что легко определяется в PowerShell командой:
(Get-CimInstance Win32_OperatingSystem).oslanguage
Команда выводит идентификатор языка, где 1033 – английский (US), 1049 – русский, остальные тут в десятичном виде или у Microsoft в шестнадцатеричном (вставляйте значения в калькулятор программиста).
На проблемной ОС эта команда выдала 2057, что соответствует English (United Kingdom). В сочетании с картиной из параметров это было очень странно, потому что у языка дистрибутива никаких языковых пакетов быть не должно, поскольку он и так есть в системе.
Для начала мы попытались удалить языковые пакеты UK и Canada командами lpksetup. Однако к успеху это ни привело, что намекало на фактические отсутствие этих языковых пакетов, но не приближало к решению проблемы фантомных языков. Пришлось зайти с черного хода.
Удаление неудаялемых языков
У PowerShell есть два командлета для управления языками пользователя – Get-WinUserLanguageList и Set-WinUserLanguageList. Первый умеет получать список языков, а второй задавать его. В PowerShell список соответствовал картине в параметрах.
Из справки второго командлета не вполне очевидно, как удалить ненужные языки. Зато она дает достаточно толстый намек на то, что вывод первого командлета представляет собой массив. Это можно использовать во благо. Нам нужны только первые три языка из списка.
$List = Get-WinUserLanguageList Set-WinUserLanguageList $($list[0], $list[1], $list[2]) -Force Get-WinUserLanguageList
Первая команда помещает в переменную массив из списка языков, а вторая задает в качестве текущих языков первые три элемента массива. При этом остальные языки удаляются! Третья команда выводит список языков для проверки.
Решено! В который уже раз PowerShell позволяет элегантно решить задачу без запредельных усилий. Если будете экспериментировать под учетной записью Microsoft, отключите синхронизацию языковых параметров во избежание нежелательных эффектов (я словил несколько странностей :).
Удаление неудаялемых раскладок клавиатуры
Этот раздел был добавлен значительно позже, потому что в статью приходят люди со смежной проблемой — появление фантомных раскладок клавиатуры при отсутствии соответствующих установленных языков. У этой проблемы может быть несколько вариантов решения.
Игнорирование дистанционных раскладок
Примените твик и перезагрузитесь. См. также пост в канале Telegram с кратким объяснением и готовым REG-файлом.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "IgnoreRemoteKeyboardLayout"=dword:00000001
Удаление раскладок из разделов Preload
HKEY_USERS\.DEFAULT\Keyboard Layout\Preload HKEY_CURRENT_USER\Keyboard Layout\Preload
Копирование языковых параметров
Читатель Yaroslav Chernousov сообщил, что после установки раскладки Бирмана ненужные раскладки возвращались даже после их удаления из разделов Preload. Ему помогло копирование текущих языковых параметров в экран приветствия / системные учетные записи и новые учетные записи пользователей. Win + R — intl.cpl
— дальше на картинке.
Удаление раскладок из системы
Это подходит в случае, если раскладка не нужна в принципе. Раскладки прописаны в разделе
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\<LCID>
Нужно удалять подраздел с нежелательной раскладкой.
Удаление раскладки после смены кодовой страницы (языка для неюникодных программ)
В современных Windows при смене кодовой страницы (например, с английской на русскую) автоматически добавляется для всех пользователей и метод ввода этого языка. Причем сам язык не добавляется! Однако в большинстве случаев этот язык уже установлен у пользователей, поэтому они ничего не замечают. Но бывает иначе. Варианты решения:
- Добавить в параметрах такой же язык, как установлен для кодовой страницы, а затем удалить его. В результате удаляется и ненужная раскладка. Самый простой способ, но у одного из читателей после перезагрузки раскладка возвращалась.
- Добавлять и тут же удалять язык скриптом из автозагрузки. Прием против лома — возвращения раскладки после перезагрузки.
- Заменить в языке проблемный метод ввода на несуществующий. Элегантное решение, недоступное в графическом интерфейсе.
В Windows 10 1803 языковые настройки практически полностью перекочевали из классической панели управления в Параметры (исключение составляет классическое окно с настройками сочетаний клавиш и языковой панели). В связи с этим я обновил статью про 6 языковых настроек, которые могут поставить вас в тупик в контексте изменившегося интерфейса.
В Windows 10 может быть установлено более одного языка ввода и интерфейса, при этом после последнего обновления Windows 10 многие столкнулись с тем, что стандартным способом в параметрах некоторые языки (дополнительные языки ввода, совпадающие с языком интерфейса) не удаляются.
В этой инструкции подробно о стандартном методе удаления языков ввода через «Параметры» и о том, как удалить язык Windows 10, если он не удаляется этим способом. Также может быть полезно: Как установить русский язык интерфейса Windows 10.
Простой метод удаления языка
Стандартно, при отсутствии каких-либо багов, языки ввода Windows 10 удаляются следующим образом:
- Зайдите в Параметры (можно нажать быстрые клавиши Win+I) — Время и язык (также можно нажать по значку языка в области уведомлений и выбрать пункт «Настройки языка»).
- В разделе «Регион и язык» в списке «Предпочитаемые языки» выберите тот язык, который нужно удалить и нажмите кнопку «Удалить» (при условии, что она активна).
Однако, как было отмечено выше, в том случае, если есть более одного языка ввода, совпадающих с языком интерфейса системы — кнопка «Удалить» для них не активна в последней версии Windows 10.
К примеру, если язык интерфейса «Русский», а в установленных языках ввода у вас есть «Русский», «Русский (Казахстан)», «Русский (Украина)», то все они не будут удаляться. Тем не менее, есть решения и для такой ситуации, которые описаны далее в руководстве.
Как удалить ненужный язык ввода Windows 10 с помощью редактора реестра
Первый из способов побороть баг Windows 10, связанный с удалением языков — использовать редактор реестра. При использовании этого способа, языки будут удалены из списка языков ввода (т.е. не будут использовать при переключении клавиатуры и отображаться в области уведомлений), но останутся в списке языков в «Параметрах».
- Запустите редактор реестра (нажмите клавиши Win+R, введите regedit и нажмите Enter)
- Перейдите к разделу реестра HKEY_CURRENT_USER\Keyboard Layout\Preload
- В правой части редактора реестра вы увидите список значений, каждое из которых соответствует одному из языков. Они расположены по порядку, также, как и в списке языков в «Параметрах».
- Нажав правой кнопкой мыши по ненужным языкам, удалите их в редакторе реестра. Если при этом будет неверная нумерация порядка (например, останутся записи под номерами 1 и 3), восстановите её: правый клик по параметру — переименовать.
- Перезагрузите компьютер или выйдите из системы и снова зайдите.
В результате ненужный язык исчезнет из списка языков ввода. Однако, удален полностью не будет и, более того, может снова появится в языках ввода после каких-либо действий в параметрах или очередного обновления Windows 10.
Удаление языков Windows 10 с помощью PowerShell
Второй способ позволяет полностью убрать ненужные языки в Windows 10. Для этого будем использовать Windows PowerShell.
- Запустите Windows PowerShell от имени администратора (можно через меню, открываемое правым кликом по кнопке «Пуск» или используя поиск на панели задач: начните вводить PowerShell, затем нажмите правой кнопкой мыши по найденному результату и выберите «Запуск от имени администратора». По порядку введите следующие команды.
-
Get-WinUserLanguageList
(В результате вы увидите список установленных языков. Обратите внимание на значение LanguageTag для языка, который нужно удалить. В моем случае это будет ru_KZ, вы в своей команде на 4-м шаге замените на своё.)
-
$List = Get-WinUserLanguageList
-
$Index = $List.LanguageTag.IndexOf("ru-KZ")
-
$List.RemoveAt($Index)
-
Set-WinUserLanguageList $List -Force
В результате выполнения последней команды ненужный язык будет удален. При желании тем же образом вы можете удалить другие языки Windows 10, повторив команды 4-6 (при условии, что вы не закрывали PowerShell) с уже новым значением Language Tag.
В завершение — видео, где описываемое показано наглядно.
Надеюсь, инструкция была полезна. Если же что-то не получается, оставляйте комментарии, я постараюсь разобраться и помочь.
This tutorial will show you how to completely remove a language and all of its optional language features for your account in Windows 11.
In Windows 11, you can add languages to install with optional language features and preferences such as:
- Language pack = Contains the latest Windows translations. Installing the language pack adds the language to your list of Windows display languages.
- Windows Display Language = Windows features like Settings and File Explorer will appear in this language. Requires language pack to be installed.
- Text-to-speech = Narrates what’s on your screen.
- Speech recognition = Enables you to talk instead of type and requires text-to-speech to be installed.
- Handwriting = Recognizes when you write on your device.
- Keyboard = The default keyboard for the language will be enabled.
- Basic typing = Provides the available spellcheckers and dictionaries.
- Optical character recognition = Extracts text from images so you can interact with it.
References:
Contents
- Option One: Remove Language in Settings
- Option Two: Remove Language in PowerShell
Option One
Remove Language in Settings
1 Open Settings (Win+I).
2 Click/tap on Time & language on the left side, and click/tap on Language & region on the right side. (see screenshot below)
3 Under Preferred languages, click/tap on the Options (3 dots) button for the language (ex: «English (United Kingdom») you want to uninstall, and click/tap on Remove. (see screenshot below)
You will not be able Remove a language if it is currently set as your Windows display language.
4 Click/tap on Yes to confirm. (see screenshot below)
5 You can now close Settings if you like.
Option Two
Remove Language in PowerShell
1 Open Windows Terminal, and select Windows PowerShell.
2 Copy and paste the Get-WinUserLanguageList
command into PowerShell, and press Enter to see a list of all languages currently installed for your account. (see screenshot below below step 3)
3 Make note of the LanguageTag (ex: «en-GB») for the language (ex: «English (United Kingdom») you want to uninstall. (see screenshot below)
4 Copy and paste the $LangList = Get-WinUserLanguageList
command into PowerShell, and press Enter. (see screenshot below)
5 Type the $MarkedLang = $LangList | where LanguageTag -eq "LanguageTag"
command into PowerShell, and press Enter. (see screenshot below)
Substitute LanguageTag in the command above with the actual LanguageTag (ex: «en-GB») for the language you want from step 3.
For example: $MarkedLang = $LangList | where LanguageTag -eq "en-GB"
6 Copy and paste the $LangList.Remove($MarkedLang)
command into PowerShell, and press Enter. (see screenshot below)
7 Copy and paste the Set-WinUserLanguageList $LangList -Force
command into PowerShell, and press Enter. (see screenshot below)
8 You can now close Windows Terminal if you like.
That’s it,
Shawn Brink
Related Tutorials
- Add a Language in Windows 11
- Add Language for Live Captions in Windows 11
- Change Order of Languages on Language Bar in Windows 11
- Add or Remove Keyboard Layout for Input Language in Windows 11
- Install Language Pack in Windows 11
- Change Display Language in Windows 11
- Change Keyboard Layout in Windows 11
- Change Default Input Method Override in Windows 11
- Show Language Bar on Desktop or Taskbar in Windows 11
- Add or Remove Language Bar in Windows 11
- Turn On or Off Use Different Keyboard Layout for each App Window in Windows 11
В современных версиях Windows 11 22H2 и Windows 10 21H2+ появилась возможность установки и управления языковыми пакетами с помощью PowerShell. В предыдущих версиях Windows вы могли установить или удалить языковые пакеты только из графического интерфейса классической панели управления или панели Settings (команда быстрого доступа
ms-settings:regionlanguage
).
В новых версиях Windows был добавлен встроенный PowerShell модуль LanguagePackManagement. С помощью команд из этого модуля вы можете установить дополнительный языковой пакет в Windows и задать предпочтительный язык пользовательского интерфейса Windows.
Модуль LanguagePackManagement пока доступен только в клиентских версиях Windows, но не в Windows Server 2022/2019.
Вы можете вывести список доступных командлетов в модуле:
Get-Command -Module LanguagePackManagement
-
Get-SystemPreferredUILanguage
(
Get-PreferredLanguage
,
Get-SystemLanguage
) – текущий язык системы по умолчанию -
Set-SystemPreferredUILanguage
(
Set-PreferredLanguage
) – задать предпочтительный язык интерфейса Windows -
Get-InstalledLanguage
(
Get-Language
,
Set-SystemLanguage
) – вывести список установленных языковых пакетов и языковых функций -
Install-Language
— установить языковой пакет в Windows -
Uninstall-Language
– удалить языковой пакет
Вывелем список доступных языковых пакетов на компьютере с Windows 10:
Get-InstalledLanguage
В данном примере на компьютере установлен только английский языковой пакет (Language Packs = LpCab). Русский доступен только в качестве языка ввода.
Language Language Packs Language Features -------- -------------- ----------------- en-US LpCab BasicTyping, Handwriting, Speech, TextToSpeech, OCR ru-RU None BasicTyping, Handwriting, OCR
Чтобы установить русский языковой пакет, выполните команду:
Install-Language -Language ru-ru
Windows загрузит указанный языковой пакет и дополнительные компоненты с серверов Microsoft и установит их в системе.
Полный список языковых пакетов для Windows
Тег | Описание |
ar-SA | Arabic (Saudi Arabia) |
bn-BD | Bangla (Bangladesh) |
bn-IN | Bangla (India) |
cs-CZ | Czech (Czech Republic) |
da-DK | Danish (Denmark) |
de-AT | Austrian German |
de-CH | “Swiss” German |
de-DE | Standard German |
el-GR | Modern Greek |
en-AU | Australian English |
en-CA | Canadian English |
en-GB | British English |
en-IE | Irish English |
en-IN | Indian English |
en-NZ | New Zealand English |
en-US | US English |
en-ZA | English (South Africa) |
es-AR | Argentine Spanish |
es-CL | Chilean Spanish |
es-CO | Colombian Spanish |
es-ES | Castilian Spanish (Central-Northern Spain) |
es-MX | Mexican Spanish |
es-US | American Spanish |
fi-FI | Finnish (Finland) |
fr-BE | Belgian French |
fr-CA | Canadian French |
fr-CH | “Swiss” French |
fr-FR | Standard French (France) |
he-IL | Hebrew (Israel) |
hi-IN | Hindi (India) |
hu-HU | Hungarian (Hungary) |
id-ID | Indonesian (Indonesia) |
it-CH | “Swiss” Italian |
it-IT | Standard Italian (Italy) |
jp-JP | Japanese (Japan) |
ko-KR | Korean (Republic of Korea) |
nl-BE | Belgian Dutch |
nl-NL | Standard Dutch Netherlands) |
no-NO | Norwegian (Norway) |
pl-PL | Polish (Poland) |
pt-BR | Brazilian Portuguese |
pt-PT | European Portuguese (Portugal) |
ro-RO | Romanian (Romania) |
ru-RU | Russian (Russian Federation) |
sk-SK | Slovak (Slovakia) |
sv-SE | Swedish (Sweden) |
ta-IN | Indian Tamil |
ta-LK | Sri Lankan Tamil |
th-TH | Thai (Thailand) |
tr-TR | Turkish (Turkey) |
zh-CN | Mainland China, simplified characters |
zh-HK | Hong Kong, traditional characters |
zh-TW | Taiwan, traditional characters |
Вы можете использовать дополнительные параметры команды Install-Language:
-
-CopyToSettings
– позволяет сразу назначить данный язык в качестве языка по умолчанию и применить настройки к экрану входа в Windows и для новых пользователей;Ранее вы могли сменить языковые настройки и раскладку клавиатуры на экране входа в систему через панель управления и реестр.
В Windows 11 доступен специальный командлет, который позволяет применить скопировать языковые настройки текущего пользователя и применить его к Welcome Screen и новым пользователям:
Copy-UserInternationalSettingsToSystem -WelcomeScreen $true -NewUser $true
-
-ExcludeFeatures
– позволяет исключить дополнительные компоненты языкового пакета (FoD, Features on Demand) из установки. Такие FoD (Features on Demand), как OCR, TextToSpeech или Handwriting.
Вывести предпочтительный язык интерфейса Windows:
Get-SystemPreferredUILanguage
В данном случае язык интерфейса английский (
en-us
).
Чтобы задать русский язык в качестве основного языка Windows, нужно выполнить команду:
Set-SystemPreferredUILanguage -Language ru-ru
Чтобы применить новый языковой пакет, нужно перезагрузить Windows. Выполните команду:
Restart-Computer
После перезагрузки язык интерфейса Windows сменится на русский.
Чтобы удалить ненужный языковой пакет в Windows:
Uninstall-Language -Language ru-ru
Если ваш компьютер не подключен к интернету, вы можете установить дополнительные языковые пакеты и компоненты с помощью DISM. Для этого вам нужно скачать ISO образ с Language Pack (https://learn.microsoft.com/en-us/azure/virtual-desktop/windows-11-language-packs), смонтировать ISO образ в Windows и установить языковой пакет и компоненты с помощью команд:
Dism /Online /Add-Package /PackagePath:D:\LanguagesAndOptionalFeatures\Microsoft-Windows-Client-Language-Pack_x64_ru-ru.cab
Dism /Online /Add-Capability /capabilityname:Language.Basic~~~ru-ru~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures
Dism /Online /Add-Capability /capabilityname:Language.Handwriting~~~ru-ru~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures
Dism /Online /Add-Capability /capabilityname:Language.OCR~~~ru-ru~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures
Dism /Online /Add-Capability /capabilityname:Language.Speech~~~ru-ru~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures
Dism /Online /Add-Capability /capabilityname:Language.TextToSpeech~~~ru-ru~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures