下一页 上一页 目录

4. 西班牙语本地化 Linux

最令人恼火的方面之一是,由于软件缺乏对特殊字符的支持,我们无法自然地用自己的语言书写。基本的 ASCII 字符集是 7 位的,不包括带重音的元音字母,也不包括我们可怜的 'ñ'。有一个 ISO-8859-1 标准(或 ISO-Latin1),它涵盖了所有这些字符,但在许多日常任务中仍然令人头疼,例如电子邮件(许多系统只支持 7 位,因此我们在自己的计算机上可以正确看到的文本,当发送给其他人时,很可能会显示得非常糟糕)。下面提到了一些最常见的情况以及如何尝试解决它们。

4.1 控制台

...或者如何在自己的电脑上使用重音符号

通过 `loadkeys` 命令加载键盘翻译表。这些表将按下键盘按键时生成的代码翻译成程序接收的代码。包含这些翻译表的文件位于 /usr/lib/kbd/keytables/ 目录中,包含西班牙语键盘映射的文件名为 es.map。其目的是,如果我们按下某个组合键,屏幕上会显示我们键盘上所印的字符,而不是其他国家使用的键盘上的等效字符。

调用此命令的常见形式如下,它将默认出现在启动过程中(在 Slackware 中,它位于 /etc/rc.d/rc.keymap 中)

loadkeys /usr/lib/kbd/keytables/es.map

作者注:在相同的键盘配置下,多次因重新编译内核而导致重音符号失效,但在撰写本文时,我尚未找到原因...

4.2 Bash Shell

为了使 bash 支持使用带重音的元音字母以及字母 ñ,只需在你的 $HOME 目录下的 .inputrc 文件(或至少在 .bash_profile 文件)中包含以下几行


set meta-flag on                # conservar bit 8 en entrada de teclado
set output-meta on      # conservar bit 8 en salida por terminal
set convert-meta off    # no convertir secuencias de escape

export LC_CTYPE=ISO_8859_1

4.3 Tcsh Shell

为了使 tcsh 支持使用带重音的元音字母以及字母 ñ,只需在你的 $HOME 目录下的 .tcshrc 文件(或至少在 .login 文件)中包含以下几行


setenv LANG C
setenv LC_CTYPE "iso_8859_1"

4.4 一些应用程序

详细列出所有应用程序、实用程序、系统命令等中处理 8 位字符的所有可能性将过于冗长。这里列举一些例子

Joe 编辑器

Joe 有一个 -asis 参数,用于保留 8 位字符。

less

默认情况下,它只显示 7 位字符(8 位字符用其 ASCII 码表示)。这可以防止在我们错误地尝试读取二进制文件、数据文件等时在屏幕上看到“乱码”,但也阻止了我们看到重音符号。可以使用来自该实用程序本身的 -r 修饰符临时修改它,但最好定义环境变量 LESSCHARSET=latin1

ls

为了使它在文件名中显示特殊字符,它具有 -8 -N 选项,这些选项可以添加到您可能已经默认定义的 LS_OPTIONS 变量中。

mc

这个 Norton 克隆在 Options 下的 Display bits... 子菜单中有一个 Full 8 bits 选项。

nroff, groff

具有 -Tlatin1 选项

4.5 X Window 系统

X Window 图形环境使用名为 xmodmap 的命令来配置键盘,该命令的功能与文本控制台的 loadkeys 相同。Ernest Artiaga (drw@portos.upc.es) 准备了一个用于 Xmodmap 的配置文件,该文件使用 [AltGr] 键生成重音符号,您可以在 ftp://ftp.cs.us.es/pub/Linux/contrib/Xmodmap-es 等网站上找到它,我们可以将其放置为 $HOME/.xmodmap,以便作为我们配置的一部分加载。还有一个实用程序 /usr/lib/kbd/keytables/mk_modmap,它从 `loadkeys` 使用的键盘映射生成 Xmodmap 的列表。

无论如何,这种方法并非完美,因为 X Window 系统下的许多应用程序都有自己的配置方式,或者根本不支持扩展字符,因此有时我们可能在一个窗口中使用重音符号,但在隔壁窗口的应用程序中却不行。

4.6 DOS 模拟器 (DOSEMU)

/etc/dosemu.conf 中的键盘配置文件应包含 'layout es-latin1',以便能够使用 'ñ' 以及西班牙语的问号和感叹号。完成此操作后,可以从 DOS 模拟器本身加载常用配置 `keyb sp`,或者运行 'keybes2.com',这是一个适用于模拟器本身的小实用程序,可在多个常用地址找到。

4.7 电子邮件

最后,关于在 Linux 中使用西班牙语,但同样重要的是,能够阅读和接收以西班牙语书写的电子邮件文本,而不会扭曲其内容或丢失特有的重音符号和特殊符号。

问题归结为老生常谈:使用未包含在基本撒克逊字体中的特殊字符需要使用 8 位,但仍有许多系统继续使用 7 位,这会截断或损坏未采取适当预防措施编写的消息。

定义互联网电子邮件消息中使用的格式的 RFC822 标准不允许在消息中使用 8 位,但允许在消息中使用 8 位。但我们也不能滥用这种可能性,因为我们不能保证任何可能接收我们文档的系统都会遵守它。一种日益普及的解决方案,它允许用户自由书写并发送几乎任何信息,并将所有这些细节留给邮件管理软件(包括用户代理和邮件服务器中的传输代理),是通过 MIME 标准,该标准允许编码我们的 8 位消息,并将其减少为 7 位字符,这些字符可以安全地通过任何系统而不会丢失信息。缺点(随着该系统越来越普及,缺点越来越少)是,如果我们尝试阅读没有实现此系统且无法解释它的 MIME 编码消息,我们可能会看到与我们的消息穿插的“乱码”,甚至可能完全看不懂。

MIME 将所有责任都留给了软件,因此如果两端(发件人和收件人)都使用与 MIME 兼容的软件,则用户可以将任何类型文件的组合(文字处理器、图形、声音、视频等生成的文件)与纯文本一起发送。甚至不需要双方都使用相同的软件。只需双方都能够在发送过程中生成编码,并在接收时解释编码即可。


下一页 上一页 目录