开发Project 1: Alfred Workflow-免费翻译【失败】

问题定位

目前使用的 alfred workflow 是基于有道的 API 开发的,存在的问题包括:

  1. API 有调用次数限制,经常报错,非常影响效率
  2. 支持中英、英中互译,但是不支持更多语种的翻译,无法满足我目前对于日语和西班牙语的需求

需求梳理

想要自己开发一个 workflow,能够达到以下要求

  1. 可以多语种之间翻译:中-英、英-中、中-日、日-中、中-西、西-中,对于其他人来说可以指定语种
  2. 操作便捷,能够通过关键词区分目标语种
  3. 翻译准确,信源可靠
  4. 免费,不报错

其他附加项

  1. 日语最好能有音调标注
  2. 能够发音

技术调研

1. 确定 API

第一反应找了 google translate,原因包括

  1. 大厂的 API,可信度较高
  2. 平时我在网上会直接打开网页使用,有熟悉度和亲切度
  3. 支持多种语言互译
  4. 可以自动检测源语言
  5. 网页版免费

问题 1:如何开发 Alfred Workflow

  • 尝试阅读了 Alfred 的官方文档,内容较多,看完再开发反而找不着重点
  • 决定直接开发,在终端验证流程,最后移植到 Alfred 里用,针对它的设置方式调试

问题 2:结算方式配置困难

  • google translate api 是免费额度 + 增量收费的模式,免费额度是 50 万个字符(50 万字符对于我这种翻译需求量不算太高的人来说应该够用)
  • 安装好 gcloud,创建好项目,准备启用 API 了。此时需要在 google cloud 上配置结算方式,意外发现目前不支持银联的 visa 卡(卡号输入后报错无效,目前手上只有一张 visa 卡,PayPal 不支持),只能放弃

2. 切换 API

搜到一个生成免费且开源的字典 API:LibreTranslate

问题 1:准确性问题

  • 新的 API 没有额度限制,但提到其准确性可能会有问题(鼓励遇到问题时向社区)
  • 无法确定准确性在多大程度上有问题,但准备先用着

问题 2:申请 API Key 要付费

  • 尽管这个 API 生成免费且开源,但是申请 API Key 需要付费,每月$29,一点也不便宜

3. 再次切换 API

  • 准备换到 DeepL,和 Google 一样有免费额度
  • 申请会员时发现信用卡可选国家里没有中国,于是再次无法通过(技术无国界都是骗人的!)

解决方案

最终写了一个超级简单的 workflow:

  1. 不调用 API,直接打开 google translate 网页
  2. 支持通过关键词区分目标语言,源语言则默认 auto

目前存在的问题包括:

  1. 打开页面需要在 app 之间切换,没有那么方便
  2. 打开页面略慢

但好处是:

  1. 信源可靠且稳定
  2. 免费

Reference