如何翻译 Markdown 文件?-2-几种商业及开源解决方案介绍

这篇具有很好参考价值的文章主要介绍了如何翻译 Markdown 文件?-2-几种商业及开源解决方案介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

近期在搭建英文博客-<e-whisper.com>, 需要对现有的所有中文 Markdown 翻译为英文。

需求如下:

  • 将 Markdown 文件从中文 (zh-CN) 翻译为英文 (en)
  • 翻译后要保留 Markdown 的完整格式
  • 部分 Markdown block 不需要翻译,如:front-matter、代码块 等

但是实际使用中,试了好几款翻译(包括 Google,DeepL,Azure), 结果发现效果都不理想。

也找到了一些专门针对 markdown 的翻译方案,基本上都是这种方案:将 Markdown 拆分为"段".

一起看看吧。

Markdown 商业及开源解决方案

  • simpleen: 商业版
  • GT4T: 商业版
  • markdown-translator: GitHub 开源项目,基于 JavaScript 和 Azure Translate 收费 API
  • Markdown Docs Translator: GitHub 开源项目,基于 Python 和 主流免费翻译 API (Yandex/Google/Bing/Deepl)
  • ChatGPT + Prompt(markdown+翻译) ?

Simpleen

Simpleen 是个在线翻译服务,你可以通过不同的方式使用 Simpleen 来翻译和本地化你的软件: 使用在线 web 翻译器,在本地使用 CLI(连续翻译)或通过 API 自定义使用。其后端是调用 Deppl 的翻译服务。

以下是使用其翻译的效果:

如何翻译 Markdown 文件?-2-几种商业及开源解决方案介绍

可以看到,翻译除了将[toc] 翻译为 \[toc] 之外,其他都完全准确。

另外上图也可以看到,Simpleen 定位非常准确,就是针对开发者群体的,还有 Variable 相关功能。

Simpleen 一大特色功能是:Custom Translator, 如:

  • Python-i18n
  • Vue I18n
  • YAML
  • JSON
  • Markdown
  • ...

同时 Simpleen 也支持自定义词库功能,称为:Glossaries. 可以自定义个人词库。

Simpleen 就是将完整的 markdown 文档,按照 markdown 语法格式,将其拆分为一个个的 Segment. 并对每一个 Segment 进行翻译,如下:

如何翻译 Markdown 文件?-2-几种商业及开源解决方案介绍

通过 Segments 也可以看出,Simpleen 是将上篇提到的 2 种方法结合起来实现:

  1. 将 Markdown 转换为 html
  2. 将 html 拆分为 Segments
  3. 将 Segment 逐一翻译
  4. 将翻译后的 Segment html 转换为 markdown.
Simpleen 使用总结

优点:

  • 准确度高
  • 实用的特色功能:Custom Translator
  • 实用的特色功能:Variable 支持
  • 实用的特色功能:Glossaries
  • 底层基于 Deepl, Deepl 的翻译效果是最自然的。
  • 多种使用方式:web/api/cli

缺点:

  • 贵,基于 Segment 收费,价格也贵的厉害。
    • 最便宜的月费也得 $15, 并且只有 1,000 Text Segments

如何翻译 Markdown 文件?-2-几种商业及开源解决方案介绍

GT4T

📝Reference:

GT4T 不只是又一个翻译应用。它是一个超级插件,可以帮助你在任何 Windows/Mac 窗口中使用任何语言写作;也是一个超级文件翻译器,你可以不用上传,在你自己的电脑上翻译文件。

官方宣传其特色功能有:

  • 超级插件:运行在 29 个自动翻译引擎之上。无论哪个语言,GT4T 总是能为你提供最好的自动翻译。
  • GT4T 文件翻译器:GT4T 文件翻译器可以批量翻译文件。GT4T 可以处理包括 Office 或桌面出版文档在内的 20 种文件类型。而且如果你从事翻译业务并使用 CAT 工具,你也可以使用 GT4T 来翻译 Trados 或其他 CAT 项目。也有自己的词汇表。

其在 Translate Markdown/reStructuredText/AsciiDoc/DocBook XML and other documents 这里宣称可以翻译 Markdown, 具体步骤也很详细,这里就不展开了。

但是我在实际使用中,一方面发现它是个桌面 app, 没有 api/cli, 不适合开发者的使用需求,另一方面它对 markdown 的翻译结果相比 Simpleen 准确度欠佳。

markdown-translator

使用 Azure 文本翻译 API 直接翻译 Markdown 文件

其使用的前提条件是:从 Azure 服务 获取文本翻译 API 密钥

主要是通过 CLI 的方式使用:

# install cli
npm install markdown-translator -g

# set key from Azure Text Translate API
md-translator set --key <your key>
md-translator set --region <your region>

# do translate
md-translator translate --src README.md --dest README.zh.md --to zh

# get more information
md-translator --help

也可以通过模块方式使用:

# install module
npm install markdown-translator
const markdownTranslate = require('markdown-translator')
markdownTranslate({
  src,
  // 要么
  text,

  from,
  to,
  subscriptionKey,
}).then((res) => {
  // deal with result
})

目前我的英文站:https://e-whisper.com/ 就是完全基于这种方式翻译的。大家可以去访问看一下,评价一下翻译效果怎么样。

它的实现方案也是:将 markdown 文档拆分为"段", 再进行翻译。

后端调用的是 Azure https://api.cognitive.microsofttranslator.com/ 的 3.0 的文本翻译接口。

另外 Azure 也直接支持 Markdown 文档 翻译功能。 但是价格比文本翻译略贵。

以下是我的一些感受:

优点:

  • 基于 Azure Translate API, 将 markdown 拆分为"段"后调用一次 API 获取完整翻译结果,价格可接受
  • 翻译后 Markdown 格式基本没有错误。
  • CLI 的方案结合一些脚本,可以实现批量翻译,效率很高。

比如很简单的一个脚本,实现批量翻译:

#!/bin/bash

# 遍历指定目录下的所有文件
for MD in source/_posts/*; do
    echo "------Translating ${MD}------"
    md-translator translate --from zh-CN --to en --src ${MD} --dest ${MD} 2>&1 >>logs/md-translator.log
done

缺点:

  • 基于 Azure Translate API, 我个人感觉 Azure 的翻译效果没有 Deppl 的好。
  • Markdown 内嵌的一些 front-matter 等,翻译还是存在问题。建议翻译前先将 front-matter 拿掉。
  • 可能还是 Azure Translate API 的问题,对同一个词汇前后会出现好多不同版本的翻译后词汇(没有自定义词汇表导致的), 另外上下文也不是特别连贯。

目前的个人感受是基本可用,但是还是有一些特殊需求无法满足,后续我可能会尝试直接使用 Azure 最新提供的 Python SDK 进行开发定制。

Markdown Docs Translator

Markdown Docs Translator 是一个 Markdown 文档的自动翻译器,用 Python 构建。该工具支持多种翻译服务,并提供各种选项来定制翻译过程。

功能:

  • 支持多种翻译服务(Yandex, Google, Bing, Deepl)。
  • 多线程以加快翻译速度。
  • 覆盖原始文件、删除原始文件或用翻译文本创建一个新文件的选项。
  • 缓存以加快重复翻译。
  • 动词水平控制。

具体使用方法也是先安装再通过 CLI 使用:

pipx install md-translate
md-translate path_to_file_or_folder -F source_lang -T target_lang -P service [OPTIONS]

之前,我试用了好多次,都没有成功,可能是跟它使用的是翻译的免费接口有关,容易被封,无法提供稳定的服务。

最近看了一下,它已经改为基于 selenium 模拟浏览器的行为去访问,可能会好一些。后续有机会试试。

另外它的代码结构也很清晰明了,后续也仔细学习一下它的源码。

ChatGPT + Prompt ?

这应该也是一种思路,利用 ChatGPT 的强大能力。但是关键点在于如何提供有效的 Prompt, Prompt 可能是要强调 Markdown 语法,并利用 ChatGPT 出众的上下文理解和自然语言翻译能力给出翻译结果。

甚至还可以利用 ChatGPT 已有的能力,对文章进行进一步的润色、补充、语气调整等。

未来可期。

不过可能大量翻译的话,API 调用费用会贵上不少吧?

总结

本文很浅显地总结了一些我收集到的 markdown 文档的翻译方案。

主要是基于:将 Markdown 拆分为"段" 的思路。

或者是:将 Markdown 拆分为"段" 和 将 Markdown 翻译为 HTML 二者结合起来。

这里我了解了 4 种:

  • simpleen: 商业版
  • GT4T: 商业版
  • markdown-translator: GitHub 开源项目,基于 JavaScript 和 Azure Translate 收费 API
  • Markdown Docs Translator: GitHub 开源项目,基于 Python 和 主流免费翻译 API (Yandex/Google/Bing/Deepl)

相关方案肯定很多,笔者由于精力和时间所限,无法一一列举。欢迎各位补充~

同时也结合近期 ChatGPT 的爆火,提出用 ChatGPT 翻译 markdown 的可能性。

希望对您有所帮助。

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.文章来源地址https://www.toymoban.com/news/detail-492428.html

到了这里,关于如何翻译 Markdown 文件?-2-几种商业及开源解决方案介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Chatgpt掘金之旅—有爱AI商业实战篇|语言翻译|(五)

    演示站点: https://ai.uaai.cn 对话模块 官方论坛: www.jingyuai.com 京娱AI 引言 人工智能(AI)技术作为当今科技创新的前沿领域,为创业者提供了广阔的机会和挑战。随着AI技术的快速发展和应用领域的不断拓展,未来AI技术方面会有哪些创业机会呢? 在一个日益全球化的世界

    2024年04月11日
    浏览(58)
  • 【翻译】Qt Designer 如何使用资源文件

    原文地址:https://doc.qt.io/qt-6/designer-resources.html Qt的资源浏览器是用于管理应用程序资源的工具,可以让开发者方便地查看和管理应用程序中的各种资源文件,例如图像、字体、布局文件、对话框等。 资源浏览器提供了一个可视化的界面,可以让开发者轻松地浏览和管理应用

    2024年01月19日
    浏览(38)
  • 如何让你的jupyter notebook 排版得像Word(Markdown和网页文件写法)

    案例背景 很多时候我们在jupyter notebook里面的写代码,画图,但是文字分析什么的写在里面纯文本不好看,需要进行排版,那么就得用markdown的写法,如何还想居中或者更花里胡哨的字体,那就得要网页文件的一些写法。下面是简单的几个案例,看看怎么排版会好看。 首先介

    2024年02月10日
    浏览(45)
  • 开源解决方案OpenTelemetry的介绍以及如何将其与Prometheus结合使用

    作者:禅与计算机程序设计艺术 OpenTelemetry 是 CNCF(Cloud Native Computing Foundation)旗下的一个开源项目。它的目标是在云原生时代成为应用性能监控领域的事实标准,目前已经成为 Prometheus、Jaeger等工具的事实标准。 OpenTelemetry 提供了一套统一的 API 和 SDK ,使得开发者可以基于

    2024年02月05日
    浏览(34)
  • (三) Markdown插入互联网或本地视频解决方案

    不论博客系统是WordPress还是Typecho,绕不开的是两种书写语言,一种称之为富文本,一种叫做Markdown。 Markdown有很多好处,也有很多坏处,比如Markdown本身不具备段落居中的功能,以及Markdown也不具有插入视频的功能。 庆幸的是Markdown支持HTML的标签,可以在HTML中通过 video 标签插

    2024年02月07日
    浏览(37)
  • 泛娱乐社交(一)直播产品商业化解决方案

    摘要 在过去几年的直播行业创业风口期中,直播的用户关注度疯狂增长,但用户质量却参差不齐。随着用户新鲜感一过,流失率变得相当严重,各大平台都在竭尽全力防御。然而,留住“凑热闹”的非直播受众用户并不是最关键的问题,而是要找到适合真实直播受众用户的商

    2024年02月08日
    浏览(60)
  • Java如何实现下载文件的几种方式

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Boy_Martin/article/details/126058565

    2024年02月13日
    浏览(66)
  • 社交直播语聊场景解决方案(一)商业化探索

    摘要 在过去几年的直播行业创业风口期中,直播的用户关注度疯狂增长,但用户质量却参差不齐。随着用户新鲜感一过,流失率变得相当严重,各大平台都在竭尽全力防御。然而,留住“凑热闹”的非直播受众用户并不是最关键的问题,而是要找到适合真实直播受众用户的商

    2024年02月09日
    浏览(39)
  • 微软放弃“封禁”商业开源!

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 不知是终于想通了,还是迫于无奈,微软放弃了封禁商业开源,更改了之前宣布的应用商店政策。 此前在 6 月中旬,微软将应用商店的 10.8.7 节内容进行了更改,如下所示,并宣布将于 7 月 16 日(上周六)即时生效: Not attempt to profit fr

    2024年02月05日
    浏览(38)
  • 论开源软件商业模式

    随着信息技术的快速发展,开源软件已经成为软件开发的趋势,并产生了深远的影响。开源软件的低成本、可协作性和透明度等特点,使得越来越多的企业和个人选择使用开源软件,促进了软件行业的繁荣。然而,在使用开源软件的过程中,也需要关注其可能带来的问题,如

    2024年02月20日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包