古典文獻領域的繁體中文輸入
Planted August 19, 2024
截至目前,大陸範圍内進行古典文獻領域相關的寫作,在文字輸入上仍然存在着不小的麻煩。由於國内常年推行簡化字,各主流輸入法對大陸正體的繁體字輸入的支持相當的差。一些大陸古籍寫作的規範字没有收錄或權重很低,繁簡轉换皆以港臺字形爲主。這就導致輸入時要麽需要翻數頁才能找到,要麽乾脆打不出來。鑑此,我便苦苦尋找相應的解决方案。各大主流輸入法顯然並不會關照這種極其小衆的需求,所以只能求助於社區方案。目前在漢字輸入領域比較成熟的繁簡轉化框架是BYVoid/OpenCC,但可能因爲作者是非大陸背景,所以没有對大陸正體字進行適配。但幸好這個框架提供了一套自定義的方法,所以我心想:或許有其他有能力的朋友已經做出了一套符合大陸規範的繁簡轉化表。偶然間,我在Github上找到了一個有趣的項目:forFudan/GujiCC。看樣子作者和我一樣也相對這個困擾已久的問題給出自己的解决方案。于是我用他提供的配置文件試了一段時間,總體來説,其效果是令人滿意的,但是還是有一些小瑕疵,雖然問題不大,但是讓人心癢,故促使我做了這個小項目。具體原因有如下几條。
首先感謝這個作者花了很大力氣適配了國家的相關標準。
中華人民共和國國家標準《古籍印刷通用字規範字形表》(GB/Z 40637-2021)中提及:
本文件适用于1911年以前历代传世古籍的印刷与出版,也适用于现代书刊的繁体版印刷。
故而本項目以《古籍印刷通用字規範字形表》和《辭源》採字爲標準,定名「古籍通規繁體標準」,基於 OpenCC 項目 製作繁簡轉換對應表,適用於 OpenCC 引擎,配置名爲 s2g.json。
但是此《標準》争議很大,不乏問題錯誤之處,而且從這份標準並非強制規範這一點來看,説明規範制定者也有自知之明。其問題 forFudan/GujiCC 項目作者在他的 readme.md
中也有所論述。這裏就筆者自己的體驗來説説發現的幾個難以理解的規定。
一是《標準》在一衆“亘晅姮咺烜暅”的簇擁下規定了一個“恆”,筆者之愚鈍,自然是不足以揣測上意,但依然好奇這究竟是出於什麽恢恑憰怪纔有如此神來之筆。尤其是“暅”這個字更是令人嘖嘖稱奇。正如 forFudan/GujiCC 項目作者所説“本表只是定義古籍漢字的字形,並非規定繁簡漢字的對應關係。有時多個異體字都在表中”,如果异體之間有意義分離那還可以理解,但是像這種純粹的字形差异實在是讓人不解。
二是所規定的字符並非大陸通用繁體中最常用的,如“奐換喚渙瑍煥”,各大古籍出版社多用“奂”作聲旁的字而不是“奐”。
還有“况”和“決”之類收字標準雜糅的情况,若要是都按照《説文》的分部來,何必區分呢?
forFudan/GujiCC 項目作者雖然也意識到了這些問題,但是囿於字之萬並不能一一更正過來,所以在其“古籍通規繁體標準”和“調和大陸繁體標準”中上述兩個問題依然存在。
故此,我打算對此進行一些修補,但是《標準》實在是太雜糅了,想要定點剔除更改過於困難。所以决定採用字統網的正體字形。字統網的正體字根據《通用規範漢字表》的《規範字與繁體字、異體字對照表》、《第二次漢字簡化方案(草案)》(已廢止)和Unicode所收大陸字形繫聯而成,相對通行。我將《通用規範漢字表》所收簡體字形和《標準》所收繁體字形合併爲一份基本字表。這裏肯定會有重複,但並不影響後續的操作。隨後使用字統網提供的api接口,逐個逆向檢索其對應的繁體正體字。如簡體字“系”對應“系”“係”“繫”三正體字,於是簡體字“系”與正體字“系”“係”“繫”設置關聯。由於絶大多數對應都爲一對一,轉换邏輯被寫定爲轉成第一個,即“干” — “干” “乾” “幹”在無規定的情况下均轉换爲“干”。爲了避免出現“乾活”“干濕”“天幹”的錯誤,forFudan/GujiCC 項目作者就已經使用了OpenCC自帶的全詞轉换的功能,並製作了詞庫。這個功能可以將“干活 ”固定轉爲“幹活”而不是其他,因此大部分情况都不會有離譜的錯誤。該詞庫並不需要完全重做,只需要小修小補,這裏便直接繼承了下來。
雖然能够覆蓋到絶大多數的場景,但有一些問題由於精力不足未能徹底解决:
- 一些並非繁簡對應關係,却古今使用有側重差异的异體字,無法直接從字統網獲取,如“並”“併”“并”、“從”“从”、“於”“于”之類,需手動添加(這三個已經加進去了)。
- 詞庫由於直接繼承,會存在單字依照字統網的正體,而組詞却是《標準》字的情况。筆者打算隨發現隨修改(畢竟没有什麽更好的方法)。
如果知道怎麽用的話,可以直接下載OpenCC的配置文件(見文末)。
有了OpenCC的轉换表,剩下的解决輸入法程序也就是輸入框架的問題了。不過我們幾乎没什麽選擇,現在還活着而且可以折騰的開源輸入法框架衹有RIME。
RIME除了很靈活以外,還跨平臺,所以macOS用户和Windows用户都可以使用。現在文科領域用mac的也不少(筆者即是),因此還是很方便的。
-
RIME的macOS實現叫作“鼠鬚管”,Windows實現叫作“小狼毫”(都是好筆啊/讚賞),下載對應系統即可,官網地址:https://rime.im/
- macOS和Windows下載下來的都是安裝引導程序(macOS:
Squirrel-{版本號}.pkg
, Windows:weasel-{版本號}-installer.exe
),直接打開,默認參數不需要修改,狂點下一步即可。
- macOS和Windows下載下來的都是安裝引導程序(macOS:
-
安裝成功后,就可以切换到RIME默認的輸入法了。但此時RIME的輸入方案是默認的,需要替换成我們自定義的方案。
-
RIME會在系統任務欄(Windows)/菜單欄輸入法欄(macOS)顯示有圖標。右鍵(Windows)/直接點擊(macOS)會彈出一個設置菜單。如下所示:
macOS
RIME在菜單欄上
RIME展開
Windows
RIME在任務欄上
RIME展開
-
我們點擊RIME菜單的“用户設定”(macOS)/“用户文件夾”(Windows),會自動打開一個文件夾。
-
將筆者附在文末的RIME整合包(
my_rime.zip
)直接解壓到這個目錄下(如果有文件直接替换覆盖即可)。 -
再打開RIME菜單點擊“重新部署”,整合包就安裝完成。
-
切换到RIME輸入法,按 Control+~(macOS)/ Ctrl+~(Windows),會彈出來“方案菜單”,連續按 2 和 4 即可切换繁簡(默認是繁)。
有問題一定要反饋啊!筆者還指望甩手仰賴方家的反饋繼續更新完善🥺。
😄把字庫、詞庫的問題通通丢到這個郵箱吧:hans@urika.dev
2024.8.19
- OpenCC的配置文件 :s2gs.zip(422KB)
- RIME整合包:my_rime.zip(16.4MB)
- 該整合包基於霧凇拼音RIME方案:https://github.com/iDvel/rime-ice