Portál AbcLinuxu, 4. května 2025 20:57
mv $1-cz-dict.txt $1-cz-dictionary.txt mv cz-$1-dict.txt cz-$1-dictionary.txt rm en-cz-dictionary.txt cz-en-dictionary.txt echo "Vytvaram data pre StarDict slovnik ..." for slovnik in $1"-cz-dictionary.txt" "cz-"$1"-dictionary.txt"se mi zdalo tak jako zcestne, tak jsem zakomentoval tu radku s
rm
a uz se to v pohode vytvorilo. Ze by bug?
----
Vytvaram zoznam cudzojazycnych vyrazov...anglictina
Vytvaram zoznam ceskych vyrazov...
Vytvaram zoznam typov...
Vytvaram slovnikove udaje pre oba smery...
Traceback (most recent call last):
File "merge_dict.py", line 21, in ?
dictionary.write(en[:-1])
NameError: name 'en' is not defined
Vytvaram data pre StarDict slovnik ...
ls: en-cz-dictionary.txt.idx: není souborem ani adresářem
ls: cz-en-dictionary.txt.idx: není souborem ani adresářem
Skopirujte subory s priponou .ifo, .dict a .idx do /usr/share/stardict/dic/transl alebo ~/.stardict/dic/transl
rm: cannot remove `en-cz-dictionary.txt': není souborem ani adresářem
rm: cannot remove `cz-en-dictionary.txt': není souborem ani adresářem
----
Muzete mi prosim pomoci? Kde mam chybu? Dekuji, Honza.
Skusal som ten skript (pre translator) v systeme s kodovanim utf8a práve tu imo bude Váš problém.. (viď odpoveď vyššie)
zcat ANCSZAL.15 ANCSZAL.25 ANCSZAL.35 ANCSZAL.45 ANCSZAL.55 > ancs.txt
2) Přepnul jsem v konzoli kodování na ISO8859-2:
export LC_ALL=cs_CZ.ISO-8859-2
3) Ve skriptu conv.sh jsem zakomentoval pomocí # řádek 38:
#rm en-cz-dictionary.txt cz-en-dictionary.txt
4) Spustil jsem
./convert.sh en
5) Vznikly mně tyto soubory:
cz-en-dictionary.txt.dict.dz
cz-en-dictionary.txt.idx
cz-en-dictionary.txt.ifo
en-cz-dictionary.txt.dict.dz
en-cz-dictionary.txt.idx
en-cz-dictionary.txt.ifo
Ty jsem nakopíroval do /usr/share/dict/. Problém je, že v StarDictu nejsou slovíčka EN propojena s CZ a naopak... Zkrátka to hledá anglická slovíčka v anglickém seznamu slov bez toho, že by se zobrazoval překlad do CZ.
Poradíte někdo? Díky.
Ja bych jeste zkusil (docasne) odskrtnout vsechny slovniky krome jednoho testovaneho (je to v nastaveni slovniku) a pak bych zadaval slova.Jo, to jsem samozřejmě zkoušel. Ale jak píšu výše, zobrazí se jen hledané slovíčko, nikoliv jeho jinojazyčný protějšek...
export ZALOHA=$LANG export LC_ALL=cs_CZ.ISO-8859-2a na koniec
export LC_ALL=$ZALOHAnie som ziadny linux-guru, ale myslim, ze to pomoze vyriesit problem kodovania ISO8859-2 vs. 'hocico' a tiez presunut riadok pred vytvaranim stardict slovnika
rm en-cz-dictionary.txt cz-en-dictionary.txtna koniec skriptu, aby nebolo potrebne komentovat ho osobitne pre anglicky jazyk
1. vytvoril som ancs.txt z tych asi 5 suborov
2.mam syst. s utf8 a tak som kvoli iso8859-2 pouzil knoppix (asi 3.7) a spustil ten skript ./convert.sh en , nezakomentovaval som nic ale je lepsie asi zakomentovat riadky kde je rm foreign.txt czech.txt type.txt aby sa vytvorili a nezmazali (musel som stihnut skopirovat ich pred vymazanim ). vytvorili sa aj .ifo subory.(V knoppixe vypisalo chybu ze mu nieco chyba. Ale to je nepodstatne.)
3. potom som pouzil skript python merge_dict.py a z foreign.txt czech.txt type.txt sa vytvorili en-cz-dictionary.txt a cz-en-dictionary.txt
4.prikazom ./tabfile en-cz.dictionary.txt a ./tabfile cz-en...txt sa vytvorili .dz a .idx subory pre oba smery slovnika. Prikaz nesmie skoncit chybou. Ak skonci, treba odstranit nevhodne znaky z jednotlivych riadkov. Vacsinou mu vadi znak / . Prikaz vypise wordcount-y . (tabfile som pouzil originalny - po skompilovani stardictu)
5. .ifo subory vytvorene v kroku 2 som doplnil: wordcount-y su z bodu 4 a idxfilesize sa zisti prikazom ls -l en-cz-dictionary.idx (a aj pre cz-en-dictionary.idx)
6.treba nakopirovat .dz .idx. .ifo sub. napr. do /usr/share/stardict/example-dict
7.Na overenie ci je slovnik spravne vytvoreny treba pouzit prikaz ./stardict_verify /cestakslovniku/vytvoreny_subor.ifo stardict_verify sa nachadza v adresari /src/tools po skompilovani stardictu.
8.hotovo.ako zadefinujem wordcounty pre novovytvorne subory.riadok wordcount= v .ifo súbore
Inac je to ok ked wc anglickeho je iny ako wc slovenskeho?je to úplne OK. príklad slovníka: dog=pes;kamarát. wordcount pre anglicko-slovenský slovník: 1, opačne 2.
tr -d '"' <subor.txt | iconv -f iso8859-1 -t utf-8 >slovnik.txt; tabfile slovnik.txtpotom vytvorte .ifo súbor.
perl -pe 's/#(.*?) (.*?) *\[.....\] :: (.*)/\1\t< \ span size="smaller" color="darkseagreen">\2<\/span> \3/' DICTPAGE.RAW >\ latin-english.txt ./tabfile latin-english.txtpotom už len stačí v ifo súbore zmeniť sametypesequence z m na g a vytvoriť pre nový slovník adresár v ceste so slovníkmi StarDictu.
#!/bin/bash # give the downloaded file a zip extension and within the archive locate # the file containing the word database # preview it and according to its content uncomment one of the lines #perl -pe "s/^ (.*?) : (.*?) :/\1\t\2/" "$1" | cstocs il1 utf8 >jdict-"$1" #perl -pe "s/^ (.*?) \| (.*?) \|/\1\t\2/" "$1" | cstocs il1 utf8 >jdict-"$1" ./tabfile jdict-"$1"
tr -d '\r' < Interlingua_English | awk 'getline a {print $0"\t"a} getline b {}'
#!/bin/bash tr -d '\r' < "$1" | awk 'getline a {print $0"\t"a} getline b {}' \ | cstocs il1 utf8 | sed -e "s/<br>//gi" -e "s/<hr>//gi" \ | vi -c ":%s/<\([^>]*\)>/<\L\1>/g" -c ":w! jdict-$1" -c ":q" - ./tabfile jdict-"$1"
dbview -bt -d\; file.dbf | awk -F\; '{print $1 "\t" $3 " " $4}' | iconv -f ibm852 -t utf-8 >file.out
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.