Locale

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Das Locale ist ein Einstellungssatz, der die Gebietsschemaparameter (Standortparameter) für Computerprogramme enthält.

Dazu gehören in erster Linie die Sprache der Benutzeroberfläche, das Land und Einstellungen zu Zeichensatz, Tastaturlayout, Zahlen-, Währungs-, Datums- und Zeitformaten. Ein Einstellungssatz wird üblicherweise mit einem Code, der meist Sprache und Land umfasst, eindeutig identifiziert.

In unterschiedlichen Betriebssystemen gibt es verschiedene Konzepte für Gebietseinstellungen:

Windows[Bearbeiten | Quelltext bearbeiten]

Unter Microsoft Windows werden Gebietsschemaparameter durch eine Zahl (z. B. 0x0407 für Deutsch oder 0x0409 für Englisch/US, weitere Ländercodes über den Weblink) angesprochen und enthalten Daten zu Darstellungsformaten, Codepages und Tastaturlayouts. Windows-Programme können nur dann ohne Kenntnis des Programmquelltextes übersetzt werden, wenn die zu lokalisierenden Informationen (Zeichenketten, Fensterlayouts, Menüs, Bilder usw.) als Programmressourcen gespeichert sind. Dabei geht in der Regel die Originalübersetzung verloren.

.NET[Bearbeiten | Quelltext bearbeiten]

In Microsofts .NET-Framework-Anwendungen werden locale-abhängige Ein- und Ausgaben über die Klasse System.Globalization.CultureInfo gesteuert, wobei standardmäßig die des zugrundeliegenden Betriebssystems verwendet wird. Standorteinstellungen werden mit einer Kennzeichnung aus Sprache und Land identifiziert, z. B. de-DE oder en-US. Die Texte für locale-abhängigen Benutzeroberflächen können wiederum mittels Ressourcen-XML-Dateien (.resx) angepasst werden.

POSIX[Bearbeiten | Quelltext bearbeiten]

Unter POSIX-Plattformen werden die Übersetzungsfunktionen über die 'Locale'-Funktionen in der Standard C Library implementiert und stehen deshalb in sehr vielen Programmen zur Verfügung. Die Locale wird über die Environment-Variablen LANG und LC_* (z. B. LC_TIME für das Datumsformat) festgelegt und kann daher von User zu User und sogar von Prozess zu Prozess unterschiedlich sein. Die Locale-Bezeichnungen haben üblicherweise das Format [language[_territory][.codeset][@modifier]]. Sprache und Gebiet werden durch zwei- oder dreistellige ISO 639 bzw. zweistellige ISO 3166-Codes repräsentiert (z. B. de_DE für Deutsch/Deutschland, de_AT für Deutsch/Österreich, de_CH für Deutsch/Schweiz oder gsw_CH für Schweizerdeutsch/Schweiz). Der modifier ist dafür vorgesehen, kategoriespezifische Varianten zu wählen, z. B. eine Währung, ein Datumsformat oder eine Sortierreihenfolge. In der Praxis steht diese Möglichkeit aber mangels vordefinierter Locales meist nicht zur Verfügung.

Mac OS X[Bearbeiten | Quelltext bearbeiten]

Unter Mac OS X kann man Standorteinstellungen und andere Parameter in ~/.MacOSX/environment.plist setzen, in nachfolgendem Beispiel auf UTF-8:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LC_ALL</key>
<string>de_DE.UTF-8</string>
</dict>
</plist>

Sollte die Datei nicht existieren, können Verzeichnis und Datei einfach erzeugt werden.

Java[Bearbeiten | Quelltext bearbeiten]

Die Java-Plattform bildet 'Locale'-Funktionen über die Klasse java.util.Locale ab. Standorteinstellungen werden hier mit einer Kennzeichnung aus Sprache und Land identifiziert (z. B. de_DE für Deutsch/Deutschland oder de_AT für Deutsch/Österreich). Zusätzlich kann über das Attribut Variant auch auf Regionen Bezug genommen werden (siehe hierzu auch ISO 3166-2:AT, ISO 3166-2:CH, ISO 3166-2:DE). Die Internationalisierung bzw. Lokalisierung erfolgt auf Basis von sogenannten ResourceBundles („Ressourcenbündel“), welche in Java mit der Klasse java.util.ResourceBundle abgebildet werden.

CLDR[Bearbeiten | Quelltext bearbeiten]

Das Common Locale Data Repository ist ein Projekt, das Locales für viele Sprachen bereitstellt und über Bibliotheken in unterschiedlichen Programmiersprachen genutzt werden kann.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]