9

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

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

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


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

C:\WINDOWS\system32\locale.nls

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

2 ответа2

7

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()

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

2

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .