Машинный перевод

В Weblate встроена поддержка нескольких сервисов машинного перевода, которая может быть включена администратором с помощью добавления соответствующих значений в список MT_SERVICES. Эти сервисы идут с собственными условиями своего использования, поэтому убедитесь, что вам разрешено использовать их так, как вы хотите.

Исходный язык можно настроить в настройках проекта.

amaGama

Специальная установка tmserver, запущенная авторами Virtaal.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.tmserver.AmagamaTranslation.

Apertium

Свободная платформа ПО машинного перевода, обеспечивающая переводы на ограниченный набор языков.

Рекомендуемый способ использования Apertium — запуск собственного сервера Apertium-APy.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.apertium.ApertiumAPYTranslation и заданием параметра MT_APERTIUM_APY.

AWS

Добавлено в версии 3.1.

Amazon Translate — это сервис машинного перевода при помощи нейронных сетей для перевода текста на английский язык и с английского языка на широкое множество поддерживаемых языков.

  1. Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.aws.AWSTranslation.

  2. Установите модуль boto3.

  3. Настройте Weblate.

Машинный перевод через API Baidu

Добавлено в версии 3.2.

Сервис машинного перевода, предоставляемый Baidu.

Этот сервис использует API, и чтобы его использовать, вам нужно получить от Baidu идентификатор и ключ API.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.baidu.BaiduTranslation и заданием параметров MT_BAIDU_ID и MT_BAIDU_SECRET.

DeepL

Добавлено в версии 2.20.

DeepL — это платный сервис, предоставляющий хороший машинный перевод на несколько языков. Вам необходимо приобрести подписку на DeepL API или воспользоваться устаревшим планом DeepL Pro (classic).

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.deepl.DeepLTranslation и заданием параметра MT_DEEPL_KEY.

Подсказка

В случае, если у вас есть подписка на CAT-инструменты, вы должны использовать «API v1» вместо «v2», которую по умолчанию использует Weblate (в данном случае это не совсем версия API). В случае, если вы находитесь на бесплатном, а не платном тарифном плане, вы должны использовать https://api-free.deepl.com/ вместо https://api.deepl.com/. Вы можете настроить оба параметра с помощью MT_DEEPL_API_VERSION.

LibreTranslate

Добавлено в версии 4.7.1.

LibreTranslate - это бесплатная служба машинного перевода с открытым исходным кодом. Публичный экземпляр требует API-ключа, но LibreTranslate может быть размещён самостоятельно, и есть несколько зеркал, доступных для бесплатного использования API.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.libretranslate.LibreTranslateTranslation и заданием параметра MT_LIBRETRANSLATE_API_URL. Если для вашего экземпляра требуется ключ API, вы также должны установить MT_LIBRETRANSLATE_KEY.

Glosbe

Бесплатный словарь и память переводов для почти всех живых языков.

API можно использовать бесплатно, но при условии наличия лицензии на используемый источник данных. Для борьбы со злоупотреблениями существует ограничение на количество вызовов API, которое можно выполнить с одного IP в течение установленного периода времени.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.glosbe.GlosbeTranslation.

См.также

Веб-сайт Glosbe

Google Переводчик

Сервис машинного перевода, предоставляемый Google.

Этот сервис использует API Переводчика Google, поэтому вам нужно получить ключ API и включить тарифный план в консоли Google API.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.google.GoogleTranslation и заданием параметра MT_GOOGLE_KEY.

Google Translate API V3 (расширенный)

Сервис машинного перевода, предоставляемый облачными сервисами Google Cloud.

Этот сервис отличается от предыдущего способом аутентификации. Для включения сервиса добавьте в список MT_SERVICES значение weblate.machinery.googlev3.GoogleV3Translation и задайте параметры

Если без location у вас не заработает, вам также может потребоваться указать параметр MT_GOOGLE_LOCATION.

Переводчик Microsoft Cognitive Services

Добавлено в версии 2.10.

Сервис машинного перевода, предоставляемый Microsoft на портале Azure в качестве одного из сервисов Cognitive Services.

Weblate реализует API переводчика версии V3.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.microsoft.MicrosoftCognitiveTranslation и заданием параметра MT_MICROSOFT_COGNITIVE_KEY.

API переводчика текста версии V2

Ключ, который вы используете для API переводчика версии V2, можно использовать с API версии 3.

API переводчика текста версии V3

Вам необходимо зарегистрироваться на портале Azure и использовать полученный там ключ. При использовании новых ключей Azure вам также потребуется установить параметр MT_MICROSOFT_REGION в локаль вашего сервиса.

Microsoft Terminology Service (Терминологическая служба Майкрософт)

Добавлено в версии 2.19.

API терминологической службы Майкрософт позволяет программно получать доступ к терминологии, определениям и строкам пользовательского интерфейса (UI), доступным на языковом портале, через веб-сервис.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.microsoftterminology.MicrosoftTerminologyService.

ModernMT

Добавлено в версии 4.2.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.modernmt.ModernMTTranslation и заданием параметра MT_MODERNMT_KEY.

MyMemory

Огромная память переводов с машинным переводом.

Бесплатное анонимное использование в настоящее время ограничено 100 запросами в день, или 1000 запросами в день при указании контактного адреса электронной почты в параметре MT_MYMEMORY_EMAIL. Также вы можете запросить у них увеличение лимитов.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.mymemory.MyMemoryTranslation и заданием параметра MT_MYMEMORY_EMAIL.

API машинного перевода NetEase Sight

Добавлено в версии 3.3.

Сервис машинного перевода, предоставляемый NetEase.

Этот сервис использует API, поэтому вам необходимо получить от NetEase ключ и секрет.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.youdao.NeteaseSightTranslation и заданием параметров MT_NETEASE_KEY и MT_NETEASE_SECRET.

tmserver

Вы можете запустить свой собственный сервер памяти переводов, используя сервер, сходящий в поставку с Translate-toolkit, и настроив общение Weblate’а с ним. Также вы можете использовать его с сервером amaGama, который является расширенной версией tmserver’а.

  1. Сперва вам нужно импортировать в память переводов некоторые данные:

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.tmserver.TMServerTranslation.

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 для общения с ним:

MT_TMSERVER = "http://localhost:8888/tmserver/"

Yandex Translate (Яндекс.Переводчик)

Сервис машинного перевода, предоставляемый Яндексом.

Этот сервис использует API переводчика, поэтому вам необходимо получить от Яндекса ключ API.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.yandex.YandexTranslation и заданием параметра MT_YANDEX_KEY.

API машинного перевода Youdao Zhiyun

Добавлено в версии 3.2.

Сервис машинного перевода, предоставляемый Youdao.

Этот сервис использует API, поэтому вам необходимо получить от Youdao идентификатор и ключ API.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.youdao.YoudaoTranslation и заданием параметров MT_YOUDAO_ID и MT_YOUDAO_SECRET.

Weblate

Weblate также сам может быть источником машинных переводов. Этот перевод основан на движке полнотекстового поиска Woosh и выдаёт как точные, так и приблизительные соответствия.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.weblatetm.WeblateTranslation.

Память переводов Weblate’а

Добавлено в версии 2.20.

Память переводов также может использоваться в качестве источника предложений машинного перевода.

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.machine.WeblateMemory. Он включен по умолчанию.

SAP Translation Hub

Сервис машинного перевода, предоставляемый SAP.

Для использования этой службы вам необходимо иметь учётную запись SAP (и иметь SAP Translation Hub включённым в облачной платформе SAP).

Этот сервис включается добавлением в список MT_SERVICES значения weblate.machinery.saptranslationhub.SAPTranslationHub и заданием доступа либо к песочнице, либо к производственному API.

Примечание

Для доступа к API песочницы необходимо задать параметры MT_SAP_BASE_URL и MT_SAP_SANDBOX_APIKEY.

Для доступа к рабочему API необходимо задать параметры MT_SAP_BASE_URL, MT_SAP_USERNAME и MT_SAP_PASSWORD.

Пользовательский машинный перевод

Также вы можете реализовать собственные сервисы машинного перевода, написав всего несколько строк кода на Python. В этом примере реализован машинный перевод на фиксированный список языков через модуль Python dictionary:

#
# Copyright © 2012 - 2021 Michal Čihař <michal@cihar.com>
#
# This file is part of Weblate <https://weblate.org/>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
#
"""Machine translation example."""

import dictionary

from weblate.machinery.base import 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,
        search: bool,
        threshold: int = 75,
    ):
        """Return tuple with translations."""
        for t in dictionary.translate(text):
            yield {"text": t, "quality": 100, "service": self.name, "source": text}

Вы можете добавить свой класс в MT_SERVICES и Weblate начнёт его использовать.