CultureTypes Перечисление

Определение

Определяет типы списков языков и региональных параметров, которые можно получить с помощью метода GetCultures(CultureTypes).

Это перечисление поддерживает побитовую комбинацию значений его членов.

public enum class CultureTypes
[System.Flags]
public enum CultureTypes
[System.Flags]
[System.Serializable]
public enum CultureTypes
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CultureTypes
[<System.Flags>]
type CultureTypes = 
[<System.Flags>]
[<System.Serializable>]
type CultureTypes = 
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CultureTypes = 
Public Enum CultureTypes
Наследование
CultureTypes
Атрибуты

Поля

AllCultures 7

Все языки и региональные параметры, распознаваемые .NET, включая нейтральные и определенные, а также созданные пользователем.

В .NET Framework 4 и более поздних версиях и .NET Core под управлением Windows содержатся данные языка и региональных параметров, доступные в операционной системе Windows. В .NET Core под управлением Linux и macOS содержатся данные языка и региональных параметров, которые определены в библиотеках ICU.

AllCultures представляет собой составное поле, содержащее значения NeutralCultures, SpecificCultures и InstalledWin32Cultures.

FrameworkCultures 64

Этот элемент считается нерекомендуемым. При использовании этого значения с GetCultures(CultureTypes) будут возвращены нейтральные и конкретные языки и региональные параметры, поставляемые с платформой .NET Framework 2.0.

InstalledWin32Cultures 4

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

NeutralCultures 1

Языки и региональные параметры, связанные с языком, но не с определенной страной или регионом.

ReplacementCultures 16

Этот элемент считается нерекомендуемым. Пользовательский язык и региональные параметры, замещающие язык и региональные параметры платформы .NET Framework.

SpecificCultures 2

Языки и региональные параметры, присущие стране или региону.

UserCustomCulture 8

Этот элемент считается нерекомендуемым. Пользовательские языки и региональные параметры.

WindowsOnlyCultures 32

Этот элемент считается нерекомендуемым и игнорируется.

Примеры

В следующем примере демонстрируется CultureTypes.AllCultures элемент перечисления и CultureTypes свойство.

using System;
using System.Globalization;

class Sample
{
    public static void Main()
    {
        // Get and enumerate all cultures.
        var allCultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
        foreach (var ci in allCultures)
        {
            // Display the name of each culture.
            Console.Write($"{ci.EnglishName} ({ci.Name}): ");
            // Indicate the culture type.
            if (ci.CultureTypes.HasFlag(CultureTypes.NeutralCultures))
               Console.Write(" NeutralCulture");
            if (ci.CultureTypes.HasFlag(CultureTypes.SpecificCultures))
               Console.Write(" SpecificCulture");
            Console.WriteLine();
        }
    }
}
/*
The following is a portion of the output from this example.
      Tajik (tg):  NeutralCulture
      Tajik (Cyrillic) (tg-Cyrl):  NeutralCulture
      Tajik (Cyrillic, Tajikistan) (tg-Cyrl-TJ):  SpecificCulture
      Thai (th):  NeutralCulture
      Thai (Thailand) (th-TH):  SpecificCulture
      Tigrinya (ti):  NeutralCulture
      Tigrinya (Eritrea) (ti-ER):  SpecificCulture
      Tigrinya (Ethiopia) (ti-ET):  SpecificCulture
      Tigre (tig):  NeutralCulture
      Tigre (Eritrea) (tig-ER):  SpecificCulture
      Turkmen (tk):  NeutralCulture
      Turkmen (Turkmenistan) (tk-TM):  SpecificCulture
      Setswana (tn):  NeutralCulture
      Setswana (Botswana) (tn-BW):  SpecificCulture
      Setswana (South Africa) (tn-ZA):  SpecificCulture
*/
Imports System.Globalization

Module Module1
    Public Sub Main()
        ' Get and enumerate all cultures.
        Dim allCultures = CultureInfo.GetCultures(CultureTypes.AllCultures)
         For Each ci In allCultures
            ' Display the name of each culture.
            Console.Write($"{ci.EnglishName} ({ci.Name}): ")
            ' Indicate the culture type. 
            If ci.CultureTypes.HasFlag(CultureTypes.NeutralCultures) Then
               Console.Write(" NeutralCulture")
            End If   
            If ci.CultureTypes.HasFlag(CultureTypes.SpecificCultures) Then
               Console.Write(" SpecificCulture")
            End If   
            Console.WriteLine()
        Next
    End Sub  
End Module
' The following is a portion of the output from this example.
'            Tajik (tg):  NeutralCulture
'            Tajik (Cyrillic) (tg-Cyrl):  NeutralCulture
'            Tajik (Cyrillic, Tajikistan) (tg-Cyrl-TJ):  SpecificCulture
'            Thai (th):  NeutralCulture
'            Thai (Thailand) (th-TH):  SpecificCulture
'            Tigrinya (ti):  NeutralCulture
'            Tigrinya (Eritrea) (ti-ER):  SpecificCulture
'            Tigrinya (Ethiopia) (ti-ET):  SpecificCulture
'            Tigre (tig):  NeutralCulture
'            Tigre (Eritrea) (tig-ER):  SpecificCulture
'            Turkmen (tk):  NeutralCulture
'            Turkmen (Turkmenistan) (tk-TM):  SpecificCulture
'            Setswana (tn):  NeutralCulture
'            Setswana (Botswana) (tn-BW):  SpecificCulture
'            Setswana (South Africa) (tn-ZA):  SpecificCulture

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

using namespace System;
using namespace System::Globalization;
int main()
{
   
   // Displays several properties of the neutral cultures.
   Console::WriteLine( "CULTURE ISO ISO WIN DISPLAYNAME                              ENGLISHNAME" );
   System::Collections::IEnumerator^ enum0 = CultureInfo::GetCultures( CultureTypes::NeutralCultures )->GetEnumerator();
   while ( enum0->MoveNext() )
   {
      CultureInfo^ ci = safe_cast<CultureInfo^>(enum0->Current);
      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                                 
zh-Hans zh  zho CHS Chinese (Simplified)                     Chinese (Simplified)                    
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-Hant zh  zho CHT Chinese (Traditional)                    Chinese (Traditional)                   
zh-CHS  zh  zho CHS Chinese (Simplified) Legacy              Chinese (Simplified) Legacy             
zh-CHT  zh  zho CHT Chinese (Traditional) Legacy             Chinese (Traditional) Legacy            

*/
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
zh-Hans zh  zho CHS Chinese (Simplified)                     Chinese (Simplified)
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-Hant zh  zho CHT Chinese (Traditional)                    Chinese (Traditional)
zh-CHS  zh  zho CHS Chinese (Simplified) Legacy              Chinese (Simplified) Legacy
zh-CHT  zh  zho CHT Chinese (Traditional) Legacy             Chinese (Traditional) Legacy

*/
Imports System.Globalization

Module Module1

   Public Sub Main()

      ' 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

   End Sub



'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                                 
'zh-Hans zh  zho CHS Chinese (Simplified)                     Chinese (Simplified)                    
'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-Hant zh  zho CHT Chinese (Traditional)                    Chinese (Traditional)                   
'zh-CHS  zh  zho CHS Chinese (Simplified) Legacy              Chinese (Simplified) Legacy             
'zh-CHT  zh  zho CHT Chinese (Traditional) Legacy             Chinese (Traditional) Legacy            

End Module

Комментарии

Эти значения типа языка и региональных параметров возвращаются свойством, а также служат фильтром CultureInfo.CultureTypes , ограничивающим язык и региональные параметры, возвращаемые методом CultureInfo.GetCultures . Дополнительные сведения о языках и региональных параметрах см. в разделе CultureInfo.

Как правило, для перечисления всех языков и региональных параметров используется CultureTypes.AllCultures значение. Это позволяет перечислять пользовательские языки и региональные параметры, а также другие типы языка и региональных параметров.

Обратите внимание, что все CultureTypes члены устарели, за исключением CultureTypes.AllCultures, CultureTypes.NeutralCulturesи CultureTypes.SpecificCultures.

.NET распознает следующие типы языка и региональных параметров, все из которых включаются в перечисления, возвращаемые CultureTypes.AllTypes членом перечисления:

  • Конкретные языки и региональные параметры, определяющие страну или регион и язык. Имена этих языков и региональных параметров соответствуют RFC 4646. В этом формате <languagecode2>-<country/regioncode2>``<languagecode2> используется двухбуквенный код, производный от ISO 639-1, а <country/regioncode2> также двухбуквенный код, производный от ISO 3166. Например, код en-US, означающий английский язык (США), относится к конкретным языкам и региональным параметрам. Пользовательские языки и региональные параметры (т. е. язык и региональные параметры, которые являются приложениями, а не системными) могут иметь любое имя, указанное пользователем, а не только соответствующее стандартам.

  • Нейтральные языки и региональные параметры, определяющие язык без учета страны или региона. Имена нейтральных языков и региональных параметров состоят из двухбуквенный код нижнего регистра, производный от ISO 639-1. Например, en (английский) относится к нейтральным языкам и региональным параметрам. Пользовательские нейтральные языки и региональные параметры (т. е. язык и региональные параметры, которые являются приложениями, а не системными) могут иметь любое имя, указанное пользователем, а не только двухбуквенный код.

    Инвариантный язык и региональные параметры включаются в массив языков и региональных параметров, возвращаемых методом CultureInfo.GetCultures , указывающим это значение.

  • Пользовательские языки и региональные параметры, которые являются языком и региональными параметрами, определяемыми приложением. Пользовательские языки и региональные параметры могут представлять определенные язык и региональные параметры или нейтральные языки и региональные параметры и могут иметь любое имя, указанное приложением.

    В Windows версиях до Windows 10 значение присваивается пользовательским языкам и региональным параметрам, UserCustomCulture созданным разработчиком. В Windows 10 значение также назначается системным языкам и региональным параметрам, UserCustomCulture которые не поддерживаются полным набором культурных данных и не имеют уникальных локальных идентификаторов. (Все языки и региональные параметры типа UserCustomCulture имеют CultureInfo.LCID значение LOCALE_CUSTOM_UNSPECIFIED (0x1000 или 4096)). В результате CultureInfo.GetCultures(CultureTypes.UserCustomCulture) метод возвращает различные наборы языков и региональных параметров в разных версиях Windows.

Применяется к

См. также раздел