Saturday, January 31, 2004

令人抓狂的 Panther 倉頡輸入法

Mac OS X 升級到 Panther 之後,支援了 HKSCS 編碼,這種編碼與 Big 5 相容,但是支援許多 Big 5 不支援的漢字以及中國大陸所頒訂的簡體字。在 Panther 裡,使用系統所附的倉頡輸入法就可以打出這些原本打不出的字,比方說,用「田一土戈」可以打出簡體的「国」這個字。

但新版的倉頡輸入法卻充斥著嚴重的程式錯誤(也就是 bug)。在輸入一組倉頡碼並按下空白鍵後,只要該組倉頡碼對應超過一個字(也就是所謂的重複字,多個字的倉頡碼正好相同),再緊接著輸入另一個字就會出現問題。情況可能有下列幾種:
  1. 出現亂碼。還好通常在一連串亂碼後,按下 return 鍵,正確的字仍會被輸入到文章裡。
  2. 不會出現亂碼,但不選字就無法繼續打字,不會自動選取第一個字。
  3. 不會出現亂碼,但不選字而繼續打字時,打的倉頡碼不會顯示出來。
  4. 花很長的時間讀取怪異的字元。
  5. 文字消失。例如打一個逗號,不選字,再打兩個其他的字,這兩個字的第一個字會消失,其前方也留下一個半形的逗號,而非應該打出的全形逗號。
  6. 有時出現亂碼後,若不理會亂碼繼續打下一字而此字的倉頡碼打錯,則可能無法用 delete 鍵將之前所打的碼(包括亂碼)刪除。此時使用者可能會先按 return 鍵先將已打的文字(通常是亂碼)輸入文章,但輸入後繼續打字就可能會發生打出的字不出現在游標的位置,或甚至導致正在使用的應用程式當掉。(通常是 Carbon 程式。)
  7. 有的字根本打不出。例如在許多 Carbon 程式裡打「卜竹一月金」然後選 2 也無法打出「顏」這個字。

以上情況可能在 Cocoa 程式較不明顯或不會發生,但在許多 Carbon 程式裡就經常出現。

另外,對於重複字的處理也存在著不一致的現象。在輸入有重複字的倉頡碼時,有時其重複字會全部列出來讓打字者選擇,有時卻又不列出,而必須由打字者在倉頡碼最前方加打一個「X」(重)來打出。

可以想見,由於此版倉頡輸入法支援非常多的繁簡漢字,因此有更多的字具有相同的倉頡碼,而上述的 bug 就成了極端擾人的問題。

還有,若是按 shift + ~ 再按 tab 來叫出符號表,並且按數字鍵選擇一個符號時,在 Cocoa 程式裡實際打出的是其他不相干的符號;而在 Carbon 程式裡,這些符號會被下一個字覆蓋掉。

這就是蘋果給我們的倉頡輸入法。它傷害了我這個倉頡輸入法使用者對蘋果產品的信心。

本文同步刊登於符號工作站

Monday, January 26, 2004

蘋果網站的多國語言文件

以色列的蘋果電腦網站。兩種不同書寫方向的文字混合在一起。
很多人都知道 Mac 有著極佳的多國語文支援。在蘋果電腦的開發者網站上,就有一篇關於電腦多國語文處理的文件。裡頭詳細地介紹了世界各種文字系統的特性,以及在電腦處理時可能遇到的問題。您可以點這裡來閱讀這篇文章。

根據這篇文章的介紹,電腦處理各種文字系統時必須解決許多問題,像是書寫方向,斷詞,排序,連寫,文字樣式,數字與日期格式等。電腦為了支援多國語文,必須為每個文字系統提供獨特的支援,而且更要考慮如何將多種不同文字系統夾雜顯示在同一篇文章裡。

這篇文章顯示蘋果公司對於多國語文的處理相當用心,而事實上從多年前, Mac 的多國語文支援就相當不錯。過去中文版 Windows 只能顯示中文和英文,不但不能處理中英文以外的各種文字系統,甚至連一些特殊羅馬字母都不能支援。像德文的 ß 和其他西歐文字中具有附加符號的 é 和 ñ 等字母都會成為亂碼。而相形之下, Mac 從 System 7 起就有相當優秀的多國語文支援,不但能顯示和輸入各種文字系統,也能將由左寫到右的文字(像英文)和由右寫到左的文字(像阿拉伯文)並排在同一篇文章裡。但是蘋果公司似乎從來不曾大力宣揚這項比 Windows 優越許多的功能。

本文同步刊登於符號工作站


Friday, January 9, 2004

多語文的簡體中文字體

Mac OS X 提供了極佳的多國語文環境,能支援許多種文字。而從 Mac OS X Jaguar 以後,簡體中文字體除了支援 GBK 碼裡的簡體字和繁體字外,也支援了其他幾種在中國境內使用的文字,包括蒙文、藏文和彝文。想看到這些文字,您可以從輸入法選單裡選擇「字元面板」,即可打開字元面板。 若使用的是 Mac OS X Panther,也可在「編輯」選單裡選擇「特殊字元」。

打開字元面板後,請在最上方的彈出式選單裡選擇 Unicode。然後您會在左方的列表裡看到各種文字或符號的名字。選 Mongolian 即可看到蒙文,選 Tibetan 可看到藏文,選 Yi Syllables 可看到彝文。

蒙文是一種從左至右直寫的文字,一個詞裡的每個字母都是連寫的,因此在一般只能從左向右橫排的文書處理軟體裡是無法正確地打字及顯示的。而蒙文的每個字母在詞首詞中及詞尾都可能各有不同的寫法,由於目前系統未提供適當的輸入法,因此打字也較不方便。

至於藏文在 Mac OS X Jaguar 裡雖然已經支援,但表示元音的附加符號無法正確地附加在輔音字母上。這點在 Panther 裡已經解決。

彝語是一種用於中國西南地區的語言。目前的彝文是一種音節文字,即每個符號代表一個音節。若您對音節文字的概念不熟悉,可以參考日文的假名,因為假名就是一種音節文字。不過彝語裡獨特的音節遠比日語多,因此必須使用更多的符號。

說到這裡我們可以看出 Mac OS X 的簡體中文字體的確還算不錯,發揮了 Unicode 的長處,對多種漢字和非漢字都提供了支援。繁體中文環境也應該多加點油了。