From c3352ee171aa8ea695f64518a38c03b759e7cb24 Mon Sep 17 00:00:00 2001 From: David <97603719+Commodore64user@users.noreply.github.com> Date: Thu, 5 Jun 2025 07:04:22 +0100 Subject: [PATCH] [ReaderDictionary] Match words when they are Capitalised in non-fuzzy search (#13884) --- frontend/apps/reader/modules/readerdictionary.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frontend/apps/reader/modules/readerdictionary.lua b/frontend/apps/reader/modules/readerdictionary.lua index 6f20d65d9..bc379ddbe 100644 --- a/frontend/apps/reader/modules/readerdictionary.lua +++ b/frontend/apps/reader/modules/readerdictionary.lua @@ -17,6 +17,7 @@ local NetworkMgr = require("ui/network/manager") local SortWidget = require("ui/widget/sortwidget") local Trapper = require("ui/trapper") local UIManager = require("ui/uimanager") +local Utf8Proc = require("ffi/utf8proc") local ffi = require("ffi") local C = ffi.C local ffiUtil = require("ffi/util") @@ -999,6 +1000,13 @@ end function ReaderDictionary:startSdcv(word, dict_names, fuzzy_search) local words = {word} + -- If a word starts with a capital letter, add lowercase version to words array. + if not fuzzy_search then + local lowercased = Utf8Proc.lowercase(word, false) + if word ~= lowercased then + table.insert(words, lowercased) + end + end if self.ui.languagesupport and self.ui.languagesupport:hasActiveLanguagePlugins() then -- Get any other candidates from any language-specific plugins we have.