自动建议

在 4.13 版本发生变更: 在Weblate 4.13之前,这些服务是在 配置 中配置的。

内置了对几种机器翻译和翻译记忆库服务的支持。管理员可以为整站开启每项服务(在 management-interface`中的 :guilabel:`Automatic suggestions),也可以在项目设置中为特定项目开启:

../_images/project-machinery.webp

备注

它们受到其使用条款的约束,所以确保你被允许以你想要的方式使用它们。

该服务从 部件配置 配置的源文件进行翻译,请参考 源语言

参见

自动建议

Alibaba

Added in version 5.3.

服务 ID:

alibaba

配置:

key

访问密钥 ID

secret

访问密钥 secret

region

区域 ID

Alibaba Translate 是神经机器文本翻译服务,支持多达 214 个语言对。

Apertium APy

服务 ID:

apertium-apy

配置:

url

API 网址

一个自由软件机器翻译平台,提供有限语言的翻译。

使用 Apertium的推荐方式是运行您自己的 Apertium-APy 服务器。

Amazon 翻译

服务 ID:

aws

配置:

key

访问密钥 ID

secret

API 密钥

region

区域名

Amazon Translate 是神经机器翻译服务,用于将英语与广泛支持的语言进行互译。

百度

服务 ID:

baidu

配置:

key

客户 ID

secret

客户端 secret

由百度提供的机器翻译服务。

这项服务使用 API,并且您需要从百度获得 ID 和 API 密钥来使用它。

Cyrtranslit

Added in version 5.7.

服务 ID:

cyrtranslit

配置:

此服务无配置。

Machine translation service using the Cyrtranslit library.

This service converts text between Cyrillic and Latin scripts for languages that have both scripts.

DeepL

服务 ID:

deepl

配置:

url

API 网址

key

API 密钥

formality

Formality

如果语言未被指定为书面语,则使用指定的 formality

DeepL 是付费服务,提供一些语言的良好机器翻译。您需要购买 DeepL API 订阅,或者您可以使用传统的 DeepL Pro (classic) 计划。

用于 DeepL 服务的 API URL。在撰写本文时,有v1版API以及v2版API的免费和付费版本。

https://api.deepl.com/v2/ (Weblate 默认)

用于付费计划的 API 用量,订阅是基于用量的。

https://api-free.deepl.com/v2/

用于免费计划的 API 用量,订阅是基于用量的。

https://api.deepl.com/v1/

用于计算机辅助翻译工具,可以按用户订阅。

之前 Weblate 被 DeepL 归类为计算机辅助翻译(CAT)工具,所以应该使用 v1 API,但现在应该使用 v2 API。因此它默认为 v2,如果您现在有一个计算机辅助翻译工具(CAT )订阅,并希望 Weblate 使用它,您可以将其更改为 v1。

最简单的方法就是在浏览器中打开如下网址:

https://api.deepl.com/v2/translate?text=Hello&target_lang=FR&auth_key=XXX

将链接中的xxx替换为你自己deepl账号的auth_key。如果你收到了一个包含有”Bonjour”(你好)的JSON对象,说明URL是正确,否则,试试其他方式。

Weblate支持 DeepL 形式,它将根据语言选择匹配的形式(例如,有 de@formalde@informal )。

服务自动使用 ref:glossary ,见 自动建议中的术语

Glosbe

服务 ID:

glosbe

配置:

此服务无配置。

几乎所有现存语言的免费词典和翻译记忆库。

其 API 可免费使用,但翻译的使用受到所用数据源许可证的约束。为防止滥用,在一段时间内,可以从一个 IP 进行的调用是有限制的。

参见

Glosbe 网站

Google Cloud 翻译基础版

服务 ID:

google-translate

配置:

key

API 密钥

Google 云服务提供的机器翻译服务。

这项服务使用了 Google Translation API v2,您需要得到 API 密钥,并在 Google API 控制台打开记费。

Google Cloud 翻译高级版

服务 ID:

google-translate-api-v3

配置:

credentials

Google 翻译服务账户信息

输入服务账户的 JSON 密钥。

project

Google 翻译项目

输入您 Google Cloud 项目的数字或字母 ID。

location

Google 翻译位置

选择用于该 Google Cloud 项目或离你最近的 Google Cloud 翻译区域。

Google 云服务提供的机器翻译服务。

这项服务使用 Google 翻译 API v3,您需要 JSON 格式的凭据来访问它。

要使用此服务,你需要先经历下列步骤:

  1. 选择或创建 Cloud Platform 项目.

  2. 启用项目计费.

  3. 启用云翻译.

  4. 设置身份验证.

IBM Watson Language Translator

Added in version 4.16.

服务 ID:

ibm

配置:

url

API 网址

key

API 密钥

警告

此服务被厂商废弃,并将于2024年12月10日前被彻底退出。

BM Watson Language Translator 将文本从一种语言翻译到另一种语言。该服务提供多个域名特定的模型。

LibreTranslate

Added in version 4.7.1.

服务 ID:

libretranslate

配置:

url

API 网址

key

API 密钥

LibreTranslate 是一项自由开源的机器翻译服务。公共实例需要 API 密钥,但 LibreTranslate 可以自托管,并且有几个镜像可以免费使用 API。

https://libretranslate.com/ (官方公开实例)

需要一个API密钥才能在该网站之外使用。

Azure AI 翻译工具

服务 ID:

microsoft-translator

配置:

key

API 密钥

base_url

应用的基网址

可用选项:

api.cognitive.microsofttranslator.com – 全球(非区域)

api-apc.cognitive.microsofttranslator.com – 亚太

api-eur.cognitive.microsofttranslator.com – 欧洲

api-nam.cognitive.microsofttranslator.com – 北美

api.translator.azure.cn – 中国

api.cognitive.microsofttranslator.us – Azure 美国政府云

endpoint_url

身份验证服务 URL

可使用下方的区域字段指定区域或多服务。

可用选项:

api.cognitive.microsoft.com – 全球

api.cognitive.azure.cn – 中国

api.cognitive.microsoft.us – Azure 美国政府云

region

认证服务区域

category

分类

指定一个自定义的系统分类 ID 进行使用,而不是使用通用的。

由微软在 Azure 门户提供的机器翻译服务,是认知服务的一种。

Weblate 使用了 Translator API V3。

The service automatically uses 术语表 via dynamic dictionary, see 自动建议中的术语.

Translator Text API V2

您在 Translator API V2 使用的密钥可以在 API 3 中使用。

Translator Text API V3

您需要在 Azure 门户注册,并使用得到的密钥。您还需要将新的 Azure 密钥的 region 设置为您服务的语言环境。

你也可以指定自定义分类来使用 custom translator.

提示

中国区 Azure 请使用你在 Azure 门户的端点。

ModernMT

Added in version 4.2.

服务 ID:

modernmt

配置:

url

API 网址

key

API 密钥

参见

ModernMT API

MyMemory

服务 ID:

mymemory

配置:

email

联系电子邮箱

username

用户名

key

API 密钥

使用机器翻译的巨量翻译记忆库。

自由匿名使用,当前限制为 100 个请求/天,或者在 email 中提供电子邮箱联系地址时限制为 1000 个请求/天。您还可以向他们请求更多。

网易见外

服务 ID:

netease-sight

配置:

key

客户 ID

secret

客户端 secret

网易提供的机器翻译服务。

这项服务使用 API,您需要从网易获取密钥和密码。

OpenAI

Added in version 5.3.

服务 ID:

openai

配置:

key

API 密钥

base_url

OpenAI API base URL

Base URL of the OpenAI API, if it differs from the OpenAI default URL

model

OpenAI 模型

可用选项:

auto – 自动选择

gpt-4o – GPT-4o

gpt-4-1106-preview – GPT-4 Turbo

gpt-4 – GPT-4

gpt-3.5-turbo-1106 – Updated GPT 3.5 Turbo

gpt-3.5-turbo – GPT-3.5 Turbo

custom – Custom model

custom_model

Custom model name

Only needed when model is set to ‘Custom model’

persona

译者人格面貌

描述译者人格面貌以改进翻译的精确度。比如,“你是松鼠饲养员。”

style

译者风格

描述翻译风格。比如,“使用非正式语言。”

使用 OpenAI 进行翻译。

OpenAI API 由多元模型集驱动,这些模型的能力和定价各不相同。自动选择会选择最佳可用模型,但你或许想要选择匹配你需求的特定模型。

使用 persona 和 style 字段进一步微调翻译。这些将被用于 OpenAI 的 prompt 并允许你更改翻译的风格。

服务自动使用 ref:glossary ,见 自动建议中的术语

在 5.7 版本发生变更: Support for custom model and base URL was added.

SAP 翻译中心

服务 ID:

sap-translation-hub

配置:

url

API 网址

key

API 密钥

username

SAP 用户名

password

SAP 密码

enable_mt

启用机器翻译

domain

翻译域

翻译域的 ID,例如 BC。 如果您不指定域,该方法会搜索所有可用域中的翻译。

SAP 提供的机器翻一下服务。

你需要有 SAP 账户(且 SAP 云平台 中 SAP 翻译中心 已启用 )来使用这项服务。

除了术语数据库,你还可以配置是否使用机器翻译服务。

备注

要访问 Sandbox API,您需要设置 urlkey.

要访问生产性API,你需要设置 url, usernamepassword.

Systran

服务 ID:

systran

配置:

key

API 密钥

Systran 提供的机器翻译服务。

这项服务使用 API,您需要从 <https://translate.systran.net/en/account> 获取 API 密钥。

tmserver

服务 ID:

tmserver

配置:

url

API 网址

您可以通过使用 Translate-toolkit 绑定的一个服务器并与之对话,来运行您自己的翻译服务器。您还可以将它与 amaGama 服务器一起使用,它是 tmserver 的增强版本。

  1. 首先您会想要将一些数据导入翻译记忆库:

build_tmdb -d /var/lib/tm/db -s en -t cs locale/cs/LC_MESSAGES/django.po
build_tmdb -d /var/lib/tm/db -s en -t de locale/de/LC_MESSAGES/django.po
build_tmdb -d /var/lib/tm/db -s en -t fr locale/fr/LC_MESSAGES/django.po
  1. 启动 tmserver 来收听您的请求:

tmserver -d /var/lib/tm/db
  1. 配置Weblate与服务通信,默认地址为 http://localhost:8888/tmserver/.

Weblate

服务 ID:

weblate

配置:

此服务无配置。

Weblate machine translation service can provide translations based on the exact matches of a string in the currently existing strings in a Translated, Approved, or Read-only states inside Weblate.

Weblate 翻译记忆库

服务 ID:

weblate-translation-memory

配置:

此服务无配置。

Use 翻译记忆库 as a machine translation service. Any string that has been translated before (or uploaded to the translation memory) can be translated in this way. This suggestion source works with fuzzy matching.

备注

Recreating 翻译记忆库 reduces capabilities of this TM source.

Yandex

服务 ID:

yandex

配置:

key

API 密钥

Yandex 提供的机器翻译服务。

这项服务使用翻译 API,您需要从 Yandex 得到 API 密钥。

Yandex v2

Added in version 5.1.

服务 ID:

yandex-v2

配置:

key

API 密钥

Yandex 提供的机器翻译服务。

这项服务使用翻译 API,您需要从 Yandex Cloud 得到 API 密钥。

有道智云

服务 ID:

youdao-zhiyun

配置:

key

客户 ID

secret

客户端 secret

有道提供的机器翻译服务。

这项服务使用 API,您需要从有道获得 ID 和 API 密钥。

定制化的机器翻译

您还可以用几行 Python 代码来实现自己的机器翻译服务。此示例使用 dictionary Python 模块实现了一组确定的语言的机器翻译:

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

"""Machine translation example."""

import dictionary  # type: ignore[import-not-found]

from weblate.machinery.base import DownloadTranslations, MachineTranslation


class SampleTranslation(MachineTranslation):
    """Sample machine translation interface."""

    name = "Sample"

    def download_languages(self):
        """Return list of languages your machine translation supports."""
        return {"cs"}

    def download_translations(
        self,
        source,
        language,
        text: str,
        unit,
        user,
        threshold: int = 75,
    ) -> DownloadTranslations:
        """Return tuple with translations."""
        for t in dictionary.translate(text):
            yield {"text": t, "quality": 100, "service": self.name, "source": text}

你可以在 WEBLATE_MACHINERY 中列出自己的类,Weblate 就会开始使用它了。