polski <- -> niemiecki
polski <- -> angielski
polski <- -> francuski.
Podstawową zaletą jest to, że nie trzeba odpalać przeglądarki, aby sprawdzić szukane słowo.
Można to uczynić prosto z terminata prosto wpisując: ./tlumacz.pl slowo, a po paru sekundach dostaniemy to samo, co dostalibyśmy na slowniki.onet.pl.
Zasady użycia:
./tlumacz slowo (tłumaczy z polskiego na angielski, lub odwrotnie (sam rozpoznaje język))
./tlumacz -n slowo (tłumaczy z polskiego na niemiecki, lub odwrotnie (sam rozpoznaje język))
./tlumacz -f slowo (tłumaczy z polskiego na francuski, lub odwrotnie (sam rozpoznaje język))
Zasada działania skryptu jest bardzo prosta: udaje przeglądarke i łączy się z witryną http://portalwiedzy.onet.pl/tlumacz.html, i pobiera tłumaczenie słowa tak, jakbyśmy wchodzili na strone. Zaletą jest to, że nie musimy oglądać tych nędznych i wszechobecnych reklam. Oczywiście skrypt nie jest doskonały, a to dlatego, że każde udoskonalenie, to dodatkowe regexpy,a te jak wiemy są jednymi z najdłużej działających funkcji perla.
Skrypt jest bardzo wygodny, zamieszczam go pod spodem wraz ze wskazówkami 'przeduruchumieniowymi':
1)zakładam, ze macie Perl'a,
2)musicie dociągnąć 2 moduły (zakładam, że reszte macie)
Code: Select all
emerge -vD dev-perl/HTML-Tree
emerge -vD libwww-perl
Code: Select all
#!/usr/bin/perl -w
use Getopt::Std;
%options=();
getopts("naf",\%options);
#zmienne niezbedne do odpytania serwera
%GET=();
if($options{n}){
$GET{'tr'}="nie-auto";
}elsif($options{f}){
$GET{'tr'}="fra-auto";
}elsif($options{a}){
$GET{'tr'}="ang-auto";
}else{
$GET{'tr'}="ang-auto";
}
#adres slownika
$baseUrl="http://portalwiedzy.onet.pl/tlumacz.html?";
$GET{'qs'}=$ARGV[0] or die("uzycie: $0 slowo_do_tlumaczenia");
$GET{'ch'}=1;
$GET{'x'}=0;
$GET{'y'}=0;
foreach $key (keys %GET){
$baseUrl.=$key."=".$GET{$key}."&";
}
$baseUrl=~s/\&$//;
use LWP::UserAgent;
use HTTP::Request;
my $userAgent = LWP::UserAgent->new();
$userAgent->agent("Opera/7.54 (X11; Linux i686; U)");
my $request = HTTP::Request->new(GET => $baseUrl);
$request->referer("http://portalwiedzy.onet.pl/");
$response=$userAgent->request($request);
if($response->is_error()){
printf("%s\n",$response->status_line);
exit;
}
my $content=$response->content();
$content=~s/<BR>/[BR]/ig;
#wywalmy tagi HTMLowe
use HTML::TreeBuilder;
my $tree=HTML::TreeBuilder->new;
$tree->parse($content);
$tree->eof;
$word=$GET{'qs'};
$content=$tree->as_text();
if($content =~ /Nie znaleziono/){
$retList="--";
}else{
$content=~s/.*Wyniki tłumaczenia:.*?(\d)/$1/g;
$content=~s/Przetłumaczono.*$//g;
$content=~s/\[BR\]/\n/g;
@versions=split(/(\w+ )?$word( \w+)?/i, $content);
$retList=$versions[0];
}
printf("%s\n", $retList);
exit;
Code: Select all
chmod +x tlumacz.plOryginalna i mam nadzieje uaktualniana wersja skryptu znajduje się na mojej stronie www:http://mion.elka.pw.edu.pl/~ldylag/?id=-1
Przykład działania:
Code: Select all
ludwik@lu asu $ ./tlumacz.pl nauczyciel
1 teacher
2 instructor
3 schoolmaster
4 school-teacher
5 master
6 professor
7 tutor
8 preceptor




