Est-il possible de lier mon Mac OSX Dictionary.app à Google Translate?

10

L'application Dictionnaire a une expérience très cool sur MacOSX. Mais je dois installer des dictionnaires à utiliser. Est-il possible de le lier à Google Translate?

Merci!

AGamePlayer
la source
Il ne semble pas que cela fonctionnerait, du moins sans un piratage et une reconstruction étendus de l'application et de l'extension Dictionary car, en l'état, les dictionnaires personnalisés sont statiques et ne sont pas des programmes, ce qui signifie que je ne peux pas simplement écrire un "dictionnaire" qui prend le texte et traduit.
Sirens

Réponses:

26

Malheureusement, cela ne semble pas possible, ou du moins simple. Comme alternative, vous voudrez peut - être envisager la création d' un OS X service qui ouvre Google Translate dans une fenêtre de navigateur, pour un mot ou une phrase en surbrillance vous avez sélectionné.

Si cela vous semble approprié, suivez la procédure ci-dessous:

Création d'un service de traduction

  • Ouvrez l' Automatorapplication depuis votre Applicationsdossier
  • Sélectionnez Servicecomme type de document et cliquez surChoose
  • Dans la fenêtre qui apparaît, cliquez sur le champ de recherche et tapez 'AppleScript'
  • Faites glisser et déposez l' Run AppleScriptaction de la liste de gauche dans la zone intitulée «Faites glisser les actions ou les fichiers ici pour créer votre flux de travail»

Copiez le script ci-dessous et collez-le dans l' Run Applescriptaction:

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

Votre fenêtre devrait ressembler à ceci:

Flux de travail Automator

Il y a trois valeurs que vous voudrez peut-être modifier dans le script ci-dessus:

  • ui_lang - la langue utilisée pour l'interface de la page
  • from_lang - la langue source
  • to_lang - la langue de destination

Modifiez-en un ou plusieurs pour obtenir la traduction souhaitée. Pour trouver les paramètres de langue corrects, reportez-vous à la référence de langue . Dans l'exemple ci-dessus, enfait référence à Englishet zh-CNau chinois (simplifié).

Après avoir apporté vos modifications, cliquez sur File> Save...et dans le panneau qui apparaît, tapez un nom approprié (par exemple Translate English to Chinese).


Utilisation du service de traduction

Après avoir enregistré votre flux de travail ci-dessus, vous pouvez utiliser votre service de traduction avec l'une des deux méthodes suivantes:

1. La méthode du menu de service

  • Mettez un mot ou une phrase en surbrillance dans n'importe quelle application
  • Cliquez sur le menu Application à droite de l'icône Apple (), puis cliquez sur Serviceset Translate English to Chinese(ou sur le nom que vous avez donné à votre service lors de son enregistrement):

Exemple de menu de service

2. La méthode du menu contextuel

  • Mettez un mot ou une phrase en surbrillance dans n'importe quelle application
  • Cliquez avec le bouton droit sur le texte et sélectionnez Servicesensuite Translate English to Chinese(ou votre service nommé personnalisé):

Exemple de menu contextuel


Quelle que soit la méthode que vous utilisez, une fenêtre de navigateur doit apparaître avec votre texte traduit:

Exemple Google Translate

gâteau d'âme
la source
1
Absolument génial - merci (je l'ai simplement configuré pour passer de l'anglais au chinois (S), de la même manière que vous l'avez ensuite modifié pour faire du chinois (S) vers l'anglais. UNE GRANDE aide! Merci !!
user291332
1
Je me mis from_langà "auto".
Erik Kaplun
1

Celui-ci fait tout comme la réponse du soulcake mais si l'URL du traducteur est déjà présente - charge la nouvelle traduction dans le même onglet

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
la source
Malheureusement, il renvoie un bogue en essayant de l'utiliser.
yonivav
@yonivav quel est le bug? pouvez-vous décrire les étapes pour le reproduire?
vladkha