pwn2dict
Friday, October 31, 2008 6:19:32 PM

pwn2dict.py
Program konwertuje pliki angpol.win i polang.win z dwujęzycznego słownika PWN Oxford 2004 do formatu obsługiwanego przez StarDicta 3.0. Hasła są zapisywane jako HTML dla zachowania formatowania. Wszelkie symbole są konwertowane do UTF8, więc nie ma problemu z transkrypcja fonetyczną. Ponadto pozwoliłem sobie na drobne poprawki w nazwach haseł (usunięcie pionowych kresek i numerów definicji), żeby szukało się lepiej. Przekonwertowanych baz używam z powodzeniem u siebie i mam nadzieję, że u was będzie nie inaczej

Obsługa jest bardzo prosta:
pwn2dict zrodlo.win nazwa.dict
Skrypt odczyta zrodlo.win i utworzy komplet plików dla StarDicta: nazwa.dict, nazwa.idx i nazwa.ifo, które następnie należy skopiować do /usr/share/stardict/dic/nazwa/ i zrestartować StarDicta.
Uwagi końcowe:
Autor nie ponosi odpowiedzialności za używanie programu z nielegalnymi kopiami baz słownika. Prośby o przesłanie baz będą ignorowanie.
Z tego miejsca zachęcam do zakupu słownika w ulubionej księgarni. Jest wart każdej złotówki.
Update 12.02.2009:
Naniosłem parę kosmetycznych zmian w skrypcie i poprawiłem(?) bug przy konwertowaniu pod Windowsem. Poza tym dorzuciłem
Update 01.03.2009:
Rozgryzłem format słowników PWN Oxford 2006 i 2007 i zaimplementowałem obserwacje, dzięki czemu skrypt obsługuje teraz edycje 2004, 2006 i 2007. Przy okazji poprawiłem kilka nieskonwertowanych symboli w kilku hasłach. Nie przedłużając, zapraszam do pobrania nowych wersji pwn2dict i

Update 05.06.2009:
Przypadkiem zauważyłem kosmetyczny błąd przy konwersji jednej encji (') w wersjach 2006/2007. Oba skrypty zostały zaktualizowane. Zapraszam do pobrania najnowszych wersji pwn2dict i
Update 17.06.2009:
Dodałem obsługę formatu używanego w wersji dołączanej do papierowego słownika w edycji 2005. Różni się on głównie innym zapisem transkrypcji i nagłówkiem definicji. Jeśli mieliście problem z tą wersją, zapraszam do pobrania pwn2dict i
Update 01.09.2009:
Dodałem obsługę słownika polsko-rosyjskiego i rosyjsko-polskiego. Nowe wersje obu skryptów do pobrania w stałym miejscu.
Update 11.02.2010:
Wydałem pwn2dict 2.0, znacznie zoptymalizowaną i dodającą nowe funkcje. Funkcjonalność skryptu pwn2tabfile została wchłonięta i w związku z tym nie będzie on już rozwijany.













1 2 3 Next »
Anonymous # Saturday, November 29, 2008 4:18:51 PM
Michał Ziąbkowskimziab # Saturday, November 29, 2008 5:07:40 PM
Rozumiem, że przerobiłeś go, żeby zapisywał hasła do formatu tabfile? W sumie miałem roboczą wersję, która zapisywała właśnie do tego formatu. Potem doszedłem do wniosku, że wygodniej będzie przekonwertować prosto do formatu StarDicta.
Krótki rzut oka na tab2opf sugeruje, że polskie znaki i ten skrypt to niezbyt fortunna kombinacja. Obawiam się, że niewiele mogę pomóc w tej materii.
Jeśli chodzi o usuwanie transkrypcji, to chyba wystarczy dopisać jedną linię kodu do funkcji format:
temp=re.sub("/[^ ]+/ ", "", temp)
Anonymous # Saturday, November 29, 2008 6:16:05 PM
Anonymous # Friday, January 30, 2009 8:15:21 AM
Anonymous # Sunday, February 8, 2009 3:24:57 PM
Anonymous # Monday, February 9, 2009 11:36:18 PM
Michał Ziąbkowskimziab # Tuesday, February 10, 2009 2:25:37 PM
Co do konwersji do tabfile, możesz spróbować zmienić wersję w pliku .ifo. Powinno pomóc. Spróbuję też wykopać starą wersję skryptu.
Anonymous # Tuesday, February 10, 2009 10:46:11 PM
Michał Ziąbkowskimziab # Wednesday, February 11, 2009 12:51:25 PM
Anonymous # Wednesday, February 11, 2009 11:44:07 PM
Michał Ziąbkowskimziab # Wednesday, February 11, 2009 11:50:56 PM
Może sprecyzujmy. Co masz na myśli poprzez "nie widzi"? Nie pojawia się w Manage dictionaries? Jak masz ponazywane wszystkie pliki? Utworzyłeś podfolder w dic i tam je wrzuciłeś? Jaka jest zawartość .ifo? Jakie sumy md5 mają pliki .dict i .idx?
Anonymous # Thursday, February 12, 2009 12:17:11 PM
Michał Ziąbkowskimziab # Thursday, February 12, 2009 2:43:26 PM
Hmm, twój .ifo ma ten sam tekst, ale inną sumę kontrolną. Jedyne możliwe wytłumaczenie to inne znaki końca linii. Problem wziął się stąd, że konwertujesz pod Windowsem i Python użył windowsowych znaków końca linii w .ifo, a Stardict najwyraźniej tego nie lubi.
Na początek spróbuj zmienić:
ifo = open(basename+".ifo", "w")
na:
ifo = open(basename+".ifo", "wb")
Przekonwertuj jeszcze raz. Tym razem plik .ifo powinien mieć sumę 4cf7a0e002ab73ba6e74ac785e442300.
EDIT: Zaktualizowałem skrypt i dorzuciłem drugi, konwertujący do tabfile.
Anonymous # Thursday, February 12, 2009 10:33:02 PM
Anonymous # Wednesday, February 18, 2009 5:06:58 PM
LukaszelCooL # Friday, February 20, 2009 10:10:05 PM
A co moze oznaczac ten blad w linii 31 podczas wykonywania skryptu i jak sie go pozbyc ?
Mam Pythona 3.0.1.
C:\Python30>python pwn2tabfile.py angpol.win slownik.dict
File "pwn2tabfile.py", line 31
"à": u"\u00E0",
^
SyntaxError: invalid syntax
Michał Ziąbkowskimziab # Friday, February 20, 2009 10:18:26 PM
Anonymous # Sunday, February 22, 2009 1:49:43 PM
Michał Ziąbkowskimziab # Sunday, February 22, 2009 2:06:45 PM
Anonymous # Sunday, February 22, 2009 2:42:40 PM
Michał Ziąbkowskimziab # Sunday, February 22, 2009 3:18:27 PM
Anonymous # Monday, February 23, 2009 6:46:31 PM
Michał Ziąbkowskimziab # Monday, February 23, 2009 6:56:09 PM
Anonymous # Monday, February 23, 2009 7:04:00 PM
Anonymous # Monday, February 23, 2009 8:23:03 PM
Anonymous # Monday, February 23, 2009 8:26:58 PM
Anonymous # Monday, February 23, 2009 8:37:04 PM
Michał Ziąbkowskimziab # Monday, February 23, 2009 9:00:42 PM
Anonymous # Thursday, February 26, 2009 10:28:43 PM
Michał Ziąbkowskimziab # Thursday, February 26, 2009 10:35:27 PM
LukaszelCooL # Saturday, February 28, 2009 12:23:21 PM
Daj znać czy jesteś zainteresowany.
Michał Ziąbkowskimziab # Saturday, February 28, 2009 12:31:37 PM
dd if=angpol.win of=angpol_10kb.win bs=1k count=10
Po if= i of= odpowiednio plik źródłowy i docelowy.
Gdyby to nie wypaliło, proszę o kontakt mailowy.
LukaszelCooL # Saturday, February 28, 2009 12:33:24 PM
Michał Ziąbkowskimziab # Saturday, February 28, 2009 12:41:07 PM
Michał Ziąbkowskimziab # Sunday, March 1, 2009 8:19:22 PM
LukaszelCooL # Sunday, March 1, 2009 8:54:35 PM
Serdeczne dzięki.
Anonymous # Monday, March 2, 2009 3:12:47 PM
Michał Ziąbkowskimziab # Monday, March 2, 2009 3:21:32 PM
Anonymous # Saturday, March 14, 2009 10:34:40 PM
Anonymous # Sunday, March 15, 2009 7:23:56 PM
Michał Ziąbkowskimziab # Sunday, March 15, 2009 8:25:00 PM
Anonymous # Monday, March 16, 2009 4:48:10 PM
Michał Ziąbkowskimziab # Wednesday, March 18, 2009 10:04:38 PM
O szczegóły lepiej zapytaj kogoś, kto używa Pythona pod Windosem. W każdym razie, sprawa sprowadza się do konwersji słownika za pomocą pwn2tabfile, a potem powstałego pliku za pomocą tabfile2opf. Mogą wystąpić problemy z transkrypcją fonetyczną. Na razie nie znalazłem 100% skutecznego na usunięcie samej transkrypcji. Będę jeszcze w tym dłubał.
Anonymous # Thursday, March 19, 2009 12:29:35 PM
Michał Ziąbkowskimziab # Thursday, March 19, 2009 1:47:19 PM
Anonymous # Friday, March 20, 2009 5:15:33 PM
Michał Ziąbkowskimziab # Friday, March 20, 2009 6:27:00 PM
Anonymous # Saturday, March 21, 2009 6:27:12 PM
Anonymous # Saturday, March 21, 2009 7:57:08 PM
Anonymous # Saturday, March 21, 2009 7:58:55 PM