mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
add language setting menu item
This commit is contained in:
@@ -8,6 +8,7 @@ local Device = require("ui/device")
|
||||
local GestureRange = require("ui/gesturerange")
|
||||
local Geom = require("ui/geometry")
|
||||
local Screen = require("ui/screen")
|
||||
local Language = require("ui/language")
|
||||
local _ = require("gettext")
|
||||
|
||||
local FileManagerMenu = InputContainer:extend{
|
||||
@@ -85,6 +86,7 @@ function FileManagerMenu:setUpdateItemTable()
|
||||
})
|
||||
end
|
||||
})
|
||||
table.insert(self.tab_item_table.main, Language:getLangMenuTable())
|
||||
end
|
||||
|
||||
function FileManagerMenu:onShowMenu()
|
||||
|
||||
53
frontend/ui/language.lua
Normal file
53
frontend/ui/language.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
-- high level wrapper module for gettext
|
||||
|
||||
local UIManager = require("ui/uimanager")
|
||||
local InfoMessage = require("ui/widget/infomessage")
|
||||
local _ = require("gettext")
|
||||
|
||||
Language = {}
|
||||
|
||||
function Language:changeLanguage(lang_po)
|
||||
_.changeLang(lang_po)
|
||||
G_reader_settings:saveSetting("language_po", lang_po)
|
||||
UIManager:show(InfoMessage:new{
|
||||
text = _("Please restart reader for new language setting to take effect."),
|
||||
timeout = 3,
|
||||
})
|
||||
end
|
||||
|
||||
function Language:genLanguageSubItem(lang, lang_po)
|
||||
return {
|
||||
text = lang,
|
||||
callback = function()
|
||||
self:changeLanguage(lang_po)
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
function Language:getLangMenuTable()
|
||||
-- cache menu table
|
||||
if not self.LangMenuTable then
|
||||
self.LangMenuTable = {
|
||||
text = _("Language"),
|
||||
-- NOTE: language with no translation are commented out for now
|
||||
sub_item_table = {
|
||||
self:genLanguageSubItem("English", ""),
|
||||
self:genLanguageSubItem("čeština", "cs_CZ"),
|
||||
self:genLanguageSubItem("Deutsch", "de"),
|
||||
self:genLanguageSubItem("français", "fr"),
|
||||
--self:genLanguageSubItem("magyar", "hu"),
|
||||
self:genLanguageSubItem("Italiano", "it_IT"),
|
||||
self:genLanguageSubItem("język polski", "pl"),
|
||||
self:genLanguageSubItem("Português do Brasil", "pt_BR"),
|
||||
self:genLanguageSubItem("Русский язык", "ru"),
|
||||
--self:genLanguageSubItem("svenska", "sv"),
|
||||
self:genLanguageSubItem("Türkçe", "tr"),
|
||||
--self:genLanguageSubItem("Tiếng Việt", "vi"),
|
||||
self:genLanguageSubItem("简体中文", "zh_CN"),
|
||||
}
|
||||
}
|
||||
end
|
||||
return self.LangMenuTable
|
||||
end
|
||||
|
||||
return Language
|
||||
@@ -9,6 +9,7 @@ local Event = require("ui/event")
|
||||
local Screen = require("ui/screen")
|
||||
local Menu = require("ui/widget/menu")
|
||||
local InfoMessage = require("ui/widget/infomessage")
|
||||
local Language = require("ui/language")
|
||||
local _ = require("gettext")
|
||||
|
||||
local ReaderMenu = InputContainer:new{
|
||||
@@ -66,6 +67,7 @@ function ReaderMenu:setUpdateItemTable()
|
||||
for _, widget in pairs(self.registered_widgets) do
|
||||
widget:addToMainMenu(self.tab_item_table)
|
||||
end
|
||||
|
||||
table.insert(self.tab_item_table.main, {
|
||||
text = _("Help"),
|
||||
callback = function()
|
||||
@@ -82,6 +84,7 @@ function ReaderMenu:setUpdateItemTable()
|
||||
})
|
||||
end
|
||||
})
|
||||
table.insert(self.tab_item_table.main, Language:getLangMenuTable())
|
||||
end
|
||||
|
||||
function ReaderMenu:onShowReaderMenu()
|
||||
|
||||
11
reader.lua
11
reader.lua
@@ -154,13 +154,20 @@ if Device:hasNoKeyboard() then
|
||||
Menu.is_enable_shortcut = false
|
||||
end
|
||||
|
||||
-- set up reader's setting: font
|
||||
-- read some global reader setting here:
|
||||
G_reader_settings = DocSettings:open(".reader")
|
||||
fontmap = G_reader_settings:readSetting("fontmap")
|
||||
-- font
|
||||
local fontmap = G_reader_settings:readSetting("fontmap")
|
||||
if fontmap ~= nil then
|
||||
Font.fontmap = fontmap
|
||||
end
|
||||
-- last file
|
||||
local last_file = G_reader_settings:readSetting("lastfile")
|
||||
-- language
|
||||
local lang_po = G_reader_settings:readSetting("language_po")
|
||||
if lang_po then
|
||||
_.changeLang(lang_po)
|
||||
end
|
||||
|
||||
|
||||
--@TODO we can read version here, refer to commit in master tree: (houqp)
|
||||
|
||||
Reference in New Issue
Block a user