Vibe Coding 很快,但簡體用語改不完?試試 zhtw

🌏 Read this article in English


Vibe Coding 改變了我們寫程式的方式。Cursor、GitHub Copilot、Claude — 這些 AI 工具讓開發速度快了好幾倍。

但有一個小問題:AI 生成的中文內容,常常是簡體用語。

不是「软件」vs「軟件」這種字體問題,而是「軟件」vs「軟體」、「數據庫」vs「資料庫」、「調用」vs「呼叫」這種用語差異。

這不是 AI 的錯。簡體中文的訓練資料本來就比繁體多,AI 自然會傾向使用簡體用語。但對台灣開發者來說,這些詞彙看起來就是不順眼。

我最近接手一個 Vibe Coding 產出的專案,打開一看:400 個檔案,滿滿的簡體用語。

手改?改到什麼時候?

所以我做了 zhtw。

zhtw:一個指令,全部搞定

pip install zhtw

安裝完成後,兩個指令就能解決問題:

zhtw check ./src

# 自動修正
zhtw fix ./src

實測那個 400 個檔案的專案:幾秒鐘,全部搞定。

Key Insight: Vibe Coding 讓開發變快,zhtw 讓收尾變簡單。AI 負責產出,你負責品質把關,zhtw 負責用語在地化。

如果你想先看看會改什麼,可以用 --dry-run

zhtw fix ./src --dry-run

這會列出所有會被修改的地方,但不會實際改動檔案。

為什麼不只是「簡轉繁」?

市面上的簡繁轉換工具很多,但大多數是「字體轉換」,不是「用語轉換」。

差別在哪?

簡體 字體轉換 zhtw(用語轉換)
软件 軟件 軟體 ✅
数据库 數據庫 資料庫 ✅
调用 調用 呼叫 ✅
异步 異步 非同步 ✅
内存 內存 記憶體 ✅

zhtw 內建 400+ 個台灣開發者常用術語的對照表,這些都是人工審核過的詞彙。

Key Insight: 用語轉換 ≠ 字體轉換。「數據庫」轉成「資料庫」才是台灣開發者要的,不是「數據庫」(繁體字但大陸用語)。

寧可少轉,不要錯轉

zhtw 的設計哲學是保守策略:只轉換有明確定義的詞彙。

為什麼?因為過度轉換會造成更多問題。

舉例來說,「權限」在兩岸都通用,如果工具把它轉成「許可權」,反而改壞了。zhtw 遇到這種詞彙會直接跳過,不做任何處理。

Key Insight: 保守策略讓你可以放心對整個專案執行 zhtw fix,不用擔心改壞原本正確的內容。

你可以用在哪裡?

zhtw 的應用場景不限於程式碼:

Vibe Coding 專案收尾

AI 生成的程式碼、註解、文件,一次處理完畢。

技術文件在地化

把簡體的技術文件轉成台灣用語,貢獻給開源專案或內部使用。

產品多語系字串

i18n 的 zh-TW 檔案混進簡體用語?zhtw 幫你檢查。

個人知識庫整理

Obsidian、Notion 筆記裡的簡體用語,批次轉換。

進階功能

排除特定檔案:.zhtwignore

就像 .gitignore,你可以建立 .zhtwignore 來排除不需要處理的檔案:

# .zhtwignore
vendor/
node_modules/
*.min.js
test-fixtures/

行內忽略

有些地方你刻意保留簡體(例如測試資料),可以用註解控制:

# 單行忽略
test_data = "软件"  # zhtw:disable-line

# 區塊忽略
# zhtw:disable
legacy_strings = {
    "软件": "software",
    "硬件": "hardware",
}
# zhtw:enable

JSON 輸出

如果要整合到其他工具或 CI 流程:

zhtw check ./src --json

輸出結構化的 JSON,方便程式解析。

技術細節

zhtw 採用 Aho-Corasick 演算法,時間複雜度 O(n),處理大型專案也很快。

而且完全離線執行,你的程式碼不會傳到任何伺服器。這對企業內部專案來說特別重要。

結語

Vibe Coding 時代,AI 幫我們寫了大部分的程式碼。但最後的品質把關,還是要靠我們自己。

zhtw 解決的是一個小問題:讓 AI 生成的內容符合台灣開發者的用語習慣。

如果你也覺得「數據庫」看起來不順眼,試試看:

pip install zhtw

專案開源,歡迎貢獻:https://github.com/rajatim/zhtw

有問題或建議,歡迎到 Issues 回報。


Sources

Leave a Comment