CultureInfo Třída

Definice

Poskytuje informace o konkrétní jazykové verzi (označované jako národní prostředí pro vývoj nespravovaného kódu).Provides information about a specific culture (called a locale for unmanaged code development). Tyto informace zahrnují názvy pro jazykovou verzi, systém zápisu, použitý kalendář, pořadí řazení řetězců a formátování dat a čísel.The information includes the names for the culture, the writing system, the calendar used, the sort order of strings, and formatting for dates and numbers.

public ref class CultureInfo : ICloneable, IFormatProvider
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class CultureInfo : ICloneable, IFormatProvider
type CultureInfo = class
    interface ICloneable
    interface IFormatProvider
Public Class CultureInfo
Implements ICloneable, IFormatProvider
Dědičnost
CultureInfo
Atributy
Implementuje

Příklady

Následující příklad ukazuje, jak vytvořit objekt CultureInfo pro španělštinu (Španělsko) s mezinárodním řazením a jiným objektem CultureInfo s tradičním řazením.The following example shows how to create a CultureInfo object for Spanish (Spain) with the international sort and another CultureInfo object with the traditional sort.

using namespace System;
using namespace System::Collections;
using namespace System::Globalization;
int main()
{
   
   // Creates and initializes the CultureInfo which uses the international sort.
   CultureInfo^ myCIintl = gcnew CultureInfo( "es-ES",false );
   
   // Creates and initializes the CultureInfo which uses the traditional sort.
   CultureInfo^ myCItrad = gcnew CultureInfo( 0x040A,false );
   
   // Displays the properties of each culture.
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "PROPERTY", "INTERNATIONAL", "TRADITIONAL" );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "CompareInfo", myCIintl->CompareInfo, myCItrad->CompareInfo );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "DisplayName", myCIintl->DisplayName, myCItrad->DisplayName );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "EnglishName", myCIintl->EnglishName, myCItrad->EnglishName );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "IsNeutralCulture", myCIintl->IsNeutralCulture, myCItrad->IsNeutralCulture );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "IsReadOnly", myCIintl->IsReadOnly, myCItrad->IsReadOnly );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "LCID", myCIintl->LCID, myCItrad->LCID );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "Name", myCIintl->Name, myCItrad->Name );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "NativeName", myCIintl->NativeName, myCItrad->NativeName );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "Parent", myCIintl->Parent, myCItrad->Parent );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "TextInfo", myCIintl->TextInfo, myCItrad->TextInfo );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "ThreeLetterISOLanguageName", myCIintl->ThreeLetterISOLanguageName, myCItrad->ThreeLetterISOLanguageName );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "ThreeLetterWindowsLanguageName", myCIintl->ThreeLetterWindowsLanguageName, myCItrad->ThreeLetterWindowsLanguageName );
   Console::WriteLine( "{0,-31}{1,-47}{2,-25}", "TwoLetterISOLanguageName", myCIintl->TwoLetterISOLanguageName, myCItrad->TwoLetterISOLanguageName );
   Console::WriteLine();
   
   // Compare two strings using myCIintl -> 
   Console::WriteLine( "Comparing \"llegar\" and \"lugar\"" );
   Console::WriteLine( "   With myCIintl -> CompareInfo -> Compare: {0}", myCIintl->CompareInfo->Compare( "llegar", "lugar" ) );
   Console::WriteLine( "   With myCItrad -> CompareInfo -> Compare: {0}", myCItrad->CompareInfo->Compare( "llegar", "lugar" ) );
}

/*
This code produces the following output.

PROPERTY                       INTERNATIONAL                                  TRADITIONAL              
CompareInfo                    CompareInfo - es-ES                            CompareInfo - es-ES_tradnl
DisplayName                    Spanish (Spain)                                Spanish (Spain)          
EnglishName                    Spanish (Spain, International Sort)            Spanish (Spain, Traditional Sort)
IsNeutralCulture               False                                          False                    
IsReadOnly                     False                                          False                    
LCID                           3082                                           1034                     
Name                           es-ES                                          es-ES                    
NativeName                     Español (España, alfabetización internacional) Español (España, alfabetización tradicional)
Parent                         es                                             es                       
TextInfo                       TextInfo - es-ES                               TextInfo - es-ES_tradnl  
ThreeLetterISOLanguageName     spa                                            spa                      
ThreeLetterWindowsLanguageName ESN                                            ESP                      
TwoLetterISOLanguageName       es                                             es                       

Comparing "llegar" and "lugar"
   With myCIintl -> CompareInfo -> Compare: -1
   With myCItrad -> CompareInfo -> Compare: 1

*/
using System;
using System.Collections;
using System.Globalization;

public class SamplesCultureInfo
{

   public static void Main()
   {

      // Creates and initializes the CultureInfo which uses the international sort.
      CultureInfo myCIintl = new CultureInfo("es-ES", false);

      // Creates and initializes the CultureInfo which uses the traditional sort.
      CultureInfo myCItrad = new CultureInfo(0x040A, false);

      // Displays the properties of each culture.
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "PROPERTY", "INTERNATIONAL", "TRADITIONAL");
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "CompareInfo", myCIintl.CompareInfo, myCItrad.CompareInfo);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "DisplayName", myCIintl.DisplayName, myCItrad.DisplayName);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "EnglishName", myCIintl.EnglishName, myCItrad.EnglishName);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "IsNeutralCulture", myCIintl.IsNeutralCulture, myCItrad.IsNeutralCulture);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "IsReadOnly", myCIintl.IsReadOnly, myCItrad.IsReadOnly);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "LCID", myCIintl.LCID, myCItrad.LCID);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "Name", myCIintl.Name, myCItrad.Name);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "NativeName", myCIintl.NativeName, myCItrad.NativeName);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "Parent", myCIintl.Parent, myCItrad.Parent);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "TextInfo", myCIintl.TextInfo, myCItrad.TextInfo);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "ThreeLetterISOLanguageName", myCIintl.ThreeLetterISOLanguageName, myCItrad.ThreeLetterISOLanguageName);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "ThreeLetterWindowsLanguageName", myCIintl.ThreeLetterWindowsLanguageName, myCItrad.ThreeLetterWindowsLanguageName);
      Console.WriteLine("{0,-31}{1,-47}{2,-25}", "TwoLetterISOLanguageName", myCIintl.TwoLetterISOLanguageName, myCItrad.TwoLetterISOLanguageName);
      Console.WriteLine();

      // Compare two strings using myCIintl.
      Console.WriteLine("Comparing \"llegar\" and \"lugar\"");
      Console.WriteLine("   With myCIintl.CompareInfo.Compare: {0}", myCIintl.CompareInfo.Compare("llegar", "lugar"));
      Console.WriteLine("   With myCItrad.CompareInfo.Compare: {0}", myCItrad.CompareInfo.Compare("llegar", "lugar"));

   }

}

/*
This code produces the following output.

PROPERTY                       INTERNATIONAL                                  TRADITIONAL              
CompareInfo                    CompareInfo - es-ES                            CompareInfo - es-ES_tradnl
DisplayName                    Spanish (Spain)                                Spanish (Spain)          
EnglishName                    Spanish (Spain, International Sort)            Spanish (Spain, Traditional Sort)
IsNeutralCulture               False                                          False                    
IsReadOnly                     False                                          False                    
LCID                           3082                                           1034                     
Name                           es-ES                                          es-ES                    
NativeName                     Español (España, alfabetización internacional) Español (España, alfabetización tradicional)
Parent                         es                                             es                       
TextInfo                       TextInfo - es-ES                               TextInfo - es-ES_tradnl  
ThreeLetterISOLanguageName     spa                                            spa                      
ThreeLetterWindowsLanguageName ESN                                            ESP                      
TwoLetterISOLanguageName       es                                             es                       

Comparing "llegar" and "lugar"
   With myCIintl.CompareInfo.Compare: -1
   With myCItrad.CompareInfo.Compare: 1

*/
Imports System.Collections
Imports System.Globalization

Module Module1

    Public Sub Main()

        ' Creates and initializes the CultureInfo which uses the international sort.
        Dim myCIintl As New CultureInfo("es-ES", False)

        ' Creates and initializes the CultureInfo which uses the traditional sort.
        Dim myCItrad As New CultureInfo(&H40A, False)

        ' Displays the properties of each culture.
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "PROPERTY", "INTERNATIONAL", "TRADITIONAL")
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "CompareInfo", myCIintl.CompareInfo, myCItrad.CompareInfo)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "DisplayName", myCIintl.DisplayName, myCItrad.DisplayName)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "EnglishName", myCIintl.EnglishName, myCItrad.EnglishName)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "IsNeutralCulture", myCIintl.IsNeutralCulture, myCItrad.IsNeutralCulture)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "IsReadOnly", myCIintl.IsReadOnly, myCItrad.IsReadOnly)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "LCID", myCIintl.LCID, myCItrad.LCID)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "Name", myCIintl.Name, myCItrad.Name)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "NativeName", myCIintl.NativeName, myCItrad.NativeName)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "Parent", myCIintl.Parent, myCItrad.Parent)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "TextInfo", myCIintl.TextInfo, myCItrad.TextInfo)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "ThreeLetterISOLanguageName", myCIintl.ThreeLetterISOLanguageName, myCItrad.ThreeLetterISOLanguageName)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "ThreeLetterWindowsLanguageName", myCIintl.ThreeLetterWindowsLanguageName, myCItrad.ThreeLetterWindowsLanguageName)
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "TwoLetterISOLanguageName", myCIintl.TwoLetterISOLanguageName, myCItrad.TwoLetterISOLanguageName)
        Console.WriteLine()

        ' Compare two strings using myCIintl.
        Console.WriteLine("Comparing ""llegar"" and ""lugar""")
        Console.WriteLine("   With myCIintl.CompareInfo.Compare: {0}", myCIintl.CompareInfo.Compare("llegar", "lugar"))
        Console.WriteLine("   With myCItrad.CompareInfo.Compare: {0}", myCItrad.CompareInfo.Compare("llegar", "lugar"))

    End Sub



'This code produces the following output.
'
'PROPERTY                       INTERNATIONAL                                  TRADITIONAL              
'CompareInfo                    CompareInfo - es-ES                            CompareInfo - es-ES_tradnl
'DisplayName                    Spanish (Spain)                                Spanish (Spain)          
'EnglishName                    Spanish (Spain, International Sort)            Spanish (Spain, Traditional Sort)
'IsNeutralCulture               False                                          False                    
'IsReadOnly                     False                                          False                    
'LCID                           3082                                           1034                     
'Name                           es-ES                                          es-ES                    
'NativeName                     Español (España, alfabetización internacional) Español (España, alfabetización tradicional)
'Parent                         es                                             es                       
'TextInfo                       TextInfo - es-ES                               TextInfo - es-ES_tradnl  
'ThreeLetterISOLanguageName     spa                                            spa                      
'ThreeLetterWindowsLanguageName ESN                                            ESP                      
'TwoLetterISOLanguageName       es                                             es                       
'
'Comparing "llegar" and "lugar"
'   With myCIintl.CompareInfo.Compare: -1
'   With myCItrad.CompareInfo.Compare: 1

End Module

Poznámky

Třída CultureInfo poskytuje informace specifické pro jazykovou verzi, jako je jazyk, dílčí jazyk, země/oblast, kalendář a konvence přidružené k konkrétní jazykové verzi.The CultureInfo class provides culture-specific information, such as the language, sublanguage, country/region, calendar, and conventions associated with a particular culture. Tato třída také poskytuje přístup k instancím DateTimeFormatInfo, NumberFormatInfo, CompareInfoa TextInfo objektů specifických pro jazykovou verzi.This class also provides access to culture-specific instances of the DateTimeFormatInfo, NumberFormatInfo, CompareInfo, and TextInfo objects. Tyto objekty obsahují informace požadované pro operace specifické pro jazykovou verzi, jako je například velká a malá písmena, formátování dat a čísel a porovnávání řetězců.These objects contain the information required for culture-specific operations, such as casing, formatting dates and numbers, and comparing strings. Třída CultureInfo se používá buď přímo, nebo nepřímo třídami, které formátuje, analyzují nebo manipulují s daty specifickými pro jazykovou verzi, jako je například String, DateTime, DateTimeOffseta číselné typy.The CultureInfo class is used either directly or indirectly by classes that format, parse, or manipulate culture-specific data, such as String, DateTime, DateTimeOffset, and the numeric types.

V této části:In this section:

Názvy a identifikátory jazykové verze Culture names and identifiers
Invariantní, neutrální a specifické jazykové verze Invariant, neutral, and specific cultures
vlastní jazykové verzeCustom cultures
dat dynamické jazykové verzeDynamic culture data
CultureInfo a kulturní data aktuální jazykové verze a aktuální jazyková verze uživatelského rozhraní CultureInfo and cultural data The current culture and current UI culture
Získávání všech jazykových verzí Getting all cultures
jazykové verze a vláknaCulture and threads
domén jazykové verze a aplikaceCulture and application domains
asynchronních operací na základě úloh a úlohCulture and task-based asynchronous operations
serializace objektu CultureInfoCultureInfo object serialization
Ovládací panel přepisuje Control Panel overrides
Alternativní pořadí řazení Alternate sort orders
Jazyková verze a aplikace pro WindowsCulture and Windows apps

Názvy a identifikátory jazykové verzeCulture names and identifiers

Třída CultureInfo Určuje jedinečný název pro každou jazykovou verzi na základě RFC 4646.The CultureInfo class specifies a unique name for each culture, based on RFC 4646. Název je kombinací kódu kultury s malým písmenem ISO 639 2, který je přidružený k jazyku, a kódu subkultury na velké jazykové verzi ISO 3166 2, který je přidružený k zemi nebo oblasti.The name is a combination of an ISO 639 two-letter lowercase culture code associated with a language and an ISO 3166 two-letter uppercase subculture code associated with a country or region. Pro aplikace, které cílí na .NET Framework 4.NET Framework 4 nebo novější a jsou spuštěny v systému Windows 10 nebo novějším, jsou podporovány názvy jazykové verze, které odpovídají platným značkám jazyka BCP-47.In addition, for apps that target .NET Framework 4.NET Framework 4 or later and are running under Windows 10 or later, culture names that correspond to valid BCP-47 language tags are supported.

Poznámka

Pokud je název jazykové verze předán konstruktoru třídy nebo metodě, jako je například CreateSpecificCulture nebo CultureInfo, jeho případ není významný.When a culture name is passed to a class constructor or a method such as CreateSpecificCulture or CultureInfo, its case is not significant.

Formát pro název jazykové verze založený na RFC 4646 je languagecode2>-země/regioncode2, kde languagecode2 je kód jazyka dvou písmen a země/regioncode2 je kód subjazykové verze se dvěma písmeny.The format for the culture name based on RFC 4646 is languagecode2>-country/regioncode2, where languagecode2 is the two-letter language code and country/regioncode2 is the two-letter subculture code. Mezi příklady patří ja-JP pro japonštinu (Japonsko) a EN-US pro angličtinu (USA).Examples include ja-JP for Japanese (Japan) and en-US for English (United States). V případech, kdy kód jazyka se dvěma písmeny není k dispozici, je použit kód o třech písmenech odvozený z ISO 639-2.In cases where a two-letter language code is not available, a three-letter code derived from ISO 639-2 is used.

Všimněte si, že některé názvy jazykové verze také určují skript ISO 15924.Note that some culture names also specify an ISO 15924 script. Například Cyrl určuje skript cyrilice a Latn určí skript v latince.For example, Cyrl specifies the Cyrillic script and Latn specifies the Latin script. Název jazykové verze, který obsahuje skript, používá vzor languagecode2-scripttag-země/regioncode2.A culture name that includes a script uses the pattern languagecode2-scripttag-country/regioncode2. Příkladem tohoto typu názvu kultury je uz-Cyrl-UZ pro Uzbečtina (cyrilice, Uzbekistán).An example of this type of culture name is uz-Cyrl-UZ for Uzbek (Cyrillic, Uzbekistan). V operačních systémech Windows než Windows Vista, název jazykové verze, která obsahuje skript používá vzor languagecode2-země/regioncode2 - scripttag, například uz-UZ-Cyrl pro Uzbečtina (cyrilice, Uzbekistán).On Windows operating systems before Windows Vista, a culture name that includes a script uses the pattern languagecode2-country/regioncode2-scripttag, for example, uz-UZ-Cyrl for Uzbek (Cyrillic, Uzbekistan).

Neutrální jazyková verze je určena pouze malým písmenem kódu jazyka.A neutral culture is specified by only the two-letter lowercase language code. Například fr určuje neutrální jazykovou verzi pro francouzštinu a de určuje neutrální jazykovou verzi pro němčinu.For example, fr specifies the neutral culture for French, and de specifies the neutral culture for German.

Poznámka

Existují dva názvy jazykové verze, které jsou v rozporu s tímto pravidlem.There are two culture names that contradict this rule. Jazykové verze čínština (zjednodušená), s názvem zh-Hans a čínština (tradiční), s názvem zh-Hant, jsou neutrální kultury.The cultures Chinese (Simplified), named zh-Hans, and Chinese (Traditional), named zh-Hant, are neutral cultures. Názvy jazykové verze reprezentují aktuální Standard a měly by být použity, pokud nemáte důvod pro použití starších názvů zh-CHS a zh-CHT.The culture names represent the current standard and should be used unless you have a reason for using the older names zh-CHS and zh-CHT.

Identifikátor jazykové verze je standardní mezinárodní číselná zkratka a má komponenty potřebné k jedinečné identifikaci jedné z nainstalovaných jazykových verzí.A culture identifier is a standard international numeric abbreviation and has the components necessary to uniquely identify one of the installed cultures. Vaše aplikace může používat předdefinované identifikátory jazykové verze nebo definovat vlastní identifikátory.Your application can use predefined culture identifiers or define custom identifiers.

Některé předdefinované názvy a identifikátory jazykové verze jsou používány touto a jinými třídami v oboru názvů System.Globalization.Certain predefined culture names and identifiers are used by this and other classes in the System.Globalization namespace. Podrobné informace o jazykové verzi pro systémy Windows naleznete ve sloupci značka jazyka v seznamu názvů jazyků nebo oblastí podporovaných systémem Windows.For detailed culture information for Windows systems, see the Language tag column in the list of language/region names supported by Windows. Názvy jazykové verze se řídí standardem definovaným v BCP 47.Culture names follow the standard defined by BCP 47.

Pamatujte, že názvy a identifikátory jazykové verze reprezentují pouze podmnožinu kultur, které lze nalézt v určitém počítači.Remember that the culture names and identifiers represent only a subset of cultures that can be found on a particular computer. Verze nebo aktualizace Service Pack systému Windows mohou změnit dostupné jazykové verze.Windows versions or service packs can change the available cultures. Aplikace přidávají vlastní jazykové verze pomocí třídy CultureAndRegionInfoBuilder.Applications add custom cultures using the CultureAndRegionInfoBuilder class. Uživatelé přidávají vlastní jazykové verze pomocí nástroje pro sestavovatele národního prostředí společnosti Microsoft.Users add their own custom cultures using the Microsoft Locale Builder tool. Microsoft locale Builder je napsaný ve spravovaném kódu pomocí třídy CultureAndRegionInfoBuilder.Microsoft Locale Builder is written in managed code using the CultureAndRegionInfoBuilder class.

Několik jedinečných názvů je úzce spojeno s jazykovou verzí, zejména názvy přidružených k následujícím členům třídy:Several distinct names are closely associated with a culture, notably the names associated with the following class members:

Invariantní, neutrální a specifické jazykové verzeInvariant, neutral, and specific cultures

Jazykové verze jsou obecně seskupeny do tří sad: invariantní jazykové verze, neutrální jazykové verze a specifické jazykové verze.The cultures are generally grouped into three sets: invariant cultures, neutral cultures, and specific cultures.

Invariantní jazyková verze je nezávislá na jazykové verzi.An invariant culture is culture-insensitive. Vaše aplikace určuje invariantní jazykovou verzi podle názvu pomocí prázdného řetězce ("") nebo podle jeho identifikátoru.Your application specifies the invariant culture by name using an empty string ("") or by its identifier. InvariantCulture definuje instanci invariantní jazykové verze.InvariantCulture defines an instance of the invariant culture. Je přidružená k anglickému jazyku, ale ne k žádné zemi nebo oblasti.It is associated with the English language but not with any country/region. Používá se v téměř libovolné metodě v oboru názvů Globalization, který vyžaduje jazykovou verzi.It is used in almost any method in the Globalization namespace that requires a culture.

Neutrální jazyková verze je jazyková verze, která je přidružena k jazyku, ale není v zemi nebo oblasti.A neutral culture is a culture that is associated with a language but not with a country/region. Konkrétní kultura je jazyková verze, která je přidružená k jazyku a zemi nebo oblasti.A specific culture is a culture that is associated with a language and a country/region. Například fr je neutrální název pro francouzskou jazykovou verzi a fr-FR je název specifické jazykové verze francouzštiny (Francie).For example, fr is the neutral name for the French culture, and fr-FR is the name of the specific French (France) culture. Počítejte s tím, že čínština (zjednodušená) a čínština (tradiční) se také považují za neutrální kultury.Note that Chinese (Simplified) and Chinese (Traditional) are also considered neutral cultures.

Vytvoření instance CompareInfo třídy pro neutrální jazykovou verzi se nedoporučuje, protože data, která obsahuje, jsou libovolná.Creating an instance of a CompareInfo class for a neutral culture is not recommended because the data it contains is arbitrary. Chcete-li zobrazit a seřadit data, zadejte jazyk i oblast.To display and sort data, specify both the language and region. Kromě toho vlastnost Name objektu CompareInfo vytvořeného pro neutrální jazykovou verzi vrátí pouze zemi a nezahrnuje oblast.Additionally, the Name property of a CompareInfo object created for a neutral culture returns only the country and does not include the region.

Definované kultury mají hierarchii, ve které je nadřazená položka konkrétní jazykové verze neutrální jazykové verzi a nadřazená neutrální jazyková verze je invariantní jazyková verze.The defined cultures have a hierarchy in which the parent of a specific culture is a neutral culture and the parent of a neutral culture is the invariant culture. Vlastnost Parent obsahuje neutrální jazykovou verzi přidruženou ke konkrétní jazykové verzi.The Parent property contains the neutral culture associated with a specific culture. Vlastní jazykové verze by měly definovat vlastnost Parent v souladu s tímto vzorem.Custom cultures should define the Parent property in conformance with this pattern.

Pokud prostředky pro konkrétní jazykovou verzi nejsou v operačním systému k dispozici, budou použity prostředky pro přidruženou neutrální jazykovou verzi.If the resources for a specific culture are not available in the operating system, the resources for the associated neutral culture are used. Pokud prostředky pro neutrální jazykovou verzi nejsou k dispozici, budou použity prostředky vložené do hlavního sestavení.If the resources for the neutral culture are not available, the resources embedded in the main assembly are used. Další informace o procesu záložního prostředku najdete v tématu balení a nasazení prostředků.For more information on the resource fallback process, see Packaging and Deploying Resources.

Seznam národních prostředí v rozhraní API systému Windows se mírně liší od seznamu kultur podporovaných .NET Framework.The list of locales in the Windows API is slightly different from the list of cultures supported by the .NET Framework. Pokud je vyžadována interoperabilita s Windows, například prostřednictvím mechanismu volání nespravovaného systému, aplikace by měla používat konkrétní jazykovou verzi, která je definována pro operační systém.If interoperability with Windows is required, for example, through the p/invoke mechanism, the application should use a specific culture that is defined for the operating system. Použití konkrétní jazykové verze zajišťuje konzistenci s ekvivalentním národním prostředím systému Windows, které je identifikován identifikátorem národního prostředí, který je stejný jako LCID.Use of the specific culture ensures consistency with the equivalent Windows locale, which is identified with a locale identifier that is the same as LCID.

DateTimeFormatInfo nebo NumberFormatInfo lze vytvořit pouze pro invariantní jazykovou verzi nebo pro konkrétní jazykové verze, nikoli pro neutrální jazykové verze.A DateTimeFormatInfo or a NumberFormatInfo can be created only for the invariant culture or for specific cultures, not for neutral cultures.

Pokud je DateTimeFormatInfo.Calendar TaiwanCalendar, ale Thread.CurrentCulture není nastavená na zh-TW, pak DateTimeFormatInfo.NativeCalendarName, DateTimeFormatInfo.GetEraNamea DateTimeFormatInfo.GetAbbreviatedEraName vrátit prázdný řetězec ("").If DateTimeFormatInfo.Calendar is the TaiwanCalendar but the Thread.CurrentCulture is not set to zh-TW, then DateTimeFormatInfo.NativeCalendarName, DateTimeFormatInfo.GetEraName, and DateTimeFormatInfo.GetAbbreviatedEraName return an empty string ("").

Vlastní jazykové verzeCustom cultures

Kromě předdefinovaných kultur podporovaných operačním systémem Windows a .NET Framework .NET Framework podporuje tři typy vlastních jazykových verzí:In addition to the predefined cultures supported by the Windows operating system and the .NET Framework, the .NET Framework supports three types of custom cultures:

  • Nové kultury, které doplňují jazykové verze, které jsou k dispozici v systému Windows nebo .NET Framework.New cultures that supplement the cultures available in Windows or the .NET Framework. Například aplikace může nainstalovat objekt CultureInfo, který představuje jazykovou verzi fj-FJ (nebo Fijan (Fidži)) v systému.For example, an application could install a CultureInfo object that represents the fj-FJ (or Fijan (Fiji)) culture on a system.

  • Náhradní kultury, jejichž vlastnosti se liší od vlastností standardních kultur podporovaných systémem Windows a .NET Framework.Replacement cultures whose properties are different from the properties of the standard cultures supported by Windows and the .NET Framework.

  • Standardní jazykové verze s přepsáními uživatelů.Standard cultures with user overrides. Uživatel může použít oblast a jazykovou aplikaci v Ovládacích panelech k přizpůsobení hodnot vlastností existující jazykové verze.The user can use the Region and Language application in Control Panel to customize an existing culture's property values.

Poznámka

Třídu CultureAndRegionInfoBuilder lze použít k definování, uložení a registraci vlastních jazykových verzí, které doplňují nebo nahrazují stávající jazykové verze.You can use the CultureAndRegionInfoBuilder class to define, save, and register custom cultures that either supplement or replace existing cultures. Metoda CultureAndRegionInfoBuilder.Save vytvoří soubor LDML (data Markup Language), který se dá použít k instalaci vlastní jazykové verze v cílových systémech.The CultureAndRegionInfoBuilder.Save method creates a Locale Data Markup Language (LDML) file that can be used to install a custom culture on target systems. Podrobné informace o tom, jak pomocí třídy CultureAndRegionInfoBuilder vytvořit novou nebo nahrazující jazykovou verzi, naleznete v tématu CultureAndRegionInfoBuilder třídy.For step-by step information on using the CultureAndRegionInfoBuilder class to create a new or replacement culture, see the CultureAndRegionInfoBuilder class topic.

Vzhledem k tomu, že .NET Framework podporuje vlastní jazykové verze, měli byste při práci s daty specifickými pro jazykovou verzi vzít v úvahu následující:Because the .NET Framework supports custom cultures, you should consider the following when working with culture-specific data:

  • Vlastní jazykové verze mohou mít hodnoty, které překračují rozsah předdefinovaných jazykových verzí.Custom cultures can have values that exceed the ranges of the predefined cultures. Některé kultury například mají neobvykle dlouhé názvy měsíců, neočekávané formáty data a času nebo jiná neobvyklá data.For example, some cultures have unusually long month names, unexpected date or time formats, or other unusual data.

  • Při zobrazení dat specifických pro jazykovou verzi v uživatelském rozhraní byste měli respektovat vlastní nastavení uživatele; uživatel například může chtít 24hodinové nebo RRRRMMDD formát data.When you display culture-specific data in the user interface, you should respect the user's customizations; for example, the user might want a 24-hour clock or a yyyyMMdd date format.

  • Pamatujte, že vlastní jazykové verze přepíšou výchozí hodnoty.Remember that custom cultures override default values. Proto nemůžete považovat data jazykové verze za stabilní.Therefore, you cannot consider culture data to be stable. V budoucnu se můžou změnit názvy zemí, formáty čísel a kalendářních dat a pravopis.Country names, number and date formats, and spellings may change in the future. Chcete-li serializovat data závislá na jazykové verzi, například řetězce data a času, které mají být předány funkcím pro analýzu data a času, měli byste použít neutrální jazykovou verzi nebo specifickou.If you want to serialize culture-sensitive data such as date and time strings to be passed to the date and time parsing functions, you should use the invariant culture or a specific .

Hodnota vlastnosti CultureTypes vlastních jazykových verzí nainstalovaných v systému zahrnuje příznak System.Globalization.CultureTypes a vlastní jazykové verze jsou přiřazeny LCID hodnotě vlastnosti LOCALE_CUSTOM_UNSPECIFIED (0x1000 nebo 4096).The CultureTypes property value of custom cultures installed on a system includes the System.Globalization.CultureTypes flag, and custom cultures are assigned an LCID property value of LOCALE_CUSTOM_UNSPECIFIED (0x1000, or 4096). Všimněte si, že od verze Windows 10 je tato hodnota také přiřazena systémově definovaným kulturám, které nemají kompletní kulturní data.Note that, starting with Windows 10, this value is also assigned to system-defined cultures that lack complete cultural data.

CultureInfo a kulturní dataCultureInfo and cultural data

Rozhraní .NET odvodí své kulturní údaje z některého z nejrůznějších zdrojů v závislosti na implementaci, platformě a verzi:.NET derives its cultural data from a one of a variety of sources, depending on implementation, platform, and version:

  • V .NET Framework 3,5 a starších verzích poskytují kulturní data operační systém Windows i .NET Framework.In .NET Framework 3.5 and earlier versions, cultural data is provided by both the Windows operating system and the .NET Framework.

  • V .NET Framework 4 a novějších verzích poskytuje operační systém Windows kulturní data.In .NET Framework 4 and later versions, cultural data is provided by the Windows operating system.

  • Ve všech verzích .NET Core běžících v systému Windows poskytuje operační systém Windows kulturní data.In all versions of .NET Core running on Windows, cultural data is provided by the Windows operating system.

  • Ve všech verzích .NET Core běžících na platformách UNIX jsou kulturní data poskytnuta knihovnou mezinárodní komponenty pro kódování Unicode (ICU).In all versions of .NET Core running on Unix platforms, cultural data is provided by the International Components for Unicode (ICU) Library. Konkrétní verze knihovny ICU závisí na jednotlivém operačním systému.The specific version of the ICU Library depends on the individual operating system.

Z tohoto důvodu může být jazyková verze dostupná na konkrétní implementaci, platformě nebo verzi .NET k dispozici v jiné implementaci rozhraní .NET, platformě nebo verzi.Because of this, a culture available on a particular .NET implementation, platform, or version may not be available on a different .NET implementation, platform, or version.

Některé objekty CultureInfo se liší v závislosti na podkladové platformě.Some CultureInfo objects differ depending on the underlying platform. Konkrétně je "zh-CN" nebo čínština (zjednodušená, Čína) a zh-TW nebo čínština (tradiční, Tchaj-wan) dostupné v systémech Windows, ale jedná se o aliasové kultury v systémech UNIX.In particular, "zh-CN", or Chinese (Simplified, China) and zh-TW, or Chinese (Traditional, Taiwan), are available cultures on Windows systems, but they are aliased cultures on Unix systems. zh-CN je alias pro jazykovou verzi zh-Hans-CN a "zh-TW" je alias pro jazykovou verzi zh-Hant-TW."zh-CN" is an alias for the "zh-Hans-CN" culture, and "zh-TW" is an alias for the "zh-Hant-TW" culture. Jazykové verze s aliasy nejsou vraceny voláním metody GetCultures a mohou mít různé hodnoty vlastností, včetně různých Parent kultury, než jejich protějšky systému Windows.Aliased cultures are not returned by calls to the GetCultures method and may have different property values, including different Parent cultures, than their Windows counterparts. Pro kultury zh-CN a zh-TW obsahují tyto differenes následující:For the zh-CN and zh-TW cultures, these differenes include the following:

  • V systémech Windows je nadřazená jazyková verze "zh-CN" Culture "zh-Hans" a nadřazená jazyková verze jazykové verze "zh-TW" je "zh-Hant".On Windows systems, the parent culture of the "zh-CN" culture is "zh-Hans", and the parent culture of the "zh-TW" culture is "zh-Hant". Nadřazená jazyková verze obou těchto jazykových verzí je "zh".The parent culture of both these cultures is "zh". V systémech UNIX jsou rodiče obou kultur "zh".On Unix systems, the parents of both cultures are "zh". To znamená, že pokud neposkytujete prostředky specifické pro jazykovou verzi pro kultury "zh-CN" nebo "zh-TW", ale zadáte prostředky pro neutrální jazykovou verzi "zh-Hans" nebo "zh-Hant", bude vaše aplikace načítat prostředky pro neutrální jazykovou verzi ve Windows, ale ne v UNIX. .This means that, if you don't provide culture-specific resources for the "zh-CN" or "zh-TW" cultures but do provide a resources for the neutral "zh-Hans" or "zh-Hant" culture, your application will load the resources for the neutral culture on Windows but not on Unix. V systémech UNIX je nutné explicitně nastavit CurrentUICulture vlákna na hodnotu "zh-Hans" nebo "zh-Hant".On Unix systems, you must explicitly set the thread's CurrentUICulture to either "zh-Hans" or "zh-Hant".

  • V systémech Windows volání CultureInfo.Equals na instanci, která představuje jazykovou verzi zh-CN, a jejím předáním instance "zh-Hans-CN" vrátí true.On Windows systems, calling CultureInfo.Equals on an instance that represents the "zh-CN" culture and passing it a "zh-Hans-CN" instance returns true. V systémech UNIX vrátí volání metody false.On Unix systems, the method call returns false. Toto chování platí také pro volání Equals instance CultureInfo zh-TW a předání instance "zh-Hant-TW".This behavior also applies to calling Equals on a "zh-TW" CultureInfo instance and passing it a "zh-Hant-Tw" instance.

Dynamická jazyková dataDynamic culture data

S výjimkou neutrální jazykové verze jsou data jazykové verze dynamická.Except for the invariant culture, culture data is dynamic. To platí i pro předdefinované jazykové verze.This is true even for the predefined cultures. Například země nebo oblasti přijímají nové měny, mění pravopis slov nebo mění preferovaný kalendář a mění definice jazykové verze, aby bylo možné je sledovat.For example, countries or regions adopt new currencies, change their spellings of words, or change their preferred calendar, and culture definitions change to track this. Vlastní jazykové verze se mohou změnit bez předchozího upozornění a jakákoli konkrétní jazyková verze může být přepsána vlastní nahrazující jazykovou verzí.Custom cultures are subject to change without notice, and any specific culture might be overridden by a custom replacement culture. Jak je popsáno níže, může jednotliví uživatelé přepsat kulturní preference.Also, as discussed below, an individual user can override cultural preferences. Aplikace by měly vždy získávat data jazykové verze v době běhu.Applications should always obtain culture data at run time.

Upozornění

Při ukládání dat by měla vaše aplikace používat invariantní jazykovou verzi, binární formát nebo konkrétní formát nezávislý na jazykové verzi.When saving data, your application should use the invariant culture, a binary format, or a specific culture-independent format. Data uložená na základě aktuálních hodnot přidružených k určité jazykové verzi, která je jiná než neutrální jazyková verze, mohou být nečitelná nebo se mohou změnit ve smyslu, že se tato jazyková verze změní.Data saved according to the current values associated with a particular culture, other than the invariant culture, might become unreadable or might change in meaning if that culture changes.

Aktuální jazyková verze a aktuální jazyková verze uživatelského rozhraníThe current culture and current UI culture

Každé vlákno v aplikaci .NET má aktuální jazykovou verzi a aktuální jazykovou verzi uživatelského rozhraní.Every thread in a .NET application has a current culture and a current UI culture. Aktuální jazyková verze určuje konvence formátování pro data, časy, čísla a hodnoty měny, pořadí řazení textu, konvence velikosti písmen a způsob, jakým jsou porovnávány řetězce.The current culture determines the formatting conventions for dates, times, numbers, and currency values, the sort order of text, casing conventions, and the ways in which strings are compared. Aktuální jazyková verze uživatelského rozhraní se používá k načtení prostředků specifických pro jazykovou verzi za běhu.The current UI culture is used to retrieve culture-specific resources at runtime.

Poznámka

Informace o tom, jak je aktuální a aktuální jazyková verze uživatelského rozhraní určena na základě jednotlivých vláken, naleznete v části jazyková verze a vlákna .For information on how the current and current UI culture is determined on a per-thread basis, see the Culture and threads section. Informace o tom, jak je aktuální a aktuální jazyková verze uživatelského rozhraní určena pro vlákna prováděná v nové doméně aplikace a na vláknech, které překračují hranice aplikační domény, naleznete v části jazyková verze a domény aplikace .For information on how the current and current UI culture is determined on threads executing in a new application domain, and on threads that cross application domain boundaries, see the Culture and application domains section. Informace o tom, jak je aktuální a aktuální určena na vláknech provádějících asynchronní operace založené na úlohách, naleznete v části jazyková verze a asynchronní operace založené na úlohách .For information on how the current and current is determined on threads performing task-based asynchronous operations, see the Culture and task-based asynchronous operations section.

Podrobnější informace o aktuální jazykové verzi naleznete v tématu CultureInfo.CurrentCulture vlastnosti.For more detailed information on the current culture, see the CultureInfo.CurrentCulture property topic. Podrobnější informace o aktuální jazykové verzi uživatelského rozhraní naleznete v tématu CultureInfo.CurrentUICulture vlastnosti.For more detailed information on the current UI culture, see the CultureInfo.CurrentUICulture property topic.

Načítání aktuální a aktuální jazykové verze uživatelského rozhraníRetrieving the current and current UI cultures

Objekt CultureInfo, který představuje aktuální jazykovou verzi, lze získat některým ze dvou způsobů:You can get a CultureInfo object that represents the current culture in either of two ways:

Následující příklad načte obě hodnoty vlastností, porovná je, aby ukázaly, že jsou stejné, a zobrazí název aktuální jazykové verze.The following example retrieves both property values, compares them to show that they are equal, and displays the name of the current culture.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      CultureInfo culture1 = CultureInfo.CurrentCulture;
      CultureInfo culture2 = Thread.CurrentThread.CurrentCulture;
      Console.WriteLine("The current culture is {0}", culture1.Name);
      Console.WriteLine("The two CultureInfo objects are equal: {0}",
                        culture1 == culture2);
   }
}
// The example displays output like the following:
//     The current culture is en-US
//     The two CultureInfo objects are equal: True
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Dim culture1 As CultureInfo = CultureInfo.CurrentCulture
      Dim culture2 As CultureInfo = Thread.CurrentThread.CurrentCulture
      Console.WriteLine("The current culture is {0}", culture1.Name)
      Console.WriteLine("The two CultureInfo objects are equal: {0}",
                        culture1.Equals(culture2))
   End Sub
End Module
' The example displays output like the following:
'     The current culture is en-US
'     The two CultureInfo objects are equal: True

Objekt CultureInfo, který představuje aktuální jazykovou verzi uživatelského rozhraní, lze získat některým ze dvou způsobů:You can get a CultureInfo object that represents the current UI culture in either of two ways:

Následující příklad načte obě hodnoty vlastností, porovná je s tím, že ukazuje, že jsou stejné, a zobrazí název aktuální jazykové verze uživatelského rozhraní.The following example retrieves both property values, compares them to show that they are equal, and displays the name of the current UI culture.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      CultureInfo uiCulture1 = CultureInfo.CurrentUICulture;
      CultureInfo uiCulture2 = Thread.CurrentThread.CurrentUICulture;
      Console.WriteLine("The current UI culture is {0}", uiCulture1.Name);
      Console.WriteLine("The two CultureInfo objects are equal: {0}",
                        uiCulture1 == uiCulture2);
   }
}
// The example displays output like the following:
//     The current UI culture is en-US
//     The two CultureInfo objects are equal: True
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Dim uiCulture1 As CultureInfo = CultureInfo.CurrentUICulture
      Dim uiCulture2 As CultureInfo = Thread.CurrentThread.CurrentUICulture
      Console.WriteLine("The current UI culture is {0}", uiCulture1.Name)
      Console.WriteLine("The two CultureInfo objects are equal: {0}",
                        uiCulture1.Equals(uiCulture2))
   End Sub
End Module
' The example displays output like the following:
'     The current UI culture is en-US
'     The two CultureInfo objects are equal: True

Nastavení aktuální a aktuální jazykové verze uživatelského rozhraníSetting the current and current UI cultures

Chcete-li změnit jazykovou verzi a jazykovou verzi uživatelského rozhraní vlákna, postupujte následovně:To change the culture and UI culture of a thread, do the following:

  1. Vytvořte instanci objektu CultureInfo, který představuje tuto jazykovou verzi, voláním konstruktoru CultureInfo třídy a předáním názvu jazykové verze.Instantiate a CultureInfo object that represents that culture by calling a CultureInfo class constructor and passing it the name of the culture. Konstruktor CultureInfo(String) vytvoří instanci CultureInfo objektu, který odráží přepsání uživatele, pokud je nová jazyková verze stejná jako aktuální jazyková verze systému Windows.The CultureInfo(String) constructor instantiates a CultureInfo object that reflects user overrides if the new culture is the same as the current Windows culture. Konstruktor CultureInfo(String, Boolean) umožňuje určit, zda nově vytvořená instance CultureInfo objekt odráží přepsání uživatele, pokud je nová jazyková verze shodná s aktuální jazykovou verzí systému Windows.The CultureInfo(String, Boolean) constructor allows you to specify whether the newly instantiated CultureInfo object reflects user overrides if the new culture is the same as the current Windows culture.

  2. Přiřaďte objekt CultureInfo k vlastnosti CultureInfo.CurrentCulture nebo CultureInfo.CurrentUICulture v rozhraní .NET Core a .NET Framework 4,6 a novějších verzích.Assign the CultureInfo object to the CultureInfo.CurrentCulture or CultureInfo.CurrentUICulture property on .NET Core and .NET Framework 4.6 and later versions. (V .NET Framework 4.5.2 a dřívějších verzích youc přiřaďte objekt CultureInfo k vlastnosti Thread.CurrentCulture nebo Thread.CurrentUICulture.)(On .NET Framework 4.5.2 and earlier versions, youc an assign the CultureInfo object to the Thread.CurrentCulture or Thread.CurrentUICulture property.)

Následující příklad načte aktuální jazykovou verzi.The following example retrieves the current culture. Pokud se jedná o jinou než francouzskou (Francii) jazykovou verzi, změní aktuální jazykovou verzi na francouzština (Francie).If it is anything other than the French (France) culture, it changes the current culture to French (France). V opačném případě změní aktuální jazykovou verzi na francouzština (Lucembursko).Otherwise, it changes the current culture to French (Luxembourg).

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo current = CultureInfo.CurrentCulture;
      Console.WriteLine("The current culture is {0}", current.Name);
      CultureInfo newCulture;
      if (current.Name.Equals("fr-FR"))
         newCulture = new CultureInfo("fr-LU");
      else   
         newCulture = new CultureInfo("fr-FR");
      
      CultureInfo.CurrentCulture = newCulture;
      Console.WriteLine("The current culture is now {0}", 
                        CultureInfo.CurrentCulture.Name);   
   }
}
// The example displays output like the following:
//     The current culture is en-US
//     The current culture is now fr-FR
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim current As CultureInfo = CultureInfo.CurrentCulture
      Console.WriteLine("The current culture is {0}", current.Name)
      Dim newCulture As CultureInfo
      If current.Name.Equals("fr-FR") Then
         newCulture = New CultureInfo("fr-LU")
      Else   
         newCulture = new CultureInfo("fr-FR")
      End If
      
      CultureInfo.CurrentCulture = newCulture
      Console.WriteLine("The current culture is now {0}", 
                        CultureInfo.CurrentCulture.Name)   
   End Sub
End Module
' The example displays output like the following:
'     The current culture is en-US
'     The current culture is now fr-FR

Následující příklad načte aktuální jazykovou verzi.The following example retrieves the current culture. Pokud se jedná o jakékoli jiné jazykové verzi Slovinština (Slovinsko), změní aktuální jazykovou verzi na slovinské (Slovinsko).If it is anything other the Slovenian (Slovenia) culture, it changes the current culture to Slovenian (Slovenia). V opačném případě změní aktuální jazykovou verzi na chorvatština (Chorvatsko).Otherwise, it changes the current culture to Croatian (Croatia).

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo current = CultureInfo.CurrentUICulture;
      Console.WriteLine("The current UI culture is {0}", current.Name);
      CultureInfo newUICulture;
      if (current.Name.Equals("sl-SI"))
         newUICulture = new CultureInfo("hr-HR");
      else   
         newUICulture = new CultureInfo("sl-SI");
      
      CultureInfo.CurrentUICulture = newUICulture;
      Console.WriteLine("The current UI culture is now {0}", 
                        CultureInfo.CurrentUICulture.Name);   
   }
}
// The example displays output like the following:
//     The current UI culture is en-US
//     The current UI culture is now sl-SI
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim current As CultureInfo = CultureInfo.CurrentUICulture
      Console.WriteLine("The current UI culture is {0}", current.Name)
      Dim newUICulture As CultureInfo
      If current.Name.Equals("sl-SI") Then
         newUICulture = New CultureInfo("hr-HR")
      Else   
         newUICulture = new CultureInfo("sl-SI")
      End If
      
      CultureInfo.CurrentUICulture = newUICulture
      Console.WriteLine("The current UI culture is now {0}", 
                        CultureInfo.CurrentUICulture.Name)   
   End Sub
End Module
' The example displays output like the following:
'     The current UI culture is en-US
'     The current UI culture is now sl-SI

Získávání všech jazykových verzíGetting all cultures

Můžete načíst konkrétní kategorie kultur nebo pro všechny jazykové verze, které jsou k dispozici v místním počítači, voláním metody GetCultures.You can retrieve an array specific categories of cultures or of all the cultures available on the local computer by calling the GetCultures method. Můžete například načíst vlastní jazykové verze, konkrétní jazykové verze nebo neutrální kultury buď samostatně, nebo v kombinaci.For example, you can retrieve custom cultures, specific cultures, or neutral cultures either alone or in combination.

Následující příklad volá metodu GetCultures dvakrát, nejprve s členem System.Globalization.CultureTypes výčtu, aby načetla všechny vlastní jazykové verze a pak s System.Globalization.CultureTypes členem výčtu pro načtení všech náhradních kultur.The following example calls the GetCultures method twice, first with the System.Globalization.CultureTypes enumeration member to retrieve all custom cultures, and then with the System.Globalization.CultureTypes enumeration member to retrieve all replacement cultures.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Get all custom cultures.
      CultureInfo[] custom = CultureInfo.GetCultures(CultureTypes.UserCustomCulture);
      if (custom.Length == 0) { 
         Console.WriteLine("There are no user-defined custom cultures.");
      }
      else {
         Console.WriteLine("Custom cultures:");
         foreach (var culture in custom) 
            Console.WriteLine("   {0} -- {1}", culture.Name, culture.DisplayName);    
      }
      Console.WriteLine();
      
      // Get all replacement cultures.
      CultureInfo[] replacements = CultureInfo.GetCultures(CultureTypes.ReplacementCultures);
      if (replacements.Length == 0) { 
         Console.WriteLine("There are no replacement cultures.");
      }                                             
      else {
         Console.WriteLine("Replacement cultures:");
         foreach (var culture in replacements) 
            Console.WriteLine("   {0} -- {1}", culture.Name, culture.DisplayName);    
      }
      Console.WriteLine();
   }
}
// The example displays output like the following:
//     Custom cultures:
//        x-en-US-sample -- English (United States)
//        fj-FJ -- Boumaa Fijian (Viti)
//     
//     There are no replacement cultures.
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Get all custom cultures.
      Dim custom() As CultureInfo = CultureInfo.GetCultures(CultureTypes.UserCustomCulture)
      If custom.Length = 0 Then 
         Console.WriteLine("There are no user-defined custom cultures.")
      Else
         Console.WriteLine("Custom cultures:")
         For Each culture In custom 
            Console.WriteLine("   {0} -- {1}", culture.Name, culture.DisplayName)
         Next       
      End If
      Console.WriteLine()
      
      ' Get all replacement cultures.
      Dim replacements() As CultureInfo = CultureInfo.GetCultures(CultureTypes.ReplacementCultures)
      If replacements.Length = 0 Then 
         Console.WriteLine("There are no replacement cultures.")
      Else 
         Console.WriteLine("Replacement cultures:")
         For Each culture in replacements 
            Console.WriteLine("   {0} -- {1}", culture.Name, culture.DisplayName)    
         Next
      End If
      Console.WriteLine()
   End Sub
End Module
' The example displays output like the following:
'     Custom cultures:
'        x-en-US-sample -- English (United States)
'        fj-FJ -- Boumaa Fijian (Viti)
'     
'     There are no replacement cultures.

Jazyková verze a vláknaCulture and threads

Když je spuštěno nové vlákno aplikace, jeho aktuální jazyková verze a aktuální jazyková verze uživatelského rozhraní jsou definovány aktuální jazykovou verzí systému, nikoli aktuální jazykovou verzí vlákna.When a new application thread is started, its current culture and current UI culture are defined by the current system culture, and not by the current thread culture. Rozdíl je znázorněn v následujícím příkladu.The following example illustrates the difference. Nastaví aktuální jazykovou verzi a aktuální jazykovou verzi uživatelského rozhraní vlákna aplikace na francouzskou (Francii) jazykovou verzi (fr-FR).It sets the current culture and current UI culture of an application thread to the French (France) culture (fr-FR). Pokud je aktuální jazyková verze již fr-FR, příklad ji nastaví na anglickou (USA) jazykovou verzi (EN-US).If the current culture is already fr-FR, the example sets it to the English (United States) culture (en-US). Zobrazuje tři náhodná čísla jako hodnoty měny a pak vytvoří nové vlákno, které zase zobrazí tři další náhodná čísla jako hodnoty měny.It displays three random numbers as currency values and then creates a new thread, which, in turn, displays three more random numbers as currency values. Ale jak výstup z příkladu ukazuje, hodnoty měny zobrazené novým vláknem nereflektují konvence formátování francouzské jazykové verze (Francie), na rozdíl od výstupu z hlavního vlákna aplikace.But as the output from the example shows, the currency values displayed by the new thread do not reflect the formatting conventions of the French (France) culture, unlike the output from the main application thread.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   static Random rnd = new Random();
   
   public static void Main()
   {
      if (Thread.CurrentThread.CurrentCulture.Name != "fr-FR") {
         // If current culture is not fr-FR, set culture to fr-FR.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");
      }
      else {
         // Set culture to en-US.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("en-US");
      }
      ThreadProc();
          
      Thread worker = new Thread(ThreadProc);
      worker.Name = "WorkerThread";
      worker.Start();
   }
   
   private static void DisplayThreadInfo()
   {
      Console.WriteLine("\nCurrent Thread Name: '{0}'", 
                        Thread.CurrentThread.Name);
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name);                        
   }
   
   private static void DisplayValues()
   {
      // Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:");
      for (int ctr = 0; ctr <= 3; ctr++)
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10);                        
   }
   
   private static void ThreadProc()
   {
      DisplayThreadInfo();
      DisplayValues();
   }
}
// The example displays output similar to the following:
//       Current Thread Name: ''
//       Current Thread Culture/UI Culture: fr-FR/fr-FR
//       Some currency values:
//          8,11 €
//          1,48 €
//          8,99 €
//          9,04 €
//       
//       Current Thread Name: 'WorkerThread'
//       Current Thread Culture/UI Culture: en-US/en-US
//       Some currency values:
//          $6.72
//          $6.35
//          $2.90
//          $7.72
Imports System.Globalization
Imports System.Threading

Module Example
   Dim rnd As New Random()
   
   Public Sub Main()
      If Thread.CurrentThread.CurrentCulture.Name <> "fr-FR" Then
         ' If current culture is not fr-FR, set culture to fr-FR.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR")
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR")
      Else
         ' Set culture to en-US.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US")
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("en-US")
      End If
      ThreadProc()
          
       Dim worker As New Thread(AddressOf ThreadProc)
       worker.Name = "WorkerThread"
       worker.Start()
   End Sub
   
   Private Sub DisplayThreadInfo()
      Console.WriteLine()
      Console.WriteLine("Current Thread Name: '{0}'", 
                        Thread.CurrentThread.Name)
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name)                        
   End Sub
   
   Private Sub DisplayValues()
      ' Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:")
      For ctr As Integer = 0 To 3
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10)                        
      Next
   End Sub
   
   Private Sub ThreadProc()
      DisplayThreadInfo()
      DisplayValues()
   End Sub
End Module
' The example displays output similar to the following:
'       Current Thread Name: ''
'       Current Thread Culture/UI Culture: fr-FR/fr-FR
'       Some currency values:
'          8,11 €
'          1,48 €
'          8,99 €
'          9,04 €
'       
'       Current Thread Name: 'WorkerThread'
'       Current Thread Culture/UI Culture: en-US/en-US
'       Some currency values:
'          $6.72
'          $6.35
'          $2.90
'          $7.72

Ve verzích .NET Framework před .NET Framework 4.5.NET Framework 4.5, nejběžnější způsob, jak zajistit, že hlavní vlákno aplikace sdílí stejnou jazykovou verzi se všemi ostatními pracovními vlákny, je předat buď název jazykové verze pro celou aplikaci nebo objekt CultureInfo, který představuje jazykovou verzi pro celou aplikaci, do System.Threading.ParameterizedThreadStartho delegáta.In versions of the .NET Framework before the .NET Framework 4.5.NET Framework 4.5, the most common way to ensure that the main application thread shares the same culture with all other worker threads is to pass either the name of the application-wide culture or a CultureInfo object that represents the application-wide culture to a System.Threading.ParameterizedThreadStart delegate. Následující příklad používá tento přístup k zajištění toho, aby hodnoty měny zobrazené dvěma vlákny odrážely konvence formátování stejné jazykové verze.The following example uses this approach to ensure that the currency values displayed by two threads reflect the formatting conventions of the same culture.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   static Random rnd = new Random();
   
   public static void Main()
   {
      if (Thread.CurrentThread.CurrentCulture.Name != "fr-FR") {
         // If current culture is not fr-FR, set culture to fr-FR.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");
      }   
      else {
         // Set culture to en-US.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("en-US");
      }
      DisplayThreadInfo();
      DisplayValues();
          
       Thread worker = new Thread(Example.ThreadProc);
       worker.Name = "WorkerThread";
       worker.Start(Thread.CurrentThread.CurrentCulture);
   }
   
   private static void DisplayThreadInfo()
   {
      Console.WriteLine("\nCurrent Thread Name: '{0}'", 
                        Thread.CurrentThread.Name);
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name);                        
   }
   
   private static void DisplayValues()
   {
      // Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:");
      for (int ctr = 0; ctr <= 3; ctr++)
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10);                        
   }
   
   private static void ThreadProc(Object obj) 
   {
      Thread.CurrentThread.CurrentCulture = (CultureInfo) obj;
      Thread.CurrentThread.CurrentUICulture = (CultureInfo) obj;
      DisplayThreadInfo();
      DisplayValues();
   }
}
// The example displays output similar to the following:
//       Current Thread Name: ''
//       Current Thread Culture/UI Culture: fr-FR/fr-FR
//       Some currency values:
//          6,83 €
//          3,47 €
//          6,07 €
//          1,70 €
//       
//       Current Thread Name: 'WorkerThread'
//       Current Thread Culture/UI Culture: fr-FR/fr-FR
//       Some currency values:
//          9,54 €
//          9,50 €
//          0,58 €
//          6,91 €
Imports System.Globalization
Imports System.Threading

Module Example
   Dim rnd As New Random()
   
   Public Sub Main()
      If Thread.CurrentThread.CurrentCulture.Name <> "fr-FR" Then
         ' If current culture is not fr-FR, set culture to fr-FR.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR")
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR")
      Else
         ' Set culture to en-US.
         Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US")
         Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("en-US")
      End If
      DisplayThreadInfo()
      DisplayValues()
          
       Dim worker As New Thread(AddressOf ThreadProc)
       worker.Name = "WorkerThread"
       worker.Start(Thread.CurrentThread.CurrentCulture)
   End Sub
   
   Private Sub DisplayThreadInfo()
      Console.WriteLine()
      Console.WriteLine("Current Thread Name: '{0}'", 
                        Thread.CurrentThread.Name)
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name)                        
   End Sub
   
   Private Sub DisplayValues()
      ' Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:")
      For ctr As Integer = 0 To 3
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10)                        
      Next
   End Sub
   
   Private Sub ThreadProc(obj As Object)
      Thread.CurrentThread.CurrentCulture = CType(obj, CultureInfo)
      Thread.CurrentThread.CurrentUICulture = CType(obj, CultureInfo)
      DisplayThreadInfo()
      DisplayValues()
   End Sub
End Module
' The example displays output similar to the following:
'       Current Thread Name: ''
'       Current Thread Culture/UI Culture: fr-FR/fr-FR
'       Some currency values:
'          6,83 €
'          3,47 €
'          6,07 €
'          1,70 €
'       
'       Current Thread Name: 'WorkerThread'
'       Current Thread Culture/UI Culture: fr-FR/fr-FR
'       Some currency values:
'          9,54 €
'          9,50 €
'          0,58 €
'          6,91 €

Podobným způsobem můžete nastavit jazykovou verzi a jazykovou verzi uživatelského rozhraní vláken fondu vláken podobným způsobem voláním metody ThreadPool.QueueUserWorkItem(WaitCallback, Object).You can set the culture and UI culture of thread pool threads in a similar manner by calling the ThreadPool.QueueUserWorkItem(WaitCallback, Object) method.

Počínaje .NET Framework 4.5.NET Framework 4.5můžete nastavit jazykovou verzi a jazykovou verzi uživatelského rozhraní pro všechna vlákna v doméně aplikace více přímo přiřazením objektu CultureInfo, který představuje tuto jazykovou verzi pro DefaultThreadCurrentCulture a DefaultThreadCurrentUICulture vlastností.Starting with the .NET Framework 4.5.NET Framework 4.5, you can set the culture and UI culture of all threads in an application domain more directly by assigning a CultureInfo object that represents that culture to the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties. Následující příklad používá tyto vlastnosti k zajištění toho, aby všechna vlákna ve výchozí doméně aplikace sdílely stejnou jazykovou verzi.The following example uses these properties to ensure that all threads in the default application domain share the same culture.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   static Random rnd = new Random();
   
   public static void Main()
   {
      if (Thread.CurrentThread.CurrentCulture.Name != "fr-FR") {
         // If current culture is not fr-FR, set culture to fr-FR.
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");
      }   
      else {
         // Set culture to en-US.
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture("en-US");
      }
      ThreadProc();
          
      Thread worker = new Thread(Example.ThreadProc);
      worker.Name = "WorkerThread";
      worker.Start();
   }
   
   private static void DisplayThreadInfo()
   {
      Console.WriteLine("\nCurrent Thread Name: '{0}'", 
                        Thread.CurrentThread.Name);
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name);                        
   }
   
   private static void DisplayValues()
   {
      // Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:");
      for (int ctr = 0; ctr <= 3; ctr++)
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10);                        
   }
   
   private static void ThreadProc() 
   {
      DisplayThreadInfo();
      DisplayValues();
   }
}
// The example displays output similar to the following:
//       Current Thread Name: ''
//       Current Thread Culture/UI Culture: fr-FR/fr-FR
//       Some currency values:
//          6,83 €
//          3,47 €
//          6,07 €
//          1,70 €
//       
//       Current Thread Name: 'WorkerThread'
//       Current Thread Culture/UI Culture: fr-FR/fr-FR
//       Some currency values:
//          9,54 €
//          9,50 €
//          0,58 €
//          6,91 €
Imports System.Globalization
Imports System.Threading

Module Example
   Dim rnd As New Random()
   
   Public Sub Main()
      If Thread.CurrentThread.CurrentCulture.Name <> "fr-FR" Then
         ' If current culture is not fr-FR, set culture to fr-FR.
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR")
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR")
      Else
         ' Set culture to en-US.
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("en-US")
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture("en-US")
      End If
      ThreadProc()

       Dim worker As New Thread(AddressOf ThreadProc)
       worker.Name = "WorkerThread"
       worker.Start()
   End Sub
   
   Private Sub DisplayThreadInfo()
      Console.WriteLine()
      Console.WriteLine("Current Thread Name: '{0}'", 
                        Thread.CurrentThread.Name)
      Console.WriteLine("Current Thread Culture/UI Culture: {0}/{1}", 
                        Thread.CurrentThread.CurrentCulture.Name,
                        Thread.CurrentThread.CurrentUICulture.Name)                        
   End Sub
   
   Private Sub DisplayValues()
      ' Create new thread and display three random numbers.
      Console.WriteLine("Some currency values:")
      For ctr As Integer = 0 To 3
         Console.WriteLine("   {0:C2}", rnd.NextDouble() * 10)                        
      Next
   End Sub
   
   Private Sub ThreadProc()
      DisplayThreadInfo()
      DisplayValues()
   End Sub
End Module
' The example displays output similar to the following:
'       Current Thread Name: ''
'       Current Thread Culture/UI Culture: fr-FR/fr-FR
'       Some currency values:
'          6,83 €
'          3,47 €
'          6,07 €
'          1,70 €
'       
'       Current Thread Name: 'WorkerThread'
'       Current Thread Culture/UI Culture: fr-FR/fr-FR
'       Some currency values:
'          9,54 €
'          9,50 €
'          0,58 €
'          6,91 €

Varování

I když jsou vlastnosti DefaultThreadCurrentCulture a DefaultThreadCurrentUICulture statické členy, definují výchozí jazykovou verzi a výchozí jazykovou verzi uživatelského rozhraní pouze pro doménu aplikace, která je aktuální v době, kdy jsou tyto hodnoty vlastností nastaveny.Although the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties are static members, they define the default culture and default UI culture only for the application domain that is current at the time these property values are set. Další informace naleznete v další části, jazykové verzi a domény aplikace.For more information, see the next section, Culture and application domains.

Pokud přiřadíte hodnoty vlastnostem DefaultThreadCurrentCulture a DefaultThreadCurrentUICulture, jazyková verze a jazyková verze vlákna v doméně aplikace se také změní, pokud nejsou explicitně přiřazeny jazykové verzi.When you assign values to the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties, the culture and UI culture of the threads in the application domain also change if they have not explicitly been assigned a culture. Tato vlákna však odráží nové nastavení jazykové verze pouze v době, kdy jsou spuštěny v aktuální doméně aplikace.However, these threads reflect the new culture settings only while they execute in the current application domain. Pokud jsou tato vlákna spouštěna v jiné doméně aplikace, bude jejich jazyková verze nastavena jako výchozí jazyková verze definovaná pro danou doménu aplikace.If these threads execute in another application domain, their culture becomes the default culture defined for that application domain. V důsledku toho doporučujeme vždy nastavit jazykovou verzi hlavního vlákna aplikace a nespoléhat se na DefaultThreadCurrentCulture a vlastnosti DefaultThreadCurrentUICulture pro jejich změnu.As a result, we recommend that you always set the culture of the main application thread, and not rely on the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties to change it.

Jazyková verze a domény aplikaceCulture and application domains

DefaultThreadCurrentCulture a DefaultThreadCurrentUICulture jsou statické vlastnosti, které explicitně definují výchozí jazykovou verzi pouze pro doménu aplikace, která je aktuální, pokud je hodnota vlastnosti nastavena nebo načtena.DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture are static properties that explicitly define a default culture only for the application domain that is current when the property value is set or retrieved. Následující příklad nastaví výchozí jazykovou verzi a výchozí jazykovou verzi uživatelského rozhraní ve výchozí doméně aplikace na francouzština (Francie) a poté používá třídu AppDomainSetup a delegáta AppDomainInitializer k nastavení výchozí jazykové verze a jazykové verze uživatelského rozhraní v nové doméně aplikace na ruština (Rusko).The following example sets the default culture and default UI culture in the default application domain to French (France), and then uses the AppDomainSetup class and the AppDomainInitializer delegate to set the default culture and UI culture in a new application domain to Russian (Russia). Jedno vlákno poté provede dvě metody v každé doméně aplikace.A single thread then executes two methods in each application domain. Všimněte si, že jazyková verze vlákna a jazyková verze uživatelského rozhraní nejsou explicitně nastaveny; jsou odvozeny z výchozí jazykové verze a jazykové verze uživatelského rozhraní domény aplikace, ve které je vlákno spuštěno.Note that the thread's culture and UI culture are not explicitly set; they are derived from the default culture and UI culture of the application domain in which the thread is executing. Všimněte si také, že vlastnosti DefaultThreadCurrentCulture a DefaultThreadCurrentUICulture vracejí výchozí CultureInfo hodnoty domény aplikace, která je aktuální, když je proveden volání metody.Note also that the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties return the default CultureInfo values of the application domain that is current when the method call is made.

using System;
using System.Globalization;
using System.Reflection;
using System.Threading;

public class Example
{
   public static void Main()
   {
      // Set the default culture and display the current date in the current application domain.
      Info info1 = new Info();
      SetAppDomainCultures("fr-FR");
      
      // Create a second application domain.
      AppDomainSetup setup = new AppDomainSetup();
      setup.AppDomainInitializer = SetAppDomainCultures;
      setup.AppDomainInitializerArguments = new string[] { "ru-RU" };
      AppDomain domain = AppDomain.CreateDomain("Domain2", null, setup);
      // Create an Info object in the new application domain.
      Info info2 = (Info) domain.CreateInstanceAndUnwrap(typeof(Example).Assembly.FullName, 
                                                         "Info"); 

      // Execute methods in the two application domains.
      info2.DisplayDate();
      info2.DisplayCultures();
      
      info1.DisplayDate();
      info1.DisplayCultures();            
   }

   public static void SetAppDomainCultures(string[] names)
   {
      SetAppDomainCultures(names[0]);
   }
   
   public static void SetAppDomainCultures(string name)
   {
       try {
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture(name);
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture(name);
      }
      // If an exception occurs, we'll just fall back to the system default.
      catch (CultureNotFoundException) {
         return;
      }   
      catch (ArgumentException) {
         return;
      } 
   }
}

public class Info : MarshalByRefObject
{
   public void DisplayDate()
   {
      Console.WriteLine("Today is {0:D}", DateTime.Now);
   }
   
   public void DisplayCultures()
   {
      Console.WriteLine("Application domain is {0}", AppDomain.CurrentDomain.Id);
      Console.WriteLine("Default Culture: {0}", CultureInfo.DefaultThreadCurrentCulture);
      Console.WriteLine("Default UI Culture: {0}", CultureInfo.DefaultThreadCurrentUICulture);
   }
}
// The example displays the following output:
//       Today is 14 октября 2011 г.
//       Application domain is 2
//       Default Culture: ru-RU
//       Default UI Culture: ru-RU
//       Today is vendredi 14 octobre 2011
//       Application domain is 1
//       Default Culture: fr-FR
//       Default UI Culture: fr-FR
Imports System.Globalization
Imports System.Reflection
Imports System.Threading

Module Example
   Public Sub Main()
      ' Set the default culture and display the current date in the current application domain.
      Dim info1 As New Info()
      SetAppDomainCultures("fr-FR")
      
      ' Create a second application domain.
      Dim setup As New AppDomainSetup()
      setup.AppDomainInitializer = AddressOf SetAppDomainCultures
      setup.AppDomainInitializerArguments = { "ru-RU" }
      Dim domain As AppDomain = AppDomain.CreateDomain("Domain2", Nothing, setup)
      ' Create an Info object in the new application domain.
      Dim info2 As Info = CType(domain.CreateInstanceAndUnwrap(GetType(Example).Assembly.FullName, 
                                                               "Info"), Info) 

      ' Execute methods in the two application domains.
      info2.DisplayDate()
      info2.DisplayCultures()
      
      info1.DisplayDate()
      info1.DisplayCultures()            
   End Sub
   
   Public Sub SetAppDomainCultures(names() As String)
      SetAppDomainCultures(names(0))
   End Sub
   
   Public Sub SetAppDomainCultures(name As String)
       Try
         CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture(name)
         CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.CreateSpecificCulture(name)
      ' If an exception occurs, we'll just fall back to the system default.
      Catch e As CultureNotFoundException
         Return
      Catch e As ArgumentException
         Return
      End Try      
   End Sub
End Module

Public Class Info : Inherits MarshalByRefObject
   Public Sub DisplayDate()
      Console.WriteLine("Today is {0:D}", Date.Now)
   End Sub
   
   Public Sub DisplayCultures()
      Console.WriteLine("Application domain is {0}", AppDomain.CurrentDomain.Id)
      Console.WriteLine("Default Culture: {0}", CultureInfo.DefaultThreadCurrentCulture)
      Console.WriteLine("Default UI Culture: {0}", CultureInfo.DefaultThreadCurrentUICulture)
   End Sub
End Class
' The example displays the following output:
'       Today is 14 октября 2011 г.
'       Application domain is 2
'       Default Culture: ru-RU
'       Default UI Culture: ru-RU
'       Today is vendredi 14 octobre 2011
'       Application domain is 1
'       Default Culture: fr-FR
'       Default UI Culture: fr-FR

Další informace o jazykových verzích a doménách aplikací naleznete v části "domény aplikace a vlákna" v tématu věnovaném doménám aplikace .For more information about cultures and application domains, see the "Application Domains and Threads" section in the Application Domains topic.

Asynchronní operace na základě jazykové verze a úlohyCulture and task-based asynchronous operations

Asynchronní programovací model založený na úlohách používá Task a Task<TResult> objektů k asynchronnímu spouštění delegátů v vláknech fondu vláken.The task-based asynchronous programming pattern uses Task and Task<TResult> objects to asynchronously execute delegates on thread pool threads. Konkrétní vlákno, na kterém konkrétní úloha běží, není známo předem, ale je určeno pouze za běhu.The specific thread on which a particular task runs is not known in advance, but is determined only at runtime.

Pro aplikace, které cílí na .NET Framework 4.6.NET Framework 4.6 nebo novější verze, je jazyková verze součástí kontextu asynchronní operace.For apps that target the .NET Framework 4.6.NET Framework 4.6 or later versions, culture is part of an asynchronous operation's context. Jinými slovy, počínaje aplikacemi, které cílí na .NET Framework 4.6.NET Framework 4.6, jsou ve výchozím nastavení asynchronní operace děděny hodnoty vlastností CurrentCulture a CurrentUICulture vlákna, ze kterého jsou spouštěny.In other words, starting with apps that target the .NET Framework 4.6.NET Framework 4.6, asynchronous operations by default inherit the values of the CurrentCulture and CurrentUICulture properties of the thread from which they are launched. Pokud aktuální jazyková verze nebo aktuální jazyková verze uživatelského rozhraní se liší od jazykové verze systému, aktuální jazyková verze protíná hranice vlákna a stávají se aktuální kulturou vlákna fondu vláken, které provádí asynchronní operaci.If the current culture or current UI culture differs from the system culture, the current culture crosses thread boundaries and becomes the current culture of the thread pool thread that is executing an asynchronous operation.

Následující příklad poskytuje jednoduchý obrázek.The following example provides a simple illustration. Používá atribut TargetFrameworkAttribute k cílení na .NET Framework 4.6.NET Framework 4.6.It uses the TargetFrameworkAttribute attribute to target the .NET Framework 4.6.NET Framework 4.6. Příklad definuje delegáta Func<TResult>, formatDelegate, který vrací některá čísla formátovaná jako hodnoty měny.The example defines a Func<TResult> delegate, formatDelegate, that returns some numbers formatted as currency values. Příklad změní aktuální jazykovou verzi systému buď na francouzštinu (Francie), nebo, pokud je již francouzština (Francie) aktuální jazykovou verzí, angličtinu (USA).The example changes the current system culture to either French (France) or, if French (France) is already the current culture, English (United States). Pak:It then:

  • Vyvolá delegáta přímo, aby běžel synchronně v hlavním vlákně aplikace.Invokes the delegate directly so that it runs synchronously on the main app thread.

  • Vytvoří úlohu, která spustí delegáta asynchronně ve vlákně fondu vláken.Creates a task that executes the delegate asynchronously on a thread pool thread.

  • Vytvoří úlohu, která provede synchronního delegáta v hlavním vlákně aplikace voláním metody Task.RunSynchronously.Creates a task that executes the delegate synchronously on the main app thread by calling the Task.RunSynchronously method.

Jak ukazuje výstup z příkladu, když je aktuální jazyková verze změněna na francouzština (Francie), aktuální jazyková verze vlákna, ze které se úlohy vyvolají asynchronně, se stávají aktuální jazykovou verzí této asynchronní operace.As the output from the example shows, when the current culture is changed to French (France), the current culture of the thread from which tasks are invoked asynchronously becomes the current culture for that asynchronous operation.

using System;
using System.Globalization;
using System.Runtime.Versioning;
using System.Threading;
using System.Threading.Tasks;

[assembly:TargetFramework(".NETFramework,Version=v4.6")]

public class Example
{
   
   public static void Main()
   {
       decimal[] values = { 163025412.32m, 18905365.59m };
       string formatString = "C2";
       Func<String> formatDelegate = () => { string output = String.Format("Formatting using the {0} culture on thread {1}.\n",
                                                                           CultureInfo.CurrentCulture.Name,
                                                                           Thread.CurrentThread.ManagedThreadId);
                                             foreach (var value in values)
                                                output += String.Format("{0}   ", value.ToString(formatString));
                                                   
                                             output += Environment.NewLine;
                                             return output;
                                           };
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId);
       // Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name);
       if (CultureInfo.CurrentCulture.Name == "fr-FR")
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
       else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");

       Console.WriteLine("Changed the current culture to {0}.\n",
                         CultureInfo.CurrentCulture.Name);
       
       // Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:");
       Console.WriteLine(formatDelegate());
       
       // Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:"); 
       var t1 = Task.Run(formatDelegate);
       Console.WriteLine(t1.Result);
       
       Console.WriteLine("Executing a task synchronously:");
       var t2 = new Task<String>(formatDelegate); 
       t2.RunSynchronously();
       Console.WriteLine(t2.Result);
   }
}
// The example displays the following output:
//         The example is running on thread 1
//         The current culture is en-US
//         Changed the current culture to fr-FR.
//
//         Executing the delegate synchronously:
//         Formatting using the fr-FR culture on thread 1.
//         163 025 412,32 €   18 905 365,59 €
//
//         Executing a task asynchronously:
//         Formatting using the fr-FR culture on thread 3.
//         163 025 412,32 €   18 905 365,59 €
//
//         Executing a task synchronously:
//         Formatting using the fr-FR culture on thread 1.
//         163 025 412,32 €   18 905 365,59 €
Imports System.Globalization
Imports System.Runtime.Versioning
Imports System.Threading
Imports System.Threading.Tasks

<Assembly:TargetFramework(".NETFramework,Version=v4.6")>

Module Example
   Public Sub Main()
       Dim values() As Decimal = { 163025412.32d, 18905365.59d }
       Dim formatString As String = "C2"
       Dim formatDelegate As Func(Of String) = Function()
                                                  Dim output As String = String.Format("Formatting using the {0} culture on thread {1}.",
                                                                                       CultureInfo.CurrentCulture.Name,
                                                                                       Thread.CurrentThread.ManagedThreadId)
                                                  output += Environment.NewLine
                                                  For Each value In values
                                                     output += String.Format("{0}   ", value.ToString(formatString))
                                                  Next 
                                                  output += Environment.NewLine
                                                  Return output
                                               End Function
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId)
       ' Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name)
       If CultureInfo.CurrentCulture.Name = "fr-FR" Then
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US")
       Else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR")
       End If
       Console.WriteLine("Changed the current culture to {0}.",
                         CultureInfo.CurrentCulture.Name)
       Console.WriteLine()                  
       
       ' Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:")
       Console.WriteLine(formatDelegate())
       
       ' Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:") 
       Dim t1 = Task.Run(formatDelegate)
       Console.WriteLine(t1.Result)
       
       Console.WriteLine("Executing a task synchronously:")
       Dim t2 = New Task(Of String)(formatDelegate) 
       t2.RunSynchronously()
       Console.WriteLine(t2.Result)
   End Sub
End Module
' The example displays the following output:
'          The example is running on thread 1
'          The current culture is en-US
'          Changed the current culture to fr-FR.
'
'          Executing the delegate synchronously:
'          Formatting Imports the fr-FR culture on thread 1.
'          163 025 412,32 €   18 905 365,59 €
'
'          Executing a task asynchronously:
'          Formatting Imports the fr-FR culture on thread 3.
'          163 025 412,32 €   18 905 365,59 €
'
'          Executing a task synchronously:
'          Formatting Imports the fr-FR culture on thread 1.
'          163 025 412,32 €   18 905 365,59 €

Pro aplikace, které cílí na verze .NET Framework před .NET Framework 4.6.NET Framework 4.6nebo pro aplikace, které necílí na konkrétní verzi .NET Framework, není kultura volajícího vlákna součástí kontextu úkolu.For apps that target versions of the .NET Framework prior to the .NET Framework 4.6.NET Framework 4.6, or for apps that do not target a particular version of the .NET Framework, the culture of the calling thread is not part of a task's context. Místo toho, pokud není explicitně definováno, jazyková verze nových vláken ve výchozím nastavení je jazyková verze systému.Instead, unless one is explicitly defined, the culture of new threads by default is the system culture. Následující příklad, který je totožný s předchozím příkladem s tím rozdílem, že nemá atribut TargetFrameworkAttribute, tento postup znázorňuje.The following example, which is identical to the previous example except that it lacks the TargetFrameworkAttribute attribute, illustrates this. Vzhledem k tomu, že systémová jazyková verze systému, na kterém byl spuštěný příklad English (USA), je jazyková verze úlohy, která se asynchronně spouští ve vlákně fondu vláken, spíše en-US a ne fr-FR.Because the system culture of the system on which the example executed was English (United States), the culture of the task that executes asynchronously on a thread pool thread is en-US rather than fr-FR.

using System;
using System.Globalization;
using System.Runtime.Versioning;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
       decimal[] values = { 163025412.32m, 18905365.59m };
       string formatString = "C2";
       Func<String> formatDelegate = () => { string output = String.Format("Formatting using the {0} culture on thread {1}.\n",
                                                                           CultureInfo.CurrentCulture.Name,
                                                                           Thread.CurrentThread.ManagedThreadId);
                                             foreach (var value in values)
                                                output += String.Format("{0}   ", value.ToString(formatString));
                                                   
                                             output += Environment.NewLine;
                                             return output;
                                           };
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId);
       // Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name);
       if (CultureInfo.CurrentCulture.Name == "fr-FR")
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
       else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");

       Console.WriteLine("Changed the current culture to {0}.\n",
                         CultureInfo.CurrentCulture.Name);
       
       // Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:");
       Console.WriteLine(formatDelegate());
       
       // Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:"); 
       var t1 = Task.Run(formatDelegate);
       Console.WriteLine(t1.Result);
       
       Console.WriteLine("Executing a task synchronously:");
       var t2 = new Task<String>(formatDelegate); 
       t2.RunSynchronously();
       Console.WriteLine(t2.Result);
   }
}
// The example displays the following output:
//     The example is running on thread 1
//     The current culture is en-US
//     Changed the current culture to fr-FR.
//     
//     Executing the delegate synchronously:
//     Formatting using the fr-FR culture on thread 1.
//     163 025 412,32 €   18 905 365,59 €
//     
//     Executing a task asynchronously:
//     Formatting using the en-US culture on thread 3.
//     $163,025,412.32   $18,905,365.59
//     
//     Executing a task synchronously:
//     Formatting using the fr-FR culture on thread 1.
//     163 025 412,32 €   18 905 365,59 €
Imports System.Globalization
Imports System.Runtime.Versioning
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
       Dim values() As Decimal = { 163025412.32d, 18905365.59d }
       Dim formatString As String = "C2"
       Dim formatDelegate As Func(Of String) = Function()
                                                  Dim output As String = String.Format("Formatting using the {0} culture on thread {1}.",
                                                                                       CultureInfo.CurrentCulture.Name,
                                                                                       Thread.CurrentThread.ManagedThreadId)
                                                  output += Environment.NewLine
                                                  For Each value In values
                                                     output += String.Format("{0}   ", value.ToString(formatString))
                                                  Next 
                                                  output += Environment.NewLine
                                                  Return output
                                               End Function
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId)
       ' Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name)
       If CultureInfo.CurrentCulture.Name = "fr-FR" Then
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US")
       Else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR")
       End If
       Console.WriteLine("Changed the current culture to {0}.",
                         CultureInfo.CurrentCulture.Name)
       Console.WriteLine()                  
       
       ' Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:")
       Console.WriteLine(formatDelegate())
       
       ' Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:") 
       Dim t1 = Task.Run(formatDelegate)
       Console.WriteLine(t1.Result)
       
       Console.WriteLine("Executing a task synchronously:")
       Dim t2 = New Task(Of String)(formatDelegate) 
       t2.RunSynchronously()
       Console.WriteLine(t2.Result)
   End Sub
End Module
' The example displays the following output:
'     The example is running on thread 1
'     The current culture is en-US
'     Changed the current culture to fr-FR.
'     
'     Executing the delegate synchronously:
'     Formatting using the fr-FR culture on thread 1.
'     163 025 412,32 €   18 905 365,59 €
'     
'     Executing a task asynchronously:
'     Formatting using the en-US culture on thread 3.
'     $163,025,412.32   $18,905,365.59
'     
'     Executing a task synchronously:
'     Formatting using the fr-FR culture on thread 1.
'     163 025 412,32 €   18 905 365,59 €

Pro aplikace, které cílí na verze .NET Framework z .NET Framework 4.5.NET Framework 4.5 a novější, ale před .NET Framework 4.6.NET Framework 4.6, můžete použít vlastnosti DefaultThreadCurrentCulture a DefaultThreadCurrentUICulture k zajištění toho, aby se jazyková verze volajícího vlákna používala v asynchronních úlohách, které se spouštějí v vláknech fondu vláken.For apps that target versions of the .NET Framework from the .NET Framework 4.5.NET Framework 4.5 and later but prior to the .NET Framework 4.6.NET Framework 4.6, you can use the DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture properties to ensure that the culture of the calling thread is used in asynchronous tasks that execute on thread pool threads. Následující příklad je stejný jako předchozí příklad, s tím rozdílem, že používá vlastnost DefaultThreadCurrentCulture k zajištění, že vlákna fondu vláken mají stejnou jazykovou verzi jako hlavní vlákno aplikace.The following example is identical to the previous example, except that it uses the DefaultThreadCurrentCulture property to ensure that thread pool threads have the same culture as the main app thread.

using System;
using System.Globalization;
using System.Runtime.Versioning;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
       decimal[] values = { 163025412.32m, 18905365.59m };
       string formatString = "C2";
       Func<String> formatDelegate = () => { string output = String.Format("Formatting using the {0} culture on thread {1}.\n",
                                                                           CultureInfo.CurrentCulture.Name,
                                                                           Thread.CurrentThread.ManagedThreadId);
                                             foreach (var value in values)
                                                output += String.Format("{0}   ", value.ToString(formatString));
                                                   
                                             output += Environment.NewLine;
                                             return output;
                                           };
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId);
       // Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name);
       if (CultureInfo.CurrentCulture.Name == "fr-FR")
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
       else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");

       Console.WriteLine("Changed the current culture to {0}.\n",
                         CultureInfo.CurrentCulture.Name);
       CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CurrentCulture;
       
       // Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:");
       Console.WriteLine(formatDelegate());
       
       // Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:"); 
       var t1 = Task.Run(formatDelegate);
       Console.WriteLine(t1.Result);
       
       Console.WriteLine("Executing a task synchronously:");
       var t2 = new Task<String>(formatDelegate); 
       t2.RunSynchronously();
       Console.WriteLine(t2.Result);
   }
}
// The example displays the following output:
//     The example is running on thread 1
//     The current culture is en-US
//     Changed the current culture to fr-FR.
//     
//     Executing the delegate synchronously:
//     Formatting using the fr-FR culture on thread 1.
//     163 025 412,32 €   18 905 365,59 €
//     
//     Executing a task asynchronously:
//     Formatting using the fr-FR culture on thread 3.
//     163 025 412,32 €   18 905 365,59 €
//     
//     Executing a task synchronously:
//     Formatting using the fr-FR culture on thread 1.
//     163 025 412,32 €   18 905 365,59 €
Imports System.Globalization
Imports System.Runtime.Versioning
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
       Dim values() As Decimal = { 163025412.32d, 18905365.59d }
       Dim formatString As String = "C2"
       Dim formatDelegate As Func(Of String) = Function()
                                                  Dim output As String = String.Format("Formatting using the {0} culture on thread {1}.",
                                                                                       CultureInfo.CurrentCulture.Name,
                                                                                       Thread.CurrentThread.ManagedThreadId)
                                                  output += Environment.NewLine
                                                  For Each value In values
                                                     output += String.Format("{0}   ", value.ToString(formatString))
                                                  Next 
                                                  output += Environment.NewLine
                                                  Return output
                                               End Function
       
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId)
       ' Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name)
       If CultureInfo.CurrentCulture.Name = "fr-FR" Then
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US")
       Else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR")
       End If
       Console.WriteLine("Changed the current culture to {0}.",
                         CultureInfo.CurrentCulture.Name)
       CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CurrentCulture
       Console.WriteLine()                  
       
       ' Execute the delegate synchronously.
       Console.WriteLine("Executing the delegate synchronously:")
       Console.WriteLine(formatDelegate())
       
       ' Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously:") 
       Dim t1 = Task.Run(formatDelegate)
       Console.WriteLine(t1.Result)
       
       Console.WriteLine("Executing a task synchronously:")
       Dim t2 = New Task(Of String)(formatDelegate) 
       t2.RunSynchronously()
       Console.WriteLine(t2.Result)
   End Sub
End Module
' The example displays the following output:
'       The example is running on thread 1
'       The current culture is en-US
'       Changed the current culture to fr-FR.
'       
'       Executing the delegate synchronously:
'       Formatting using the fr-FR culture on thread 1.
'       163 025 412,32 €   18 905 365,59 €
'       
'       Executing a task asynchronously:
'       Formatting using the fr-FR culture on thread 3.
'       163 025 412,32 €   18 905 365,59 €
'       
'       Executing a task synchronously:
'       Formatting using the fr-FR culture on thread 1.
'       163 025 412,32 €   18 905 365,59 €

DefaultThreadCurrentCulture a DefaultThreadCurrentUICulture jsou vlastnosti domény pro aplikaci; To znamená, že vytvoří výchozí jazykovou verzi pro všechna vlákna, která nejsou explicitně přiřazena jazyková verze v konkrétní aplikační doméně.DefaultThreadCurrentCulture and DefaultThreadCurrentUICulture are per-app domain properties; that is, they establish a default culture for all threads not explicitly assigned a culture in a specific application domain. Pro aplikace, které cílí na .NET Framework 4.6.NET Framework 4.6 nebo novější, jazyková verze volajícího vlákna zůstává součástí kontextu asynchronní úlohy, i když úloha protíná hranice domény aplikace.However, for apps that target the .NET Framework 4.6.NET Framework 4.6 or later, the culture of the calling thread remains part of an asynchronous task's context even if the task crosses app domain boundaries.

Následující příklad ukazuje, že jazyková verze volajícího vlákna zůstává aktuální kulturou asynchronní operace založené na úlohách i v případě, že metoda, kterou úloha provádí, překračuje hranice aplikační domény.The following example shows that the calling thread's culture remains the current culture of a task-based asynchronous operation even if the method that the task is executing crosses application domain boundaries. Definuje třídu DataRetrievers jedinou metodou, GetFormattedNumber, která vrací náhodné číslo s plovoucí desetinnou čárkou s dvojitou přesností mezi 1 a 1 000 formátovanou jako hodnota měny.It defines a class, DataRetriever, with a single method, GetFormattedNumber, that returns a random double-precision floating-point number between 1 and 1,000 formatted as a currency value. Spustí se první úkol, který jednoduše vytvoří instanci instance DataRetriever a zavolá jeho metodu GetFormattedNumber.A first task is run that simply instantiates a DataRetriever instance and calls its GetFormattedNumber method. Druhá úloha sestaví svou aktuální doménu aplikace, vytvoří novou doménu aplikace, vytvoří instanci instance DataRetriever v nové doméně aplikace a zavolá metodu GetFormattedNumber.A second task reports its current application domain, creates a new application domain, instantiates a DataRetriever instance in the new application domain, and calls its GetFormattedNumber method. Jak ukazuje výstup z příkladu, aktuální jazyková verze zůstala stejná ve volajícím vlákně, prvním úkolu a druhý úkol při spuštění v hlavní doméně aplikace a druhé doméně aplikace.As the output from the example shows, the current culture has remained the same in the calling thread, the first task, and the second task both when it was executing in the main application domain and the second application domain.

using System;
using System.Globalization;
using System.Runtime.Versioning;
using System.Threading;
using System.Threading.Tasks;

[assembly:TargetFramework(".NETFramework,Version=v4.6")]

public class Example
{
   public static void Main()
   {
       string formatString = "C2";
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId);
       // Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name);
       if (CultureInfo.CurrentCulture.Name == "fr-FR")
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
       else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");

       Console.WriteLine("Changed the current culture to {0}.\n",
                         CultureInfo.CurrentCulture.Name);
       
       // Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously in the main appdomain:"); 
       var t1 = Task.Run(() => { DataRetriever d = new DataRetriever();
                                 return d.GetFormattedNumber(formatString);
                               });
       Console.WriteLine(t1.Result);
       Console.WriteLine(); 
       
       Console.WriteLine("Executing a task synchronously in two appdomains:");
       var t2 = Task.Run(() => { Console.WriteLine("Thread {0} is running in app domain '{1}'", 
                                                   Thread.CurrentThread.ManagedThreadId, 
                                                   AppDomain.CurrentDomain.FriendlyName);
                                 AppDomain domain = AppDomain.CreateDomain("Domain2");
                                 DataRetriever d = (DataRetriever) domain.CreateInstanceAndUnwrap(typeof(Example).Assembly.FullName,
                                                   "DataRetriever");
                                 return d.GetFormattedNumber(formatString); 
                               }); 
       Console.WriteLine(t2.Result);
   }
}

public class DataRetriever : MarshalByRefObject
{
   public string GetFormattedNumber(String format)
   {
      Thread thread = Thread.CurrentThread;
      Console.WriteLine("Current culture is {0}", thread.CurrentCulture);
      Console.WriteLine("Thread {0} is running in app domain '{1}'", 
                        thread.ManagedThreadId, 
                        AppDomain.CurrentDomain.FriendlyName);
      Random rnd = new Random();
      Double value = rnd.NextDouble() * 1000;
      return value.ToString(format);
   }
}
// The example displays output like the following:
//     The example is running on thread 1
//     The current culture is en-US
//     Changed the current culture to fr-FR.
//     
//     Executing a task asynchronously in a single appdomain:
//     Current culture is fr-FR
//     Thread 3 is running in app domain 'AsyncCulture4.exe'
//     93,48 €
//     
//     Executing a task synchronously in two appdomains:
//     Thread 4 is running in app domain 'AsyncCulture4.exe'
//     Current culture is fr-FR
//     Thread 4 is running in app domain 'Domain2'
//     288,66 €
Imports System.Globalization
Imports System.Runtime.Versioning
Imports System.Threading
Imports System.Threading.Tasks

<Assembly:TargetFramework(".NETFramework,Version=v4.6")>

Module Example
   Public Sub Main()
       Dim formatString As String = "C2"
       Console.WriteLine("The example is running on thread {0}", 
                         Thread.CurrentThread.ManagedThreadId)
       ' Make the current culture different from the system culture.
       Console.WriteLine("The current culture is {0}", 
                         CultureInfo.CurrentCulture.Name)
       If CultureInfo.CurrentCulture.Name = "fr-FR" Then
          Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US")
       Else
          Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR")
       End If

       Console.WriteLine("Changed the current culture to {0}.",
                         CultureInfo.CurrentCulture.Name)
       Console.WriteLine()
       
       ' Call an async delegate to format the values using one format string.
       Console.WriteLine("Executing a task asynchronously in the main appdomain:") 
       Dim t1 = Task.Run(Function()
                            Dim d As New DataRetriever()
                            Return d.GetFormattedNumber(formatString)
                         End Function)
       Console.WriteLine(t1.Result)
       Console.WriteLine() 
       
       Console.WriteLine("Executing a task synchronously in two appdomains:")
       Dim t2 = Task.Run(Function()
                            Console.WriteLine("Thread {0} is running in app domain '{1}'", 
                                              Thread.CurrentThread.ManagedThreadId, 
                                              AppDomain.CurrentDomain.FriendlyName)
                            Dim domain As AppDomain = AppDomain.CreateDomain("Domain2")
                            Dim d As DataRetriever = CType(domain.CreateInstanceAndUnwrap(GetType(Example).Assembly.FullName,
                                                                                          "DataRetriever"), DataRetriever)
                            Return d.GetFormattedNumber(formatString) 
                         End Function) 
       Console.WriteLine(t2.Result)
   End Sub
End Module

Public Class DataRetriever : Inherits MarshalByRefObject
   Public Function GetFormattedNumber(format As String) As String
      Dim thread As Thread = Thread.CurrentThread
      Console.WriteLine("Current culture is {0}", thread.CurrentCulture)
      Console.WriteLine("Thread {0} is running in app domain '{1}'", 
                        thread.ManagedThreadId, 
                        AppDomain.CurrentDomain.FriendlyName)
      Dim rnd As New Random()
      Dim value As Double = rnd.NextDouble() * 1000
      Return value.ToString(format)
   End Function
End Class
' The example displays output like the following:
'     The example is running on thread 1
'     The current culture is en-US
'     Changed the current culture to fr-FR.
'     
'     Executing a task asynchronously in a single appdomain:
'     Current culture is fr-FR
'     Thread 3 is running in app domain 'AsyncCulture4.exe'
'     93,48 €
'     
'     Executing a task synchronously in two appdomains:
'     Thread 4 is running in app domain 'AsyncCulture4.exe'
'     Current culture is fr-FR
'     Thread 4 is running in app domain 'Domain2'
'     288,66 €

Serializace objektu CultureInfoCultureInfo object serialization

Je-li objekt CultureInfo serializován, vše, co je skutečně uloženo, je Name a UseUserOverride.When a CultureInfo object is serialized, all that is actually stored is Name and UseUserOverride. Je úspěšně rozserializována pouze v prostředí, kde má Name stejný význam.It is successfully de-serialized only in an environment where that Name has the same meaning. V následujících třech příkladech se dozvíte, proč to není vždycky u tohoto případu:The following three examples show why this is not always the case:

  • Pokud je hodnota vlastnosti CultureTypes CultureTypes.InstalledWin32Culturesa v případě, že tato jazyková verze byla poprvé zavedena v konkrétní verzi operačního systému Windows, není možné ji deserializovat v dřívější verzi systému Windows.If the CultureTypes property value is CultureTypes.InstalledWin32Cultures, and if that culture was first introduced in a particular version of the Windows operating system, it is not possible to deserialize it on an earlier version of Windows. Například pokud byla jazyková verze představena ve Windows 10, nelze ji deserializovat v systému Windows 8.For example, if a culture was introduced in Windows 10, it cannot be deserialized on Windows 8.

  • Pokud je hodnota CultureTypes CultureTypes.UserCustomCulturea počítač, ve kterém je rozserializovaný, nemá nainstalovanou vlastní jazykovou verzi uživatele, není možné ji deserializovat.If the CultureTypes value is CultureTypes.UserCustomCulture, and the computer on which it is de-serialized does not have this user custom culture installed, it is not possible to deserialize it.

  • Pokud je hodnota CultureTypes CultureTypes.ReplacementCulturesa počítač, ve kterém je rozserializovaný, nemá tuto nahrazující jazykovou verzi, deserializace se stejným názvem, ale ne se všemi stejnými charakteristikami.If the CultureTypes value is CultureTypes.ReplacementCultures, and the computer on which it is de-serialized does not have this replacement culture, it de-serializes to the same name, but not all of the same characteristics. Například pokud en-US je nahrazující jazyková verze v počítači A, ale ne v počítači B, a pokud je objekt CultureInfo odkazující na tuto jazykovou verzi serializován v počítači a a v počítači B, pak není přenášena žádná z vlastních vlastností jazykové verze.For example, if en-US is a replacement culture on computer A, but not on computer B, and if a CultureInfo object referring to this culture is serialized on computer A and de-serialized on computer B, then none of the custom characteristics of the culture are transmitted. Deserializace jazykové verze proběhla úspěšně, ale s jiným významem.The culture deserializes successfully, but with a different meaning.

Přepisy ovládacích panelůControl Panel overrides

Uživatel se může rozhodnout přepsat některé hodnoty přidružené k aktuální jazykové verzi Windows prostřednictvím části místní a jazykové nastavení v Ovládacích panelech.The user might choose to override some of the values associated with the current culture of Windows through the regional and language options portion of Control Panel. Uživatel se například může rozhodnout zobrazit datum v jiném formátu nebo použít jinou než výchozí měnu pro jazykovou verzi.For example, the user might choose to display the date in a different format or to use a currency other than the default for the culture. Obecně platí, že by vaše aplikace měly dodržovat tato přepsání uživatelů.In general, your applications should honor these user overrides.

Pokud je UseUserOverride true a zadaná jazyková verze odpovídá aktuální jazykové verzi systému Windows, CultureInfo používá tato přepsání, včetně uživatelských nastavení pro vlastnosti instance DateTimeFormatInfo vrácené vlastností DateTimeFormat a vlastnosti instance NumberFormatInfo vrácené vlastností NumberFormat.If UseUserOverride is true and the specified culture matches the current culture of Windows, the CultureInfo uses those overrides, including user settings for the properties of the DateTimeFormatInfo instance returned by the DateTimeFormat property, and the properties of the NumberFormatInfo instance returned by the NumberFormat property. Pokud je nastavení uživatele nekompatibilní s jazykovou verzí přidruženou k CultureInfo, například pokud vybraný kalendář není jedním z OptionalCalendars, výsledky metod a hodnoty vlastností nejsou definovány.If the user settings are incompatible with the culture associated with the CultureInfo, for example, if the selected calendar is not one of the OptionalCalendars, the results of the methods and the values of the properties are undefined.

Alternativní pořadí řazeníAlternate sort orders

Některé kultury podporují více než jedno pořadí řazení.Some cultures support more than one sort order. Příklad:For example:

  • Jazyková verze španělština (Španělsko) má dvě objednávky řazení: výchozí mezinárodní pořadí řazení a tradiční pořadí řazení.The Spanish (Spain) culture has two sort orders: the default international sort order, and the traditional sort order. Při vytváření instance objektu CultureInfo s názvem jazykové verze ES-ES se používá mezinárodní pořadí řazení.When you instantiate a CultureInfo object with the es-ES culture name, the international sort order is used. Při vytváření instance objektu CultureInfo s názvem jazykové verze ES-ES-tradnl se použije tradiční pořadí řazení.When you instantiate a CultureInfo object with the es-ES-tradnl culture name, the traditional sort order is used.

  • Jazyková verze zh-CN (čínština (zjednodušená, ČLR)) podporuje dvě objednávky řazení: podle výslovnosti (výchozí) a podle počtu tahů.The zh-CN (Chinese (Simplified, PRC)) culture supports two sort orders: by pronunciation (the default) and by stroke count. Při vytváření instance objektu CultureInfo s názvem jazykové verze zh-CN je použito výchozí pořadí řazení.When you instantiate a CultureInfo object with the zh-CN culture name, the default sort order is used. Při vytváření instance objektu CultureInfo s místním identifikátorem 0x00020804 řetězce jsou řazeny podle počtu tahů.When you instantiate a CultureInfo object with a local identifier of 0x00020804, strings are sorted by stroke count.

V následující tabulce jsou uvedeny jazykové verze, které podporují alternativní pořadí řazení, a identifikátory pro výchozí a alternativní pořadí řazení.The following table lists the cultures that support alternate sort orders and the identifiers for the default and alternate sort orders.

Kulturní názevCulture name Jazyková verzeCulture Výchozí název a identifikátor řazeníDefault sort name and identifier Alternativní název a identifikátor řazeníAlternate sort name and identifier
es-ESes-ES Španělština (Španělsko)Spanish (Spain) Mezinárodní: 0x00000C0AInternational: 0x00000C0A Tradiční: 0x0000040ATraditional: 0x0000040A
zh-TWzh-TW Čínština (Tchaj-wan)Chinese (Taiwan) Počet tahů: 0x00000404Stroke Count: 0x00000404 Bopomofo: 0x00030404Bopomofo: 0x00030404
zh-CNzh-CN Čínština (ČLR)Chinese (PRC) Výslovnost: 0x00000804Pronunciation: 0x00000804 Počet tahů: 0x00020804Stroke Count: 0x00020804
zh-HKzh-HK Hongkong (zvláštní správní oblast ČLR)Chinese (Hong Kong SAR) Počet tahů: 0x00000c04Stroke Count: 0x00000c04 Počet tahů: 0x00020c04Stroke Count: 0x00020c04
zh-SGzh-SG Čínština (Singapur)Chinese (Singapore) Výslovnost: 0x00001004Pronunciation: 0x00001004 Počet tahů: 0x00021004Stroke Count: 0x00021004
zh-MOzh-MO Čínština (Macao – zvláštní administrativní oblast)Chinese (Macao SAR) Výslovnost: 0x00001404Pronunciation: 0x00001404 Počet tahů: 0x00021404Stroke Count: 0x00021404
ja-JPja-JP Japonština (Japonsko)Japanese (Japan) Výchozí: 0x00000411Default: 0x00000411 Unicode: 0x00010411Unicode: 0x00010411
ko-KRko-KR Korejština (Jižní Korea)Korean (Korea) Výchozí: 0x00000412Default: 0x00000412 Korejština Xwansung – Unicode: 0x00010412Korean Xwansung - Unicode: 0x00010412
de-DEde-DE Němčina (Německo)German (Germany) Slovník: 0x00000407Dictionary: 0x00000407 Řazení v telefonním seznamu DIN: 0x00010407Phone Book Sort DIN: 0x00010407
hu-HUhu-HU Maďarština (Maďarsko)Hungarian (Hungary) Výchozí: 0x0000040eDefault: 0x0000040e Technické řazení: 0x0001040eTechnical Sort: 0x0001040e
ka – GEka-GE Gruzínština (Gruzie)Georgian (Georgia) Tradiční: 0x00000437Traditional: 0x00000437 Moderní řazení: 0x00010437Modern Sort: 0x00010437

Aktuální jazyková verze a aplikace UWPThe current culture and UWP apps

V aplikacích Univerzální platforma Windows (UWP) jsou vlastnosti CurrentCulture a CurrentUICulture pro čtení i zápis, stejně jako v aplikacích .NET Framework a .NET Core.In Universal Windows Platform (UWP) apps, the CurrentCulture and CurrentUICulture properties are read-write, just as they are in .NET Framework and .NET Core apps. Aplikace pro UWP ale rozpoznávají jedinou jazykovou verzi.However, UWP apps recognize a single culture. Vlastnosti CurrentCulture a CurrentUICulture mapují na první hodnotu v kolekci Windows. ApplicationModel. Resources. Core. ResourceManager. DefaultContext. Languages .The CurrentCulture and CurrentUICulture properties map to the first value in the Windows.ApplicationModel.Resources.Core.ResourceManager.DefaultContext.Languages collection.

V aplikacích .NET Framework a .NET Core je aktuální jazyková verze nastavená na vlákno a vlastnosti CurrentCulture a CurrentUICulture odrážejí jazykovou verzi a jazykovou verzi uživatelského rozhraní pouze pro aktuální vlákno.In .NET Framework and .NET Core apps, the current culture is a per-thread setting, and the CurrentCulture and CurrentUICulture properties reflect the culture and UI culture of the current thread only. V aplikacích pro UWP je aktuální jazyková verze mapována do kolekce Windows. ApplicationModel. Resources. Core. ResourceManager. DefaultContext. Languages , což je globální nastavení.In UWP apps, the current culture maps to the Windows.ApplicationModel.Resources.Core.ResourceManager.DefaultContext.Languages collection, which is a global setting. Nastavení vlastnosti CurrentCulture nebo CurrentUICulture změní jazykovou verzi celé aplikace; u jednotlivých vláken nelze nastavit jazykovou verzi.Setting the CurrentCulture or CurrentUICulture property changes the culture of the entire app; culture cannot be set on a per-thread basis.

Konstruktory

CultureInfo(Int32)

Inicializuje novou instanci třídy CultureInfo založenou na jazykové verzi určené identifikátorem jazykové verze.Initializes a new instance of the CultureInfo class based on the culture specified by the culture identifier.

CultureInfo(Int32, Boolean)

Inicializuje novou instanci třídy CultureInfo založenou na jazykové verzi určené identifikátorem jazykové verze a na logickém serveru, který určuje, zda se má v systému použít nastavení jazykové verze vybrané uživatelem.Initializes a new instance of the CultureInfo class based on the culture specified by the culture identifier and on the Boolean that specifies whether to use the user-selected culture settings from the system.

CultureInfo(String)

Inicializuje novou instanci třídy CultureInfo založenou na jazykové verzi určené názvem.Initializes a new instance of the CultureInfo class based on the culture specified by name.

CultureInfo(String, Boolean)

Inicializuje novou instanci třídy CultureInfo založenou na jazykové verzi určené názvem a na logickém počítači, která určuje, zda se má v systému použít nastavení jazykové verze vybrané uživatelem.Initializes a new instance of the CultureInfo class based on the culture specified by name and on the Boolean that specifies whether to use the user-selected culture settings from the system.

Vlastnosti

Calendar

Získá výchozí kalendář používaný jazykovou verzí.Gets the default calendar used by the culture.

CompareInfo

Získá CompareInfo, který definuje, jak porovnat řetězce pro jazykovou verzi.Gets the CompareInfo that defines how to compare strings for the culture.

CultureTypes

Získá typy jazykové verze, které se vztahují k aktuálnímu objektu CultureInfo.Gets the culture types that pertain to the current CultureInfo object.

CurrentCulture

Získá nebo nastaví objekt CultureInfo, který představuje jazykovou verzi používanou aktuálním vláknem.Gets or sets the CultureInfo object that represents the culture used by the current thread.

CurrentUICulture

Získá nebo nastaví objekt CultureInfo, který představuje aktuální jazykovou verzi uživatelského rozhraní, kterou Správce prostředků používá k vyhledání prostředků specifických pro jazykovou verzi za běhu.Gets or sets the CultureInfo object that represents the current user interface culture used by the Resource Manager to look up culture-specific resources at run time.

DateTimeFormat

Získá nebo nastaví DateTimeFormatInfo, který definuje kulturní náležitě odpovídající formát zobrazení dat a časů.Gets or sets a DateTimeFormatInfo that defines the culturally appropriate format of displaying dates and times.

DefaultThreadCurrentCulture

Získá nebo nastaví výchozí jazykovou verzi pro vlákna v aktuální doméně aplikace.Gets or sets the default culture for threads in the current application domain.

DefaultThreadCurrentUICulture

Získá nebo nastaví výchozí jazykovou verzi uživatelského rozhraní pro vlákna v aktuální doméně aplikace.Gets or sets the default UI culture for threads in the current application domain.

DisplayName

Získá úplný název lokalizované jazykové verze.Gets the full localized culture name.

EnglishName

Získá název jazykové verze ve formátu languagefull [Country/Regionfull] v angličtině.Gets the culture name in the format languagefull [country/regionfull] in English.

IetfLanguageTag

ZastaraléDeprecated. Získá standardní identifikaci RFC 4646 pro jazyk.Gets the RFC 4646 standard identification for a language.

InstalledUICulture

Získá CultureInfo, který představuje jazykovou verzi nainstalovanou s operačním systémem.Gets the CultureInfo that represents the culture installed with the operating system.

InvariantCulture

Získá objekt CultureInfo, který je nezávislý na jazykové verzi (invariantní).Gets the CultureInfo object that is culture-independent (invariant).

IsNeutralCulture

Načte hodnotu, která označuje, zda aktuální CultureInfo představuje neutrální jazykovou verzi.Gets a value indicating whether the current CultureInfo represents a neutral culture.

IsReadOnly

Načte hodnotu, která označuje, zda je aktuální CultureInfo jen pro čtení.Gets a value indicating whether the current CultureInfo is read-only.

KeyboardLayoutId

Získá aktivní identifikátor národního prostředí vstupu.Gets the active input locale identifier.

LCID

Získá identifikátor jazykové verze pro aktuální CultureInfo.Gets the culture identifier for the current CultureInfo.

Name

Získá název jazykové verze ve formátu languagecode2-země/regioncode2.Gets the culture name in the format languagecode2-country/regioncode2.

NativeName

Získá název jazykové verze, který se skládá z jazyka, země nebo oblasti a volitelného skriptu, který je nastaven na hodnotu zobrazit.Gets the culture name, consisting of the language, the country/region, and the optional script, that the culture is set to display.

NumberFormat

Získá nebo nastaví NumberFormatInfo, který definuje kulturní náležitě odpovídající formát zobrazení čísel, měny a procenta.Gets or sets a NumberFormatInfo that defines the culturally appropriate format of displaying numbers, currency, and percentage.

OptionalCalendars

Získá seznam kalendářů, které mohou být použity v jazykové verzi.Gets the list of calendars that can be used by the culture.

Parent

Získá CultureInfo, který představuje nadřazenou jazykovou verzi aktuální CultureInfo.Gets the CultureInfo that represents the parent culture of the current CultureInfo.

TextInfo

Získá TextInfo definující systém zápisu přidružený k jazykové verzi.Gets the TextInfo that defines the writing system associated with the culture.

ThreeLetterISOLanguageName

Získá třímístný kód ISO 639-2 pro jazyk aktuálního CultureInfo.Gets the ISO 639-2 three-letter code for the language of the current CultureInfo.

ThreeLetterWindowsLanguageName

Získá kód tří písmen pro jazyk definovaný v rozhraní API systému Windows.Gets the three-letter code for the language as defined in the Windows API.

TwoLetterISOLanguageName

Získá kód dvou písmen ISO 639-1 pro jazyk aktuálního CultureInfo.Gets the ISO 639-1 two-letter code for the language of the current CultureInfo.

UseUserOverride

Načte hodnotu, která označuje, zda aktuální objekt CultureInfo používá uživatelem vybraná nastavení jazykové verze.Gets a value indicating whether the current CultureInfo object uses the user-selected culture settings.

Metody

ClearCachedData()

Aktualizuje informace související s jazykovou verzí uloženou v mezipaměti.Refreshes cached culture-related information.

Clone()

Vytvoří kopii aktuálního CultureInfo.Creates a copy of the current CultureInfo.

CreateSpecificCulture(String)

Vytvoří CultureInfo reprezentující konkrétní jazykovou verzi, která je přidružená k zadanému názvu.Creates a CultureInfo that represents the specific culture that is associated with the specified name.

Equals(Object)

Určuje, zda je zadaný objekt stejnou jazykovou verzi jako aktuální CultureInfo.Determines whether the specified object is the same culture as the current CultureInfo.

GetConsoleFallbackUICulture()

Získá alternativní jazykovou verzi uživatelského rozhraní vhodnou pro konzolové aplikace, pokud výchozí jazyková verze grafického uživatelského rozhraní není vhodná.Gets an alternate user interface culture suitable for console applications when the default graphic user interface culture is unsuitable.

GetCultureInfo(Int32)

Načte do mezipaměti instanci, která je jen pro čtení, pomocí zadaného identifikátoru jazykové verze.Retrieves a cached, read-only instance of a culture by using the specified culture identifier.

GetCultureInfo(String)

Načte do mezipaměti instanci, která je jen pro čtení, pomocí zadaného názvu jazykové verze.Retrieves a cached, read-only instance of a culture using the specified culture name.

GetCultureInfo(String, String)

Načte neuloženou instanci jazykové verze, která je jen pro čtení.Retrieves a cached, read-only instance of a culture. Parametry určují jazykovou verzi, která je inicializována pomocí TextInfo a CompareInfo objektů určených jinou jazykovou verzí.Parameters specify a culture that is initialized with the TextInfo and CompareInfo objects specified by another culture.

GetCultureInfoByIetfLanguageTag(String)

ZastaraléDeprecated. Načte objekt CultureInfo jen pro čtení s jazykovými charakteristikami, které jsou určeny specifikovanou značkou jazyka RFC 4646.Retrieves a read-only CultureInfo object having linguistic characteristics that are identified by the specified RFC 4646 language tag.

GetCultures(CultureTypes)

Načte seznam podporovaných kultur filtrovaných zadaným parametrem CultureTypes.Gets the list of supported cultures filtered by the specified CultureTypes parameter.

GetFormat(Type)

Získává objekt, který definuje způsob formátování zadaného typu.Gets an object that defines how to format the specified type.

GetHashCode()

Slouží jako funkce hash pro aktuální CultureInfo, která je vhodná pro algoritmy hash a datové struktury, jako je zatřiďovací tabulka.Serves as a hash function for the current CultureInfo, suitable for hashing algorithms and data structures, such as a hash table.

GetType()

Získá Type aktuální instance.Gets the Type of the current instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří kopii aktuálního Objectbez podstruktury.Creates a shallow copy of the current Object.

(Zděděno od Object)
ReadOnly(CultureInfo)

Vrátí obálku určenou jen pro čtení kolem zadaného objektu CultureInfo.Returns a read-only wrapper around the specified CultureInfo object.

ToString()

Vrátí řetězec obsahující název aktuální CultureInfo ve formátu languagecode2-země/regioncode2.Returns a string containing the name of the current CultureInfo in the format languagecode2-country/regioncode2.

Platí pro

Viz také