pwn2dict 2.6

Mam przyjemność ogłosić kolejną, niespodziewaną aktualizację pwn2dict. Jeden z czytelników zgłosił w ostatnim czasie usterkę związaną z sortowaniem haseł, która uniemożliwiała korzystanie z przekonwertowanych słowników w aplikacji koreader na Kindle. Problem istniał od samego początku, ale że w niczym nie przeszkadzał StarDictowi, dopiero teraz wyszedł na światło dzienne. Niemniej poprawka była banalna, więc bug jest już załatany. Przy okazji poprawiłem też inne ostrzeżenie wyświetlane przez stardict-verify, dotyczące spacji na końcu słów. Nowa wersja jest już dostępna do pobrania poniżej.

Przy okazji chciałbym ogłosić przenosiny bloga na adres mzblog.grajpopolsku.pl. Były one wymuszone pewnymi zmianami w konfiguracji serwera. Stare linki przekierowują, rzecz jasna, w odpowiednie miejsce, a żadne treści nie zostały utracone w wyniku migracji. W praktyce jest to jedynie zmiana kosmetyczna.

W każdym razie, oto lista zmian w pwn2dict 2.6:
- Poprawiony porządek sortowania haseł. Teraz jest on w 100% zgodny z oczekiwanym przez StarDicta.
- Skrypt usuwa teraz bezużyteczne spacje, które mogły pojawić się na końcu słów.

Linki:
pwn2dict, Instrukcja obsługi

32 komentarze

  1. Po przesiadce na Win10 zmarnowałem kilka h na akrobacje z dll’ami, trybami zgodności, sterownikami itd by uruchomić moją starą wersję 2004 – bez rezultatu. Przekonwertowałem .win na .dict i pod GoldenDict śmiga aż miło.

    WIELKIE DZIĘKI !!!!!

  2. Dziękuję za skrypt :) Dzięki niemu mogę korzystać w Linuxie z aktualnego słownika rosyjskiego PWN (legalnie kupionego, żeby nie było…). Jest w tym słowniku (co najmniej) jedna nowość w stosunku do słownika angielskiego PWN (który też mam). Mianowicie rozwijane dodatkowe opisy. W takiej sytuacji po konwersji co prawda cały opis jest dostępny, ale w oryginalnym miejscu ikonki do rozwijania opisu pokazuje się czerwony napis “collapse.bmp” lub nawet (przy pracy kontekstowej z zaznaczonym słowem “[Image:collapse.bmp]”). Gdyby dało się go odfiltrować przy konwersji było by super – np. poprzez zastąpienie go spacją lub jakimś symbolem (to potrafi się pokazywać nie tylko na początku tekstu/akapitu opisu, ale także w środku).

  3. trafiłem na twoją stronę, szukając informacji o konwersji słowników. Tyle że mnie interesuje konwersja w drugą stronę — z formatu kindle (mobi, prc, awz) do formatu np. słownika Babylon, tak bym mógł słownika z kindle używać na desktopie.

    Paradoksalnie dziś trudno o porządny słownik na PC-ta a nie na mobilki. Jedyny dostępny sensowny słownik pc-towy to „Wielki multimedialny słownik angielsko-polski polsko-angielski 4 PWN” — wersja sprzed niemal dekady, ponadto kosztująca prawie dwie stówy. Na kindle używam darmowego Bumato i płatnego The Great English-Polish Dictionary ( https://www.amazon.com/Great-English-Polish-Dictionary-million-words-ebook/dp/B00NMOYGM4/ref=sr_1_1?ie=UTF8&qid=1486287597&sr=8-1&keywords=dictionary+polish ).

    Ten ostatni jest naprawdę niezły i, biorąc pod uwagę cen około 40 zeta, wart polecenia. Skoro go mam chciałbym móc wykorzystać go na PC z jakimś „silnikiem” oferującym przywołanie okna słownika lub podpowiedź w dymku, by działa z każdym programem typu procesor tekstu, przeglądarka, etc. Czy mógłbyś rozważyć napisanie skryptu pozwalając skonwertować ten słownik do formatu słownika Babylon?!

      • Cześć!

        A czy miałbyś czas zrobić skrypt pod słownik YDP Collins EN-PL PL-EN?

        Istnieje w necie skrypt ydp2dict napisany w C, ale konwertuje on słownik w dosyć brzydki sposób. Nie ma kolorków i są jakieś krzaki.

        Projekty, z których mógłbyś skorzystać to https://github.com/wojtekka/libydpdict i https://github.com/wojtekka/ydpdict

        Jeśli miałbyś problem ze zdobyciem słownika, mógłbym taki słownik zasponsorować.

        Pozdrawiam,
        Mateusz

        • Niestety nie mam obecnie aż tyle czasu na tego typu projekty, więc się tego nie podejmę. ydp2dict używałem swego czasu i mówiąc szczerze, jego wynik działania mi wystarczał. Zamiast przepisywać program do Pythona bardziej sensowne wydaje się poprawienie go.

          • OK. Dzięki za odpowiedź.

            Gdybyś jednak kiedyś miał poprawić ydp2dict.c, to proszę opublikuj to na swoim blogu albo na gitlabie =)

            Miłego wieczoru!

          • Jakby ktoś chciał, deweloper odpowiedzialny za projekt libydpdict napisał dla społeczności kod, który konwertuje słownik YDP Collinsa do stardicta. Aż przyjemnie się patrzy na słownik, który ma kolory, wytłuszczenia, italiki i inne takie.

            Żeby przekonwertować słownik, trzeba umieścić pliki dict100.dat dict100.dex dict100.idx dict101.dat dict101.dex dict101.idx w katalogu /usr/local/share/ydpdict

            Potem należy skompilować program i uruchomić go dwa razy. Słowniki zapisują się w tym samym folderze roboczym:

            git clone https://github.com/wojtekka/libydpdict
            cd libydpdict
            ./autogen.sh
            make
            cd misc
            make check
            ./ydp2stardict 100
            ./ydp2stardict 101

  4. python3 pwn2dict.py -d Tekst/Data/ency.win
    Detected Oxford PWN 2003/2004 format…
    Reading alphabetical index…
    Reading words…
    Writing converted data…
    Traceback (most recent call last):
    File “pwn2dict.py”, line 737, in
    src_dict.write_dictd(dest_name)
    File “pwn2dict.py”, line 584, in write_dictd
    definition = self.read_definition(addr)
    File “pwn2dict.py”, line 607, in read_definition
    temp = zlib.decompress(word_buffer[first_byte + 1:])
    zlib.error: Error -3 while decompressing data: incorrect header check

    W czym może być problem?

    • Prawdopodobnie jest to nieobsługiwana wersja formatu, którą skrypt błędnie rozpoznaje jako 2003/2004. Po nazwie domyślam się, że plik podchodzi z którejś wersji Encyklopedii PWN. Słyszałem o kimś, kto pomyślnie przekonwertował którąś jej wersję za pomocą mojego skryptu, ale nie wiem nic więcej.

      • Jest to plik z trzypłytowej wersji Encyklopedii PWN z 2005 roku. Na pierwszej płycie są dwa plik ency.win. Jeden w folderze Definicje (ten bez problemu skonwertował się). Drugi w folderze Setup. Z tym są problemy.

        • Możliwe, że plik jest kompresowany albo po prostu jest to jakaś nieznana mutacja formatu. Tak czy inaczej niewiele mogę poradzić. Obecnie nie rozwijam już skryptu, więc wsparcie dla tej wersji Encyklopedii raczej nie zostanie dodane. Nawiasem mówiąc, Encyklopedia PWN działa zupełnie przypadkiem. Osobiście testowałem skrypt jedynie z różnymi wersjami słowników.

  5. Witam,
    czy jest możliwość podania jakichś żródeł, w których jest opracowany format danych w plikach polang.win i angpol.win. Chciałem dla siebie napisać aplikację na androida korzystającą z tych plików ale nie mogę nic sensownego wygooglać.
    Dzięki.

    • A pwn2dict nie jest wystarczająco czytelny? :) Starałem się nie komplikować kodu, żeby miał także wymiar edukacyjny. Pierwsza wersja skryptu była oparta na nierozwijanym już kpwndict, a potem sukcesywnie dodałem różne wersje formatu obserwując zmiany w nagłówkach plików i dopisując nowe znaczniki do konwersji na Unicode.

  6. Witam,
    przesiadłem z Win na Mac. Myślałem, że nie będę miał problemów z instalacją słowników na Mac, a tu porażka :( Mam PWN z 2007 i Słownik Kościuszkowski (obydwa oczywiście na Win). Szukam jakichś możliwości zainstalowania (przyjamniej jednego z nich na Mac’a), trafiłem na Pana stronę. Czy ktoś z Państwa może mi pomóc w instalacji słowników?

  7. Witam,
    Próbuję skonwertować słownik do wykorzystania na Kindlu ale niestety jestem zupełnie zielony w Pythonie. Czy mógłbyć powiedzieć mi gdzie mam wrzucić plik win do przeformatowania na dict? Gdy skopiowałem go w miejsce gdzie jest twój skrypt wyrzuca mi błąd invalid syntax dla nazwy pliku win.
    Marcin

  8. To pytanie pojawia się nie po raz pierwszy. Póki co nie mam planów dodawania nowej funkcjonalności do skryptu, ale o ile dobrze pamiętam swego czasu z kpwndict był dołączony skrypt, który wypakowywał audio do plików wav. Osobiście z niego nie korzystałem, więc nie mogę pomóc nic ponad to.

    • Dzięki za odpowiedź!
      Tak. Na mojej płytce (to chyba najdroższe oprogramowanie jakie mam ale warte tego) mam tylko jeden plik wave.pak, natomiast skrypt z kpwndict chyba zakładał istnienie dwu plików. No nic – może kiedyś siądę i pobawię się w reverse engineering – ale nie mam raczej Twoich umiejętności i samozaparcia :)
      Dzięki za świetny skrypt!

  9. Hej!

    Dzięki Ci drogi Autorze za Twój skrypt!
    Co jakiś czas korzystam z Golden Dict gdy oryginalny PWN siada (patrz: http://forum.pclab.pl/topic/938360-PWN-Oxford-Dictionary-Unable-to-open-data-Reinstall-program-aktualizacja-nie-pomogła/)
    Zastanawiam się tylko czy jest możliwość wypakowania danych audio. Wtedy już kompletnie można by się odciąć od jednak dość ograniczonego i nie wspieranego programu PWN.
    Tak czy inaczej wielkie dzięki!
    Pozdrawiam z Trójmiasta!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *