Windows обустроена так, что не все языки из неё можно удалить. Можно сколь угодно переводить интерфейс системы на другой язык, сколь угодно менять локационные сведения, но текущий язык системы и тот, который значился в её дистрибутиве или который указывался при установке в мультиязычных сборках, удалить юзабильным способом с использованием привычных системных настроек не удастся. А после обновления Windows 10 до April 2018 Update добавилась ещё одна проблема – региональные языковые пакеты в виде системных одних языков, но с раскладками клавиатуры других языков. Как удалить из Windows 10 ненужный язык, который не удаляется с использованием привычных системных средств?
1. Альтернативное средство удаления языков в Windows 10
После внедрения April 2018 Update из панели управления «Windows 10» исчезли языковые настройки. Теперь приложение «Параметры» - это единственное место, где предоставляется возможность юзабильной работы с языковыми настройками. Если ненужный язык не удаляется из-за проблем в работе приложения «Параметры» или из-за каких-то системных ошибок, можно прибегнуть к ещё оставшейся в системе альтернативе – к штатной утилите lpksetup. Запускаем её с помощью команды «Выполнить».
Выбираем «Удалить языки интерфейса».
Галочкой отмечаем, какой нужно удалить. Жмём «Далее».
И пробуем так вот удалить ненужный язык. Но, друзья, это всего лишь альтернатива функционалу управления языковыми пакетами в приложении «Параметры». Этот способ не решает вопрос с удалением упомянутых выше региональных языковых пакетов. Утилита lpksetup просто не увидит такие пакеты как отдельные системные языки. С ними придётся разбираться другими методами.
2. Региональные языковые пакеты в Windows 10
В среде Windows 10, обновлённой до April 2018 Update, кроме основного русскоязычного пакета, возможно существование дополнительных пакетов с русским языком для других стран – Украины, Молдовы, Казахстана, Беларуси и пр. Такие пакеты предусматривают в качестве системного языка русский, а в качестве раскладки – символику выбранной страны. Т.е. системный интерфейс (названия приложений, настроек, уведомлений) отображается на русском, а ввод с клавиатуры осуществляется на украинском, молдавском, белорусском и т.д. Такие региональные пакеты с нашим участием добавляются точно так же, как и обычные языковые пакеты.
Но в отдельных случаях они могут и сами появиться в системе. Региональные пакеты – это, по сути, аналог добавления раскладок других стран. Вот только проблемный этот аналог какой-то получается. Во-первых, глядя на языковую панель в системном трее, не поймёшь, какой из методов ввода сейчас активен – русский или другой страны. И тот, и тот отображаются как «РУС». Во-вторых, единожды установив русскоязычный пакет для другой страны, больше не сможем от него избавиться. Откроем языковые настройки Windows 10.
Для русскоязычного пакета другой страны недоступна функция удаления.
Региональный русский намертво приклеивается к системе и не удаляется даже при переводе языка системы на английский или любой другой язык. Поскольку русский – это язык дистрибутива Windows. С остальными языками ситуация аналогичная: английский, испанский, арабский и прочие распространённые языки существуют не только в виде основного языкового пакета, но также в виде дополнительных региональных пакетов для стран, где на этих языках говорят.
Избавиться от региональных языковых пакетов можно двумя способами:
• Первый – ненужный язык можно с помощью правки реестра убрать из методов ввода, чтобы он впустую не болтался при переключении раскладок;
• Второй – ненужный язык можно полностью удалить из системы с помощью PowerShell.
Смотрите далее, друзья, и выбирайте, какой из способов вам больше нравится. Ну или какой из них сработает.
3. Как убрать из методов ввода неудаляемый язык с помощью реестра
Если мы уберём региональный язык из методов ввода, он не исчезнет из приложения «Параметры», но он не будет отображаться на языковой панели в системном трее. Ну и, соответственно, не будет мешать при переключении языков и раскладок в процессе набора текста. Делается это с помощью реестра Windows.
Открыв редактор реестра, в первую очередь экспортируем его состояние. Экспорт реестра может пригодиться, если вдруг понадобится вернуть всё назад.
Далее раскрываем путь:
Компьютер\HKEY_CURRENT_USER\Keyboard Layout\Preload
В папке «Preload» в нашем случае имеется три пункта:
• Параметр 1 со значением 00000419 – это метод ввода основного русского;
• Параметр 2 со значением 00000409 – это метод ввода английского;
• Параметр 3 со значением 00002000 – это метод ввода украинского, того самого неудаляемого регионального языка.
Последний параметр нам, собственно, и нужно удалить.
Если в системе языков и раскладок установлено больше, чтобы не ошибиться, можно либо на время убрать их, либо найти по их значению справку в Интернете. Но даже ошибившись, помним об экспорте состояния реестра. Просто импортируем REG-файл и делаем всё по новой.
После проделанной операции перезаходим в систему. В методах ввода больше не должно быть лишнего языка, который мы убрали с помощью реестра. Кстати, мы его больше не сможем установить из магазина Microsoft Store.
4. Как удалить неудаляемый язык с помощью PowerShell
Для полного удаления неудаляемого языка запускаем от имени администратора PowerShell. Сначала нам нужно отобразить перечень установленных в системе языков. Вводим команду:
Get-WinUserLanguageList
В нашем случае PowerShell показывает три установленных языка:
• Основной русский – ru,
• Английский - en-US,
• Региональный украинский – ru-UA.
Запоминаем порядок языковых пакетов. Но порядок нужно запоминать в исчислении, начиная с нуля:
• Основной русский – 0,
• Английский – 1,
• Украинский – 2.
И так далее, если у вас языков больше.
Чтобы убрать региональный украинский, нам нужно с помощью PowerShell установить перечень языковых пакетов, которые мы хотим оставить в системе. В нашем случае это русский и английский, т.е. языки №0 и №1. Вводим по очереди команды:
$lang = Get-WinUserLanguageList
Set-WinUserLanguageList $($lang[0], $lang[1])
Затем подтверждаем действие клавишей Y.
Первая из введённых команд – универсальная. Во второй команде в каждом отдельном случае необходимо подправить номера. В нашем случае в скобках мы указали порядковые номера оставляемых языковых пакетов:
• Первый русский - $lang[0];
• Второй английский $lang[1].
Если оставляемых языков больше, в скобках команды через запятую добавляем их порядковые номера, начиная с нуля. Примерно так:
Set-WinUserLanguageList $($lang[0], $lang[1], $lang[2], $lang[3], $lang[4], $lang[6])
Выпадать из последовательности должен только порядковый номер удаляемого языка.
После успешной такой операции ненужный язык мгновенно исчезнет. Ни перезаход в систему, ни перезагрузка не потребуется.
|