开发Project 1: Alfred Workflow-免费翻译【失败】
问题定位
目前使用的 alfred workflow 是基于有道的 API 开发的,存在的问题包括:
- API 有调用次数限制,经常报错,非常影响效率
- 支持中英、英中互译,但是不支持更多语种的翻译,无法满足我目前对于日语和西班牙语的需求
需求梳理
想要自己开发一个 workflow,能够达到以下要求
- 可以多语种之间翻译:中-英、英-中、中-日、日-中、中-西、西-中,对于其他人来说可以指定语种
- 操作便捷,能够通过关键词区分目标语种
- 翻译准确,信源可靠
- 免费,不报错
其他附加项
- 日语最好能有音调标注
- 能够发音
技术调研
1. 确定 API
第一反应找了 google translate,原因包括
- 大厂的 API,可信度较高
- 平时我在网上会直接打开网页使用,有熟悉度和亲切度
- 支持多种语言互译
- 可以自动检测源语言
- 网页版免费
问题 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:
- 不调用 API,直接打开 google translate 网页
- 支持通过关键词区分目标语言,源语言则默认
auto
目前存在的问题包括:
- 打开页面需要在 app 之间切换,没有那么方便
- 打开页面略慢
但好处是:
- 信源可靠且稳定
- 免费