a31d126676db49c482ce6ca0149d208d87713734
[project/luci.git] / applications / luci-statistics / luasrc / statistics / i18n.lua
1 module("luci.statistics.i18n", package.seeall)
2
3 require("luci.util")
4 require("luci.i18n")
5
6
7 Instance = luci.util.class()
8
9
10 function Instance.__init__( self, graph )
11         self.i18n  = luci.i18n
12         self.graph = graph
13
14         -- XXX: compat hack
15         self.i18n.load("statistics.en")
16 end
17
18 function Instance._subst( self, str, val )
19         str = str:gsub( "%%H",  self.graph.opts.host or "" )
20         str = str:gsub( "%%pn", val.plugin or "" )
21         str = str:gsub( "%%pi", val.pinst  or "" )
22         str = str:gsub( "%%dt", val.dtype  or "" )
23         str = str:gsub( "%%di", val.dinst  or "" )
24         str = str:gsub( "%%ds", val.dsrc   or "" )
25
26         return str
27 end
28
29 function Instance.title( self, plugin, pinst, dtype, dinst )
30
31         local title = self.i18n.translate(
32                 string.format( "stat_dg_title_%s_%s_%s", plugin, pinst, dtype ),
33                 self.i18n.translate(
34                         string.format( "stat_dg_title_%s_%s", plugin, pinst ),
35                         self.i18n.translate(
36                                 string.format( "stat_dg_title_%s__%s", plugin, dtype ),
37                                 self.i18n.translate(
38                                         string.format( "stat_dg_title_%s", plugin ),
39                                         self.graph:_mkpath( plugin, pinst, dtype )
40                                 )
41                         )
42                 )
43         )
44
45         return self:_subst( title, { 
46                 plugin = plugin,
47                 pinst  = pinst,
48                 dtype  = dtype,
49                 dinst  = dinst
50         } )
51
52 end
53
54 function Instance.label( self, plugin, pinst, dtype, dinst )
55
56         local label = self.i18n.translate(
57                 string.format( "stat_dg_label_%s_%s_%s", plugin, pinst, dtype ),
58                 self.i18n.translate(
59                         string.format( "stat_dg_label_%s_%s", plugin, pinst ),
60                         self.i18n.translate(
61                                 string.format( "stat_dg_label_%s__%s", plugin, dtype ),
62                                 self.i18n.translate(
63                                         string.format( "stat_dg_label_%s", plugin ),
64                                         self.graph:_mkpath( plugin, pinst, dtype )
65                                 )
66                         )
67                 )
68         )
69
70         return self:_subst( label, { 
71                 plugin = plugin,
72                 pinst  = pinst,
73                 dtype  = dtype,
74                 dinst  = dinst
75         } )
76
77 end
78
79 function Instance.ds( self, source )
80
81         local label = self.i18n.translate(
82                 string.format( "stat_ds_%s_%s_%s", source.type, source.instance, source.ds ),
83                 self.i18n.translate(
84                         string.format( "stat_ds_%s_%s", source.type, source.instance ),
85                         self.i18n.translate(
86                                 string.format( "stat_ds_label_%s__%s", source.type, source.ds ),
87                                 self.i18n.translate(
88                                         string.format( "stat_ds_%s", source.type ),
89                                         source.type .. "_" .. source.instance:gsub("[^%w]","_") .. "_" .. source.ds
90                                 )
91                         )
92                 )
93         )
94
95         return self:_subst( label, { 
96                 dtype = source.type,
97                 dinst = source.instance,
98                 dsrc  = source.ds
99         } )
100 end