Список локалей в Windows - PullRequest
       47

Список локалей в Windows

4 голосов
/ 01 марта 2011

В * nix системах вы можете сделать locale -a, чтобы получить список доступных локалей.

Какая эквивалентная команда (или действие) в Windows?

Я видел спискив Интернете, но большинство из них имеют только ярлыки локали, а не фактические названия локали.Кроме того, не во всех системах гарантированно установлены все из них, верно?

Обратите внимание, что мое определение «локали» здесь - «строка локали», то есть второй параметр в C's setlocale(), который приведет квозвращаемое значение, отличное от NULL.

Программные ответы тоже хороши, я просто устал от грубого угадывания имен локалей Windows.

Ответы [ 2 ]

6 голосов
/ 01 марта 2011

Изначально я не мог найти API C / Win32 для получения информации.(См. Позднее «Редактирование».) Однако похоже, что класс .NET System.Globalization.CultureInfo может предоставить необходимую информацию.В частности, см. CultureInfo.GetCultures ().Кажется, на этой странице есть полный пример того, что вы ищете.

РЕДАКТИРОВАТЬ: Если вы предпочитаете C / Win32 API, см. EnumSystemLocales ().

РЕДАКТИРОВАТЬ 2: В этом примере показано, как преобразовать LCID (полученный из EnumSystemLocales ()) в строку, используемую setlocale ().

1 голос
/ 01 марта 2011

Эта страница содержит ссылки на списки языков и стран / регионов, которые распознает WIN32 setlocale .Однако:

Набор доступных языков, кодов стран / регионов и кодовых страниц включает в себя все те, которые поддерживаются Win32 NLS API, за исключением кодовых страниц, для которых требуется более двух байтов на символ, таких как UTF-7 и UTF-8.Если вы предоставите кодовую страницу, такую ​​как UTF-7 или UTF-8, setlocale завершится с ошибкой и вернет NULL.

fail.

...