编程世界 - 计算机爱好者和编程爱好者的天堂!

编程世界

当前位置: 主页 > LINUX > 入门 > Linux安装 >

构造Linux的图形化安装程序(2)(2)

时间:2008-11-29 15:04来源:编程世界 作者:无名 点击:
LC_MEASUREMENT=zh_CN.GB2312 LC_IDENTIFICATION=zh_CN.GB2312 LC_ALL= 1.1.2. 创建Locale环境 为了建立locale环境,我们必须具备下面的描述文件: locale-data 这个文件定义了Loca

   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 (责任编辑:编程世界)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
栏目列表
推荐内容