Das Modul Herbaer::Translate::Learnchain
(Datei Learnchain.pm
) (Paket Herbaer::Translate::Learnchain
) implementiert die Übersetzer-Schnittstelle (s. Tranlate.pm
, Base.pm
(Quelltext))
Es verknüpft zwei Übersetzer: einen „Lehrling” und einen „Meister”. Ein typischer „Lehrling” sucht Übersetzungen in einer Datenbank, der „Meister” befragt einen Web-Dienst. Details sind zur Methode translate
beschrieben.
$translator = Herbaer::Translate::Learnchain
->new
($learner
, $master
, $update
, $debug
)
Ergibt einen neuen Übersetzer als Verknüpfung zweier Übersetzer: eines „Lehrlings” und eines „Meisters”.
$learner
ist die Kennung des „Lehrlings”
$master
ist die Kennung des „Meisters”
Der optionale Parameter $update
steuert die Arbeitsweise der Methode translate
. Ein logisch wahrer Wert stellt den „Aktualisierungsmodus” ein.
Ein logisch wahrer Wert des optionalen Parameters $debug
führt zu Meldungen nach STDERR.
$translator->translate
($text, $quellsprache, $zielsprache)
Zunächst soll der „Lehrling” den Text $text
aus der Sprache $quellsprache
in die Sprache $zielsprache
übersetzen. Wenn er keine Übersetzung liefert oder wenn der „Aktualisierungmodus” eingeschaltet ist, übersetzt der „Meister”. Wenn der Meister eine andere Übersetzung findet als der „Lehrling”, lernt der „Lehrling” die Übersetzung der Meisters. Das Ergebnis ist die Übersetzung des Meisters, falls der Meister gefragt wurde, sonst die Übersetzung der Lehrlings.
$translator->learn
($text, $quellsprache, $zielsprache, $uebersetzung)
Ruft die gleichnamigen Methoden des „Lehrlings” und des „Meisters” auf.
$translator->finish
()
Ruft die gleichnamigen Methoden des „Lehrlings” und des „Meisters” auf.
$translator->translator_name
()
Ergibt im Aktualisierungmodus die Zeichenkette lu_
, sonst die Zeichenkette MASTER
_LEARNER
lc_
. Der Platzhalter MASTER
_LEARNER
MASTER
steht für das Ergebnis der Methode translator_name
des „Meisters”, LEARNER
für das Ergebnis der Methode translator_name
des „Lehrlings”.