Ubuntu下修改系统默认语言为简体中文

时间:2023-01-05 20:01:55

1.首先要安装中文的支持,安装:language-selector,language-env,language-pack-zh包,运行:sudo apt-get install language-selector language-env language-pack-zh。
2.然后使安装生效,配置区域,运行:dpkg-reconfigure locales
Generating locales...
en_US.UTF-8... done
zh_CN.UTF-8... up-to-date
zh_HK.UTF-8... up-to-date
zh_SG.UTF-8... up-to-date
zh_TW.UTF-8... up-to-date
Generation complete.
Current default timezone: 'US/Eastern'.
(可运行:tzconfig修改时区)
3.设定locale,将本地默认语言改为中文(zh_CN.UTF-8),设定locale就是设定12大类的locale分类属性,即12个LC_*。除了这12个变量可以设定以外,为了简便起见,还有两个变量:LC_ALL和LANG。它们之间有一个优先级的关系:LC_ALL>LC_*>LANG。我们只要设定LC_ALL=zh_CN.UTF-8,不管LC_*和LANG设定成什么值,它们都会被强制服从LC_ALL的设定,成为 zh_CN.UTF-8。

支持GB18030、GBK和GB2312编码
1. 配置系统环境
执行 sudo vi /var/lib/locales/supported.d/zh (or /var/lib/locales/supported.d/local)
加入以下配置参数
zh_CN.GB18030 GB18030 (最新汉字编码字符集,向下兼容GBK,GB2312)
zh_CN.GBK GBK (汉字扩展编码,向下兼容GB2312, 并包含BIG5全部汉字)
zh_CN.GB2312 GB2312 (简化汉字编码字符集, 最近有客户要我们改进GB2312,太看得起我们了,我只能说:"NO!")
zh_CN.GB18031 GB18031 (数字键盘汉字编码输入,面向手持设备。maybe用Google Android SDK的大侠们需要这个)
zh_HK.BIG5 BIG5 (繁体)
zh_TW.BIG5 BIG5 (繁体)

2.然后执行 sudo locale-gen ,生成locale(自动保存在/usr/lib/locale/中)。
提示以下信息,成功了
Generating locales...
  en_US.UTF-8... done
  zh_CN.GB18030... done
  zh_CN.GB2312... done
  zh_CN.GBK... done
  zh_CN.UTF-8... up-to-date
  zh_HK.UTF-8... up-to-date
  zh_SG.UTF-8... up-to-date
  zh_TW.UTF-8... up-to-date
Generation complete.

3.注意修改一些文件:
/etc/profile:
export LC_ALL="zh_CN.GB18030"

/etc/default/locale:
#LANG="zh_CN.UTF-8"
#LANGUAGE="zh_CN:zh"
LC_ALL="zh_CN.GB18030"
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

以及用户自己的profile等。

关于文件名的乱码:
作为ubuntu重要组成部分的gnome是基于glib库的,在glib的函数里,默认读写文件名的编码选项是utf8,所以使用gtk或是gnome程序创建的中文文件名仍然是uft8编码的,可以通过下面的方法验证,在nautilus中进入/home/用户文件夹,右键创建文件夹,取一个中文名字,在终端中ls显示,会发现这个文件夹是乱码,将终端的编码切换为uft8,发现至少可以部分正常显示,说明文件夹的编码是uft8。其实glib提供了两个宏,只要正确的设置,就可以告诉gnome程序,用户要读取的文件名的编码是哪一种多字编码方案,那么文件函数完全可以采用gb18030的编码。
使用gdm启动Gnome的写入用户主目录的.profile文件,当gnome启动后,会读取这个文件里面的设置。
添加以下内容:
export G_FILENAME_ENCODING=GB18030
export G_BROKEN_FILENAMES=1
这是告诉使用了glibc的程序,系统文件名的默认编码是gb18030,重启后,再用上面的方法实验,会发现终端里面和nautilus中显示的文件名已经是一致的了。