在 Windows 上使用小麥注音輸入法

今年上半年度個人在 side project 上的主要心力,大概就是把小麥注音輸入法移植到 Windows 系統上。對我來說,相當於在幾個主要的作業系統上,都有我慣用的中文輸入法,也都比較能夠發揮生產力。

小麥注音是一套從 macOS 系統上開始發展的注音輸入法,在 2022 年的時候,因為幾個朋友平常工作用的機器也不侷限在 macOS 上,所以也開始把自己慣用的輸入工具移植到其他平台上,包括基於 fcitx5 框架的 Linux 版本,而我自己出於好玩,把原本的程式改用 TypeScript/JavaScript 寫了一次,而做出了 Chrome OS 版本,我當時把一台舊 PC 裝上了 Chrome OS Flex,我在那台機器上,也有了順手的輸入法了。

那時候也大概看到了一個技術上的可能 — Windows 上有一套叫做 PIME 的輸入法框架,在這個框架上,可以用 Python、或是可以用 Node 執行的 JavaScript 的輸入法,既然小麥有一個以 TypeScript/JavaScript 寫成的版本,那就有透過 PIME 移植到 Windows 的可能。既然技術上可行,後面就是資源的問題了,人到中年能夠用在工作與家庭以外,還能投入到其他出於興趣的專案上的時間實在不多,大概是在過年期間,才有時間看一下 PIME 的程式,然後讓小麥的程式在 PIME 上面動了起來。

Continue reading

如果你是從 10.4 直接升級到 10.6,然後遇到中文輸入法問題

如果您手上的麥金塔電腦是在大概三年多之前購買的,當時裡頭所安裝的作業系統是 Mac OS X 10.4 Tiger,你跳過了 10.5,而在最近幾個月裡頭,透過升級安裝、而不是整台機器重灌,將系統升級到 10.6 Snow Leopard,那麼,您可能就會遇到這樣的問題-原本在 Tiger 裡頭的第三方中文輸入法(如 OpenVanilla、Yahoo! 奇摩輸入法、嘸蝦米…)跑得好好的,到了 Snow Leopard 上,卻無法打字。

蘋果在 10.4 到 10.5 之間,輸入法的架構設計有一次相當大的改變,所以許多輸入法必須分別推出供 10.4 與 10.5 使用的兩種版本。一些細節這邊先略過不提,簡單來說,就是,在 10.4 上,必須要使用 10.4 架構的輸入法,在 10.5 上,基本上建議使用 10.5 架構的版本,10.4 架構的版本只能算是相容,到了 10.6,繼續使用 10.4 版本,就會有問題了-最大的問題是,10.4 架構的輸入法只能夠在 32 位元應用程式中使用,但是 10.6 作業系統都所內建的都是 64 位元應用程式。

所以,在升級到 10.6 之後,便需要刪除原來的 10.4 架構輸入法。10.4 輸入法程式位在「資源庫」的「Components」目錄下,您也可以透過一個簡單的輸入法移除工具刪除。之後,再安裝 10.5 及之後架構的版本。

嘸蝦米輸入法的安裝程式裡頭其實同時包進了 10.4 與 10.5 的安裝套件,在開始安裝的時候,會判斷目前的作業系統,安裝適合的版本,所以,直接重新放進安裝光碟,再裝一次,就會是正確版本了。Yahoo! 奇摩輸入法方面,則是直接從網站上就可以看到有兩種 Mac OS X 版本可以下載,請下載 10.5 的那個版本。

至於 OpenVanilla,基本上一直沒有時間把 0.9 做完(而且往往做到一半又有想要整個刪掉重寫的衝動…),如果是想要繼續使用 0.8 系列的話,可以試試看去年九月放上去的 0.8.1 (下載連結) 這個版本。

跟政府要錢、開會、以及「人文的答案」

拜讀侯吉諒君的〈改善注音輸入法〉乙文。作者在文中以國文教育出發,講述目前學子在廣泛使用電腦作為溝通工具的環境下,因為現有注音輸入法的缺陷,導致經常使用錯別字,而有今不如昔,現代人國文程度低落之嘆。

最後做出以下結論:

語言輸入法是由電腦工程師研發出來的,工程師可以解決科技的問題,但卻無法提供人文的答案。當科技工具已經普遍改變了語文應用的生態時,教育部有必要投入人力,延聘、委託語言教育、電腦科技人才共同研究,改善目前注音輸入法的缺點,使學生在使用電腦的時候,可以接收、使用到正確的文字。

這種憂心忡忡強調「國文程度低落」的論調,往往看來是出自直觀的感受,一直以來也沒看到誰拿出的證據可以充分證明。比方說,你現在在交友網站的留言中看到一堆錯字,覺得以前不會有這種現象,可能只是以前其他人都是透過《愛情青紅燈》找筆友,私下往來寫了一堆錯字連篇的情書,沒有被你看到而已;你會說,現在的媒體錯字比以前的媒體多,但是現在的媒體與媒體從業人員也比以前多,現在的學生錯字多,但是以前學習能力與環境與現在錯字連篇的學生相仿者,搞不好都是文盲。

先姑且不論。既然主題是「改善注音輸入法」,除了討論注音輸入法造成的教學問題後,進一步要討論的便是-到底是什麼原因造成注音輸入法現在的問題?為什麼現在的注音輸入法不能夠在完全不選字的狀況下就產生正確的句子?如果不討論原因,那要從何改善?

在〈改〉文中能夠看到的解釋看來只有兩點:1.輸入法的開發缺少人文的參與、2.政府沒有出錢。那麼便可以繼續追問-所謂的人文應該如何參與、有多少參與?而如果是政府出錢就可以解決-有時候我真的很驚訝,原來還有這麼多人,還能夠對中華民國政府抱持這麼大的信心-我們不妨看看前幾年「台灣大百科」到目前為止的經營成果。真的要對下一代好,與其冀望政府建設,倒不如直接把經費換算成小朋友的營養午餐。

當你是真的想要改善注音輸入法,面臨到的具體問題是-注音輸入法天生有怎樣的限制,你願意花上多少的成本,過程中你所需要的各種必要資源能否即如何取得,以及,最後做出來的東西,市場能不能接受。

Continue reading

OpenVanilla 專案的近況

我們最近又修改了 OpenVanilla 專案的程式碼的一些地方,包括:

1. 新的偏好設定工具

我們最近整個重寫了 Mac OS X 版本的偏好設定工具。新的偏好設定中,一方面外觀有所不同,另一方面也簡化了各項設定的操作方式。比方說,我們將原本散落在三個 tab 中的各項設定,精簡集中在同一個 tab 上;如果您移除了、或是從來沒有安裝過某些模組,例如藏文輸入法等,也便不會顯示在設定頁面中。

在設定用來切換輸入法或啟用/停用輸出轉換模組的快捷鍵時,也改用像是「系統偏好設定」中設定快速鍵的方式,只要直接按下鍵盤上的按鍵組合便可完成設定,而不用從下拉選單中慢慢選擇某組設定。

Picture 1

Picture 2

2. 程式碼的重整

我們重新整理了 Mac OS X 版本的模組載入器(Loader)以及 CocoaVanilla Framework 的程式碼,大幅改寫了原本不安全的部份。例如,我們在呼叫外部應用程式時(例如叫出偏好設定程式),我們改呼叫 Cocoa 提供的 API,而不是呼叫 system() 函式。

3. 文件工作

因為許多開發者的需求,我們也開始著手撰寫開發者文件。因為這個專案主要使用 C++ 與 Objectve-C 語言開發,所以我們使用 headerdoc 作為我們的文件工具。

我們已經在 OpenVanilla.h 這個檔案中加入了相當的註解-OpenVanilla.h 是 OpenVanilla 專案最重要的一份定義,包括撰寫一套 OpenVanilla 模組所需要使用的各種物件定義與函式。如果您使用 Mac OS X、安裝了 Xcode,也從我們的 svn repository 中取得了一份 OpenVanilla 的程式碼,便可以直接使用 headerdoc2html,從各個 header file 中,產生 HTML 格式的說明文件。

4. 開發環境與工具

接下來,我們會只使用 Mac OS X 10.5 SDK 以及 Xcode 3 或是更新版本的 Xcode,開發 OpenVanilla。我們會開始使用一些原本在 10.4 SDK 所沒有的 API 以及檔案格式,例如,前述的新版偏好設定工具,介面上就全部使用 xib 檔案,而不是使用 nib 檔案。

我們還是會繼續推出供 10.4 使用的版本,但是,如果您想要自行編譯 OpenVanilla,或是加入開發行列,您必須在 Mac OS X 10.5 Leopard 使用 Xcode 3,而無法使用 Xcode 2.5 或是其他較早版本開啟專案檔案。

沒有完成的事情還有太多太多,但是我們是會繼續努力。

Continue reading

正確率的前提

上週一 WWDC 開幕時,蘋果便宣布、並提供了新版本的 「那個裝置」的SDK,裡頭也包含了新的「那個裝置」的模擬器。除了拿來寫點小程式當做練習之外,同時也把玩了一下新版模擬器中所包含的中文手寫辨識輸入。辨識效果還算不壞,就算故意把字寫得龍飛鳳舞,系統也可以辨識一二。

不過,用了一下還是稍微有些抱怨,一是蘋果似乎以為這套手寫系統不需要任何解說就可以使用,所以,像中文標點符號不是靠直接寫出標點的形狀,而是要透過寫一個小短橫,然後從畫面右側選擇各種標點符號,這種我花了一些時間才試出來的使用方式,就沒有看到有相關解說;二是,有幾個字-如「很」、「上」等,我寫下之後,怎麼都辨識不出來,怪的是,我同事測試的時候,卻沒有這個問題。

Continue reading

鎚子與釘子

做輸入法這種工作最基本、也最麻煩的地方就在於相容性,當你開始做了輸入法之後,弄個一個線上討論區,你會看到最多的問題、也是讓你最為無力的問題,也就是相容性。

就像你做個網站,先不管網站上的內容如何功能如何,你會遇到的最基本的問題是怎樣在 Internet Explorer、Firefox、Safari、Opera 等不同瀏覽器中,都可以看到相同的頁面;而當你開始做一套輸入法,也先不要說輸入法的功能如何,第一個要求就是怎樣可以在各式各樣的應用程式中-辦公軟體、通訊軟體、美工軟體、線上遊戲,都可以打出字,都可以正確出現選字窗等輸入法所需要的使用介面,還有,因為輸入法基本上屬於每個應用程式都會載入的外掛程式,你也不能夠讓各個應用程式在載入了你這個輸入法外掛之後因此當機。

如果你想要靠單打獨鬥或是光是仰仗社群,光是相容性這份本分,就不知道可以消磨掉多少熱情。文書或是辦公軟體,如果是使用系統的文字元件,或是規規矩矩的按照系統規格實作,大多沒有問題,但是,你在 2008 年還在做輸入法,你就會發現,許多人的需求,並不是在辦公軟體中使用輸入法,或是用在所謂生產力的用途上,而輸入法最大的相容性問題,大多來自於-線上遊戲。

Continue reading