From 683b0381bf1ff2f2782fcebbd755c476520b2737 Mon Sep 17 00:00:00 2001 From: robert00s Date: Wed, 26 Oct 2016 19:20:12 +0200 Subject: [PATCH] Patch for wikipedia language (#2304) * smarter language detection for wikipedia new order: * check language for document * check global language setting * check language for lookup phrase Fix: https://github.com/koreader/koreader/issues/1844 --- .../apps/reader/modules/readerwikipedia.lua | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/frontend/apps/reader/modules/readerwikipedia.lua b/frontend/apps/reader/modules/readerwikipedia.lua index 4236085a4..050ecc1e3 100644 --- a/frontend/apps/reader/modules/readerwikipedia.lua +++ b/frontend/apps/reader/modules/readerwikipedia.lua @@ -17,9 +17,18 @@ function ReaderWikipedia:init() end function ReaderWikipedia:onLookupWikipedia(word, box) - -- detect language of the text - local ok, lang = pcall(Translator.detect, Translator, word) - if not ok then return end + -- set language from book properties + local lang = self.view.document:getProps().language + if lang == nil then + -- or set laguage from KOReader settings + lang = G_reader_settings:readSetting("language") + if lang == nil then + -- or detect language + local ok_translator + ok_translator, lang = pcall(Translator.detect, Translator, word) + if not ok_translator then return end + end + end -- convert "zh-CN" and "zh-TW" to "zh" lang = lang:match("(.*)-") or lang -- strip punctuation characters around selected word @@ -28,8 +37,7 @@ function ReaderWikipedia:onLookupWikipedia(word, box) -- seems lower case phrase has higher hit rate word = string.lower(word) local results = {} - local pages - ok, pages = pcall(Wikipedia.wikintro, Wikipedia, word, lang) + local ok, pages = pcall(Wikipedia.wikintro, Wikipedia, word, lang) if ok and pages then for pageid, page in pairs(pages) do local result = {