| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | 
							- #!/usr/bin/perl -w
 - 
 - use strict;
 - use warnings;
 - 
 - use LWP::Simple;
 - use Getopt::Long;
 - use Pod::Usage;
 - use File::Basename;
 - 
 - binmode STDOUT, ":encoding(UTF-8)";
 - 
 - sub usage;
 - 
 - my $direction = 'encz.en';
 - my $lines = 20;
 - my $max_lines = 50;
 - my $long = 0;
 - my $man = 0;
 - my $help = 0;
 - my $host = 'www.slovnik.cz';
 - 
 - GetOptions(
 -     'long|l'     => \$long,
 -     'lines|n=i'     => \$lines,
 -     'direction|d=s' => \$direction,
 -     'help|?|h'    => \$help,
 -     'man'       => \$man,
 - ) or pod2usage(2);
 - pod2usage(1) if $help;
 - pod2usage(-exitstatus => 0, -verbose => 2) if $man;
 - 
 - $lines = $max_lines if $long;
 - 
 - my $word = shift or usage;
 - 
 - my $query  = sprintf(
 -     '/bin/mld.fpl?vcb=%s&dictdir=%s&lines=%s',
 -     $word,
 -     $direction,
 -     $lines
 - );
 - 
 - my $url = "http://$host$query";
 - my @lines = split m|\n|, get($url);
 - @lines = grep m|class="pair"|, @lines;
 - 
 - foreach (@lines) {
 -     s/<.*?>//g;
 -     print;
 -     print "\n";
 - }
 - 
 - sub usage {
 -     printf STDERR "usage: %s [options] word\n", basename($0); exit 1;
 - }
 - 
 - __END__
 - 
 - =head1 NAME
 - 
 - se - Translate en-* to/from cs-CZ and many other languages using
 - www.slovnik.cz service
 - 
 - =head1 SYNOPSIS
 - 
 - B<se> [I<OPTIONS>] I<WORD>
 - 
 - =head1 DESCRIPTION
 - 
 - B<se> will take English word, compose a query to dictionary service at
 - http://www.slovnik.cz/, fetch the English - Czech pairs and display them
 - to stdout.
 - 
 - Although English to Czech is default, using B<--direction> parameter
 - you can translate Czech to English or even between Czech and many other
 - languages.
 - 
 - For I<WORD> with diacritics, you can provide it
 - 
 - =over 8
 - 
 - =item * directly if your terminal supports it (tested with few Czech words
 - on Debian 6.0 with urxvt)
 - 
 - =item * directly with diacritics stripped, or
 - 
 - =item * using special notation described here:
 - http://www.slovnik.cz/alternative_chars.html
 - 
 - Few simple examples:
 - 
 - =over 8
 - 
 - =item * C<c<erti/k> - c with caron, i with acute
 - 
 - =item * C<pu@da> -- u with ring above
 - 
 - =item * C<Bu:ro> -- u with diaeresis
 - 
 - =item * C<ce\ramique> -- e with grave
 - 
 - =item * C<valdepen~as> -- n with tilde
 - 
 - =back
 - 
 - =back
 - 
 - =head1 OPTIONS
 - 
 - =over 8
 - 
 - =item B<-d> I<DIR>, B<--direction=>I<DIR>
 - 
 - Direction of translation.  Aside from the default encz.en, it can be
 - one of following:
 - 
 -     encz.en, encz.cz, gecz.ge, gecz.cz, frcz.fr, frcz.cz,
 -     itcz.it, itcz.cz, spcz.sp, spcz.cz, rucz.ru, rucz.cz,
 -     lacz.la, lacz.cz, eocz.eo, eocz.cz, eosk.eo, eosk.sk,
 -     plcz.pl, plcz.cz
 - 
 - =item B<-l>, B<--long>
 - 
 - Same as C<--lines=50>, which is maximum supported by API
 - 
 - =item B<-n> I<LINES>, B<--lines=>I<LINES>
 - 
 - Number of lines fetched fronm the service and displayed to stdout.
 - Default is 25, but since www.slovnik.cz provides simplistic interface
 - with only one term per line, so for words with lot of synonyms, you
 - might want to specify more.
 - 
 - =item B<--help>
 - 
 - Prints a brief help message and exits.
 - 
 - =item B<--man>
 - 
 - Prints the manual page and exits.
 - 
 - =back
 - 
 - =head1 THANKS
 - 
 - Big thanks to Martin Vi/t, LangSoft and everybody who contributed to
 - existence of this awesome service.
 - 
 -     http://www.slovnik.cz/about.html
 - 
 - I have been using www.slovnik.cz for B<many years> now, mostly as a custom
 - search in Opera, so I grew so accustomed to its reliability and simple
 - interface that I can't even imagine using anything else.  (Or remember
 - I ever had).  I could never repay.
 - 
 - =head1 AUTHOR
 - 
 - ...of this scriptie: Alois Mahdal at zxcvb tec<ka cz
 - 
 - =cut
 
 
  |