linux系统locale的设定

| |
[不指定 2009/07/01 14:56 | by ipaddr ]
设定locale   让Linux能够输入中文
locale    软件运行时的语言环境

locale分类:
语言符号及其分类(LC_CTYPE),数字 (LC_NUMERIC),比较和排序习惯(LC_COLLATE),时间显示格式(LC_TIME),货币单位(LC_MONETARY),信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等(LC_MESSAGES),姓名书写方式(LC_NAME),地址书写方式(LC_ADDRESS),电话号码书写方式 (LC_TELEPHONE),度量衡表达方式(LC_MEASUREMENT),默认纸张尺寸大小(LC_PAPER)和locale对自身包含信息的概述(LC_IDENTIFICATION)。
eg:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"                    #用户所使用的语言符号及其分类
LC_NUMERIC="en_US.UTF-8"                #数字
LC_TIME="en_US.UTF-8"                      #时间显示格式
LC_COLLATE="en_US.UTF-8"                #比较和排序习惯
LC_MONETARY="en_US.UTF-8"             #LC_MONETARY
LC_MESSAGES="en_US.UTF-8"             #信息主要是提示信息,错误信息, 状态信息, 标题, 标签, 按钮和菜单等
LC_PAPER="en_US.UTF-8"                    #默认纸张尺寸大小
LC_NAME="en_US.UTF-8"                     #姓名书写方式
LC_ADDRESS="en_US.UTF-8"               #地址书写方式
LC_TELEPHONE="en_US.UTF-8"             #电话号码书写方式
LC_MEASUREMENT="en_US.UTF-8"        #度量衡表达方式
LC_IDENTIFICATION="en_US.UTF-8"      #对自身包含信息的概述
LC_ALL=

locale定义文件放在/usr/share/i18n/locales

字符集就是字符,尤其是非英语字符在系统内的编码方式,也就是通常所说的内码,所有的字符集都放在 /usr/share/i18n/charmaps,所有的字符集也都是用Unicode编号索引的。Unicode用统一的编号来索引目前已知的全部的符号。而字符集则是这些符号的编码方式,或者说是在网络传输,计算机内部通信的时候,对于不同字符的表达方式,Unicode是一个静态的概念,字符集是一个动态的概念,是每一个字符传递或传输的具体形式.

Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。一个locale的书写格式为: 语言[_地域[.字符集]].
生成的locale放在/usr/lib/locale/目录中

自定义locale

优先级的关系
LC_ALL>LC_*>LANG
LC_ALL的值将覆盖所有其他的locale设定

查看zh_CN使用的编码:
/usr/lib/locale/zh_CN/LC_* 说明了使用何种编码

Linux 切换 locale 的四种方法
1) 从CDE登录屏幕上修改locale
选择 options -> languages -> choose the new locale
2) 临时设置locale(shell相关的)
ksh : LANG=<locale>
sh : LANG=<locale>
export LANG
csh : setenv LANG <locale>
bash: export LANG=en_US(zh.GBK)
3) vi /etc/default/init 
add
LANG=<locale>
LC_ALL=<locale>
reboot。
4) .cshrc/.profile/.bashrc: 设置$LANG


Linux Terminal对NLS的支持
前言:虽然通过setenv LANG/LC_ALL让Linux支持NLS界面,但是在Terminal中要显示NLS语言还需要设置Terminal的语言支持来显示命令行的结果显示。
网上搜索结果表明,KDE对NLS支持不是很好,KDE的Konsole找不到方便地设置语言的位置。但是GNOME的Terminal则很方便设置支持语言。

GNOME和KDE的切换
一、设置GNOME或者KDE为默认的启动桌面环境
方法1:修改/etc/sysconfig/desktop,根据需要将“DESKTOP”后面的内容改为KDE或GNOME。
方法2:在当前用户目录下建立“.xinitrc”这个文件(注意文件名前有一个点号,代表建立的是一个隐藏文件),
文件的内容就一行startkde或gnome-session,根据自己的需要选择KDE或GNOME。
二、GNOME和KDE的切换(“#”后面为输入命令)
1.如果需要切换到GNOME:
#switchdesk gnome  
2.如果需要切换到KDE:
#switchdesk kde

修改默认字符集
把default的字符集由utf-8改做GB2312,并 edit smb.conf,加入
[root@btirsvr31 ~]# more /etc/sysconfig/i18n
#LANG="en_US.UTF-8"
#SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"

LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"

vsftpd.conf 字符集配置
charset_filter_enable=YES
charset_client=GBK
charset_server=UTF8

OS | 评论(0) | 引用(0) | 阅读(8564)