移植“沉浸式翻译”到Thunderbird实现邮件翻译

2026-04-11 12:030阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

最近苦于Thunderbird没有邮件翻译功能,而且商店现有翻译扩展体验不优,想着要是有沉浸式翻译就好了。

好在Thunderbird和Firefox都基于Gecko内核,大部分API通用,所以移植起来非常简便。但由于沉浸式翻译并不开源,JS代码做了混淆加密,所以本着尽量少动原代码的原则,改到“能跑就行” (主要是懒)

1、注入js

向background.js中的主体代码添加以下代码注入js:

async function registerMsgDisplayScript() { await messenger.messageDisplayScripts.register({ js: [{file: "/content_script.js"}, {file: "/content_start.js"}] }); } registerMsgDisplayScript();

2、修改manifest.json

  1. permissions
    修改"contextMenus"为"menus"(右键菜单相关),添加"messagesModify"权限(实现邮件翻译的核心权限)。
  2. browser_specific_settings
    由于第一步中messageDisplayScripts的API从Thunderbird 78开始支持,所以"strict_min_version"最低版本理论上为78.0。

3、修改右键菜单相关API(可选)

(如果不需要右键菜单翻译的功能,可以跳过此步。

阅读全文
问题描述:

最近苦于Thunderbird没有邮件翻译功能,而且商店现有翻译扩展体验不优,想着要是有沉浸式翻译就好了。

好在Thunderbird和Firefox都基于Gecko内核,大部分API通用,所以移植起来非常简便。但由于沉浸式翻译并不开源,JS代码做了混淆加密,所以本着尽量少动原代码的原则,改到“能跑就行” (主要是懒)

1、注入js

向background.js中的主体代码添加以下代码注入js:

async function registerMsgDisplayScript() { await messenger.messageDisplayScripts.register({ js: [{file: "/content_script.js"}, {file: "/content_start.js"}] }); } registerMsgDisplayScript();

2、修改manifest.json

  1. permissions
    修改"contextMenus"为"menus"(右键菜单相关),添加"messagesModify"权限(实现邮件翻译的核心权限)。
  2. browser_specific_settings
    由于第一步中messageDisplayScripts的API从Thunderbird 78开始支持,所以"strict_min_version"最低版本理论上为78.0。

3、修改右键菜单相关API(可选)

(如果不需要右键菜单翻译的功能,可以跳过此步。

阅读全文