1、控制機制
ZWC控制資源文件(properties文件)來實現國際化下的字體列表。在JAVA架構的系統下,經過資源文件來實現國際化是經常使用的技術,ZWC也不例外。css
通過搜索,ZWC中控制國際化下的字體列表的資源文件是:html
#zimbrahome/jetty/webapps/zimbra/WEB-INF/classes/messages/AjxMsg.propertiesjava
按照Java的規則,中文簡體對應的資源文件應該是:web
#zimbrahome/jetty/webapps/zimbra/WEB-INF/classes/messages/AjxMsg_zh_CN.properties瀏覽器
在這兩個文件中有一段話:服務器
# The font family options specified below are a list of fonts for架構
# HTML compose. Each value is a comma-separated list of font namesapp
# to be used. The entries whose key ends in ".display" is used asless
# the name that is shown to the user; entries whose key ends inwebapp
# ".css" is the CSS list of font names that is inserted into the
# HTML document.
#
# Any number of font families can be added to the list. To add a
# font family, name the key "fontFamilyBase{number}.display" and
# "fontFamilyBase{number}.css" for the common list of fonts; or
#"fontFamilyIntl{number}.display" and "fontFamilyIntl{number].css"
# for additional fonts to prefix for this specific locale. The
# {number} is the next number in the list; numbers start at 1. To
# end the list, leave the last values as the "###" string.
#
# Note: Not all of the fontFamilyIntl values need to be specified!
# And you should always leave a "###" entry at the end to
# avoid accidentally include intl font families inherited
# from the less specific locale property file.
翻譯一下,大意以下:
如下設置的字體選項是用於在起草HTML郵件時的可用字體列表。每一個值都是一個逗號分隔的字體名列。以.display結尾的條目中的名稱用於顯示給用戶(在下拉列表中),以.css結尾的條目中的名稱則是用於插入HTML(相似於內部名稱)文檔。
能夠向列表中加入任意多的字體數量。要添加一個新的字體,首先要添加一個鍵名相似fontFamilyBase{number}.display的條目和一個鍵名相似fontFamilyBase{number}.css的條目,分別表示字體顯示名稱和內部名稱。對於國際化環境而言,則應使用鍵名分別爲fontFamilyIntl{number}.display和fontFamilyIntl{number}.css的條目。這裏的{number}是一個阿拉伯數字,從1開始,新建時應比當前最大的數字大1。要結束這些列表,將最後一個條目的值設爲「###」。
備註:並不是全部的fontFamilyIntl都須要指定。對於不須要使用本地字體的條目,須要用「###」來做爲條目的值。
ZWC默認的字體列表有20個字體,摘要以下:
fontFamilyBase1.display = Andale Mono
...
fontFamilyBase21.display = ###
fontFamilyBase1.css = andale mono,times
...
fontFamilyBase21.css = ###
國際字體也有20個,但實際填充的只有3個,摘要以下(字體名稱備註是我加的):
#字體
fontFamilyIntl1.display = \u5b8b\u4f53
fontFamilyIntl1.css = \u5b8b\u4f53, simsun, serif
#新宋體
fontFamilyIntl2.display = \u65b0\u5b8b\u4f53
fontFamilyIntl2.css = \u65b0\u5b8b\u4f53, nsimsun, sans-serif
#黑體
fontFamilyIntl3.display = \u9ed1\u4f53
fontFamilyIntl3.css = \u9ed1\u4f53, simhei, sans-serif
fontFamilyIntl4.display = ###
fontFamilyIntl4.css = ###
在這種狀況下,當在ZWC起草中文郵件時,會顯示一共23個字段,前3個是中文字體,後20個是英文字體。
講到這裏,相信你已經大概明白ZWC是如何控制國際字體的了。
2、定製方法
前面已經瞭解了ZWC是如何控制國際字體的了,下面就看一下如何來定製。假設須要添加「微軟雅黑」字體。
1.從服務器上下載AjxMsg_zh_CN.properties文件,路徑見上面。
2.到網站:http://blog.javawind.net/tools/native2ascii.jsp,將要顯示的中文字體名稱轉換成Unicode的格式,一般是\xxxxx的樣式。「微軟雅黑」轉換後的格式是:\u5fae\u8f6f\u96c5\u9ed1。
3.用一個文本編輯工具打開,找到fontFamilyIntl列表中第一個值爲「###」的條目。根據不一樣的軟件版本,那個{number}可能不一樣,在7.0上是4(即前面有3個字體)。
4.將
fontFamilyIntl4.display = ###
fontFamilyIntl4.css = ###
換成
fontFamilyIntl4.display = \u5fae\u8f6f\u96c5\u9ed1
fontFamilyIntl4.css = \u5fae\u8f6f\u96c5\u9ed1, msyh
5.保存文件。
6.備份服務器上的AjxMsg_zh_CN.properties,並將修改後的文件上傳到服務器上覆蓋它。
7.重啓Zimbra服務。
等重啓完畢後,用瀏覽器打開ZWC,進入新建界面,看到了嗎?