Pi Store
更多

如何借助维基百科 API 查询术语翻译

04 月 22 日

维基百科天然具有词典的功能,从一个词条页面跳到其他语言版本即可知道这个词的翻译。借助维基 API,可以进一步将这个操作自动化,从而将维基百科变成一个实用的术语翻译工具。


需求和分析

虽然如今的翻译和查词工具层出不穷,但它们主要只能胜任宽泛、日常话题的翻译。一旦涉及到专业领域的术语,一般的词典就力不从心了。

不过,如果你常用维基百科,不难想到它其实天然具有词典的功能:一方面,维基百科收录内容广泛,各行各业都有所涉及;另一方面,各语言版本的维基百科是相互连通的,只要通过页面上的语言菜单就能跳转到另一种语言的对应词条。

因此,在最简单意义上,可以这样借助维基百科来查找一个术语的翻译:(1) 打开源语言版本的词条;(2) 使用语言菜单切换到目标语言词条;(3) 目标语言对应页面标题就是要找的翻译。

不过,如果每次都要这么搜索和跳转,未免太麻烦了。有没有更简单的方法呢?

答案是肯定的。作为一个以开放著称的项目,维基百科的所有内容都可以通过 API 访问,其中就包括了多语言词条之间的链接关系。因此,只要借助维基 API,通过一种语言的词条标题查询其他语言对应词条的标题,也就实现了「翻译」功能。

为了方便读者预览效果,这里先提供 iOS 快捷指令和网页版两种做好的成品,感兴趣的读者可以进一步查看后面的原理解释。

获取:快捷指令 | 网页应用

快捷指令版本
网页版本

(把维基 API 当词典用并不是我先想出来的主意。至少八年前,GitHub 用户 adamhwang 就做过一个网页版工具;另一位用户 jdranczewski 后来还做过另一个更复杂的版本。本文方法的核心原理与其类似,只是在实现方式上按照个人偏好做了一些优化,并省去了一些明显过时的依赖项。)

原理和步骤

维基百科的 API 虽然开放,但并不是那么好用。正如很多社区项目的通病一样,它的主要问题之一在于选择太多。事实上,维基百科目前已经积累了多达……三种不同的 API,简单来说:

  1. MediaWiki Action API:端点路径为 /w/api.php。这是最传统的 API,优点是功能覆盖最为广泛,缺点是采用比较老旧的 RPC 风格设计,用起来非常啰嗦;
  2. MediaWiki REST API:端点路径为 /w/rest.php。这是一个比较新的 API,只支持 MediaWiki 1.35 及以上版本,采用更整洁的 RESTful 风格设计,逻辑更清晰,但是尚未覆盖 Action API 的全部功能;
  3. Wikimedia REST API:端点路径为 /api/rest_v1,这个 API 不是 MediaWiki(维基百科所基于的内容管理框架)的组成部分,而是 Wikimedia 基金会另行开发的,因此只适用于 Wikimedia 旗下的官方项目;功能方面和 MediaWiki REST API 接近,同样不及 Action API。

因此目前而言,实践中使用更广泛的还是最为通用的 MediaWiki Action API,本文也将选择这个 API。

MediaWiki Action API 的基本格式是:

https://example.tld/w/api.php?action=query&format=json[&params...]

其中:

会员专属文章,欢迎加入少数派会员。
优质内容
权益周边
会员社群
power+
评论区
精彩评论0
成为少数派会员方可评论,立即加入 。若已是少数派会员,点击登录
还没有评论,来发表第一个评论吧
精彩评论
还没有评论,来发表第一个评论吧
成为少数派会员方可评论,立即加入 。若已是少数派会员,点击登录
会员新功能
内容侧边栏
点击这里拉开侧边栏,即可查看会员内容列表,快速切换内容。