Tłumacz z Automatora

Często przeglądam strony napisane w języku, w którym daleko mi do biegłości. Szukałem jakiegoś szybkiego i lekkiego rozwiązania do tłumaczenia tekstu. Mam Popclips, który uruchamia Google Translate, ale robi to w osobnej zakładce, a ja wolałbym (wyjątkowo) mały pop-up na ekranie.

Od jakiegoś czasu intensywnie używam Automatora, więc rozwiązanie jest kilka klików stąd.

Zainspirowany tym postem, zrobiłem serwis, który nazwałem Tłumacz:

Widok z Automatora

Od oryginału różni się tylko stringiem wywołującym Google Translate. Chłopaki chyba często mieszają w API, więc i mój skrypt pewnie w rok się zestarzeje.

Poniżej jest AppleScript do copy-paste (co chyba słabo zadziała, bo Ghost zawija wiersze; ale macie pogląd powyżej jak to powinno wyglądać):

on run {input, parameters}
    set output to "https://translate.google.com/#auto/en/" & urldecode(input as string)
    return output
end run

on urldecode(x)
    set cmd to "'require \"cgi\"; puts CGI.escape(STDIN.read.chomp)'"
    do shell script "echo " & quoted form of x & " | ruby -e " & cmd
end urldecode

Algorytm jest następujący:
1. Automator pobiera zaznaczony tekst i przekazuje jako input do AppleScriptu.
2. Ten dodaje go do URL translate.google.com/#auto/en/, uprzednio konwertując tekst procedurą urldecode(), która zastępuje wszystkie dziwne znaki postacią zjadliwą dla przeglądarki (np. < zamienia na &lt; *)
3. Wynik wyświetlany jest w oknie popup, o zadanych rozmiarach (w spolszczonym OSX ten komponent nazywa się "Okno wyskakujące witryny")

Po zapisaniu serwisu, będzie on dostępny w menu kontekstowym:

przykład

Efekt:

Autor

aceJacek

You probably haven't heard of me.

comments powered by Disqus