Herbaer::Translate::Pipe


Beschreibung

Damit nicht zu viel Zeit benötigt wird, Übersetzer-Prozesse zu starten und zu beenden, kann dieses Modul mit einem „persistenten” Übersetzerprozess. über benannte Pipes kommunizieren. Das Programm pipe_srv.pl (Quelltext) startet den Übersetzerprozess, das Programm pipe_srv_stop.pl (Quelltext) beendet den Übersetzerprozess.

Die Methode _send_request dieses Moduls Herbaer::Translate::Pipe (Datei Pipe.pm) sendet einen einzeiligen Befehl an den Übersetzer über die Pipe BASIS/request und liest die Antwort aus der Pipe BASIS/response. Die Parameter einer Methode entsprechen Feldern, die durch einen Doppelpunkt getrennt werden. Der Doppelpunkt und das Zeilenendezeichen innerhalb von Parameterwerten werden daher anders kodiert („geschützt”). Dazu dient die Funktion _encode. Die Funktion _decode macht die Kodierung durch _encode rückgängig.

Funktionen

$translator = Herbaer::Translate::Pipe->new ($basis, $trname, $debug)

Ergibt ein neues Übersetzer-Objekt. Diese Funktion wird normalerweise nicht direkt aufgerufen, sondern von Herbaer::Translate::new (s. Translate.pm (Quelltext)).

Der Dateipfad für eine Anfrage an den Übersetzerprozess ist $base/request, der Dateipfad der Antwort ist $base/response.

$trname ist die Kennung des Übersetzers, den der Übersetzerprozess verwenden soll. Dem Übersetzerprozess wird die Anfrage trname:$trname gesendet.

Ein logisch wahrer Wert des optionalen Parameters $debug führt zu Meldungen nach STDERR.

$translator->translate ($text, $quellsprache, $zielsprache)

Sendet die Anfrage translate:$text:$quellsprache:$zielsprache an den Übersetzer. Der sendet die kodierte Übersetzung als Antwort.

$translator->learn ($text, $quellsprache, $zielsprache, $uebersetzung)

Sendet die Anfrage learn:$text:$quellsprache:$zielsprache:$uebersetzung an den Übersetzerprozess und gibt dessen Antwort zurück.

$translator->finish ()

Sendet die Anfrage finish an den Übersetzer und gibt dessen Antwort zurück.

$translator->trname ($trname)

Sendet die Anfrage trname:$trname an den Übersetzerprozess und gibt dessen Antwort zurück. Der Übersetzerprozess soll ab jetzt den Übersetzer mit der Kennung $trname verwenden.

$translator->translator_name ()

Sendet die Anfrage translator_name an den Übersetzerprozess. Wenn dessen Antwort mit der Zeichenfolge OK beginnt, werden diese Zeichenfolge und mögliche weitere Leerzeichen am Anfang der Antwort durch pipe_ ersetzt. Die resultierende Zeichenfolge wird als Ergebnis zurückgegeben. Wenn die Anwort des Übersetzerprosesses nicht mit OK beginnt, wird pipe_error zurückgegeben.

$translator->stop ()

Sendet die Anfrage stop an den Übersetzerprozess und gibt dessen Antwort zurück. Der Übersetzerprozess soll sich beenden.