Поделиться через


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
Атрибуты

Поля

Имя Значение Описание
NeutralCultures 1

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

SpecificCultures 2

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

InstalledWin32Cultures 4

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

AllCultures 7

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

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

AllCultures— составное поле, включающее NeutralCulturesSpecificCulturesзначения и InstalledWin32Cultures значения.

UserCustomCulture 8

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

ReplacementCultures 16

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

WindowsOnlyCultures 32

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

FrameworkCultures 64

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

Примеры

В следующем примере показан 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 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.

Комментарии

Эти значения типа языка и региональных параметров возвращаются свойством 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.

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

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