ТЕМА: Обзор эмуляторов локали
Обзор эмуляторов локали 6 года 2 мес. назад #100280










Думаю, ни для кого не секрет что зачастую программы и игры из страны восходящего солнца отказываются работать на Windows-системах с локалью, отличной от японской. Причина на то обычно довольно простая: зачастую файлы в творениях японских программистов названы иероглифами и их имена портятся при распаковке, либо сама программа не может обратиться к файлам по японским именам.
Одним из решений проблемы с распаковкой является использование подходящих архиваторов, однако для запуска вам всё равно потребуется японская локаль. Также, используя японскую локаль можно распаковывать игру вашим привычным 7zip или WinRAR и имена будут в порядке. Если игра распостраняется в виде установщика, а не архива, это также остаётся почти единственным решением проблемы.
Самым простым способом смены локали Windows является простое переключение её в настройках. Однако такой способ крайне неудобен: для смены локали туда и обратно каждый раз потребуется закрытие всех програм и перезаход в систему. Поэтому гораздо удобнее воспользоваться программами, которые эмулируют нужную локаль, благо их довольно много.
Самым старейшим эмулятором локали является Microsoft Applocale. Не устанавливайте его! Поскольку данный эмулятор написан рукоjопами Microsoft, при установке он вносит в систему некоторые изменения, которые в дальнейшем доставят вам множество головной боли. Например, установщики многих программ начнут использовать японский язык при установке и даже удаление программы это не исправит.
Существуют различные программы от более толковых людей для этой цели, сейчас я перечислю их.
Ни один из эмуляторов не является универсальным решением, так что если игра не работает с одним, просто попробуйте другие! Архиваторы и установщики, как правило, работают с любым из списка.
NTLEAS
Официальный сайт: ntlea.codeplex.com
Самый популярный (по моим наблюдениям) эмулятор локали.

Интерфейс предельно прост. Все настройки изначально выбраны для эмуляции японской локали, поэтому всё что вам остаётся — выбрать нужную программу в поле AppPath и нажать Save & Run.
NTLEAS отлично справляется с запуском большинства игр, поэтому вполне стоит того, чтобы в первую очередь попробовать именно его.
Locale Emulator
Официальный сайт: pooi.moe/Locale-Emulator/
Более молодой эмулятор. При установке добавляет пункт запуска с японской локалью в контекстное меню проводника.

Ну тут всё предельно понятно, даже добавить нечего.
Позволяет запустить некоторые более свежие 64-разрядные приложения, с которыми не всегда справляется NTLEAS.
SBAppLocale
Официальный сайт: www.steelbytes.com/?mid=45
Вариант для любителей командной строки

Запуск приложения с японской локалью осуществляется командой:
SBAppLocale.exe 1041 «C:\путь-до-приложения.exe»
Пользовался я им мало, поэтому про охват работающих приложений ничего не скажу.
Вот и всё Существуют и другие эмуляторы, но они часто не работают на Win10 или с 64-разрядными приложениями, поэтому рекомендую для начала ознакомиться с этими
Если кто-то знает другие хорошие варианты — можете писать в теме)
Устранение неполадок в Android Emulator
В этой статье описаны наиболее типичные ошибки и предупреждения, возникающие при настройке и запуске Android Emulator. Кроме того, описываются решения для этих ошибок, а также различные советы по устранению неполадок, которые помогут вам диагностировать проблемы с эмулятором.
Проблемы развертывания в Windows
Эмулятор может отображать некоторые сообщения об ошибках при развертывании приложения. Здесь описаны наиболее распространенные ошибки и решения.
Ошибки развертывания
Если отображается ошибка о сбое при установке APK на ваш компьютер или при запуске Android Debug Bridge (adb), убедитесь, что пакет SDK для Android может подключиться к эмулятору. Для проверки связи с эмулятором сделайте следующее:
- Запустите эмулятор из Android Device Manager (выберите ваше виртуальное устройство и зажмите Запустить).
- Откройте командную строку и перейдите в папку, в которой установлен adb. Если пакет SDK для Android установлен в расположении по умолчанию, adb находится в папке C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe; В противном случае измените этот путь для расположения пакета SDK для Android на компьютере.
- Введите следующую команду:
adb devices
List of devices attached emulator-5554 device
Ошибка доступа к MMIO
Если появляется сообщение Произошла ошибка доступа к MMIO, перезапустите эмулятор.
Отсутствующие сервисы Google Play
Если виртуальное устройство, запущенное в эмуляторе, не поддерживает установленные сервисы Google Play или Google Play Маркет, это часто связано с тем, что виртуальное устройство было создано без этих пакетов. При создании виртуального устройства (см. раздел Управление виртуальными устройствами с помощью Android Device Manager) не забудьте выбрать один или оба из следующих вариантов:
- API Google — включает службы Google Play на виртуальном устройстве.
- Google Play Store — включает Google Play Store на виртуальном устройстве.
Например, это виртуальное устройство будет включать сервисы Google Play и Google Play Маркет:

Образы Google Play Маркет доступны только для некоторых типов базовых устройств, например Pixel, Pixel 2, Nexus 5 и Nexus 5X.
Проблемы производительности
Проблемы производительности обычно вызваны одной из следующих проблем:
- Эмулятор работает без аппаратного ускорения.
- Виртуальное устройство, работающее в эмуляторе, не использует образ системы на базе x86.
В следующих разделах подробно описаны эти сценарии.
Аппаратное ускорение отключено
Если не включено аппаратное ускорение, при запуске виртуального устройства из Device Manager будет отображаться диалоговое окно с сообщением об ошибке, указывающее, что платформа гипервизора Windows (WHPX) настроена неправильно:

Если это сообщение об ошибке отображается, см. инструкции по проверке и включению аппаратного ускорения в разделе Проблемы с аппаратным ускорением.
Аппаратное ускорение включено, но эмулятор работает слишком медленно
Распространенной причиной этой проблемы является отсутствие образа на базе x86 в виртуальном устройстве (AVD). При создании виртуального устройства (см. раздел Управление виртуальными устройствами с помощью Android Device Manager) не забудьте выбрать образ системы на базе x86:

Проблемы с аппаратным ускорением
При использовании Hyper-V или HAXM для аппаратного ускорения вы можете столкнуться с проблемами конфигурации или конфликтами с другим программным обеспечением на компьютере. Проверьте, включено ли аппаратное ускорение (и какой метод ускорения используется в эмуляторе), введя следующую команду в командной строке:
"C:\Program Files (x86)\Android\android-sdk\emulator\emulator-check.exe" accel
Эта команда предполагает, что пакет SDK для Android установлен в расположении по умолчанию C:\Program Files (x86)\Android\android-sdk; В противном случае измените указанный выше путь к расположению пакета SDK для Android на компьютере.
Аппаратное ускорение недоступно
Если Hyper-V доступен, ответом на команду emulator-check.exe accel будет следующее сообщение:
HAXM is not installed, but Windows Hypervisor Platform is available.
Если HAXM доступен, выводится подобное сообщение:
HAXM version 6.2.1 (4) is installed and usable.
Если аппаратное ускорение недоступно, будет отображаться следующее сообщение (эмулятор ищет HAXM, если не удается найти Hyper-V):
HAXM is not installed on this machine
Если аппаратное ускорение недоступно, инструкции по его включению на компьютере см. в разделе Ускорение с помощью Hyper-V.
Неправильные настройки BIOS
Если BIOS настроен неправильно и не поддерживает аппаратное ускорение, при выполнении команды emulator-check.exe accel будет отображаться подобное сообщение:
VT feature disabled in BIOS/UEFI
Чтобы устранить эту проблему, перезагрузите BIOS на компьютере и включите следующие параметры:
- Технология виртуализации (может иметь другое название в зависимости от производителя системной платы).
- Предотвращение исполнения данных на основе оборудования.
Если аппаратное ускорение включено и BIOS настроен правильно, эмулятор должен успешно работать с аппаратным ускорением. Однако с Hyper-V и HAXM все равно могут возникать проблемы, как описано далее.
Проблемы с Hyper-V
В некоторых случаях при включении одновременно Hyper-V и платформы гипервизора Windows в диалоговом окне Включение и отключение компонентов Windows Hyper-V включается некорректно. Чтобы убедиться, что Hyper-V включен, сделайте следующее:
- Введите powershell в поле поиска Windows.
- Щелкните правой кнопкой мыши Windows PowerShell в результатах поиска и выберите Запуск от имени администратора.
- В консоли PowerShell выполните следующую команду:
Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
Если Hyper-V не включен, отобразится сообщение, аналогичное следующему примеру, указывающее, что hyper-V находится в состоянии Отключено:
FeatureName : Microsoft-Hyper-V-All DisplayName : Hyper-V Description : Provides services and management tools for creating and running virtual machines and their resources. RestartRequired : Possible State : Disabled CustomProperties :
Get-WindowsOptionalFeature -FeatureName HypervisorPlatform -Online
Если гипервизор не включен, отобразится сообщение, аналогичное следующему примеру, указывающее, что гипервизорПлатформа находится в состоянии Отключено:
FeatureName : HypervisorPlatform DisplayName : Windows Hypervisor Platform Description : Enables virtualization software to run on the Windows hypervisor RestartRequired : Possible State : Disabled CustomProperties :
Если Hyper-V и (или) платформа гипервизора не включены, используйте следующие команды PowerShell для их включения:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform -All
После завершения этих команд выполните перезагрузку.
Дополнительные сведения о включении Hyper-V (в том числе методы включения Hyper-V с помощью средства обслуживания и администрирования образов развертывания) см. в разделе Установка Hyper-V.
Проблемы с HAXM
Проблемы с HAXM часто вызваны конфликтом с другими технологиями виртуализации, неправильной конфигурацией или устаревшим драйвером HAXM.
Процесс HAXM не запущен
Если решение HAXM установлено, введите следующую команду в командной строке, чтобы проверить, что процесс HAXM запущен:
sc query intelhaxm
Если процесс HAXM запущен, вы увидите примерно следующий результат:
SERVICE_NAME: intelhaxm TYPE : 1 KERNEL_DRIVER STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0
Если параметр STATE не равен RUNNING , то для решения этой проблемы см. раздел Использование Intel Hardware Accelerated Execution Manager.
Конфликты HAXM с другими технологиями виртуализации
HAXM может конфликтовать с другими технологиями, использующими виртуализацию, такими как Hyper-V, Windows Device Guard и некоторые антивирусы:
- Hyper-V — если вы используете версию Windows до обновления Windows 10 за апрель 2018 г. (сборка 1803) и включена служба Hyper-V, выполните действия, описанные в разделе Отключение Hyper-V , чтобы включить HAXM.
- Device Guard — Device Guard и Credential Guard могут препятствовать отключению Hyper-V на компьютерах Windows. Порядок отключения Device Guard и Credential Guard см. в разделе Отключение Device Guard.
- Антивирусная программа . Если вы используете антивирусную программу, использующее аппаратную виртуализацию (например, Avast), отключите или удалите это программное обеспечение, перезагрузите и повторите попытку эмулятора Android.
Неправильные настройки BIOS
Если вы используете HAXM на компьютере с Windows, HAXM не заработает, пока технология виртуализации (Intel VT-x) не будет включена в BIOS. Если VT-x отключен, то при попытке запуска Android Emulator вы получите следующую ошибку:
Компьютер удовлетворяет требованиям для запуска HAXM, но технология виртуализации Intel (VT-x) отключена.
Для исправления этой ошибки перезагрузите компьютер в BIOS, включите VT-x и SLAT (трансляция адресов второго уровня) и перезагрузите компьютер обратно в Windows.
Отключение Hyper-V
Если вы используете версию Windows младше версии Windows 10 с обновлением за апрель 2018 г. (сборка 1803) , а Hyper-V включен, нужно отключить Hyper-V и перезапустить компьютер для установки и использования HAXM. Если вы используете версию Windows 10 с обновлением за апрель 2018 г. (сборка 1803) или более позднюю, Android Emulator версии 27.2.7 или более поздней может использовать Hyper-V (вместо HAXM) для аппаратного ускорения, поэтому отключать Hyper-V не требуется.
Технологию Hyper-V можно отключить из панели управления, выполнив следующие действия:

- Введите компоненты windows в поле поиска Windows и выберите Включение и отключение компонентов Windows в результатах поиска.
- Снимите флажок Hyper-V:
- Перезагрузите компьютер.
Также для отключения гипервизора Hyper-V можно использовать следующую команду Powershell:
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor
Intel HAXM и Microsoft Hyper-V не могут быть активны одновременно. К сожалению, переключение между технологиями Hyper-V и HAXM без перезагрузки компьютера невозможно.
В некоторых случаях выполнение описываемых выше действий не позволяет отключить технологию Hyper-V, если включены функции Device Guard и Credential Guard. Если вам не удается отключить Hyper-V (или по всем признакам эта технология отключена, но установка HAXM все равно завершается сбоем), отключите функции Device Guard и Credential Guard, выполнив действия, описываемые в следующем разделе.
Отключение функции Device Guard
Функции Device Guard и Credential Guard могут препятствовать отключению технологии Hyper-V на компьютерах под управлением ОС Windows. Это часто происходит на компьютерах, присоединенных к доменам, которые настраиваются и контролируются управляющей ими организацией. Чтобы проверить, выполняется ли функция Device Guard в ОС Windows 10, выполните следующие действия:

- Введите Сведения о системе в поле поиска Windows и выберите Сведения о системе в результатах поиска.
- В разделе Сведения о системе проверьте наличие службы Безопасность на основе виртуализации Device Guard и убедитесь, что она имеет состояние Выполняется:
Если функция Device Guard включена, выполните следующие действия для ее отключения:

- Убедитесь, что технология Hyper-V отключена в окне Включение или отключение компонентов Windows, как описывается в предыдущих разделах.
- В поле поиска Windows введите gpedit.msc и выберите элемент Изменение групповой политики. Будет запущен редактор локальных групповых политик.
- В редакторе локальных групповая политикаперейдите к разделу Конфигурация > компьютера Административные шаблоны > System > Device Guard:
- Измените значение параметра Включить средство обеспечения безопасности на основе виртуализации на Отключено (как показано выше) и закройте редактор локальных групповых политик.
- В поле поиска Windows введите cmd. Когда в результатах поиска появится элемент Командная строка, щелкните пункт Командная строка правой кнопкой мыши и выберите Запустить от имени администратора.
- Скопируйте и вставьте следующие команды в окно командной строки (если диск Z: используется, выберите вместо него букву свободного диска):
mountvol Z: /s copy %WINDIR%\System32\SecConfig.efi Z:\EFI\Microsoft\Boot\SecConfig.efi /Y bcdedit /create /d "DebugTool" /application osloader bcdedit /set path "\EFI\Microsoft\Boot\SecConfig.efi" bcdedit /set bootsequence bcdedit /set loadoptions DISABLE-LSA-ISO,DISABLE-VBS bcdedit /set device partition=Z: mountvol Z: /d
Если технология Hyper-V по-прежнему не отключена, значит, отключение функций Device Guard или Credential Guard запрещено политиками на вашем присоединенном к домену компьютере. В таком случае вы можете запросить у администратора домена исключение, которое позволит отключить Credential Guard. Кроме того, вы можете использовать для работы с HAXM компьютер, который не присоединен к домену.
Дополнительные советы по устранению неполадок
Следующие рекомендации часто помогают диагностировать проблемы с эмулятором Android.
Запуск эмулятора из командной строки
Если эмулятор еще не запущен, вы можете запустить его из командной строки (а не из среды Visual Studio) для просмотра его выходных данных. Как правило, образы AVD эмулятора Android хранятся в следующем расположении (замените имя_пользователя своим именем пользователя Windows):
C:\Users\username\.android\avd
Запустите эмулятор с образом AVD из этого расположения, передав имя папки AVD. Например, эта команда запускает виртуальное устройство Android с именем Pixel_API_27:
"C:\Program Files (x86)\Android\android-sdk\emulator\emulator.exe" -partition-size 512 -no-boot-anim -verbose -feature WindowsHypervisorPlatform -avd Pixel_API_27 -prop monodroid.avdname=Pixel_API_27
В этом примере предполагается, что пакет SDK для Android установлен в расположении по умолчанию C:\Program Files (x86)\Android\android-sdk; В противном случае измените указанный выше путь для расположения пакета SDK для Android на компьютере.
При выполнении этой команды вы получите много строк выходных данных во время запуска эмулятора. В частности, вы увидите строки, как в следующем примере, если аппаратное ускорение включено и работает должным образом (в этом примере для аппаратного ускорения используется HAXM):
emulator: CPU Acceleration: working emulator: CPU Acceleration status: HAXM version 6.2.1 (4) is installed and usable.
Просмотр журналов Device Manager
Часто можно диагностировать проблемы с эмулятором, просмотрев журналы Device Manager. Эти журналы записываются в следующее расположение:
C:\Users\username\AppData\Local\Xamarin\Logs\16.0
Просмотрите файл DeviceManager.log в текстовом редакторе, например в Блокноте. Следующий пример записи журнала указывает, что HAXM не найден на компьютере:
Component Intel x86 Emulator Accelerator (HAXM installer) r6.2.1 [Extra: (Intel Corporation)] not present on the system
Проблемы развертывания в macOS
Эмулятор может отображать некоторые сообщения об ошибках при развертывании приложения. Ниже описаны наиболее распространенные ошибки и решения.
Ошибки развертывания
Если отображается ошибка о сбое при установке APK на ваш компьютер или при запуске Android Debug Bridge (adb), убедитесь, что пакет SDK для Android может подключиться к эмулятору. Для проверки связи сделайте следующее:
- Запустите эмулятор из Android Device Manager (выберите ваше виртуальное устройство и зажмите Запустить).
- Откройте командную строку и перейдите в папку, в которой установлен adb. Если пакет SDK для Android установлен в расположении по умолчанию, adb находится в каталоге ~/Library/Developer/Xamarin/android-sdk-macosx/platform-tools/adb; в противном случае измените этот путь для расположения пакета SDK для Android на вашем компьютере.
- Введите следующую команду:
adb devices
List of devices attached emulator-5554 device
Ошибка доступа к MMIO
Если появляется сообщение Произошла ошибка доступа к MMIO, перезапустите эмулятор.
Отсутствующие сервисы Google Play
Если виртуальное устройство, запущенное в эмуляторе, не поддерживает установленные сервисы Google Play или Google Play Маркет, это обычно связано с тем, что виртуальное устройство было создано без этих пакетов. При создании виртуального устройства (см. раздел Управление виртуальными устройствами с помощью Android Device Manager) не забудьте выбрать один или оба из следующих вариантов:
- API Google — включает службы Google Play на виртуальном устройстве.
- Google Play Store — включает Google Play Store на виртуальном устройстве.
Например, это виртуальное устройство будет включать сервисы Google Play и Google Play Маркет:

Образы Google Play Маркет доступны только для некоторых типов базовых устройств, например Pixel, Pixel 2, Nexus 5 и Nexus 5X.
Проблемы производительности
Проблемы производительности обычно вызваны одной из следующих проблем:
- Эмулятор работает без аппаратного ускорения.
- Виртуальное устройство, работающее в эмуляторе, не использует образ системы на базе x86.
В следующих разделах подробно описаны эти сценарии.
Аппаратное ускорение отключено
Если аппаратное ускорение не включено, может появиться диалоговое окно с сообщением о том, что устройство будет запущено без ускорения, при развертывании приложения в эмуляторе Android. Если вы не знаете, включено ли аппаратное ускорение на компьютере (или хотите знать, какая технология обеспечивает ускорение), см. инструкции по проверке и включению аппаратного ускорения в разделе Проблемы с аппаратным ускорением.
Аппаратное ускорение включено, но эмулятор работает слишком медленно
Распространенной причиной этой проблемы является отсутствие образа на базе x86 в виртуальном устройстве. При создании виртуального устройства (см. раздел Управление виртуальными устройствами с помощью Android Device Manager) не забудьте выбрать образ системы на базе x86:

Проблемы с аппаратным ускорением
При использовании платформы гипервизора или HAXM для аппаратного ускорения эмулятора вы можете столкнуться с проблемами, вызванными неправильной установкой или устаревшей версией macOS. Следующие разделы помогут вам устранить эту проблему.
Проблемы с платформой гипервизора
Если вы используете macOS 10.10 или более поздней версии на более новом компьютере Mac, эмулятор Android будет автоматически использовать платформу гипервизора для аппаратного ускорения. Но на более старых компьютерах Mac или компьютерах Mac под управлением версии macOS ранее 10.10 платформа гипервизора может не поддерживаться.
Чтобы определить, поддерживает ли компьютер Mac платформу гипервизора,откройте окно терминала и введите следующую команду:
sysctl kern.hv_support
Если компьютер Mac поддерживает платформу гипервизора, эта команда вернет следующий результат:
kern.hv_support: 1
Если платформа гипервизора недоступна на компьютере Mac, следуйте инструкциям в разделе Ускорение с помощью HAXM, чтобы вместо этого использовать HAXM для ускорения.
Проблемы с HAXM
Если Android Emulator не запускается, обычно это вызвано проблемами с HAXM. Проблемы с HAXM часто вызваны конфликтом с другими технологиями виртуализации, неправильной конфигурацией или устаревшим драйвером HAXM. Переустановите драйвер HAXM при помощи процедуры, описанной в разделе Установка HAXM.
Дополнительные советы по устранению неполадок
Следующие рекомендации часто помогают диагностировать проблемы с эмулятором Android.
Запуск эмулятора из командной строки
Если эмулятор еще не запущен, вы можете запустить его из командной строки (а не из среды Visual Studio для Mac) для просмотра его выходных данных. Как правило, образы AVD эмулятора Android хранятся в следующем расположении:
~/.android/avd
Запустите эмулятор с образом AVD из этого расположения, передав имя папки AVD. Например, эта команда запускает виртуальное устройство Android с именем Pixel_2_API_28:
~/Library/Developer/Xamarin/android-sdk-macosx/emulator/emulator -partition-size 512 -no-boot-anim -verbose -feature WindowsHypervisorPlatform -avd Pixel_2_API_28 -prop monodroid.avdname=Pixel_2_API_28
Если пакет SDK для Android установлен в расположении по умолчанию, эмулятор находится в каталоге ~/Library/Developer/Xamarin/android-sdk-macosx/emulator; в противном случае измените этот путь для расположения пакета SDK для Android на вашем компьютере Mac.
При выполнении этой команды вы получите много строк выходных данных во время запуска эмулятора. В частности, вы увидите строки, как в следующем примере, если аппаратное ускорение включено и работает должным образом (в этом примере для аппаратного ускорения используется платформа гипервизора):
emulator: CPU Acceleration: working emulator: CPU Acceleration status: Hypervisor.Framework OS X Version 10.13
Проблемы с дополнительными возможностями намерения именования
При настройке дополнительных компонентов намерения в конфигурации запуска Android поддерживаются только числа A–Z, a–z, _, -» и . Кроме того, все значения ключей должны быть уникальными.
Просмотр журналов Device Manager
Часто можно диагностировать проблемы с эмулятором, просмотрев журналы Device Manager. Эти журналы записываются в следующее расположение:
~/Library/Logs/XamarinDeviceManager
Просмотрите файл Android Devices.log, дважды щелкнув его, чтобы открыть его в приложении консоли. Следующий пример записи журнала указывает, что HAXM не найден:
Component Intel x86 Emulator Accelerator (HAXM installer) r6.2.1 [Extra: (Intel Corporation)] not present on the system
Locale (Русский)
Состояние перевода: На этой странице представлен перевод статьи Locale. Дата последней синхронизации: 2022-04-03. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Локали определяют язык, который использует система, а также региональные особенности, такие как денежные знаки, формат чисел, даты и времени и наборы символов. Они используются glibc и некоторыми другими программами или библиотеками для рендеринга текста.
Генерирование локалей
Имена локалей обычно имеют вид [язык][_ТЕРРИТОРИЯ][.НАБОР_СИМВОЛОВ][@модификатор] , где язык это код языка ISO 639, ТЕРРИТОРИЯ это код страны ISO 3166 и НАБОР_СИМВОЛОВ это кодировка вроде ISO-8859-1 или UTF-8. Смотрите setlocale(3) .
Чтобы вывести список всех доступных и сгенерированных локалей, выполните:
$ locale -a
Перед тем, как локаль сможет быть использована в системе, она должна быть сгенерирована. Локали, которые вы можете сгенерировать перечислены в файле /etc/locale.gen . Чтобы сгенерировать локаль, первым делом раскомментируйте соответствующую строку в файле (а для удаления наоборот, закомментируйте); вы можете раскомментировать несколько локалей, в зависимости от ваших потребностей.
Например, для русской локали раскомментируйте ru_RU.UTF-8 UTF-8 :
/etc/locale.gen
. #ro_RO ISO-8859-2 #ru_RU.KOI8-R KOI8-R ru_RU.UTF-8 UTF-8 #ru_RU ISO-8859-5 #ru_UA.UTF-8 UTF-8 .
После сохранения файла сгенерируйте выбранные локали командой:
# locale-gen
- locale-gen также запускается каждый раз при обновлении glibc . [1]
- UTF-8 предпочтительнее других кодировок. [2]
Установка локали
Чтобы отобразить текущую локаль и связанные с ней переменные окружения, наберите:
$ locale
Используемая локаль, выбранная среди сгенерированных в системе, устанавливается в файлах locale.conf , каждый из которых должен содержать список переменных окружения в том же формате, в каком их выводит команда locale.
Чтобы посмотреть список доступных ранее сгенерированных локалей, выполните:
$ localedef --list-archive
Также можно использовать localectl(1) :
$ localectl list-locales
Установка системной локали
- Системная локаль устанавливается с помощью переменной LANG в файле /etc/locale.conf . Значением должен быть первый столбец из раскомментированной записи в /etc/locale.gen :
/etc/locale.conf
LANG=ru_RU.UTF-8
Вы можете установить ее также при помощи localectl:
# localectl set-locale LANG=ru_RU.UTF-8
Совет: Во время установки системы, если вас устраивает вывод команды locale, вы можете просто сохранить его в файл командой locale > /etc/locale.conf (в сеансе arch-chroot).
Переопределение системной локали в пользовательском сеансе
- Системная локаль может переопределяться в каждом пользовательском сеансе с помощью файла ~/.config/locale.conf (обычно ~/$XDG_CONFIG_HOME/locale.conf ).
- Это позволяет вести системные логи в /var/log/ на английском, при использовании местного языке в рабочей среде пользователя.
- Вы можете создать файл /etc/skel/.config/locale.conf , тогда для всех новых пользователей, добавленных командой useradd с опцией -m сразу будет автоматически сгенерирован файл ~/.config/locale.conf .
Немедленное применение изменений локали
После внесения изменений в файлы locale.conf , они вступят в силу после перезагрузки системы, и для отдельных сеансов пользователей — при входе. Чтобы принудительно обновить локаль в текущем окружении без перезагрузки, выполните:
$ unset LANG $ source /etc/profile.d/locale.sh
Примечание: Переменную LANG нужно обязательно сбросить, иначе locale.sh не обновит значения из locale.conf . Будут обновлены только новые и изменённые переменные; те же, что были удалены из файла locale.conf , по-прежнему останутся в текущем сеансе.
Дополнительно
Переменные окружения настроек локали могут также быть установлены обычным способом, как указано на странице переменные окружения.
Например, чтобы проверить, как работает конкретное приложение с какой-нибудь локалью, вы можете запустить его следующим образом:
$ LANG=С ./my_application.sh
Аналогично, для установки локали всем процессам, запускаемом из текущей командной оболочки (например, в процессе установки системы):
$ export LANG=C
Переменные окружения
Файлы locale.conf могут содержать следующие переменные окружения:
- LANG
- LANGUAGE
- LC_ADDRESS
- LC_COLLATE
- LC_CTYPE
- LC_IDENTIFICATION
- LC_MEASUREMENT
- LC_MESSAGES
- LC_MONETARY
- LC_NAME
- LC_NUMERIC
- LC_PAPER
- LC_TELEPHONE
- LC_TIME
Полное объяснение этих переменных можно узнать в locale(7) , детали описаны в locale(5) .
Примечание: При поиске значений, зависящих от локали, программы следуют определённому порядку приоритета.
LANG: локаль по умолчанию
Локаль, установленная в этой переменной используется в качестве значения для всех остальных LC_* -переменных, которые не установлены явно.
Совет: Например, вы англоговорящий пользователь в Испании и вы хотите, чтобы приложение обрабатывало числа и даты согласно стандартам Испании, но тексты были на английском. Тогда вы можете установить переменную LANG в значение es_ES.UTF-8 и переменную LC_MESSAGES в en_US.UTF-8 .
LANGUAGE: запасные локали
Программы, использующие gettext для перевода, учитывают также переменную LANGUAGE в дополнение к стандартным переменным. Это позволяет пользователям установить список локалей, которые будут использоваться в указанном порядке для поиска перевода. Если перевод для более предпочтительной локали (которая идет раньше в списке) недоступен, будет произведена попытка получить перевод для следующей, и так далее. Например, пользователь из Австралии может предпочесть британский вариант перевода американскому:
locale.conf
LANG=en_AU LANGUAGE=en_AU:en_GB:en
Note: Многие приложения не называют свою английскую локаль или псевдоним как en или en_US , а вместо этого делают ее локалью по умолчанию, то есть C . Если в LANGUAGE после английского указывается неанглийская локаль, например LANGUAGE=en_US:en:es_ES , то приложения могут выбрать дополнительную локаль, несмотря на наличие английских строк.[3] Решение состоит в том, чтобы всегда явно указывать локаль C после английского. Например, LANGUAGE=en_US:en:C:es_ES .
LC_TIME: формат даты и времени
Например, если переменная LC_TIME имеет значение en_US.UTF-8 , будет использован формат даты ММ/ДД/ГГГГ . Если вы хотите использовать формат ISO 8601 ( ГГГГ-ММ-ДД ), установите:
locale.conf
LC_TIME=en_DK.UTF-8
Вы можете распечатать текущую метку времени, используя формат даты и времени вашего региона с помощью date +»%c» .
glibc 2.29 исправляет ошибку, en_US.UTF-8 начал отображаться в 12-часовом формате, как и предполагалось. Если вы хотите использовать 24-часовой формат, используйте LC_TIME=C.UTF-8 .
Примечание: Программы не всегда учитывают указанный здесь формат даты. Например, date(1) использует свои собственные параметры, а Firefox не учитывал LC_TIME в версиях 57-84 (Bug 1429578).
LC_COLLATE: порядок сортировки
Эта переменная отвечает за правила определения сравнения наборов символов, которые используются для сортировки и регулярных выражений.
Установка значения LC_COLLATE=C , например, приведет к тому, что команда ls будет располагать файлы, имена которых начинаются с точки, первыми, за ними последуют имена, начинающиеся с цифры, затем с заглавной и, наконец, со строчной буквы:
/etc/locale.conf
LC_COLLATE=C
Чтобы избежать возможных проблем, в Arch переменная установлена как LC_COLLATE=C в /etc/profile , однако этот метод сейчас устарел.
LC_ALL: решение проблем
Переменная LC_ALL переопределяет своим значением все LC_* -переменные, включая LANG , независимо от того, установлены они или нет.
Переменная LC_ALL — единственная из всех LC_ -переменных, которую нельзя установить в /etc/locale.conf : она предназначена только в целях проверки при решении проблем.
Советы и рекомендации
Запуск приложения с другой локалью в терминале
Например, чтобы запустить программу abiword на иврите:
# env LANG=he_IL.UTF-8 abiword &
Запуск приложения с другой локалью из меню
Скопируйте файл .desktop в домашний каталог пользователя:
$ cp /usr/share/applications/abiword.desktop ~/.local/share/applications/
И отредактируйте команду в опции Exec :
~/.local/share/applications/abiword.desktop
Exec=env LANG=he_IL.UTF-8 abiword %U
Решение проблем
Эмулятор терминала не поддерживает UTF-8
Небольшой список терминалов с поддержкой UTF-8:
- gnustep-terminal
- konsole
- mlterm
- rxvt-unicode (Русский)
- st
- эмуляторы на основе VTE
- xterm — необходимо запускать с опцией -u8 или с настройкой xterm*utf8: 2 . Также вы можете запускать uxterm, который предоставляется пакетом xterm .
gnome-terminal или rxvt-unicode не поддерживают UTF-8
Чтобы заработала поддержка UTF-8 в этих приложениях, необходимо запускать их с локалью, в которой установлена кодировка UTF-8, например ru_RU.UTF-8 . Включите эту локаль в системе, установите ее как системную локаль по умолчанию в соответствиями с инструкциями в предыдущих разделах и перезагрузите компьютер.
Моя система использует неверный язык
Возможно, некоторые переменные окружения из locale.conf . Подробнее смотрите на странице Переменные окружения#Установка переменных.
Если вы используете окружение рабочего стола, такое как GNOME, его настройки могут перекрывать locale.conf .
KDE Plasma также позволяет изменить язык интерфейса через свои настройки. Если он всё равно использует язык по умолчанию после изменения, удаление файла ~/.config/plasma-localerc (ранее ~/.config/plasma-locale-settings.sh ) должно помочь.
Если вы используете экранный менеджер вместе с accountsservice , смотрите Display manager (Русский)#Установка языка.
LightDM автоматически использует accountsservice для выбора локали, если он установлен. В противном случае LightDM читает настройки сеанса из ~/.dmrc . Возможно, что нежелательные настройки локали прочитались оттуда.
Смотрите также
- Руководство по локализации Gentoo Linux
- http://wikigentoo.ksiezyc.pl/Locales.htm [устаревшая ссылка 2023-05-06 ⓘ]
- Интерактивная проверка сортировки от ICU
- Инициатива Free Standards Group создания открытого стандарта интернационализации
- О локалях в The Single UNIX Specification от The Open Group
- Переменные окружения для настройки локали на Ubuntu Help.
Retrieved from «https://wiki.archlinux.org/index.php?title=Locale_(Русский)&oldid=794584»
Locale emulator как удалить
15 янв 2018, 14:02
Заметил что интерфейс некоторых программ переведен на русский, а некоторые нет.
Решил исправить.
Проверил локализацию — русский.
Проверил файл /etc/locale.gen — раскомментирована только одна строка ru_RU.UTF-8 UTF-8
Запускаю locale -a и откуда ни возьмись.
mugalem@mugalem-P35 ~ $ locale -a C C.UTF-8 en_AG en_AG.utf8 en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IN en_IN.utf8 en_NG en_NG.utf8 en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZM en_ZM.utf8 en_ZW.utf8 POSIX ru_RU.utf8
Попробовал переконфигурить с помощью sudo dpkg-reconfigure locales в псевдографике выбираю опять же только ru_RU.UTF-8 UTF-8
mugalem@mugalem-P35 ~ $ sudo dpkg-reconfigure locales [sudo] password for mugalem: Generating locales (this might take a while). en_AG.UTF-8. done en_AU.UTF-8. done en_BW.UTF-8. done en_CA.UTF-8. done en_DK.UTF-8. done en_GB.UTF-8. done en_HK.UTF-8. done en_IE.UTF-8. done en_IN.UTF-8. done en_NG.UTF-8. done en_NZ.UTF-8. done en_PH.UTF-8. done en_SG.UTF-8. done en_US.UTF-8. done en_ZA.UTF-8. done en_ZM.UTF-8. done en_ZW.UTF-8. done ru_RU.UTF-8. done Generation complete.
Откуда они все лезут? И как их убить?
https://linux-hardware.org/?probe=c2923654de
Решение StarMAUGLI » 16 янв 2018, 10:52
16 янв 2018, 09:25
Попробуйте поправить по этой инструкции.
Бинго!
С устранением этой проблемы (locale -a) все получилось.
Правда, на локализацию программ (с которой все и началось), это решение не повлияло.
Поиск в других местах
http://linuxmint.info/text/linux-mint-r . rsija.html
с осмыслением полученых результатов навел на мысль поискать пакеты в Синаптике по маске ?*-ru
Первый же пакет kde-l10n-ru решил проблему окончательно (если есть интерес могу сделать скриншоты).
(единственная проблема при его установке
E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock - open (11: Ресурс временно недоступен)
решилась по совету с сайта http://ermin.ru/post/7
sudo fuser -vki /var/lib/dpkg/lock
Спасибо всем за помощь.
UPD: А как закрывать решенные темы?
StarMAUGLI
rogoznik Сообщения: 9892 Зарегистрирован: 27 июн 2017, 13:36 Решено: 124 Откуда: Нижний Тагил Благодарил (а): 763 раза Поблагодарили: 1919 раз Контактная информация:
Лишние локали в LM 18.3 KDE как удалить?
15 янв 2018, 14:26
А чем они тебе помешали? Локализация интерфейса программ от это не зависит.

rogoznik
Автор темы
StarMAUGLI Сообщения: 1649 Зарегистрирован: 10 сен 2016, 10:16 Решено: 19 Откуда: Москва Благодарил (а): 693 раза Поблагодарили: 187 раз Контактная информация:
Лишние локали в LM 18.3 KDE как удалить?
15 янв 2018, 16:09
15 янв 2018, 14:26
А чем они тебе помешали?
Перфекционизм. Хочу что бы все было правильно настроено.
Собственно предыдущую инкарнацию LM 18.2 с чинамоном я из этих же соображений решил столь радикально (переустановкой) заменить. Новогодние праздники на это дело убил. Думал, в KDE будет более гибкая система настроек и я как новичок смогу более тонко настроить свою систему.
И вот, свежак искаропки — и уже с какими-то ошибками.
StarMAUGLI
rogoznik Сообщения: 9892 Зарегистрирован: 27 июн 2017, 13:36 Решено: 124 Откуда: Нижний Тагил Благодарил (а): 763 раза Поблагодарили: 1919 раз Контактная информация:
Лишние локали в LM 18.3 KDE как удалить?
15 янв 2018, 18:06
15 янв 2018, 16:09
уже с какими-то ошибками.
А в чем заключаются ошибки то? Наличие лишних локалей — это не ошибка.
locale -a C C.UTF-8 en_AG en_AG.utf8 en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IN en_IN.utf8 en_NG en_NG.utf8 en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZM en_ZM.utf8 en_ZW.utf8 POSIX ru_RU.utf8 ru_UA.utf8

rogoznik
Автор темы
StarMAUGLI Сообщения: 1649 Зарегистрирован: 10 сен 2016, 10:16 Решено: 19 Откуда: Москва Благодарил (а): 693 раза Поблагодарили: 187 раз Контактная информация:
Лишние локали в LM 18.3 KDE как удалить?
15 янв 2018, 21:02
15 янв 2018, 18:06
Наличие лишних локалей — это не ошибка.
Это у вас тоже так? Вы свой locale -a вывели?
Ну не знаю. А почему тогда одни программы переведены на русский, а другие нет? В некоторых вообще меню смешанное.
Судите сами
в kate Меню: File — Правка — Вид — Project — Закладки — Session — Сервис .
в консоли: Файл — Правка — Вид — Bookmarks — .
в Spectacle, которым скриншот делаю: вообще все английское кроме кнопок Справка и Выход, хотя при правильной локализации эта программа, я точно знаю, нормально для KDE переведена (видел на другом компьютере) и все должно быть по русски.
А вот Файрфокс — все меню русское.
При этом открываю меню а там может быть название меню по русски, а внутри по английски и наборот.
Какое-то ощущение кривизны от всего этого. Или это нормально? Может быть это фича KDE?
Уж по мне тогда пусть бы все было английским. Хоть последний раз я работал на английской ОС (в винде когда она была 98-ой). Но так как-то честнее было. С тех пор с трудностями локализации не сталкивался.
И ладно бы я долго бы над своим профилем измывался, я бы думал что я сам напортачил. Но. Установка неделю от роду, профиль новый создан. Откуда ж?