The Linux German Howto explains how to enable German specific features for Linux applications as well as for the Linux system. But what is German specific? If you have been to the worlds largest computer exhibition CeBIT in Hannover, you may consider traditional leather costumes, white sausages, (real!) beer and perfectely ironed underwear to be typical for germany. Please beg my pardon that I can't comment on the underwear part or else this Howto would at least get a R-rating, which would trigger questions about distribution restrictions and their impacts for free software and OpenSource and OpenDocumentation and so on. In the end we will surely have an OpenRating as well. Pure horror.
Regarding the other three points about germany mentioned above, these are correct as you may already have figured out yourself. Believe me, I'm just wearing such a traditional costume while typing the text in front of his computer. Everybody does all the time. Even my computer wears a leather costume, or else it would not be germany! Built into the leather case is a sound microprocessor to turn the simple PC-beep into an original south german yodel. Can you already see the alp mountains?
So what else is german specific? Maybe your friendly stewardess told you the waiter at a restaurant "is not offensive but doing regular service to you" before your plane arrived at the german airport. Cultures clashing into each other. Of course the waiter is doing his best, but at least the americans are not willing to understand. Example: In my home town the waiters are employed to serve the beer. This is a fundamental different concept than just aiming at bloody customer satisfaction. It counts that the beer can flow down your throat in a fresh state. The beer must be satisfied. Think of it as a religious believe. Next time the american president secretly visits me, I will explain and show him all the details. Promised.
Also quite typical for German are long words and long sentences. Example: The German translation of Howto is Sowirdsgemacht. More than double as long. My words are longer than yours. Ha! We can even go for extremes like in Dampfschifffahrtspensionskassenchefsekretärinnenhalbjahresbetriebsausflugsbudget. The typsetter will surely hate me for using such a long word. D78g, now all-together: Nyia-hahaha. As you can imagine, most applications will die because of string buffer overflows when german users start to type in their unusal long words. That is what the German Howto is about.
Not to forget our German speaking friends at the south: Austria and Switzerland. Read this Howto and learn how to manage your secret swiss bank account from within Linux. Making money fast is twice as much fun then.
Well, before I completely destroy the image of over-serious germans, lets come to the point. Linux is developed by a world wide community of hackers on the internet. Their least common denominator for communication is English and that works quite acceptable. The situation for users is different. In order to do their work, they have to use the native language and the specifics of their country. Examples: characters, time zones and numbering conventions. Luckily Linux is so widespread, that national markets have already become a target for Linux distributions. In other words, most adaptions are already built in. In this context the KDE project should be mentioned, as it surely has set milestones for the amount, ease and completeness of internationalization in applications. The German Howto honors this evolution by concentrating on basic knowledge instead of endless parameter listings.
The English part of the Howto is much shorter than the German one. It is only inteded as an overview of the situation.
© Winfried Trümper <firstname.lastname@example.org> 1994-2001. All rights reserved.
Distribution and use of this document are allowed under the following restrictions: The name of the author must not be used to endorse or promote products based on the German Howto and modified versions must be clearly identified as such.
Text, illustrations and programs in this Howto were crafted carefully. Nevertheless the chance of an error is always there. Because of the complexity and the frequent changes of computer systems, the author disclaims all warranties with regard to this document, including all implied warranties of merchantability and fitness for a certain purpose; in no event shall the author be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use of this document.
Short: use this Howto at your own risk.
Linux Howtos fill the gap between books and short readme files. They explain one subject in a detailed fashion. To fullfill this goal, the Linux Documentation Project (LDP) has created a infrastructure consisting of authors, tools and distribution channels. The Linux German Howto is part of the LDP and thus available like all other Howtos. Either on the LDP homepage or under the directory /usr/share/doc/howto/ on a typical Linux installation. Printed collections of Howtos published by various companies are available at your local bookstore.
The latest version of this document can be downloaded from my homepage.
Corrections and suggestions should be sent via email to my address email@example.com. Paid contracts for product placements in the introduction are also welcome.
This is a small list of Linux portals, which are maintained and updated frequently:
A large number of local Linux User Groups exists in Austria, Germany and Switzerland. You can find them in the directories of most German Linux Portals. Country wide associations are the Linux-Verband, which aims more at commercial members, and the German Unix User Group (GUUG), which aims at system administrators. Three large conventions are held each year, the LinuxTag (LinuxDay), the Linux-Kongress and the LinuxWorld Expo. Local events are usally organised by the Linux User Groups and can be found in the calendars. The newsgroup hierarchy de.comp.os.unix.linux.* is a quite busy part of the german usenet. The same is true for the IRC channels #debian.de and #linuxger.
The traditional character sets for central europe are ISO-8859-1 and ISO-8859-15 (including the euro symbol). Please see the german part of this Howto for an excerpt of ISO-8859-15. Unicode covers both sets, but only few users have applications with full support for unicode. That may change in the future.
Conversions of the character sets have also be done when exchanging texts between Unix/Linux, Macintoshs and DOS/Windows systems. It is not enough to just convert the line endings. This is also true for printing; most printers expect the DOS-style text format. (When printing from word processors and such, high quality binary bitmaps are sent to the printer, which are not affected by character set and line ending problems.)
Quite annoying is the fact that y and z are exchanged compared to an english keyboard. Not to speak of the special characters like the slash. Now imagine you want to type yes and it always gives zes. Or you want to type /dev/sda and it gives ?dev?sda. Short: a keyboard mapping is required in europe. Every european country has its own keyboard layout. The right mapping can be choosen at installation time for all modern Linux distributions. Suitable for germany and austria is de-latin1-nodeadkeys, whereas the swiss people need sf-latin1 (swiss-french) or sg-latin1 (swiss-german).
Please keep in mind that the loadkeys command only helps for a properly started system. To have the correct mapping even for the Lilo boot prompt, you have to create a key mapping with keytab-lilo.pl and configure Lilo to use that mapping.
The character set ISO-8859-1 shares the first 128 characters with US-ASCII and defines another 128 characters on top of it. To type in all these characters on the keyboard, it would be necassary to map up to four symbols per key. For cases where you access the complete set only occasionally,such a mapping would be a too high learning effort. One solution is the use of the compose key. After pressing the compose key, which is usally mapped to the right control key, the next character is not displayed but instead printed over the following character. Example: the sequence Right-Ctrl A is composed as the character Ã (capital a with a tilde on top).
An alternative is the feature of always composing keys. Under such mappings, characters like are never displayed but always printed over the following character. Usally this feature is refered to as dead keys, which is a little bit misleading. I'm not aware of anybody using the dead keys feature.
On january 1st 2002, the last step of the currency union in europe was performed. Since then the currency is euro and its fraction is cent. Although there is a special currency symbol in ISO-8859-15 and in unicode, you can safely use the ISO currency code EUR for euro as you used ATS for austrian schillings or DEM for deutsche marks before. Please note that switzerland (CHF, swiss francs) is not part of the european union.
There is nothing special about XFree86 for German users. Howevery, several hardware manufactures asked me for the correct setting, which is why I'm citing them here.
# for XFree86 4.1.* only: Section "InputDevice" Driver "Keyboard" Identifier "Keyboard" Option "Protocol" "Standard" Option "XkbLayout" "de" Option "XkbModel" "pc104" Option "XkbRules" "xfree86" Option "XkbVariant" "nodeadkeys" EndSection # for XFree86 3.* only: Section "Keyboard" Protocol "Standard" XkbRules "xfree86" XkbKeycodes "xfree86" XkbModel "pc104" XkbLayout "de" XkbVariant "nodeadkeys" EndSection
The time zones for central europe are CET (Central European Time) and CEST (Central European Summer Time) respectively. However, system administrators are expected to use one of the aliases Europe/Berlin, Europe/Vienna or Europe/Zurich. This gives correct results even before the Unix Epoch.
Internationalization and lokalization are unusal long words (but not as long as D78g, see above) and thus abreviated by i18n and i10n. The numbers indicate how many characters have been left out.
I18n denotes the changes to the program code in order to have a multi lingual output. A common implementation is to seperate the messages from the code. This way several translated texts share the same code base. German messages are activated with the LANG environment variable. Examples:
#LANG=de_AT # for austria #LANG=de_CH # for switzerland (German) LANG=de_DE # for germany export LANG
The result is not always satisfying, because not all applications and libraries are internationalized. It may happen that German and English messages are mixed like in the following example, which also illustrates the evolution of the problem:
# in 1997: tar: Kann Archiv 'foo.tgz' nicht öffnen: Permission denied # in 2001: tar: foo.tgz: Cannot open: Keine Berechtigung
German messages alone don't make much sense. Applications must also display the data using the correct format. Example: 08.07.2001 instead of 07.08.2001 or EUR 10.000,32 instead of EUR 10,000.32. You get the idea. The required changes to the programm are denoted as i10n. Today the LANG variable also activates the associated locale.
The standard paper size in europe is DIN A4, which is a little bit smaller and taller than US-letter. The aspect ratio of height vs. width is the square root of two. All sizes are derived from A0 by a centered cut at the longer side.