add language setting menu item

pull/465/head
Qingping Hou 10 years ago
parent 8a204890f0
commit ae1cf90006

@ -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()

@ -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()

@ -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)

Loading…
Cancel
Save