下一页 上一页 目录

1. 德语部分

1.1 导言

“Howto”这个名称是 “how to” 的组合,您可以将其翻译为“我该如何做……”。Linux German Howto 描述了如何在 Linux 系统中启用德语特性。它的发音是“Dschörman Hautu”。在下文中,我更倾向于使用“Linux 德语指南”这个名称。“Sowirdsgemacht”可以理解为“指南”的意思。这样我就很酷了。

那么,德语的特性到底是什么呢?皮裤、白香肠、啤酒和熨烫过的内衣,就像在 CeBIT 啤酒节上向每位外国游客展示的那样?嗯,这些更像是对自身进行的调整。但请不要害怕,感谢美国的影响,Linux 也可以穿着牛仔裤,吃着披萨,喝着非洲可乐轻松操作(对于外地人:非洲可乐在科隆酿造)。关于熨烫过的内衣这个话题,在美国的影响下,我无法在此处深入探讨。因为虽然这里已经很晚了,但在那里孩子们还醒着。至少指南项目负责人是这么说的。但玩笑就到此为止,否则我们就离不友好的德国人的刻板印象太远了。

Linux 由互联网上一个全球性的黑客社区开发,他们共同的沟通语言是英语。然而,用户通常需要使用母语和民族特性进行工作:例如字符、时区或数字格式。令人欣慰的是,Linux 已经得到了广泛的普及,以至于国内市场早已成为 Linux 发行版的目标。这意味着应用程序和系统的区域调整在很大程度上已融入 Linux 中。在这方面,我想提及 KDE 项目,该项目在国际化方面,在语言数量和调整的完整性方面都树立了很高的标准。德语指南也考虑到了这一发展,因此从现在开始,重点更多地放在基础知识的描述上。

版权、许可和免责声明

© Winfried Trümper <me@wt.xpilot.org> 1994-2001。保留所有权利。

在以下条件下允许分发和使用本文档:不得使用作者的姓名来推销基于本文档的产品,并且本文档的修改版本必须明确标识为修改版本。

本文档中的文本、插图和程序都经过精心编写。尽管如此,错误仍然无法完全排除。鉴于当今计算机系统的复杂性和快速变化,作者既不能保证所提供信息的正确性,也不能保证其适用性。简而言之:使用风险自负。

可用性

Linux 指南描述填补了书籍和简短的自述文件之间的空白。它们旨在详细解释一个主题。为此目的,Linux 文档项目 (LDP) 创建了一个由作者、写作工具和分发渠道组成的庞大基础设施。本指南是 (LDP) 的正式组成部分,因此可以像 LPD 的所有其他文档一样获得。可以在 其网站上或在您自己的硬盘上的 /usr/share/doc/howto/ 目录中找到。此外,还可以通过书店获得各种出版社的印刷合集。

最新版本的德语指南也可以通过我的 个人主页获得。

更正和改进建议可以通过电子邮件发送给我:me@wt.xpilot.org。我也接受在导言中添加更多软性广告的提议。

未解决的问题

1.2 人员

用户组

在许多城市,Linux 用户组成了所谓的 Linux 用户组 (LUG)。这些用户组向所有人开放,并定期举行会议。对于那些不仅想在“网络空间”中与其他 Linux 用户交流的人来说,它们是理想的聚会场所。例如,在 德国 Linux 门户网站上可以找到概述。

专为女性

嗯,到目前为止我只找到了 KDE 女性。还有更多吗?

协会

除了本地 LUG 之外,还有以下协会

Linux 协会主要面向公司会员。其活动引人注目,目前主要集中在宣传软件专利的危害。

德国 Unix 用户组在经过多年的重新定位后,目前再次以 Unix 系统管理员为目标。

大会

目前,德国有三个大型的跨区域 Linux 活动:LinuxTagLinux-KongressLinuxWorld Expo。此外,还有许多本地活动,可以在门户网站的日历中找到。

论坛

德语用户的首选联络点是“新闻组”de.comp.os.unix.linux.infos。那里汇集了关于 Linux 的更多信息以及关于相关“新闻组”使用的信息。一个好主意是使用基于网络的存档,您可以在其中找到大量关于关键词的答案:Google 搜索:de.comp.os.linux.*德国 Linux 讨论组常见问题解答

Internet Relay Chat (IRC)

IRC 频道 #LinuxGER 提供德语 Linux 热线。通过 其自己的网站,您可以了解更多关于 IRC 世界的信息。

1.3 文档

德语 Linux 门户网站

以下是一些存在时间较长且定期维护的网站的精选

奥地利的 Linux

瑞士的 Linux

Linux.de

Pro Linux

德国 Linux Howto 项目 (DLHP)

德国 Linux Howto 项目 (DLHP) 致力于将原始的英文 Linux 指南翻译成德语。在该项目的网站上,您可以找到所有已翻译指南的列表以及有关该项目的更多信息。

1.4 字符集

计算机是基于数字工作的设备。人是与数字和名称一起工作的生物。如果将一个人放在计算机前,并将计算机作为通用设备出售给这个人,那么计算机除了数字外,还必须能够处理名称。这是通过一种技巧来实现的:字母表被编号,即字母被分配了数字,计算机又可以处理这些数字。例如:字母 A 的编号是 65。这种分配称为字符表或字符集。除了字母外,它还列出了符号和特殊字符。字符集是一个纯粹的逻辑定义;只有字体决定了字符集在屏幕上的显示。

为了使文档可以在计算机之间交换,必须对使用的字符集进行标准化。早期的标准是 US-ASCII,这是一个非常小的、由 127 个字符组成的分配,其中每个字符精确占用 7 位存储空间。字符集 ISO-8859-1 每个字符需要多一位,使用它可以表示大多数中欧语言。但是,这两个字符集都以拉丁字母为基础,因此对于欧洲或美洲以外的用户来说,用途有限。因此,在世界各个地区出现了字符集,由于具有相同编号的不同字符,这些字符集彼此不兼容。

表 1:字符集 ISO-8859-1 的节选

"  quotedbl     '  apostrophe   `  grave        ~  asciitilde
^  asciicircum  _  underscore   !  exclam       ?  question
#  numbersign   $  dollar       %  percent      &  ampersand
|  bar          @  at           +  plus         -  minus
*  asterisk     /  slash        \  backslash    .  period
,  comma        :  colon        ;  semicolon    <  less
=  equal        >  greater      (  parenleft    )  parenright
[  bracketleft  ]  bracketright {  braceleft    }  braceright

�  exclamdown   �  cent         �  sterling     �  currency
�  yen          �  brokenbar    �  section      "  diaeresis
�  copyright    �  ordfeminine  <  guillemotleft
�  notsign      �  hyphen       �  registered
�  macron       �  degree       �  plusminus    �  twosuperior
�  threesuperior                �  acute        µ  mu
�  paragraph    �  periodcentered               �  cedilla
�  onesuperior  �  masculine    >  guillemotright
�  onequarter   �  onehalf      �  threequarters
�  questiondown À  Agrave       Á  Aacute       Â  Acircumflex
à  Atilde       ä  Adiaeresis   �  Aring        Æ  AE
Ç  Ccedilla     È  Egrave       É  Eacute       Ê  Ecircumflex
Ë  Ediaeresis   Ì  Igrave       Í  Iacute       Î  Icircumflex
Ï  Idiaeresis   Ð  ETH          Ñ  Ntilde       Ò  Ograve
Ó  Oacute       Ô  Ocircumflex  Õ  Otilde       ö  Odiaeresis
�  multiply     Ø  Ooblique     Ù  Ugrave       Ú  Uacute
Û  Ucircumflex  ü  Udiaeresis   Ý  Yacute       Þ  THORN
ß  ssharp       à  agrave       á  aacute       â  acircumflex
ã  atilde       ä  adiaeresis   å  aring        æ  ae
ç  ccedilla     è  egrave       é  eacute       ê  ecircumflex
ë  ediaeresis   ì  igrave       í  iacute       î  icircumflex
ï  idiaeresis   ð  eth          ñ  ntild        ò  ograve
ó  oacute       ô  ocircumflex  õ  otilde       ö  odiaeresis
�  division     ø  oslash       ù  ugrave       ú  uacute
û  ucircumflex  ü  udiaeresis   ý  yacute       þ  thorn
ÿ  ydiaeresis

目前的解决方案是国际 Unicode 字符集(与 ISO-10646 相同)。Unicode 代表 unique code(唯一代码),表示当前在一个单独的分配表中超过 90,000 个已定义字符的唯一编号。标准化过程正在顺利进行,但尚未完成。估计认为,永远不会定义超过约 210 万个(21 位)字符。为了保留足够的余量,Unicode 表格设计为每个字符 32 位,这足以对超过 40 亿个字符进行编号。因此,Unicode 打破了一个常见的假设:每个字符 8 位(一个字节)。这四个字节看起来尺寸过大,并引发了关于存储消耗的问题:使用我们的中欧字符集 ISO-8859-1,每个字符占用存储介质(RAM、CD-ROM、硬盘)上的八位。如果不采取特殊措施,在 Unicode 中,相同的字符将占用 32 位,这意味着所有存储介质必须扩大四倍才能使用 Unicode。这似乎是不可行的,因此为了更有效地存储,引入了各种 Unicode 位转换 (UTF):UTF-8、UTF-16 和 UTF-32。后一种转换没有任何改变,因此也没有节省任何空间,因此以浪费的方式为每个字符在存储器中恒定地占用 32 位。前一种转换 (UTF-8) 占用八到 48 位之间,具体取决于字符在表中的位置。常用字符 (US-ASCII) 位于表的前面,仅占用八位,德语变音符号更靠近中间,占用 16 位。UTF-8 的一个小缺点是数据转换的计算密集性。UTF-16 转换的存储空间消耗介于 UTF-32 和 UTF-8 的计算时间消耗之间。

有关 Unicode 的更多信息可以直接在 Unicode 联盟UTF-8 和 Unicode FAQ for Unix/Linux (英文) 中找到。

欧元符号

欧元的 ISO 货币代码是 EUR,正如人们从银行的汇款单中已经知道的那样。对于 10 欧元 23 分,EUR 10.23 的书写方式与使用特殊的货币符号 €(带有附加横线的 E)具有同等地位。如果欧元符号看起来更像机械闹钟,那么您仍然在使用旧的字体。在这种情况下,您应该更新您的 Linux 发行版,因为更换所有可能的字体远远超出了本指南的可能性。(字体一直是 Linux 下的一个问题,欧元符号只是证实了这一点。)鉴于更可靠的 ISO 代码 EUR,更新是否值得,您必须自行决定。

欧元符号由字符集 ISO-8859-15 定义。它在表格中位于英镑和日元之间的其他货币符号旁边。您可以使用 AltGr-E 键入它,就像打印的那样。组合键 AltGr-C 给出著名的美分符号。

1.5 键盘

作者已知的所有发行版都会在安装时自动设置德语键盘布局。如果您对结果不满意,可以使用命令行工具 loadkeys(文本控制台)和 xmodmap (X11) 设置其他布局。工具的更详细描述超出了本文档的范围。

借此机会,应该对键盘布局的概念进行一些阐释,以便将来在 Unix/Linux 中减少键盘布局问题。按下某个键会发送一个键码。不同的键盘给出不同的键码。类似于上面描述的字符集,键盘也使用分配表,这些分配表将符号分配给键码。分配表称为键盘布局。键盘布局在某些情况下不直接定义要输出的字符,而是通过符号名称进行中间步骤。例如:在 X11 下,一个键发送键码 22。键盘布局为此键码(术语“keycode”)定义了符号 BackSpace,这意味着 PC 键盘上的键用于删除左侧的字符。X11 应用程序直接响应此按键符号。对于在文本对话框窗口 (xterm, ssh) 中运行的应用程序,该符号又被转换为控制序列,例如 Control-? 或 Escape-[3 。

组合键

常用的键盘大约有 110 个键。为了能够使用它们输入完整的字符集 ISO-8859-1,必须用最多四个字符标记这些键。如果您只需要偶尔访问完整的字符集,那么四重标记的学习成本太高。在这种情况下,组合键很方便。此键本身不会在屏幕上产生任何输出,而是将两个后续输入的字符组合成一个字符。换句话说:字符会相互叠加打印。例如:键序列 <Compose> <~> <a> 产生 ã。在 Linux 下,空格键右侧的键通常分配有组合功能。(Xmodmap 爱好者请注意:组合键的 XFree 键符号是 Multi_key。)

持续组合

某些键可以配置为持续组合。按下此类键最初不会在屏幕上产生任何输出,而是将相关符号叠加打印在下一个键入的字符上。

此功能在英语中有时被称为“dead keys”,这是一个错误的名称,因为死键根本不会产生任何功能。

启动提示符

启动计算机时,Linux 内核由所谓的引导加载程序加载到工作存储器中。通过引导加载程序,您可以将参数传递给内核 - 前提是您了解美式键盘布局。以下部分描述了配置 Linux 引导加载程序的键盘布局的可能性。

Lilo

自 2.0 版以来,这位受人尊敬的女士具备了使用替代键盘布局的能力。源代码附带 Perl 脚本 keytab-lilo.pl,您可以使用它将文本控制台的键盘布局之一转换为 Lilo 适用的格式。示例:您希望在 Lilo 提示符下加载键盘布局 de-latin1-nodeadkeys.map。为此,必须执行以下命令

./keytab-lilo.pl  de-latin1-nodeadkeys  > /boot/de-latin1-nodeadkeys.ktl

要激活此布局,必须在配置文件 /etc/lilo.conf 中进行以下条目,然后执行命令 lilo。但是,详细信息可能因发行版而异,因此请查阅随附的手册。

keytable = /boot/de-latin1-nodeadkeys.klt

1.6 时区

地球被划分为时区,在时区内,一天中的时间可能与自然时间(太阳最高点 = 中午)不同。时区的每日时间甚至可能会跳跃,例如在夏令时和冬令时之间切换时。因此,时区是政治规定。对于小国,可以选择首都的时区,例如 Europe/Berlin、Europe/Vienna 或 Europe/Zurich。此别名名称背后隐藏着实际的时区,即在本例中为中欧时间 (CET) 或中欧夏令时 (CEST)。

以前常用的 MET 在任何情况下都不应继续使用。Markus Kuhn 提供了关于此主题的以下信息:MET 文件仅出于向后兼容性的目的而存在。时区表(Olson/Eggert/et al.)的作者实际上希望德国用户使用 Europe/Berlin 文件而不是 MET 文件。这样,甚至可以正确显示 1945 年之前的历史夏令时,Linux 也知道所有这些夏令时。此外,在最新版本的时区表中,“Mitteleuropäische Zeit (MEZ)”最终被正确地翻译成英语“Central European Time (CET)”,因为“MET”是一个翻译错误(例如,参见 Langenscheidt Englisch)。因此,我甚至向负责德国时间的 Physikalisch-Technischen Bundesanstalt 询问过。

所有时区的共同参考点是世界协调时 (UTC),以前也称为格林威治标准时间 (GMT)。在 Linux 下,通常让主板上的 CMOS 时钟以 UTC 运行。Linux 内核在系统启动时接管 CMOS 时钟的值,并从中计算自 1970 年 1 月 1 日 0 时(Unix Epoch Time)以来的秒数。在内部,Linux 内核仅使用此秒数,该秒数通常也以 UTC 运行。如果要向用户显示日期或时间,则会从系统时间中构造一个字符串,同时考虑时区和本地化(见上文)。

总而言之,可以说 Linux 下有 3 个时间:安装在主板上的 CMOS 时钟的时间、Linux 内核的系统时间和各种时钟向用户显示的时间。命令行工具 hwclock(“硬件时钟”)和 date 在这些时钟时间之间进行转换。以下线条图说明了这些关系

            hwclock -u -w               date -u -s
 CMOS-Uhr  <--------------   Linux    <--------------
  (UTC)                    Systemzeit                 Anwender-Uhr
           -------------->  (Epoch)    -------------->
            hwclock -u -s               date, xclock

内核在启动时已经读取了 CMOS 时钟并将其解释为 UTC。但是,为了纠正 CMOS 时钟的系统性错误,系统启动脚本在目录 /etc/init.d/ 中再次读取时间。如果您使用命令 netdate 从时间服务器接管 Linux 系统时间,则必须使用命令 hwclock 更新 CMOS 时钟。

系统范围选择的时区可以使用环境变量 TZ 单独覆盖。例子

export TZ=Asia/Hong_Kong; xclock &
export TZ=UTC; xclock &

1.7 应用程序

国际化和本地化

国际化和本地化即使在英语中也是长词,因此它们分别缩写为 i18n 和 i10n。数字表示在英语拼写中省略了多少个字母。

i18n 是指更改程序以支持多种语言。在此过程中,通常将显示的文本(菜单、消息等)与程序代码分离。通过这种方式,多个翻译可以共享相同的语言无关的程序代码。可以使用环境变量 LANG 选择或激活翻译成德语的程序消息。例子

#LANG=de_AT  # in österreich
#LANG=de_CH  # in der deutschsprachigen Schweiz
LANG=de_DE   # in Deutschland
export LANG

结果并不总是令人满意。例如,并非所有库都已国际化,因此输出文本会与英语混合。过去几年的发展可以从以下示例中看出

# im Jahre 1997:
tar: Kann Archiv 'foo.tgz' nicht öffnen: Permission denied

# im Jahre 2001:
tar: foo.tgz: Cannot open: Keine Berechtigung

i10n 指的是更进一步的精细工作,即适应民族特色,例如日期和数字格式或文化环境。德语本地化现在通过 LANG 环境变量自动激活。这是最有意义的。在较旧的系统中,可以使用环境变量 LC_ALL 启用本地化。例子

LC_ALL=de
export LC_ALL

所有现代 Linux 发行版都应自动进行这些设置。例如,IBM 提供了更奇特的本地化:IBM developer works: universal locales

规则的例外

文本控制台和 X11 都存在字符集,这些字符集不包含 ISO-8859-1 中的所有字符。Unicode 尤其如此。缺少的字符(例如变音符号)在屏幕上显示为空格或根本不显示。在这种情况下,当然,后续描述的应用程序配置无济于事,而是必须选择另一个(完整的)字符集。

Anwendung    Einstellung                vorgenommen in/auf
-------------------------------------------------------------------
LaTex        \usepackage{a4}            im Dokument
gnuplot      set encoding iso_8859_1    ~/.gnuplotrc
xfig         Fig*inches:   false        Xresource
xfig         -metric                    Kommandozeilenoption
lynx         CHARACTER_SET:iso-8859-1   ~/.lynxrc und /etc/lynx.cfg
nn                                      ~/.nn/init und /etc/nn/setup
             set data-bits 8
             set charset iso-8859-1
tin                                     ~/.tin/headers
             Mime-Version: 1.0
             Content-Type: text/plain; charset=iso-8859-1
             Content-Transfer-Encoding: 8bit
elm                                     ~/.elm/elmrc und /usr/lib/elm/elm.rc
             charset = iso-8859-1
             displaycharset = iso-8859-1
             textencoding = 8bit
pine         character-set=ISO-8859-1   ~/.pinerc und /etc/pine.conf
less         LESSCHARSET=latin1         Umgebungsvariable
joe          -asis                      ~/.joerc und /etc/joe/joerc
dosemu                                  ~/.dosrc und /etc/dosemu.conf
             keyboard { layout de-latin1  keybint on  rawkeyboard on }
             X { updatefreq 8 title `DOS in a BOX' icon_name `xdos' keycode }
kermit                                  ~/.mykermrc und /etc/kermit.ini
             set terminal bytesize 8
             set command bytesize 8
             set file bytesize 8
             set language german
             set file character-set latin1-iso
             set transfer character-set latin1-iso
             set terminal character-set latin1-iso

文本

纸张尺寸 DIN A4

在美国,主要使用 US-Letter 纸张尺寸,它比欧洲常用的 DIN A4 纸张尺寸稍宽且稍矮。通常必须明确地将应用程序设置为 DIN A4。例子

Anwendung    Einstellung                vorgenommen in/auf
-------------------------------------------------------------------
LaTex        \usepackage{a4}            im Dokument
xdvi         XDvi.paper: a4             X-Resource
ghostview    Ghostview.pageMedia: A4    X-Resource
ghostscript  -sPAPERSIZE=a4             Kommandozeile
dvips                                   Konfigurationsdatei .dvipsrc
             @ a4size 210mm 297mm
             @+ %%PaperSize: a4
ImageMagick  -page A4                   Kommandozeile

与其他系统交换文本

基于 DOS/Windows 的系统、Apple 计算机和 UNIX 的文本格式在两点上有所不同:字符集和行尾。Linux 在文本行的末尾仅执行换行,Apple 仅执行回车,而基于 DOS 的系统则两者都执行。

程序 fromdostodosfrommactomac 仅转换行尾,字符本身不会调整。mount 命令的 `conv=auto' 或 `conv=text' 选项(与 MS-DOS 文件系统相关)也是如此。

如果您还想转换文本的字符集,那么命令行工具 recode 会有所帮助。通过定义别名,您可以让自己的生活更轻松一些

alias unix2dos='recode lat1.ibmpc'
alias dos2unix='recode ibmpc.lat1'
alias unix2mac='recode lat1.mac'
alias mac2unix='recode mac.lat1'

打印

以下考虑仅涉及文本文件。图形或文字处理的输出作为点阵图发送到打印机,因此不受影响。

常见的打印机型号期望文本采用 DOS 格式。如果您将 Unix 格式的文本文件发送到打印机,您将获得阶梯效果,因为文本行尾没有回车符。示例:lpr /etc/nsswitch.conf。您可以将文本文件转换为 DOS 格式,如上所述,或者使用 atp、mpage、a2ps、ascii2ps、encode 或 gencode 等工具将其转换为 PostScript 格式。对于 PostScript,现代 Linux 发行版安装了打印机驱动程序。


下一页 上一页 目录