Если вы откроете Regional and Language Options
(через Control Panel
) и нажмете на Regional Options
вкладку, то появится раскрывающийся список всех доступных локалей.
Откуда этот список заполнен?
(Я хочу сравнить настройки для каждой локали; я в порядке, как это сделать, но мне нужен список имен локалей для циклического перебора.)
РЕДАКТИРОВАТЬ: После просмотра моего каталога Windows (вероятно, следует упомянуть, что я использую XP), файл
C:\WINDOWS\system32\locale.nls
выглядит как вероятный кандидат, но это бинарный файл. Это то, на что я должен смотреть, и если да, то как мне это прочитать?
windows-xp
locale
Ричард Коттон
источник
источник
Ответы:
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 и набрав
К сожалению, этот метод в настоящее время не работает с индийскими локалями (плюс несколько других). Смотрите отчет об ошибке здесь .
источник
У вас есть все они перечислены здесь . Я надеюсь, что это то, что вы ищете
источник