alfred自定义谷歌翻译workflow
Swift Lv6

如果要实现自定义workflow,则必须安装付费版的alfred,囊中羞涩的话可以自行淘宝。自定义步骤如下:

1. 新建空的workflow,填写基本信息

blank workflow

2. 开发python脚本

打开该workflow所在目录,进行下面步骤:

  1. 首先安装谷歌翻译库:
    1
    pip install googletrans==3.1.0a0
  2. 编写py脚本
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    import sys
    import json
    from googletrans import Translator

    def main(input_text):
    d = {
    "en": "zh-CN",
    "zh-CN": "en"
    }
    translator = Translator()
    lang = translator.detect(input_text).lang
    alfred_results = []
    # 中英文互译
    if lang in d:
    text = translator.translate(input_text, dest=d[lang]).text
    alfred_results.append({
    "title": text,
    "arg": text, # 该参数不可省略,将用于后续的剪贴板复制;否则后续动作无法触发
    "icon": {
    "path": "./google_translate.png"
    }
    })
    else:
    alfred_results.append({
    "title": "未识别语种",
    "icon": {
    "path": "./google_translate.png"
    }
    })
    return json.dumps({
    "items": alfred_results
    }, ensure_ascii=False)


    if __name__ == "__main__":
    resp = "no input text to translate"
    if len(sys.argv) >= 2:
    input_text = "\t".join(sys.argv[1:])
    resp = main(input_text)
    sys.stdout.write(resp)

3. 编辑工作流

  1. 新建script filter:

new scipt filter

配置信息说明:

  • 触发谷歌翻译关键词:tr
  • 将输入看做{query}
  • 调用python脚本进行翻译:python ./translate.py "{query}"
  • 避免一些转义符

config

  1. 新增剪贴板

在filter后面接一个clipboard:

clipboard

4. 调试工作流

右侧有个虫子标记,点击。然后调起alfred,输入命令测试,下面的控制台会打印日志信息:

debug

如果上述步骤一切顺利的话,你的工作流就实现了。


参考

Powered by Hexo & Theme Keep
Unique Visitor Page View