关于OpenERP客户端字体问题的一点心得
-
客户端缺省情况下运行时,当然是很难看,因为没有使用正常的汉字字体来显示。
因为OpenERP客户端UI是基于GTK的,所以修改OpenERP客户端字体其实是修改GTK里汉字字体的显示。
GTK下相关的两个配置文件一个是etc\gtk-2.0\gtkrc,一个是etc\pango\pango.aliases。
对于中文操作系统下,我们可以不用直接修改gtkrc,而是以之为蓝本,新建一个文件,其名称为gtkrc.zh_CN。
其内容大致如下:<br />gtk-theme-name = "MS-Windows"<br />gtk-icon-theme-name = "Tango"<br />gtk-fallback-icon-theme = "hicolor"<br />gtk-alternative-button-order = 1<br />gtk-alternative-sort-arrows = 1<br />gtk-auto-mnemonics = 1<br />gtk-show-input-method-menu = 0<br />gtk-show-unicode-menu = 0<br /><br /><br />style "user-font" {<br /> font_name = "serif 10"<br />}<br /><br />widget_class "*" style "user-font"<br />widget "*" style "user-font"<br /><br />gtk-font-name="SimSun 10"<br />
这里的自定义字体风格并没有使用什么网上流行的写法,即类似这样的:<br />style "user-font" {<br /> font_name = "simsun 10"<br />}<br />
为什么,这是为了显示斜体字时系统不会出现类似这样的警告信息:
[quote]PangoWarning: couldn't load font "SimSun Italic Not-Rotated 10", falling back to "Sans Italic Not-Rotated 10", expect ugly output.[/quote]
那么中文怎么能用serif 呢?
这就要靠pango.aliases里对字体集的定义进行处理。
在pango.aliases里,找到serif字体集,修改成如下内容:<br />serif = "times new roman,angsana new,Microsoft YaHei,simsun,mingliu,gulimche,ms gothic,kartika,latha,mangal,raavi"<br />
这样英文或斜体就使用英文字体,中文按“雅黑、宋体”的顺序来使用。
有一点要提醒的是,缺省的pango.aliases中,mingliu全部是在simsun前,这导致Openerp客户端中的汉字很多看起来是繁体字,所以大家可以把所有的simsun放到mingliu前。
对于OpenERP我还是个新手,以上是为了让客户端显示得更漂亮一点再尝试的一点心得,不一定全对,希望大家指点。