Locale
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
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
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
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 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
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
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
Das Common Locale Data Repository ist ein Projekt, das Locales für viele Sprachen bereitstellt und über Bibliotheken in unterschiedlichen Programmiersprachen genutzt werden kann.