Locale: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
K →‎Aktivierung und Verwendung: en_DK auch hier raus
 
(29 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Hier wird Schritt für Schritt beschrieben wie man seine Locales erzeugt und setzt.
''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.


Zuerst muss man die Datei /etc/locale.gen seinen Bedürfnissen anpassen.  
Ü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.
Also als root folgendes ausführen:


#nano -w /etc/locale.gen
== Aufbau ==
Locales bestehen aus bis zu vier Elementen.


Dort sollte man die Locales auskommentieren, welche benötigt werden.
Sprache[_Region][.Kodierung][@Modifikator]
Für deutsche Locales z.B. diese:


de_AT.UTF-8 UTF-8
Einzig die Angabe zur Sprache ist verbindlich. Region, Kodierung, und Modifikator sind optionale Angaben.
de_AT ISO-8859-1
de_AT@euro ISO-8859-15
de_BE.UTF-8 UTF-8
de_BE ISO-8859-1
de_BE@euro ISO-8859-15
de_CH.UTF-8 UTF-8
de_CH ISO-8859-1
de_DE.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15
de_LU.UTF-8 UTF-8
de_LU ISO-8859-1
de_LU@euro ISO-8859-15


Wenn die gewünschten Locales auskommentiert sind die Datei speichern und als root
=== 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.


  #locale-gen
  de_DE
en_US
es_CU


ausführen. Dann sollte man im Terminal sehen welche Locales gerade erstellt werden.
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.


Jetzt muss nur noch in der /etc/rc.conf das richtige Locale gesetzt werden.
=== Kodierung ===
Wieder als root
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|ç}}).


#nano -w /etc/rc.conf
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.


ausführen und in der Datei die Variable
de_DE.utf8
en_US.utf8
es_CU.utf8


LOCALE=
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.


auf die gewünschte Locale einstellen.
=== 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.


Zum Beispiel so:
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.


  LOCALE=de_AT.utf8
  sr_RS.utf8@latin
tt_RU@iqtelif
de_DE.utf8@euro  # Sonderfall


Das würde eine österreichische UTF-8 Locale setzen.
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.


Natürlich muss die dort gesetzte Locale auch vorhin in /etc/locale.gen auskommentiert und mit #locale-gen erzeugt worden sein.
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.


--[[User:N-phobos|Kropa]] 10:09, 29 May 2006 (EDT)
== 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.

Siehe auch

Weblinks