Где находится список доступных локалей Windows?


14

Если вы откроете Regional and Language Options(через Control Panel) и нажмете на Regional Optionsвкладку, то появится раскрывающийся список всех доступных локалей.

Откуда этот список заполнен?

(Я хочу сравнить настройки для каждой локали; я в порядке, как это сделать, но мне нужен список имен локалей для циклического перебора.)


РЕДАКТИРОВАТЬ: После просмотра моего каталога Windows (вероятно, следует упомянуть, что я использую XP), файл

C:\WINDOWS\system32\locale.nls

выглядит как вероятный кандидат, но это бинарный файл. Это то, на что я должен смотреть, и если да, то как мне это прочитать?


Я столкнулся с подобной ситуацией совсем недавно. Затем я узнал, что нет прямого способа узнать локали, поддерживаемые Windows. Я написал программу для печати всех поддерживаемых имен локалей под Windows. Вот ссылка на stackoverflow.com/questions/27614666/… . У меня также есть исполняемый файл, если хотите.
— user1

Ответы:


9

Microsoft не делает это легким для вас. Файл NLS, упомянутый в вопросе, содержит информацию о локали, но он находится в HEX. Даже с шестнадцатеричным редактором, содержимое далеко не читаемо человеком. Я решил воспользоваться альтернативной стратегией, вдохновленной ответом r0ca.

Существует более точный список доступных локалей, опубликованных Microsoft . К сожалению, даже этот список не совсем прав. (Я установил все доступные локали, и у меня есть Nothern Sotho, которого нет в списке Microsoft, но нет традиционного испанского, современного испанского или македонского. Украинский присутствует в списке дважды.)

Имена не совсем верны в списке Microsoft.

Как правило, имена должны иметь форму «Language» или «Language_Country Name», например «English» или «English_United Kindom»

Это означает, что подчеркивания после первых должны быть заменены пробелами, а имена людей должны быть заменены названиями стран, например, «Malay_Brunei_Darussalam» становится «Malay_Brunei Darussalam», «Dutch_Belgian» становится «Dutch_Belgium»

Есть много других странностей. Латинские, кириллические и некоторые другие слова должны быть заключены в скобки, например, "Serbian_Cyrillic_Bosnia_Herzegovina" становится "Сербской (кириллицей) _Босния и Герцеговина"

Точно так же "Sami_Inari" становится "Sami (Inari) _Finland")

Есть еще много примеров того, как угадывать правильные названия стран "English_Philippines" становится "English_Republic of Philippines"

Я понял большинство этих исключений, изменив локаль Windows с панели управления, затем загрузив R и набрав

Sys.getlocale()

К сожалению, этот метод в настоящее время не работает с индийскими локалями (плюс несколько других). Смотрите отчет об ошибке здесь .


5

У вас есть все они перечислены здесь . Я надеюсь, что это то, что вы ищете


Спасибо, хотя я действительно хочу список языков, доступных в моей системе. Например, у меня не установлен китайский, но есть северный сото (которого не было в списке). (Пойди разберись с этими параметрами ...) Дело в том, что Windows должна хранить список того, что где-то установлено; Я просто не могу найти это.
— Ричард Коттон

Все еще пытаюсь заставить работать этот читатель .nls ... Черт возьми!
— r0ca

Спасибо за вашу настойчивость. Кажется, что последняя версия считывателя NLS от Gudu Software повреждена. Я послал им по электронной почте, чтобы сказать им, поэтому нам придется подождать и посмотреть.
— Ричард Коттон

Да, у меня было то же самое, но я не писал по электронной почте. Также пробовал с нескольких зеркал, но ... не повезло!
— r0ca
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.