|
LC_MEASUREMENT="zh_CN.GB2312" LC_IDENTIFICATION="zh_CN.GB2312" LC_ALL= 1.1.2. 创建Locale环境 为了建立locale环境,我们必须具备下面的描述文件: locale-data 这个文件定义了Locale环境(LC_*)的所有细节,包括字符的分类与转换,字符排序,区域显示时间,货币显示格式等等。通常是保存在系统的/usr/share/i18n/locales目录下。 charmap 这个文件定义了Locale中所有字符与内码的对应关系。通常是保存在系统的/usr/share/i18n/charmaps目录下。 这两个文件都是纯文本文件,可以使用文本编辑器直接察看和修改。通过这两个文件就可以生成对应的locale环境。缺省条件下,生成的locale环境 是以二进制的形式保存在/usr/share/locale目录下。把这两个文本文件生成locale环境的工作是由localedef程序实现的。举例 来说,生成zh_CN.GB2312的locale环境: mkdir /home/usr/share/locale/zh_CN.gb2312 localedef -I zh_CN -f GB2312 zh_CN.GB2312 --prefix=/home cd /home/usr/share/locale/ mv zh_CN.gb2312 zh_CN.GB2312 这几条命令在/home目录下,生成Locale环境zh_CN.GB2312。因为按照POSIX标准,一个Locale的编码名称是大小写无关的。 虽然我们指定的是大写的GB2312,但是glibc为了统一起见,它会生成一个小写的编码名称。但是由于很多程序依赖于zh_CN.GB2312,因此 对这个文件进行了改名。 除了Locale环境之外,您还需要gconv文件。这一组文件是用来定义glibc的gconv系统在 遇到GB2312编码的字符时,应使用哪一个模块来处理。gconv-modules文件描述了字符编码和处理模块文件对应关系。例如,在/usr /lib/gconv/gonv-modules文件中,需要包含下列行: alias GB2312// EUC-CN// 1.1.3. X Window系统的多语言环境 X Window系统的多语言环境是在系统底层libc的Locale架构的基础上建立起来的。X函数库需要利用libc提供的函数来进行字符之间的转换。因 此,为了使X Window应用程序的Locale正确工作,您必须首先设置一个正确的libc Locale环境,同时正确设置LC_CTYPE这个类别。 指定了编码方式并且将字符的辨识和转换用libc的函数处理之后,X Window系统的多语言处理的主要问题就变为图形显示和输入了。在X系统下,多语言环境必须能做到多语言字符图形化输出和字符输入。字符的图形化输出还要处理字型,这又与字型的设定方式有关。 与libc一样,在X Window系统下也有关于Locale的设置部分,称为X-Locale。XFree86系统都把它保留在/usr/X11R6/lib/X11 /locale目录下。在这个目录下的每个Locale都有一个目录,存放各自的X-locale,一般这个文件的名字是XLC_LOCALE。这个文件 里面包含了跟该区域编码相关的设定,而文件中以#字号开头的是注释。以安装程序上简体中文XLC_LOCALE的内容为例: XLC_FONTSET # fs0 class (7 bit ASCII) fs0 { charset { name ISO8859-1:GL } font { primary ISO8859-1:GL vertical_rotate all } } # fs1 class fs1 { charset { name GB2312.1980-0:GL } font { primary GB2312.1980-0:GL } } END XLC_FONTSET 以上内容定义的是显示Locale时使用的字符集。在多语言环境中,为了同时显示中英文,系统往往需要多种字体。例如,上例中表示:在显示简体中文时要 使用两种不同编码的字体,其中一个是使用了GB2312编码的中文字体,其字体名称以GB2312.1980-0结束,另一个是ISO8859-1编码的 英文字体,其字体名称以ISO8859-1结束。 XLC_LOCALE的下一部分定义了Locale中的字体在X系统中的处理方式: XLC_XLOCALE encoding_name zh.euc mb_cur_max 2 state_depend_encoding False wc_encoding_mask x30000000 wc_shift_bits 7 cs0 { side GL:Default length 1 wc_encoding x00000000 ct_encoding ISO8859-1:GL } cs1 { side GR:Default length 2 (责任编辑:编程世界) |
