9

我目前正在开发一个 Android 应用程序,它是一个字典,我正在使用 Wiktionary API 在线获取含义:[ http://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=overflow&rvprop=content&format =jsonfm

但我想离线下载维基词典并将其嵌入到我的 Android 应用程序中。

这是维基词典数据库下载页面:
1.维基词典
2.维基媒体下载

根据我的研究,我发现维基词典离线数据库是 XML 和 SQL 格式的。但是这些文件太大了。嵌入这些文件会使 APK 变大。
那么有什么解决方案可以轻松地将其嵌入我的应用程序中吗?

4

2 回答 2

4

[ English Dictionary - Offline ] 的开发者声称他们正在使用维基词典。我仍然想知道他们从哪里获得 >22 MB 的维基词典转储文件

我没有得到足够的报酬来告诉你……(笑话)。事情是你需要从 XML 文件中提取字典条目,一旦你只得到那些,那么最终的内容(文本)文件就会变得更小。

或者...

您可以试试这个TSV 文件(由semisignal.com提供),它是 2012 年 11 月定义的快照。这包含您的最终用户检查英语所需的大多数单词。TSV 为54MB,像文本文件一样处理。

尝试一个定义:brushable - TSV 有以下:(比较维基词典中的Brushable条目)。

英文brushable形容词#可以被[[brushed]]
英文brushable形容词#可以被[[brushed]]控制


提示:为了减少文件大小,您可以剪掉开头的“英语”,因为您已经知道它的所有英语定义。每次修剪将为您节省 7 个字节(乘以总定义)。

  • 使用String.replace“英语”(带有那个空格)来清除它。

  • 还将“形容词”“动词”“名词”替换为您的应用程序知道其含义并在用户界面中显示条目类型的短代码。代码可以是1表示列表条目为形容词

您修剪的文本文件可能像下面的示例。每个双句号仅表示“条目的下一部分”,所以基本上.. ..字典中另一个条目的链接在哪里。54 字节的 TSV 条目现在变为该行的 35 字节。entrytypedefinition<xyz>

brushable..1..Able to be <brushed>.

保存最终编辑(缩减)的文本文件。将其嵌入到您的 APK 中。

于 2016-02-14T20:11:51.313 回答
3

我建议实现在线API访问,以便可以下载和使用小应用程序,并在某处添加一个下载离线部分的按钮。还要检查网络连接,如果不是 wi-fi,警告用户,以免移动数据计划被滥用下载 100 MB 字典。

于 2016-02-07T10:46:13.343 回答