一、安装依赖(仅 1 次)
安装Python脚本,打开 CMD / 终端,运行:
pip install requests
以中转英为例:
二、准备翻译脚本
1. 新建脚本文件
新建文本文档 → 粘贴以下代码 → 另存为 translate_ts.py(保存类型:所有文件 编码:UTF-8)
import xml.etree.ElementTree as ET
import requests
import json
# ================== 配置 ==================
TS_FILE = "lv_en.ts" # 你的 ts 文件名
OUTPUT_FILE = "lv_en_translated.ts" # 翻译完成后的 ts
FROM_LANG = "zh" # 源语言:中文
TO_LANG = "en" # 目标语言:英文
# ==========================================
def translate_text(text):
try:
url = f"https://api.mymemory.translated.net/get?q={requests.utils.quote(text)}&langpair={FROM_LANG}|{TO_LANG}"
res = requests.get(url, timeout=10)
data = res.json()
return data["responseData"]["translatedText"]
except Exception as e:
print(f"翻译失败:{text},错误:{e}")
return text
# 解析 ts 文件
tree = ET.parse(TS_FILE)
root = tree.getroot()
total = 0
success = 0
# 批量翻译
for context in root.findall("context"):
for msg in context.findall("message"):
source_node = msg.find("source")
if not source_node or not source_node.text or source_node.text.strip() == "":
continue
total += 1
source = source_node.text
trans = translate_text(source)
print(f"【{total}】中文:{source}")
print(f" 英文:{trans}\n")
trans_node = msg.find("translation")
if not trans_node:
trans_node = ET.SubElement(msg, "translation")
trans_node.text = trans
trans_node.set("type", "finished")
success += 1
# 保存翻译完成的 ts
tree.write(OUTPUT_FILE, encoding="utf-8", xml_declaration=True)
print(f"\n✅ 翻译完成!共 {total} 条,成功 {success} 条")
print(f"📄 输出文件:{OUTPUT_FILE}")
2.放置文件
将以下两个文件放在同一个文件夹:
lv_en.ts(你的翻译源文件)translate_ts.py(脚本)
三、运行脚本 逐条翻译
方法 1:CMD 打开文件夹
-
Win + R→ 输入cmd回车 -
用
cd命令切换到你的文件夹(/d参数是跨盘必须加的,同盘可以省略)cd /d D:\QtProject\translations
3.运行脚本
python translate_ts.py
方法 2:直接在文件夹打开终端
文件夹空白处 右键 → 在终端中打开然后运行:
python translate_ts.py
四、生成 .qm 文件
方法 A:Qt 语言家一键生成
- 把翻译好的
lv_en_translated.ts放到项目里 - 工具→ 外部工具→ 语言家(Linguist)→lrelease 自动生成
lv_en.qm
方法 B:命令行生成
-
打开 Qt 命令行(Qt Creator → 工具 → 外部 → Qt 命令行),或者在 CMD 里进入 Qt 的
bin目录 -
用
lrelease命令把翻译好的 ts 编译成 qm:lrelease lv_en_translated.ts -qm lv_en.qm
五、放入项目使用
- 将
lv_en.qm放入项目目录 - 在
main.cpp加载翻译 - 完成中英文切换