大家好,我是 沉浸式翻译 的作者 Owen ,刚在用户群看到这个热贴,似乎楼主和评论区部分朋友对沉浸式翻译的开源问题有一些疑虑,我解释一下应该就能说清楚。
> 楼主:这个项目最开始是这个仓库
https://github.com/immersive-translate/old-immersive-translate, 并且 fork 的另一个项目
是的,这个项目起源是我在 2022 年 11 月 5 日的这条推:
https://twitter.com/OwenYoungZh/status/1588790629647405057 ,我在里面提到了我对当时翻译工具的不满(几乎都需要付费,不付费的话,每天就只能翻译 3 个网页??),我自己是翻译的重度用户,所以尝试从开源扩展
https://github.com/FilipePS/Traduzir-paginas-web (简称为 TPW 扩展) fork 了一份,很快就把它改为了双语对照翻译的版本,这就是楼主提到的:
https://github.com/immersive-translate/old-immersive-translate 项目。这个项目一直都是开源并且遵循 MPL2.0 协议的,如果有感兴趣的同学,也可以尝试基于这个项目继续开发(也许你就能体会到我为什么要重写整个项目了... 我刚刚尝试了下载,竟然还能用..)
> 楼主:有名气后,换成了这个仓库
https://github.com/immersive-translate/immersive-translate 并且不再提交源代码, 只提交 build 后的文件
随着这个项目变得越来越“有名气”,(好吧其实当时就 400 多个 Star) ,我发现要加减功能实在是太痛苦了(原项目是一个比较“传统”的项目,几乎没有现代的构建流程,比如不能引用 npm 包,写过前端的应该懂...),随着用户的增多,出现了越来越多的适配问题和性能问题,原项目还只支持 Firefox 浏览器。
所以就决定要重写整个项目,这条推
https://twitter.com/OwenYoungZh/status/1613821432227835906 介绍了当时的心路历程,而沉浸式翻译的用户群(现在已经 4000 多人了...):
https://t.me/+rq848Z09nehlOTgx 保留了从第一天开始的所有消息,你可以回到 2022 年 12 月份左右,看看当时的心路历程。
下图(
https://i.imgur.com/rPEsvhC.png )是第一个提交:
![](
https://i.imgur.com/rPEsvhC.png)
新版的整个项目是用 Deno 写的,全部都是 Typescript 源码,引入了现代的构建环境,写起来确实很爽。并且,重构后的项目支持全平台的浏览器,包括 Chrome ,Safari ,Firefox ,甚至是油猴脚本。由于沉浸式翻译专注于双语对照翻译(也就是说其实网页上每个段落都是 纯文本 翻译的),也不需要支持划词翻译,所以 TPW 扩展 的功能对沉浸式翻译来说基本用不到,我重构的时候,不仅在代码上没有复制粘贴过任何一行(好吧,原项目是 javascript 的, 也没法复制到 deno 的 typescript ),整个翻译的流程也是完全重构的。 这一点,做过贡献的 30 多位小伙伴应该非常清楚。
在重构后,基于某些原因(比如未来可能引入付费,可能被收购(确实实现了...),再比如这是一个 to C 的纯前端产品),所以,从第一天开始,新项目选择了闭源开发,我没有在任何地方有暗示这是一个开源的项目,在开发者贡献指南里,也明确表示该项目是一个闭源项目:
当前该项目处于闭源开发状态,你需要先申请加入我们的 Github 团队。项目采用 Typescript 开发,使用 Deno 编译。
见:
https://github.com/immersive-translate/immersive-translate/blob/main/docs/CONTRIBUTION.md同时也在有关 Issue 里回复了是否开源相关的问题:
https://github.com/immersive-translate/immersive-translate/issues/41https://github.com/immersive-translate/immersive-translate/issues/190> 至于为什么要放在 Github 上..
Github 的 Issue, Release, CI 太好用了, 我所有的项目,不管开源还是闭源,几乎都放在 Github 上。同时 Github 的 Star 也间接帮助了沉浸式翻译被更多的人看到。
> @
WebKit : 收购他的就是他自己的母公司
好像之前看到过类似的说法,他们似乎是分析了官宣收购的时间点比 APP Store 同名公司上架的时间点更晚。好吧,如果你经历过收购,你会发现真正宣布收购的时间点,是已经谈了很多天,谈成之后又会交割很多天,等一切完成之
后,才会宣布消息...
> @
mwVYYA6 : 刚看了下现在的版本 0.7.15 ,userscript 确实使用混淆了。
提交到 Greasy Fork 的代码不得混淆或最小化。用户必须有可能在安装前审视并理解脚本的内容。如果脚本使用了 WebPack 之类的工具打包,则必须以非最小化的形式输出,保留空白和变量名。
https://greasyfork.org/zh-CN/help/code-rules我们很尊重 Greasy Fork 社区的规则,所以你会发现 Greasy Fork 上最新的版本 :
https://greasyfork.org/zh-CN/scripts/457196-immersive-translate 是 0.5.6.1, 在此版本及之前,提交给 Greasy Fork 的所有代码都没有混淆。之后的版本,我们使用自托管的油猴版本:
https://download.immersivetranslate.com/immersive-translate.user.js ,同时在 Greasy Fork 主页上也同步进行了公告:
https://greasyfork.org/zh-CN/scripts/457196-immersive-translate所以总结来说就是: 沉浸式翻译是一个免费的网页翻译扩展,它的构建产物托管在 Github 上,并且使用 Github 的 Release 发布版本,也使用 Github 的 Issue 管理用户反馈,我没有在任何地方暗示过这是一个开源的项目,它确实从第一天开始就是一个闭源的项目。
但是我当然热爱开源社区,也从开源社区获益良多,并且在沉浸式翻译之前也在 Github 上开源过不少项目,而之后,沉浸式翻译也有计划贡献更多的开源项目给社区(比如 AI 翻译模型,以及沉浸式翻译的各种小工具:比如 PDF 翻译,电子书翻译 等等)。
感谢大家的关心,如果还有别的疑问我再来更新...(没想到第一篇 V 站的帖子献给了这里...