Culture-Info: Detailinformationen zu den verschiedenen neutralen und spezifischen Kulturen
Innerhalb des Projektes
server-daten kann auf Ausgabeseiten für Datums-, Zeit- und Zahlausgaben das Ausgabeformat
festgelegt werden. Die Interpretation des festgelegten Musters hängt anschließend jedoch entweder von der Spracheinstellung
des Clientbrowsers ab oder es wird eine Ausgabekultur fixiert, so daß alle Leser dieselbe Darstellung erhalten. Einige hierbei
genutzte, allgemeine Prinzipien werden hier vorgestellt. Ferner finden sich hier die normativen Listen der erlaubten neutralen
und spezifischen Kulturen. Erstere beschreiben - vereinfacht ausgedrückt - verschiedene Sprachen, zweitere ermöglichen die Berücksichtigung
regionaler Besonderheiten und Regeln. Die meisten der hier mitgeteilten Informationen sind auch für Formatierungen innerhalb
von Excel oder Access gültig. In Excel sind dies Formatangaben für Zellen (Format - Zellen - Zahlen - Kategorie: Benutzerdefiniert).
In Access kann einzelnen Spalten bei der Erstellung von Tabellen (Spalten - Format) ein solches benutzerdefiniertes Format
zugeordnet werden. Hier hängt die Ausgabekultur von dem gewählten Eintrag in der Systemsteuerung ab.
Falls Programmierer diese Quelle nutzen möchten, können sie die folgende Xml-Quelle herunterladen:
sd-culture-info.xml (Datei darf verwendet und - in unveränderter Form -
kostenlos weitergegeben werden - 12/2007).
1. Spracheinstellungen, neutrale und spezifische Kulturen
Sowohl aktuelle als auch ältere Browser kennen einen Menüpunkt, der
Spracheinstellungen ermöglicht.
Beim InternetExplorer finden sich diese unter Extras - Internetoptionen - Allgemein - Sprachen, beim FireFox unter
Tools - Optionen - Allgemein (General) - Sprachen. Dort können einzelne Sprachen ausgewählt, der Liste hinzugefügt oder
von dieser entfernt und geordnet werden. Mit dem Auswählen einer Sprache in einem dieser Menüs beeinflußt der Nutzer
nicht die Menüsprache seines Browsers, sondern sendet die von ihm festgelegten Sprachkürzel bei jedem Abruf einer Webseite
mit. Der Nutzer informiert den Webserver über seine 'bevorzugte Sprache',
server-daten beachtet den dort als erste
Sprache gelisteten Ausdruck für alle Sprachverzweigungen.
Die Kulturen sind in zwei Gruppen geordnet:
Neutrale Kulturen (en, de, fr) fassen einige grundlegende Informationen zu einer
Kultur zusammen. Ihnen ist eine Sprache, jedoch kein Land bzw. keine Region zugeordnet. Eine
spezifische Kultur
ist einer neutralen Kultur untergeordnet, übernimmt von dieser die Sprache und besitzt selbst einen Bezug auf ein Land bzw.
auf eine Region. Zu jeder neutralen Kultur gibt es mindestens eine spezifische Kultur (en-US, en-GB).
Verschiedene spezifische Kulturen nutzen in bezug auf Detaildarstellungen verschiedene Formate und können sich in bezug auf
Datums- und Zeitformate, Währungen und anderen numerischen Darstellungen voneinander unterscheiden. Zu jeder neutralen Kultur
gibt es in der hiesigen Darstellung eine eigene Seite, die über das links notierte Menü erreichbar ist. Der Dateiname ohne Endung ist gleich dem Namen
der neutralen Kultur, so daß diese über den allgemeinen Pfad /server-daten/culture-info/<Name der Kultur>.html
adressiert werden kann. Detailinformationen zu den spezifischen Kulturen sind auf der Seite der zugeordneten neutralen Kultur
zu finden.
2. Hinweise zu den folgenden Auflistungen der neutralen Kulturen
Zu jeder neutralen Kultur gibt es eine eigene Seite mit vier Unterpunkten. Die
Grunddaten nennen
den in Ausgabeseiten verwendbaren Namen, den englischen Namen, den LCID ('culture identifier'), welcher in den meisten
Fällen auf den korrespondierenden 'National Language Support (NLS) locale identifier' abgebildet wird sowie
ISO- und Windows-API-Bezeichner für diese Kultur. Der LCID taucht innerhalb von Softwareinstallationen als Name des
Unterordners für die sprachabhängigen Hilfstexte auf. Es folgt die Liste der
spezifischen Kulturen
zu dieser neutralen Kultur, ausgegeben sind die verwendbaren Kurznamen, der englische Name, LCID und der ThreeLetterWindowsLanguageName.
Die ISO-Bezeichnungen sind nur für neutrale Kulturen definiert. Die folgenden Auflistungen von
Datums- und Zeitformaten
sowie von
Numerischen Formaten sind zweigeteilt: Zunächst werden jene Eigenschaften gelistet, welche für
alle spezifischen Kulturen denselben Wert haben. Anschließend folgen jene Eigenschaften mit verschiedenen Werten innerhalb
dieser spezifischen Kulturen. Die Aufteilung in mehrere Tabellen erfolgt nur der Übersicht willen und hat keine inhaltliche Bedeutung,
theoretisch würde eine (breite) Tabelle mit den spezifischen Kulturen in der ersten Spalte und den Eigenschaften als Spaltenüberschriften genügen. Bei
neutralen Kulturen, für welche es nur eine einzige spezifische Kultur gibt, entfällt diese Zweiteilung. Hier genügt jeweils eine
Tabelle für Datums-/Zeit- und für numerische Formate.
2.1 Eigenschaften von Datums- und Zeitformaten
Die folgende Tabelle erläutert die kulturspezifischen Eigenschaften von Datums- und Zeitformaten. Die markierten Kurzausdrücke
bezeichnen die vordefinierten Standardmuster für Datums-/Zeitformate, wie sie in der zugeordneten
Tabelle der Formatbezeichner für Datum- und Uhrzeit
definiert sind.
Eigenschaft | Erläuterung |
---|
AbbreviatedDayNames | Auflistung der abgekürzten Namen der Wochentage
|
AbbreviatedMonthNames | Auflistung der abgekürzten Namen der Monate
|
AMDesignator | Bezeichner für Zeitangaben vor 12:00 mittags (ante meridiem - a.m.)
|
PMDesignator | Bezeichner für Zeitangaben von 12:00 - 24:00 (post meridiem - p.m.)
|
DateSeparator | Trenner für Datumskomponenten Tag/Monat/Jahr
|
DayNames | Liste der Namen der Wochentage
|
FirstDayOfWeek | Von Sonntag (= 0) bis Samstag (= 6) ist jedem Wochentag eine Zahl zugewiesen.
Die Eigenschaft legt fest, welcher Tag als erster Tag der Woche betrachtet wird: 0 - die Woche beginnt mit dem Sonntag,
1 - die Woche beginnt mit dem Montag.
|
FullDateTimePattern | Formatmuster für den langen Datums- und Zeitwert (F)
|
LongDatePattern | Formatmuster für das lange Datum (D)
|
LongTimePattern | Formatmuster für den langen Zeitwert (T)
|
MonthDayPattern | Formatmuster für die Kombination Monat/Tag (m, M)
|
MonthNames | Liste der Monatsnamen
|
RFC1123Pattern | Formatmuster gemäß der RFC-Spezifikation 1123 (r, R)
|
ShortDatePattern | Formatmuster für den kurzen Datumswert (d)
|
ShortTimePattern | Formatmuster für den kurzen Zeitwert (t)
|
SortableDateTimePattern | Formatmuster für eine sortierbare Darstellung von Datum und Uhrzeit (s)
|
TimeSeparator | Zeichen, das Zeitangaben (Stunden, Minuten, Sekunden) trennt
|
UniversalSortableDateTimePattern | Formatmuster für die universell sortierbare Datums/Uhrzeit-Darstellung (u, U)
|
YearMonthPattern | Formatmuster für die Darstellung von Jahr und Monat (y, Y)
|
2.2 Eigenschaften von numerischen Formaten
Eigenschaft | Erläuterung |
---|
CurrencyDecimalDigits | Anzahl der in Währungsangaben verwendeten Dezimalstellen
|
CurrencyDecimalSeparator | Dezimaltrennzeichen in Währungsangaben
|
CurrencyGroupSeparator | Gruppentrennzeichen für Währungsangaben
|
CurrencyGroupSizes | Zahl der Ziffern, nach welchen das Gruppentrennzeichen eingefügt wird
|
CurrencyNegativePattern | Formatmuster für negative Währungsangaben
|
CurrencyPositivePattern | Formatmuster für positive Währungsangaben
|
CurrencySymbol | Währungssymbol
|
NaNSymbol | Zeichenfolge für den IEEE-NaN-Wert (Not a Number)
|
NegativeInfinitySymbol | Zeichenfolge für den Wert 'minus unendlich'
|
NegativeSign | Zeichen dafür, daß eine Zahl negativ ist
|
NumberDecimalDigits | Anzahl der in numerischen Werten verwendeten Dezimalstellen
|
NumberDecimalSeparator | Dezimaltrennzeichen für numerische Werte
|
NumberGroupSeparator | Gruppentrennzeichen für numerische Werte
|
NumberGroupSizes | Zahl der Ziffern für numerische Werte, nach welchen das Gruppentrennzeichen eingefügt wird
|
NumberNegativePattern | Formatmuster für negative numerische Ausdrücke
|
PercentDecimalDigits | Anzahl der in Prozentangaben verwendeten Dezimalstellen
|
PercentDecimalSeparator | Dezimaltrennzeichen für Prozentangaben
|
PercentGroupSeparator | Gruppentrennzeichen für Prozentangaben
|
PercentGroupSizes | Zahl der Ziffern für Prozentangaben, nach welchen das Gruppentrennzeichen eingefügt wird
|
PercentNegativePattern | Formatmuster für negative Prozentangaben
|
PercentPositivePattern | Formatmuster für positive Prozentangaben
|
PercentSymbol | Prozentsymbol
|
PerMilleSymbol | Promillesymbol
|
PositiveInfinitySymbol | Zeichenfolge für den Wert 'plus unendlich'
|
PositiveSign | Zeichen dafür, daß eine Zahl positiv ist
|
3. Eine Anmerkung zum Verhältnis der verschiedenen kulturspezifischen Werkzeuge
Die Tabellen
Formatzeichen für Datum und Zeit
sowie
Formatzeichen für Zahlen
definieren eine winzige Programmiersprache, um Datums-, Zeit- und numerische Formate festzulegen. Sie enthalten zwei
Typen von Token: (I) Ausdrücke wie 'd', 'dd', 'yyyy' oder '#' werden später durch korrespondierende Zahlen oder Namen (Tage, Monate)
ersetzt. (II) Ausdrücke wie '/' (Datumstrenner), '.' (Dezimaltrennzeichen) oder '%' (Prozentplatzhalter) werden später durch korrespondierende
Werte aus der Kultur ersetzt, in welcher die Ausgabe erfolgen soll. Ferner gibt es vordefinierte Formatzeichen (d, D, F, G usw.)
und zu diesen korrespondierende Beschreibungen (ShortDatePattern, LongDatePattern, FullDateTimePattern, General).
Jede spezifische Kultur belegt (1) alle Token vom zweiten Typ mit eigenen Werten und definiert (2) zu jedem vordefinierten
Formatzeichen ein Muster in der 'winzigen Programmiersprache'. Hierbei werden (theoretisch) nur Token vom Typ I/II verwendet, nicht deren
spätere kulturspezifische Ersetzung. (3) beinhaltet jede Kultur Listen von Namen (Tages- und Monatsnamen, Kurzversionen).
Die Unterseiten zu diesem Kapitel listen zu allen speziellen Kulturen diese Werte auf, so daß aus diesen Darstellungen abgeleitet
werden kann, mit welcher Ausgabe bei der Verwendung eines Musters zu rechnen ist, ohne diverse Kulturen einzeln durchprüfen zu müssen.
Bei der Ausgabe interagieren drei Komponenten: (i) Das konkret gewählte Formatmuster, (ii) der auszugebende Wert, (iii) die gewählte
Ausgabekultur. Handelt es sich bei dem Formatmuster um ein vordefiniertes Formatzeichen, so wird es zunächst durch die kulturabhängige
Langdarstellung ersetzt. Handelt es sich um ein benutzerdefiniertes Muster, so liegt es bereits in der Langdarstellung vor.
Anschließend werden alle (I)-Token durch korrespondierende Zahlen bzw. Namen ersetzt sowie alle (II)-Token
durch ihre Belegung innerhalb dieser Kultur.
4. Quelle der Daten
Die Unterseiten wurden erzeugt, indem aus der Liste aller in .NET definierten Kulturen (erstellbar mit
CultureInfo.GetCultures(CultureTypes.AllCultures)
) zunächst jede Kultur in eine einfache Xml-Darstellung
transferiert wurde. Das so erzeugte Xml-Quelldokument wird anschließend für jede neutrale Kultur einmal aufgerufen und mit
einer Xsl-Transformation in die Xml-Domainversion (/xml/server-daten/culture-info/<culture-name>.xml) transferiert.
Aus dieser wird schließlich mittels des üblichen Xml-Batch-Converter die Html-Version (/server-daten/culture-info/<culture-name>.html)
erstellt.
Die Ermittlung, ob alle spezifischen Kulturen nur einen einzigen Wert haben, so daß sie in die Tabelle
Werte, die für alle spezifischen Kulturen einheitlich sind aufgenommen wird, wurde ausschließlich mit Xsl-Techniken ermittelt.
Hierfür genügt es, die Zahl der spezifischen Kulturen zur aktuellen neutralen Kultur mittels
count(<Knotenmenge>)
zu zählen und diese mit der Zahl der spezifischen Kulturen zu vergleichen, deren Wert zu einem Attribut mit dem Wert
der ersten spezifischen Kultur übereinstimmt.
5. Nutzung von neutralen und spezifischen Kulturen innerhalb von server-daten
5.1 Nutzung der Kulturen im Rahmen der Definition von Tabellen
Zunächst können zu einzelnen Spalten zusätzliche
Multilang-Verzweigungen (mehrsprachliche Spalten) erstellt werden. Die Hauptspalte
wird bsp. mit deutschen Beschriftungen gefüllt, Multilang-Spalten ergänzen diese um englische Einträge. Wird zu einer externen Sprache
(hier: englisch) nur eine einzige Multilang-Spalte definiert, so sollte diese als 'en' (und nicht als 'en-GB', 'en-US' o.ä.)
festgelegt werden. Damit erhalten alle Leser mit Einstellungen 'en-GB', 'en-US' und 'en' diesen Eintrag. Wird eine Spalte als
'en-US' definiert und fehlen Multilang-Verzweigungen für 'en-GB' und 'en', so wird an alle Leser mit 'en-GB' bzw. 'en' der (bsp. deutsche)
Grundtext ausgeliefert. Nur in wenigen Fällen, in welchen Daten für verschiedene spezifische Kulturen verschieden sind, sollten
Multilang-Spalten für spezifische Kulturen erstellt werden.
5.2 Nutzung der Kulturen innerhalb von Ausgabeseiten
- Sind Multilang-Spalten definiert und mit Werten zu aktuellen Datensätzen gefüllt, so werden diese im Rahmen der Standard-Tabellenbearbeitung
bei passender Spracheinstellung ausgeliefert. Dies gilt für die Bearbeitung von Zellen, für die Sortierung sowie für die
in Relationen angezeigten Einträge, falls die Relationen einen Ausdruck verwenden, der Spalten mit Multilang-Verzweigungen nutzt.
All diese Dinge sind vom Ersteller der Ausgabeseite nicht beeinflußbar und werden serverseitig anhand der Client-Sprache verarbeitet.
- sd:choose-lang
: Dieses Element kann in Ausgabeseiten genutzt werden, um verschiedenen
Lesern verschiedene Texte auszugeben. Jedes sd:choose-lang
-Element kann beliebig viele
sd:span
-Elemente enthalten, deren sd:lang
-Attribute
mit neutralen oder spezifischen Kulturen belegt werden dürfen. Zur Laufzeit wird geprüft, ob es ein passendes sd:span
-Element
gibt, falls ja, wird dessen Content ausgegeben. Hierbei wird die Hierarchie 'en-US', 'en' berücksichtigt. Für reine Sprachalternativen
(englisch, französisch, deutsch) genügen neutrale Kulturen als Attributwerte. Nur falls innerhalb einer Sprache unterschiedliche
Informationen ausgeliefert werden sollen, werden die speziellen Kulturen benötigt. Diese Technik ist immer auf die aktuelle
Ausgabeseite beschränkt und erlaubt die Anpassung von 'begrüßenden Texten' und ähnlichem.
- Bei der Erstellung von
Ausgabeseiten wird empfohlen, Datums-, Zeit- und numerische Formate kulturabhängig auszugeben, sie also in Abhängigkeit von der
gewählten Sprache des Clientbrowsers zu generieren. Denn in der Regel ist es für Leser einer Seite schwierig, bsp. andersartig
formatierte Datumsangaben zu identifizieren (10/26/2005 versus 26.10.2005). Wird diese Ausgabe in Abhängigkeit von der
Browsereinstellung erzeugt, so erhält jeder Leser die für ihn gewohnte Darstellung. Diese Einstellung wird auch bei Dateneingaben
berücksichtigt, so daß ein Leser, welcher 10/26/2005 liest, diesen Wert bsp. auf 10/25/2005 ändern und korrekt speichern kann.
Die kulturabhängige Verarbeitung ist die Standardeinstellung bei Ausgabeseiten. Der Ersteller der Ausgabeseite schränkt diese ein,
falls er Datums- und Zeitangaben absolut definiert, anstatt auf die vordefinierten Muster zurückzugreifen oder falls er in
selbstdefinierten Mustern Trennzeichen mit '\' maskiert, so daß sie absolut ausgegeben werden. Die Einschränkung ist offenkundig,
falls die Ausgabekultur mithilfe des sd:culture
-Attributes fixiert
wird. Dieses Attribut verarbeitet ausschließlich spezifische Kulturen. Denn nur zu einer spezifischen Kultur sind Datums-, Zeit- und
Nummernformate definiert. Dieses Attribut kann deshalb nicht eine neutrale Kultur wie 'en', 'fr' erhalten, sondern muß immer mit
spezifischen Kulturen wie 'en-GB', 'en-US' oder ähnlichem belegt werden.

Link zur hiesigen Seite als QR-Code
Kontaktformular:
Schreiben Sie mir und wir bauen gemeinsam Ihre neue Web-Datenbank!
© 2003-2025 Jürgen Auer, Berlin.