alfred自定义谷歌翻译workflow

发布时间:2024年01月23日

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

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

blank workflow

2. 开发python脚本

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

  1. 首先安装谷歌翻译库:
pip install googletrans==3.1.0a0
  1. 编写py脚本
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 script filter

配置信息说明:

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

config

  1. 新增剪贴板

在filter后面接一个clipboard:

clipboard

4. 调试工作流

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

debug

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


参考

文章来源:https://blog.csdn.net/transformer_WSZ/article/details/135793020
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。