最近來越南出差,遇到要將自己學習心得轉換成越南文給越南同事看。就研究了一下如何用Python來翻譯整個Word的文件,具越南同事說他有比對中文跟越南文意思差不多。
本文將教您如何使用 Python 的 python-docx
與 googletrans
套件,快速完成 Word 文件的自動翻譯。
我測試版本為
python 3.11.3
python-docx version: 1.1.2
googletrans version: 4.0.0-rc.1
繁體中文範本

轉換成越南文

開始準備
在開始之前,請確保您已安裝以下必要的 Python 套件:
- python-docx:用於處理 Word 文件(.docx 格式)。
- googletrans:Google 翻譯 API 的非官方實現,用於進行多語言翻譯。
pip install python-docx
pip install googletrans==4.0.0-rc1
程式碼解析
以下是完整的程式碼,功能是將 Word 文件中的段落逐一翻譯並儲存為新文件。
主程式碼
from docx import Document
from googletrans import Translator
def translate_word_document(input_file, output_file, source_lang='zh-cn', target_lang='vi'):
# 加載翻譯器
translator = Translator()
# 打開 Word 文件
doc = Document(input_file)
# 遍歷每個段落
for paragraph in doc.paragraphs:
if paragraph.text.strip(): # 確保段落非空
try:
# 翻譯文字
translated_text = translator.translate(paragraph.text, src=source_lang, dest=target_lang).text
# 替換原段落的文字
paragraph.text = translated_text
except Exception as e:
print(f"翻譯失敗: {paragraph.text}, 錯誤信息: {e}")
# 保存翻譯後的文件
doc.save(output_file)
print(f"翻譯完成,已保存至 {output_file}")
# 使用範例
input_file = r"原始文件路徑.docx" # 替換為您的原始 Word 文件路徑
output_file = r"翻譯後文件路徑.docx" # 替換為您希望儲存的路徑
translate_word_document(input_file, output_file)
詳細解析
1. 載入所需的模組
from docx import Document
from googletrans import Translator
Document
是python-docx
提供的主要類,用於讀取和編輯 Word 文件。Translator
是googletrans
提供的翻譯器類,支援多種語言的翻譯。
2. 定義函式 translate_word_document
這個函式接收四個參數:
input_file
:原始 Word 文件的路徑。output_file
:翻譯後文件的儲存路徑。source_lang
:源語言(預設為簡體中文zh-cn
)。target_lang
:目標語言(預設為越南語vi
)。
3. 初始化翻譯器
translator = Translator()
- 建立一個翻譯器實例,稍後會用於翻譯文字。
4. 讀取 Word 文件
doc = Document(input_file)
- 使用
Document
類開啟指定的 Word 文件。
5. 遍歷段落並翻譯
for paragraph in doc.paragraphs:
if paragraph.text.strip(): # 確保段落非空
try:
translated_text = translator.translate(paragraph.text, src=source_lang, dest=target_lang).text
paragraph.text = translated_text
except Exception as e:
print(f"翻譯失敗: {paragraph.text}, 錯誤信息: {e}")
- 段落過濾:僅翻譯非空段落(跳過空白段落)。
- 翻譯文字:透過
translator.translate
翻譯段落文字,指定源語言與目標語言。 - 錯誤處理:若翻譯失敗,程式會列印錯誤訊息並繼續處理其他段落。
6. 儲存翻譯後的文件
doc.save(output_file)
- 翻譯完成後,將結果存為新 Word 文件。
如何使用
- 準備原始文件
將您要翻譯的 Word 文件放置在指定目錄,記下其路徑(例如:原始文件路徑.docx
)。 - 執行程式碼
將input_file
和output_file
替換為實際的文件路徑後執行程式碼。
注意事項
- 翻譯品質
googletrans
使用 Google Translate 進行翻譯,適用於一般情境,但專業文件可能需要進一步校對。 - API 限制
googletrans
非官方 API,可能受限於 Google Translate 的反爬機制,若出現問題建議使用官方 API。 - 格式損失
目前程式僅翻譯純文字,對於表格、圖片、超連結等複雜格式的支援有限。