CultureInfo.GetCultures(CultureTypes) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает список поддерживаемых языков и региональных параметров, отфильтрованных указанным CultureTypes параметром.
public:
static cli::array <System::Globalization::CultureInfo ^> ^ GetCultures(System::Globalization::CultureTypes types);
public static System.Globalization.CultureInfo[] GetCultures(System.Globalization.CultureTypes types);
static member GetCultures : System.Globalization.CultureTypes -> System.Globalization.CultureInfo[]
Public Shared Function GetCultures (types As CultureTypes) As CultureInfo()
Параметры
- types
- CultureTypes
Побитовая комбинация значений перечисления, которые фильтруют региональные параметры для извлечения.
Возвращаемое значение
Массив, содержащий региональные параметры, заданные параметром types . Массив языков и региональных параметров не отсортирован.
Исключения
types указывает недопустимое сочетание значений CultureTypes .
Примеры
В следующем примере кода отображаются несколько свойств нейтральных языков и региональных параметров.
Замечание
В примере отображаются zh-CHS и zh-CHT региональные параметры с идентификаторами языка и региональных параметров 0x0004 и 0x7C04 соответственно. Однако приложения Windows Vista должны использовать zh-Hans имя вместо zh-CHS имени и zh-Hant имя вместо zh-CHT. Имена zh-Hans и zh-Hant имена представляют текущий стандарт и должны использоваться, если у вас нет причины использования старых имен.
using System;
using System.Globalization;
public class SamplesCultureInfo
{
public static void Main()
{
// Displays several properties of the neutral cultures.
Console.WriteLine("CULTURE ISO ISO WIN DISPLAYNAME ENGLISHNAME");
foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.NeutralCultures))
{
Console.Write("{0,-7}", ci.Name);
Console.Write(" {0,-3}", ci.TwoLetterISOLanguageName);
Console.Write(" {0,-3}", ci.ThreeLetterISOLanguageName);
Console.Write(" {0,-3}", ci.ThreeLetterWindowsLanguageName);
Console.Write(" {0,-40}", ci.DisplayName);
Console.WriteLine(" {0,-40}", ci.EnglishName);
}
}
}
/*
This code produces the following output. This output has been cropped for brevity.
CULTURE ISO ISO WIN DISPLAYNAME ENGLISHNAME
ar ar ara ARA Arabic Arabic
bg bg bul BGR Bulgarian Bulgarian
ca ca cat CAT Catalan Catalan
cs cs ces CSY Czech Czech
da da dan DAN Danish Danish
de de deu DEU German German
el el ell ELL Greek Greek
en en eng ENU English English
es es spa ESP Spanish Spanish
fi fi fin FIN Finnish Finnish
zh zh zho CHS Chinese Chinese
zh-Hans zh zho CHS Chinese (Simplified) Chinese (Simplified)
zh-Hant zh zho ZHH Chinese (Traditional) Chinese (Traditional)
Note: zh-Hant returns ZHH when using ICU (default). When NLS mode is enabled, it returns CHT.
*/
' Displays several properties of the neutral cultures.
Console.WriteLine("CULTURE ISO ISO WIN DISPLAYNAME ENGLISHNAME")
Dim ci As CultureInfo
For Each ci In CultureInfo.GetCultures(CultureTypes.NeutralCultures)
Console.Write("{0,-7}", ci.Name)
Console.Write(" {0,-3}", ci.TwoLetterISOLanguageName)
Console.Write(" {0,-3}", ci.ThreeLetterISOLanguageName)
Console.Write(" {0,-3}", ci.ThreeLetterWindowsLanguageName)
Console.Write(" {0,-40}", ci.DisplayName)
Console.WriteLine(" {0,-40}", ci.EnglishName)
Next ci
'This code produces the following output. This output has been cropped for brevity.
'
'CULTURE ISO ISO WIN DISPLAYNAME ENGLISHNAME
'ar ar ara ARA Arabic Arabic
'bg bg bul BGR Bulgarian Bulgarian
'ca ca cat CAT Catalan Catalan
'cs cs ces CSY Czech Czech
'da da dan DAN Danish Danish
'de de deu DEU German German
'el el ell ELL Greek Greek
'en en eng ENU English English
'es es spa ESP Spanish Spanish
'fi fi fin FIN Finnish Finnish
'zh zh zho CHS Chinese Chinese
'zh-Hans zh zho CHS Chinese (Simplified) Chinese (Simplified)
'zh-Hant zh zho ZHH Chinese (Traditional) Chinese (Traditional)
'
'Note: zh-Hant returns ZHH when using ICU (default). When NLS mode is enabled, it returns CHT.
Комментарии
Метод GetCultures чаще всего вызывается с параметром types , заданным следующими значениями:
SpecificCultures— возвращает все определенные региональные параметры.
NeutralCultures, который возвращает все нейтральные региональные параметры и инвариантную культуру.
AllCultures, который возвращает все нейтральные и определенные региональные параметры, региональные параметры, установленные в системе Windows, и пользовательские региональные параметры, созданные пользователем.
UserCustomCulture— возвращает все пользовательские региональные параметры, такие как зарегистрированные классом CultureAndRegionInfoBuilder . В версиях Windows до Windows 10 UserCustomCulture значение применяется ко всем пользовательским языкам и региональным параметрам. Начиная с Windows 10, он применяется к системным культурам, которые не имеют полных культурных данных и не имеют уникального локального идентификатора, как указано LCID значением свойства. В результате код, например следующий, возвращает различные результаты при запуске в Windows 10 и более ранней версии Windows.
using System; using System.Globalization; public class Example { public static void Main() { CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.UserCustomCulture | CultureTypes.SpecificCultures); int ctr = 0; foreach (var culture in cultures) if ((culture.CultureTypes & CultureTypes.UserCustomCulture) == CultureTypes.UserCustomCulture) ctr++; Console.WriteLine("Number of Specific Custom Cultures: {0}", ctr); } } // If run under Windows 8, the example displays output like the following: // Number of Specific Custom Cultures: 6 // If run under Windows 10, the example displays output like the following: // Number of Specific Custom Cultures: 279Dim cultures() As CultureInfo = CultureInfo.GetCultures(CultureTypes.UserCustomCulture Or CultureTypes.SpecificCultures) Dim ctr As Integer = 0 For Each culture In cultures If (culture.CultureTypes And CultureTypes.UserCustomCulture) = CultureTypes.UserCustomCulture Then ctr += 1 End If Next Console.WriteLine("Number of Specific Custom Cultures: {0}", ctr) ' If run under Windows 8, the example displays output like the following: ' Number of Specific Custom Cultures: 6 ' If run under Windows 10, the example displays output like the following: ' Number of Specific Custom Cultures: 279