移植“沉浸式翻译”到Thunderbird实现邮件翻译
- 内容介绍
- 文章标签
- 相关推荐
最近苦于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
- permissions
修改"contextMenus"为"menus"(右键菜单相关),添加"messagesModify"权限(实现邮件翻译的核心权限)。 - 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
- permissions
修改"contextMenus"为"menus"(右键菜单相关),添加"messagesModify"权限(实现邮件翻译的核心权限)。 - browser_specific_settings
由于第一步中messageDisplayScripts的API从Thunderbird 78开始支持,所以"strict_min_version"最低版本理论上为78.0。
3、修改右键菜单相关API(可选)
(如果不需要右键菜单翻译的功能,可以跳过此步。

