“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。我也接受在导言中添加更多软性广告的提议。
在许多城市,Linux 用户组成了所谓的 Linux 用户组 (LUG)。这些用户组向所有人开放,并定期举行会议。对于那些不仅想在“网络空间”中与其他 Linux 用户交流的人来说,它们是理想的聚会场所。例如,在 德国 Linux 门户网站上可以找到概述。
嗯,到目前为止我只找到了 KDE 女性。还有更多吗?
除了本地 LUG 之外,还有以下协会
Linux 协会主要面向公司会员。其活动引人注目,目前主要集中在宣传软件专利的危害。
德国 Unix 用户组在经过多年的重新定位后,目前再次以 Unix 系统管理员为目标。
目前,德国有三个大型的跨区域 Linux 活动:LinuxTag、Linux-Kongress 和 LinuxWorld Expo。此外,还有许多本地活动,可以在门户网站的日历中找到。
德语用户的首选联络点是“新闻组”de.comp.os.unix.linux.infos。那里汇集了关于 Linux 的更多信息以及关于相关“新闻组”使用的信息。一个好主意是使用基于网络的存档,您可以在其中找到大量关于关键词的答案:Google 搜索:de.comp.os.linux.* 或 德国 Linux 讨论组常见问题解答。
IRC 频道 #LinuxGER 提供德语 Linux 热线。通过 其自己的网站,您可以了解更多关于 IRC 世界的信息。
以下是一些存在时间较长且定期维护的网站的精选
德国 Linux Howto 项目 (DLHP) 致力于将原始的英文 Linux 指南翻译成德语。在该项目的网站上,您可以找到所有已翻译指南的列表以及有关该项目的更多信息。
计算机是基于数字工作的设备。人是与数字和名称一起工作的生物。如果将一个人放在计算机前,并将计算机作为通用设备出售给这个人,那么计算机除了数字外,还必须能够处理名称。这是通过一种技巧来实现的:字母表被编号,即字母被分配了数字,计算机又可以处理这些数字。例如:字母 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 给出著名的美分符号。
作者已知的所有发行版都会在安装时自动设置德语键盘布局。如果您对结果不满意,可以使用命令行工具 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 引导加载程序的键盘布局的可能性。
自 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
地球被划分为时区,在时区内,一天中的时间可能与自然时间(太阳最高点 = 中午)不同。时区的每日时间甚至可能会跳跃,例如在夏令时和冬令时之间切换时。因此,时区是政治规定。对于小国,可以选择首都的时区,例如 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 &
国际化和本地化即使在英语中也是长词,因此它们分别缩写为 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
在美国,主要使用 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 的系统则两者都执行。
程序 fromdos
、todos
和 frommac
、tomac
仅转换行尾,字符本身不会调整。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 发行版安装了打印机驱动程序。