Markdown 翻译器

技术文档、开源项目、博客创作等领域,Markdown 已成为最常用的文本标记语言。然而,现有大多数翻译工具在处理 Markdown 内容时,容易破坏其原始格式,尤其在涉及代码块、LaTeX 公式或结构化元数据时,常常出现格式错乱、语义丢失的问题。

md-translator 正是为了解决这一痛点而设计的一款智能翻译工具。它不仅在保留 Markdown 结构的同时实现高质量翻译,还通过“纯文本翻译模式”,支持翻译任意类型的文本文档,让格式保留与自由翻译兼得。

核心特性一:原生支持 Markdown 元素

md-translator 针对 Markdown 文档进行了深度优化,支持识别并还原以下常见语法元素:

  • FrontMatter 元数据(---)
  • 标题(#)
  • 引用块(> 引用)
  • 链接([text](url))
  • 无序列表(- / * / +)
  • 有序列表(1. 2. 3.)
  • 加重字体(加粗斜体
  • 代码块(```)
  • 内联代码(`code`)
  • 行内 LaTeX 公式($公式$)
  • 块级 LaTeX 公式($$公式$$)

其中,FrontMatter、代码块和 LaTeX 公式均支持可选翻译,你可以根据实际需求决定是否进行处理。

核心特性二:支持任意文档的纯文本翻译

除了对 Markdown 的结构化支持,md-translator 还提供 “纯文本翻译模式”,该模式可跳过格式识别,直接对任意文本内容进行翻译。无论是 Markdown、TXT、HTML、日志文件,甚至是未经格式化的技术笔记,都可以通过该模式获得准确、高效的语言转换结果。

此外,用户还可通过自定义 AI 提示词,进一步提升术语一致性、上下文连贯性以及翻译风格的统一。

扩展功能:提取纯净文本

md-translator 还具备将 Markdown 内容转换为纯文本的能力,方便你进行二次处理或语义分析:

  • 自动去除所有 Markdown 标记符号
  • 隐藏代码块、链接等技术内容
  • 输出适合摘要提取、搜索索引或 NLP 处理的纯文本数据

该功能非常适用于技术内容的摘要提取、语义分析、知识图谱构建等自动化应用场景。

适用场景

  • 多语言技术文档的批量翻译

  • 开源项目说明文档的国际化

  • Markdown 博客内容的中英双语同步

  • 代码注释、公式说明等混合文档的格式保留翻译

  • 任何结构化/非结构化文本的语义翻译与提取

翻译 API

本工具集成了 5 种翻译 API 和 6 种主流大语言模型(LLM)接口,用户可根据需求选择合适的翻译方式:

翻译 API 对比

API 类型 翻译质量 稳定性 适用场景 免费额度
DeepL(X) ★★★★★ ★★★★☆ 适合长文本,翻译更流畅 每月 50 万字符
Google Translate ★★★★☆ ★★★★★ 适合 UI 界面、常见句子 每月 50 万字符
Azure Translate ★★★★☆ ★★★★★ 语言支持最广泛 前 12 个月 每月 200 万字符
GTX API(免费) ★★★☆☆ ★★★☆☆ 一般文本翻译 有调用频率限制(例如,每 3 小时约 500 万字符)
GTX Web(免费) ★★★☆☆ ★★☆☆☆ 适合小规模翻译 免费
  • DeepL:适用于长篇文本,翻译更加流畅自然,但不支持网页端 API,需本地或服务器代理调用。
  • Google Translate:翻译质量稳定,适用于短句、界面文本,支持网页端调用。
  • Azure Translate:支持语言最多,适合多语言翻译需求。
  • GTX API/Web:免费翻译选项,适合轻量级使用,但稳定性和调用频率有限。例如,mrfragger 在翻译一个约 200 万字符的字幕文件(约 2MB)时,仅执行两次翻译即触发了 GTX API 限制。

如果对翻译速度和质量有更高要求,可自行申请 API Key:Google TranslateAzure TranslateDeepL Translate。申请流程参考相关的接口申请教程

LLM 翻译(AI 大模型)

除传统翻译 API 外,本工具还支持调用多种 LLM 进行智能翻译,包括:DeepSeek、OpenAI、Azure OpenAI、Siliconflow、Groq,以及可自由配置的 Custom LLM。

  • 适用场景:适合处理语言理解要求较高的内容,如文学作品、技术文档、多语种资料等。
  • 高度可定制:支持配置系统提示词(System Prompt)与用户提示词(User Prompt),可灵活控制翻译风格、术语偏好等,满足多样化的翻译需求。
  • LLM 模型:一般情况下填写所选接口提供的模型名称;若使用 Azure OpenAI,则需填写对应的部署名称。
  • 温度参数(temperature):用于控制翻译结果的创造性与稳定性。数值越高,生成内容越具多样性和创造性,但可能降低准确性;数值越低,输出更稳定、一致,适合正式或技术性较强的场景。

本地模型连接说明

对于希望在本地部署大模型的用户(如 Ollama、LM Studio),可通过以下方式完成本工具的连接配置。为获得更优的翻译质量,推荐在自定义模型中使用 qwen2.5-14b-instruct 或性能更高的模型。

默认接口地址示例

  • Ollama:
http://127.0.0.1:11434/v1/chat/completions
  • LM Studio:
http://localhost:61234/v1/chat/completions

跨域访问配置方法(CORS)

如果在浏览器中调用本地部署的模型时出现连接失败,可能是由于浏览器的跨域策略导致。解决方式如下:

  • Ollama:需通过如下命令启动服务以允许所有来源访问:
OLLAMA_ORIGINS="*" ollama serve
  • LM Studio:

    1. 打开软件左侧菜单,点击「Developer」图标;
    2. 进入本地服务器设置页面,点击顶部「Settings」;
    3. 勾选“Enable CORS”复选框。

    LM Studio CORS 配置截图

完成以上配置后,本工具即可顺利调用你的本地 LLM 模型。(特别感谢 mrfragger 分享配置经验)

语言支持

本工具支持 50 多种语言之间的互译,覆盖广泛的欧洲、亚洲及部分非洲语言,适用于各类跨语言内容处理场景。支持的语言包括:英语、中文、繁体中文、葡萄牙语、意大利语、德语、俄语、西班牙语、法语、日语、韩语、阿拉伯语、土耳其语、波兰语、乌克兰语、荷兰语、希腊语、匈牙利语、瑞典语、丹麦语、芬兰语、捷克语、斯洛伐克语、保加利亚语、斯洛文尼亚语、立陶宛语、拉脱维亚语、罗马尼亚语、爱沙尼亚语、印尼语、马来语、印地语、孟加拉语、越南语、挪威语、希伯来语、泰语、菲律宾语(塔加拉语)、乌兹别克语、吉尔吉斯语、土库曼语、哈萨克语、博杰普尔语、卡纳达语、阿姆哈拉语、古吉拉特语、爪哇语、波斯语、泰米尔语、斯瓦希里语、豪萨语、泰卢固语和马拉地语等。

API 具体支持语言详见各服务的官方文档:

API 参数

分块翻译大小

对于字幕、Markdown 等具有上下文关联的文本文件,本工具会将多行文本自动合并为若干“块”进行翻译。分块翻译大小即指每个打包块的字符数上限。不同翻译服务的最大字符限制如下:

  • DeepL API:每个请求最多支持 128K 个字符。
  • DeepLX Free:每个请求最多支持 1,000 个字符。
  • Azure Translate:每个请求最多支持 10,000 个字符。
  • Google Translate
    • 网页端:每次翻译最多支持 5,000 个字符;
    • Cloud Translation API:每个请求最多支持 30,000 个字符。

注意:由于 Google 翻译在处理文本时会破坏换行符,因此未使用分块翻译方式。

延迟时间

延迟时间用于设置分块翻译之间的等待间隔。在处理大段文本时,某些翻译 API 响应速度较慢,尤其在网络环境较差或使用免费接口的情况下,延迟设置显得尤为重要。

例如,在使用 Azure Translate 的免费端口进行测试时,建议将延迟时间设置为 5,000 毫秒以上,以避免返回空值或出错。

翻译速率

翻译速率设置过高可能导致 API 返回空值,甚至被视为异常请求。建议根据实际使用的服务类型和稳定性,适当控制速率,以提升翻译的成功率和稳定性。

功能说明

翻译缓存

本工具引入可选的本地翻译缓存,提高翻译效率并降低资源消耗:

  • 缓存规则:每段翻译结果将以 源文本_目标语言_源语言_翻译 API_模型设置 作为唯一 key 进行存储。
  • 缓存命中条件:只有完全匹配相同参数的情况下,才会使用本地缓存结果,确保准确性。
  • 缓存作用:避免重复翻译,减少 API 调用次数,提高翻译速度。

如果不想使用缓存,可取消勾选“使用翻译缓存”,或在 API 设置中点击“清除翻译缓存”。

多语言翻译

支持将同一个文件一次性翻译为多种语言,特别适合需要国际化的视频内容:

  • 例如:将英文文件同时翻译为中文、日语、德语、法语,方便全球用户使用。
  • 支持 50 种主流语言,并将持续扩展。

常见问题

为什么翻译结果为空或显示为 null?

出现这种情况,可能有以下几种原因:

  • API 密钥(API Key)或相关设置不正确;
  • 账户的可用额度(Credits/Token)已用尽;
  • 翻译速率设置过高,或接口本身暂时不太稳定。

你可按 F12 打开浏览器开发者工具,切换至 “网络”(Network)标签页,检查 API 响应(Response)的具体报错信息。

如果只是部分内容未能成功翻译,尝试再次点击“翻译”按钮即可。在启用了翻译缓存的情况下,系统会跳过已翻译的内容,避免重复扣费或重复请求。

为什么要用第三方接口访问 DeepL?

因为 DeepL 的官方服务不允许直接从网页上调用,所以我们通过一个“中转通道”来帮你把请求发出去。

这个中转接口只是用来传输数据,不会收集你的任何信息,你可以放心使用。如果你对稳定性有更高要求,也可以自己搭建这个通道。

我的 API Key 会被保存吗?

不会的!你的 API Key 和其他设置都只保存在你自己的浏览器里,我们不会上传或记录任何信息。

为什么没有启用 GTX Web 接口?

GTX Web 对服务器压力比较大,所以默认没有开启。

如果你是在自己电脑上使用这个工具,可以手动开启。请避免在开启全局代理的网络环境下使用该接口,可能会导致翻译异常。