Neues bei Globalisierung und Lokalisierung
In diesem Thema werden die Änderungen an den Klassen und Auflistungen im System.Globalization-Namespace von .NET Framework, Version 4 beschrieben. Das Thema enthält folgende Abschnitte:
Neue neutrale Kulturen
Neue spezifische Kulturen
Aktualisierte Globalisierungseigenschaftswerte
Abrufen von aktuellen Globalisierungsinformationen
Zeichenfolgenbehandlung
Reduzierte Verwendung von Gebietsschemabezeichnern
Eigenschaften von neutralen Kulturen
Änderungen an benutzerdefinierten Kulturen
Funktionen, die sich nicht geändert haben
Neue neutrale Kulturen
.NET Framework 4 unterstützt mindestens 354 Kulturen im Vergleich zu mindestens 203 Kulturen in .NET Framework 3.5. Viele der neuen Kulturen sind neutrale Kulturen, die hinzugefügt wurden, um die übergeordnete Kette für die neutrale Stammkultur zu vervollständigen. Den bereits vorhandenen Kulturen Inuktitut (Silbenschrift, Kanada) und Inuktitut (Latein, Kanada) wurden drei neutrale Inuktitut-Elemente hinzugefügt (siehe folgende Tabelle):
Kulturanzeigename |
Kulturname |
LCID |
---|---|---|
Inuktitut |
Iu |
0x005d |
Inuktitut (Silbenschrift) |
iu-Cans |
0x785D |
Inuktitut (Silbenschrift, Kanada) |
iu-Cans-CA |
0x045D |
Inuktitut (Latein) |
iu-Latn |
0x7C5D |
Inuktitut (Lateinisch, Kanada) |
iu-Latn-CA |
0x085D |
Neue spezifische Kulturen
In .NET Framework 4 werden auch neue spezifische Kulturen vorgestellt, z. B. die neuen serbischen Kulturen. Die alten serbischen Kulturen wurden in Serbisch (Kyrillisch, Serbien und Montenegro (Früher)) und Serbisch (Latein, Serbien und Montenegro, (Früher)) umbenannt, um Anzeigenamenkonflikte zu vermeiden. Diese Kulturen bleiben in .NET Framework mit ihren vorhandenen Informationen bestehen, einschließlich ihrer Kulturnamen und Kulturbezeichner.
Kulturanzeigename |
Kulturname |
LCID |
---|---|---|
Serbisch – Serbien (Latein) |
sr-Latn-RS |
0x241A |
Serbisch – Serbien (Kyrillisch) |
sr-Cyrl-RS |
0x281A |
Serbisch – Montenegro (Latein) |
sr-Latn-ME |
0x2C1A |
Serbisch – Montenegro (Kyrillisch) |
sr-Cyrl-ME |
0x301A |
Die Anzeigenamen chinesischer Kulturen haben sich geändert und folgen der Namenskonvention Sprache ([Skript,] Land-/RegionName). In .NET Framework 4 wurden zh-CHS und zh-CHT-Anzeigenamen durch das Wort "Vorversion" ergänzt, um sie von zh-Hans und zh-Hant zu unterscheiden. Für zh, das vor kurzem in Windows eingeführt wurde, wird "Chinesisch" als Anzeigename verwendet.
Angezeigter Name |
Kulturname |
LCID |
---|---|---|
Chinesisch |
zh |
0x7804 |
Chinesisch (vereinfacht) Vorversion |
zh-CHS |
0x0004 |
Chinesisch (traditionell) Vorversion |
zh-CHT |
0x7C04 |
Chinesisch (vereinfacht) |
zh-Hans |
0x0004 |
Chinesisch (traditionell) |
zh-Hant |
0x7C04 |
Chinesisch (vereinfacht, PRC) |
zh-CN |
0x0804 |
Chinesisch (traditionell, Hongkong SAR) |
zh-HK |
0x0C04 |
Chinesisch (traditionell, Macao SAR) |
zh-MO |
0x1404 |
Chinesisch (vereinfacht, Singapur) |
zh-SG |
0x1004 |
Chinesisch (traditionell, Taiwan) |
zh-TW |
0x0404 |
Die übergeordnete Kette der chinesischen Kulturen schließt nun die chinesische Stammkultur ein. Die folgenden Beispiele veranschaulichen die vollständige übergeordnete Kette für zwei der spezifischen chinesischen Kulturen:
zh-CN → zh-CHS → zh-Hans → zh → Invariant
zh-TW → zh-CHT → zh-Hant → zh → Invariant
Die Anzeigenamen für Tibetisch (VR China), Französisch (Monaco), Tamazight (Lateinisch, Algerien) und Spanisch (Spanien, Internationale Sortierung) Anzeigenamen wurden ebenfalls aktualisiert. Wenn der Anzeigename geändert wird, spiegeln normalerweise die englischen und systemeigenen Namen diese Änderung wider; die ISO- und abgekürzten Namen von Skript, Sprache und Land können sich jedoch ebenfalls ändern.
Aktualisierte Globalisierungseigenschaftswerte
In .NET Framework 4 wurden auch die Werte von Globalisierungseigenschaften aktualisiert, wie Währung, Datums- und Uhrzeitformate, Tag und Monatsnamen, AM-Bezeichner und PM-Bezeichner sowie einige Zahlenformatierungseigenschaften. Die folgende Tabelle enthält Beispiele für geänderte Währungsnamen in der System.Globalization.RegionInfo-Klasse.
Kulturname |
Währungsname von Version 3.5 |
Währungsname von Version 4 |
---|---|---|
mt-MT |
Maltesische Lira |
Euro |
sk-SK |
Slowakische Krone |
Euro |
sl-SI |
Slowenischer Tolar |
Euro |
tr-TR |
Neue türkische Lira |
Türkische Lira |
Die folgende Tabelle enthält ein Beispiel für Änderungen am kurzen Datumsmuster in der System.Globalization.DateTimeFormatInfo-Klasse.
Kulturname |
Version 3.5 – Kurzes Datumsmuster |
Version 4 – Kurzes Datumsmuster |
---|---|---|
ar-SA |
tt/mm/jj |
tt/mm/jjjj |
prs-AF |
tt/mm/jj |
jjjj/m/t |
ps-AF |
tt/mm/jj |
jjjj/m/t |
pt-BR |
t/m/jjjj |
tt/mm/jjjj |
Einige Kalenderdaten wurden geändert, z. B. Tag- und Monatsnamen für zahlreiche Gebietsschemas (z. B. die DateTimeFormatInfo.ShortestDayNames-Eigenschaft für das arabische Gebietsschema). Einige der von rechts nach links geschriebenen Gebietsschemas (z. B. prs-AF, ps-AF und ug-CN) hatten falsche Werte für die TextInfo.IsRightToLeft-Eigenschaft und wurden in dieser Version korrigiert.
Abrufen von aktuellen Globalisierungsinformationen
Eine der Hauptglobalisierungsfunktionen von .NET Framework 4 ist die Möglichkeit, die aktuellsten Informationen bereitzustellen, wo diese verfügbar sind. Die ältesten Globalisierungsinformationen, die in dieser Version verfügbar sind, sind die zur Auslieferungszeit verfügbaren Daten (nur, wenn ältere Windows-Versionen als Windows 7 verwendet werden). Wenn Sie Windows 7 und höhere Versionen verwenden, werden die Globalisierungsinformationen direkt vom Betriebssystem abgerufen, d. h., dass Kunden die aktuellen Globalisierungsinformationen beim Upgrade auf eine neue Windows-Version erhalten. Kunden, die Windows 7 und höhere Versionen verwenden, erhalten eine einheitliche Globalisierungsoberfläche für sowohl systemeigene (Win32) als auch verwaltete Anwendungen (.NET).
Wegen der sich ständig ändernden Welt unterliegen Globalisierungsinformationen ständigen Änderungen; Entwickler dürfen nicht davon ausgehen, dass die Werte von Globalisierungseigenschaften zwischen verschiedenen Versionen oder sogar für die gleiche Version von .NET Framework bestehen bleiben. Dies ist kein völlig neues Verhalten für die .NET Framework-Benutzer. Die Eigenschaften der Nur-Windows-Kulturen, die unterstützt wurden, da .NET Framework 2 beim Ausführen unter anderen Versionen von Windows unterschiedliche Werte haben kann.
Der Kulturname ist die stabilste Eigenschaft der Kulturinformationen und soll voraussichtlich auch in künftigen Versionen stabil bleiben. Andere Eigenschaften wie der Kulturanzeigename können sich jederzeit ändern, deshalb sollten Anwendungen nicht von der Schreibweise des Anzeigenamens oder anderer Text- oder numerischer Daten abhängen.
Der Mechanismus für den Abruf von Globalisierungsinformationen hat sich in .NET Framework 4 geändert. Wenn die Anwendung unter Windows 7 oder höheren Versionen ausgeführt wird, ruft sie Globalisierungsinformationen direkt aus dem Betriebssystem ab. Wenn die Anwendung unter einer früheren Version von Windows (z. B. Windows Vista, Windows XP, Windows Server 2003 oder Windows Server 2008) ausgeführt wird, ruft sie Globalisierungsinformationen aus einem internen Datenspeicher ab, um sicherzustellen, dass die Daten aktuell sind.
Bei diesem neuen Modell für den Abruf von Globalisierungsinformationen ändern sich die Definitionen einiger CultureTypes-Objekte, da die Globalisierungsinformationen abhängig vom Hostbetriebssystem von anderen Speicherorten abgerufen werden. Die CultureTypes-Member WindowsOnlyCultures und FrameworkCultures sind jetzt veraltet. Wenn Sie versuchen, diese Member zu verwenden, generiert der Compiler auch bei erfolgreicher Kompilierung eine Warnung. Mit WindowsOnlyCultures werden keine Kulturen und mit FrameworkCultures werden alle Kulturen zurückgegeben. Andere CultureTypes-Member verfügen über die gleichen Definitionen wie zuvor.
Zeichenfolgenbehandlung
Viele .NET Framework-Klassen, einschließlich CharUnicodeInfo, CompareInfo, StringInfo, TextInfo und TextElementEnumerator im System.Globalization-Namespace, implementieren Sortierung, Groß-/Kleinschreibung und Normalisierungsregeln und rufen Unicode-Zeicheninformationen ab. Im .NET Framework 4 sind diese Funktionen mit Windows 7 synchronisiert. Dadurch werden umfangreichere linguistische Sortier- und Groß-/Kleinschreibungsfunktionen für die CJK-Sprachen (Chinesisch, Japanisch und Koreanisch) bereitstellt. Zudem werden viele Probleme behoben, die von Kunden gemeldet wurden. Die wichtigste Änderung besteht in der Kompatibilität mit dem Unicode 5.1-Standard, wobei die Unterstützung für ungefähr 1400 Zeichen hinzufügt wurde, einschließlich neuer Symbole, Pfeile, diakritischer Zeichen, Interpunktion, mathematischer Symbole, CJK-Zeichen, Ideogramme und numerische Malayalam- und Telugu-Zeichen. Außerdem wurden durch Unicode 5.1 Sortierung und Groß-/Kleinschreibung für Zeichen innerhalb der folgenden vorhandenen Skripts verbessert: Latein, Myanmar, Arabisch, Griechisch, Mongolisch, Kyrillisch, Gurmukhi, Oriya, Tamil, Telugu und Malayalam. Zudem werden nun auch die folgenden neuen Skripts unterstützt: Sundanesisch, Lepcha, Ol Chiki, Vai, Saurashtra, Kayah Li, Rejang und Cham.
Viele Szenarien, wie z. B. Datenbankindizierung, erfordern ein einheitliches Verhalten bei der Zeichenfolgenbehandlung in verschiedenen Versionen von Windows. .NET Framework 4 garantiert ein einheitliches Verhalten der Zeichenfolgenbehandlungsvorgänge unabhängig von der Windows-Hostversion.
Vorhandene Anwendungen, mit denen Datenbasisindizes erstellt oder Sortierschlüssel gespeichert werden, können vom Sortier- und Groß-/Kleinschreibungsverhalten in .NET Framework 2.0 oder 3.5 abhängen. Zur Unterstützung dieser Anwendungen ermöglicht es .NET Framework 4 Entwicklern, das Sortier- und Groß-/Kleinschreibungsverhalten der Vorversion anzuwenden. Dazu wird das <CompatSortNLSVersion>-Element in die Konfigurationsdatei der Anwendung eingeschlossen. Die Regeln zur Sortierung und Groß-/Kleinschreibung der Vorversion können auch auf Anwendungsdomänenbasis angewendet werden, indem beim Konfigurieren der Anwendungsdomäne die AppDomainSetup.SetCompatibilitySwitches-Methode mit dem "NetFx40_LegacySecurityPolicy"-Schalter aufgerufen wird. Beachten Sie, dass ein erfolgreiches Wiederherstellen des Vorversionsverhaltens vom Vorhandensein der Dynamic Link Library "sort00001000.dll" auf dem lokalen System abhängt.
.NET Framework 4 stellt für einige Kulturen mehrere Sortieroptionen bereit. Für die deutsche Kultur (Deutschland) wird z. B. die Wörterbuchsortierreihenfolge als Standardverhalten verwendet, jedoch wird die Telefonbuchsortierung als alternative Sortierreihenfolge unterstützt. Als anderes Beispiel unterstützt die chinesische Kultur (vereinfacht, VR China) Sortiervorgänge nach Aussprache als Standardverhalten und Sortiervorgänge nach Strichanzahl als alternative Sortierreihenfolge. Um die alternative Sortierreihenfolge anzugeben, können Sie ein CultureInfo-Objekt mit der LCID oder dem Namen der alternativen Sortierreihenfolge erstellen. Drei alternative Sortierreihenfolgen wurden aus .NET Framework 4 entfernt, da sie in Windows veraltet waren. Bei dem Versuch, ein CultureInfo-Objekt mit der LCID dieser veralteten alternativen Sortierreihenfolgen zu erstellen, wird eine CultureNotFoundException-Ausnahme ausgelöst. Die alternativen Sortierreihenfolgen, die von .NET Framework unterstützt werden, sind in der folgenden Tabelle aufgeführt.
Kulturname |
Sprache – Land/Region |
Standardsortierreihenfolge und LCID |
Alternative Sortierreihenfolge und LCID |
---|---|---|---|
zh-HK |
Chinesisch – Hongkong SAR |
Standard: 0x00000c04 |
zh-HK_stroke: 0x00020c04 |
ja-JP |
Japanisch – Japan |
Standard: 0x00000411 |
ja-JP_unicod: 0x00010411 |
ko-KR |
Koreanisch – Korea |
Standard: 0x00000412 |
ko-KR_unicod: 0x00010412 |
Reduzierte Verwendung von Gebietsschemabezeichnern
In .NET Framework 4 werden von der ToString-Methode und der ToString-Methode Kulturnamen ohne LCIDs für alle Kulturen verwendet. .NET Framework 4 gibt z. B. "en-US CompareInfo - en-US" zurück, anstelle von "en-US CompareInfo – 1033" (dem Rückgabewert in früheren Versionen von .NET Framework).
Eigenschaften von neutralen Kulturen
In vorherigen Versionen von .NET Framework wurde eine Ausnahme ausgelöst, wenn von Anwendungen versucht wurde, auf einige der neutralen Kultureigenschaften (wie DateTimeFormatInfo.FirstDayOfWeek) zuzugreifen. In .NET Framework 4 geben die neutralen Kultureigenschaften Werte zurück, mit denen die spezifische Kultur widergespiegelt wird, die für diese neutrale Kultur die dominante Rolle übernimmt. Zum Beispiel ruft das französische neutrale Gebietsschema die Werte der Eigenschaften von Französisch (Frankreich) ab. Die FirstDayOfWeek-Eigenschaft gibt DayOfWeek.Monday zurück, womit der Wert dieser Eigenschaft in der französischen (Frankreich) Kultur widerspiegelt wird.
Einige Eigenschaften (z. B. Sprachenname) verfügen jedoch über Werte, die sich in der dominanten Kultur unterscheiden. Der Sprachenname der neutralen norwegischen Kultur ist z. B. Norwegisch, während der Sprachenname der spezifischen Kultur von Norwegisch, Bokmål (Norwegen) Norwegisch (Bokmål) ist.
In .NET Framework 4 geben einige Eigenschaften und Methoden von neutralen Kulturen Werte zurück, die spezifische Kulturen anstatt neutrale Kulturen widerspiegeln. Die KeyboardLayoutId-Eigenschaft und die GetConsoleFallbackUICulture-Methode in der CultureInfo-Klasse sind zwei Beispiele für diese Änderung:
Änderungen des KeyboardLayoutId-Werts:
Kulturname
Version 3.5
Version 4
ar
1
1025
es
10
1034
fr
12
1036
zh-CHS
4
2052
Änderungen des GetConsoleFallbackUICulture-Werts:
Kulturname
Version 3.5
Version 4
af
af
af-ZA
de
de
de-DE
en
en
en-US
ja
ja
ja-JP
Änderungen an benutzerdefinierten Kulturen
Die von .NET Framework, Version 2.0, erstellten neutralen Ersatzkulturen werden in .NET Framework 4 nicht geladen.
Beim Registrieren einer Ersatzkultur mithilfe der CultureAndRegionInfoBuilder-Klasse sind die überschriebenen Informationen aus der benutzerdefinierten Kultur nicht umgehend für den Prozess verfügbar, mit dem die benutzerdefinierte Kultur erstellt wurde. Allerdings können in Prozessen, die nach Registrierung der benutzerdefinierten Kultur gestartet wurden, die überschriebenen Informationen gelesen werden.
Funktionen, die sich nicht geändert haben
Textinformationen, Codierung, Kalenderfunktionalität und IDN-Funktionen (Internationalized Domain Name) haben sich in .NET Framework 4 nicht geändert. Diese Bereiche funktionieren wie zuvor.
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
Mai 2010 |
Anmerkung, dass das Wiederherstellen von Sortierung und Vergleich der Vorversion von "sort00001000.dll" abhängt. |
Korrektur inhaltlicher Fehler. |