Portál AbcLinuxu, 1. května 2025 08:45

Preklad slovíčka En(De/Fr..)->Cz v konzoli

29.1.2006 01:51 | Přečteno: 5077× | poslední úprava: 5.6.2008 18:31

Bojím sa nazvať to skriptom, no snáď sa nasledovných pár znakov niekomu bude hodiť. Jedná sa o vyhľadávanie zadaného slova v (nielen) anglicko-českom slovníku na serveri slovnik.sms.cz. Tento slovník používam veľmi často, no otvárať kvôli prekladu jednoho--dvoch slov novú záložku v prehliadači sa mi zunovalo, takže si radšej v konzolovom okne zavolám skript tran.sh a výsledok mám hneď.

#!/bin/bash
# tran.sh
# skript na vyhladanie anglickeho slova v slovniku (slovnik.sms.cz)
#                                       jose1711 <@t> gmail <dot> com
#
# verzia 0.4.1, 20-02-2008
#
# historia:
# 0.1 (29-01-2006)
#  - prvy release
#
# 0.1.1 (29-01-2006)
#  - spravne lamanie riadkov (pri vyskyte hladaneho slova v strede/na konci fraze)
#  - filtrovanie slova "nasledujici"
#
# 0.2 (05-08-2007)
#  - kra[jt]si kod
#  - iconv namiesto cstocs
#
# 0.3 (12-08-2007)
#  - zmena syntaxe (jazykovy_kod fraza) - umoznuje lahke prepinanie medzi cudzojazycno-ceskym slovnikom
#  - kontrola syntaxe
#  - fix: nehladiet na velkost pismen pri vyhladavani
#
# 0.4 (13-08-2007)
#  - fix: mala oprava, ked sa niekedy dve definicie zobrazili na jednom riadku
#  - default_lang - moznost nastavit vychodzi kod jazyka
#  - bez parametrov vypise napovedu
#
# 0.4.1 (20-02-2008)
#  - fix: upravene, aby fungoval po zmene webu slovnik.sms.cz
#
# 0.4.2 (05-06-2008)
#  - pridana vyslovnost (zavisi na prehravaci mplayer)
#
# pouzitie:
# ./tran.sh kod_jazyka slovo/fraza
# napr. ./tran.sh de lehrer
#
# default_lang je kod jazyka, ktory bude pouzity ako vychodzia volba (ak ho uzivatel nespecifikuje)
default_lang=en

[ $# -eq 0 ] && { echo "Tran.sh script - searches slovnik.sms.cz for foreign words
           <jose1711 gmail com>

Usage: ${0##*/} [en|de|fr|es|it|ru] word

If no language code is specified, the default one specified by the default_lang
variable inside the script is used.
"; exit 0; }
if [ $# -eq 1 ]; then
        lang=$default_lang
else
        lang="$1"
        shift
fi
[ $(echo "$lang" | grep "^en$\|^de$\|^fr$\|^es$\|^it$\|^ru$") ] || { echo "Unrecognized language code (en, de, fr, es, it, ru)"; exit 1; }
phrase="$@"
wget "http://slovniky.sms.cz/index.php?P_id_kategorie=65456&P_soubor=%2Fslovniky%2Findex.php%3Fword%3D${phrase}%26bjvolba%3D${lang}_cz%26send_data%3D1" 2>/dev/null --output-document=- | grep -i "$phrase" | sed -ne "s/<td\( class='oddel'\)\?>/\\n/g" -e "s/<[^>]*>//g" -e "s/&[^;]*;//gp" | iconv -f cp1250 -t latin2
mplayer "http://slovniky.sms.cz/kategorie/slovniky/$(wget "http://slovniky.sms.cz/index.php?P_id_kategorie=65456&P_soubor=%2Fslovniky%2Findex.php%3Fword%3D${phrase}%26bjvolba%3D${lang}_cz%26send_data%3D1" 2>/dev/null --output-document=- | grep -i "$phrase" | sed -ne "s/.*<A href='\([^>]*\)'>.*/\1/p")" &>/dev/null
Určite si všimnete, že blbuvzdorné to zrovna nie je, ale použiteľnosť je rozumná.

Oprava (29. 1. 2006): správne lámanie riadkov (pri výskyte hľadaného slova v strede/na konci fráze), odstránenie slova "následující"        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

29.1.2006 02:05 Jindřich 'GoldenShit' Plešinger | skóre: 16 | blog: Nevěřící | Dolní Bousov
Rozbalit Rozbalit vše Re: Preklad slovíčka (En->Cz) v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin
http://slovnik.zcu.cz/
LINUKS = Lidová Nacionálně Ultralevicová Komunistická Strana
29.1.2006 11:19 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
Rozbalit Rozbalit vše Re: Preklad slovíčka (En->Cz) v konzoli
Super, dik za link
Project Satan infects Calculon with Werecar virus
29.1.2006 12:12 Jindřich 'GoldenShit' Plešinger | skóre: 16 | blog: Nevěřící | Dolní Bousov
Rozbalit Rozbalit vše Re: Preklad slovíčka (En->Cz) v konzoli
Mě se tam líbil gtksl, ale asi se už nevyvíjí. Fungoval vcelku dobře, ale nepamatovat si rozměry oken a jiný krávoviny. Třeba se někomu bude líbit a ujme se ho. Ono se asi něco od dob GTK 2.4 změnilo a aby to do budoucna bylo funkční.
LINUKS = Lidová Nacionálně Ultralevicová Komunistická Strana
29.1.2006 13:37 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
Rozbalit Rozbalit vše Re: Preklad slovíčka (En->Cz) v konzoli
takze som si stiahol prekladovy subor a spravil maly skript:
grep -m 5 --color=always -E "^$1" ${0%/*}/slovnik_data_utf8.txt\
|grep -v "^#" | cut -f1,2

Co tam ale vyzera fakt cool je online preklad web-stranok.
Vedel by niekto spravit pluggin do FF, aby to pouzivalo lokalny subor?
Project Satan infects Calculon with Werecar virus
29.1.2006 12:14 abr | skóre: 24 | blog: ab
Rozbalit Rozbalit vše http://slovnik.zcu.cz/
Jeste by to chtelo slovnik bez diakritiky pro lenochy, jako jsem ja ;-)
David Watzke avatar 29.1.2006 12:32 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: http://slovnik.zcu.cz/
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
29.1.2006 02:31 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Preklad slovíčka (En->Cz) v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin
Co používat curl místo wget? ;-)

Jinak souhlasím s Jindřichem Plešingerem -- slovnik.zcu.cz
When your hammer is C++, everything begins to look like a thumb.
29.1.2006 12:43 Jozo
Rozbalit Rozbalit vše Re: Preklad slovíčka (En->Cz) v konzoli
V com je curl lepsi?
David Watzke avatar 29.1.2006 02:31 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Preklad slovíčka (En->Cz) v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin
Kratší verze pro utf-8 :-)
#! /bin/bash

wget "http://slovnik.sms.cz/?word=$@&bjvolba=en_cz" 2>/dev/null \
-O - | grep "$@" | sed -e "s/<[^>]*>//g" -e \
"s/&[^;]*;//g" -e "s/$@/\n$@/g" | enca -x utf8 | less
Díky za skript, bude se mi to hodit :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
29.1.2006 12:59 Jan Bartoš
Rozbalit Rozbalit vše Re: Preklad slovíčka (En->Cz) v konzoli
Odpovědět | Sbalit | Link | Blokovat | Admin
Nevíte kde by se dala sehnat databáze (cz/en) slov. K internetu se pořád přpájím modemem a nechce se mi vytáčet spojení pro jedno slovo.
29.1.2006 13:03 Marian Krucina | skóre: 13
Rozbalit Rozbalit vše Re: Preklad slovíčka (En->Cz) v konzoli
slovnik.zcu.cz

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.