评论

怎么在小程序里面实现点按翻译

在浏览器里,可以很方便的使用划词翻译。那在小程序里该怎么实现呢?本文带你来一探究竟。


首发于公众号 iKeepLearn



#0

English Podcast (原 BBC English Podcast)一直没有怎么维护。最近刚好有时间​,就登录后台看看用户反馈。有没有什么值得更新的。其中呼声最高的就是希望加入翻译功能。所以就先实现这​一点吧。

#1

确定需求后,就先搜一下其他小程序,看看他们实现的效果。中国日报社和微信研究院联合推出的每日英文电台就刚好有这个​功能。​试了一下效果不错。所以这个需求点​是可实现的。

​那怎么实现呢?毕竟小程序里面不像网页和 APP 那样支持长按选择​文字并弹出自定义菜单项,官方支持选择文字的就 text 组件​。但没有相关的 api 去获取选定的内容​?

​在搜索了一圈后也没有找到很好的实现,那就只好自己​来实现。

#2

思考了一下,只有用常见的支持绑定点击事件的 view​ 了。思路是先把英文句子按单词分割,然后每一个单词绑定​相应的事件。这样就能获取点按的单词了,再调用接口去获取翻译​内容。

所以数据结构按这样设计

思路确定后,相关编码就很简单了​。

wxml文件和wxss文件


#3

在找翻译接口的时候,有谷歌,必应、百度和有道作为备选​。最后思考了一下还是选了微信官方的接口​。这样可以避免关键字检测​?

本来在微信服务市场找到的英中翻译接口是最适合需求的,因为不需要服务器调用可以直接在小程序客户端里​使用。只是按文档接入后提示​出错了。只好选择​多语言翻译接口。


#4 最后可以扫码下方的小程序体验点按翻译


最后一次编辑于  2022-12-19  
点赞 1
收藏
评论

1 个评论

  • Qiu (吉²)
    Qiu (吉²)
    2022-12-20

    您好,请问这里如果不用view渲染,用text组件,是否可以实现选择某个单词高亮啊

    2022-12-20
    赞同
    回复 1
    • 小程序开发 · cc
      小程序开发 · cc
      2022-12-21
      text组件层级多了会有bug,高亮这个也有的。注意看 class 里面条件判定
      2022-12-21
      回复
登录 后发表内容