Firefly's OOo CJK Patches
Introduction
Since mid 2003, Mr. Jia Ming Deng (nickname Firefly, now listed on JCA), a Chinese Linux hacker from Taiwan, has been working on a set of OpenOffice.org patches that has significantly enhanced the font naming, selection and screen appearance for many CJK OOo Linux users. His initial patches for OOo 1.x are either considered too large or too risky to merge into the mainline OOo code base, and hence was only provided as a third party download listed in the Add-On section of Chinese (zh) OpenOffice.org Page.
With the release of OpenOffice.org 2.x, however, some of the greater obstacles, such as fakestyle printing for regular-only font (for instance, AR PL Mingti2 Big5 under Linux) has already started to work; whereas the screen appearance of fakestyle (or fakebold according to OOo bug database) is still nowhere to be seen in the Linux version.
This time around, however, with Firefly's JCA status already cleared and that his patches are now divided into smaller groups for easier review, the path is finally cleared for bringing most of his contributions into the mainline OpenOffice.org codebase. This should benefit thousands of CJK OpenOffice.org users out there. Some of his patches solved bugs or missing features in Linux version, while other patches would benefit users on all platforms.
Patches
Function of his patches
Taken from his patch release info against OOo 2.0 and 2.0.2 (information in Chinese, to be translated to English)
- http://opendesktop.org.tw/modules/news/article.php?storyid=10
- http://opendesktop.org.tw/modules/news/article.php?storyid=49
With Firefly's permission, his Chinese Patch log is posted here as in the following:
- 中文字型粗、斜體支援。
- [Linux] The display of bold and italic style for regular-only font: this speaks for most CJK fonts
- Fixed in Bug 18285
- 修正繁簡轉換錯誤,包括標點符號(範例為繁體『點』這個字,有興趣的朋友可自行測試),另有許多字會轉成日文漢字。
- [All platforms] Fixed many incorrect conversions between Traditional and Simplified Chinese characters
- [All platforms] Fixed many incorrect conversions between Traditional and Simplified Chinese characters
- 修正字體移除新增紀錄不正確的問題。
- 中文字體名稱顯示。
- [Linux] Fixed the issue of displaying font name in non-ASCII characters, especially font name in CJK characters
- Note: In terms of feature, this should be considered as regression from OOo 1.x, as it was okay in OOo 1.x Linux version to display font name in non-ASCII character
- 正常顯示、列印新細明體與標楷體。
- [Linux] Correct display and printing of "MingLiu" and "PMingLiu" font face, found in Microsoft Windows
- [Linux] Correct display and printing of "MingLiu" and "PMingLiu" font face, found in Microsoft Windows
- 優先選用Over The Spot 輸入模式,較為符合 CJK 使用者習慣。
- [Linux] Prefer "Over The Spot" mode over other modes in XIM / gtkimmodule input interface, this matches closer to the habit and behavior of CJK users.
- [Linux] Prefer "Over The Spot" mode over other modes in XIM / gtkimmodule input interface, this matches closer to the habit and behavior of CJK users.
- 排除XLFD系統,看得到能顯示就一定能印。
- [Linux] Remove the support of XLFD font system, this way you can achieve WYSIWYCP (What You See Is What You Can Print)
- [Linux] Remove the support of XLFD font system, this way you can achieve WYSIWYCP (What You See Is What You Can Print)
- 中文字型優先排列,字型選單展開後,中文字型名稱排在英文之前。
- [All platform] Re-order the display of font names in the font selection pull-down menu: Chinese font will be shown before English and other fonts
- [All platform] Re-order the display of font names in the font selection pull-down menu: Chinese font will be shown before English and other fonts
- 中英文採用不同顯示作法,不會損害英文美觀,中文字加強顯示效果。
- [Linux font handling] To display English and Chinese font glyph with different hinting algorithm. In this way, the beauty of English font will be preserved; while the display of Chinese (CJK) font can be enhanced
- [Linux font handling] To display English and Chinese font glyph with different hinting algorithm. In this way, the beauty of English font will be preserved; while the display of Chinese (CJK) font can be enhanced
- 取消首次使用註冊畫面。
- [All platforms] Remove the registration screen when running OpenOffice.org for the first time
- [All platforms] Remove the registration screen when running OpenOffice.org for the first time
- 修正預設使用方正字體問題。
- [All platforms] Modify the default choice of displaying FZ font (方正字體) to another font for Chinese language
- [All platforms] Modify the default choice of displaying FZ font (方正字體) to another font for Chinese language
- 最適化介面文字大小。
- [All platforms] Fine tune font size of the OpenOffice.org GUI interface in CJK users' perspective
- [All platforms] Fine tune font size of the OpenOffice.org GUI interface in CJK users' perspective
- 自動字體性質分類匹配。當文件中,指定了系統沒有的字體時,依據字體性質,自動尋找最佳替代字體,不會亂找字,不必人工設定!可依據的字體性質為:明/宋體、楷書體、隸書體、圓體、黑體、仿宋、行書、勘亭流、古印體、魏碑、鋼筆、新藝體、綜藝體、海報體、空疊、廣告體,POP 體、手寫體、注音體、 符號...等字體,系統聰明匹配,免除因系統不同而出現排版差異問題。
- [All platforms] Intelligent font matching system (more on this later)
- [All platforms] Intelligent font matching system (more on this later)
- 自動尋字,只要系統有這個字,就一定可以看、印,避免□□□出現。
- [All platforms] Automatic search and replace of missing glyph for the font in use by another; this avoids the bug of showing garbage like □□□
- [All platforms] Automatic search and replace of missing glyph for the font in use by another; this avoids the bug of showing garbage like □□□
- 另外修正了方程式編輯器部份符號無法顯示問題,以及光碟安裝時,某些 Distro 無法自動辨識 cramfs 的問題。而安裝方式,除了光碟安裝(ISO)外,RPM 格式的安裝套件,已經簡化成兩個 RPM 套件檔。
- [All platforms] Fixed the issue of missing symbols in OpenOffice.org Math
- [Linux] Fixed the issue of some distro(s) unable to recognize and mount through cramfs (for LiveCD! version)
- [Linux] RPM package is also available for the patched "OpenOffice.org Linux Chinese enhanced edition". It is now grouped and re-packaged as two RPM files for easy installation.
ToDo: Translate the remaining 10% content
Source code of the whole patch set
All the source code of Firefly's patches against OOo 2.0.2 can be found in this page, released under LGPL on March 21, 2006:
- http://opendesktop.org.tw/modules/news/article.php?storyid=53
- ftp://openoffice.mirrors.tds.net/pub/openoffice/stable/2.0.2/OOo_2.0.2_src.tar.gz (Direct download)
Bugs reported
In order to get the patch merged into the mainline OOo code base, relevant bug reports were filed to match each patch against the specific bug/missing feature in question:
Bugs filed that relates to Firefly's patches
In-depth bug / feature discussion
Intelligent font matching system
To Do List
- Organize patches into different categories (working on: Zero0w)
- Translate the Chinese comment in the patch to English
- Invite OOo developers to discuss the merit of the patches: how to modify, adapt and integrate them
- Adding and enriching the above list of in-depth bug / feature discussion