多语言环境支持
为了在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"
LC_MEASUREMENT="zh_CN.GB2312"
LC_IDENTIFICATION="zh_CN.GB2312"
LC_ALL=
|
优先级: LC_ALL>LC_*>LANG
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文件中,需要包含下列行:
转自:http://blog.chinaunix.net/u2/86696/showart_2076988.html
分享到:
相关推荐
通过以上步骤,您可以在Kali Linux系统中成功地将系统语言从英文改为中文。这不仅能让中文用户更方便地使用系统,还能避免阅读中文文档时出现乱码的问题。希望本文能帮助到正在学习Kali Linux的新手们。
locale 是 Linux 系统中用于控制字符编码、日期格式、货币格式、时区等设置的环境变量。 在 Linux 系统中,locale 设置分为两种:系统级别和用户级别。系统级别的 locale 设置影响整个系统,而用户级别的 locale ...
LANGUAGE环境变量用于指定支持的多语言顺序。同样,可以使用以下命令: ``` [root@linux ~]# export LANGUAGE=en_US.UTF-8 ``` 永久修改方式同上。 3. **设置LC_ALL变量**: LC_ALL环境变量覆盖所有其他的...
在Ubuntu Linux系统中,英文界面下处理中文是一个常见的需求,特别是在多语言环境中工作或学习的用户。本篇文章将深入探讨如何在英文环境下设置系统以支持中文显示和输入。 首先,我们需要理解locale的概念。Locale...
首先,我们需要知道控制 Linux OS 的语言环境变量是 $LANG 和 $LC_ALL。这两个变量是控制 Linux 系统语言环境的关键。解决乱码的情况,我们只需要把这两个变量正确设置即可。 乱码可以分为两种情况:终端(纯 shell...
Linux系统主要通过环境变量`LANG`和`LC_ALL`来控制语言环境,当这两个变量没有设置正确时,就会出现乱码现象。 首先,我们要理解`LANG`和`LC_ALL`这两个环境变量的作用。`LANG`是主语言环境变量,它决定了系统默认...
在Linux环境中,字符集的设定对于系统的正常运行至关重要,尤其是在处理多语言环境或特定软件(如Oracle数据库)的安装与配置时。本文将详细介绍如何修改Linux系统的默认字符集来解决Oracle安装过程中出现的乱码问题...
3. 配置环境变量:在`~/.bashrc`或`/etc/profile`中设置`LANG`和`LC_ALL`环境变量,确保它们指向已创建的locale。 4. 重启终端或系统:使改动生效。 在实际操作中,可能还需要检查文本编辑器、浏览器和其他应用的...
- 生成locale后,设置环境变量`LANG`和`LC_ALL`为`zh_CN.UTF-8`,例如:`echo "LANG=zh_CN.UTF-8" >> /etc/environment` 和 `echo "LC_ALL=zh_CN.UTF-8" >> /etc/environment` - 重新加载环境变量:`source /etc/...
- **修改终端配置文件**:在`.bashrc`或`.bash_profile`文件中添加`export LC_ALL=C.UTF-8`或`export LANG=en_US.UTF-8`(对于英语环境)来设定默认的字符编码。 3. **系统级字符集设置**: - **locale**:Linux...
总之,理解并掌握在Linux系统中查看和修改字符编码的方法对于处理跨地区、多语言的系统环境至关重要。通过`locale`命令查看当前编码,编辑`/etc/sysconfig/i18n`文件进行修改,然后重启系统,即可完成编码的切换。在...
另外,确保`LC_CTYPE`、`LANG`、`GDM_LANG`、`LC`以及`LC_ALL`等相关locale设置正确,以解决可能出现的语言显示问题。 在安装Oracle数据库之前,还需要调整系统内核参数,以优化Oracle的性能。这些参数通常包括`...
在开发或管理涉及多语言环境的系统时,特别是在Linux或Unix服务器上,可能会遇到中文字符显示不正常的情况。SSH中文过滤器就是为了确保中文数据在传输过程中能够正确解析和显示而设计的工具或技术。通常,这可能涉及...
WebSphere安装程序可能依赖于特定的字符集来正确呈现中文信息,而在RHEL(Red Hat Enterprise Linux)6.1这种老版本的系统上,如果没有预先配置支持多语言的环境,就会出现这种问题。 为了解决这个问题,我们可以...
例如,在Linux下,可以使用`locale`命令检查和设置系统语言环境。 通过以上步骤,通常可以有效地解决CVS中文乱码问题。但是,需要注意的是,不同的操作系统和CVS版本可能有不同的处理方式,因此在实际应用中可能...
在Linux环境下,可以通过LANG和LC_ALL环境变量来调整locale和编码设置。 当处理数据库中的中文数据时,Java需要确保与数据库的字符编码一致,否则可能会出现乱码。例如,如果数据库使用GBK编码,而Java应用使用UTF-...
在Linux操作系统中,字符集(Charset)是用来表示文本字符的编码方式,对于多语言环境尤其重要。当系统提示“字符集有问题”时,通常是指系统无法找到或设置正确的locale(本地化设置),如LC_CTYPE、LC_MESSAGES和...
确保Jenkins的默认语言配置正确,支持UTF-8编码,这是处理多语言特别是中文字符的关键。 3. **Jenkins详细信息**: 访问Jenkins的`/systemInfo`页面,查看系统详细信息,确认Jenkins服务器的环境配置,包括语言...