summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-statistics/luasrc/statistics/i18n.lua
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2008-05-28 22:34:26 +0000
committerJo-Philipp Wich <jow@openwrt.org>2008-05-28 22:34:26 +0000
commitb06638df6e776fc380687b06924a77b03055c00e (patch)
tree9474d20d6ea68d2bf3911e60b865c306462eac97 /applications/luci-statistics/luasrc/statistics/i18n.lua
parentaafa5b786d4692fe65bdc2ac8552976d0a3a3a51 (diff)
* luci/statistics: implement initial i18n support, added first translations, removed hardcoded strings from models
Diffstat (limited to 'applications/luci-statistics/luasrc/statistics/i18n.lua')
-rw-r--r--applications/luci-statistics/luasrc/statistics/i18n.lua100
1 files changed, 100 insertions, 0 deletions
diff --git a/applications/luci-statistics/luasrc/statistics/i18n.lua b/applications/luci-statistics/luasrc/statistics/i18n.lua
new file mode 100644
index 0000000000..a31d126676
--- /dev/null
+++ b/applications/luci-statistics/luasrc/statistics/i18n.lua
@@ -0,0 +1,100 @@
+module("luci.statistics.i18n", package.seeall)
+
+require("luci.util")
+require("luci.i18n")
+
+
+Instance = luci.util.class()
+
+
+function Instance.__init__( self, graph )
+ self.i18n = luci.i18n
+ self.graph = graph
+
+ -- XXX: compat hack
+ self.i18n.load("statistics.en")
+end
+
+function Instance._subst( self, str, val )
+ str = str:gsub( "%%H", self.graph.opts.host or "" )
+ str = str:gsub( "%%pn", val.plugin or "" )
+ str = str:gsub( "%%pi", val.pinst or "" )
+ str = str:gsub( "%%dt", val.dtype or "" )
+ str = str:gsub( "%%di", val.dinst or "" )
+ str = str:gsub( "%%ds", val.dsrc or "" )
+
+ return str
+end
+
+function Instance.title( self, plugin, pinst, dtype, dinst )
+
+ local title = self.i18n.translate(
+ string.format( "stat_dg_title_%s_%s_%s", plugin, pinst, dtype ),
+ self.i18n.translate(
+ string.format( "stat_dg_title_%s_%s", plugin, pinst ),
+ self.i18n.translate(
+ string.format( "stat_dg_title_%s__%s", plugin, dtype ),
+ self.i18n.translate(
+ string.format( "stat_dg_title_%s", plugin ),
+ self.graph:_mkpath( plugin, pinst, dtype )
+ )
+ )
+ )
+ )
+
+ return self:_subst( title, {
+ plugin = plugin,
+ pinst = pinst,
+ dtype = dtype,
+ dinst = dinst
+ } )
+
+end
+
+function Instance.label( self, plugin, pinst, dtype, dinst )
+
+ local label = self.i18n.translate(
+ string.format( "stat_dg_label_%s_%s_%s", plugin, pinst, dtype ),
+ self.i18n.translate(
+ string.format( "stat_dg_label_%s_%s", plugin, pinst ),
+ self.i18n.translate(
+ string.format( "stat_dg_label_%s__%s", plugin, dtype ),
+ self.i18n.translate(
+ string.format( "stat_dg_label_%s", plugin ),
+ self.graph:_mkpath( plugin, pinst, dtype )
+ )
+ )
+ )
+ )
+
+ return self:_subst( label, {
+ plugin = plugin,
+ pinst = pinst,
+ dtype = dtype,
+ dinst = dinst
+ } )
+
+end
+
+function Instance.ds( self, source )
+
+ local label = self.i18n.translate(
+ string.format( "stat_ds_%s_%s_%s", source.type, source.instance, source.ds ),
+ self.i18n.translate(
+ string.format( "stat_ds_%s_%s", source.type, source.instance ),
+ self.i18n.translate(
+ string.format( "stat_ds_label_%s__%s", source.type, source.ds ),
+ self.i18n.translate(
+ string.format( "stat_ds_%s", source.type ),
+ source.type .. "_" .. source.instance:gsub("[^%w]","_") .. "_" .. source.ds
+ )
+ )
+ )
+ )
+
+ return self:_subst( label, {
+ dtype = source.type,
+ dinst = source.instance,
+ dsrc = source.ds
+ } )
+end