CultureAndRegionInfoBuilder Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert eine benutzerdefinierte Kultur, die neu ist oder auf einer anderen Kultur und Region basiert. Die benutzerdefinierte Kultur kann auf einem Computer installiert und anschließend von jeder Anwendung verwendet werden, die auf diesem Computer ausgeführt wird. Diese Klasse kann nicht vererbt werden.
public ref class CultureAndRegionInfoBuilder sealed
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class CultureAndRegionInfoBuilder
[<System.Runtime.InteropServices.ComVisible(false)>]
type CultureAndRegionInfoBuilder = class
Public NotInheritable Class CultureAndRegionInfoBuilder
- Vererbung
-
CultureAndRegionInfoBuilder
- Attribute
Hinweise
Die CultureInfo Klasse enthält kulturspezifische Informationen, z. B. die zugehörige Sprache, die Untersprache, das Land/die Region, den Kalender und kulturelle Konventionen. Diese Klasse stellt auch kulturspezifische Instanzen der DateTimeFormatInfo-, NumberFormatInfo-, CompareInfo- und TextInfo-Klasse bereit, die für kulturspezifische Vorgänge wie z. B. die Groß- und Kleinschreibung, das Formatieren und das Parsen von Datumsangaben und Zahlen sowie das Vergleichen von Zeichenfolgen erforderlich sind.
Standardmäßig unterstützt CultureInfo .NET Framework Objekte, die einen vordefinierten Satz von Kulturen darstellen. Eine Liste dieser Kulturen, die auf Windows-Systemen verfügbar sind, finden Sie in der Spalte " Sprachtag " in der Liste der von Windows unterstützten Sprach-/Regionsnamen. Kulturnamen folgen dem von BCP 47 definierten Standard. Mit der CultureAndRegionInfoBuilder Klasse können Sie eine benutzerdefinierte Kultur erstellen, die völlig neu ist oder eine vordefinierte Kultur außer Kraft setzt. Wenn eine benutzerdefinierte Kultur auf einem bestimmten Computer installiert und registriert wird, wird sie von vordefinierten CultureInfo Objekten nicht mehr unterschieden und kann wie diese Objekte instanziiert und verwendet werden.
Important
Beachten Sie, dass die CultureAndRegionInfoBuilder Klasse in einer Assembly mit dem Namen sysglobl.dllgefunden wird. Zum erfolgreichen Kompilieren von Code, der diesen Typ verwendet, müssen Sie einen Verweis auf sysglobl.dllhinzufügen.
Eine benutzerdefinierte Kultur kann nur von einem Benutzer registriert werden, der über Administratorrechte auf diesem Computer verfügt. Daher erstellen und installieren Apps in der Regel keine benutzerdefinierten Kulturen. Stattdessen können Sie die CultureAndRegionInfoBuilder Klasse verwenden, um ein spezielles Tool zu erstellen, mit dem ein Administrator eine benutzerdefinierte Kultur erstellen, installieren und registrieren kann. Nachdem die benutzerdefinierte Kultur auf einem Computer registriert wurde, können Sie die CultureInfo Klasse in Ihrer App verwenden, um Instanzen der benutzerdefinierten Kultur wie für eine vordefinierte Kultur zu erstellen.
Wenn Sie Datums- und Uhrzeitzeichenfolgen parsen, die für eine benutzerdefinierte Kultur generiert wurden, sollten Sie die DateTime.ParseExact- oder DateTime.TryParseExact-Methode anstatt der DateTime.Parse- oder DateTime.TryParse-Methode verwenden, um die Wahrscheinlichkeit zu erhöhen, dass der Parse-Vorgang erfolgreich ist. Eine Datums- und Uhrzeitzeichenfolge für eine benutzerdefinierte Kultur kann kompliziert und daher schwer zu parsen sein. Die Parse- und TryParse-Methoden versuchen, eine Zeichenfolge mit mehreren impliziten Analysemustern zu parsen, die möglicherweise fehlschlagen könnten. Die TryParseExact Methode erfordert dagegen, dass die Anwendung explizit ein oder mehrere genaue Analysemuster angibt, die wahrscheinlich erfolgreich sind.
Definieren und Erstellen einer benutzerdefinierten Kultur
Sie verwenden die CultureAndRegionInfoBuilder Klasse, um eine benutzerdefinierte Kultur zu definieren und zu benennen. Die benutzerdefinierte Kultur kann eine völlig neue Kultur, eine neue Kultur sein, die auf einer vorhandenen Kultur (d. h. einer ergänzenden Kultur) basiert, oder eine Kultur, die eine vorhandene .NET Framework-Kultur ersetzt. In jedem Fall sind die grundlegenden Schritte identisch:
Instanziieren Sie ein CultureAndRegionInfoBuilder Objekt durch Aufrufen des CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) Konstruktors. Um eine vorhandene Kultur zu ersetzen, übergeben Sie den Namen dieser Kultur und den CultureAndRegionModifiers.Replacement Enumerationswert an den Konstruktor. Um eine neue oder eine ergänzende Kultur zu erstellen, übergeben Sie einen eindeutigen Kulturnamen und entweder den CultureAndRegionModifiers.Neutral- oder den CultureAndRegionModifiers.None-Enumerationswert.
Note
Wenn Sie den CultureAndRegionModifiers.Replacement Enumerationswert zum Instanziieren eines CultureAndRegionInfoBuilder Objekts verwenden, werden die Eigenschaften des CultureAndRegionInfoBuilder Objekts automatisch mit Werten aus dem CultureInfo zu ersetzenden Objekt aufgefüllt.
Wenn Sie eine neue oder ergänzende Kultur erstellen:
Füllen Sie die Eigenschaften des CultureAndRegionInfoBuilder Objekts auf, indem Sie die LoadDataFromCultureInfo Methode aufrufen und ein CultureInfo Objekt übergeben, dessen Eigenschaftswerte dem neuen Objekt ähneln.
Füllen Sie die regionalen Eigenschaften des CultureAndRegionInfoBuilder Objekts auf, indem Sie die LoadDataFromRegionInfo Methode aufrufen und ein RegionInfo Objekt übergeben, das den Bereich Ihrer benutzerdefinierten Kultur darstellt.
Ändern Sie die Eigenschaften des CultureAndRegionInfoBuilder Objekts nach Bedarf.
Wenn Sie planen, die benutzerdefinierte Kultur in einer separaten Routine zu registrieren, rufen Sie die Save Methode auf. Dadurch wird eine XML-Datei generiert, die Sie in einer separaten benutzerdefinierten Kulturinstallationsroutine laden und registrieren können.
Registrieren einer benutzerdefinierten Kultur
Wenn Sie eine Registrierungsanwendung für eine benutzerdefinierte Kultur entwickeln, die von der Anwendung getrennt ist, die die Kultur erstellt, rufen Sie die CreateFromLdml Methode auf, um die XML-Datei zu laden, die die Definition der benutzerdefinierten Kultur enthält, und instanziieren Sie das CultureAndRegionInfoBuilder Objekt. Rufen Sie die Register Methode auf, um die Registrierung zu verarbeiten. Damit die Registrierung erfolgreich ist, muss die Anwendung, die die benutzerdefinierte Kultur registriert, auf dem Zielsystem mit Administratorrechten ausgeführt werden. Andernfalls löst der Register-Aufruf die Ausnahme UnauthorizedAccessException aus.
Warning
Kulturdaten können sich zwischen Systemen unterscheiden. Wenn Sie die CultureAndRegionInfoBuilder Klasse verwenden, um eine benutzerdefinierte Kultur zu erstellen, die über mehrere Systeme hinweg einheitlich ist und Sie Ihre benutzerdefinierte Kultur erstellen, indem Sie Daten aus vorhandenen CultureInfo und Objekten laden und RegionInfo anpassen, sollten Sie zwei verschiedene Dienstprogramme entwickeln. Die erste erstellt die benutzerdefinierte Kultur und speichert sie in einer XML-Datei. Die zweite verwendet die CreateFromLdml Methode, um die benutzerdefinierte Kultur aus einer XML-Datei zu laden und auf dem Zielcomputer zu registrieren.
Der Registrierungsprozess führt die folgenden Aufgaben aus:
Erstellt eine NLP-Datei, die die im CultureAndRegionInfoBuilder Objekt definierten Informationen enthält.
Speichert die NLP-Datei im %windir%\Globalization-Systemverzeichnis auf dem Zielcomputer. Dadurch können die Einstellungen der benutzerdefinierten Kultur zwischen Sitzungen beibehalten werden. (Die CultureAndRegionInfoBuilder Methode erfordert Administratorrechte, da die NLP-Datei in einem Systemverzeichnis gespeichert ist.)
Bereitet .NET Framework vor, um das %windir%\Globalization-Systemverzeichnis anstelle eines internen Caches zu durchsuchen, wenn beim nächsten Mal eine Anforderung zum Erstellen ihrer neuen benutzerdefinierten Kultur vorhanden ist.
Wenn eine benutzerdefinierte Kultur erfolgreich registriert wird, ist sie nicht von den Kulturen zu unterscheiden, die vom .NET Framework vordefiniert werden. Die benutzerdefinierte Kultur ist verfügbar, bis ein Aufruf der CultureAndRegionInfoBuilder Methode die NLP-Datei vom lokalen Computer entfernt.
Instanziieren einer benutzerdefinierten Kultur
Sie können eine Instanz der benutzerdefinierten Kultur mit einer der folgenden Methoden erstellen:
- Durch Aufrufen des CultureInfo.CultureInfo-Konstruktors mit dem Kulturnamen.
- Durch Aufrufen der CultureInfo.CreateSpecificCulture-Methode mit dem Kulturnamen.
- Durch Aufrufen der CultureInfo.GetCultureInfo-Methode mit dem Kulturnamen.
Darüber hinaus enthält das Array von CultureInfo Objekten, die von der CultureInfo.GetCultures Methode zurückgegeben werden, die benutzerdefinierte Kultur.
Example
Im folgenden Beispiel wird eine benutzerdefinierte ru-US Kultur definiert, die die russische Sprache im USA darstellt. Im Beispiel wird die benutzerdefinierte Kultur definiert, indem Einstellungen aus dem Russischen (Russland) CultureInfo -Objekt und dem US-Objekt RegionInfo geladen und anschließend eine Reihe von CultureAndRegionInfoBuilder Eigenschaften festgelegt werden. Im Beispiel wird die benutzerdefinierte Kultur registriert und anschließend instanziiert und zur aktuellen Kultur.
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
Konstruktoren
| Name | Beschreibung |
|---|---|
| CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) |
Initialisiert eine neue Instanz der CultureAndRegionInfoBuilder-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| AvailableCalendars |
Dient zum Abrufen oder Festlegen eines Arrays von Kalendern, die von diesem CultureAndRegionInfoBuilder Objekt unterstützt werden. |
| CompareInfo |
Dient zum Abrufen oder Festlegen des CompareInfo Objekts, das definiert, wie Zeichenfolgen für die Kultur verglichen werden. |
| ConsoleFallbackUICulture |
Ruft eine alternative Benutzeroberflächenkultur ab, die für Konsolenanwendungen geeignet ist, wenn die Standardmäßige Benutzeroberflächenkultur ungeeignet ist, oder legt diese fest. |
| CultureEnglishName |
Dient zum Abrufen oder Festlegen des Kulturnamens in Englisch. |
| CultureName |
Ruft den Namen der zu erstellenden Kultur ab. |
| CultureNativeName |
Ruft den Kulturnamen im Format und in der Sprache ab, die für die Anzeige der Kultur festgelegt ist, oder legt diesen fest. |
| CultureTypes |
Ruft den CultureTypes Wert ab, der die Kultur beschreibt, die durch das aktuelle CultureAndRegionInfoBuilder Objekt dargestellt wird. |
| CurrencyEnglishName |
Dient zum Abrufen oder Festlegen des Namens in Englisch der Währung, die in dem Land/der Region verwendet wird, das durch das aktuelle CultureAndRegionInfoBuilder Objekt dargestellt wird. |
| CurrencyNativeName |
Dient zum Abrufen oder Festlegen des systemeigenen Namens der Währung, die in dem Land/der Region verwendet wird, das durch das aktuelle CultureAndRegionInfoBuilder Objekt dargestellt wird. |
| GeoId |
Dient zum Abrufen oder Festlegen einer eindeutigen Identifikationsnummer für eine geografische Region, ein Land, eine Stadt oder einen Standort. |
| GregorianDateTimeFormat |
Dient zum Abrufen oder Festlegen eines DateTimeFormatInfo Objekts, das das Format von Datums- und Uhrzeitangaben gemäß dem gregorianischen Kalender definiert. |
| IetfLanguageTag |
Dient zum Abrufen oder Festlegen eines Kulturnamens, der gemäß dem RFC 4646-Standard "Tags for the Identification of Languages" formatiert ist. |
| IsMetric |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das Land/die Region das Metriksystem für Messungen verwendet. |
| ISOCurrencySymbol |
Ruft das dreistellige ISO 4217-Währungssymbol ab, das dem Land/der Region zugeordnet ist, oder legt es fest. |
| IsRightToLeft |
Dient zum Abrufen oder Festlegen der vorherrschenden Richtung von Textzeilen im Schreibsystem, das dem aktuellen CultureAndRegionInfoBuilder Objekt zugeordnet ist. |
| KeyboardLayoutId |
Dient zum Abrufen oder Festlegen des aktiven Eingabegebietsschemabezeichners. |
| LCID |
Ruft den Kulturbezeichner für das aktuelle CultureAndRegionInfoBuilder Objekt ab. |
| NumberFormat |
Dient zum Abrufen oder Festlegen eines NumberFormatInfo Objekts, das das kulturell geeignete Format der Anzeige von Zahlen, Währungen und Prozentsätzen definiert. |
| Parent |
Dient zum Abrufen oder Festlegen des CultureInfo Objekts, das die übergeordnete Kultur der aktuellen benutzerdefinierten Kultur darstellt. |
| RegionEnglishName |
Dient zum Abrufen oder Festlegen des vollständigen Namens des Landes/der Region in Englisch. |
| RegionName |
Ruft den Namen des Landes/der Region für das aktuelle CultureAndRegionInfoBuilder Objekt ab. |
| RegionNativeName |
Ruft den vollständigen Namen des Landes/der Region ab, der von den Personen dieser benutzerdefinierten Kultur bekannt ist, oder legt diesen fest. |
| TextInfo |
Ruft ab oder legt das TextInfo Objekt fest, das das Schreibsystem definiert, das dieser benutzerdefinierten Kultur zugeordnet ist. |
| ThreeLetterISOLanguageName |
Dient zum Abrufen oder Festlegen des ISO 639-2-Drei-Buchstaben-Codes für die Sprache dieser benutzerdefinierten Kultur. |
| ThreeLetterISORegionName |
Ruft den drei buchstabenigen Code ab, der in ISO 3166 für das Land/die Region definiert ist, oder legt den code fest. |
| ThreeLetterWindowsLanguageName |
Ruft den drei buchstabenigen Code für die Sprache ab, die in der Windows-API definiert ist, oder legt den Code fest. |
| ThreeLetterWindowsRegionName |
Dient zum Abrufen oder Festlegen des von Windows zugewiesenen Drei-Buchstaben-Codes für das Land/die Region, das durch die aktuelle benutzerdefinierte Kultur dargestellt wird. |
| TwoLetterISOLanguageName |
Dient zum Abrufen oder Festlegen des ISO 639-1-Codes mit zwei Buchstaben für die Sprache des aktuellen CultureInfo Objekts. |
| TwoLetterISORegionName |
Dient zum Abrufen oder Festlegen des in ISO 3166 für das Land/die Region definierten zwei Buchstabencode. |
Methoden
| Name | Beschreibung |
|---|---|
| CreateFromLdml(String) |
Konfiguriert ein CultureAndRegionInfoBuilder Objekt aus einer angegebenen XML-Datei, die eine Darstellung des Objekts enthält. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| LoadDataFromCultureInfo(CultureInfo) |
Legt die Eigenschaften des aktuellen CultureAndRegionInfoBuilder Objekts mit den entsprechenden Eigenschaften des angegebenen CultureInfo Objekts fest. |
| LoadDataFromRegionInfo(RegionInfo) |
Legt die Eigenschaften des aktuellen CultureAndRegionInfoBuilder Objekts mit den entsprechenden Eigenschaften des angegebenen RegionInfo Objekts fest. |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| Register() |
Speichert das aktuelle CultureAndRegionInfoBuilder Objekt als benutzerdefinierte Kultur auf dem lokalen Computer und stellt diese Kultur Anwendungen zur Verfügung. Erfordert Administratorrechte. |
| Save(String) |
Schreibt eine XML-Darstellung des aktuellen CultureAndRegionInfoBuilder Objekts in die angegebene Datei. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| Unregister(String) |
Löscht eine benutzerdefinierte Kultur vom lokalen Computer. |