繁簡轉換引擎
RustZ 有兩種繁簡轉換引擎,在「設定 → 預設的繁簡轉換」切換,命令列版用 /e:opencc 或 /e:convertz。
自訂詞典優先
不論哪一種引擎,轉換前都先以自訂詞典比對:從左到右、最長的詞優先,比對到的詞直接輸出,其餘的文字才交給引擎。
詞庫增強引擎(OpenCC)
預設引擎,使用 OpenCC 1.4.2 的詞庫,轉換方式也與 OpenCC 相同:
- 斷詞:以詞庫做最長詞比對,把文字切成詞段(簡 → 繁用 STPhrases 的 49,269 條詞彙)。
- 轉換鏈:每個詞段依序通過幾組詞典;每一組先查詞彙、查不到再查單字。
| 方向 | 字形標準 | 轉換鏈 |
|---|---|---|
| 簡 → 繁 | OpenCC 標準 | 詞彙+單字 |
| 簡 → 繁 | 臺灣 | 詞彙+單字 → 臺灣字形(裏 → 裡、着 → 著……) |
| 簡 → 繁 | 臺灣+慣用詞 | 詞彙+單字 → 臺灣慣用詞與字形(软件 → 軟體) |
| 簡 → 繁 | 香港 | 詞彙+單字 → 香港字形 |
| 繁 → 簡 | 臺灣(+慣用詞) | 臺灣字形(與慣用詞)還原 → 詞彙+單字 |
| 繁 → 簡 | 香港 | 香港字形還原 → 詞彙+單字 |
| 繁 → 簡 | OpenCC 標準 | 詞彙+單字 |
繁 → 簡時,「字形標準」指的是來源文字的寫法。
例:
| 原文 | OpenCC 標準 | 臺灣 | 臺灣+慣用詞 |
|---|---|---|---|
| 头发很长,发展很快 | 頭髮很長,發展很快 | 頭髮很長,發展很快 | 頭髮很長,發展很快 |
| 里面的软件 | 裏面的軟件 | 裡面的軟件 | 裡面的軟體 |
| 内存和鼠标 | 內存和鼠標 | 內存和鼠標 | 記憶體和滑鼠 |
ConvertZ 相容引擎
沿用 ConvertZ 8.02 的資料,轉換方式也與原版相同:
- 逐字轉換:簡 → 繁 2,293 字、繁 → 簡 2,472 字(從 ConCmd 內建的 GBK ↔ Big5 對照表整理而來)。
- 詞彙修正:對轉換後的文字做最長詞優先的替換。繁體修正表 7,576 條、簡體修正表 2,879 條,來自 ConvertZ 8.02 內建的
BI_TradFix.dat與BI_SimFix.dat。
修正表比對的是轉換後的文字,而且整篇只掃描一次、比對到就跳到該詞之後。ConCmd 說明文件中的例子:
| 修正表 | 轉換前(逐字轉換後) | 修正後 |
|---|---|---|
明了,明瞭 | 已經天明了。眾人明了他的處境。 | 已經天明瞭。眾人明瞭他的處境。(第一個錯了) |
再加 天明,天明 | 同上 | 已經天明了。眾人明瞭他的處境。 |
加一條「轉了跟沒轉一樣」的詞條,就能擋住錯誤的修正——這是原版修正表常用的技巧,RustZ 保留了這個行為。
關掉「套用 ConvertZ 詞彙修正表」就只做逐字轉換。
該用哪一種
| 情況 | 建議 |
|---|---|
| 一般的簡體 → 臺灣繁體 | 詞庫增強,開「臺灣慣用詞」 |
| 只要字形轉換,不想改用詞 | 詞庫增強,關「臺灣慣用詞」 |
| 香港用字 | 詞庫增強,字形標準選「香港」 |
| 要跟 ConvertZ 轉出來的結果一模一樣 | ConvertZ 相容 |
「自動」字形的判斷
字形設成「自動」時(命令列沒給 /f:),RustZ 只在需要時轉換:
- 輸出 Big5:來源不是 Big5,而且文字裡的簡體專用字(Big5 沒有的簡化字)比繁體專用字(GB2312 沒有的繁體字)多,才做簡 → 繁。繁體的 UTF-8 檔輸出成 Big5 不會被「再轉一次」。
- 輸出 GBK 或 HZ:來源是 Big5,或文字裡的繁體專用字比較多,才做繁 → 簡。
- 其他編碼:不轉換字形。
指定「繁體」或「簡體」時一律轉換;唯一的例外是來源為 Big5 時不做簡 → 繁(本來就是繁體),以及輸出 Big5 時「簡體」無效。