已有的方案
iOS 自带的“捷径”App 则是一个很好的解决方案。一些网络教程已经提供了一些类似的捷径,但它们通常采用截图->提取文字->翻译的方式,这虽然能够解决一定的问题,但当遇到排版复杂的页面时,往往效果不佳。
使用捷径实现更高效的翻译
于是,我决定借助捷径中的 从URL获取内容功能(POST、GET) ,以及对 JSON 数据的解析能力,来设计一个更高效的解决方案。
首先,我考虑找一个提供图片翻译服务的 API 服务商。当然,通过自建服务的方式也完全可以实现这个功能,但对于我来说暂时没有这个必要,并且自建服务还需要一定的成本。简单查找各开放平台后,我决定暂时使用百度开放平台的 API,价格如下(有1万次免费调用,需要领取后才能使用!https://console.bce.baidu.com/ai/#/ai/machinetranslation/overview/resource/getFree):
开通付费、创建应用的过程非常简单。为了能够更方便地调用服务,我们需要获取一个 AccessToken。按照文档的提示,在指定链接就可以获得 AccessToken(如下图所示)(需要注意的是,AccessToken 有默认的有效期,我暂时没做特别处理)。(写的比较简单,写不动了)
Updated On 2025-04-08: 需要特别注意的是,AccessToken默认有效期为一个月,需要手动更新.
接着,按照 API 文档提供的 Python 代码做了简单测试之后,我们就可以开始在手机端的操作了。首先,在捷径中创建一个文本来存放 AccessToken,接着获取截图,然后我们使用“获取 URL 内容”实现 POST 请求。注意,“image”字段需要选择“文件”类型,并选择上面的截图。接下来,使用两个“获取字典值”来提取我们需要的翻译结果。API 返回的图片数据是 base64 编码的,因此需要进行解码(在添加动作时,初始选项是“编码 Base64”,不要慌张,添加后可以将“编码”切换为“解码”)。最后,通过“显示结果”动作展示翻译后的图片。为了更方便地使用这个捷径,可以在 iPhone 系统设置中,通过“辅助功能->触控->轻点背面->双击/三击”的方式,设置调用这个捷径。这样就可以通过轻敲手机背面,轻松调用捷径来实现翻译。
最后的效果如下,复杂页面也能轻松应对:
优缺点分析
不过,这种方式要求网络状况良好,有时需要较长的等待时间才能获取结果。但相比于频繁切换软件实现翻译,这种方法显然在操作流程上更加简化了。
文档地址:https://cloud.baidu.com/doc/MT/s/mki483xpu
免费领取1万额度的链接:https://console.bce.baidu.com/ai/#/ai/machinetranslation/overview/resource/getFree