Linux安装 常用命令 软件使用
返回首页
当前位置: 主页 > LINUX > 入门 > Linux安装 >

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

时间:2008-11-29 15:04来源:编程世界 作者:无名 点击:
  本文是构造Linux的图形化安装程序系列文章的第二部分,主要介绍在安装程序装入内存之后,如何启动图形环境并设置中文语言环境。文中除了介绍安装程序对这两个功能的具体编程实现,
图形环境的启动及中文化
  
  本文是构造Linux的图形化安装程序系列文章的第二部分,主要介绍在安装程序装入内存之后,如何 启动图形环境并设置中文语言环境。文中除了介绍安装程序对这两个功能的具体编程实现,还介绍了Linux中文化的一些基本知识,包括如何定制安装程序显示 中所需要的Locale环境(Glibc和X Window系统两部分),po文件的处理。
  在安装程序的第二阶段运行结束之后,整个安装程序 已经被调入了内存,这时控制从安装程序的加载程序转到了安装程序的主程序执行。这时的安装程序就像是一个从Linux的控制台环境启动的程序,这个程序进 行自动检测并进行基本的设备配置。为了进行图形化安装,安装程序的主程序会启动XFree86子系统并设置,同时设置当前的语言环境为中文环境。
  
  1. 多语言环境支持
   为了在Linux下实现多语言支持,必须在定制安装程序时,引入与glibc和图形环境两者对应的多语言环境支持。对于glibc环境而言,它是整个 Linux中文化的基础,我们需要在/usr/share/locale目录下保存Locale信息,在/usr/share/consolefonts 目录下保存字体信息,在/usr/lib/gconv目录下保存字符转换模块的信息。
  
  对于X Windows环境,我们需要在/usr/X11R6/lib/X11/locale目录下保存X Locale的配置,同时在/usr/X11R6/lib/X11/fonts目录下保存正常显示所需要的字体集。
  
  在安装程序启动之后,必须正确设置LC_*变量同时调用setlocale函数。为了能显示中文,安装程序还必须加载正确的中文字体。
  
  1.1. 国际化的基本概念
   国际化(Internationalization,简写为I18N)是指软件在设计结构和机制上支持多语言的扩展特性,其功能和代码设计不针对某一特 定语言和地域。Locale是ANSI C语言中最基本的支持国际化的标志,对中文Linux来说,支持中文Locale是最基本的要求。
  
  1.1.1. Locale环境
  Locale的命名规则:<语言>_<地区名>.<字符编码名称>
  
  对于zh_CN.GB2312而言,zh表示中文,CN表示大陆地区,GB2312表示使用的字符集为GB2312。
  
  Locale使用一组分类,用户可以独立的操纵每一组分类。用户既能用设置环境变量的方法,也能使用setlocale设置它们。这些分类都保存在/usr/share/locale下。它们包含了:
  
  LC_COLLATE
  用于比较和排序。
  LC_CTYPE
  用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。
  LC_MONETORY
  用于格式化货币单位。
  LC_NUMERIC
  用于格式化非货币的数字显示。
  LC_TIME
  用于格式化时间和日期。
  LC_MESSAGES
  用于控制程序输出时所使用的语言,主要是提示信息,错误信息,状态信息, 标题,标签, 按钮和菜单等。
  LC_ALL
  它不是环境变量,只是一个宏,可使用setlocale设置所有的LC_*环境变量。这个变量设置之后,可以废除LC_*和LANG的设置值,使得这些变量的设置值与LC_ALL的值一致。
  LANG
  它的值用于指定上面环境变量没有设置的所有变量值。如果指定了上面任何一个变量的值,则会废除对应的LANG值的缺省设置。
  
  还可以包括其他的环境变量LC_ADDRESS,LC_IDENTIFICATION,LC_PAPER,LC_NAME,LC_TELEPHONE,LC_MEASUREMENT。
  
  标准Locale:
  
  "C"
  这是标准的C Locale。它所指定的属性和行为由ISO C标准所指定。它是程序启动时缺省使用Locale。
  
  "POSIX"
  这是标准的POSIX Locale。它是标准的C Locale的别名。
  
  ""
  空名字是让程序选择当前环境设置值。
  
  设置一个中文环境需要正确的设置上述Locale变量,举例来说,在使用zh_CN.GB2312环境时,使用locale命令,所见到的系统环境为:
  
   LANG="zh_CN.GB2312"
   LC_CTYPE="zh_CN.GB2312"
   LC_NUMERIC="zh_CN.GB2312"
   LC_TIME="zh_CN.GB2312"
   LC_COLLATE="zh_CN.GB2312"
   LC_MONETARY="zh_CN.GB2312"
   LC_MESSAGES="zh_CN.GB2312"
   LC_PAPER="zh_CN.GB2312"
   LC_NAME="zh_CN.GB2312"
   LC_ADDRESS="zh_CN.GB2312"
   LC_TELEPHONE="zh_CN.GB2312"(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
推荐内容