Automatic suggestions

Changed in version 4.13: Prior to Weblate 4.13, the services were configured in the Configuration.

The support for several machine translation and translation memory services is built-in. Each service can be turned on by the administrator for whole site (under Automatic suggestions in Management interface) or at the project settings:

../_images/project-machinery.webp

Note

They come subject to their terms of use, so ensure you are allowed to use them how you want.

The services translate from the source language as configured at Component configuration, see Source language.

Per-project automatic suggestion can also be configured via the Weblate’s REST API.

Priority of machine translation and translation memory services

Weblate Translation Memory matches with 100% score take priority over machine translation services. If 100% match in translation memory is found, no machine translation is performed. If several 100% matches occur, the first one returned by the database is used.

Each machine translation service has a predefined maximum score it can produce. The use of installed translation services is ordered according to their maximum score. For each string with translation score lower than the service’s maximum, the service is asked to produce a translation. Translations with a score exceeding the current one are accepted.

Source strings for the machine translation

Added in version 5.11.

The origin of source strings for all third-party services can be configured. This can be used to tweak the service to get the best results. Following choices are available:

Automatic selection

Chooses the best source language automatically.

This is the default behavior.

Component source language

Uses the component source language.

This was the behavior before the 5.11 release.

Secondary language defined in project or component

Use project Secondary language or component Secondary language.

Falls back to the automatic selection of the source language if the secondary language not configured.

Alibaba

Added in version 5.3.

Service ID:

alibaba

Maximal score:

80

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

key

Access key ID

secret

Access key secret

region

Region ID

Alibaba Translate is a neural machine translation service for translating text and it supports up to 214 language pairs.

Anthropic

Added in version 5.16.

Service ID:

anthropic

Maximal score:

90

Advanced features:
Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

base_url

Anthropic API URL

Base URL of the Anthropic API. Leave empty to use the default URL.

model

Anthropic model

Available choices:

claude-sonnet-4-5 – Claude Sonnet 4.5 (Recommended)

claude-haiku-4-5 – Claude Haiku 4.5

claude-opus-4-5 – Claude Opus 4.5

custom – Custom model

persona

Translator persona

Describe the persona of translator to improve the accuracy of the translation. For example: “You are a squirrel breeder.”

style

Translator style

Describe the style of translation. For example: “Use informal language.”

key

API key

custom_model

Custom model name

Only needed when model is set to ‘Custom model’

max_tokens

Max tokens

Maximum number of tokens to generate in the response.

Performs translation using Anthropic’s Claude models.

The Anthropic API provides access to the Claude family of models, which are known for their strong reasoning and language capabilities. You need an API key from Anthropic to use this service.

Use persona and style fields to further fine-tune translations. These will be used in a prompt for Claude and allow you to change the style of the translations.

The service automatically uses Glossary, see Glossaries in automatic suggestion.

Apertium APy

Service ID:

apertium-apy

Maximal score:

88

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

url

API URL

A libre software machine translation platform providing translations to a limited set of languages.

The recommended way to use Apertium is to run your own Apertium-APy server.

Amazon Translate

Service ID:

aws

Maximal score:

88

Advanced features:
Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

key

Access key ID

secret

API secret key

region

Region name

Amazon Translate is a neural machine translation service for translating text to and from English across a breadth of supported languages. The service requires the TranslateFullAccess Managed Policy.

The service automatically uses Glossary, see Glossaries in automatic suggestion.

Azure OpenAI

Added in version 5.8.

Service ID:

azure-openai

Maximal score:

90

Advanced features:
Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

base_url

API URL

model

LLM model

persona

Translator persona

Describe the persona of translator to improve the accuracy of the translation. For example: “You are a squirrel breeder.”

style

Translator style

Describe the style of translation. For example: “Use informal language.”

key

API key

azure_endpoint

Azure OpenAI endpoint URL

Endpoint URL of the instance, e.g: https://my-instance.openai.azure.com.

deployment

Azure OpenAI deployment

The model’s unique deployment name.

Performs translation using OpenAI hosted on Azure.

See also

OpenAI

Baidu

Service ID:

baidu

Maximal score:

90

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

key

Client ID

secret

Client secret

Machine translation service provided by Baidu.

This service uses an API and you need to obtain an ID and API key from Baidu to use it.

CyrTranslit

Added in version 5.7.

Service ID:

cyrtranslit

Maximal score:

100

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

Machine translation service using the Cyrtranslit library.

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

DeepL

Service ID:

deepl

Maximal score:

91

Advanced features:
Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

url

API URL

key

API key

formality

Formality

Uses the specified formality if language is not specified as (in)formal

context

Translation context

Describe the context of the translation to improve the accuracy of the translation.

next_gen

Use next-gen model

Prefer next-gen LLM over classic machine translation model.

DeepL is paid service providing good machine translation for a few languages. You need to purchase DeepL API subscription or you can use legacy DeepL Pro (classic) plan.

API URL to use with the DeepL service. At the time of writing, there is the v1 API as well as a free and a paid version of the v2 API.

https://api.deepl.com/v2/ (default in Weblate)

Is meant for API usage on the paid plan, and the subscription is usage-based.

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

Is meant for API usage on the free plan, and the subscription is usage-based.

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

Is meant for CAT tools and is usable with a per-user subscription.

Note

Previously Weblate was classified as a CAT tool by DeepL, so it was supposed to use the v1 API, but now is supposed to use the v2 API. Therefore it defaults to v2, and you can change it to v1 in case you have an existing CAT subscription and want Weblate to use that.

Weblate supports DeepL formality, it will choose matching one based on the language (for example, there is de@formal and de@informal).

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

The service automatically uses Glossary, see Glossaries in automatic suggestion.

Glosbe

Service ID:

glosbe

Maximal score:

90

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

Free dictionary and translation memory for almost every living language.

The API is gratis to use, but usage of the translations is subject to the license of the used data source. There is a limit of calls that may be done from one IP in a set period of time, to prevent abuse.

See also

Glosbe website

Google Cloud Translation Basic

Service ID:

google-translate

Maximal score:

90

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

key

API key

Machine translation service provided by the Google Cloud services.

This service uses the Google Translation API v2, and you need to obtain an API key and turn on billing in the Google API console.

Google Cloud Translation Advanced

Service ID:

google-translate-api-v3

Maximal score:

90

Advanced features:
Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

credentials

Google Translate service account info

Enter a JSON key for the service account.

project

Google Translate project

Enter the numeric or alphanumeric ID of your Google Cloud project.

location

Google Translate location

Choose a Google Cloud Translation region that is used for the Google Cloud project or is closest to you.

bucket_name

Google Storage Bucket name

Enter the name of the Google Cloud Storage bucket that is used to store the Glossary files.

Machine translation service provided by the Google Cloud services.

This service uses the Google Translation API v3 and you need credentials in JSON format to access it.

In order to use this service, you first need to go through the following steps:

  1. Select or create a Cloud Platform project.

  2. Enable billing for your project.

  3. Enable the Cloud Translation.

  4. Setup Authentication.

Optionally, you can configure the service to use Glossary by setting up a Bucket:

  1. Create a Google Cloud bucket.

  2. Set bucket location to “us-central1”.

  3. Grant ‘Storage Admin’ permission to the Service Account.

IBM Watson Language Translator

Removed in version 5.13.1: This service was withdrawn by vendor as of 10 December 2024.

LibreTranslate

Added in version 4.7.1.

Service ID:

libretranslate

Maximal score:

89

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

url

API URL

key

API key

LibreTranslate is a free and open-source service for machine translations. The public instance requires an API key, but LibreTranslate can be self-hosted and there are several mirrors available to use the API for free.

https://libretranslate.com/ (official public instance)

Requires an API key to use outside of the website.

Azure AI Translator

Service ID:

microsoft-translator

Maximal score:

90

Advanced features:
Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

key

API key

base_url

Application base URL

Available choices:

api.cognitive.microsofttranslator.com – Global (non-regional)

api-apc.cognitive.microsofttranslator.com – Asia Pacific

api-eur.cognitive.microsofttranslator.com – Europe

api-nam.cognitive.microsofttranslator.com – North America

api.translator.azure.cn – China

api.cognitive.microsofttranslator.us – Azure US Government cloud

endpoint_url

Authentication service URL

Regional or multi-service can be specified using region field below.

Available choices:

api.cognitive.microsoft.com – Global

api.cognitive.azure.cn – China

api.cognitive.microsoft.us – Azure US Government cloud

region

Authentication service region

category

Category

Specify a customized system category ID to use it instead of general one.

Machine translation service provided by Microsoft in Azure portal as a one of Cognitive Services.

Weblate implements Translator API V3.

The service automatically uses Glossary via dynamic dictionary, see Glossaries in automatic suggestion.

Translator Text API V2

The key you use with Translator API V2 can be used with API 3.

Translator Text API V3

You need to register at Azure portal and use the key you obtain there. With new Azure keys, you also need to set region to locale of your service.

You can also specify a custom category to use custom translator.

Hint

For Azure China, please use your endpoint from the Azure Portal.

ModernMT

Added in version 4.2.

Service ID:

modernmt

Maximal score:

90

Advanced features:
Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

url

API URL

key

API key

context_vector

Context vector

Comma-separated list of memory IDs:weight. e.g: 1234:0.123,4567:0.456

The service automatically uses Glossary, see Glossaries in automatic suggestion.

See also

ModernMT API

MyMemory

Service ID:

mymemory

Maximal score:

100

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

email

Contact e-mail

username

Username

key

API key

Huge translation memory with machine translation.

Free, anonymous usage is currently limited to 100 requests/day, or to 1000 requests/day when you provide a contact e-mail address in email. You can also ask them for more.

See also

MyMemory website

Netease Sight

Service ID:

netease-sight

Maximal score:

90

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

key

Client ID

secret

Client secret

Machine translation service provided by NetEase.

This service uses an API, and you need to obtain key and secret from NetEase.

Ollama

Added in version 5.15.

Service ID:

ollama

Maximal score:

90

Advanced features:
Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

base_url

API URL

Base URL of the Ollama API, localhost and port 11434 by default.

model

Ollama model

Name of the model described in Ollama catalogue.

persona

Translator persona

Describe the persona of translator to improve the accuracy of the translation. For example: “You are a squirrel breeder.”

style

Translator style

Describe the style of translation. For example: “Use informal language.”

Performs translation using Ollama models.

The Ollama API allows for the use of open source models for translations either locally installed or remotely accessed via the Ollama service. Note that before configuring your models, you should have Ollama installed and downloaded the models you wish to use.

Use persona and style fields to further fine-tune translations. These will be used in a prompt for Ollama and allow you to change the style of the translations.

The service automatically uses Glossary, see Glossaries in automatic suggestion.

See also

OpenAI

Added in version 5.3.

Service ID:

openai

Maximal score:

90

Advanced features:
Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

base_url

OpenAI API base URL

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

model

OpenAI model

Available choices:

auto – Automatic selection

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 – Custom model

persona

Translator persona

Describe the persona of translator to improve the accuracy of the translation. For example: “You are a squirrel breeder.”

style

Translator style

Describe the style of translation. For example: “Use informal language.”

key

API key

custom_model

Custom model name

Only needed when model is set to ‘Custom model’

Performs translation using OpenAI.

The OpenAI API is powered by a diverse set of models with different capabilities and price points. Automatic selection chooses the best model available, but you might want to choose a specific model that matches your needs.

Use persona and style fields to further fine-tune translations. These will be used in a prompt for OpenAI and allow you to change the style of the translations.

The service automatically uses Glossary, see Glossaries in automatic suggestion.

Changed in version 5.7: Support for custom model and base URL was added.

SAP Translation Hub

Service ID:

sap-translation-hub

Maximal score:

100

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

url

API URL

key

API key

username

SAP username

password

SAP password

enable_mt

Enable machine translation

domain

Translation domain

The ID of a translation domain, for example, BC. If you do not specify a domain, the method searches for translations in all available domains.

Machine translation service provided by SAP.

You need to have a SAP account (and the SAP Translation Hub enabled in the SAP Cloud Platform) to use this service.

You can also configure whether to also use machine translation services, in addition to the term database.

Note

To access the Sandbox API, you need to set url and key.

To access the productive API, you need to set url, username and password.

Systran

Service ID:

systran

Maximal score:

90

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

key

API key

Machine translation service provided by Systran.

This service uses an API, and you need to obtain API key at <https://translate.systran.net/en/account>.

tmserver

Service ID:

tmserver

Maximal score:

100

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

url

API URL

You can run your own translation memory server by using a tmserver protocol.

  • The original tmserver was bundled with the translate-toolkit.

  • amaGama server is an enhanced version of tmserver.

Note

There currently does not seem to be a maintained server for this.

Weblate

Service ID:

weblate

Maximal score:

100

Configuration:

This service has no configuration.

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 Translation Memory

Service ID:

weblate-translation-memory

Maximal score:

100

Configuration:

This service has no configuration.

Use Translation Memory 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.

Note

Recreating Translation Memory reduces capabilities of this TM source.

Yandex

Service ID:

yandex

Maximal score:

90

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

key

API key

Machine translation service provided by Yandex.

This service uses a Translation API, and you need to obtain an API key from Yandex.

Yandex v2

Added in version 5.1.

Service ID:

yandex-v2

Maximal score:

90

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

key

API key

Machine translation service provided by Yandex.

This service uses a Translation API, and you need to obtain an API key from Yandex Cloud.

Youdao Zhiyun

Service ID:

youdao-zhiyun

Maximal score:

90

Configuration:

source_language

Source language selection

Available choices:

auto – Automatic selection

source – Component source language

secondary – Secondary language defined in project or component

key

Client ID

secret

Client secret

Machine translation service provided by Youdao.

This service uses an API, and you need to obtain an ID and an API key from Youdao.

Custom machine translation

You can also implement your own machine translation services using a few lines of Python code. Place the code in a module Weblate can import (see Creating a Python module or Customizing code) and add fully qualified class name to 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 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 = 75,
    ) -> 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,
            }