Locale: Unterschied zwischen den Versionen
*>Harlekin |
Dirk (Diskussion | Beiträge) K →Aktivierung und Verwendung: en_DK auch hier raus |
||
(25 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
''Locales'' werden unter Linux benutzt, um die Systemsprache, sowie weitere Eigenschaften festzulegen. Dies beinhaltet Fehlermeldungen, je nach Programm auch Logeinträge, die Benutzerschnittstelle, oder das GUI. Zudem werden auch Formatierungen (Zahlen, Sortier-Rangfolge, Währungsinformationen, Papiergröße, etc.) durch die Locale bestimmt. | |||
Locales werden | |||
Über die Locale wird zudem der verwendete Zeichensatz festgelegt. Dies ist vor allem bei Sprachen, die nicht ausschließlich, oder gar keine, ASCII-Zeichen verwenden zu berücksichtigen. | |||
== Aufbau == | |||
Locales bestehen aus bis zu vier Elementen. | |||
Sprache[_Region][.Kodierung][@Modifikator] | |||
Einzig die Angabe zur Sprache ist verbindlich. Region, Kodierung, und Modifikator sind optionale Angaben. | |||
=== Sprache und Region === | |||
Die Sprachdefinitionen werden von der IANA verwaltet (siehe Weblinks). Abweichend zur BCP 47 werden Sprachdefinition und Region durch einen Unterstrich, und nicht durch ein Minuszeichen getrennt. | |||
de_DE | |||
en_US | |||
es_CU | |||
Damit sind bereits gültige Locales vorhanden. Im Beispiel „deutsches Deutsch“, amerikanisches Englisch und kubanisches Spanisch. Eine Liste der verfügbaren Locales stellt zum einen die unveränderte Datei {{ic|/etc/locale.gen}} aus dem Paket {{paket|glibc}} dar, ist über die Dateien in {{ic|/usr/share/i18n/locales}} zu finden, aber auch im Netz zum Beispiel über den ''Locale Helper'' (siehe Weblinks) abrufbar. | |||
=== Kodierung === | |||
Neben der eigentlichen Sprach- und Regionsangabe ist die wichtigste Angabe einer Locale die Kodierung. Viele Sprachen benötigen diverse diakritische Zeichen (Umlaut-Punkte im Deutschen, Akut und Gravis im Französischen, Cedille im Türkischen, und dergleichen), die an den Grundbuchstaben angebracht werden (zum Beispiel {{ic|o}} + {{ic|¨}} = {{ic|ö}}, oder {{ic|c}} + {{ic|¸}} = {{ic|ç}}). | |||
Diese Definitionen, sowie generell die Repräsentation eines Zeichens als Bitfolge, wird über die Zeichenkodierung bestimmt. Diese Angabe wird an die Locale durch einen Punkt getrennt angehängt. | |||
de_DE.utf8 | |||
en_US.utf8 | |||
es_CU.utf8 | |||
Heutzutage wird gemeinhin UTF-8 verwendet. UTF-8 ist die am weitesten verbreitete Kodierung für Unicode-Zeichen. Es ist kompatibel mit ASCII (der 128 Zeichen umfassende ASCII-Zeichensatz wird durch die ersten 128 UTF-8-Zeichen abgebildet), kann variabel bis zu vier Byte je Zeichen verwenden und deckt somit den gesamten Unicode-Zeichenbereich ab. | |||
=== Modifikator === | |||
Der Modifikator bestimmt, dass abweichend der durch die Locale bestimmten Eigenschaften andere Eigenschaften gesetzt werden. Dies ist zum Beispiel von Bedeutung, wenn man {{ic|sr_RS}} („Serbisches Serbisch“) verwendet, dessen Eigenschaften dem Kyrillischen folgen. | |||
=== | Mittels des Modifikators {{ic|latin}} wird dieses Verhalten geändert, und es werden die gängigen westlichen Eigenschaften im Bezug auf Sortierung, etc. verwendet. Folgende Beispiele verdeutlichen den Einsatz des Modifikators. | ||
sr_RS.utf8@latin | |||
tt_RU@iqtelif | |||
de_DE.utf8@euro # Sonderfall | |||
Der Sonderfall {{ic|de_DE.utf8@euro}} wird zwar an vielen Stellen erwähnt, ist aber selbstaufhebend. Mittels {{ic|utf8}} wird zwar bestimmt, dass die UTF-8-Kodierung benutzt werden soll, durch den Modifikator {{ic|euro}} wird gemäß Definition die Kodierung auf ISO-8859-15 gestellt, da dort das Eurozeichen explizit vorhanden ist. | |||
Da das Eurozeichen allerdings auch in Unicode ({{ic|U+20AC}}), und damit in UTF-8 vorhanden ist, ist diese Angabe überflüssig und verhindert sogar, den kompletten Unicode-Zeichenvorrat nutzen zu können, da ISO-8859-15 diesen nicht vollständig abdeckt. | |||
== Aktivierung und Verwendung == | |||
Standardmäßig sind keine Locales aktiviert, und das System greift auf vorhandene Systemstandards zurück. Locales werden in {{ic|/etc/locale.gen}} definiert, und mittels {{ic|locale-gen}} generiert. Der Wiki-Artikel [[Arch Linux auf Deutsch stellen]] erklärt anhand des Auf-Deutsch-Stellens eines Systems die praktische Verwendung. | |||
Alle verfügbaren Locales kann man sich mittels {{ic|locale -a}} anzeigen lassen. Alle Angaben dort kann man in entsprechenden Umgebungsvariablen (den ''LC-Variablen'' und {{ic|LANG}}) verwenden, um die Ausgaben der Programme anzupassen. | |||
Entsprechende Definitionen werden sytemweit in {{ic|/etc/locale.conf}} oder accountbezogen {{ic|~/.config/locale.conf}} vorgenommen, und bestehen aus [[Umgebungsvariablen|Exports]] der gewünschten Angaben. | |||
{{hc|1=~/.config/locale.conf|2= | |||
export LC_DATE=de_DE.utf8 | |||
export LC_NUMERIC=de_DE.utf8 | |||
export LC_TIME=de_DE.utf8 | |||
export LANG=de_DE.utf8}} | |||
Hier werden vier Variablen useraccountbezogen gesetzt. | |||
== Siehe auch == | |||
* [[Arch Linux auf Deutsch stellen]] | |||
* [[locale.conf]] | |||
== Weblinks == | |||
* [http://lh.2xlibre.net/locales Der ''Locale Helper''] {{sprache|en}} | |||
* [http://tools.ietf.org/html/bcp47 BCP 47: Tags for Identifying Languages] {{sprache|en}} | |||
* [http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry Sprachdatenbank der IANA] {{sprache|en}} | |||
* [http://www.charbase.com/ Unicode-Zeichen „nach Beliebtheit“] {{sprache|en}} | |||
* [http://www.fileformat.info/info/unicode/block/index.htm Verfügbare Unicode-Blöcke] {{sprache|en}} | |||
[[en:locale]] | |||
[[Kategorie: Konfiguration]] | |||
[[Kategorie: Grundlagen]] |
Aktuelle Version vom 9. Juli 2021, 09:18 Uhr
Locales werden unter Linux benutzt, um die Systemsprache, sowie weitere Eigenschaften festzulegen. Dies beinhaltet Fehlermeldungen, je nach Programm auch Logeinträge, die Benutzerschnittstelle, oder das GUI. Zudem werden auch Formatierungen (Zahlen, Sortier-Rangfolge, Währungsinformationen, Papiergröße, etc.) durch die Locale bestimmt.
Über die Locale wird zudem der verwendete Zeichensatz festgelegt. Dies ist vor allem bei Sprachen, die nicht ausschließlich, oder gar keine, ASCII-Zeichen verwenden zu berücksichtigen.
Aufbau
Locales bestehen aus bis zu vier Elementen.
Sprache[_Region][.Kodierung][@Modifikator]
Einzig die Angabe zur Sprache ist verbindlich. Region, Kodierung, und Modifikator sind optionale Angaben.
Sprache und Region
Die Sprachdefinitionen werden von der IANA verwaltet (siehe Weblinks). Abweichend zur BCP 47 werden Sprachdefinition und Region durch einen Unterstrich, und nicht durch ein Minuszeichen getrennt.
de_DE en_US es_CU
Damit sind bereits gültige Locales vorhanden. Im Beispiel „deutsches Deutsch“, amerikanisches Englisch und kubanisches Spanisch. Eine Liste der verfügbaren Locales stellt zum einen die unveränderte Datei /etc/locale.gen
aus dem Paket glibc dar, ist über die Dateien in /usr/share/i18n/locales
zu finden, aber auch im Netz zum Beispiel über den Locale Helper (siehe Weblinks) abrufbar.
Kodierung
Neben der eigentlichen Sprach- und Regionsangabe ist die wichtigste Angabe einer Locale die Kodierung. Viele Sprachen benötigen diverse diakritische Zeichen (Umlaut-Punkte im Deutschen, Akut und Gravis im Französischen, Cedille im Türkischen, und dergleichen), die an den Grundbuchstaben angebracht werden (zum Beispiel o
+ ¨
= ö
, oder c
+ ¸
= ç
).
Diese Definitionen, sowie generell die Repräsentation eines Zeichens als Bitfolge, wird über die Zeichenkodierung bestimmt. Diese Angabe wird an die Locale durch einen Punkt getrennt angehängt.
de_DE.utf8 en_US.utf8 es_CU.utf8
Heutzutage wird gemeinhin UTF-8 verwendet. UTF-8 ist die am weitesten verbreitete Kodierung für Unicode-Zeichen. Es ist kompatibel mit ASCII (der 128 Zeichen umfassende ASCII-Zeichensatz wird durch die ersten 128 UTF-8-Zeichen abgebildet), kann variabel bis zu vier Byte je Zeichen verwenden und deckt somit den gesamten Unicode-Zeichenbereich ab.
Modifikator
Der Modifikator bestimmt, dass abweichend der durch die Locale bestimmten Eigenschaften andere Eigenschaften gesetzt werden. Dies ist zum Beispiel von Bedeutung, wenn man sr_RS
(„Serbisches Serbisch“) verwendet, dessen Eigenschaften dem Kyrillischen folgen.
Mittels des Modifikators latin
wird dieses Verhalten geändert, und es werden die gängigen westlichen Eigenschaften im Bezug auf Sortierung, etc. verwendet. Folgende Beispiele verdeutlichen den Einsatz des Modifikators.
sr_RS.utf8@latin tt_RU@iqtelif de_DE.utf8@euro # Sonderfall
Der Sonderfall de_DE.utf8@euro
wird zwar an vielen Stellen erwähnt, ist aber selbstaufhebend. Mittels utf8
wird zwar bestimmt, dass die UTF-8-Kodierung benutzt werden soll, durch den Modifikator euro
wird gemäß Definition die Kodierung auf ISO-8859-15 gestellt, da dort das Eurozeichen explizit vorhanden ist.
Da das Eurozeichen allerdings auch in Unicode (U+20AC
), und damit in UTF-8 vorhanden ist, ist diese Angabe überflüssig und verhindert sogar, den kompletten Unicode-Zeichenvorrat nutzen zu können, da ISO-8859-15 diesen nicht vollständig abdeckt.
Aktivierung und Verwendung
Standardmäßig sind keine Locales aktiviert, und das System greift auf vorhandene Systemstandards zurück. Locales werden in /etc/locale.gen
definiert, und mittels locale-gen
generiert. Der Wiki-Artikel Arch Linux auf Deutsch stellen erklärt anhand des Auf-Deutsch-Stellens eines Systems die praktische Verwendung.
Alle verfügbaren Locales kann man sich mittels locale -a
anzeigen lassen. Alle Angaben dort kann man in entsprechenden Umgebungsvariablen (den LC-Variablen und LANG
) verwenden, um die Ausgaben der Programme anzupassen.
Entsprechende Definitionen werden sytemweit in /etc/locale.conf
oder accountbezogen ~/.config/locale.conf
vorgenommen, und bestehen aus Exports der gewünschten Angaben.
~/.config/locale.conf
export LC_DATE=de_DE.utf8 export LC_NUMERIC=de_DE.utf8 export LC_TIME=de_DE.utf8 export LANG=de_DE.utf8
Hier werden vier Variablen useraccountbezogen gesetzt.