Skip to content

「工具」借助“捷径”实现IOS屏幕翻译

Published at:

刚来到荷兰的第一个礼拜,发现这边很多应用和网页都只有荷兰语。对于网页,很多浏览器原生提供的翻译就有不错的效果,还有诸如 Immersive Translation 之类的插件也可以提供很好对照翻译体验。然而,当遇到荷兰语的 App 时,我们就不得不截屏,再利用谷歌翻译等软件进行图像翻译(IOS的自带翻译软件居然不支持荷兰语图片翻译),但这样在浏览App时,就不得不停地切换软件(截屏、切换软件、打开图片翻译功能/从上一次翻译中返回,打开相册,选择图片等)。因此,一款能够方便翻译屏幕内容的工具就显得非常必要。对于安卓手机,已经有一些工具实现了屏幕翻译,但对于 iPhone 用户来说,这个问题就变得更加复杂了。

已有的方案

iOS 自带的“捷径”App 则是一个很好的解决方案。一些网络教程已经提供了一些类似的捷径,但它们通常采用截图->提取文字->翻译的方式,这虽然能够解决一定的问题,但当遇到排版复杂的页面时,往往效果不佳。

不同场景对比

使用捷径实现更高效的翻译

于是,我决定借助捷径中的 从URL获取内容功能(POST、GET) ,以及对 JSON 数据的解析能力,来设计一个更高效的解决方案。

首先,我考虑找一个提供图片翻译服务的 API 服务商。当然,通过自建服务的方式也完全可以实现这个功能,但对于我来说暂时没有这个必要,并且自建服务还需要一定的成本。简单查找各开放平台后,我决定暂时使用百度开放平台的 API,价格如下(有1万次免费调用,需要领取后才能使用!https://console.bce.baidu.com/ai/#/ai/machinetranslation/overview/resource/getFree):

API按量后付费价格

开通付费、创建应用的过程非常简单。为了能够更方便地调用服务,我们需要获取一个 AccessToken。按照文档的提示,在指定链接就可以获得 AccessToken(需要注意的是,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