* luci/core: cbi.lua: automatic i18n capabilities; whitespace cleanup

This commit is contained in:
Jo-Philipp Wich 2008-06-01 16:42:33 +00:00
parent 6250394740
commit 47b62843fc

View file

@ -2,7 +2,7 @@
LuCI - Configuration Bind Interface LuCI - Configuration Bind Interface
Description: Description:
Offers an interface for binding confiugration values to certain Offers an interface for binding configuration values to certain
data types. Supports value and range validation and basic dependencies. data types. Supports value and range validation and basic dependencies.
FileId: FileId:
@ -75,6 +75,22 @@ function Node.__init__(self, title, description)
self.template = "cbi/node" self.template = "cbi/node"
end end
-- i18n helper
function Node._i18n(self, config, section, option, title, description)
-- i18n loaded?
if type(luci.i18n) == "table" then
local key = config:gsub("[^%w]+", "")
if section then key = key .. "_" .. section:lower():gsub("[^%w]+", "") end
if option then key = key .. "_" .. option:lower():gsub("[^%w]+", "") end
self.title = title or luci.i18n.translate( key, option or section or config )
self.description = description or luci.i18n.translate( key .. "_desc", "" )
end
end
-- Append child nodes -- Append child nodes
function Node.append(self, obj) function Node.append(self, obj)
table.insert(self.children, obj) table.insert(self.children, obj)
@ -121,6 +137,8 @@ Map = class(Node)
function Map.__init__(self, config, ...) function Map.__init__(self, config, ...)
Node.__init__(self, ...) Node.__init__(self, ...)
Node._i18n(self, config, nil, nil, ...)
self.config = config self.config = config
self.template = "cbi/map" self.template = "cbi/map"
self.uci = luci.model.uci.Session() self.uci = luci.model.uci.Session()
@ -138,9 +156,12 @@ function Map.parse(self, ...)
end end
-- Creates a child section -- Creates a child section
function Map.section(self, class, ...) function Map.section(self, class, section, ...)
if instanceof(class, AbstractSection) then if instanceof(class, AbstractSection) then
local obj = class(self, ...) local obj = class(self, section, ...)
Node._i18n(obj, self.config, section, nil, ...)
self:append(obj) self:append(obj)
return obj return obj
else else
@ -225,9 +246,12 @@ function AbstractSection.__init__(self, map, sectiontype, ...)
end end
-- Appends a new option -- Appends a new option
function AbstractSection.option(self, class, ...) function AbstractSection.option(self, class, option, ...)
if instanceof(class, AbstractValue) then if instanceof(class, AbstractValue) then
local obj = class(self.map, ...) local obj = class(self.map, option, ...)
Node._i18n(obj, self.config, self.section, option, ...)
self:append(obj) self:append(obj)
return obj return obj
else else