Можно ли привязать мой Mac OSX Dictionary.app к Google Translate?

10

Приложение Dictionary имеет очень крутой опыт работы с MacOSX. Но я должен установить словари для использования. Можно ли привязать его к Google Translate?

Спасибо!

AGamePlayer
источник
Похоже, что это не сработает, по крайней мере, без значительного взлома и перестройки приложения и расширения Dictionary, так как пользовательские словари являются статическими и не являются программами, что означает, что я не могу просто написать «словарь», который берет текст и переводит.
Сирены

Ответы:

26

К сожалению, это не представляется возможным или, по крайней мере, простым. В качестве альтернативы вы можете рассмотреть возможность создания службы OS X, которая открывает Google Translate в окне браузера, для любого выделенного слова или фразы, которые вы выбрали.

Если это кажется подходящим, следуйте процедуре ниже:

Создание службы перевода

  • Откройте Automatorприложение из вашей Applicationsпапки
  • Выберите Serviceв качестве типа документа и нажмитеChoose
  • В появившемся окне щелкните поле поиска и введите «AppleScript»
  • Перетащите Run AppleScriptдействие из списка слева в область с надписью «Перетащите действия или файлы сюда, чтобы создать рабочий процесс».

Скопируйте скрипт ниже и вставьте его в Run Applescriptдействие:

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

Ваше окно должно выглядеть следующим образом:

Автоматизация рабочего процесса

В приведенном выше сценарии вы можете изменить три значения:

  • ui_lang - язык, используемый для интерфейса страницы
  • from_lang - исходный язык
  • to_lang - язык назначения

Измените один или несколько из них, чтобы добиться желаемого перевода. Чтобы найти правильные языковые параметры, обратитесь к справочнику по языку . В приведенном выше примере enссылаются Englishи zh-CNна китайский (упрощенный).

После внесения изменений нажмите File> Save...и на появившейся панели введите подходящее имя (например, Translate English to Chinese).


Использование Сервиса перевода

После сохранения вашего рабочего процесса, описанного выше, вы можете использовать службу перевода одним из следующих двух способов:

1. Метод Сервисного Меню

  • Выделите слово или фразу в любом приложении
  • Нажмите «Меню приложений» справа от значка Apple (), затем нажмите Servicesи Translate English to Chinese(или название, которое вы дали своей службе при ее сохранении):

Пример сервисного меню

2. Метод контекстного меню

  • Выделите слово или фразу в любом приложении
  • Щелкните правой кнопкой мыши текст и выберите Servicesзатем Translate English to Chinese(или ваш пользовательский с именем Service):

Пример контекстного меню


Какой бы метод вы ни использовали, должно появиться окно браузера с вашим переведенным текстом:

Пример Google Translate

soulcake
источник
1
Абсолютно блестяще - спасибо (я просто настроил переход с английского на китайский (S), так же, как вы сделали, а затем изменил его, чтобы сделать китайский (S) на английский. БОЛЬШАЯ помощь! Спасибо !!
user291332
1
Я настроен from_langна "auto".
Эрик Каплун
1

Этот делает все как ответ душевного пирога, но если URL переводчика уже присутствует - загружает новый перевод в той же вкладке

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
источник
К сожалению, он возвращает ошибку при попытке его использования.
Йонивав
@yonivav в чем ошибка? Можете ли вы описать шаги, чтобы воспроизвести его?
владха