優化段落式標記語言的翻譯成本 | 原創,AI翻譯

Home 2025.07

我的 Jekyll 部落格使用 Markdown 撰寫段落。撰寫英文後,我會使用 DeepSeek 或 Mistral 等 AI 工具翻譯成另外八種語言。儘管它們已經相當便宜,但仍有改進空間。

有時候,我只修改一個字或一個段落,然後整篇文章的內容就會翻譯成另外八種語言。這種情況下,token 使用量很高。如果我只重新翻譯修改過的段落,token 使用量會較低,尤其對於長篇文章來說。

不過,我仍然希望使用 Markdown 來記錄我的想法。使用資料庫來維護和更新文章並不方便。使用 YAML 或 JSON 可能也會過於繁瑣。

關鍵在於識別編輯前後的文字差異。如果採用段落為基礎的方法,這意味着要使用換行符號 “\n” 來分割文字。

我需要知道編輯後哪些段落有變化,哪些沒有變化。我們需要在編輯前後的文字之間建立一對一的段落對應關係。

我們採用段落為基礎的方法,因為我們希望更新 AI 模型生成的翻譯。如果使用句子,可能不會那麼準確。

對於 Markdown 來說,可能更重要的做法是使用 Markdown 解析來根據 Markdown 元素同步翻譯。

但如果沒有程式碼區塊或特殊 Markdown 語法,我們可以採用段落為基礎的方法。

在簡單的段落為基礎的方法中,我們有兩個段落陣列,並需要知道它們如何對應。

在比較這兩個陣列中的任何段落時,有兩種可能的結果:它們相同或不同。如果不同,有幾種情況:兩者都是新增的、左邊的是新增的,或右邊的是新增的。

我只是想節省成本,所以我的目標是減少 token 使用量。我不需要其他任何東西。我只需要翻譯每個段落,快取結果,下次在每個段落中,我會先查找翻譯結果。如果不存在,則需要重新翻譯。

對於 Markdown 來說,情況稍微複雜一些。我不想翻譯程式碼區塊。因此,我們可以使用 Markdown 解析庫來區分程式碼區塊和普通文字。

幾週後,我將用 Python 和 Grok 來實現這個功能,因為這是一個實際問題。我需要解決它。

一個設計是關於快取文件。我將快取存儲在快取目錄中,文件名為 lang.json,例如 zh.json 等。


Back Donate