Какие языки и региональные параметры поддерживаются классом CultureInfo в .NET 3.5?

Мне нужен список культур, поддерживаемых .NET 3.5, независимо от используемой ОС. Это кажется довольно сложной задачей, хотя я не уверен, почему!

Редактировать: Аргх, я не знал, что это зависит от ОС, что объясняет отсутствие документации. Любые идеи о том, что также поддерживается ОС Mac/Linux?

Спасибо :)


person Fiona - myaccessible.website    schedule 17.02.2010    source источник
comment
Из любопытства, зачем вам список?   -  person OregonGhost    schedule 17.02.2010
comment
Просто чтобы решить, для каких языков нам нужно будет создать собственные культуры и что мы можем использовать «из коробки». Например, недавно меня спросили, поддерживается ли валлийский язык.   -  person Fiona - myaccessible.website    schedule 17.02.2010
comment
Не забывайте, что CultureInfo предоставляет всего несколько строк (название на трех языках, коды ISO, название валюты) и форматирование даты и числа. Последнее в большинстве случаев не требует специализированных культур, поскольку они одинаковы для большинства родственных культур (т. е. в большинстве европейских стран используется одинаковое числовое форматирование). Итак, вопрос в том, нужна ли вам валлийская культура или вам просто нужны валлийские переводы? Кстати, хотя это не решит вашу общую проблему, cy-GB доступен в CultureInfo как конкретная культура. Кто-то, кто просит поддержки у валлийцев, скорее всего, будет...   -  person OregonGhost    schedule 18.02.2010
comment
... компьютер с установленной поддержкой валлийского языка или, по крайней мере, из родственного региона. Как уже было сказано, очень жаль, что Culture Explorer 2.0 больше не доступен...   -  person OregonGhost    schedule 18.02.2010
comment
Я нашел Culture Explorer 2.0 во всей его красе на Машина Waybach!   -  person Cristian Diaconescu    schedule 31.01.2013


Ответы (4)


К сожалению, это зависит от ОС. Проверьте здесь, чтобы узнать о поддержке языка по умолчанию для каждой ОС.

Обратите внимание, документация CultureInfo предупреждает:

Версии Windows или пакеты обновлений могут изменить доступные языки и региональные параметры.

В ASP.NET важнее браузер, чем ОС. Он может сообщить вам, какой язык предпочитает пользователь, через Accept-Language ( Раздел 14.4) заголовок запроса. Если для конфигурации глобализации приложения установлено значение enableClientBasedCulture="true", ASP .NET попытается автоматически установить для UICulture и Culture значение, предоставленное браузером. Кроме того, вы можете установить культуру вручную, просмотрев Request.UserLanguages. свойство:

К сожалению, невозможно создать исчерпывающий список возможных языков из ОС или браузера. Ближе всего к этому находится реестр языковых подтегов IANA. Это языковой реестр, описанный в RFC 4646 — документе, определяющем теги CultureInfo .NET.

Имейте в виду, что языковые теги в Request.UserLanguages ​​не могут быть действительными. Вы захотите проверить их. HTTP 1.1 использует старую рекомендацию для языковых тегов. ничто не мешает кому-то отправлять тарабарщину в заголовке языка.

person Corbin March    schedule 17.02.2010
comment
Если это приложение ASP.NET, я полагаю, вы имеете в виду, что оно основано на ОС сервера, на котором размещен сайт? - person Fiona - myaccessible.website; 17.02.2010
comment
В ASP.NET браузер предоставляет предпочтительный язык. Я обновлю свой ответ соответствующими ресурсами. - person Corbin March; 17.02.2010

Справочник по API поддержки национальных языков (NLS) содержит информацию о региональных настройках и позволяет для выбора ОС.

Microsoft Locale Builder — это инструмент для создания пользовательских локалей для Windows Vista и более поздних версий.

Получите список поддерживаемых культур, включая пользовательские, для ОС.

Пример С#,

System.Globalization.CultureInfo[] cultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures);
person Doug Domeny    schedule 14.04.2010

Можно создавать пользовательские языки и региональные параметры, но класс по умолчанию поддерживает эти языки и региональные параметры, предоставляемые операционной системой, в которой вы работаете. Существует ссылка на культуры, поддерживаемые по умолчанию в MSDN.

person Rowland Shaw    schedule 17.02.2010
comment
Если это приложение ASP.NET, я полагаю, вы имеете в виду, что оно основано на ОС сервера, на котором размещен сайт? - person Fiona - myaccessible.website; 17.02.2010
comment
@Fiona 'боится так - клиент может подключиться к культуре, которую сервер не понимает (возможно, en-scouse) - person Rowland Shaw; 17.02.2010

Я только что проверил с помощью Culture Explorer 2.0, существует различие между культурами только для Windows и установленными культурами, а также культурами .NET Framework (которые, по крайней мере, в моей системе содержат только культуру только для языка). Все они поддерживаются классом CultureInfo (а также RegionInfo, NumberFormatInfo и т. д.).

Я также запускал его в Mono (в Linux), это примерно то же самое, с отсутствующими культурами .NET Framework и культурами только для Windows, но есть специальные и нейтральные культуры. RegionInfo.CurrencyNativeName, похоже, не реализован в моей версии Mono, поэтому он вылетает при выборе любой культуры.

К сожалению, Culture Explorer 2.0 в настоящее время нигде не доступен (был на gotdotnet.com), я скачал его некоторое время назад. Это удобный инструмент для таких вещей. Возможно, вам посчастливится найти его в каком-нибудь архиве.

person OregonGhost    schedule 17.02.2010
comment
comment
@erikkallen: Это первая версия инструмента. Он не имеет всех категорий и поддерживает только инвариантные страны .NET, определенные языковые культуры. Я не знаю о лицензии Culture Explorer 2.0 - может быть, я смогу позже загрузить его на CodePlex. - person OregonGhost; 18.02.2010
comment
Я нашел Culture Explorer 2.0 во всей его красе на Машина Waybach! - person Cristian Diaconescu; 31.01.2013