Dictionary on Android

Stardict dictionary files should be copied to
/sdcard/koreader/data/dict/ directory.
pull/1490/head
chrox 9 years ago
parent f8f0d1b1c7
commit 402806d32b

@ -1 +1 @@
Subproject commit 5343da41849231b02d56118c76e727488c967767
Subproject commit db68822f9f1fd2472701b8d0c0677fe531b56333

@ -4,15 +4,23 @@ local InfoMessage = require("ui/widget/infomessage")
local UIManager = require("ui/uimanager")
local Geom = require("ui/geometry")
local Screen = require("device").screen
local Device = require("device")
local JSON = require("json")
local DEBUG = require("dbg")
local _ = require("gettext")
local T = require("ffi/util").template
local ReaderDictionary = InputContainer:new{}
local ReaderDictionary = InputContainer:new{
data_dir = nil,
}
function ReaderDictionary:init()
self.ui.menu:registerToMainMenu(self)
if Device:isAndroid() then
self.data_dir = "/sdcard/koreader/data/dict"
else
self.data_dir = os.getenv("STARDICT_DATA_DIR") or "data/dict"
end
end
function ReaderDictionary:addToMainMenu(tab_item_table)
@ -62,7 +70,8 @@ function ReaderDictionary:stardictLookup(word, box)
word = require("util").stripePunctuations(word)
DEBUG("stripped word:", word)
-- escape quotes and other funny characters in word
local std_out = io.popen("./sdcv --utf8-input --utf8-output -nj "..("%q"):format(word), "r")
local std_out = io.popen("./sdcv --utf8-input --utf8-output -nj "
.. ("%q"):format(word) .. " --data-dir " .. self.data_dir, "r")
local results_str = nil
if std_out then
results_str = std_out:read("*all")

@ -26,6 +26,9 @@ A.LOGI("intent file path " .. (file or ""))
-- run koreader patch before koreader startup
pcall(function() dofile("/sdcard/koreader/patch.lua") end)
-- set proper permission for sdcv
io.popen("chmod 755 ./sdcv")
-- create fake command-line arguments
arg = {"-d", file or "/sdcard"}
dofile(A.dir.."/reader.lua")

@ -1 +1 @@
Subproject commit 4c5c9f967418444d0ac20d775f0ae2a97a33d111
Subproject commit a00e3d1c7f73756a3c3cf45b1828c2b55a903503
Loading…
Cancel
Save