2016-02-04 17 views
8

Attualmente sto sviluppando un'applicazione Android che è un dizionario, dove sono il recupero significati online con Wikizionario API con questo: [http://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=overflow&rvprop=content&format=jsonfmCome incorporare Wiktionary per l'accesso offline nell'app per Android?

ma voglio scaricare il database non in linea Wiktionary e incorporarlo all'interno del mio app Android.

Ecco il Wikizionario database pagina di download:
1. Wiktionary
2. Wikimedia Downloads

Secondo la mia ricerca ho scoperto che Wikizionario database non in linea è in formato XML e SQL. Ma questi file sono troppo grandi. L'incorporamento di questi file renderebbe enorme la dimensione dell'APK.
Quindi c'è qualche soluzione per incorporare facilmente questo nella mia app?

+0

quanto dimensioni sta prendendo tali risorse? – GvSharma

+0

Wikizionario Offline Non compresso è 700MBs e 7zip quello compresso è 100 MB – zackygaurav

+0

Esiste una versione con le parole più comuni? – Carlos

risposta

2

Lo sviluppatore [di English Dictionary - Offline] sostiene che stanno utilizzando Wikizionario. Sono ancora chiedendo dove hanno fatto ad ottenere un Wikizionario Dump File> 22 MB

Non sto essendo pagato abbastanza per dirvi che .. (scherzo). È necessario estrarre le voci del dizionario dai file XML e quando si ottiene solo quelli, il contenuto finale (testo) diventa più piccolo.

alternativa ...

Si può provare questo TSV file (per gentile concessione di: semisignal.com), che è un'istantanea di novembre 2012 definizioni. Questo contiene la maggior parte delle parole necessarie per l'utente finale che controlla l'inglese. Il TSV è 54MB ed è gestito come un file di testo.

Prova una definizione: brushable - TSV ha sotto: (confronta con l'ingresso del Wikizionario per Brushable).

inglese brushable Aggettivo # in grado di essere [[spazzolato]]
inglese brushable Aggettivo # In grado di essere controllato da [[spazzolatura]]


TIPS: Per ridurre la dimensione del file , è possibile tagliare l'iniziale "inglese" poiché si conoscono già tutte le definizioni inglesi. Ogni taglio salverà 7 byte (moltiplicato per le definizioni totali).

  • Utilizzare un String.replace su "Inglese" (con quello spazio) per cancellarlo.

  • sostituire anche "aggettivo" "verbo" "sostantivo" con i codici brevi che il vostro App conosce il significato della mostra e ingresso tipo nella User Interface . Il codice potrebbe essere che significa inserire l'elenco come Adjective.

Il file di testo tagliato può avere un esempio simile di seguito. Ogni doppia fullstop significa solo "sezione successiva di entrata", in modo sostanzialmente entry..type..definition dove <xyz> è un link a un'altra voce nel dizionario. 54 byte di voce TSV ora diventano 35 byte per quella riga.

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

Salvare il file di testo finale (ridotto) modificato. Incorporalo nel tuo APK.

+1

Grazie mille per quel file TSV. – zackygaurav

3

Suggerisco di implementare l'accesso all'API online, quindi è possibile scaricare e utilizzare piccole app, oltre a aggiungere un pulsante da qualche parte che scarica la parte offline. Controlla anche la connessione di rete, e se non è wi-fi, avvisa l'utente in modo che il piano dati mobile non venga abusato per il download di dizionario da 100 MB.