機械翻訳

複数の機械翻訳サービスに標準で対応しています。管理者は、各サービスを MT_SERVICES を設定して個別に有効にします。機械翻訳サービスは利用規約の対象となるため、あなたが望む方法で利用できることを確認してください。

原文の言語は、プロジェクトの設定 から設定します。

amaGama

特別にインストールされて動作している、Virtaal の作成者自身が作成した tmserver

weblate.machinery.tmserver.AmagamaTranslationMT_SERVICES に追加して、このサービスを有効にします。

Apertium

限定した言語セットに対して翻訳を提供する Libre ソフトウェアの機械翻訳プラットフォームです。

Apertium が推奨する使用方法は、Apertium-APy サーバーを独自に実行することです。

このサービスを有効にするには、MT_SERVICESweblate.machinery.apertium.ApertiumAPYTranslation を追加し、MT_APERTIUM_APY を設定します。

AWS

バージョン 3.1 で追加.

Amazon Translate は、対応している多くの言語間でテキストを英語に、またその逆に翻訳したりするためのニューラル機械翻訳サービスです。

  1. このサービスを有効にするには、MT_SERVICESweblate.machinery.aws.AWSTranslation を追加する。

  2. boto3 モジュールをインストールする。

  3. Weblate を設定する。

Baidu API machine translation

バージョン 3.2 で追加.

Baidu が提供する機械翻訳サービス。

このサービスは API を使用しています。使用するには、Baidu から ID と API キーを取得してください。

MT_SERVICESweblate.machinery.baidu.BaiduTranslation を追加し、MT_BAIDU_IDMT_BAIDU_SECRET を設定して、このサービスを有効化します。

DeepL

バージョン 2.20 で追加.

DeepL は有料サービスであり、複数の言語向けに優れた機械翻訳を提供しています。DeepL API サブスクリプションを購入するか、DeepL Pro (classic) プランを使用してください。

このサービスを有効にするには、weblate.machinery.deepl.DeepLTranslationMT_SERVICES に追加し、MT_DEEPL_KEY を設定します。

ヒント

CAT ツールのサブスクリプションがある場合、Weblate で使用するデフォルトの 「v 2」 の代わりに 「v 1 API」 を使用します(これは API のバージョンではない) 。有料プランではなく、無料プランの場合は、https://api-free.deepl.com/ の代わりに https://api.deepl.com/ を使用してください。両方のパラメータを調整するには、MT_DEEPL_API_URL を設定します。

LibreTranslate

バージョン 4.7.1 で追加.

LibreTranslate は、無料のオープンソースの機械翻訳サービスです。公開するインスタンスには API キーが必要ですが、LibreTranslate は自分のサーバーにインストールできます。また、API を無料開放しているミラーサイトもあります。

このサービスを有効にするには、weblate.machinery.libretranslate.LibreTranslateTranslationMT_SERVICES に追加し、 MT_LIBRETRANSLATE_API_URL を設定します。インスタンスに API キーが必要な場合は、:setting:'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.

このサービスを有効にするには、weblate.machinery.glosbe.GlosbeTranslation を :setting:`MT_SERVICES`に追加してください。

Google 翻訳

Google が提供する機械翻訳サービス。

このサービスは、Google Translation API を使用するので、API キーの取得と Google API コンソールでの課金の有効化が必要です。

このサービスを有効にするには、MT_SERVICESweblate.machinery.google.GoogleTranslation を追加し、MT_GOOGLE_KEY を設定します。

Google Translate API V3(Advanced)

Google Cloud サービスが提供する機械翻訳サービス。

このサービスは、認証方法が以前とは異なります。サービスを有効にするには、weblate.machinery.googlev3.GoogleV3Translationweblate.machinery.googlev3.GoogleV3Translation に追加し、次の項目を設定します

ロケーション の設定に失敗した場合は、MT_GOOGLE_LOCATION も指定してください。

Microsoft Cognitive Services Translator

バージョン 2.10 で追加.

Cognitive Services のひとつとして Azure portal でマイクロソフトが提供する機械翻訳サービス。

Weblate は Translator API V3 を実装しています。

このサービスを有効にするには、weblate.machinery.microsoft.MicrosoftCognitiveTranslationMT_SERVICES に追加し、MT_MICROSOFT_COGNITIVE_KEY を設定します。

Translator Text API V2

Translator API V2 で使用するキーは、API 3 にも使用できます。

Translator Text API V3

Azure ポータルに登録して、そこで取得したキーを使用します。新しい Azure キーを使用する場合は、サービスの言語に対して MT_MICROSOFT_REGION の設定も必要です。

Microsoft Terminology Service

バージョン 2.19 で追加.

The Microsoft Terminology Service API を使用すると、Web サービスを使用して、言語ポータルで使用できる用語、定義、およびユーザー インターフェイス(UI)文字列にプログラムからアクセスできます。

このサービスを有効にするには、weblate.machinery.microsoftterminology.MicrosoftTerminologyServiceMT_SERVICES に追加します。

ModernMT

バージョン 4.2 で追加.

このサービスを有効にするには、weblate.machinery.modernmt.ModernMTTranslation を:setting:MT_SERVICES に追加し、MT_MODERNMT_KEY を設定します。

MyMemory

大量の翻訳メモリと機械翻訳。

現在、無料の匿名使用での制限は、100 リクエスト / 日。MT_MYMEMORY_EMAIL に連絡先のメールアドレスを指定した場合の制限は、1000 リクエスト / 日。追加は、応相談。

このサービスを有効にするには、weblate.machinery.mymemory.MyMemoryTranslationMT_SERVICES に追加し、MT_SERVICES を設定します。

NetEase Sight API machine translation

バージョン 3.3 で追加.

NetEase が提供する機械翻訳サービス。

このサービスは API を使用するので、NetEase からキーとシークレットの取得が必要です。

このサービスを有効にするには、MT_SERVICESweblate.machinery.youdao.NeteaseSightTranslation を追加し、MT_NETEASE_KEYMT_NETEASE_SECRET を設定します。

tmserver

Translate-toolkit に付属したサーバーを使用して、独自の翻訳メモリ サーバーを実行し、Weblate とやり取りできます。また、tmserver の拡張版である amaGama サーバーでも使用できます。

  1. まず、翻訳メモリにデータをインポートする:

2. Turn on this service by adding weblate.machinery.tmserver.TMServerTranslation to MT_SERVICES.

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 翻訳

Yandex が提供する機械翻訳サービス。

このサービスは Translation API を使用するので、Yandex から API キーの取得が必要です。

このサービスを有効にするには、weblate.machinery.yandex.YandexTranslationMT_SERVICES に追加し、MT_YANDEX_KEY を設定します。

Youdao Zhiyun API 機械翻訳

バージョン 3.2 で追加.

Youdao が提供する機械翻訳サービス。

このサービスは API を使用するので、Youdao から ID と API キーの取得が必要です。

このサービスを有効にするには、MT_SERVICESweblate.machinery.youdao.YoudaoTranslation を追加し、MT_YOUDAO_IDMT_YOUDAO_SECRET を設定します。

Weblate

Weblate は、機械翻訳のソースにもなります。これは Woosh フル テキスト エンジンに基づき、完全一致と不完全一致の両方を提供します。

このサービスを有効にするには、weblate.machinery.weblatetm.WeblateTranslationMT_SERVICES に追加します。

Weblate 翻訳メモリ

バージョン 2.20 で追加.

翻訳メモリ は、機械翻訳の候補のソースとしても使用できます。

このサービスを有効にするには、weblate.memory.machine.WeblateMemoryMT_SERVICES に追加します。このサービスは、デフォルトで有効です。

SAP Translation Hub

SAP が提供する機械翻訳サービス。

このサービスを使用するには、SAP アカウント(および SAP Cloud Platform で有効な SAP Translation Hub)が必要です。

このサービスを有効にするには、weblate.machinery.saptranslationhub.SAPTranslationHubMT_SERVICES に追加して、サンドボックスまたは運用環境 API に適切なアクセス権を設定します。

注釈

サンドボックス API にアクセスするには、MT_SAP_BASE_URL および MT_SAP_SANDBOX_APIKEY の設定が必要です。

productive API にアクセスするには、MT_SAP_BASE_URLMT_SAP_USERNAMEMT_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 は設定したクラスの使用を開始します。