是否可以将Mac OSX Dictionary.app绑定到Google Translate?


9

Dictionary App在MacOSX上具有非常酷的体验。但是我必须安装字典才能使用。是否可以将其绑定到Google翻译?

谢谢!


它看起来似乎不起作用,至少在没有广泛的Hack和重建Dictionary应用程序和扩展的情况下,因为按照它的立场,自定义词典是静态的,而且不是程序,这意味着我不能只写一个“字典”,接受文字并翻译。
塞伦斯(Sirens)

Answers:


25

不幸的是,这似乎是不可能的,或者至少是直接的。作为替代方案,您可能要考虑创建OS X 服务,以针对您选择的任何突出显示的单词或短语在浏览器窗口中打开Goog​​le翻译。

如果听起来合适,请按照以下步骤操作:

创建翻译服务

  • AutomatorApplications文件夹中打开应用
  • 选择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.服务菜单方法

  • 在任何应用程序中突出显示单词或短语
  • 单击苹果图标()右侧的“应用程序菜单”,然后单击ServicesTranslate English to Chinese(或保存该服务时输入的名称):

服务菜单示例

2.上下文菜单方法

  • 在任何应用程序中突出显示单词或短语
  • 右键单击文本,Services然后选择Translate English to Chinese(或您自定义的命名服务):

上下文菜单示例


无论使用哪种方法,浏览器窗口均应显示翻译后的文本:

Google翻译示例


非常出色—谢谢(我将其设置为从英语到中文(S),方法与您相同,然后将其修改为从中文到英语
。BIG

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

不幸的是,它在尝试使用它时返回了一个错误。
yonivav

@yonivav的错误是什么?您能描述复制它的步骤吗?
vladkha '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.