arianneorpilla / jidoujisho

A full-featured immersion language learning suite for mobile.
GNU General Public License v3.0
940 stars 58 forks source link

[Feature Request] Custom dictionary support #24

Closed ttu-ttu closed 3 years ago

ttu-ttu commented 3 years ago

Current method for monolingual dictionary seem make http calls for each look up.

Which is:

arianneorpilla commented 3 years ago

Timely request, this happens to be my next area to prioritize. My plan for this is to allow users to import Yomichan format dictionaries.

I already have code from 0.4 that allows me to parse term bank JSONs into dictionary entries. Loading up the JSONs every launch and doing the query with Dart data structures was not the wisest idea I had. So, what I'll do is have the user do a one-time import and store these entries in a database, probably sqflite or ObjectBox.

Then, it'll be a matter of a LIKE query limited to a certain amount of entries, favoring exact matches before starts with similarity matches. This request should also allow me to address that I can already get the lemma form of words through text segmentation, no idea why I haven't been using that as I've just found out. This should allow for offline bilingual results for JMdict almost exactly similar to Jisho.org's as I mostly use their parser.

I'll keep the current online functionality as is for users who don't want to set anything up. This is going to be quite the experiment and I hope this plan will turn out to be performant.

arianneorpilla commented 3 years ago

I have implemented this feature in 0.24.

See the relevant line in the release notes:

This feature may require more rigorous testing with a variety of dictionaries, but I am happy to release this feature given a good number of dictionaries I've tested with it. Improvements can probably come at a later time. With that, I am closing this issue.