当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 英文界面下的GBK编码中文支持的设置及美化
帖子发表于 : 2006-04-28 23:14 

注册: 2006-04-28 21:31
帖子: 198
送出感谢: 0 次
接收感谢: 0 次
因为汉化还不完善的缘故,或这个人喜好,不少人还是喜欢使用英文界面的ubuntu,但是如果不合适的设置中文就无法正常显示。下面就介绍下我的经验。

一。 英文界面下的GBK编码中文支持

这里主要讲述如何把界面设置成语言英文同时又支持中文(GBK)的方法。

1) 用root或sudo执行下面的命令来设置LOCALE
dpkg-reconfigure locales
a) 系统需要支持(产生)英文和中文。 [我的设置为: en_GB.UTF-8 和 zh_CN.GBK]
b) 默认编码选英文。[我的设置为: en_GB.UTF-8 ]

*如果其它不设置的话,系统的界面就是英文了,但是此时中文会乱,因为所有的文字都是通过默认编码[我的设置为: en_GB.UTF-8 ]来处理的。所以我们需要再设置LOCALE变量中的LC_CTYPE值来正常显示中文。

2) 如果您用GUI界面的话,把如下的代码放到 /etc/X11/Xsession.d/60env 中

代码:
 
ENCODING="en_GB.UTF-8"
export LC_MESSAGES=$ENCODING
export LC_COLLATE=$ENCODING
export LC_CTYPE="zh_CN.GBK"
export LC_TIME=$ENCODING
export LC_NUMERIC=$ENCODING
export LC_MONETARY=$ENCODING
export LC_PAPER=$ENCODING
export LC_NAME=$ENCODING
export LC_ADDRESS=$ENCODING
export LC_TELEPHONE=$ENCODING
export LC_MEASUREMENT=$ENCODING
export LC_IDENTIFICATION=$ENCODING


* 保存好改文件后(你需要写的权限),重启X,在进入GUI,中文就可以正确显示了(如果系统有安装中文字体的话)。

* 截图可以看附件的图一。


二。 中文在LCD上的显示优化

因为LCD的工作方式,中文和英文在LCD上的显示效果截然不同(相同配置下),因起要区别对待,这也增加了解决的难度。

1) 从 http://www.linuxsir.org/ 下载 Versa-YuanTi, 我用的版本是2。0,以下是它的更新记录:
代码:
0.1:忘记了
0.2:也忘记了
0.3:还是忘记了
1.0:字体全部重做。以 Bitstream 为基础直接 Merge 进圆体,不再进行逐字符替换。节省制作时间、减少错误。觉得较为完善、以后也很少会改动,故版本号做大的调整
2.0:在 1.0 的基础上嵌入从 simsun 里提出的 12、13、14、15、16、18 pixelsize 的 GBK 点阵


* 把下载的 Versa-YuanTi 字体解压到系统的字体文件目录中,比如/usr/share/fonts/truetype 中。

2) 更改字体配置文件。
a)以下的代码是在 /etc/fonts/fonts.conf中的,如果放到/etc/fonts/local.conf应该也可以的
代码:
   <alias>
      <family>serif</family>
      <prefer>
         <family>Bitstream Vera Serif</family>
         <family>Times New Roman</family>
         <family>Thorndale AMT</family>
         <family>Luxi Serif</family>
         <family>Nimbus Roman No9 L</family>
         <family>Times</family>
         <family>Frank Ruehl</family>
         <family>FreeSerif</family>
         <family>MgOpen Canonica</family>
         <family>Kochi Mincho</family>
         <family>Baekmuk Batang</family>
          <family>Vera Sans YuanTi</family>
            <family>Vera Sans YuanTi Mono</family>
         <family>NSimSun</family>
      </prefer>
   </alias>
   <alias>
      <family>sans-serif</family>
      <prefer>
         <family>Bitstream Vera Sans</family>
         <family>Verdana</family>
         <family>Arial</family>
         <family>Albany AMT</family>
         <family>Luxi Sans</family>
         <family>Nimbus Sans L</family>
         <family>Helvetica</family>
         <family>Nachlieli</family>
         <family>FreeSans</family>
         <family>MgOpen Moderna</family>
         <family>Kochi Gothic</family>
         <family>Baekmuk Dotum</family>
          <family>Vera Sans YuanTi</family>
            <family>Vera Sans YuanTi Mono</family>
         <family>NSimSun</family>
      </prefer>
   </alias>
   <alias>
      <family>monospace</family>
      <prefer>
         <family>Bitstream Vera Sans Mono</family>
         <family>Andale Mono</family>
         <family>Courier New</family>
         <family>Cumberland AMT</family>
         <family>Luxi Mono</family>
         <family>Nimbus Mono L</family>
         <family>Courier</family>
         <family>Miriam Mono</family>
         <family>FreeMono</family>
         <family>Kochi Gothic</family>
         <family>Baekmuk Dotum</family>
          <family>Vera Sans YuanTi</family>
            <family>Vera Sans YuanTi Mono</family>
         <family>NSimSun</family>
      </prefer>
   </alias>

b) 把以下代码放到/etc/fonts/local.conf中:
代码:
   
<alias>
                <family>serif</family>
                <prefer>
                        <family>Bitstream Vera Serif</family>
         <family>Vera Sans YuanTi</family>
                </prefer>
        </alias>
        <alias>
                <family>sans-serif</family>
                <prefer>
                        <family>Bitstream Vera Sans</family>
         <family>Vera Sans YuanTi</family>
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>Bitstream Vera Sans Mono</family>
         <family>Vera Sans YuanTi Mono</family>
                </prefer>
        </alias>




<match target="font" >
  <test name="family" >
   <string>SimSun</string>
   <string>Vera Sans YuanTi</string>
   <string>Vera Sans YuanTi Mono</string>
  </test>
  <test name="pixelsize" compare="more_eq"><double>12</double></test>
   <test name="pixelsize" compare="less_eq"><double>16</double></test>
  <edit name="antialias" >
   <bool>false</bool>
  </edit>
  <edit name="rgba" >
   <const>none</const>
  </edit>
  <edit name="hinting" >
   <bool>false</bool>
  </edit>
 </match>
 <match target="font" >
  <test name="family" >
   <string>NSimSun</string>
  </test>
  <test name="pixelsize" compare="more_eq"><double>12</double></test>
   <test name="pixelsize" compare="less_eq"><double>16</double></test>
  <edit name="antialias" >
   <bool>false</bool>
  </edit>
  <edit name="rgba" >
   <const>none</const>
  </edit>
  <edit name="hinting" >
   <bool>false</bool>
  </edit>
 </match>



<match target="font">
   <test name="family"><string>Vera Sans YuanTi</string></test>
   <edit name="globaladvance"><bool>false</bool></edit>
</match>

<match target="font">
   <test name="family"><string>Vera Sans YuanTi Mono</string></test>
   <edit name="globaladvance"><bool>false</bool></edit>
</match>



* 设置系统的字体为:Bitstream Versa

* 这里的设置主要一个是设置优先字体Bitstream Vera Sans, Vera Sans YuanTi, 再一个是依据显示字体来启用和禁用antialias和hinting。如果中文字体打开antialias和hinting在LCD上会显的很糊,而英文开启此配置会显的圆润,所以我们只需要让中文在12-16号中间禁用antialias和hinting。

* 因为Vera Sans YuanTi内嵌了部分simsun的GBK 点阵,当Vera Sans YuanTi关闭antialias和hinting是内嵌的simsun的GBK 点阵会被显示出来。而当启用antialias和hinting时这个字体中的圆体会被显示。这就是说:
在12-16号的中文字体会以simsun的字体显示出来,其他号的字体会以加了antialias和hinting的园体显示。

*具体效果大家可以看截图 (第二张) 中字号由小变大而带来自行和显示效果变化。


附件:
文件注释: 字号由小变大而带来自行和显示效果变化
fonts.jpg
fonts.jpg [ 4.7 KiB | 被浏览 2626 次 ]
文件注释: 英文界面下的GBK编码中文支持
Screenshot-2.png
Screenshot-2.png [ 213.09 KiB | 被浏览 1735 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2006-05-07 10:54 

注册: 2005-07-01 18:45
帖子: 18
送出感谢: 0 次
接收感谢: 0 次
写得不错。建议置顶。


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2006-05-16 19:25 
头像

注册: 2006-05-13 14:00
帖子: 338
送出感谢: 0 次
接收感谢: 0 次
:o


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2006-05-17 0:20 

注册: 2005-10-20 4:15
帖子: 92
送出感谢: 0 次
接收感谢: 0 次
LC_CTYPE改了,一定会有些程序是中文的界面。还是不要用GBK了,UTF8是大势所趋。看看我的帖子
http://forum.ubuntu.org.cn/viewtopic.php?p=75084#75084


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2006-05-17 0:23 

注册: 2005-10-20 4:15
帖子: 92
送出感谢: 0 次
接收感谢: 0 次
字体也最好不要用这种版权不明不白的。文泉驿好的很。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2006-05-17 11:47 

注册: 2006-04-28 21:31
帖子: 198
送出感谢: 0 次
接收感谢: 0 次
depp 写道:
LC_CTYPE改了,一定会有些程序是中文的界面。还是不要用GBK了,UTF8是大势所趋。看看我的帖子
http://forum.ubuntu.org.cn/viewtopic.php?p=75084#75084


如果只改LC_CTYPE (如我上面所描述的), 该是英文的地方中文不会出来. 这个设置指示用来告诉系统默认的解码方式,根显示何种地方文字无关.

UTF-8确实是大势所趋, 但是如果你手头有大量的文档是GBK编码的话,你还是要考虑一下的. 特别是中文windows默认的编码并非是UTF-8.

另:文件名编码转换可以用如下的命令:

代码:
convmv -r -f gbk -t utf8 *


会把当前目录下的文档名从GBK编码改到UTF-8.


最后由 sammeme 编辑于 2006-05-17 12:05,总共编辑了 1 次

页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2006-05-17 11:55 

注册: 2006-04-28 21:31
帖子: 198
送出感谢: 0 次
接收感谢: 0 次
depp 写道:
字体也最好不要用这种版权不明不白的。文泉驿好的很。


文泉驿的点阵字体还凑和,你要是愿意可以把Versa-YuanTi中 点阵simsun替换掉.

我再强调一下, 要兼顾中文和英文的显示要不做复合字体要不在系统配置上做大量文章.


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2006-05-29 1:15 

注册: 2005-10-20 4:15
帖子: 92
送出感谢: 0 次
接收感谢: 0 次
java 会根据LC_CTYPE决定界面用何种文字。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 英文界面下的GBK编码中文支持的设置及美化
帖子发表于 : 2009-01-16 21:59 

注册: 2008-02-21 21:23
帖子: 73
送出感谢: 0 次
接收感谢: 0 次
那 如果 我不改 LC_CTYPE 那该怎么做呢


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译