Czy można powiązać Dictionary.app z systemem Mac OSX z Tłumaczem Google?


11

Aplikacja Dictionary ma bardzo fajne wrażenia na MacOSX. Ale muszę zainstalować słowniki, aby ich użyć. Czy można powiązać go z Tłumaczem Google?

Dzięki!


Nie wygląda na to, że zadziałałoby, przynajmniej bez intensywnego hakowania i przebudowywania aplikacji i rozszerzenia Dictionary, ponieważ w obecnej postaci niestandardowe słowniki są statyczne i nie są programami, co oznacza, że ​​nie mogę po prostu napisać „słownika”, który bierze tekst i tłumaczy.
Syreny

Odpowiedzi:


26

Niestety nie wydaje się to możliwe, a przynajmniej proste. Jako alternatywę można rozważyć stworzenie OS X usługę , która otwiera Google Translate w oknie przeglądarki, dla każdego wyróżnionego słowa lub frazy, którą wybrałeś.

Jeśli brzmi to odpowiednio, wykonaj poniższą procedurę:

Tworzenie usługi tłumaczeniowej

  • Otwórz Automatoraplikację ze swojego Applicationsfolderu
  • Wybierz Servicejako typ dokumentu i kliknijChoose
  • W wyświetlonym oknie kliknij pole wyszukiwania i wpisz „AppleScript”
  • Przeciągnij i upuść Run AppleScriptakcję z listy po lewej stronie w obszarze oznaczonym „Przeciągnij tutaj akcje lub pliki, aby zbudować przepływ pracy”

Skopiuj poniższy skrypt i wklej go do Run Applescriptakcji:

on run {input, parameters}
    set phrase to input as string
    set phrase to quoted form of phrase

    set ui_lang to "en"
    set from_lang to "en"
    set to_lang to "zh-CN"

    do shell script "open 'https://translate.google.com/?hl='" & ui_lang & "'&sl='" & from_lang & "'&tl='" & to_lang & "'&text='" & phrase
end run

Twoje okno powinno wyglądać następująco:

Przepływ pracy automatora

Istnieją trzy wartości, które możesz zmienić w powyższym skrypcie:

  • ui_lang - język używany dla interfejsu strony
  • from_lang - język źródłowy
  • to_lang - język docelowy

Zmień jeden lub więcej z nich, aby uzyskać pożądane tłumaczenie. Aby znaleźć poprawne parametry językowe, patrz Dokumentacja językowa . W powyższym przykładzie enodnosi się do Englishi zh-CNdo chińskiego (uproszczonego).

Po wprowadzeniu zmian kliknij File> Save...iw wyświetlonym panelu wpisz odpowiednią nazwę (np Translate English to Chinese.).


Korzystanie z usługi tłumaczenia

Po zapisaniu powyższego przepływu pracy możesz skorzystać z usługi tłumaczenia przy użyciu jednej z dwóch poniższych metod:

1. Metoda menu serwisowego

  • Podświetl słowo lub wyrażenie w dowolnej aplikacji
  • Kliknij menu aplikacji po prawej stronie ikony Apple (), a następnie kliknij Servicesi Translate English to Chinese(lub nazwę, którą nadałeś swojej usłudze podczas zapisywania):

Przykład menu serwisowego

2. Metoda menu kontekstowego

  • Podświetl słowo lub wyrażenie w dowolnej aplikacji
  • Kliknij tekst prawym przyciskiem myszy i wybierz Servicesnastępnie Translate English to Chinese(lub niestandardową usługę o nazwie):

Przykład menu kontekstowego


Niezależnie od tego, której metody używasz, powinno pojawić się okno przeglądarki z przetłumaczonym tekstem:

Przykład Tłumacza Google


1
Absolutnie genialne - dzięki (właśnie skonfigurowałem, aby przejść z angielskiego na chiński (S), w taki sam sposób, jak to zrobiłeś, a następnie zmodyfikowałem go, aby uczynił z chińskiego (S) na angielski. WIELKA pomoc! Dzięki !!
user291332

1
Ustawiłem from_langna "auto".
Erik Kaplun

1

Ten robi wszystko jak odpowiedź soulcake, ale jeśli URL tłumacza jest już obecny - ładuje nowe tłumaczenie w tej samej zakładce

on run {input, parameters}
    set phrase to input as string

    set ui_lang to "en"
    set from_lang to "en"
    set to_lang to "ru"

    set theBaseUrl to "https://translate.google.com/"
    set theUrl to theBaseUrl & "?hl=" & ui_lang & "&sl=" & from_lang & "&tl=" & to_lang & "&text=" & phrase

    tell application "Google Chrome"
        activate

        if (count every window) = 0 then
            make new window
        end if

        set found to false
        set theTabIndex to -1
        repeat with theWindow in every window
            set theTabIndex to 0
            repeat with theTab in every tab of theWindow
                set theTabIndex to theTabIndex + 1
                if theTab's URL starts with theBaseUrl then
                    set found to true
                    exit repeat
                end if
            end repeat

            if found then
                exit repeat
            end if
        end repeat

        if found then
            set URL of theTab to theUrl
            set theWindow's active tab index to theTabIndex
            set index of theWindow to 1
        else
            tell window 1 to make new tab with properties {URL:theUrl}
        end if
    end tell

end run

Niestety zwraca błąd podczas próby użycia.
yonivav

@yonivav jaki jest błąd? czy możesz opisać kroki do jego odtworzenia?
vladkha
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.