这个 WebExtension 不再维护。Firefox 翻译的开发已经移到 Firefox 本身,并将在 Firefox 108 中向所有人开放。
请在 https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&component=Translation 提交新的问题
Firefox Translations
Firefox Translations 是一个 WebExtension,它使浏览器能够在客户端进行网页内翻译。
Firefox Translations 由 The Bergamot Project Consortium 开发,由爱丁堡大学协调,合作伙伴包括布拉格查理大学、谢菲尔德大学、塔尔图大学和 Mozilla。该项目得到了欧盟 Horizon 2020 研究和创新计划的资助,资助协议编号为 825303。🇪🇺
发布版本
桌面版
当前发布版本可在 Mozilla 附加组件中安装
安卓版
按照以下步骤在 Android 版 Firefox Nightly 或 Beta 中安装扩展:
- 按照这篇文章中的步骤操作,跳过
在 AMO 上创建一个集合
部分(我们已经在这里提供了一个集合),从在 Nightly 中启用通用扩展支持设置
部分开始 - 在第五步中,在
集合所有者
字段中输入17436609
,在集合名称
字段中输入fxt
- 您的浏览器应会重新启动
- 重新启动后,点击菜单中的三个点并选择
附加组件
- 应显示附加组件页面,并且 Firefox Translations 应出现在列表顶部。只需点击
+
图标即可安装 - 这样,您应该已经将附加组件添加到了浏览器中。请参阅此视频以了解如何使用扩展。
- 然后您可以删除
自定义附加组件集合
,只需点击它并清除字段,以便您可以再次列出标准附加组件。
支持的语言
生产环境
- 西班牙语
- 爱沙尼亚语
- 英语
- 德语
- 捷克语
- 保加利亚语
- 葡萄牙语
- 意大利语
- 法语
- 波兰语
开发环境
- 俄语
- 波斯语(法尔西语)
- 冰岛语
- 挪威语(新挪威语)
- 挪威语(书面挪威语)
- 乌克兰语
- 荷兰语
测试
Nightly 版本
桌面版
您可以通过以下步骤在 Firefox Nightly 或 Developer Edition 中测试该扩展的 Nightly 版本,支持的语言参见支持的语言:
- 在导航栏中输入
about:config
并设置以下参数:
xpinstall.signatures.required 为 false
extensions.experiments.enabled 为 true
- 然后点击这里安装该扩展
- 可能需要重新启动浏览器,之后 Firefox Translations 即可使用。只需浏览支持的语言网站,翻译选项应会显示。
演示
https://user-images.githubusercontent.com/973388/205549475-8036df98-d5b5-4baa-af8f-350f7962f18e.mov
安卓版
您可以按照以下步骤在 Android 上测试该扩展:
- 克隆此仓库并执行
npm install
- 在您的手机上安装 Firefox Nightly for Android
- 通过 USB 将手机连接到电脑
- 按照此步骤设置手机和浏览器以安装扩展
- 可能需要在终端中执行
adb shell pm grant org.mozilla.fenix android.permission.READ_EXTERNAL_STORAGE
以便将扩展推送到手机 - 在终端中执行
adb devices
,复制设备 ID,并将 package.json 中的字符串<device id from adb devices>
替换为它 - 在终端中执行
npm run android -- --android-device=<ANDROID_DEVICE_ID>
安装扩展并自动启动浏览器(如果在 Windows 系统上开发,请执行npm run android-win -- --android-device=<ANDROID_DEVICE_ID>
)
这样就应该在手机里的 Firefox 上安装了扩展。按照下面的视频步骤了解如何使用它。
演示
https://user-images.githubusercontent.com/973388/222513958-89a51f7c-985a-45ee-94f6-c78a31e20a2e.mp4
开发
第三方依赖
该扩展不使用任何 npm 模块,唯一的供应商依赖项如下:
-
Bergamot Translator
-
Fasttext
-
Sentry
- 我们捆绑了 Sentry Javascript 的 SDK 用于错误报告。
-
serialize-error
- 捆绑了 serialize-error npm 包 的代码,用于将异常序列化,以便从内容脚本向后台脚本报告错误
如何运行
- 安装 Firefox Nightly
- 克隆此仓库并运行
npm install
- 运行
npm run once
并等待 Nightly 启动 - 进入
about:config
并设置extensions.experiments.enabled
为 true - 浏览任意支持的语言页面,以使翻译选项出现
更新遥测模式
在 extension/model/telemetry/metrics.yaml
添加新指标或在 extension/model/telemetry/pings.yaml
添加新数据后,运行以下命令更新 JS 遥测模式:
bash scripts/update-telemetry-schema.sh
更新 bergamot-translator WASM 模块
替换
extension/controller/translation/bergamot-translation-worker.js
extension/model/static/translation/bergamot-translator-worker.wasm
然后执行:
bash scripts/update-bergamot-translator.sh
以重新生成 JS 版本文件。此版本在遥测中报告。