LPIC102/107.3 Lokalisierung und internationalisierung: Unterschied zwischen den Versionen

Aus Foxwiki
George (Diskussion | Beiträge)
K Textersetzung - „  “ durch „ “
 
(39 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Datei:Weltzeit.gif|500px|thumb]]
Um ein Betriebssystem in unterschiedlichen Ländern und Sprachen zu verwenden muss man eine ''Zeitzone'' konfigurieren. Eigenschaften wie ''Währung'', ''Datums- und Uhrzeitformat'', ''Telefonnummernformate'' und ''physikalische  Grössen'' (metrisch oder nicht) müssen definiert werden!
Um ein Betriebssystem in unterschiedlichen Ländern und Sprachen zu verwenden muss man eine ''Zeitzone'' konfigurieren, Eigenschaften wie ''Währung'' ''Datums- und Uhrzeitformat'' ''Telefonnummernformate'' ''physikalische  Grössen'' (metrisch oder nicht)definiert werden!
Häufige Fehler sind falsche Zeichensätze, oftmals Zeichen die falsch oder auch gar nicht dargestellt werden!
Häufige Fehler sind falsche Zeichensätze, oftmals Zeichen die falsch oder auch gar nicht dargestellt werden!
Zeitzoneneinstellung, die nachträglich geändert werden müssen kann man z.B. mit dem Programm ''tzselect'' in der Kommandozeile korrigieren.
Zeitzoneneinstellungen die nachträglich geändert werden müssen, kann man z. B. mit dem Programm ''tzselect'' in der Kommandozeile korrigieren.
 
==Wichtung: 3==
Kandidaten sollten in der Lage sein, ein System in einer anderen Sprache  als  Englisch  zu  lokalisieren.  Dazu  gehört  auch  das  Verständnis  dafür,  warum LANG=C in Shell-Skripten nützlich ist.
#konfigurieren der locale-Einstellungen und Umgebungsvariablen
#konfigurieren von Zeitzonen-Einstellungen und Umgebungsvariablen
==Liste wichtiger Dateien, Verzeichnisse und Anwendungen:==
''/etc/timezone''
''/etc/localtime''
''/usr/share/zoneinfo''
''LC_*''
''LC_ALL''
''LANG''
''TZ'
''/usr/bin/locale''
''tzselect''
''timedatectl''
''date''
''iconv''
''UTF-8''
''ISO-8859''
''ASCII''
''Unicode''


==Beispiel:==
==Beispiel:==
Zeile 20: Zeile 41:
  9) Indian Ocean
  9) Indian Ocean
  10) Pacific Ocean
  10) Pacific Ocean
  11)none–Iwanttos
  11)none–I want to specify the time zone using the Posix TZ format.
pecify the time zone using the Posix TZ format.
  #?''
  #?''


Zeile 54: Zeile 74:
  Universal Time is now:  Sat Mar 24 10:56:57 UTC 2018.
  Universal Time is now:  Sat Mar 24 10:56:57 UTC 2018.
  Is the above information OK?
  Is the above information OK?
  1) Yesrotel
  1) Yes
  2) No
  2) No
  #?''
  #?''
Zeile 60: Zeile 80:
''tzselect'' verwendet  für  seine  Anzeige  die  Dateien  im  Verzeichnis ''/usr/share/zoneinfo''.
''tzselect'' verwendet  für  seine  Anzeige  die  Dateien  im  Verzeichnis ''/usr/share/zoneinfo''.
Danach muss die Zeitzone in der Konfigurationsdatei ''/etc/timezone'' festgelegt werden.
Danach muss die Zeitzone in der Konfigurationsdatei ''/etc/timezone'' festgelegt werden.
''root@archangel:/# cat /etc/timezone Europe/Berlin''.
''/# cat /etc/timezone Europe/Berlin''.
Ist der Eintrag nur vorübergehend oder für einen bestimmten Benutzer arbeitet man am besten mit der Variablen ''TZ''    (Timezone)''.profile''-Datei.
Ist der Eintrag nur vorübergehend oder für einen bestimmten Benutzer arbeitet man am besten mit der Variablen ''TZ''    (Timezone)''.profile''-Datei.
Für eine temporäre Änderung der Zeitzone setzen sie einfach die Variable auf der Konsole und exportieren sie.
Für eine temporäre Änderung der Zeitzone setzen sie einfach die Variable auf der Konsole und exportieren sie.
Beispiel für die Marshallinseln:  
Beispiel für die Marshallinseln:  
  ''root@archangel:/# export TZ='Pacific/Majuro' ''.
  ''/# export TZ='Pacific/Majuro' ''.
Bei Überprüfung mit ''date'' und ''date -u'' sieht man folgende Ausgabe, wobei -u für UTC steht:
Bei Überprüfung mit ''date'' und ''date -u'' sieht man folgende Ausgabe, wobei -u für UTC steht:
  ''root@archangel:/# date
  ''/# date
  So 29. Apr 05:02:30 MHT 2018
  So 29. Apr 05:02:30 MHT 2018
  root@archangel:/# date -u
  /# date -u
  Sa 28. Apr 17:02:34 UTC 2018''.
  Sa 28. Apr 17:02:34 UTC 2018''.


==Zeitzonen-Frontends==
==Zeitzonen-Frontends==
rotel
Einige Distributionen verwenden zum Einstellen der Zeitzone das Frontend ''tzconfig'' wobei ähnlich wie bei ''tzselect'' interaktiv nach dem Land gefragt wird, jedoch tatsächlich eine Konfiguration erfolgt.
Einige Distributionen verwenden zum Einstellen der Zeitzone das Frontend ''tzconfig'' wobei ähnlich wie bei ''tzselect''
interaktiv nach dem Land gefragt wird, jedoch tatsächlich eine Konfiguration erfolgt.
Unter Debian, Ubuntu und ähnlichen Betriebssystemen kann auch einfach ''dpkg-reconfigure tzdata'' menügeführt werden!
Unter Debian, Ubuntu und ähnlichen Betriebssystemen kann auch einfach ''dpkg-reconfigure tzdata'' menügeführt werden!
Aktuelle Systeme mit Systemd verfügen zusätzlich über das Tool ''timedatectl'' das für jede Aufgabe mit Systemzeit verwendet werden kann.
Aktuelle Systeme mit Systemd verfügen zusätzlich über das Tool ''timedatectl'' das für jede Aufgabe mit Systemzeit verwendet werden kann.
Zunächst ermittelt man die verfügbaren Zeitzonen:
Zunächst ermittelt man die verfügbaren Zeitzonen:
  ''[root@arch-book /]# timedatectl list-timezones
  ''# timedatectl list-timezones
  Africa/Abidjan
  Africa/Abidjan
  Africa/Accra
  Africa/Accra
Zeile 85: Zeile 103:
  Africa/Asmara''
  Africa/Asmara''
Dann einfach die gewünschte Zeitzone festlegen:
Dann einfach die gewünschte Zeitzone festlegen:
  ''[root@arch-book /]# timedatectl set-timezone Europe/Berlin''
  ''/]# timedatectl set-timezone Europe/Berlin''
Dieses Kommando führ zu einer Neuverlinkung von ''/etc/timezone''.
Dieses Kommando führ zu einer Neuverlinkung von ''/etc/timezone''.


==Umgebungsvariablen für die Lokalisation==
==Umgebungsvariablen für die Lokalisation==


Einige  Anwendungsprogramme  benötigen Informationen  über  regionale  Gegebenheiten wrotelie '' Währung, Papierformate, Datums- und Uhrzeitformat, Telefonnummernformate und physikalische Größen''
Einige  Anwendungsprogramme  benötigen Informationen  über  regionale  Gegebenheiten wie '' Währung, Papierformate, Datums- und Uhrzeitformat, Telefonnummernformate und physikalische Größen''
Parameter hierzu sind in Umgebungsvariablen hinterlegt.
Parameter hierzu sind in Umgebungsvariablen hinterlegt.


==Beispiel:==
=== Beispiel ===
 
Um einen schnellen Überblick zu erhalten, wie die Variablen eines Systems in Bezug auf die Lokalisation gerade gesetzt sind, können Sie das Kommando ''locale'' verwenden.
''LC_CTYPE''
  – Zeichenklassifikationen
 
''LC_COLLATE''
  – Sortierreihenfolgerotel
 
''LC_TIME''
  – Zeit- und Datumsformat
 
''LC_NUMERIC''
  – numerische Formate außerhalb des Finanzsektors
 
''LC_MONETARY''
  – numerische Formate des Finanzsektors


''LC_MESSAGES''
{| class="wikitable sortable"
  – Formate für informative und diagnostische Benachrichtigungen
|-
! Option !! Beschreibung
|-
| LANG=de_DE.UTF-8 ||
|-
| LC_CTYPE="de_DE.UTF-8" || Zeichenklassifikationen
|-
| LC_COLLATE="de_DE.UTF-8" || Sortierreihenfolge
|-
| LC_TIME="de_DE.UTF-8" || Zeit- und Datumsformat
|-
| LC_NUMERIC="de_DE.UTF-8" || numerische Formate außerhalb des Finanzsektors
|-
| LC_MONETARY="de_DE.UTF-8" || numerische Formate des Finanzsektors
|-
| LC_MESSAGES="de_DE.UTF-8" || Formate für informative und diagnostische Benachrichtigungen
|-
| LC_PAPER="de_DE.UTF-8" || Papierformate und Größen
|-
| LC_NAME="de_DE.UTF-8" || Namenformate
|-
| LC_ADDRESS="de_DE.UTF-8" || Adressformate
|-
| LC_TELEPHONE="de_DE.UTF-8" || Formate der Telefonnummern
|-
| LC_MEASUREMENT="de_DE.UTF-8" || Maßeinheiten (metrisch oder andere)
|-
| LC_IDENTIFICATION="de_DE.UTF-8" || Metadaten der Lokalisation
|-
| LC_ALL= ||
|}


''LC_PAPER''
Mit dem Kommando ''locale -a'' können Sie die verfügbaren Lokalisationen anzeigen (gemäß /usr/lib/locale).
  – Papierformate und Größen


  ''LC_NAME''
  ''/# locale -a''
  – Namenformate
''aa_DJ''
''aa_DJ.iso88591''
''aa_DJ.utf8''
''aa_ER''
''aa_ER@saaho''
''aa_ER.utf8''
...
''de_AT.utf8''
''de_BE.utf8''
''de_CH.utf8''
''de_DE.utf8''
''de_LI.utf8''
''de_LU.utf8''
''en_AU.utf8''
''en_BW.utf8''
''en_CA.utf8''
...


  ''LC_ADDRESS''
Um eine Liste der verfügbaren Zeichensätze anzuzeigen, können Sie ''locale'' mit der Option -m verwenden.
  – Adressformate
  ''/# locale -m |head''
 
''ANSI_X3.110-1983''
  ''LC_TELEPHONE''
''ANSI_X3.4-1968''
  – Formate der Telefonnummern
  ''ARMSCII-8''
 
''ASMO_449''
  ''LC_MEASUREMENT''
''BIG5''
  – Maßeinheiten (metrisch oder andere)
  ''BIG5-HKSCS''
 
''BRF''
  ''LC_IDENTIFICATION''
''BS_4730''
  – Metadaten der Lokalisation
  ''BS_VIEWDATA''
 
''CP10007''
  ''LC_ALL=


==Historische Zeichensätze==
==Historische Zeichensätze==
Zeile 143: Zeile 191:
https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange#ASCII-Tabelle
https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange#ASCII-Tabelle


==ISO 8859==
== ISO 8859 ==
 
Bei der ISO 8859 handelt es sich um eine ganze Normenfamilie. Jede Teilnorm der ISO 8859 ist ein 8-Bit-Zeichensatz. Die Gemeinsamkeit all dieser Normen liegt in den ersten  128  Zeichen.
Bei der ISO 8859 handelt es sich um eine ganze Normenfamilie. Jede Teilnorm der ISO 8859 ist ein 8-Bit-Zeichensatz. Die Gemeinsamkeit all dieser Normen liegt in den ersten  128  Zeichen.
Aufstellung werden die Teilnormen aufgeführt:


In der Aufstellung werden die Teilnormen aufgeführt:
#Latin-1, Westeuropäisch
#Latin-1, Westeuropäisch
#Latin-2, Mitteleuropäisch
#Latin-2, Mitteleuropäisch
Zeile 165: Zeile 211:
#Latin-10, Südosteuropäisch
#Latin-10, Südosteuropäisch


==Konvertierung von Zeichensätzen=
== Konvertierung von Zeichensätzen ==
Dateien von einer Zeichenkodierung in eine andere überführt man mit dem Kommandozeilenprogramm ''iconv''


Dateien  von  einer  Zeichenkodierung in  eine  andere  überführt man mit dem  Kommandozeilenprogramm  ''iconv''
{| class="wikitable sortable"
|-
! GNU !! Unix !! Beschreibung
|-
| --from-code ||-f || gibt die aktuelle Zeichenkodierung an
|-
| --to-code || -t || gibt die Zeichenkodierung für die Ausgabe an
|-
| --list || -l || zeigt die dem Programm bekannten Kodierungen an
|-
| --output || -o || gibt die Ausgabedatei an
|}
 
; Beispiel
  $ iconv -f UTF-8 -t ISO-8859-15 Quelldatei -o Zieldatei


#''--from-code,-f'' gibt die aktuelle Zeichenkodierung an.
#''--to-code,-t'' gibt die Zeichenkodierung für die Ausgabe an.
#''--list,-l''  zeigt die dem Programm bekannten Kodierungen an.
#''--output,-o'' gibt die Ausgabedatei an.
#==Beispiel:== ''iconv''
#''# iconv -f UTF-8 -t ISO-8859-15 Quelldatei -o Zieldatei''
==Quellenangaben==
==Quellenangaben==
#''Lpic1 V500 Seite 359 - 371''
#''Lpic1 V500 Seite 359 - 371''
#''Fragen 52 - 60''
#''Fragen 52 - 60''
[[Kategorie:Linux/LPIC/102]]

Aktuelle Version vom 28. Mai 2023, 08:05 Uhr

Um ein Betriebssystem in unterschiedlichen Ländern und Sprachen zu verwenden muss man eine Zeitzone konfigurieren. Eigenschaften wie Währung, Datums- und Uhrzeitformat, Telefonnummernformate und physikalische Grössen (metrisch oder nicht) müssen definiert werden! Häufige Fehler sind falsche Zeichensätze, oftmals Zeichen die falsch oder auch gar nicht dargestellt werden! Zeitzoneneinstellungen die nachträglich geändert werden müssen, kann man z. B. mit dem Programm tzselect in der Kommandozeile korrigieren.

Wichtung: 3

Kandidaten sollten in der Lage sein, ein System in einer anderen Sprache  als  Englisch  zu  lokalisieren.  Dazu  gehört  auch  das  Verständnis  dafür,  warum LANG=C in Shell-Skripten nützlich ist.
  1. konfigurieren der locale-Einstellungen und Umgebungsvariablen
  2. konfigurieren von Zeitzonen-Einstellungen und Umgebungsvariablen

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

/etc/timezone
/etc/localtime
/usr/share/zoneinfo
LC_*
LC_ALL
LANG
TZ'
/usr/bin/locale
tzselect
timedatectl
date
iconv
UTF-8
ISO-8859
ASCII
Unicode

Beispiel:

# tzselect
Please identify a location so that time zone rules can be set
correctly.
Please select a continent or ocean.
1) Africa
2) America
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11)none–I want to specify the time zone using the Posix TZ format.
#?
8

Unser Beispiel zeigt Europa.

Please select a country.
1) Aaland Islands        18) Greece            35) Norway
2) Albania               19) Guernsey          36) Poland
3) Andorra               20) Hungary           37) Portugal
4) Austria               21) Ireland           38) Romania
5) Belarus               22) Isle of Man       39) Russia
6) Belgium               23) Italy             40) San Marino
7) Bosnia & Herzegovina  24) Jersey            41) Serbia
8) Britain (UK)          25) Latvia            42) Slovakia
9) Bulgaria              26) Liechtenstein     43) Slovenia
10) Croatia               27) Lithuania         44) Spain
11) Czech Republic        28) Luxembourg        45) Sweden
12) Denmark               29) Macedonia         46) Switzerland
13) Estonia               30) Malta             47) Turkey
14) Finland               31) Moldova           48) Ukraine
15) France                32) Monaco            49) Vatican City
16) Germany               33) Montenegro
17) Gibraltar             34) Netherlands
#?

Durch Eingabe der 16 wählen wir Deutschland und es erscheint eine abschliessende Abfrage ob alles korrekt ist:

The following information has been given:
Germany
Therefore TZ='Europe/Berlin' will be used.
Local time is now:      Sat Mar 24 11:56:57 CET 2018.
Universal Time is now:  Sat Mar 24 10:56:57 UTC 2018.
Is the above information OK?
1) Yes
2) No
#?

Die Darstellung zeigt die Orts- sowie der UTC Zeit. Erläuterungen zur UTC folgen. Das Programm tzselect verwendet für seine Anzeige die Dateien im Verzeichnis /usr/share/zoneinfo. Danach muss die Zeitzone in der Konfigurationsdatei /etc/timezone festgelegt werden. /# cat /etc/timezone Europe/Berlin. Ist der Eintrag nur vorübergehend oder für einen bestimmten Benutzer arbeitet man am besten mit der Variablen TZ (Timezone).profile-Datei. Für eine temporäre Änderung der Zeitzone setzen sie einfach die Variable auf der Konsole und exportieren sie. Beispiel für die Marshallinseln:

/# export TZ='Pacific/Majuro' .

Bei Überprüfung mit date und date -u sieht man folgende Ausgabe, wobei -u für UTC steht:

/# date
So 29. Apr 05:02:30 MHT 2018
/# date -u
Sa 28. Apr 17:02:34 UTC 2018.

Zeitzonen-Frontends

Einige Distributionen verwenden zum Einstellen der Zeitzone das Frontend tzconfig wobei ähnlich wie bei tzselect interaktiv nach dem Land gefragt wird, jedoch tatsächlich eine Konfiguration erfolgt. Unter Debian, Ubuntu und ähnlichen Betriebssystemen kann auch einfach dpkg-reconfigure tzdata menügeführt werden! Aktuelle Systeme mit Systemd verfügen zusätzlich über das Tool timedatectl das für jede Aufgabe mit Systemzeit verwendet werden kann. Zunächst ermittelt man die verfügbaren Zeitzonen:

# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

Dann einfach die gewünschte Zeitzone festlegen:

/]# timedatectl set-timezone Europe/Berlin

Dieses Kommando führ zu einer Neuverlinkung von /etc/timezone.

Umgebungsvariablen für die Lokalisation

Einige Anwendungsprogramme benötigen Informationen über regionale Gegebenheiten wie Währung, Papierformate, Datums- und Uhrzeitformat, Telefonnummernformate und physikalische Größen Parameter hierzu sind in Umgebungsvariablen hinterlegt.

Beispiel

Um einen schnellen Überblick zu erhalten, wie die Variablen eines Systems in Bezug auf die Lokalisation gerade gesetzt sind, können Sie das Kommando locale verwenden.

Option Beschreibung
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8" Zeichenklassifikationen
LC_COLLATE="de_DE.UTF-8" Sortierreihenfolge
LC_TIME="de_DE.UTF-8" Zeit- und Datumsformat
LC_NUMERIC="de_DE.UTF-8" numerische Formate außerhalb des Finanzsektors
LC_MONETARY="de_DE.UTF-8" numerische Formate des Finanzsektors
LC_MESSAGES="de_DE.UTF-8" Formate für informative und diagnostische Benachrichtigungen
LC_PAPER="de_DE.UTF-8" Papierformate und Größen
LC_NAME="de_DE.UTF-8" Namenformate
LC_ADDRESS="de_DE.UTF-8" Adressformate
LC_TELEPHONE="de_DE.UTF-8" Formate der Telefonnummern
LC_MEASUREMENT="de_DE.UTF-8" Maßeinheiten (metrisch oder andere)
LC_IDENTIFICATION="de_DE.UTF-8" Metadaten der Lokalisation
LC_ALL=

Mit dem Kommando locale -a können Sie die verfügbaren Lokalisationen anzeigen (gemäß /usr/lib/locale).

/# locale -a
aa_DJ
aa_DJ.iso88591
aa_DJ.utf8
aa_ER
aa_ER@saaho
aa_ER.utf8
...
de_AT.utf8
de_BE.utf8
de_CH.utf8
de_DE.utf8
de_LI.utf8
de_LU.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
...

Um eine Liste der verfügbaren Zeichensätze anzuzeigen, können Sie locale mit der Option -m verwenden.

/# locale -m |head
ANSI_X3.110-1983
ANSI_X3.4-1968
ARMSCII-8
ASMO_449
BIG5
BIG5-HKSCS
BRF
BS_4730
BS_VIEWDATA
CP10007

Historische Zeichensätze

Um Zeichen elektonisch zu übertragen, müssen diese entsprechend umgewandelt werden. Dies geht auf Samuel Morse zurück und entwickelte sich zum ASCII Standart.

ASCII – American Standard Code for Information Interchange

Die Zeichenkodierung ASCII umfasst 128 Zeichen (denn 27 = 128), die sich in der ASCII-Tabelle wiederfinden.

https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange#ASCII-Tabelle

ISO 8859

Bei der ISO 8859 handelt es sich um eine ganze Normenfamilie. Jede Teilnorm der ISO 8859 ist ein 8-Bit-Zeichensatz. Die Gemeinsamkeit all dieser Normen liegt in den ersten 128 Zeichen.

In der Aufstellung werden die Teilnormen aufgeführt:

  1. Latin-1, Westeuropäisch
  2. Latin-2, Mitteleuropäisch
  3. Latin-3, Südeuropäisch
  4. Latin-4, Baltisch
  5. Kyrillisch
  6. Arabisch
  7. Griechisch
  8. Hebräisch
  9. Latin-5, Türkisch
  10. Latin-6, Nordisch
  11. Thai
  12. Latin-7, Baltisch
  13. Latin-8, Keltisch
  14. Latin-9, Westeuropäisch
  15. Latin-10, Südosteuropäisch

Konvertierung von Zeichensätzen

Dateien von einer Zeichenkodierung in eine andere überführt man mit dem Kommandozeilenprogramm iconv

GNU Unix Beschreibung
--from-code -f gibt die aktuelle Zeichenkodierung an
--to-code -t gibt die Zeichenkodierung für die Ausgabe an
--list -l zeigt die dem Programm bekannten Kodierungen an
--output -o gibt die Ausgabedatei an
Beispiel
$ iconv -f UTF-8 -t ISO-8859-15 Quelldatei -o Zieldatei

Quellenangaben

  1. Lpic1 V500 Seite 359 - 371
  2. Fragen 52 - 60