自动建议

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

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

../_images/project-machinery.webp

备注

They come subject to their terms of use, so ensure you are allowed to use them how you want. Third-party services can receive source strings, translations, and related context from Weblate.

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

可通过 Weblate 的 REST API 配置每个项目的自动建议。

参见

自动建议

机器翻译和翻译记忆库服务的优先级

匹配度达 100% 的 Weblate 翻译记忆库 的优先级高于机器翻译服务。如果翻译记忆库中找到 100% 匹配的条目,那么将不会执行机器翻译。如果有几条 100% 匹配的条目,系统会使用数据库返回的第一个条目。

每个机器翻译服务都有一个预定义的可以生成的最高分。系统按照它们的最高分确定使用安装的翻译服务的顺序。如果字符串译文的分低于机器翻译服务的最高分,那么将请求该服务生成翻译。如果译文得分超过当前得分,那么系统将接受该译文。

机器翻译的源字符串

Added in version 5.11.

可以配置所有第三方服务的源字符串来源。这可以用来微调服务获得最好结果。有以下选项可用:

自动选择

自动选择最佳源语言。

这是默认行为。

部件源语言

使用部件源语言。

这是 5.11 版本之前的行为。

项目或部件中定义的第二语言

使用项目 第二语言 或部件 第二语言

退回到自动选择源语言,如果未配置第二语言。

LLM translation context

LLM-based automatic suggestion services receive additional context about each translated string, when available. This includes the string context or monolingual key, additional explanation, configured secondary-language translation, plural information, failing quality checks, and placeholder contents. The added metadata is used only to guide the generated suggestion; the returned translation still has to preserve the source placeholders and markup.

Alibaba

Added in version 5.3.

服务 ID:

alibaba

最高分:

80

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

key

访问密钥 ID

secret

访问密钥 secret

region

区域 ID

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

Anthropic

Added in version 5.16.

服务 ID:

anthropic

最高分:

90

高级功能:
配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

base_url

Anthropic API URL

Anthropic API 的基础 URL。留空使用默认 URL。

model

Anthropic 模型

可用选项:

claude-sonnet-4-5 -- Claude Sonnet 4.5 (推荐)

claude-haiku-4-5 -- Claude Haiku 4.5

claude-opus-4-5 -- Claude Opus 4.5

custom -- 定制模型

persona

译者人格面貌

描述译者表象人格改进翻译准确性,使其更专注于在特定语境和文化背景下进行准确的意义转换,从而显著提升翻译质量。如“你是一名松鼠饲养员。”

style

译者风格

请描述翻译的风格。例如:“使用口语化语言。”

key

API 密钥

custom_model

自定义模型名称

仅当模型设置为“自定义模型”时才需要

max_tokens

最大令牌数

响应中生成的最大令牌数。

Anthropic 的 Claude 模型执行翻译。

Anthropic API 提供对 Claude 模型家族的访问,它们以强大的推理和语言能力闻名。需要来自 Anthropic 的 API key 来使用这个服务。

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

服务自动使用 术语表,见 自动建议中的术语

Apertium APy

服务 ID:

apertium-apy

最高分:

88

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

url

API 网址

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

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

Amazon 翻译

服务 ID:

aws

最高分:

88

高级功能:
配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

key

访问密钥 ID

secret

API 密钥

region

区域名

Amazon Translate 是神经机器翻译服务,用于将英语与广泛支持的语言进行互译。此服务需要 TranslateFullAccess 受管政策。

服务自动使用 术语表,见 自动建议中的术语

Azure OpenAI

Added in version 5.8.

服务 ID:

azure-openai

最高分:

90

高级功能:
配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

base_url

API 网址

model

大语言模型

persona

译者人格面貌

描述译者表象人格改进翻译准确性,使其更专注于在特定语境和文化背景下进行准确的意义转换,从而显著提升翻译质量。如“你是一名松鼠饲养员。”

style

译者风格

请描述翻译的风格。例如:“使用口语化语言。”

key

API 密钥

azure_endpoint

Azure OpenAI 端点网址

实例的端点 URL,如:https://my-instance.openai.azure.com

deployment

Azure OpenAI 部署

模型的唯一部署名。

使用托管在 Azure 上的 OpenAI 执行翻译。

参见

OpenAI

百度

服务 ID:

baidu

最高分:

90

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

key

客户 ID

secret

客户端 secret

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

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

CyrTranslit

Added in version 5.7.

服务 ID:

cyrtranslit

最高分:

100

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

使用 Cyrtranslit 库的机器翻译服务。

此服务为同时包含西里尔和拉丁字母表的语言在两种字母表间转换文本。

DeepL

服务 ID:

deepl

最高分:

91

高级功能:
配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

url

API 网址

key

API 密钥

formality

正式程度

如果未指定语言为(非)正式,则使用指定的正式程度

context

翻译上下文

描述翻译上下文改进翻译准确性。

next_gen

使用下一代模型

优先选择下一代 LLM 而非经典机器翻译模型。

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。

Weblate 支持 DeepL 正式程度功能,它将根据语言选择匹配的变体(例如,有 de@formalde@informal)。

The translation context can optionally be specified to improve translations quality. Read more on that in DeepL translation context documentation.

服务自动使用 术语表,见 自动建议中的术语

Glosbe

服务 ID:

glosbe

最高分:

90

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

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

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

参见

Glosbe 网站

Google Cloud 翻译基础版

服务 ID:

google-translate

最高分:

90

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

key

API 密钥

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

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

Google Cloud 翻译高级版

服务 ID:

google-translate-api-v3

最高分:

90

高级功能:
配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

credentials

Google 翻译服务账户信息

输入服务账户的 JSON 密钥。

project

Google 翻译项目

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

location

Google 翻译位置

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

bucket_name

Google 存储桶名称

输入用于存储术语表文件的 Google 云存储桶名称。

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

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

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

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

  2. 启用项目计费.

  3. 启用云翻译.

  4. 设置身份认证.

你也可以建立存储桶来配置 术语表 要使用的服务(非必须):

  1. 创建 Google 云存储桶.

  2. 设置存储桶位置为 "us-central1".

  3. 授予服务账户 'Storage Admin' 权限.

IBM Watson Language Translator

Removed in version 5.13.1: 厂商自 2024 年 12 月 10 日起停止提供本服务。

LibreTranslate

Added in version 4.7.1.

服务 ID:

libretranslate

最高分:

89

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

url

API 网址

key

API 密钥

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

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

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

LTEngine

Added in version 5.17.1.

服务 ID:

ltengine

最高分:

89

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

url

API 网址

key

API 密钥

LTEngine 提供由大语言模型支持的兼容 LibreTranslate 的本地 API。对于大量 Weblate 安装,原生LLM 服务如 Ollama 可能更合适,因为 Weblate 可以直接发送翻译上下文到模型。当你特别想要 LTEngine 本地翻译引擎或未来的 LTEngine 翻译改进时使用 LTEngine。

Azure AI 翻译工具

服务 ID:

microsoft-translator

最高分:

90

高级功能:
配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

key

API 密钥

base_url

应用程序基础 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。

此服务通过 dynamic dictionary 自动使用 术语表,见 自动建议中的术语

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

最高分:

90

高级功能:
配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

url

API 网址

key

API 密钥

context_vector

上下文向量

英文逗号分隔的列表,分别表示记忆 ID 和权重。形如 1234:0.123,4567:0.456

服务自动使用 术语表,见 自动建议中的术语

参见

ModernMT API

MyMemory

服务 ID:

mymemory

最高分:

100

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

email

联系邮箱

username

用户名

key

API 密钥

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

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

网易见外

服务 ID:

netease-sight

最高分:

90

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

key

客户 ID

secret

客户端 secret

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

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

Ollama

Added in version 5.15.

服务 ID:

ollama

最高分:

90

高级功能:
配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

base_url

API 网址

Ollama API 的基础 URL,默认为 localhost,端口 11434。

model

Ollama 模型

Olllama 目录中描述的模型名称。

persona

译者人格面貌

描述译者表象人格改进翻译准确性,使其更专注于在特定语境和文化背景下进行准确的意义转换,从而显著提升翻译质量。如“你是一名松鼠饲养员。”

style

译者风格

请描述翻译的风格。例如:“使用口语化语言。”

Ollama 模型执行翻译。

Ollama API 允许使用本地安装的开源模型或通过 Ollama 服务远程访问的开源模型进行翻译。注意配置模型前,应当 安装了 Ollama 并下载了希望使用的模型。

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

服务自动使用 术语表,见 自动建议中的术语

参见

OpenAI

Added in version 5.3.

服务 ID:

openai

最高分:

90

高级功能:
配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

base_url

OpenAI API 基础 URL

OpenAI API 的基础 URL,如果它与 OpenAI 默认 URL 不同

model

OpenAI 模型

可用选项:

auto -- 自动选择

gpt-5-nano -- GPT-5-nano

gpt-5-mini -- GPT-5-mini

gpt-5.2 -- GPT-5.2

gpt-5.1 -- GPT-5.1

gpt-5 -- GPT-5

gpt-4.1-nano -- GPT-4.1-nano

gpt-4.1-mini -- GPT-4.1-mini

gpt-4.1 -- GPT-4.1

gpt-4o-mini -- GPT-4o mini

gpt-4o -- GPT-4o

o3-mini -- o3-mini

o3 -- o3

o1-mini -- o1-mini

o1 -- o1

o1-pro -- o1-pro

custom -- 定制模型

persona

译者人格面貌

描述译者表象人格改进翻译准确性,使其更专注于在特定语境和文化背景下进行准确的意义转换,从而显著提升翻译质量。如“你是一名松鼠饲养员。”

style

译者风格

请描述翻译的风格。例如:“使用口语化语言。”

key

API 密钥

custom_model

自定义模型名称

仅当模型设置为“自定义模型”时才需要

使用 OpenAI 进行翻译。

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

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

服务自动使用 术语表,见 自动建议中的术语

在 5.7 版本发生变更: 新增支持自定义模型和基础 URL。

SAP 翻译中心

服务 ID:

sap-translation-hub

最高分:

100

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

url

API 网址

key

API 密钥

username

SAP 用户名

password

SAP 密码

enable_mt

启用机器翻译

domain

翻译域

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

SAP 提供的机器翻译服务。

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

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

备注

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

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

Systran

服务 ID:

systran

最高分:

90

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

key

API 密钥

Systran 提供的机器翻译服务。

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

tmserver

服务 ID:

tmserver

最高分:

100

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

url

API 网址

使用 tmserver 协议你可以运行自己的翻译记忆库服务器。

  • 原始的 tmserver 和 translate-toolkit 捆绑在一起。

  • amaGama 服务器是增强版 tmserver。

备注

目前似乎没有针对这个的受维护的服务器。

Weblate

服务 ID:

weblate

最高分:

100

配置:

此服务无配置。

基于 Weblate 内 已翻译已核准只读 状态 下当前现有字符串中一条字符串的精准匹配,Weblate 机器翻译服务可以提供翻译。

Weblate 翻译记忆库

服务 ID:

weblate-translation-memory

最高分:

100

配置:

此服务无配置。

使用 翻译记忆库 作为机器翻译服务。任何过去翻译过的字符串(或上传到翻译记忆库)都可以用这种方式翻译。此建议源可用于模糊匹配。

备注

重新创建 翻译记忆库 会降低此机器翻译服务的能力。

Yandex

服务 ID:

yandex

最高分:

90

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

key

API 密钥

Yandex 提供的机器翻译服务。

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

Yandex v2

Added in version 5.1.

服务 ID:

yandex-v2

最高分:

90

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

key

API 密钥

Yandex 提供的机器翻译服务。

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

有道智云

服务 ID:

youdao-zhiyun

最高分:

90

配置:

source_language

源语言选择

可用选项:

auto -- 自动选择

source -- 部件源语言

secondary -- 项目或部件中定义的第二语言

key

客户 ID

secret

客户端 secret

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

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

定制化的机器翻译

你也可以用几行 Python 代码实现自己的机器翻译服务。将代码放在 Weblate 可导入的模块中(见:建立 Python 模块自定义代码)并添加完全合格的类名称到 WEBLATE_MACHINERY

"""
Machine translation example.

This example uses fictional http://example.com/ service to translate the
strings.
"""

from __future__ import annotations

from typing import TYPE_CHECKING

from weblate.machinery.base import MACHINERY_DEFAULT_THRESHOLD, MachineTranslation

if TYPE_CHECKING:
    from weblate.auth.models import User
    from weblate.machinery.base import DownloadTranslations
    from weblate.trans.models import Unit


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

    name = "Sample"

    def download_languages(self):
        """Return list of languages your machine translation supports."""
        response = self.request("get", "http://example.com/languages")
        return response.json()["languages"]

    def download_translations(
        self,
        source_language,
        target_language,
        text: str,
        unit: Unit | None,
        user: User | None,
        threshold: int = MACHINERY_DEFAULT_THRESHOLD,
    ) -> DownloadTranslations:
        """Return tuple with translations."""
        response = self.request(
            "get",
            "http://example.com/translate",
            params={
                "source_language": source_language,
                "target_language": target_language,
                "text": text,
            },
        )

        for translation in response.json()["translations"]:
            yield {
                "text": translation,
                "quality": 100,
                "service": self.name,
                "source": text,
            }