You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koreader/frontend/ui
Aleksa Sarai 7c5243667b reader: implement language-support plugin system
This creates a new plugin system which hooks into a handful of reader
operations in order to allow plugins to add language-specific support
where the default reader falls short. The two hooks added are:

 * During hold-without-pan taps, language plugins can modify the
   selection in order to better match what users expect koreader to
   highlight when selecting a single word.

   The vast majority of CJK language words are more than one character,
   but KOReader treats all CJK characters as a single word by default,
   so adding this hook means that readers no longer need to manually
   select the whole word every time they need to look something.

 * During dictionary lookup, language plugins can propose alternative
   candidate words to look up if the selected word could not be found in
   the dictionary.

   This is pretty necessary for Japanese and Korean, both of which are
   highly agglutinative languages and the fuzzy searching system of
   StarDict is simply not usable because often the inflection of the
   word is so much longer than the dictionary form that sdcv decides to
   chop off the actual word and search for the inflection (which yields
   useless results).

This system is of particular interest for readers of CJK languages
(without this, looking up words using KOReader was fairly painful) but
this system is designed to be minimal and language-agnostic enough that
other languages could make use of it by creating their own plugins if
the default "whole word" highlight and fuzzy-search system doesn't match
their needs.

Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
3 years ago
..
data Greek keyboard: minor updates (#8319) 3 years ago
elements reader: implement language-support plugin system 3 years ago
message Remove zsync plugin (#7957) 3 years ago
network Fix syntax 3 years ago
plugin Plugins: adds PluginMenuInserter helper (#7419) 3 years ago
widget readerhighlight: remove selected_word and use selected_text everywhere 3 years ago
bidi.lua [RTL UI] Bidi-wrap filenames, paths, urls, metadata 4 years ago
cloudmgr.lua Standardize select/choose to choose (#8128) 3 years ago
downloadmgr.lua Calibre plugin fixes for android (#6996) 3 years ago
event.lua Revamp flash_ui handling, once more, with feeling ;) (#7262) 3 years ago
font.lua Font menu: show font names with their own font 4 years ago
geometry.lua geom: supplement :combine with more generic .boundingBox 3 years ago
gesturerange.lua Minor Input & TimeVal cleanups 3 years ago
hook_container.lua Input: Process input events in batches (#7483) 3 years ago
language.lua VirtualKeyboard: redesign and enhancements (#8089) 3 years ago
menusorter.lua [fix] MenuSorter: use orderedPairs for orphans (#6403) 4 years ago
otamanager.lua Check for update → Check for updates (#8027) 3 years ago
quickstart.lua Quick start guide: fix links to images (#8072) 3 years ago
renderimage.lua Update UI layout code to use new SVG icons 3 years ago
rendertext.lua Cache: Some more tweaks after #7624 3 years ago
screensaver.lua Screensaver: correct call of BookStatusWidget 3 years ago
size.lua [RFC] Pagination UI shenanigans (#7335) 3 years ago
timeval.lua Port ffiUtil.getTimestamp users to TimeVal:now() 3 years ago
translator.lua Translator: add "Translate from book language" option (#8094) 3 years ago
trapper.lua Revamp flash_ui handling, once more, with feeling ;) (#7262) 3 years ago
uimanager.lua Adds ScrollableContainer, to be used with tall widgets (#8299) 3 years ago
wikipedia.lua Unify LuaSocket usage (#7405) 3 years ago