Jedną z wielu przydatnych funkcji systemu Mac OS jest możliwość sprawdzenia znaczenia danego słowa za pomocą wbudowanych w system słowników. Niestety nie znajdziemy tutaj żadnego słownika przeznaczonego dla języka polskiego. Standardowo dostępne są następujące słowniki:

  • Oxford Dictionary of English,
  • Oxford Thesaurus of English,
  • Słownik Apple,
  • Wikipedia.

Dodatkowo w ustawieniach słownika (aplikacja dictionary w spotlight) możemy wybrać kilka innych słowników (np. niemiecki, portugalski, francuski itp.). Sprawdzenie znaczenia danego słowa odbywa się na dwa sposoby. Pierwszy to ustawienie kursora na danym słowie i tapnięcie trzema palcami na touchpadzie, drugi to skorzystanie ze skrótu klawiaturowego ctrl + cmd + d. Co ciekawe sprawdzenie takie jest możliwe w większości aplikacji (działa nawet w terminalu!). Poniżej przykład sprawdzenia znaczenia słowa apple.

Pozostaje niedosyt związany z brakiem obsługi języka polskiego. Jak dobrze byłoby czytać anglojęzyczne PDF’y i mieć możliwość sprawdzenia znaczenia nieznanego słowa, jak przydatne byłoby sprawdzenie na stronie internetowej słowa, które sprawia problem językowy. Cóż słownika nie ma i nie sądze aby firma Apple dodała go szybko do systemu. Pozostaje wziąć sprawy w swoje ręce i słownik dodać samodzielnie. Spędziłem tydzień na zrozumieniu sposobu działania słowników Maca, poszukiwaniu gotowego rozwiązania (niestety nie znalazłem idealnego) oraz na stworzeniu przykładowego w pełni działającego słownika.

Użytkownicy Androida na pewno znają słowniki oraz programy do ich obsługi. Królują tutaj standardy typu StarDict czy też GoldenDict. Mnogość aplikacji pozwala na integrację wybranego słownika z systemem mobilnym. W sieci znajdziemy dziesiątki gotowych słowników przygotowanych właśnie w tych standardach. Co to ma do Maca? Wiele, musimy przecież zdobyć słownik, a później dostosować go do naszych potrzeb. Najbardziej znanym słownikiem angielsko-polskim jest "Wielki słownika PWN-OXFORD". Posiadając wersję oryginalną możemy wykorzystać bazy słownika do integracji z systemem Mac OS. We wcześniejszych wersjach OS X można było wykorzystać skrypt PYM (link) przerabiający bazy słownika PWN na gotowy słownik Maca. Od wersji Yosemite skrypt przestał niestety działać. Drugim ograniczeniem rozwiązania PYM była obsługa tylko jednej ścisle określonej wersji słownika PWN. Moje rozwiązanie umożliwia podpięcie do Maca dowolnego słownika dostępnego w formacie StarDict (wybór jest dość spory, słowniki wyrazów obcych, synonimów itp.). Zaczniemy od zdobycia plików słownika (zakładam, że posiadamy oryginalną wersję słownika PWN). W sieci bez problemów odnajdziemy skonwertowane do standardu StarDict słowniki (wystarczy wpisać odpowiednie zapytanie do przeglądarki). Szukamy słownika angielsko-polskiego PWN 2007. Po rozpakowaniu archiwum powinniśmy otrzymać następujące pliki:

Do konwersji słownika w standardzie StarDict na standard Maca użyjemy darmowego narzędzia DictUnifier. Program powinien bez problemów dokonać stosownej konwersji. Dla prostych słowników, sprawdza się znakomicie, niestety w przypadku bazy PWN napotkamy problemy. Każdy wpis słownika zawiera opis sformatowany za pomocą znaczników HTML’a, a słownik Maca obsługuje poprawnie tylko standard xHTML (różnice są małe, ale istotne). Pozostaje rozpakowanie plików słownika do wersji podstawowej, edycja plików z zamianą HTML’a na xHTML, ponowna kompilacja do standardu StarDict oraz konwersja do standardu Maca. Brzmi strasznie, ale nie jest to operacja spejcalnie skomplikowana.

Zaczynamy, po rozpakowaniu archiwum ze słownikiem otrzymaliśmy pliki w standardzie StarDict (są to pliki skompilowane). Ich edycja niestety nie jest możliwa (istnieją zależności pomiędzy poszczególnymi plikami). Sam plik Angielsko - Polski 3.0.dict z danymi do słownika wygląda tak jak poniżej:

Musimy zdekompilować ten plik do wersji źródłowej (format xml) i nanieść wymagane poprawki. Wykorzystamy do tego darmowe narzędzie StarDict Editor. Niestety nie udało mi się znaleźć wersji na Maca (wersja portable dla Windowsa dostępna jest tutaj). Uruchamiamy aplikację, przechodzimy do zakładki DeCompile/Verify, wskazujemy plik Angielsko - Polski 3.0.ifo, wybieramy opcję Textual StarDict dictionary i klikamy Decompile.

Po chwili powinniśmy otrzymać plik Angielsko - Polski 3.0.xml. Teraz możemy zająć się jego edycją. Standardowo wygląda on tak:

Wracamy na Maca i w dowolnym edytorze zmieniamy znaczniki HTML’a na xHTML. Znaczniki xHTML’a pisane są z małej litery i muszą być prawidłowo zamykane (odpowiednia kolejność). Musimy pamiętać też o zamknięciu znaczników nie posiadających znacznika zamykającego (np. <br> zamieniamy na <br />). Do zamiany wykorzystałem terminal oraz polecenie sed (dla ułatwienia zmieniłem nazwę pliku na Angielsko-Polski.xml). Przykładowa zamiana znacznika <B> na <b>, </B> na </b> oraz <br> na <br />:

sed -i '' 's/<B>/<b>/g' Angielsko-Polski.xml 
sed -i '' 's/</B>/</b>/g' Angielsko-Polski.xml 
sed -i '' 's/<br>/<br />/g' Angielsko-Polski.xml

W oryginalnym pliku zamieniłem znaczniki <B></B>, <I></I>, <SMALL></SMALL> oraz <br>. Wszystkie wykonane operacje to:

sed -i '' 's/<B>/<b>/g' Angielsko-Polski.xml 
sed -i '' 's/<\/B>/<\/b>/g' Angielsko-Polski.xml 
sed -i '' 's/<\/I>/<\/i>/g' Angielsko-Polski.xml 
sed -i '' 's/<I>/<i>/g' Angielsko-Polski.xml 
sed -i '' 's/<br>/<br \/>/g' Angielsko-Polski.xml 
sed -i '' 's/<SMALL>/<small>/g' Angielsko-Polski.xml 
sed -i '' 's/<\/SMALL>/<\/small>/g' Angielsko-Polski.xml 

Można również pobawić się kolorami dostępnymi w znacznikach HTML (znacznik font) oraz odstępami pomiędzy poszczególnymi elementami tłumaczenia, tak by nasz słownik wyglądał atrakcyjniej. Po dokonaniu stosownych korekt plik powinien wyglądać mniej więcej tak:

Teraz pozostaje ponowna kompilacja do standardu StarDict. Znów szybka przesiadka na Windowsa i konwersja. Przechodzimy do zakładki Compile, wybieramy plik Angielsko-Polski.xml, zaznaczamy opcję Textual StarDict dictionary i klikamy Compile.

Po chwili otrzymamy ponownie pliki słownikowe w standardzie StarDict.

Wracamy na Maca, dokonujemy zmiany w pliku Angielsko-Polski.ifo (zmiana potrzebna do prawidłowej konwersji przez programu DictUnifier, pamiętamy o pustej ostatniej linijce).

StarDict's dict ifo file
version=3.0.0
idxoffsetbits=32
wordcount=63020
idxfilesize=1184346
bookname=Angielsko-Polski
sametypesequence=h

Uruchamiamy aplikację DictUnifier, przeciągamy do niej plik Polsko-Angielski.ifo, nadajemy nazwę naszemu słownikowi (w przykładzie Angielsko-Polski) i konwertujemy całość do standardu Maca klikając Start.

Jeśli wszystko przebiegło prawidłowo powinniśmy uzyskaś gotowy słownik wgrany już do folderu ~/Biblioteki/Dictionaries/. Teraz wystarczy wejść do aplikacji słownika, zmienić jej ustawienia (cmd + ,) i wybrać nasz słownik.

Jeżli chcemy zmienić etykietę na inną możemy kliknąć prawym klawiszem myszy na nazwie etykiety i podać nową:

Pozostaje sprawdzenie działania słownika w praktyce. Zatem raz jeszcze bierzemy nasze słowo apple i.... wynik poniżej:

Powyższy sposób umożliwia nam konwersję dowolnego słownika dostępnego w standardzie StarDict na słownik Maca. Nie wszystkie słowniki będą potrzebowały tak dużych korekt jak nasz przykładowy słownik (nie będziemy musieli dekompilować i kompilować słownika, wystarczy wrzucenie pliku .ifo do programu DictUnifier). Wszystko zależy od tego jak został przygotowany słownik (wersje androidowe „chwytają” wszystko, wersja makowa jest bardziej wybredna). Gotową wersję słownika możemy zainstalować u innych użytkowników tego samego komputera lub na innym naszym Macu (wystarczy skopiować słownik do odpowiedniego katalogu ~/Biblioteki/Dictionaries/).

Nie udostępniam gotowej wersji słownika i proszę nie robić tego w komentarzach (zakładam, że osoby, które stworzą sobie słownik, posiadają oryginalną wersję słownika PWN).

Gdyby nie udało się utworzyć słownika za pomocą oryginalnego programu DictUnifier można skorzystać z tej wersji (niektóre wersje miały błędy kompilacji, zamieszczona wersja jest tą, którą wykorzystałem w artykule).

Blog Comments Powered by Disqus

Następny wpis