.NET китайский CultureInfo ж не существует?

Я использую .NET 3.5 и запускаю следующий код:

var culture = new CultureInfo("zh"); // Throws ArgumentException

Я получил строку "zh" из атрибута xml:lang. Я не понимаю, почему возникает исключение, потому что, например, "de" (который является родительским для "de-DE") работает нормально. Культура «zh-CN» действительно работает, но это ничего, что я могу использовать.

Редактировать: он работает на .NET 4.5.1 (спасибо xanatos) — поэтому, даже если на странице MSDN объясняется, что китайский язык является исключением, в более новых версиях .NET поведение отличается.


person Richie    schedule 11.03.2015    source источник
comment
Культуры нет, так как только zh в .NET Framework. Вы можете проверить: msdn.microsoft.com/ en-us/library/ee825488%28v=cs.20%29.aspx   -  person Soner Gönül    schedule 11.03.2015
comment
@SonerGönül В .NET 4.5 это работает :-)   -  person xanatos    schedule 11.03.2015
comment
@SonerGönül Это Commerce Server 2002   -  person xanatos    schedule 11.03.2015
comment
CultureInfo определяет имена культур из этого списка: msdn.microsoft.com/en-us /goglobal/bb896001.aspx   -  person cbr    schedule 11.03.2015
comment
@xanatos Верно, это похоже на NeutralCultures тип :)   -  person Soner Gönül    schedule 11.03.2015


Ответы (2)


На странице CultureInfo есть небольшое примечание:

Есть два названия культуры, которые противоречат этому правилу. Культуры китайский (упрощенный) с именем zh-Hans и китайский (традиционный) с именем zh-Hant являются нейтральными культурами. Имена культур представляют текущий стандарт и должны использоваться, если у вас нет причин использовать старые имена zh-CHS и zh-CHT.

Так что вы можете попробовать zh-Hans или zh-Hant

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

Принятый ответ гласит:

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

person xanatos    schedule 11.03.2015
comment
Это не ответ, это зависит не от ОС, а от версии .NET. - person Richie; 10.02.2017

В .NET 3.5 "zh" не работает, вместо этого используйте "zh-Hans" или "zh-Hant". Лучшего решения не нашел. Или переключитесь на .NET 4.5.

person Richie    schedule 10.02.2017