Sugestões automáticas

Alterado na versão 4.13: Antes do Weblate 4.13, os serviços eram configurados no Configuração.

O suporte para vários serviços de tradução automática e memória de tradução está integrado. Cada serviço pode ser ativado pelo administrador para todo o site (em Automatic suggestions a partir de Interface de gestão) ou nas configurações do projeto:

../_images/project-machinery.webp

Nota

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.

Os serviços traduzem do idioma fonte conforme configurado em Configuração de componente, veja Idioma fonte.

A sugestão automática por projeto também pode ser configurada via API REST do Weblate.

Prioridade dos serviços de tradução automática e memória de tradução

Correspondências de Weblate Translation Memory com pontuação de 100% têm prioridade sobre os serviços de tradução automática. Se for encontrada uma correspondência de 100% na memória de tradução, nenhuma tradução automática será executada. Se ocorrerem várias correspondências de 100%, a primeira retornada pela base de dados será usada.

Cada serviço de tradução automática tem uma pontuação máxima predefinida que pode produzir. O uso dos serviços de tradução instalados é ordenado de acordo com a sua pontuação máxima. Para cada cadeia com pontuação de tradução inferior à pontuação máxima do serviço, o serviço é solicitado a produzir uma tradução. As traduções com uma pontuação superior à atual são aceitas.

Cadeias fonte para a tradução automática

Added in version 5.11.

A origem de cadeias fontes para todos os serviços de terceiros pode ser configurada. Isto pode ser usado para ajustar o serviço para obter os melhores resultados. As seguintes opções estão disponíveis:

Seleção automática

Escolhe automaticamente o melhor idioma fonte.

Este é o comportamento padrão.

Idioma fonte do componente

Usa o idioma fonte do componente.

Este era o comportamento antes da versão 5.11.

Idioma secundário definido no projeto ou componente

Use o projeto Idioma secundário ou o componente Idioma secundário.

Retorna à seleção automática do idioma fonte se o idioma secundário não estiver configurado.

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 do serviço:

alibaba

Pontuação máxima:

80

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

key

Id. da chave de acesso

secret

Segredo da chave de acesso

region

ID da região

O Alibaba Translate é um serviço de tradução automática neural para traduzir textos e suporta até 214 pares de idiomas.

Anthropic

Added in version 5.16.

ID do serviço:

anthropic

Pontuação máxima:

90

Advanced features:
Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

base_url

URL da API Anthropic

URL base da API Anthropic. Deixe em branco para utilizar o URL predefinido.

model

Modelo Anthropic

Escolhas disponíveis:

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 – Modelo personalizado

persona

Personagem do tradutor

Could not parse JSON file: %sDescreva a personalidade do tradutor para melhorar a precisão da tradução. Por exemplo: “Você é um criador de esquilos.”

style

Estilo de tradução

Descreva o estilo de tradução. Por exemplo: “Use linguagem informal.”

key

Chave da API

custom_model

Nome do modelo personalizado

Necessário apenas quando o modelo estiver definido como «Modelo personalizado»

max_tokens

Máx. de códigos

O número máximo de códigos para gerar na resposta.

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.

O serviço usa automaticamente o Glossário, consulte Glossários na sugestão automática.

Apertium APy

ID do serviço:

apertium-apy

Pontuação máxima:

88

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

url

URL da API

Uma plataforma de tradução de máquina de software livre que fornece traduções para um conjunto limitado de idiomas.

A maneira recomendada de usar o Apertium é executar o seu próprio servidor Apertium-APy.

Amazon Translate

ID do serviço:

aws

Pontuação máxima:

88

Advanced features:
Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

key

Id. da chave de acesso

secret

Chave secreta da API

region

Nome da região

Amazon Translate é um serviço de tradução automática neural para traduzir textos de e para o inglês numa variedade de idiomas suportados. O serviço requer a «Política Gerida» TranslateFullAccess.

O serviço usa automaticamente o Glossário, consulte Glossários na sugestão automática.

Modo Zen

Added in version 5.8.

ID do serviço:

azure-openai

Pontuação máxima:

90

Advanced features:
Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

base_url

URL da API

model

Modelo LLM

persona

Personagem do tradutor

Could not parse JSON file: %sDescreva a personalidade do tradutor para melhorar a precisão da tradução. Por exemplo: “Você é um criador de esquilos.”

style

Estilo de tradução

Descreva o estilo de tradução. Por exemplo: “Use linguagem informal.”

key

Chave da API

azure_endpoint

URL para o endpoint do Azure OpenAI

URL para o endpoint da instância, por exemplo: https://my-instance.openai.azure.com.

deployment

Implementação do Azure OpenAI

O nome de implementação exclusivo do modelo.

Executa a tradução utilizando OpenAI alojado no Azure.

Veja também

OpenAI

Baidu

ID do serviço:

baidu

Pontuação máxima:

90

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

key

Id. do Cliente

secret

Chave secreta

Serviço de tradução de máquina fornecido pelo Baidu.

Este serviço usa uma API e precisa obter um ID e uma chave de API do Baidu para usá-lo.

Veja também

Baidu Translate API

CyrTranslit

Added in version 5.7.

ID do serviço:

cyrtranslit

Pontuação máxima:

100

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

Serviço de tradução automática usando a biblioteca Cyrtranslit.

Este serviço converte texto entre os scripts Cirílico e Latino para idiomas que têm ambos os scripts.

DeepL

ID do serviço:

deepl

Pontuação máxima:

91

Advanced features:
Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

url

URL da API

key

Chave da API

formality

Formalidade

Usa a formalidade especificada se o idioma não for especificado como (in)formal

context

Contexto da tradução

Descreva o contexto da tradução para melhorar a precisão da tradução.

next_gen

Usar modelo de nova geração

Prefira LLM de próxima geração em vez do modelo clássico de tradução automática.

DeepL é um serviço pago que fornece boa tradução de máquina para alguns idiomas. Precisa comprar a assinatura do DeepL API ou pode usar o plano legado DeepL Pro (classic).

A URL da API para usar com o serviço DeepL. No momento em que este artigo foi escrito, existe a API v1, bem como uma versão gratuita e uma versão paga da API v2.

https://api.deepl.com/v2/ (padrão no Weblate)

Destina-se ao uso da API no plano pago e a assinatura é baseada em uso.

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

Destina-se ao uso da API no plano gratuito e a assinatura é baseada em uso.

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

Destina-se a ferramentas CAT e é utilizável com assinatura por utilizador.

Nota

Anteriormente, o Weblate era classificado como uma ferramenta CAT pelo DeepL, por isso deveria usar a API v1, mas agora é entendido que deve usar a API v2. Portanto, a predefinição é v2 e pode alterar-lo para v1 no caso de ter uma assinatura CAT existente e querer que o Weblate use isso.

O Weblate oferece suporte à formalidade no DeepL, ele escolherá uma correspondência com base no idioma (por exemplo, há de@formal e de@informal).

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

O serviço usa automaticamente o Glossário, consulte Glossários na sugestão automática.

Glosbe

ID do serviço:

glosbe

Pontuação máxima:

90

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

Dicionário gratuito e memória de tradução para quase todos os idiomas vivos.

O uso da API é gratuito, mas o uso das traduções está sujeito à licença da fonte de dados usada. Existe um limite de chamadas que podem ser feitas de um IP num determinado período de tempo, para evitar abusos.

Veja também

Site do Glosbe

Tradução básica do Google Cloud

ID do serviço:

google-translate

Pontuação máxima:

90

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

key

Chave da API

Serviço de tradução automática fornecido pelos serviços do Google Cloud.

Este serviço usa a API V2 do Google Tradutor e precisa de obter uma chave de API e ativar a cobrança na consola da API do Google.

Tradução avançada do Google Cloud

ID do serviço:

google-translate-api-v3

Pontuação máxima:

90

Advanced features:
Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

credentials

Informação da conta do serviço Google Translate

Insira uma chave JSON para a conta de serviço.

project

Projeto do Google Translate

Insira o ID numérico ou alfanumérico do seu projeto do Google Cloud.

location

Tradução do Google Translate

Escolha uma região do Google Cloud Translation usada para o projeto do Google Cloud ou mais próxima de si.

bucket_name

Nome do Google Storage Bucket

Insira o nome do bucket do Google Cloud Storage usado para armazenar os ficheiros do glossário.

Serviço de tradução automática fornecido pelos serviços do Google Cloud.

Este serviço usa a API V3 do Google Tradutor e precisa de credenciais no formato JSON para acessá-lo.

Para usar este serviço, primeiro precisa seguir os seguintes passos:

  1. Selecione ou crie um projeto da Cloud Platform.

  2. Ativar faturação para o seu projeto.

  3. Ativar Tradução na Nuvem.

  4. Configurar autenticação.

Opcionalmente, pode configurar o serviço para usar Glossário configurando um Bucket:

  1. Crie um bucket do Google Cloud.

  2. Defina o local do bucket como «us-central1».

  3. Conceda a permissão «Storage Admin» à conta de serviço.

Tradutor de Idiomas IBM Watson

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

LibreTranslate

Added in version 4.7.1.

ID do serviço:

libretranslate

Pontuação máxima:

89

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

url

URL da API

key

Chave da API

LibreTranslate é um serviço gratuito e fonte aberta para traduções automáticas. A instância pública requer uma chave API, mas o LibreTranslate pode ser auto-hospedado e há vários espelhos disponíveis para usar a API gratuitamente.

https://libretranslate.com/ (instância pública oficial)

Requer uma chave de API para usar fora do website.

LTEngine

Added in version 5.17.1.

ID do serviço:

ltengine

Pontuação máxima:

89

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

url

URL da API

key

Chave da API

LTEngine provides a local LibreTranslate-compatible API backed by large language models. For many Weblate installations, native LLM services such as Ollama can be a better fit because Weblate can send translation context directly to the model. Use LTEngine when you specifically want its local translation engine or future LTEngine translation improvements.

Tradutor IA da Azure

ID do serviço:

microsoft-translator

Pontuação máxima:

90

Advanced features:
Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

key

Chave da API

base_url

URL base da aplicação

Escolhas disponíveis:

api.cognitive.microsofttranslator.com – Global (não-regional)

api-apc.cognitive.microsofttranslator.com – Ásia Pacífico

api-eur.cognitive.microsofttranslator.com – Europa

api-nam.cognitive.microsofttranslator.com – América do Norte

api.translator.azure.cn – China

api.cognitive.microsofttranslator.us – Nuvem do Governo dos EUA da Azure

endpoint_url

URL do serviço de autenticação

Serviço regional ou multisserviço podem ser especificados através do campo de região abaixo.

Escolhas disponíveis:

api.cognitive.microsoft.com – Global

api.cognitive.azure.cn – China

api.cognitive.microsoft.us – Nuvem Azure do Governo dos EUA

region

Região do serviço de autenticação

category

Categoria

Especifique um ID da categoria de sistema customizado para usá-lo em vez de um ID geral.

Serviço de tradução de máquina fornecido pela Microsoft no portal do Azure como um dos Serviços Cognitivos.

Weblate implementa API V3 do Tradutor.

O serviço usa automaticamente o Glossário por meio do dicionário dinâmico, consulte Glossários na sugestão automática.

API V2 de texto do Tradutor

A chave que usa com a API V2 do Tradutor pode ser usada com API 3.

API V3 de texto do Tradutor

Precisa-se registar no portal do Azure e usar a chave obtida lá. Com as novas chaves do Azure, também precisa definir region para a região do seu serviço.

Também pode especificar uma categoria personalizada para usar o tradutor personalizado.

Dica

Para Azure China, use o desfecho do Portal do Azure.

ModernMT

Added in version 4.2.

ID do serviço:

modernmt

Pontuação máxima:

90

Advanced features:
Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

url

URL da API

key

Chave da API

context_vector

Vetor de contexto

Lista separada por vírgulas de IDs de memória:peso. Por exemplo: 1234:0.123,4567:0.456

O serviço usa automaticamente o Glossário, consulte Glossários na sugestão automática.

Veja também

API do ModernMT

MyMemory

ID do serviço:

mymemory

Pontuação máxima:

100

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

email

E-mail de contacto

username

Nome de utilizador

key

Chave da API

Grande memória de tradução com tradução de máquina.

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.

Veja também

Site do MyMemory

Netease Sight

ID do serviço:

netease-sight

Pontuação máxima:

90

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

key

Id. do Cliente

secret

Chave secreta

Serviço de tradução de máquina fornecido por NetEase.

Este serviço usa uma API e você precisa obter uma chave e um segredo de NetEase.

Ollama

Added in version 5.15.

ID do serviço:

ollama

Pontuação máxima:

90

Advanced features:
Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

base_url

URL da API

URL base de API Ollama, anfitrião local e porta 11434 por predefinição.

model

Modelo Ollama

Nome do modelo descrito no catálogo Ollama.

persona

Personagem do tradutor

Could not parse JSON file: %sDescreva a personalidade do tradutor para melhorar a precisão da tradução. Por exemplo: “Você é um criador de esquilos.”

style

Estilo de tradução

Descreva o estilo de tradução. Por exemplo: “Use linguagem informal.”

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.

O serviço usa automaticamente o Glossário, consulte Glossários na sugestão automática.

Veja também

OpenAI

Added in version 5.3.

ID do serviço:

openai

Pontuação máxima:

90

Advanced features:
Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

base_url

URL base da API da OpenAI

URL base da API do OpenAI, se for diferente do URL padrão do OpenAI

model

Modelo OpenAI

Escolhas disponíveis:

auto – Seleção automática

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 – Modelo personalizado

persona

Personagem do tradutor

Could not parse JSON file: %sDescreva a personalidade do tradutor para melhorar a precisão da tradução. Por exemplo: “Você é um criador de esquilos.”

style

Estilo de tradução

Descreva o estilo de tradução. Por exemplo: “Use linguagem informal.”

key

Chave da API

custom_model

Nome do modelo personalizado

Necessário apenas quando o modelo estiver definido como «Modelo personalizado»

Executa a tradução utilizando OpenAI.

A API da OpenAI é alimentada por um conjunto diversificado de modelos com diferentes capacidades e faixas de preço. A seleção automática escolhe o melhor modelo disponível, mas pode escolher um modelo específico que atenda às suas necessidades.

Utilize os campos de persona e estilo para ajustar ainda mais as traduções. Eles serão usados num prompt para a OpenAI e permitirão alterar o estilo das traduções.

O serviço usa automaticamente o Glossário, consulte Glossários na sugestão automática.

Alterado na versão 5.7: Foi adicionado o suporte para modelo personalizado e URL de base.

SAP Translation Hub

ID do serviço:

sap-translation-hub

Pontuação máxima:

100

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

url

URL da API

key

Chave da API

username

Nome de utilizador SAP

password

Palavra-passe SAP

enable_mt

Ativar tradução automática

domain

Domínio de tradução

A Id. de um domínio de tradução, por exemplo, BC. Se não especificar um domínio, o método procura por traduções em todos os domínios disponíveis.

Serviço de tradução de máquina fornecido por SAP.

Precisa ter uma conta SAP (e o SAP Translation Hub ativado na SAP Cloud Platform) para usar este serviço.

Também pode configurar se deseja utilizar serviços de tradução automática, além do base de dados de termos.

Nota

Para aceder a API Sandbox, precisa definir url e key.

Para aceder à API produtiva, precisa definir url, username e password.

Systran

ID do serviço:

systran

Pontuação máxima:

90

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

key

Chave da API

Serviço de tradução automática fornecido pela Systran.

Este serviço usa uma API e precisa de obter a chave dessa API em <https://translate.systran.net/en/account>.

tmserver

ID do serviço:

tmserver

Pontuação máxima:

100

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

url

URL da API

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.

Nota

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

Weblate

ID do serviço:

weblate

Pontuação máxima:

100

Configuração:

Este serviço não tem configuração.

O serviço de tradução mecânica do Weblate pode fornecer traduções com base nas correspondências exatas de uma cadeia nas cadeias existentes atualmente no Weblate como Traduzido, Aprovado ou Apenas para leitura states.

Weblate Translation Memory

ID do serviço:

weblate-translation-memory

Pontuação máxima:

100

Configuração:

Este serviço não tem configuração.

Usar Memória de Tradução como um serviço de tradução mecânica. Qualquer entrada que tenha sido traduzida anteriormente (ou carregada para a memória de tradução) pode ser traduzida desta forma. Esta fonte de sugestão funciona com correspondência aproximada.

Nota

A recriação de Memória de Tradução reduz os recursos dessa fonte de TM.

Yandex

ID do serviço:

yandex

Pontuação máxima:

90

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

key

Chave da API

Serviço de memória de tradução fornecido pela Yandex.

Este serviço usa uma API de tradução e você precisa obter uma chave de API da Yandex.

Yandex v2

Added in version 5.1.

ID do serviço:

yandex-v2

Pontuação máxima:

90

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

key

Chave da API

Serviço de memória de tradução fornecido pela Yandex.

Este serviço usa uma API de tradução e precisa obter uma chave de API da Yandex Cloud.

Youdao Zhiyun

ID do serviço:

youdao-zhiyun

Pontuação máxima:

90

Configuração:

source_language

Seleção do idioma fonte

Escolhas disponíveis:

auto – Seleção automática

fonte – Idioma fonte do componente

secundário – Idioma secundário definido no projeto ou componente

key

Id. do Cliente

secret

Chave secreta

Serviço de tradução de máquina fornecido pelo Youdao.

Este serviço usa uma API e você precisa obter um ID e uma chave de API do Youdao.

Tradução da máquina personalizada

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 Criar um módulo Python 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 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,
            }