Bergamot 翻译器

Bergamot 翻译器 是用于驱动 Firefox 翻译的翻译引擎。该项目配置了一个 Marian NMT 的分支,通过 Wasm API 启用翻译。

Bergamot 在 Marian 代码之上添加了一些额外的代码片段,包括 HTML 对齐(在翻译中匹配源和目标标签)和句子迭代。它提供了 Wasm API,Firefox 在其自身的翻译实现中使用它。Bergamot 翻译器使用 Marian NMT 包的分支副本,以便支持量化翻译模型。


构建 Bergamot

可以使用 build-bergamot.py 脚本生成 Wasm 和与 Firefox 集成的 JS 文件。

cd toolkit/components/translations/bergamot-translator
./build-bergamot.py

有一些额外的选项和最新的构建文档,由以下内容记录

./build-bergamot.py --help

构建完成后,可以通过取消 toolkit/components/translations/jar.mn 底部的行注释来本地加载 Wasm 以进行测试。此外,可以使用 --debug 选项构建调试符号。这对于使用 Firefox Profiler 很有用。


上传到远程设置

Wasm 工件通过 远程设置 上传和分发。可以使用以下脚本更新远程设置中的 Wasm:

cd toolkit/components/translations/bergamot-translator
./upload-bergamot.py --help

帮助标志将输出有关如何运行脚本的最新文档。为了进行完整的发布

重大更改

如果 Bergamot 翻译器有重大更改,则需要将 toolkit/components/translations/actors/TranslationsParent.sys.mjs 中的 BERGAMOT_MAJOR_VERSION 加 1。Firefox 的任何给定版本在记录更新时都会引入次要更改,但重大更改需要搭乘发布列车。

发布

  1. 运行 ./build-bergamot.py 脚本

  2. toolkit/components/translations/bergamot-translator/moz.yaml 中修改 remote_settings.version

    • 次要版本将是 "1.0" ➡️ "1.1"

    • 主要版本将是 "1.1" ➡️ "2.0"

  3. 运行 ./upload-bergamot.py --server prod

    • 按照添加 Bearer Token 的说明操作。

    • 默认情况下,新更新使用 JEXL 过滤器,并仅过滤到 Nightly 和本地构建。

  4. 请求审查更改。

  5. 在 Nightly 上验证更改。

    • 安装 远程设置开发者工具

    • 打开远程设置开发者工具。

    • 将环境切换到 Prod (preview)

    • 清除所有本地数据。

    • 重新启动 Nightly。

    • 通过触发不同的翻译来验证它是否在 Nightly 中工作。

  6. 发布到 Nightly

    • 通知发布驱动程序 (release-drivers@mozilla.org) 新的翻译引擎版本正在进入 Nightly(请参阅下面的示例电子邮件)。对于主要版本,这是可选的,因为它将搭乘发布列车。

    • 让另一位团队成员批准从远程设置发布。

  7. 准备发布到 Beta/Release

    • (如果这是主要版本,请不要执行此步骤。)

    • 等待几天以验证 Nightly 上没有问题。

    • 登录 远程设置管理员

    • bergamot-translator 版本中删除“filter_expression”文本。

    • 请求审查。

    • 重复步骤 5 以验证 Beta 和 Release。

  8. 发布到 Beta/Release

    • (如果这是主要版本,请不要执行此步骤。)

    • 通知发布驱动程序 (release-drivers@mozilla.org) 新的翻译引擎版本正在进入 Beta/Release(请参阅下面的示例电子邮件)。

    • 发布更改

    • 通过 遥测 监控任何增加的故障。

Nightly 版本发布示例邮件

Hello Release Drivers,

The Translations team is releasing a new version of the translations engine via remote
settings. We are releasing a test update on Nightly [Fx123], and plan to follow-up on
[DATE] with a release to both Beta [Fx123] and Release [Fx123] if we've found there are
no issues. We can roll back the release if any unexpected issues are found.

The plan for this release is available:

https://firefox-source-docs.mozilla.org/toolkit/components/translations/resources/03_bergamot.html#release

Thank you,
[NAME]

Beta/Release 版本发布示例邮件

Hello Release Drivers,

The Translations team is moving forward with a release of a new translations engine
to both Beta [Fx123] and Release [Fx123]. It has been in Nightly [Fx123] with no issues
found. We can roll back the release if any unexpected issues are found.

The plan for this release is available:

https://firefox-source-docs.mozilla.org/toolkit/components/translations/resources/03_bergamot.html#release

Thank you,
[NAME]