In diesem ?HowTo soll beschrieben werden, wie man eine englischsprachige Debian Installation in eine deutschsprachige umwandeln kann.
Dazu müssen die folgenden Komponenten betrachtet werden:
- KDM/GDM Loginprompt
- Menus und Programme aus dem gestarteten Window-Manager heraus
- Programme/Manpages nach Konsolenlogin
- Programme/Manpages aus xterm gestartet
Kürzester Weg
Ausgangslage: komplette nur-englische Debianinstallation. (!!Warnung!! Noch unfertig, bitte ergänzen und vereinfachen)
apt-get install task-german
Möchte man das gesamte System auf Deutsch umstellen:
dpkg-reconfigure locales
Hier lässt sich de_DE.UTF-8 wählen.
Als Benutzer kann man sich die verfügbaren Sprachen des Systems mit locale -a anzeigen lassen. Mehr Informationen im Debian Handbuch:
Für Entwickler: apt-get install manpages-de-dev
Editiere /etc/environment:
LANG=de_DE export LANG LANGUAGE=de_DE export LANGUAGE LC_ALL=de_DE export LC_ALL
Ergänze diese Zeile in /etc/profile:
... source /etc/environment ...
Ebenso in /etc/X11/Xsession: {{{ ...
- source /etc/environment
}}}
PROGNAME=Xsession ...
Für kdm: X11-Login als root, kcontrol starten, ganz unten den kdm auf deutsch umstellen.
Und wieder zurück
Leider trifft man immer mal wieder eine übertriebene oder einfach veraltete Übersetzungen einer manpage. Da hilft (bash):
LANGUAGE=en man foobar
Probleme
Hilft alles nichts, so ist möglicherweise das Packet localepurge installiert. Dieses löscht recht radikal alle Übersetzungen um ca. 20M Festplattenplatz zu sparen, wenn es nicht/falsch konfiguriert wurde. Apt-get remove localepurge reicht nicht aus, weil auch die Übersetzungsdateien wieder installiert werden müssen. Unbedingt die Dokumentation in /usr/share/doc/localepurge lesen!
Details über die einzelnen Mitspielern folgen:
Pakete
task-german
Depends: user-de, manpages-de, wngerman || wgerman, ingerman || igerman, doc-linux-de, trans-de-en, ding
user-de
Description: Settings for German speaking users
Das Packet enthält /etc/language-de mit Umgebungsvariabeln, die aber nach der Installation noch nirgends benutzt werden (glaube ich). In /usr/share/doc/user-de/README liest man nach wie man es einrichten soll.
localeconf
Fragt bei der Installation, ob es /etc/environment und /etc/locale.gen verwalten soll. Fragt nach der "default locale" und wird darauf die LANG-Variable im /etc/environment setzen.
Sonstige
openoffice.org-l10n-de - German language package for OpenOffice.org
- openoffice.org-help-de
- kde-i18n-de - German (de) internationalized (i18n) files for KDE
locales - GNU C Library: National Language (locale) data ?support
- iceweasel-l10n-de
- mozilla-locale-de-at (...-at ist aus historischen Gründen)
Umgebungsvariabeln
Werden an verschiedenen Orten gesetzt. Aber welche sind nötig und welche nicht?
- LANG: scheint wichtig zu sein; Diese Variable bestimmt die locale Kategorie für jede Kategorie, die nicht mittels einer Variable beginnend mit `LC_' ausgewählt wurde ("grob" übersetzt aus 'man zshparam')
- LANGUAGE: ebenfalls (zumindest bei Manpages; Unterschied?)
- LC_ALL: vermutlich default für alle LC_ die jetzt folgen
- LC_COLLATE: text sorting and comparison functions
- LC_CTYPE: character classification and handling
- LC_MESSAGES: language of displayed messages
- LC_MONETARY: formatting of monetary values
- LC_NUMERIC: formatting of non-monetary numeric data
- LC_TIME: formatting of time-of-day display
- CHARSET: ???
LC_ALL=de_DE
- de_DE : Deutschland
- de_CH : deutssprachige Schweiz
- de_CH.UTF-8 : [UTF-8] noch dazu.
- Vollständige Liste: /usr/share/i18n/SUPPORTED
Files
/etc/environment
Kann von teilweise von debconf (dpkg-reconfigure localeconf) verwaltet werden. Wann wird es von wem gelesen? Wird beim Booten von /etc/init.d/console-screen.sh gelesen, und je nach Eintrag sollte die Konsole in einen „Unicode-fähigen“ Zustand versetzt werden oder auch nicht. console-screen.sh ist Teil des Pakets console-tools. Export-Befehle scheinen nicht nötig (aber evtl. doch sinnvoll?) zu sein.
/etc/profile
Wird von der shell (bash, etc.) gelesen. Ein export-Befehl für jede gesetzte Variable scheint nötig zu sein.
/etc/language-de
Wird per default nicht gelesen. Siehe oben beim Packet user-de.
/etc/locale.gen
Kann teilweise von depconf (dpkg-reconfigure localeconf) verwaltet werden. Ich glaube nicht, dass man dort von Hand rumfingern muss.
Graphisches Login
Ein beliebtes Problem ist, dass der vom Loginmanager gestartete Windowmanager die Umgebungsvariablen nicht gesetzt hat. Daher kommen aus dem Menu gestartete Programme auf englisch, aus dem xterm heraus aber deutsch. Keine Idee wo man da suche sollte... bereits vor dem Start des Loginmanagers oder beim Loginmanager selber?
Ein zweites Thema ist die Begrüßungssprache des Loginmanagers.
kdm
Als root kann man im KDE-Kontrollzentrum die Sprache der Begrüßung ändern. (Das ist nicht der Sinn der Sache, gibt es eine Möglichkeit dass sich das Ding an die globalen Einstellungen hält? Wenn ja an welche?)
gdm
...
UTF-8
Warnung: Diese Informationen sind veraltet. Seit Debian Etch wird UTF-8 standardmäßig verwendet werden und sollte keine Probleme bereiten.
Sollte möglichst global umgestellt werden oder dann gar nicht. Leider müssen sehr viele Dinge mitspielen, und es ist je nach Programm Ärger zu erwarten. Theorie: man stellt es an EINEM Ort um. Praxis: man bringt es den vielen Programmen einzeln bei, falls sie es überhaupt beherrschen.
CHARSET=ISO-8859-1 (umgebungsvariable; wozu? unbedingt nötig?)
xchat
Wurde noch nicht global auf UTF-8 umgestellt kann man in der Serverliste für jeden Server selektiv umstellen.
less
Evtl. Umgebungsvariable LESSCHARSET=utf-8 (z.Z. nur in der englischen manpage erwähnt)
emacs
Wie kann man ein UTF-8 file dort betrachten (wenn nicht global umgestellt wurde)? C-x RET c utf-8 RET C-x C-f bewirkt keinen Unterschied... oder existiert ein simples externes Kommando zur Konvertierung solcher Dateien?
siehe auch