CultureAndRegionInfoBuilder Class

Definition

Définit une culture personnalisée qui est nouvelle ou basée sur une autre culture et sur un autre pays/région.Defines a custom culture that is new or based on another culture and country/region. La culture personnalisée peut être installée sur un ordinateur et être utilisée ultérieurement par n'importe quelle application qui s'exécute sur cet ordinateur.The custom culture can be installed on a computer and subsequently used by any application that is running on that computer. Cette classe ne peut pas être héritée.This class cannot be inherited.

public ref class CultureAndRegionInfoBuilder sealed
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class CultureAndRegionInfoBuilder
type CultureAndRegionInfoBuilder = class
Public NotInheritable Class CultureAndRegionInfoBuilder
Inheritance
CultureAndRegionInfoBuilder
Attributes

Examples

L’exemple suivant définit une culture ru-US personnalisée qui représente la langue russe dans le États-Unis.The following example defines a custom ru-US culture that represents the Russian language in the United States. L’exemple définit la culture personnalisée en chargeant les paramètres à partir de l’objet russe (Russie) CultureInfo et l’objet RegionInfo des États-Unis, puis définit un certain nombre de propriétés de CultureAndRegionInfoBuilder.The example defines the custom culture by loading settings from the Russian (Russia) CultureInfo object and the U.S. RegionInfo object, and then sets a number of CultureAndRegionInfoBuilder properties. L’exemple inscrit la culture personnalisée, puis l’instancie et en fait la culture de thread actuelle.The example registers the custom culture, and then instantiates it and makes it the current thread culture.

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

public class Example
{
   public static void Main()
   {
      // Create a custom culture for ru-US.
      CultureAndRegionInfoBuilder car1 = new CultureAndRegionInfoBuilder("ru-US",
                                             CultureAndRegionModifiers.None);
      car1.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("ru-RU"));
      car1.LoadDataFromRegionInfo(new RegionInfo("en-US"));

      car1.CultureEnglishName = "Russian (United States)";
      car1.CultureNativeName = "русский (США)";
      car1.CurrencyNativeName = "Доллар (США)";
      car1.RegionNativeName = "США";

      // Register the culture.
      try {
         car1.Register();
      }
      catch (InvalidOperationException) {
         // Swallow the exception: the culture already is registered.
      }

      // Use the custom culture.
      CultureInfo ci = CultureInfo.CreateSpecificCulture("ru-US");
      Thread.CurrentThread.CurrentCulture = ci;
      Console.WriteLine("Current Culture: {0}",
                        Thread.CurrentThread.CurrentCulture.Name);
      Console.WriteLine("Writing System: {0}",
                        Thread.CurrentThread.CurrentCulture.TextInfo);
   }
}
// The example displays the following output:
//     Current Culture: ru-US
//     Writing System: TextInfo - ru-US
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      ' Create a custom culture for ru-US.
      Dim car1 As New CultureAndRegionInfoBuilder("ru-US", CultureAndRegionModifiers.None)
      car1.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("ru-RU"))
      car1.LoadDataFromRegionInfo(New RegionInfo("en-US"))
      
      car1.CultureEnglishName = "Russian (United States)"
      car1.CultureNativeName = "русский (США)"
      car1.CurrencyNativeName = "Доллар (США)"
      car1.RegionNativeName = "США"

      ' Register the culture.
      Try
         car1.Register()
      Catch e As InvalidOperationException
         ' Swallow the exception: the culture already is registered.
      End Try
      
      ' Use the custom culture.
      Dim ci As CultureInfo = CultureInfo.CreateSpecificCulture("ru-US")
      Thread.CurrentThread.CurrentCulture = ci
      Console.WriteLine("Current Culture: {0}", 
                        Thread.CurrentThread.CurrentCulture.Name)
      Console.WriteLine("Writing System: {0}", 
                        Thread.CurrentThread.CurrentCulture.TextInfo)
   End Sub
End Module
' The example displays the following output:
'     Current Culture: ru-US
'     Writing System: TextInfo - ru-US

Remarks

La classe CultureInfo contient des informations propres à la culture, telles que la langue, la sous-langue, le pays ou la région, le calendrier et les conventions culturelles associés.The CultureInfo class holds culture-specific information, such as the associated language, sublanguage, country/region, calendar, and cultural conventions. Cette classe fournit également des instances spécifiques à la culture des classes DateTimeFormatInfo, NumberFormatInfo, CompareInfoet TextInfo, qui sont requises pour les opérations spécifiques à la culture, telles que la casse, la mise en forme et l’analyse des dates et des nombres, ainsi que la comparaison des chaînes.This class also provides culture-specific instances of the DateTimeFormatInfo, NumberFormatInfo, CompareInfo, and TextInfo classes, which are required for culture-specific operations such as casing, formatting and parsing dates and numbers, and comparing strings.

Par défaut, le .NET Framework prend en charge les objets CultureInfo qui représentent un ensemble prédéfini de cultures.By default, the .NET Framework supports CultureInfo objects that represent a predefined set of cultures. Pour obtenir la liste de ces cultures disponibles sur les systèmes Windows, consultez la colonne balise de langue dans la liste des noms de langue/région pris en charge par Windows.For a list of these cultures available on Windows systems, see the Language tag column in the list of language/region names supported by Windows. Les noms de culture respectent la norme définie par BCP 47.Culture names follow the standard defined by BCP 47. La classe CultureAndRegionInfoBuilder vous permet de créer une culture personnalisée qui est complètement nouvelle ou qui substitue une culture prédéfinie.The CultureAndRegionInfoBuilder class enables you to create a custom culture that is completely new or that overrides a predefined culture. Lorsqu’une culture personnalisée est installée et inscrite sur un ordinateur particulier, elle devient indifférenciable des objets CultureInfo prédéfinis, et peut être instanciée et utilisée comme ces objets.When a custom culture is installed and registered on a particular computer, it becomes indistinguishable from predefined CultureInfo objects, and can be instantiated and used just like those objects.

Important

Notez que la classe CultureAndRegionInfoBuilder se trouve dans un assembly nommé sysglobl. dll.Note that the CultureAndRegionInfoBuilder class is found in an assembly named sysglobl.dll. Pour compiler correctement le code qui utilise ce type, vous devez ajouter une référence à sysglobl. dll.Successfully compiling code that uses this type requires that you add a reference to sysglobl.dll.

Une culture personnalisée ne peut être inscrite sur un ordinateur que par un utilisateur disposant de droits d’administration sur cet ordinateur.A custom culture can be registered on a computer only by a user who has administrative rights on that computer. Par conséquent, les applications ne créent pas et installent généralement des cultures personnalisées.Consequently, apps typically do not create and install custom cultures. Au lieu de cela, vous pouvez utiliser la classe CultureAndRegionInfoBuilder pour créer un outil à usage spécial qu’un administrateur peut utiliser pour créer, installer et inscrire une culture personnalisée.Instead, you can use the CultureAndRegionInfoBuilder class to create a special-purpose tool that an administrator can use to create, install, and register a custom culture. Une fois la culture personnalisée inscrite sur un ordinateur, vous pouvez utiliser la classe CultureInfo de votre application pour créer des instances de la culture personnalisée comme vous le feriez pour une culture prédéfinie.After the custom culture is registered on a computer, you can use the CultureInfo class in your app to create instances of the custom culture just as you would for a predefined culture.

Si vous analysez des chaînes de date et d’heure générées pour une culture personnalisée, vous devez utiliser la méthode DateTime.ParseExact ou DateTime.TryParseExact à la place de la méthode DateTime.Parse ou DateTime.TryParse pour améliorer la probabilité que l’opération d’analyse aboutisse.If you parse date and time strings generated for a custom culture, you should use the DateTime.ParseExact or DateTime.TryParseExact method instead of the DateTime.Parse or DateTime.TryParse method to improve the probability that the parse operation will succeed. Une chaîne de date et d’heure pour une culture personnalisée peut être compliquée et donc difficile à analyser.A date and time string for a custom culture can be complicated and therefore difficult to parse. Les méthodes Parse et TryParse essaient d’analyser une chaîne avec plusieurs modèles d’analyse implicite, qui peuvent tous échouer.The Parse and TryParse methods try to parse a string with several implicit parse patterns, all of which might fail. La méthode TryParseExact, en revanche, requiert que l’application désigne explicitement un ou plusieurs modèles d’analyse exacts susceptibles d’être correctement exécutés.The TryParseExact method, in contrast, requires the application to explicitly designate one or more exact parse patterns that are likely to succeed.

Définition et création d’une culture personnaliséeDefining and Creating a Custom Culture

Vous utilisez la classe CultureAndRegionInfoBuilder pour définir et nommer une culture personnalisée.You use the CultureAndRegionInfoBuilder class to define and name a custom culture. La culture personnalisée peut être une culture entièrement nouvelle, une nouvelle culture basée sur une culture existante (autrement dit, une culture supplémentaire) ou une culture qui remplace une culture .NET Framework existante.The custom culture can be an entirely new culture, a new culture that is based on an existing culture (that is, a supplemental culture), or a culture that replaces an existing .NET Framework culture. Dans chaque cas, les étapes de base sont les mêmes :In each case, the basic steps are the same:

  1. Instanciez un objet CultureAndRegionInfoBuilder en appelant son constructeur CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers).Instantiate a CultureAndRegionInfoBuilder object by calling its CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) constructor. Pour remplacer une culture existante, transmettez le nom de la culture et la valeur d’énumération CultureAndRegionModifiers.Replacement au constructeur.To replace an existing culture, pass that culture's name and the CultureAndRegionModifiers.Replacement enumeration value to the constructor. Pour créer une culture ou une culture supplémentaire, transmettez un nom de culture unique et la valeur d’énumération CultureAndRegionModifiers.Neutral ou CultureAndRegionModifiers.None.To create a new culture or a supplemental culture, pass a unique culture name and either the CultureAndRegionModifiers.Neutral or CultureAndRegionModifiers.None enumeration value.

    Note

    Si vous utilisez la valeur d’énumération CultureAndRegionModifiers.Replacement pour instancier un objet CultureAndRegionInfoBuilder, les propriétés de l’objet CultureAndRegionInfoBuilder sont automatiquement remplies avec les valeurs de l’objet CultureInfo à remplacer.If you use the CultureAndRegionModifiers.Replacement enumeration value to instantiate a CultureAndRegionInfoBuilder object, the CultureAndRegionInfoBuilder object's properties are automatically populated with values from the CultureInfo object to be replaced.

  2. Si vous créez une culture nouvelle ou supplémentaire :If you are creating a new or supplemental culture:

  3. Modifiez les propriétés de l’objet CultureAndRegionInfoBuilder si nécessaire.Modify the properties of the CultureAndRegionInfoBuilder object as necessary.

  4. Si vous envisagez d’inscrire la culture personnalisée dans une routine distincte, appelez la méthode Save.If you are planning to register the custom culture in a separate routine, call the Save method. Cela génère un fichier XML que vous pouvez charger et inscrire dans une routine d’installation de culture personnalisée distincte.This generates an XML file that you can load and register in a separate custom culture installation routine.

Inscription d’une culture personnaliséeRegistering a Custom Culture

Si vous développez une application d’inscription pour une culture personnalisée qui est distincte de l’application qui crée la culture, vous appelez la méthode CreateFromLdml pour charger le fichier XML qui contient la définition de la culture personnalisée et instancier l’objet CultureAndRegionInfoBuilder.If you are developing a registration application for a custom culture that is separate from the application that creates the culture, you call the CreateFromLdml method to load the XML file that contains the custom culture's definition and instantiate the CultureAndRegionInfoBuilder object. Pour gérer l’inscription, appelez la méthode Register.To handle the registration, call the Register method. Pour que l’inscription aboutisse, l’application qui inscrit la culture personnalisée doit s’exécuter avec des privilèges d’administrateur sur le système cible. dans le cas contraire, l’appel à Register lève une exception UnauthorizedAccessException.For the registration to succeed, the application that registers the custom culture must be running with administrative privileges on the target system; otherwise, the call to Register throws an UnauthorizedAccessException exception.

Warning

Les données de culture peuvent varier entre les systèmes.Culture data can differ between systems. Si vous utilisez la classe CultureAndRegionInfoBuilder pour créer une culture personnalisée qui est uniforme sur plusieurs systèmes et que vous créez votre culture personnalisée en chargeant des données à partir d’objets CultureInfo et RegionInfo existants et en les personnalisant, vous devez développer deux utilitaires différents.If you are using the CultureAndRegionInfoBuilder class to create a custom culture that is uniform across multiple systems and you are creating your custom culture by loading data from existing CultureInfo and RegionInfo objects and customizing it, you should develop two different utilities. La première crée la culture personnalisée et l’enregistre dans un fichier XML.The first creates the custom culture and saves it to an XML file. La seconde utilise la méthode CreateFromLdml pour charger la culture personnalisée à partir d’un fichier XML et l’inscrire sur l’ordinateur cible.The second uses the CreateFromLdml method to load the custom culture from an XML file and register it on the target computer.

Le processus d’inscription effectue les tâches suivantes :The registration process performs the following tasks:

  • Crée un fichier. NLP qui contient les informations définies dans l’objet CultureAndRegionInfoBuilder.Creates an .nlp file that contains the information that is defined in the CultureAndRegionInfoBuilder object.

  • Stocke le fichier. NLP dans le répertoire système%windir%\Globalization sur l’ordinateur cible.Stores the .nlp file in the %windir%\Globalization system directory on the target computer. Cela permet aux paramètres de la culture personnalisée de persister entre les sessions.This enables the custom culture's settings to persist between sessions. (La méthode CultureAndRegionInfoBuilder requiert des privilèges d’administrateur, car le fichier. NLP est stocké dans un répertoire système.)(The CultureAndRegionInfoBuilder method requires administrative privileges because the .nlp file is stored in a system directory.)

  • Prépare le .NET Framework à rechercher le répertoire système%windir%\Globalization au lieu d’un cache interne lors de la prochaine demande de création de votre culture personnalisée.Prepares the .NET Framework to search the %windir%\Globalization system directory instead of an internal cache the next time there is a request to create your new custom culture.

Lorsqu’une culture personnalisée est correctement inscrite, elle ne peut pas être différenciée des cultures prédéfinies par l' .NET Framework.When a custom culture is successfully registered, it is indistinguishable from the cultures that are predefined by the .NET Framework. La culture personnalisée est disponible jusqu’à ce qu’un appel à la méthode CultureAndRegionInfoBuilder supprime le fichier. NLP de l’ordinateur local.The custom culture is available until a call to the CultureAndRegionInfoBuilder method removes the .nlp file from the local computer.

Instanciation d’une culture personnaliséeInstantiating a Custom Culture

Vous pouvez créer une instance de la culture personnalisée de l’une des manières suivantes :You can create an instance of the custom culture in one of the following ways:

En outre, le tableau d’objets CultureInfo retournés par la méthode CultureInfo.GetCultures comprend la culture personnalisée.In addition, the array of CultureInfo objects that is returned by the CultureInfo.GetCultures method includes the custom culture.

Constructors

CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers)

Initialise une nouvelle instance de la classe CultureAndRegionInfoBuilder.Initializes a new instance of the CultureAndRegionInfoBuilder class.

Properties

AvailableCalendars

Obtient ou définit un tableau de calendriers pris en charge par cet objet CultureAndRegionInfoBuilder.Gets or sets an array of calendars that are supported by this CultureAndRegionInfoBuilder object.

CompareInfo

Obtient ou définit l'objet CompareInfo qui définit le mode de comparaison des chaînes de la culture.Gets or sets the CompareInfo object that defines how to compare strings for the culture.

ConsoleFallbackUICulture

Obtient ou définit une autre culture de l'interface utilisateur qui convient aux applications console lorsque la culture de l'interface graphique utilisateur par défaut est inappropriée.Gets or sets an alternate user interface culture suitable for console applications when the default graphic user interface culture is inappropriate.

CultureEnglishName

Obtient ou définit le nom de culture en anglais.Gets or sets the culture name in English.

CultureName

Nom de la culture en cours de création.Gets the name of the culture being created.

CultureNativeName

Obtient ou définit le nom de culture au format et dans la langue pour lesquels la culture est configurée.Gets or sets the culture name in the format and language that the culture is set to display.

CultureTypes

Obtient la valeur CultureTypes qui décrit la culture représentée par l'objet CultureAndRegionInfoBuilder actuel.Gets the CultureTypes value that describes the culture represented by the current CultureAndRegionInfoBuilder object.

CurrencyEnglishName

Obtient ou définit le nom, en anglais, de la devise utilisée dans le pays ou la région représentés par l'objet CultureAndRegionInfoBuilder actuel.Gets or sets the name, in English, of the currency used in the country/region represented by the current CultureAndRegionInfoBuilder object.

CurrencyNativeName

Obtient ou définit le nom natif de la devise utilisée dans le pays ou la région représentés par l'objet CultureAndRegionInfoBuilder actuel.Gets or sets the native name of the currency used in the country/region represented by the current CultureAndRegionInfoBuilder object.

GeoId

Obtient ou définit un numéro d'identification unique pour une région géographique, un pays, une ville ou un emplacement.Gets or sets a unique identification number for a geographical region, country, city, or location.

GregorianDateTimeFormat

Obtient ou définit un objet DateTimeFormatInfo qui définit le format des dates et des heures selon le calendrier grégorien.Gets or sets a DateTimeFormatInfo object that defines the format of dates and times according to the Gregorian calendar.

IetfLanguageTag

Obtient ou définit un nom de culture mis en forme selon la norme RFC 4646, « Tags for the Identification of Languages ».Gets or sets a culture name formatted according to the RFC 4646 standard, "Tags for the Identification of Languages."

IsMetric

Obtient ou définit une valeur qui indique si le pays ou la région utilise le système métrique pour les mesures.Gets or sets a value indicating whether the country/region uses the metric system for measurements.

ISOCurrencySymbol

Obtient ou définit le symbole de devise à trois caractères défini dans la norme ISO 4217 pour le pays ou la région.Gets or sets the three-character ISO 4217 currency symbol associated with the country/region.

IsRightToLeft

Obtient ou définit le sens prédominant des lignes de texte dans le système d'écriture associé à l'objet CultureAndRegionInfoBuilder actuel.Gets or sets the predominant direction of lines of text in the writing system associated with the current CultureAndRegionInfoBuilder object.

KeyboardLayoutId

Obtient ou définit l'identificateur des paramètres régionaux d'entrée actifs.Gets or sets the active input locale identifier.

LCID

Obtient l'identificateur de culture de l'objet CultureAndRegionInfoBuilder actuel.Gets the culture identifier for the current CultureAndRegionInfoBuilder object.

NumberFormat

Obtient ou définit un objet NumberFormatInfo qui définit le format d'affichage des nombres, devises et pourcentages approprié pour la culture.Gets or sets a NumberFormatInfo object that defines the culturally appropriate format of displaying numbers, currency, and percentage.

Parent

Obtient ou définit l'objet CultureInfo qui représente la culture parente de la culture personnalisée actuelle.Gets or sets the CultureInfo object that represents the parent culture of the current custom culture.

RegionEnglishName

Obtient ou définit le nom complet du pays ou de la région en anglais.Gets or sets the full name of the country/region in English.

RegionName

Obtient le nom du pays ou de la région pour l'objet CultureAndRegionInfoBuilder actuel.Gets the name of the country/region for the current CultureAndRegionInfoBuilder object.

RegionNativeName

Obtient ou définit le nom complet du pays ou de la région tel qu'il est connu par les personnes de cette culture personnalisée.Gets or sets the full name of the country/region as known by the people of this custom culture.

TextInfo

Obtient ou définit l'objet TextInfo qui définit le système d'écriture associé à cette culture personnalisée.Gets or sets the TextInfo object that defines the writing system associated with this custom culture.

ThreeLetterISOLanguageName

Obtient ou définit le code ISO 639-2 de trois lettres correspondant à la langue de cette culture personnalisée.Gets or sets the ISO 639-2 three-letter code for the language of this custom culture.

ThreeLetterISORegionName

Obtient ou définit le code de trois lettres défini dans ISO 3166 pour le pays ou la région.Gets or sets the three-letter code defined in ISO 3166 for the country/region.

ThreeLetterWindowsLanguageName

Obtient ou définit le code de trois lettres correspondant à la langue, tel que défini dans l'API Windows.Gets or sets the three-letter code for the language as defined in the Windows API.

ThreeLetterWindowsRegionName

Obtient ou définit le code à trois lettres affecté par Windows au pays ou à la région représenté par la culture personnalisée actuelle.Gets or sets the three-letter code assigned by Windows to the country/region represented by the current custom culture.

TwoLetterISOLanguageName

Obtient ou définit le code à deux lettres ISO 639-1 pour la langue de l'objet CultureInfo actuel.Gets or sets the ISO 639-1 two-letter code for the language of the current CultureInfo object.

TwoLetterISORegionName

Obtient ou définit le code à deux lettres défini dans ISO 3166 pour le pays ou la région.Gets or sets the two-letter code defined in ISO 3166 for the country/region.

Methods

CreateFromLdml(String)

Reconstitue un objet CultureAndRegionInfoBuilder d'un fichier XML spécifié qui contient une représentation de l'objet.Reconstitutes a CultureAndRegionInfoBuilder object from a specified XML file that contains a representation of the object.

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Inherited from Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
LoadDataFromCultureInfo(CultureInfo)

Définit les propriétés de l'objet CultureAndRegionInfoBuilder actuel avec les propriétés correspondantes de l'objet CultureInfo spécifié.Sets the properties of the current CultureAndRegionInfoBuilder object with the corresponding properties of the specified CultureInfo object.

LoadDataFromRegionInfo(RegionInfo)

Définit les propriétés de l'objet CultureAndRegionInfoBuilder actuel avec les propriétés correspondantes de l'objet RegionInfo spécifié.Sets the properties of the current CultureAndRegionInfoBuilder object with the corresponding properties of the specified RegionInfo object.

MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
Register()

Fait persister l'objet CultureAndRegionInfoBuilder actuel comme une culture personnalisée sur l'ordinateur local et rend cette culture disponible aux applications.Persists the current CultureAndRegionInfoBuilder object as a custom culture on the local computer and makes that culture available to applications. Requiert des privilèges administratifs.Requires administrative privileges.

Save(String)

Écrit une représentation XML de l'objet CultureAndRegionInfoBuilder actuel dans le fichier spécifié.Writes an XML representation of the current CultureAndRegionInfoBuilder object to the specified file.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)
Unregister(String)

Supprime une culture personnalisée de l'ordinateur local.Deletes a custom culture from the local computer.

Applies to