Ist es möglich, meine Mac OSX Dictionary.app an Google Translate zu binden?

10

Die Dictionary App hat eine sehr coole Erfahrung unter MacOSX. Aber ich muss Wörterbücher installieren, um sie zu verwenden. Ist es möglich, es an Google Translate zu binden?

Vielen Dank!

AGamePlayer
quelle
Es sieht nicht so aus, als würde es funktionieren, zumindest ohne umfangreiches Hacken und Neuerstellen der Wörterbuch-App und -Erweiterung, da benutzerdefinierte Wörterbücher derzeit statisch sind und keine Programme sind, was bedeutet, dass ich nicht einfach ein "Wörterbuch" schreiben kann, das nimmt den Text und übersetzt.
Sirenen

Antworten:

26

Leider scheint es nicht möglich oder zumindest unkompliziert zu sein. Alternativ können Sie einen OS X- Dienst erstellen , der Google Translate in einem Browserfenster für jedes von Ihnen ausgewählte hervorgehobene Wort oder jede ausgewählte Phrase öffnet.

Wenn dies geeignet klingt, gehen Sie wie folgt vor:

Erstellen eines Übersetzungsdienstes

  • Öffnen Sie die AutomatorApp aus Ihrem ApplicationsOrdner
  • Wählen Sie Serviceals Dokumenttyp und klicken Sie aufChoose
  • Klicken Sie im angezeigten Fenster auf das Suchfeld und geben Sie "AppleScript" ein.
  • Ziehen Sie die Run AppleScriptAktion aus der Liste links in den Bereich "Aktionen oder Dateien hierher ziehen, um Ihren Workflow zu erstellen".

Kopieren Sie das folgende Skript und fügen Sie es in die Run ApplescriptAktion ein:

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

Ihr Fenster sollte wie folgt aussehen:

Automator-Workflow

Es gibt drei Werte, die Sie im obigen Skript möglicherweise ändern möchten:

  • ui_lang - die für die Seitenoberfläche verwendete Sprache
  • from_lang - die Ausgangssprache
  • to_lang - die Zielsprache

Ändern Sie eine oder mehrere davon, um die gewünschte Übersetzung zu erzielen. Informationen zum Finden der richtigen Sprachparameter finden Sie in der Sprachreferenz . Im obigen Beispiel enbezieht sich auf Englishund zh-CNauf Chinesisch (vereinfacht).

Nachdem Sie Ihre Änderungen vorgenommen haben, klicken Sie auf File> Save...und geben Sie im angezeigten Fenster einen geeigneten Namen ein (z Translate English to Chinese. B. ).


Verwenden des Übersetzungsdienstes

Nachdem Sie den oben genannten Workflow gespeichert haben, können Sie Ihren Übersetzungsdienst mit einer der folgenden beiden Methoden nutzen:

1. Die Servicemenü-Methode

  • Markieren Sie ein Wort oder eine Phrase in einer beliebigen Anwendung
  • Klicken Sie auf das Anwendungsmenü rechts neben dem Apple-Symbol () und dann auf Servicesund Translate English to Chinese(oder auf den Namen, den Sie Ihrem Dienst beim Speichern gegeben haben):

Beispiel für ein Servicemenü

2. Die Kontextmenü-Methode

  • Markieren Sie ein Wort oder eine Phrase in einer beliebigen Anwendung
  • Klicken Sie mit der rechten Maustaste auf den Text und wählen Sie Servicesdann Translate English to Chinese(oder Ihren benutzerdefinierten Dienst) aus:

Beispiel für ein Kontextmenü


Unabhängig von der verwendeten Methode sollte ein Browserfenster mit Ihrem übersetzten Text angezeigt werden:

Beispiel für Google Translate

Soulcake
quelle
1
Absolut brillant - danke (ich habe es so eingerichtet, dass es genauso wie Sie von Englisch auf Chinesisch (S) wechselt, und es dann so geändert, dass es Chinesisch (S) auf Englisch macht. Eine
GROSSE
1
Ich machte mich from_langan "auto".
Erik Kaplun
1

Dieser macht alles wie die Antwort des Soulcakes, aber wenn die URL des Übersetzers bereits vorhanden ist, wird eine neue Übersetzung in denselben Tab geladen

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
vladkha
quelle
Leider gibt es einen Fehler zurück, wenn Sie versuchen, es zu verwenden.
Yonivav
@yonivav was ist der Fehler? Können Sie die Schritte zur Reproduktion beschreiben?
Vladkha