2016-02-04 17 views
8

Ich bin derzeit die Entwicklung einer Android-App, die ein Wörterbuch ist, wo ich Bedeutungen online Neue API mit diesem bin holen: [http://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=overflow&rvprop=content&format=jsonfmWie kann Wiktionary für den Offline-Zugriff in Android App eingebettet werden?

Aber ich möchte die Neue Datenbank offline zum Herunterladen und binde sie in meinem Android App.

Hier ist die Neue Datenbank Download-Seite:
1. Wiktionary
2. Wikimedia Downloads

Nach meinen Recherchen fand ich heraus, dass Wiktionary Offline-Datenbank in XML und SQL ist. Aber diese Dateien sind zu groß. Das Einbetten dieser Dateien würde die APK-Größe enorm erhöhen.
Gibt es also eine Lösung, um dies einfach in meine App einzubetten?

+0

Wie viel Größe benötigt diese Ressourcen? – GvSharma

+0

Wiktionary Offline Unkomprimiert ist 700MBs und 7Zip komprimiert Eins ist 100 MB – zackygaurav

+0

Gibt es eine Version mit den gebräuchlicheren Wörtern? – Carlos

Antwort

2

Der Entwickler [of English Dictionary - Offline] behauptet, dass sie Wiktionary verwenden. Ich bin immer noch fragen, wo haben sie eine Neue Datei> 22 MB Dump erhalten

Ich bin nicht genug bezahlt, dass Sie zu sagen .. (Witz). Dazu müssen Sie die Wörterbucheinträge aus den XML-Dateien extrahieren und sobald Sie nur diese erhalten haben, wird die endgültige Inhaltsdatei (Textdatei) kleiner.

Alternativ ...

Sie diese TSV file (mit freundlicher Genehmigung von: semisignal.com) versuchen kann, die eine Momentaufnahme von 2012 Definitionen November. Dies enthält die meisten Wörter, die Ihr Endbenutzer, der Englisch überprüft, benötigen würde. Der TSV ist 54MB und wird wie eine Textdatei behandelt.

Versuchen Sie eine Definition: brushable - TSV hat unter: (Vergleiche auf Wiktionary Eintritt für Brushable).

Englisch brushable Adjective # Lage sein [[gebürstet]]
Englisch brushable Adjective # Able von [[Bürsten]]


TIPS gesteuert werden: Zur Reduzierung Größe , Sie können den Anfang "Englisch" abschneiden, da Sie bereits alle englischen Definitionen kennen. Jede Trimmung spart Ihnen 7 Bytes (multipliziert mit Gesamtdefinitionen).

  • Verwenden Sie ein String.replace auf "Englisch" (mit diesem Raum) um es zu löschen.

  • Auch ersetzen „Adjektiv“ „Verb“ „Nomen“ mit kurzen Codes, die Ihre App, die Bedeutung und zeigt Eintrag Typ im User-Interface kennt. Code könnte sein Bedeutung Listeneintrag als Adjektiv.

Ihre beschnittene Textdatei könnte Beispiel unten mögen. Jeder Doppelfullstop bedeutet nur „nächsten Abschnitt Eintrag“, also im Grunde entry..type..definition wo <xyz> einen Link im Wörterbuch zu einem anderen Eintrag ist. 54 Bytes des TSV-Eintrags werden nun 35 Bytes für diese eine Zeile.

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

Speichern Sie die endgültige bearbeitete (reduzierte) Textdatei. Betten Sie das in Ihre APK ein.

+1

Vielen Dank für diese TSV-Datei. – zackygaurav

3

Ich schlage vor, den Online-API-Zugang zu implementieren, so kleine App kann heruntergeladen und verwendet werden, plus fügen Sie eine Schaltfläche irgendwo, die den Offline-Teil herunterlädt. Überprüfen Sie auch die Netzwerkverbindung und warnen Sie den Benutzer, wenn der WLAN-Plan nicht missbraucht wird, um das 100-MB-Wörterbuch herunterzuladen.