如何在 Android 应用程序中嵌入维基词典以供离线访问?
How to embed Wiktionary for offline access in Android App?
我目前正在开发一个 Android 应用程序,它是一个词典,我在其中使用 Wiktionary API 在线获取含义:[http://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=overflow&rvprop=content&format=jsonfm
但我想离线下载维基词典数据库并将其嵌入到我的 Android 应用程序中。
这是维基词典数据库下载页面:
1. Wiktionary
2.Wikimedia Downloads
根据我的研究,我发现 Wiktionary Offline Database 在 XML 和 SQL 中。但是这些文件太大了。嵌入这些文件会使 APK 变大。
那么有什么解决方案可以轻松地将其嵌入到我的应用程序中吗?
我建议实现在线API访问,这样可以下载和使用小应用程序,并在某处添加一个下载离线部分的按钮。还要检查网络连接,如果不是 Wi-Fi,请警告用户,以免滥用移动数据计划来下载 100 MB 词典。
The developer [ of English Dictionary - Offline ] claims that they are using Wiktionary. I am still
wondering where did they get a Wiktionary Dump File >22 MB
我的报酬不足以告诉你这个..(开玩笑)。事情是你需要从 XML 文件中提取字典条目,一旦你得到 只有那些 然后最终的内容(文本)文件变得更小。
或者...
您可以试试这个 TSV file (courtesy of: semisignal.com),它是 2012 年 11 月定义的快照。这包含您的最终用户检查英语所需的大部分单词。 TSV 是 54MB 并且像文本文件一样处理。
尝试定义:brushable -- TSV 具有以下内容:(与 Wiktionary 的 Brushable 条目相比)。
English brushable Adjective # Able to be [[brushed]]
English brushable Adjective # Able to be controlled by [[brushing]]
提示: 为了减少文件大小,您可以 trim 从开头 "English" 开始,因为您已经知道它的所有英文定义。每个 trim 将为您节省 7 个字节(乘以总定义)。
在 "English " 上使用 String.replace
(使用那个 space)清除它。
同时将 "Adjective" "Verb" "Noun" 替换为您的短代码
应用程序知道用户中的条目 type 的含义并显示
界面。代码可以是 1 表示列表条目为 Adjective.
您的 trimmed 文本文件可能类似于下面的示例。每个双句号仅表示 "next section of entry",所以基本上 entry
..type
..definition
其中 <xyz>
是 link 中的另一个条目字典。对于那一行,54 字节的 TSV 条目现在变成 35 字节。
brushable..1..Able to be <brushed>.
保存最终编辑(缩小)的文本文件。将其嵌入到您的 APK 中。
我目前正在开发一个 Android 应用程序,它是一个词典,我在其中使用 Wiktionary API 在线获取含义:[http://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=overflow&rvprop=content&format=jsonfm
但我想离线下载维基词典数据库并将其嵌入到我的 Android 应用程序中。
这是维基词典数据库下载页面:
1. Wiktionary
2.Wikimedia Downloads
根据我的研究,我发现 Wiktionary Offline Database 在 XML 和 SQL 中。但是这些文件太大了。嵌入这些文件会使 APK 变大。
那么有什么解决方案可以轻松地将其嵌入到我的应用程序中吗?
我建议实现在线API访问,这样可以下载和使用小应用程序,并在某处添加一个下载离线部分的按钮。还要检查网络连接,如果不是 Wi-Fi,请警告用户,以免滥用移动数据计划来下载 100 MB 词典。
The developer [ of English Dictionary - Offline ] claims that they are using Wiktionary. I am still wondering where did they get a Wiktionary Dump File >22 MB
我的报酬不足以告诉你这个..(开玩笑)。事情是你需要从 XML 文件中提取字典条目,一旦你得到 只有那些 然后最终的内容(文本)文件变得更小。
或者...
您可以试试这个 TSV file (courtesy of: semisignal.com),它是 2012 年 11 月定义的快照。这包含您的最终用户检查英语所需的大部分单词。 TSV 是 54MB 并且像文本文件一样处理。
尝试定义:brushable -- TSV 具有以下内容:(与 Wiktionary 的 Brushable 条目相比)。
English brushable Adjective # Able to be [[brushed]]
English brushable Adjective # Able to be controlled by [[brushing]]
提示: 为了减少文件大小,您可以 trim 从开头 "English" 开始,因为您已经知道它的所有英文定义。每个 trim 将为您节省 7 个字节(乘以总定义)。
在 "English " 上使用
String.replace
(使用那个 space)清除它。同时将 "Adjective" "Verb" "Noun" 替换为您的短代码 应用程序知道用户中的条目 type 的含义并显示 界面。代码可以是 1 表示列表条目为 Adjective.
您的 trimmed 文本文件可能类似于下面的示例。每个双句号仅表示 "next section of entry",所以基本上 entry
..type
..definition
其中 <xyz>
是 link 中的另一个条目字典。对于那一行,54 字节的 TSV 条目现在变成 35 字节。
brushable..1..Able to be <brushed>.
保存最终编辑(缩小)的文本文件。将其嵌入到您的 APK 中。