Подтвердить что ты не робот

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

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

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

Спасибо:)

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

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

Пример С#,

System.Globalization.CultureInfo[] cultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures);

Ответ 3

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

Ответ 4

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

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

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