Как нейтральная культура отображается в конкретной культуре в методе CultureInfo.CreateSpecificCulture?

Я не знаю, как нейтральная культура отображается в определенной культуре. Это статично, как показано ниже?

en = en-US    
fr = fr-FR    
pt = pt-BR

Я проверил http://referencesource.microsoft.com/#mscorlib/system/globalization/cultureinfo.cs,44db57d9e190258e,references

& nativeInitCultureData от https://github.com/dotnet/coreclr/blob/master/src/classlibnative/nls/nlsinfo.cpp

но я не мог понять Кто-нибудь может помочь?

2 ответа

Я не думаю, что здесь есть точное отображение.

en а также en-US культуры различаются в зависимости от их LCID свойство, которое имеет 0x0009 а также 0x0409 с целью. en это нейронная культура, которая связана с языком, но не со страной или регионом.

Но en-US это особая культура, которая связана как с языком, так и со страной или регионом.

Вот почему вы можете создать RegionInfo с en-US

var region = new RegionInfo("en-US");

но вы не можете создать с en

var region = new RegionInfo("en");

который говорит;

Название региона en не должен соответствовать нейтральной культуре; требуется конкретное название культуры.

Существует иерархия между CultureInfo объекты, которые Parent определенной культуры является нейтральной культурой, а родитель нейтральной культуры является InvariantCulture,

Позвольте мне представить вам, как эта иерархия работает для en нейтральная культура:

введите описание изображения здесь

Почти есть родительские отношения между культурами. Вы можете увидеть это через:

var specificCultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.SpecificCultures);
foreach (var culture in specificCultures)
{
     var text = "Specific: " + culture.Name + " Parent: " + culture.Parent.Name;
     Console.WriteLine(text);
}

Дача (извлечение продукции):

Конкретный: ar-SA Родитель: ar
Конкретный: BG-BG Родитель: BG
Конкретный: ca-ES Родитель: ca
Конкретный: Ж-ТВ Родитель: Ж-ЧТ
Конкретный: cs-CZ Родитель: cs
Конкретный: да-ДК Родитель: да
Конкретный: де-де Родитель: де
Конкретный: el-GR Родитель: el
Конкретный: en-US Родитель: en
Конкретный: fi-FI Родитель: fi
Конкретный: FR-FR Родитель: FR
Конкретный: он-Ил Родитель: он

Из этого фрагмента видно, что родитель zh-TW является zh-CHT, Но это сводится к zh в конце концов (через zh-Hant). Следование родителю определенной культуры в конечном итоге приведет вас к нейтральному.

Другие вопросы по тегам