Машинный перевод
В 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 — это сервис машинного перевода при помощи нейронных сетей для перевода текста на английский язык и с английского языка на широкое множество поддерживаемых языков.
Этот сервис включается добавлением в список
MT_SERVICES
значенияweblate.machinery.aws.AWSTranslation
.Установите модуль boto3.
Настройте 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
Бесплатный словарь и память переводов для почти всех живых языков.
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.
Этот сервис включается добавлением в список MT_SERVICES
значения weblate.machinery.glosbe.GlosbeTranslation
.
См.также
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’а.
Сперва вам нужно импортировать в память переводов некоторые данные:
Этот сервис включается добавлением в список 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
Запустите tmserver, чтобы он слушал ваши запросы:
tmserver -d /var/lib/tm/db
Настройте 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–2022 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 начнёт его использовать.