Czytelnia / Technologie tłumaczeniowe


5.1.3. Implementacja języka Perl

Implementacja języka Perl jak i PHP jest prosta. Zaprezentowana tutaj wersja jest uproszczona, a jej celem jest pokazanie, w jaki sposób można stworzyć własny serwer. Przedstawimy teraz serwer Perl. Po pierwsze, należy stworzyć moduł pliku. Nazwijmy go mtd.pm. Moduł ten będzie posiadał funkcje dla każdej z metod usługi sieciowej.

package mtd;
use Search::Glimpse;
use strict;
our %known_languages = (
en => [qw/pt/],
pt => [qw/en/] );
sub lang_pair {
my ($self, $l1, $l2) = @_;
if (exists($known_languages{$l1}) &&
grep { $_ eq $l2 }
@{$known_languages{$l1}})
{ return 1 }
else
{ return 0 }
}

sub equiv {
my ($self, $l1, $l2, $string) = @_;
my $x = Search::Glimpse->new(
’server’ => ’server.url.pt’,
’nr_hits’ => 10);
my @answers = $x->search($string);
my $i = 0;
for (@answers) {
$i++;
s!^[^:]+:!!;
s///;
s!}
if ($answers[0] eq "ERROR")
{ return undef }
else
{ return $answers[0] }
}

sub conc {
my ($self, $l1, $l2, $string) = @_;
my $x = Search::Glimpse->new(
’server’ => ’server.url.pt’,
’nr_hits’ => 20);
my @answers = $x->search($string);
return undef if $answers[0] eq "ERROR";
@answers = map { s!^[^:]+:!!;
s!^\s*<[^>]+>!!;
s!$!!;
s!]+>!#XPTO#!;
[ split /#XPTO#/ ]
} @answers;
return [@answers];
}
1;

Jak widać zastosowanie innego rozwiązania do indeksowania pamięci tłumaczeń, zmienia jedynie ten moduł oraz sposób w jaki znajduje on odpowiedzi.