From 8f0f4a04f541d5d4e48c91728f6464cde1611c91 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sun, 31 Aug 2008 12:42:29 +0000 Subject: * luci/libs: uvl: add i18n support to error handling, remove former debug code in error.string() --- libs/uvl/luasrc/uvl/errors.lua | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'libs') diff --git a/libs/uvl/luasrc/uvl/errors.lua b/libs/uvl/luasrc/uvl/errors.lua index b7afcfb0b..1f6060e4c 100644 --- a/libs/uvl/luasrc/uvl/errors.lua +++ b/libs/uvl/luasrc/uvl/errors.lua @@ -15,8 +15,10 @@ $Id$ ]]-- module( "luci.uvl.errors", package.seeall ) + require("luci.util") + ERRCODES = { { 'UCILOAD', 'Unable to load config "%p": %1' }, @@ -74,6 +76,15 @@ for i, v in ipairs(ERRCODES) do end +function i18n(key, def) + if luci.i18n then + return luci.i18n.translate(key,def) + else + return def + end +end + + error = luci.util.class() function error.__init__(self, code, pso, args) @@ -85,6 +96,7 @@ function error.__init__(self, code, pso, args) self.stype = pso.sref[2] self.package, self.section, self.option, self.value = unpack(pso.cref) self.object = pso + self.value = self.value or ( pso.value and pso:value() ) else pso = ( type(pso) == "table" and pso or { pso } ) @@ -108,7 +120,11 @@ end function error.string(self,pad) pad = pad or " " - local str = ERRCODES[self.code][2] + + local str = i18n( + 'uvl_err_%s' % string.lower(ERRCODES[self.code][1]), + ERRCODES[self.code][2] + ) :gsub("\n", "\n"..pad) :gsub("%%i", self:cid()) :gsub("%%I", self:sid()) @@ -119,7 +135,7 @@ function error.string(self,pad) :gsub("%%v", self.value or '') :gsub("%%t", self.object and self.object:type() or '' ) :gsub("%%T", self.object and self.object:title() or '' ) - :gsub("%%([1-9])", function(n) error(n) return self.args[tonumber(n)] or '' end) + :gsub("%%([1-9])", function(n) return self.args[tonumber(n)] or '' end) :gsub("%%c", function() local s = "" -- cgit v1.2.3