NLS-Terminologie
In diesem Thema werden Begriffe definiert, die beim Arbeiten mit NLS-Funktionen wichtig sind.
Gebietsschema- und Sprachbegriffe
In der folgenden Tabelle sind Gebietsschema- und Sprachbegriffe zusammengefasst. Siehe auch Gebietsschemas und Sprachen.
Sprachgruppe | Sprache für Nicht-Unicode-Programme | Standards und Formate | |
---|---|---|---|
Zweck- | Stellt alle Tastaturlayouts, Eingabemethoden-Editoren (IMEs), TrueType-Schriftarten, Schriftartlinks, Lizenzpaketdateien (LPKs), Bitmapschriftarten und Codeseitenübersetzungstabellen bereit, die vom Betriebssystem für eine Gruppe von Sprachen benötigt werden. Wirkt sich daher auf alle anderen Einstellungen in dieser Liste aus. | Bestimmt, welche Bitmapschriftarten und OEM-, ANSI- und Macintosh-Codeseiten Standardmäßige für das Betriebssystem sind. Diese Sprache betrifft nur Anwendungen, die nicht vollständig Unicode sind. Vor Windows XP wurde diese Sprache als "Systemgebietsschema" bezeichnet. | Bestimmt, welche Einstellungen für die Formatierung von Datumsangaben, Uhrzeiten, Währungen und Zahlen als Standardeinstellung für jeden Benutzer verwendet werden. Bestimmt auch die Sortierreihenfolge für das Sortieren von Text. Vor Windows XP wurden Standards und Formate als "Benutzergebietsschema" bezeichnet. |
first Set | Installation | Installation | Installation |
Wie Benutzer ändern können | Regionale Optionen (Systemsteuerungselement) Windows XP: Regions- und Sprachoptionen (nur Administratoren) |
Regionale Optionen (Systemsteuerungselement) Windows XP: Regions- und Sprachoptionen (nur Administratoren) |
Regionale Optionen (Systemsteuerungselement) Windows XP: Regions- und Sprachoptionen |
Standard- | Westeuropa und USA und Sprachgruppe, die zum Anzeigen der Sprache einer lokalisierten Version erforderlich ist. | Sprache der lokalisierten Version. | Sprache des lokalisierten Betriebssystems. |
Funktion | EnumSystemLanguageGroups | GetSystemDefaultLangID- | GetUserDefaultLCID, GetUserDefaultLocaleName |
Threadgebietsschema | Eingabesprache | Standardsprache für die Benutzeroberfläche des Systems | |
---|---|---|---|
Zweck- | Bestimmt die Einstellungen, die zum Formatieren von Datumsangaben, Uhrzeiten, Währungen und großen Zahlen für einen Thread verwendet werden. Bestimmt auch die Sortierreihenfolge für das Sortieren von Text. | Besteht aus einer Sprache und einer Eingabemethode. | Bestimmt die Standardsprache von Menüs und Dialogfeldern, Nachrichten, Setupinformationen (INF)-Dateien und Hilfedateien. Windows Vista und höher: Als Installationssprache bezeichnet. Spielt eine eingeschränktere Rolle, die größtenteils durch vom System bevorzugte Benutzeroberflächensprachen ersetzt wird. Weitere Informationen finden Sie unter Benutzeroberflächen-Sprachverwaltung |
first Set | Standardeinstellung für Standards und Formate | Installation | Installation |
Wie Benutzer ändern können | SetThreadLocale- | Regionale Optionen (Systemsteuerungselement) Windows XP: Regions- und Sprachoptionen |
Nein |
Standard- | Standards und Formate | Sprache der lokalisierten Version mit Standardeingabemethode. | Sprache der lokalisierten Version. |
Funktion | GetThreadLocale- | GetKeyboardLayout- | GetSystemDefaultUILanguage |
System-UI-Sprache, vom System bevorzugte Benutzeroberflächensprachen | Benutzeroberflächensprache, bevorzugte Benutzeroberflächensprachen | Bevorzugte Thread-UI-Sprachen | |
---|---|---|---|
Zweck- | Bestimmen Sie die Sprache von Menüs und Dialogfeldern, Nachrichten, INF-Dateien und Hilfedateien für das Betriebssystem. Weitere Informationen finden Sie unter User Interface Language Management. | Bestimmen Sie die Sprache von Menüs und Dialogfeldern, Nachrichten und Hilfedateien für den Benutzer. Weitere Informationen finden Sie unter User Interface Language Management. | Windows Vista und höher: Geben Sie die bevorzugten Sprachen für Anwendungsthreads an. Weitere Informationen finden Sie unter User Interface Language Management. |
first Set | Standardeinstellung für NULL | Standardeinstellung für NULL | Standardeinstellung für NULL |
Wie Benutzer ändern können | Regions- und Sprachoptionen (nur Administratoren) |
Regionale Optionen (Systemsteuerungselement) Windows XP: Regions- und Sprachoptionen |
SetThreadPreferredUILanguages |
Standard- | Windows Vista und höher: Sprache der lokalisierten Version gefolgt von Fallbacks. |
Vor Windows Vista: Sprache der lokalisierten Version. Windows Vista und höher: Sprache der lokalisierten Version gefolgt von Fallbacks. |
Nullliste |
Funktion | GetSystemPreferredUILanguages | GetUserDefaultUILanguage, GetUserPreferredUILanguages | GetThreadPreferredUILanguages |
Bevorzugte Benutzeroberflächensprachen verarbeiten | |
---|---|
Zweck- | Windows 7 und höher: Bestimmen der bevorzugten Sprachen für einen Anwendungsprozess. Weitere Informationen finden Sie unter User Interface Language Management. |
first Set | Standardeinstellung für NULL |
Wie Benutzer ändern können | Regions- und Sprachoptionen (nur Administratoren) |
Standard- | Windows 7 und höher: Sprache der lokalisierten Version, gefolgt von Fallbacks. |
Funktion | GetProcessPreferredUILanguages, SetProcessPreferredUILanguages |
Codepage
Die Unfähigkeit von 256 Codepunktcodeseiten zur Unterstützung des Mischens von Skripts in einem einzelnen Text war einer der Hauptgründe für den Aufstieg von Unicode. Codeseiten bleiben wichtig für das Schreiben von Konsolencode, für die Aufrechterhaltung von Legacyanwendungen oder für die Ausführung auf älteren Versionen von Windows und für die Interfacing mit nicht von Microsoft stammender Software, die nicht unicodefähig ist.
Eingabesprache
Die Eingabesprache wird durch eine Datenvariable pro Prozess dargestellt, die eine Sprache (z. B. Griechisch) und eine Eingabemethode (z. B. die Tastatur) beschreibt. Mehrere Eingabesprachen können installiert werden, und der Benutzer kann zwischen ihnen wechseln.
Zum Festlegen und Abrufen des Eingabesprachenwerts ruft die Anwendung LoadKeyboardLayout bzw. GetKeyboardLayout-auf. Benutzer können Eingabesprachen über die Registerkarte Sprachen im Bereich "Regions- und Sprachoptionen" der Systemsteuerung hinzufügen und entfernen.
Die Standardeingabesprache ist die lokalisierte Sprache des Betriebssystems und die Einstellung, die aktiv ist, wenn eine neue Anwendung gestartet wird (oder wenn ein neues Fenster für einige Anwendungen geöffnet wird). Der Wechsel zu einer anderen Eingabesprache erfolgt pro Anwendung. Mit anderen Worten, zwei verschiedene Eingabesprachen können in zwei verschiedenen Anwendungen verwendet werden. Ein Benutzer kann z. B. mit dem internationalen Tastaturlayout in den USA Deutsch eingeben, Englisch mit Spracheingabe (mit Nicht-Microsoft-Software) und Spanisch mit einem IME in drei verschiedenen Anwendungen.
Sprache für Nicht-Unicode-Programme
Die Sprache für Nicht-Unicode-Programme (vormals "Systemgebietsschema") bestimmt die Codeseite, die standardmäßig auf dem Betriebssystem verwendet wird. Die Sprache für Nicht-Unicode-Programme betrifft nur Nicht-Unicode-Anwendungen, d. h. ANSI-Anwendungen. Wenn Sie die Sprache festlegen, weist Windows an, ein nicht unicodebasiertes Betriebssystem zu emulieren, das auf diese Sprache lokalisiert ist. Wenn Sie die Sprache für Nicht-Unicode-Programme ändern, werden die erforderlichen Bitmapschriftartendateien installiert, um Nicht-Unicode-Anwendungen in der angegebenen Sprache zu unterstützen. Damit der Benutzer eine Sprache für Nicht-Unicode-Programme auswählen kann, muss die entsprechende Sprachgruppe installiert sein. Ihre Anwendung benötigt die Skriptunterstützung, um eine Sprache für Nicht-Unicode-Programme auszuwählen. Die Sprache für Nicht-Unicode-Programme ist eine Systemeinstellung und erfordert einen Neustart, der implementiert werden muss.
Manchmal gibt es keinen spürbaren Unterschied zwischen zwei Sprachen für Nicht-Unicode-Programme. Dies ist beispielsweise bei den Gebietsschemas Deutsch (Neutral) und Deutsch (Österreich) der Fall. Im Allgemeinen sind die Einstellungen einer Sprachgruppe sehr ähnlich und unterscheiden sich nur auf der OEM- oder MAC-Codeseite.
Eine ANSI-Anwendung sollte während der Installation die Sprache auf Nicht-Unicode-Programme überprüfen. Es verwendet GetACP- oder GetOEMCP-, um den Wert abzurufen. Es wird keine Funktion unterstützt, um die Sprache für Nicht-Unicode-Programme festzulegen. Benutzer können sie jedoch mithilfe der Registerkarte Erweiterten im Bereich "Regions- und Sprachoptionen" der Systemsteuerung ändern. Im Folgenden sind einige Beispiele für Spracheinstellungen für Nicht-Unicode-Programme aufgeführt:
- Ein deutscher Benutzer, der eine japanische Anwendung ausführen möchte, die für Japanische Windows 95 entwickelt wurde, muss Japanisch als Sprache für Nicht-Unicode-Programme auswählen. Nach dieser Auswahl haben nicht-Unicode-deutsche Anwendungen Probleme. Beispielsweise werden deutsche Umlaute ( μ) nicht richtig angezeigt.
- Ein deutscher Benutzer, der japanischen Text in einer nicht unicode-deutschen Anwendung eingeben möchte, muss Japanisch als Sprache für Nicht-Unicode-Programme auswählen. Wie im ersten Beispiel verursacht dies Probleme beim Eingeben von deutschem Text in Nicht-Unicode-Anwendungen.
- Ein arabischer Benutzer, der Arabisch, Französisch und Englisch in einer nicht unicode-arabischen Anwendung eingeben möchte, sollte Arabisch als Sprache für Nicht-Unicode-Programme auswählen, da die Arabische ANSI-Codeseite die meisten französischen Zeichen und alle englischen Zeichen enthält.
Sprachgruppe
Die Sprachgruppe steuert die Sprache für Nicht-Unicode-Programme, Standards und Formate, Eingabesprachen und Benutzeroberflächensprachen, die ausgewählt werden können. Für jede lokalisierte Version ist die angegebene Sprachgruppe die Standardeinstellung und kann nicht entfernt werden. Windows installiert z. B. standardmäßig die Sprachgruppe "Westeuropa" und "USA". Wenn also die englische Version von Windows in einem nicht englischsprachigen Land/einer anderen Region installiert ist, installiert der Benutzer in der Regel eine andere Sprachgruppe.
Beim Hinzufügen einer Sprachgruppe kopiert Windows die erforderlichen Tastaturdateien, Eingabemethoden-Editoren (IMEs), TrueType-Schriftartdateien, Bitmapschriftartendateien und National Language Support (NLS)-Dateien. Durch das Hinzufügen einer Sprachgruppe werden auch Registrierungswerte für die Schriftartverknüpfung hinzugefügt und Skriptmodule für komplexe Skriptsprachen (Arabisch, Hebräisch, Indisch und Thai) installiert.
Neben der Sprachgruppe Westeuropa und den Vereinigten Staaten gibt es 16 weitere Sprachgruppen:
Armenisch Baltisch Mitteleuropa Kyrillisch Georgisch Griechisch Hebräisch |
Japanisch Koreanisch Vereinfachtes Chinesisch Chinesisch (traditionell) Thailändisch Turk Vietnamesisch |
Jede Anzahl und Kombination von Sprachgruppen kann auf jedem beliebigen Betriebssystem installiert werden. Beispielsweise kann ein spanischer Benutzer die Kyrillische Sprachgruppe installieren, um an russischen Texten zu arbeiten. In diesem Fall muss eine Textverarbeitungsanwendung auch die Kyrillische Sprachgruppe unterstützen.
Anmerkung
Durch das Hinzufügen der entsprechenden Sprachgruppe wird eine Anwendung nicht automatisch zum Akzeptieren von Text aktiviert. Tests werden empfohlen. Beispielsweise kann es sein, dass Nicht-Unicode-Anwendungen die Sprache für Nicht-Unicode-Programme ändern müssen.
Ort
Windows XP: Ein Standort ist ein geografischer Bezeichner. Sie wird durch eine Datenvariable pro Benutzer dargestellt, die das Land/die Region definiert, in dem sich der Benutzer befindet.
Um den Wert festzulegen, ruft die Anwendung SetUserGeoIDauf. Zum Abrufen des Werts ruft die Anwendung GetUserGeoIDauf.
Standards und Formate
Standards und Formate (ehemals "Benutzergebietsschema") ist eine Benutzervariable, die die Standardsortierreihenfolge und die Standardeinstellungen für die Formatierung von Datumsangaben, Uhrzeiten, Währungen und Zahlen bestimmt. Die Variable wird als Sprache (manchmal in Kombination mit einem Land/einer Region) dargestellt, ist aber keine Sprache selbst. Wenn Sie z. B. die Variable "Standards" und "Formate" auf Hebräisch festlegen, wird angegeben, dass der Benutzer die Formatierungskonventionen hebräischer Sprache verwenden möchte, nicht unbedingt die Hebräische Sprache. Darüber hinaus bestimmt die Variable Standards und Formate die Zeichenfolge, die für die Namen von Tagen und Monaten verwendet wird. Wenn ein Benutzer beispielsweise "25. November 1998" anzeigt, kann sich die Zeichenfolge "November" basierend auf der Variablen "Standards" und "Formats" ändern. Durch das Ändern der Variablen wird automatisch ein Eingabegebietsschema mit den Standardeinstellungen für die Sprache hinzugefügt.
Um die Variableneinstellung "Standards" und "Formate" abzurufen, ruft die Anwendung GetUserDefaultLCID oder GetUserDefaultLocaleNameauf. Es ist keine NLS-Funktion verfügbar, um die Variable festzulegen. Benutzer können sie jedoch über die Registerkarte Regionsoptionen im Bereich "Regions- und Sprachoptionen" der Systemsteuerung ändern.
Eine Anwendung sollte in der Regel die Variableneinstellungen "Standards" und "Formate" verwenden, um Daten anzuzeigen. Eine Anwendung, die ein festes Gebietsschema zum Anzeigen von Daten verwendet, sollte jedoch einen bestimmten Gebietsschemabezeichner übergeben, anstatt LOCALE_USER_DEFAULT zu verwenden.
Threadgebietsschema
Das Threadgebietsschema wird durch eine Gebietsschema-Datenvariable pro Thread dargestellt, die die Formatierung von Datumsangaben, Uhrzeiten, Währungen und großen Zahlen für den Thread bestimmt. Standardmäßig wird der Wert für das Gebietsschema verwendet, das derzeit für Standards und Formate ausgewählt ist. Um das Threadgebietsschema festzulegen, ruft die Anwendung SetThreadLocaleauf. Zum Abrufen des Threadgebietsschemas ruft die Anwendung GetThreadLocaleauf.
In den meisten Fällen sollte das Threadgebietsschema nicht überschrieben werden. Normalerweise sollte es nur verwendet werden, um das Threadgebietsschema einer Serveranwendung mit der Variablen Standards und Formats eines Clientcomputers zu synchronisieren. Beispielsweise muss eine Finanzhandelsanwendung für die New York Stock Exchange, die in Banken weltweit verwendet wird, die Uhrzeit, das Datum und die Aktienkurse in den USA anzeigen. Diese Anwendung verwendet SetThreadLocale-, um das Threadgebietsschema auf Englisch (USA) festzulegen, und verwendet dann die NLS-Funktionen, um Datumsangaben, Uhrzeiten und Aktienkurse zu formatieren.
Das Ändern des Threadgebietsschemas wirkt sich nicht auf alle API-Funktionen aus. Daher ist es nicht immer eine zuverlässige Möglichkeit, die Variablen Standards und Formate außer Kraft zu setzen. Stattdessen sollten Anwendungen, die Standards und Formate steuern, ein festes Gebietsschema zum Anzeigen von Daten verwenden und einen bestimmten Gebietsschemabezeichner übergeben, anstatt LOCALE_USER_DEFAULT zu verwenden.
NLS-Beispiel
Das folgende Beispiel zeigt das Zusammenspiel zwischen Standards und Formaten, der Sprache für Nicht-Unicode-Programme, Speicherorte und die Benutzeroberflächensprache.
Ein Benutzer, der chilenisch ist, aber in den USA lebt, verfügt über einen Computer mit Windows XP English. Der Benutzer legt den Standort auf VEREINIGTE Staaten fest, um einen Internetdienstanbieter (Internet Service Provider, ISP) zu verwenden, um das Wetter für die Vereinigten Staaten zu erhalten. Die Variable "Standards und Formate" wird jedoch auf Spanisch (Chile) festgelegt, sodass die Informationen gemäß den chilenischen Standards formatiert werden. Darüber hinaus verwendet der Benutzer eine koreanische Textverarbeitung, bei der es sich um eine ANSI-Anwendung handelt, sodass die Sprache für Nicht-Unicode-Programme auf Koreanisch (Korea) festgelegt ist. Um die Anwendung zu verwenden, verfügt der Benutzer über eine englische Tastatur und installiert außerdem einen koreanischen IME, um eine zweite Eingabesprache zu unterstützen. Der Kollege des Benutzers, der den Computer teilt, aber nicht mit Englisch vertraut ist, kann die Benutzeroberflächensprache auf Spanisch (Spanien) festlegen, wenn er den Computer verwendet.
Verwandte Themen