Arbeiten mit benutzerdefinierten Gebietsschemas

Dieses Thema enthält einige Anweisungen zum Behandeln benutzerdefinierter Gebietsschemas in Ihren Anwendungen. Es empfiehlt sich, Ihren gesamten Quellcode unter Berücksichtigung dieser Überlegungen vorzubereiten, da Ihre Anwendung nicht steuert, ob benutzerdefinierte Gebietsschemas auf dem Betriebssystem installiert sind.

Richtiges Behandeln LOCALE_STIME Konstanten

Wenn Sie über eine ältere Anwendung verfügen, die GetLocaleInfo verwendet, um das durch LOCALE_STIME angegebene veraltete Zeittrennzeichen abzurufen, kann die Anwendung das Zeitformat möglicherweise nicht analysieren. Denken Sie daran, dass sich das Zeichen, das Stunden von Minuten trennt, von dem Zeichen unterscheidet, das Minuten von Sekunden trennt.

Hinweis

Denken Sie beim Programmieren für benutzerdefinierte Gebietsschemas daran, dass diese ungewöhnlich sind. Praktisch jedes für NLS verfügbare Feld muss ungewöhnliches Verhalten bewältigen. Beispielsweise ist das Zeitformat 12H34'12'' legitim und allgemein verständlich. Viele Anwendungen treffen jedoch Annahmen über die Zeittrennzeichen, die Pufferlängen unterbrechen oder Felder anzeigen können.

 

Unterscheidung zwischen zusätzlichen Gebietsschemas

Alle zusätzlichen Gebietsschemas verwenden die LOCALE_CUSTOM_UNSPECIFIED Konstante für den Gebietsschemabezeichner. In der Regel kann GetLocaleInfo nicht zwischen zusätzlichen Gebietsschemas unterscheiden, aber GetLocaleInfoEx kann dies, da Gebietsschemanamen anstelle von Gebietsschemabezeichnern verwendet werden. Ihre Anwendung kann Nur dann Informationen zu einem bestimmten zusätzlichen Gebietsschema abrufen, wenn dieses Gebietsschema das derzeit ausgewählte Benutzergebietsschema ist. Anschließend kann die Anwendung GetLocaleInfo aufrufen und die Konstante LOCALE_USER_DEFAULT als Gebietsschemabezeichner übergeben.

Behandeln von Ersetzungsgebietsschemas

Um die Zuverlässigkeit von Windows zu erhalten, denken Sie daran, dass ein von Ihrer Anwendung unterstütztes Ersatzgebietsschema den Gebietsschemabezeichner des ersetzten Gebietsschemas nicht ändern kann. Auch ein Ersatzgebietsschema kann die Sortiereigenschaften von Windows nicht ändern.

Obwohl ein Ersatzgebietsschema den Standardkalender ändern kann, muss der ursprüngliche Standard an einer beliebigen Stelle in der Liste der verfügbaren Kalender beibehalten werden. Beispielsweise verwendet das Gebietsschema Thai (Thailand) den thailändischen buddhistischen Kalender als Standard. Ein Administrator kann ein Ersatzgebietsschema erstellen, das den lokalisierten gregorianischen Kalender verwendet. Die Liste der verfügbaren Kalender enthält jedoch weiterhin einen Eintrag für den thailändischen buddhistischen Kalender.

Bei Ersetzungsgebietsschemas sollte Ihre Anwendung im Allgemeinen gebietsschemaspezifische Informationen lesen, anstatt basierend auf Kenntnissen eines bestimmten Gebietsschemas eine "Verknüpfung" zu versuchen. Wenn GetThreadLocale beispielsweise das aktuelle Gebietsschema als Englisch (USA) abruft, kann es sich tatsächlich um ein Ersatzgebietsschema handeln, das wirksam werden sollte.

Anpassen von Kalendern

Ihre Anwendungen können Tag- und Monatsnamen für gregorianische Kalender anpassen, jedoch nicht für nicht gregorianische Kalender. Ebenso unterstützt NLS die Erstellung von benutzerdefinierten Kalendern nicht. Weitere Informationen finden Sie unter Datum und Kalender.

Behandeln von Sortiersequenzen

Ein zusätzliches Gebietsschema kann jede von Microsoft definierte Sortiersequenz verwenden. Ein Ersatzgebietsschema muss dieselbe Sortiersequenz wie das gebietsschema verwenden, das ersetzt wird. NLS unterstützt nicht die Erstellung von benutzerdefinierten Sortiersequenzen. Weitere Informationen finden Sie unter Behandeln der Sortierung in Ihren Anwendungen.

Lokalisieren von benutzerdefinierten Gebietsschemainformationen

NLS bietet keinen Mechanismus zum Lokalisieren benutzerdefinierter Gebietsschemainformationen. Daher ruft die konstante LOCALE_SLANGUAGE oder LOCALE_SLOCALIZEDLANGUAGENAME , die als Gebietsschemabezeichner für ein benutzerdefiniertes Gebietsschema verwendet wird, immer Werte ab, die LOCALE_SNATIVELANGNAME oder LOCALE_SNATIVELANGUAGENAME zugeordnet sind.

Verwenden der Unterstützung für landessprachliche Sprachen

Benutzerdefinierte Gebietsschemas

Datum und Kalender

Behandeln der Sortierung in Ihren Anwendungen