Content translation/Machine Translation/MT Clients/de

Maschinelle Übersetzungsdienste werden über Client-Module in Content Translation aufgerufen. Wir haben Apertium- und Yandex-Clients bereits in den Code geschrieben. Es ist möglich, eine beliebige Anzahl solcher MT-Dienst-Clients hinzuzufügen und auf Sprachpaare abzubilden. Diese Dokumentation erklärt die Architektur der maschinellen Clients.



Technische Anforderungen
Ein neuer MT-Client kann ein lokal gehostetes maschinelles Übersetzungssystem oder ein entferntes maschinelles Übersetzungssystem sein, auf das über eine API zugegriffen wird. API-basierte Dienste werden empfohlen, da sie sich so als Dienst isolieren lassen. Wenn der Client frei lizenziert und besser für Linux-Distributionen verpackt ist, können wir ihn im Wikimedia-Cluster hosten. Zum Beispiel wird Apertium in wmflabs gehostet. Andererseits wird Yandex nicht von Wikimedia gehostet. Sowohl auf Apertium als auch auf Yandex wird über die Web-APIs zugegriffen.



Übersetzungs-API
Eine API für maschinelle Übersetzung nimmt die Ausgangssprache, die Zielsprache und den Inhalt auf und gibt den übersetzten Inhalt aus. Die API muss öffentlich dokumentiert sein und die Fehlercodes enthalten.
 * Wenn die API nicht öffentlich ist, kann sie ein Authentifizierungs-Token akzeptieren, meist einen Schlüssel.
 * Das Ausgabeformat kann der Einfachheit halber JSON sein.
 * Die API sollte POST akzeptieren.
 * Die API sollte keine personenbezogenen Daten, wie z.B. den Benutzernamen, abfragen. Der CXServer stellt sie dem MT-Client nicht zur Verfügung.
 * Die API sollte in der Lage sein, eine angemessene Anzahl von Anfragen pro Minute anzunehmen.
 * Die API sollte eine angemessene Menge an Inhalten pro Anfrage akzeptieren.
 * Es wird empfohlen, ein Dashboard einzurichten, um die Nutzung der API zu analysieren, einschließlich der Anfragen pro Tag/Woche/Monat und der Anzahl der übersetzten Zeichen pro Tag/Woche/Monat.

Guidelines of performance
Content translation is still a beta feature, available only for opt-in logged in users. So the current usage pattern may not be the right assessment for future. Moreover, when we expand the machine translation to more languages, there will be more users and requests. Depending on our current usage, some baselines are given below. Note that this is never going to be the final assessment. APIs must be designed to accept more than this.


 * Atleast 10,000 requests per day
 * Atleast 10 million characters per day
 * Atleast 5000 characters per request



Eingabeformat
The content to translate from CX is HTML formatted. Translating HTML while preserving markup is challenging, but some MT Engines are capable of that (example: Yandex). Apertium does not handle HTML markup. Depending on the capability, CX can send plain text version or HTML of the content.

Quality of translation
We evaluate the quality of MT by requesting feedback from Wikipedia contributors from the language in context. CX uses MT as an intial translation template and encourage translators to improve it. Because of that unless the quality is quite bad as per the feedback we get, we can use it.

Developing a new MT Client Module
The best way to learn this is to refer an existing client module like Yandex or Apertium. The client modules are present in cxserver's lib/mt folder. Let us call our client as BabelFish MT Client. Create a file named BabelFish.js in lib/mt folder. If your BabelFish service is not capable of translating HTML by retaining all markup in appropriate position in translation, instead of, you will have to write   method in the above code. Refer Apertium.js for such an example. Yandex.js is an example for MT client that is capable of handling both html and text content.

You need to add an entry in lib/mt/index.js for your new client.

To map a language pair to use this client, create a config file in config folder. You may refer exiting configuration files for examples. Then enable this MT engine in the cxserver config.yaml. Here also follow the existing entries for examples.

Restart the cxserver and test your client. You may want to read some unit tests existing for Apertium to write your own tests.

Machine translation clients
The following are machine translation clients that support Content Translation in different languages:
 *  (Unterstützte Sprachen)
 * OpusMT (Unterstützte Sprachen)
 *  (Unterstützte Sprachen)
 *  (Unterstützte Sprachen)
 *  (Unterstützte Sprachen)
 *  (Unterstützte Sprachen)
 * Elia (ehemalig als Matxin bekannt) (Unterstützte Sprachen)
 * NLLB-200 ( formerly known as Flores ) ( languages supported )