下一页 上一页 目录

5. libc 5.4.x 及更高版本中的区域设置支持

区域设置支持已在 libc 5.4.x 中更新。如果您的系统上的程序已为区域设置支持做好准备,您可以避免第 特定应用程序中的国际字符集 章节中描述的许多单独的程序设置。如果您安装了 wg15-locale 软件包,Debian 发行版就带有此支持。带有 GNU libc 2 (libc 6.x) 的系统默认支持区域设置(请参阅本节后面关于 Red Hat Linux 5.0 版本的说明。)

如果您使用的系统不支持区域设置,您可以使用以下方法添加此类支持

  1. 确保您拥有最新的 libc 5.4.x 库。您可以从 Yggdrasil Computing 获取。
  2. 确保您已安装 localedef 程序。它应该随库一起提供。
  3. 获取区域设置源。您可以从 DKUUG 获取它们。您需要同时获取 localecharmap 源。
  4. 将区域设置源放在 /usr/share/i18n/locales/ 中,并将 charmap 源放在 /usr/share/i18n/charmaps/ 中。
  5. 执行 localedef 程序以构建区域设置数据文件
    localedef -ci da_DK -f ISO_8859-1:1987 da_DK
    
    (非丹麦语读者请注意:您可以以相同的方式为其他区域设置构建区域设置数据文件。所有区域设置和 charmap 源都在 DKUUG 站点。)

要在具有区域设置支持的系统上启用对丹麦语区域设置的支持,您只需设置以下环境变量之一

LANG=da_DK
LC_ALL=da_DK

如果 da_DK 不起作用,请尝试 da_DK.ISO_8859-1

两个环境变量都设置了所有单独的区域设置类别。您还可以通过使用类别的名称作为环境变量来设置单个区域设置类别。区域设置类别是

Locale category         Application
---------------         -----------
LC_COLLATE              Collation of strings (sort order.)
LC_CTYPE                Classification and conversion of characters.
LC_MESSAGES             Translations of yes and no.
LC_MONETARY             Format of monetary values.
LC_NUMERIC              Format of non-monetary numeric values. 
LC_TIME                 Date and time formats.
LC_ALL                  Sets all of the above (overrides all of them.)
LANG                    Sets all the categories, but can be overridden
                        by the individual locale categories.

在 Red Hat Linux 5.2 中,您可以通过在 /etc/sysconfig/i18n 文件中添加如下行来设置环境变量 LANG 和/或 LC_ALL

LC_ALL=da_DK

少数程序(如 bashGNU emacs)仍然需要如第 特定应用程序中的国际字符集 章节中所述的特定设置,但大多数应该无需进一步关注即可工作。诸如 nvi 等以前无法使用 8 位字符的程序现在应该可以工作了。

随着基于新的 GNU libc 2 的发行版的可用性增加,区域设置支持应该会变得更加普遍。请注意,尽管 Red Hat Linux 5.0 版本附带了 GNU libc 2,但区域设置支持不起作用。您必须通过自己执行 localedef 来构建区域设置数据文件。您可以使用以下命令构建丹麦语区域设置数据文件

localedef -c -i da_DK -f ISO-8859-1 da_DK

glibc-2.0.7-4.i386.rpm 开始,区域设置数据文件已包含在库中,因此不再需要这样做。


下一页 上一页 目录