luci-app-nlbwmon: convert to client side JS
authorJo-Philipp Wich <jo@mein.io>
Mon, 20 Apr 2020 15:55:39 +0000 (17:55 +0200)
committerJo-Philipp Wich <jo@mein.io>
Mon, 20 Apr 2020 17:05:27 +0000 (19:05 +0200)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
41 files changed:
applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js [deleted file]
applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js [new file with mode: 0644]
applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js [new file with mode: 0644]
applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js [new file with mode: 0644]
applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua [deleted file]
applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua [deleted file]
applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm [deleted file]
applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm [deleted file]
applications/luci-app-nlbwmon/po/bg/nlbwmon.po
applications/luci-app-nlbwmon/po/ca/nlbwmon.po
applications/luci-app-nlbwmon/po/cs/nlbwmon.po
applications/luci-app-nlbwmon/po/de/nlbwmon.po
applications/luci-app-nlbwmon/po/el/nlbwmon.po
applications/luci-app-nlbwmon/po/en/nlbwmon.po
applications/luci-app-nlbwmon/po/es/nlbwmon.po
applications/luci-app-nlbwmon/po/fr/nlbwmon.po
applications/luci-app-nlbwmon/po/he/nlbwmon.po
applications/luci-app-nlbwmon/po/hi/nlbwmon.po
applications/luci-app-nlbwmon/po/hu/nlbwmon.po
applications/luci-app-nlbwmon/po/it/nlbwmon.po
applications/luci-app-nlbwmon/po/ja/nlbwmon.po
applications/luci-app-nlbwmon/po/ko/nlbwmon.po
applications/luci-app-nlbwmon/po/mr/nlbwmon.po
applications/luci-app-nlbwmon/po/ms/nlbwmon.po
applications/luci-app-nlbwmon/po/nb_NO/nlbwmon.po
applications/luci-app-nlbwmon/po/pl/nlbwmon.po
applications/luci-app-nlbwmon/po/pt/nlbwmon.po
applications/luci-app-nlbwmon/po/pt_BR/nlbwmon.po
applications/luci-app-nlbwmon/po/ro/nlbwmon.po
applications/luci-app-nlbwmon/po/ru/nlbwmon.po
applications/luci-app-nlbwmon/po/sk/nlbwmon.po
applications/luci-app-nlbwmon/po/sv/nlbwmon.po
applications/luci-app-nlbwmon/po/templates/nlbwmon.pot
applications/luci-app-nlbwmon/po/tr/nlbwmon.po
applications/luci-app-nlbwmon/po/uk/nlbwmon.po
applications/luci-app-nlbwmon/po/vi/nlbwmon.po
applications/luci-app-nlbwmon/po/zh_Hans/nlbwmon.po
applications/luci-app-nlbwmon/po/zh_Hant/nlbwmon.po
applications/luci-app-nlbwmon/root/usr/libexec/nlbwmon-action [new file with mode: 0755]
applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json [new file with mode: 0644]
applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json

diff --git a/applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js b/applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js
deleted file mode 100644 (file)
index 8a01b1d..0000000
+++ /dev/null
@@ -1,686 +0,0 @@
-var chartRegistry = {},
-       trafficPeriods = [],
-       trafficData = { columns: [], data: [] },
-       hostNames = {},
-       ouiData = [];
-
-
-function off(elem)
-{
-       var val = [0, 0];
-       do {
-               if (!isNaN(elem.offsetLeft) && !isNaN(elem.offsetTop)) {
-                       val[0] += elem.offsetLeft;
-                       val[1] += elem.offsetTop;
-               }
-       }
-       while ((elem = elem.offsetParent) != null);
-       return val;
-}
-
-Chart.defaults.global.customTooltips = function(tooltip) {
-       var tooltipEl = document.getElementById('chartjs-tooltip');
-
-       if (!tooltipEl) {
-               tooltipEl = document.createElement('div');
-               tooltipEl.setAttribute('id', 'chartjs-tooltip');
-               document.body.appendChild(tooltipEl);
-       }
-
-       if (!tooltip) {
-               if (tooltipEl.row)
-                       tooltipEl.row.style.backgroundColor = '';
-
-               tooltipEl.style.opacity = 0;
-               return;
-       }
-
-       var pos = off(tooltip.chart.canvas);
-
-       tooltipEl.className = tooltip.yAlign;
-       tooltipEl.innerHTML = tooltip.text[0];
-
-       tooltipEl.style.opacity = 1;
-       tooltipEl.style.left = pos[0] + tooltip.x + 'px';
-       tooltipEl.style.top = pos[1] + tooltip.y - tooltip.caretHeight - tooltip.caretPadding + 'px';
-
-       console.debug(tooltip.text);
-
-       var row = findParent(tooltip.text[1], '.tr'),
-           hue = tooltip.text[2];
-
-       if (row && !isNaN(hue)) {
-               row.style.backgroundColor = 'hsl(%u, 100%%, 80%%)'.format(hue);
-               tooltipEl.row = row;
-       }
-};
-
-Chart.defaults.global.tooltipFontSize = 10;
-Chart.defaults.global.tooltipTemplate = function(tip) {
-       tip.label[0] = tip.label[0].format(tip.value);
-       return tip.label;
-};
-
-function kpi(id, val1, val2, val3)
-{
-       var e = L.dom.elem(id) ? id : document.getElementById(id);
-
-       if (val1 && val2 && val3)
-               e.innerHTML = _('%s, %s and %s').format(val1, val2, val3);
-       else if (val1 && val2)
-               e.innerHTML = _('%s and %s').format(val1, val2);
-       else if (val1)
-               e.innerHTML = val1;
-
-       e.parentNode.style.display = val1 ? 'list-item' : '';
-}
-
-function pie(id, data)
-{
-       var total = data.reduce(function(n, d) { return n + d.value }, 0);
-
-       data.sort(function(a, b) { return b.value - a.value });
-
-       if (total === 0)
-               data = [{
-                       value: 1,
-                       color: '#cccccc',
-                       label: [ _('no traffic') ]
-               }];
-
-       for (var i = 0; i < data.length; i++) {
-               if (!data[i].color) {
-                       var hue = 120 / (data.length-1) * i;
-                       data[i].color = 'hsl(%u, 80%%, 50%%)'.format(hue);
-                       data[i].label.push(hue);
-               }
-       }
-
-       var node = L.dom.elem(id) ? id : document.getElementById(id),
-           key = L.dom.elem(id) ? id.id : id,
-           ctx = node.getContext('2d');
-
-       if (chartRegistry.hasOwnProperty(key))
-               chartRegistry[key].destroy();
-
-       chartRegistry[key] = new Chart(ctx).Doughnut(data, {
-               segmentStrokeWidth: 1,
-               percentageInnerCutout: 30
-       });
-
-       return chartRegistry[key];
-}
-
-function query(filter, group, order)
-{
-       var keys = [], columns = {}, records = {}, result = [];
-
-       if (typeof(group) !== 'function' && typeof(group) !== 'object')
-               group = ['mac'];
-
-       for (var i = 0; i < trafficData.columns.length; i++)
-               columns[trafficData.columns[i]] = i;
-
-       for (var i = 0; i < trafficData.data.length; i++) {
-               var record = trafficData.data[i];
-
-               if (typeof(filter) === 'function' && filter(columns, record) !== true)
-                       continue;
-
-               var key;
-
-               if (typeof(group) === 'function') {
-                       key = group(columns, record);
-               }
-               else {
-                       key = [];
-
-                       for (var j = 0; j < group.length; j++)
-                               if (columns.hasOwnProperty(group[j]))
-                                       key.push(record[columns[group[j]]]);
-
-                       key = key.join(',');
-               }
-
-               if (!records.hasOwnProperty(key)) {
-                       var rec = {};
-
-                       for (var col in columns)
-                               rec[col] = record[columns[col]];
-
-                       records[key] = rec;
-                       result.push(rec);
-               }
-               else {
-                       records[key].conns    += record[columns.conns];
-                       records[key].rx_bytes += record[columns.rx_bytes];
-                       records[key].rx_pkts  += record[columns.rx_pkts];
-                       records[key].tx_bytes += record[columns.tx_bytes];
-                       records[key].tx_pkts  += record[columns.tx_pkts];
-               }
-       }
-
-       if (typeof(order) === 'function')
-               result.sort(order);
-
-       return result;
-}
-
-function oui(mac) {
-       var m, l = 0, r = ouiData.length / 3 - 1;
-       var mac1 = parseInt(mac.replace(/[^a-fA-F0-9]/g, ''), 16);
-
-       while (l <= r) {
-               m = l + Math.floor((r - l) / 2);
-
-               var mask = (0xffffffffffff -
-                                       (Math.pow(2, 48 - ouiData[m * 3 + 1]) - 1));
-
-               var mac1_hi = ((mac1 / 0x10000) & (mask / 0x10000)) >>> 0;
-               var mac1_lo = ((mac1 &  0xffff) & (mask &  0xffff)) >>> 0;
-
-               var mac2 = parseInt(ouiData[m * 3], 16);
-               var mac2_hi = (mac2 / 0x10000) >>> 0;
-               var mac2_lo = (mac2 &  0xffff) >>> 0;
-
-               if (mac1_hi === mac2_hi && mac1_lo === mac2_lo)
-                       return ouiData[m * 3 + 2];
-
-               if (mac2_hi > mac1_hi ||
-                       (mac2_hi === mac1_hi && mac2_lo > mac1_lo))
-                       r = m - 1;
-               else
-                       l = m + 1;
-       }
-
-       return null;
-}
-
-
-function fetchData(period)
-{
-       XHR.get(L.url('admin/nlbw/data'), { period: period, group_by: 'family,mac,ip,layer7', order_by: '-rx_bytes,-tx_bytes' }, function(xhr, res) {
-               if (res !== null && typeof(res) === 'object' && typeof(res.columns) === 'object' && typeof(res.data) === 'object')
-                       trafficData = res;
-
-               var addrs = query(null, ['ip'], null);
-               var ipAddrs = [];
-
-               for (var i = 0; i < addrs.length; i++)
-                       if (ipAddrs.indexOf(addrs[i].ip) < 0)
-                               ipAddrs.push(addrs[i].ip);
-
-               renderHostData();
-               renderLayer7Data();
-               renderIPv6Data();
-
-               XHR.get(L.url('admin/nlbw/ptr', ipAddrs.join('/')), null, function(xhr, res) {
-                       if (res !== null && typeof(res) === 'object')
-                               hostNames = res;
-               });
-       });
-}
-
-function renderPeriods()
-{
-       var sel = document.getElementById('nlbw.period');
-
-       for (var e, i = trafficPeriods.length - 1; e = trafficPeriods[i]; i--) {
-               var ymd1 = e.split(/-/);
-               var d1 = new Date(+ymd1[0], +ymd1[1] - 1, +ymd1[2]);
-               var ymd2, d2, pd;
-
-               if (i) {
-                       ymd2 = trafficPeriods[i - 1].split(/-/);
-                       d2 = new Date(+ymd2[0], +ymd2[1] - 1, +ymd2[2]);
-                       d2.setDate(d2.getDate() - 1);
-                       pd = e;
-               }
-               else {
-                       d2 = new Date();
-                       pd = '';
-               }
-
-               var opt = document.createElement('option');
-                   opt.setAttribute('data-duration', (d2.getTime() - d1.getTime()) / 1000);
-                   opt.value = pd;
-                   opt.text = '%04d-%02d-%02d - %04d-%02d-%02d'.format(
-                               d1.getFullYear(), d1.getMonth() + 1, d1.getDate(),
-                               d2.getFullYear(), d2.getMonth() + 1, d2.getDate());
-
-               sel.appendChild(opt);
-       }
-
-       sel.selectedIndex = sel.childNodes.length - 1;
-       sel.style.display = '';
-
-       sel.onchange = function(ev) {
-               L.hideTooltip(ev);
-               fetchData(sel.options[sel.selectedIndex].value);
-       }
-}
-
-function renderHostDetail(tooltip)
-{
-       var key = this.getAttribute('href').substr(1),
-           col = this.getAttribute('data-col'),
-           label = this.getAttribute('data-tooltip');
-
-       var detailData = query(
-               function(c, r) {
-                       return ((r[c.mac] === key || r[c.ip] === key) &&
-                               (r[c.rx_bytes] > 0 || r[c.tx_bytes] > 0));
-               },
-               [col],
-               function(r1, r2) {
-                       return ((r2.rx_bytes + r2.tx_bytes) - (r1.rx_bytes + r1.tx_bytes));
-               }
-       );
-
-       var rxData = [], txData = [];
-
-       L.dom.content(tooltip, [
-               E('div', { 'class': 'head' }, [
-                       E('div', { 'class': 'pie' }, [
-                               E('label', _('Download')),
-                               E('canvas', { 'id': 'bubble-pie1', 'width': 100, 'height': 100 })
-                       ]),
-                       E('div', { 'class': 'pie' }, [
-                               E('label', _('Upload')),
-                               E('canvas', { 'id': 'bubble-pie2', 'width': 100, 'height': 100 })
-                       ]),
-                       E('div', { 'class': 'kpi' }, [
-                               E('ul', [
-                                       E('li', _('Hostname: <big id="bubble-hostname">example.org</big>')),
-                                       E('li', _('Vendor: <big id="bubble-vendor">Example Corp.</big>'))
-                               ])
-                       ])
-               ]),
-               E('div', { 'class': 'table' }, [
-                       E('div', { 'class': 'tr table-titles' }, [
-                               E('div', { 'class': 'th' }, label || col),
-                               E('div', { 'class': 'th' }, _('Conn.')),
-                               E('div', { 'class': 'th' }, _('Down. (Bytes)')),
-                               E('div', { 'class': 'th' }, _('Down. (Pkts.)')),
-                               E('div', { 'class': 'th' }, _('Up. (Bytes)')),
-                               E('div', { 'class': 'th' }, _('Up. (Pkts.)')),
-                       ])
-               ])
-       ]);
-
-       var rows = [];
-
-       for (var i = 0; i < detailData.length; i++) {
-               var rec = detailData[i],
-                   cell = E('div', rec[col] || _('other'));
-
-               rows.push([
-                       cell,
-                       '%1000.2m'.format(rec.conns),
-                       '%1024.2mB'.format(rec.rx_bytes),
-                       '%1000.2mP'.format(rec.rx_pkts),
-                       '%1024.2mB'.format(rec.tx_bytes),
-                       '%1000.2mP'.format(rec.tx_pkts)
-               ]);
-
-               rxData.push({
-                       label: ['%s: %%1024.2mB'.format(rec[col] || _('other')), cell],
-                       value: rec.rx_bytes
-               });
-
-               txData.push({
-                       label: ['%s: %%1024.2mB'.format(rec[col] || _('other')), cell],
-                       value: rec.tx_bytes
-               });
-       }
-
-       cbi_update_table(tooltip.lastElementChild, rows);
-
-       pie(tooltip.querySelector('#bubble-pie1'), rxData);
-       pie(tooltip.querySelector('#bubble-pie2'), txData);
-
-       var mac = key.toUpperCase();
-       var name = hostInfo.hasOwnProperty(mac) ? hostInfo[mac].name : null;
-
-       if (!name)
-               for (var i = 0; i < detailData.length; i++)
-                       if ((name = hostNames[detailData[i].ip]) !== undefined)
-                               break;
-
-       if (mac !== '00:00:00:00:00:00') {
-               kpi(tooltip.querySelector('#bubble-hostname'), name);
-               kpi(tooltip.querySelector('#bubble-vendor'), oui(mac));
-       }
-       else {
-               kpi(tooltip.querySelector('#bubble-hostname'));
-               kpi(tooltip.querySelector('#bubble-vendor'));
-       }
-
-       var rect = this.getBoundingClientRect(), x, y;
-
-       if ('ontouchstart' in window || window.innerWidth <= 992) {
-               var vpHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0),
-                   scrollFrom = window.pageYOffset,
-                   scrollTo = scrollFrom + rect.top - vpHeight * 0.5,
-                   start = null;
-
-               tooltip.style.top = (rect.top + rect.height + window.pageYOffset) + 'px';
-               tooltip.style.left = 0;
-
-               var scrollStep = function(timestamp) {
-                       if (!start)
-                               start = timestamp;
-
-                       var duration = Math.max(timestamp - start, 1);
-                       if (duration < 100) {
-                               document.body.scrollTop = scrollFrom + (scrollTo - scrollFrom) * (duration / 100);
-                               window.requestAnimationFrame(scrollStep);
-                       }
-                       else {
-                               document.body.scrollTop = scrollTo;
-                       }
-               };
-
-               window.requestAnimationFrame(scrollStep);
-       }
-       else {
-               x = rect.left + rect.width + window.pageXOffset,
-           y = rect.top + window.pageYOffset;
-
-               if ((y + tooltip.offsetHeight) > (window.innerHeight + window.pageYOffset))
-                       y -= ((y + tooltip.offsetHeight) - (window.innerHeight + window.pageYOffset));
-
-               tooltip.style.top = y + 'px';
-               tooltip.style.left = x + 'px';
-       }
-
-       return false;
-}
-
-function formatHostname(dns)
-{
-       if (dns === undefined || dns === null || dns === '')
-               return '-';
-
-       dns = dns.split('.')[0];
-
-       if (dns.length > 12)
-               return '<span title="%q">%h…</span>'.format(dns, dns.substr(0, 12));
-
-       return '%h'.format(dns);
-}
-
-function renderHostData()
-{
-       var trafData = [], connData = [];
-       var rx_total = 0, tx_total = 0, conn_total = 0;
-
-       var hostData = query(
-               function(c, r) {
-                       return (r[c.rx_bytes] > 0 || r[c.tx_bytes] > 0);
-               },
-               ['mac'],
-               //function(c, r) {
-               //      return (r[c.mac] !== '00:00:00:00:00:00') ? r[c.mac] : r[c.ip];
-               //},
-               function(r1, r2) {
-                       return ((r2.rx_bytes + r2.tx_bytes) - (r1.rx_bytes + r1.tx_bytes));
-               }
-       );
-
-       var rows = [];
-
-       for (var i = 0; i < hostData.length; i++) {
-               var rec = hostData[i],
-                   mac = rec.mac.toUpperCase(),
-                   key = (mac !== '00:00:00:00:00:00') ? mac : rec.ip,
-                   dns = hostInfo[mac] ? hostInfo[mac].name : null;
-
-               var cell = E('div', formatHostname(dns));
-
-               rows.push([
-                       cell,
-                       E('a', {
-                               'href':         '#' + rec.mac,
-                               'data-col':     'ip',
-                               'data-tooltip': _('Source IP')
-                       }, (mac !== '00:00:00:00:00:00') ? mac : _('other')),
-                       E('a', {
-                               'href':         '#' + rec.mac,
-                               'data-col':     'layer7',
-                               'data-tooltip': _('Protocol')
-                       }, '%1000.2m'.format(rec.conns)),
-                       '%1024.2mB'.format(rec.rx_bytes),
-                       '%1000.2mP'.format(rec.rx_pkts),
-                       '%1024.2mB'.format(rec.tx_bytes),
-                       '%1000.2mP'.format(rec.tx_pkts)
-               ]);
-
-               trafData.push({
-                       value: rec.rx_bytes + rec.tx_bytes,
-                       label: ["%s: %%.2mB".format(key), cell]
-               });
-
-               connData.push({
-                       value: rec.conns,
-                       label: ["%s: %%.2m".format(key), cell]
-               });
-
-               rx_total += rec.rx_bytes;
-               tx_total += rec.tx_bytes;
-               conn_total += rec.conns;
-       }
-
-       cbi_update_table('#host-data', rows, E('em', [
-               _('No data recorded yet.'), ' ',
-               E('a', { 'href': L.url('admin/nlbw/commit') }, _('Force reload…'))
-       ]));
-
-       pie('traf-pie', trafData);
-       pie('conn-pie', connData);
-
-       kpi('rx-total', '%1024.2mB'.format(rx_total));
-       kpi('tx-total', '%1024.2mB'.format(tx_total));
-       kpi('conn-total', '%1000m'.format(conn_total));
-       kpi('host-total', '%u'.format(hostData.length));
-}
-
-function renderLayer7Data()
-{
-       var rxData = [], txData = [];
-       var topConn = [[0],[0],[0]], topRx = [[0],[0],[0]], topTx = [[0],[0],[0]];
-
-       var layer7Data = query(
-               null, ['layer7'],
-               function(r1, r2) {
-                       return ((r2.rx_bytes + r2.tx_bytes) - (r1.rx_bytes + r1.tx_bytes));
-               }
-       );
-
-       var rows = [];
-
-       for (var i = 0, c = 0; i < layer7Data.length; i++) {
-               var rec = layer7Data[i],
-                   cell = E('div', rec.layer7 || _('other'));
-
-               rows.push([
-                       cell,
-                       '%1000m'.format(rec.conns),
-                       '%1024.2mB'.format(rec.rx_bytes),
-                       '%1000.2mP'.format(rec.rx_pkts),
-                       '%1024.2mB'.format(rec.tx_bytes),
-                       '%1000.2mP'.format(rec.tx_pkts)
-               ]);
-
-               rxData.push({
-                       value: rec.rx_bytes,
-                       label: ["%s: %%.2mB".format(rec.layer7 || _('other')), cell]
-               });
-
-               txData.push({
-                       value: rec.tx_bytes,
-                       label: ["%s: %%.2mB".format(rec.layer7 || _('other')), cell]
-               });
-
-               if (rec.layer7) {
-                       topRx.push([rec.rx_bytes, rec.layer7]);
-                       topTx.push([rec.tx_bytes, rec.layer7]);
-                       topConn.push([rec.conns, rec.layer7]);
-               }
-       }
-
-       cbi_update_table('#layer7-data', rows, E('em', [
-               _('No data recorded yet.'), ' ',
-               E('a', { 'href': L.url('admin/nlbw/commit') }, _('Force reload…'))
-       ]));
-
-       pie('layer7-rx-pie', rxData);
-       pie('layer7-tx-pie', txData);
-
-       topRx.sort(function(a, b) { return b[0] - a[0] });
-       topTx.sort(function(a, b) { return b[0] - a[0] });
-       topConn.sort(function(a, b) { return b[0] - a[0] });
-
-       kpi('layer7-total', layer7Data.length);
-       kpi('layer7-most-rx', topRx[0][1], topRx[1][1], topRx[2][1]);
-       kpi('layer7-most-tx', topTx[0][1], topTx[1][1], topTx[2][1]);
-       kpi('layer7-most-conn', topConn[0][1], topConn[1][1], topConn[2][1]);
-}
-
-function renderIPv6Data()
-{
-       var col       = { },
-           rx4_total = 0,
-           tx4_total = 0,
-           rx6_total = 0,
-           tx6_total = 0,
-           v4_total  = 0,
-           v6_total  = 0,
-           ds_total  = 0,
-           families  = { },
-           records   = { };
-
-       ipv6Data = query(
-               null, ['family', 'mac'],
-               function(r1, r2) {
-                       return ((r2.rx_bytes + r2.tx_bytes) - (r1.rx_bytes + r1.tx_bytes));
-               }
-       );
-
-       for (var i = 0, c = 0; i < ipv6Data.length; i++) {
-               var rec = ipv6Data[i],
-                   mac = rec.mac.toUpperCase(),
-                   ip  = rec.ip,
-                   fam = families[mac] || 0,
-                   recs = records[mac] || {};
-
-               if (rec.family == 4) {
-                       rx4_total += rec.rx_bytes;
-                       tx4_total += rec.tx_bytes;
-                       fam |= 1;
-               }
-               else {
-                       rx6_total += rec.rx_bytes;
-                       tx6_total += rec.tx_bytes;
-                       fam |= 2;
-               }
-
-               recs[rec.family] = rec;
-               records[mac] = recs;
-
-               families[mac] = fam;
-       }
-
-       for (var mac in families) {
-               switch (families[mac])
-               {
-               case 3:
-                       ds_total++;
-                       break;
-
-               case 2:
-                       v6_total++;
-                       break;
-
-               case 1:
-                       v4_total++;
-                       break;
-               }
-       }
-
-       var rows = [];
-
-       for (var mac in records) {
-               if (mac === '00:00:00:00:00:00')
-                       continue;
-
-               var dns = hostInfo[mac] ? hostInfo[mac].name : null,
-                   rec4 = records[mac][4],
-                   rec6 = records[mac][6];
-
-               rows.push([
-                       formatHostname(dns),
-                       mac,
-                       [ E('span', _('IPv4')),
-                         E('span', _('IPv6')) ],
-                       [ E('span', rec4 ? '%1024.2mB'.format(rec4.rx_bytes) : '-'),
-                         E('span', rec6 ? '%1024.2mB'.format(rec6.rx_bytes) : '-') ],
-                       [ E('span', rec4 ? '%1000.2mP'.format(rec4.rx_pkts)  : '-'),
-                         E('span', rec6 ? '%1000.2mP'.format(rec6.rx_pkts)  : '-') ],
-                       [ E('span', rec4 ? '%1024.2mB'.format(rec4.tx_bytes) : '-'),
-                         E('span', rec6 ? '%1024.2mB'.format(rec6.tx_bytes) : '-') ],
-                       [ E('span', rec4 ? '%1000.2mP'.format(rec4.tx_pkts)  : '-'),
-                         E('span', rec6 ? '%1000.2mP'.format(rec6.tx_pkts)  : '-') ]
-               ]);
-       }
-
-       cbi_update_table('#ipv6-data', rows, E('em', [
-               _('No data recorded yet.'), ' ',
-               E('a', { 'href': L.url('admin/nlbw/commit') }, _('Force reload…'))
-       ]));
-
-       var shareData = [], hostsData = [];
-
-       if (rx4_total > 0 || tx4_total > 0)
-               shareData.push({
-                       value: rx4_total + tx4_total,
-                       label: ["IPv4: %.2mB"],
-                       color: 'hsl(140, 100%, 50%)'
-               });
-
-       if (rx6_total > 0 || tx6_total > 0)
-               shareData.push({
-                       value: rx6_total + tx6_total,
-                       label: ["IPv6: %.2mB"],
-                       color: 'hsl(180, 100%, 50%)'
-               });
-
-       if (v4_total > 0)
-               hostsData.push({
-                       value: v4_total,
-                       label: [_('%d IPv4-only hosts')],
-                       color: 'hsl(140, 100%, 50%)'
-               });
-
-       if (v6_total > 0)
-               hostsData.push({
-                       value: v6_total,
-                       label: [_('%d IPv6-only hosts')],
-                       color: 'hsl(180, 100%, 50%)'
-               });
-
-       if (ds_total > 0)
-               hostsData.push({
-                       value: ds_total,
-                       label: [_('%d dual-stack hosts')],
-                       color: 'hsl(50, 100%, 50%)'
-               });
-
-       pie('ipv6-share-pie', shareData);
-       pie('ipv6-hosts-pie', hostsData);
-
-       kpi('ipv6-hosts', '%.2f%%'.format(100 / (ds_total + v4_total + v6_total) * (ds_total + v6_total)));
-       kpi('ipv6-share', '%.2f%%'.format(100 / (rx4_total + rx6_total + tx4_total + tx6_total) * (rx6_total + tx6_total)));
-       kpi('ipv6-rx', '%1024.2mB'.format(rx6_total));
-       kpi('ipv6-tx', '%1024.2mB'.format(tx6_total));
-}
diff --git a/applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js b/applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js
new file mode 100644 (file)
index 0000000..c5fcfe5
--- /dev/null
@@ -0,0 +1,70 @@
+'use strict';
+'require view';
+'require ui';
+'require fs';
+
+return view.extend({
+       load: function() {
+               return fs.trimmed('/proc/sys/kernel/hostname');
+       },
+
+       handleArchiveUpload: function(ev) {
+               return ui.uploadFile('/tmp/nlbw-restore.tar.gz').then(function() {
+                       return fs.exec('/usr/libexec/nlbwmon-action', [ 'restore' ]).then(function(res) {
+                               if (res.code != 0)
+                                       throw new Error(res.stderr || res.stdout);
+
+                               var json = JSON.parse(res.stdout || '{}'),
+                                   list = (L.isObject(json) && Array.isArray(json.restored)) ? json.restored : [];
+
+                               ui.showModal(_('Restore complete'), [
+                                       E('p', [ _('The following database files have been restored:') ]),
+                                       E('ul', list.map(function(file) { return E('li', [ file ]) })),
+                                       E('div', { 'class': 'right' }, [
+                                               E('button', { 'click': ui.hideModal }, [ _('Dismiss') ])
+                                       ])
+                               ]);
+                       }).catch(function(err) {
+                               ui.addNotification(null, E('p', [ _('Failed to restore backup archive: %s').format(err.message) ]));
+                       });
+               });
+       },
+
+       handleArchiveDownload: function(hostname, ev) {
+               return fs.exec_direct('/usr/libexec/nlbwmon-action', [ 'backup' ], 'blob').then(function(blob) {
+                       var url = window.URL.createObjectURL(blob),
+                           date = new Date(),
+                           name = 'nlbwmon-backup-%s-%04d-%02d-%02d.tar.gz'.format(hostname, date.getFullYear(), date.getMonth() + 1, date.getDate()),
+                           link = E('a', { 'style': 'display:none', 'href': url, 'download': name });
+
+                       document.body.appendChild(link);
+                       link.click();
+                       document.body.removeChild(link);
+                       window.URL.revokeObjectURL(url);
+               }).catch(function(err) {
+                       ui.addNotification(null, E('p', [ _('Failed to download backup archive: %s').format(err.message) ]));
+               });
+       },
+
+       render: function(hostname) {
+               return E([], [
+                       E('h2', [ _('Netlink Bandwidth Monitor - Backup / Restore') ]),
+                       E('h5', [ _('Restore Database Backup') ]),
+                       E('p', [
+                               E('button', {
+                                       'click': ui.createHandlerFn(this, 'handleArchiveUpload')
+                               }, [ _('Restore') ])
+                       ]),
+                       E('h5', [ _('Download Database Backup') ]),
+                       E('p', [
+                               E('button', {
+                                       'click': ui.createHandlerFn(this, 'handleArchiveDownload', hostname)
+                               }, [ _('Generate Backup') ])
+                       ])
+               ]);
+       },
+
+       handleSave: null,
+       handleSaveApply: null,
+       handleReset: null
+});
diff --git a/applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js b/applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js
new file mode 100644 (file)
index 0000000..cb13eec
--- /dev/null
@@ -0,0 +1,180 @@
+'use strict';
+'require view';
+'require form';
+'require uci';
+'require fs';
+'require validation';
+'require tools.widgets as widgets';
+
+function writePeriod(section_id, value) {
+       var interval = this.map.lookupOption('_interval', section_id)[0],
+           period = this.map.lookupOption('_period', section_id)[0],
+           date = this.map.lookupOption('_date', section_id)[0],
+           days = this.map.lookupOption('_days', section_id)[0];
+
+       if (period.formvalue(section_id) == 'relative') {
+               uci.set('nlbwmon', section_id, 'database_interval', interval.formvalue(section_id));
+       }
+       else {
+               uci.set('nlbwmon', section_id, 'database_interval', '%s/%s'.format(
+                       date.formvalue(section_id),
+                       days.formvalue(section_id)
+               ));
+       }
+}
+
+function writeNetworks(section_id, value) {
+       var oldval = L.toArray(uci.get('nlbwmon', section_id, 'local_network')),
+           subnets = this.map.lookupOption('_subnets', section_id)[0],
+           ifaces = this.map.lookupOption('_ifaces', section_id)[0];
+
+       var newval = [].concat(
+               L.toArray(subnets.formvalue(section_id)),
+               L.toArray(ifaces.formvalue(section_id))
+       );
+
+       if (oldval.length != newval.length || oldval.join(' ') != newval.join(' '))
+               uci.set('nlbwmon', section_id, 'local_network', newval);
+}
+
+function writeProtocols(section_id, value) {
+       return fs.write('/usr/share/nlbwmon/protocols', (value || '').trim().replace(/\r\n/g, '\n') + '\n');
+}
+
+return view.extend({
+       load: function() {
+               return uci.load('nlbwmon');
+       },
+
+       render: function() {
+               var m, s, o;
+
+               m = new form.Map('nlbwmon', _('Netlink Bandwidth Monitor - Configuration'),
+                       _('The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic accounting program keeping track of bandwidth usage per host and protocol.'));
+
+               s = m.section(form.TypedSection, 'nlbwmon');
+               s.anonymous = true;
+               s.addremove = false;
+
+               s.tab('general', _('General Settings'));
+               s.tab('advanced', _('Advanced Settings'));
+               s.tab('protocol', _('Protocol Mapping'), _('Protocol mappings to distinguish traffic types per host, one mapping per line. The first value specifies the IP protocol, the second value the port number and the third column is the name of the mapped protocol.'));
+
+               o = s.taboption('general', form.ListValue, '_period', _('Accounting period'),
+                       _('Choose "Day of month" to restart the accounting period monthly on a specific date, e.g. every 3rd. Choose "Fixed interval" to restart the accounting period exactly every N days, beginning at a given date.'));
+               o.cfgvalue = function(section_id) {
+                       var value = uci.get('nlbwmon', section_id, 'database_interval'),
+                           m = /^[0-9]{4}-[0-9]{2}-[0-9]{2}\/[0-9]+$/.test(value);
+
+                       return m ? 'absolute' : 'relative';
+               };
+               o.write = writePeriod;
+               o.value('relative', _('Day of month'));
+               o.value('absolute', _('Fixed interval'));
+
+               o = s.taboption('general', form.DummyValue, '_warning', _('Warning'));
+               o.default = _('Changing the accounting interval type will invalidate existing databases!<br /><strong><a href="%s">Download backup</a></strong>.').format(L.url('admin/nlbw/backup'));
+               o.rawhtml = true;
+               if (/^[0-9]{4}-[0-9]{2}-[0-9]{2}\/[0-9]+$/.test(uci.get_first('nlbwmon', 'nlbwmon', 'database_interval')))
+                       o.depends('_period', 'relative');
+               else
+                       o.depends('_period', 'absolute');
+
+               o = s.taboption('general', form.Value, '_interval', _('Due date'),
+                       _('Day of month to restart the accounting period. Use negative values to count towards the end of month, e.g. "-5" to specify the 27th of July or the 24th of February.'));
+               o.rmempty = false;
+               o.cfgvalue = function(section_id) {
+                       var value = +uci.get('nlbwmon', section_id, 'database_interval');
+                       return !isNaN(value) ? value.toString() : null;
+               };
+               o.write = writePeriod;
+               o.depends('_period', 'relative');
+               o.value('1', _('1 - Restart every 1st of month'));
+               o.value('-1', _('-1 - Restart every last day of month'));
+               o.value('-7', _('-7 - Restart a week before end of month'));
+
+               o = s.taboption('general', form.Value, '_date', _('Start date'),
+                       _('Start date of the first accounting period, e.g. begin of ISP contract.'));
+               o.rmempty = false;
+               o.cfgvalue = function(section_id) {
+                       var value = uci.get('nlbwmon', section_id, 'database_interval'),
+                           m = /^([0-9]{4}-[0-9]{2}-[0-9]{2})\/[0-9]+$/.exec(value);
+
+                       return m ? m[1] : null;
+               };
+               o.write = writePeriod;
+               o.depends('_period', 'absolute');
+
+               o = s.taboption('general', form.Value, '_days', _('Interval'),
+                       _('Length of accounting interval in days.'));
+               o.rmempty = false;
+               o.cfgvalue = function(section_id) {
+                       var value = uci.get('nlbwmon', section_id, 'database_interval'),
+                           m = /^[0-9]{4}-[0-9]{2}-[0-9]{2}\/([0-9]+)$/.exec(value);
+
+                       return m ? m[1] : null;
+               };
+               o.write = writePeriod;
+               o.depends('_period', 'absolute');
+
+               o = s.taboption('general', widgets.NetworkSelect, '_ifaces', _('Local interfaces'),
+                       _('Only conntrack streams from or to any of these networks are counted.'));
+               o.nocreate = true;
+               o.multiple = true;
+               o.cfgvalue = function(section_id) {
+                       return L.toArray(uci.get('nlbwmon', section_id, 'local_network'));
+               };
+               o.write = writeNetworks;
+
+               o = s.taboption('general', form.DynamicList, '_subnets', _('Local subnets'),
+                       _('Only conntrack streams from or to any of these subnets are counted.'));
+               o.cfgvalue = function(section_id) {
+                       return L.toArray(uci.get('nlbwmon', section_id, 'local_network')).filter(function(addr) {
+                               var m = /^([0-9a-fA-F:.]+)(?:\/[0-9a-fA-F:.]+)?$/.exec(addr);
+                               return m && (validation.parseIPv4(m[1]) || validation.parseIPv6(m[1]));
+                       });
+               };
+               o.write = writeNetworks;
+               o.datatype = 'ipaddr';
+
+
+               o = s.taboption('advanced', form.Value, 'database_limit', _('Maximum entries'),
+                       _('The maximum amount of entries that should be put into the database, setting the limit to 0 will allow databases to grow indefinitely.'));
+
+               o = s.taboption('advanced', form.Flag, 'database_prealloc', _('Preallocate database'),
+                       _('Whether to preallocate the maximum possible database size in memory. This is mainly useful for memory constrained systems which might not be able to satisfy memory allocation after longer uptime periods.'));
+               o.depends({ 'database_limit': '0', '!reverse': 'true' });
+
+               o = s.taboption('advanced', form.Flag, 'database_compress', _('Compress database'),
+                       _('Whether to gzip compress archive databases. Compressing the database files makes accessing old data slightly slower but helps to reduce storage requirements.'));
+
+               o = s.taboption('advanced', form.Value, 'database_generations', _('Stored periods'),
+                       _('Maximum number of accounting periods to keep, use zero to keep databases forever.'));
+
+               o = s.taboption('advanced', form.Value, 'commit_interval', _('Commit interval'),
+                       _('Interval at which the temporary in-memory database is committed to the persistent database directory.'));
+               o.value('24h', _('24h - least flash wear at the expense of data loss risk'));
+               o.value('12h', _('12h - compromise between risk of data loss and flash wear'));
+               o.value('10m', _('10m - frequent commits at the expense of flash wear'));
+               o.value('60s', _('60s - commit minutely, useful for non-flash storage'));
+
+               o = s.taboption('advanced', form.Value, 'refresh_interval', _('Refresh interval'),
+                       _('Interval at which traffic counters of still established connections are refreshed from netlink information.'));
+               o.value('30s', _('30s - refresh twice per minute for reasonably current stats'));
+               o.value('5m', _('5m - rarely refresh to avoid frequently clearing conntrack counters'));
+
+               o = s.taboption('advanced', form.Value, 'database_directory', _('Database directory'),
+                       _('Database storage directory. One file per accounting period will be placed into this directory.'));
+
+
+               o = s.taboption('protocol', form.TextValue, '_protocols');
+               o.rows = 50;
+               o.load = function(section_id) {
+                       return fs.trimmed('/usr/share/nlbwmon/protocols');
+               };
+               o.write = writeProtocols;
+               o.remove = writeProtocols;
+
+               return m.render();
+       }
+});
diff --git a/applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js b/applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js
new file mode 100644 (file)
index 0000000..1bf6687
--- /dev/null
@@ -0,0 +1,980 @@
+'use strict';
+'require view';
+'require network';
+'require request';
+'require fs';
+'require ui';
+'require rpc';
+'require dom';
+
+var callNetworkRrdnsLookup = rpc.declare({
+       object: 'network.rrdns',
+       method: 'lookup',
+       params: [ 'addrs', 'timeout', 'limit' ],
+       expect: { '': {} }
+});
+
+var chartRegistry = {},
+       trafficPeriods = [],
+       trafficData = { columns: [], data: [] },
+       hostNames = {},
+       hostInfo = {},
+       ouiData = [];
+
+return view.extend({
+       load: function() {
+               return Promise.all([
+                       this.loadHosts(),
+                       this.loadPeriods(),
+                       this.loadData(),
+                       this.loadOUI()
+               ]);
+       },
+
+       loadHosts: function() {
+               return L.resolveDefault(network.getHostHints()).then(function(res) {
+                       if (res) {
+                               var hints = res.getMACHints();
+
+                               for (var i = 0; i < hints.length; i++) {
+                                       hostInfo[hints[i][0]] = {
+                                               name: res.getHostnameByMACAddr(hints[i][0]),
+                                               ipv6: res.getIP6AddrByMACAddr(hints[i][0]),
+                                               ipv4: res.getIPAddrByMACAddr(hints[i][0])
+                                       };
+                               }
+                       }
+               });
+       },
+
+       loadOUI: function() {
+               var url = 'https://raw.githubusercontent.com/jow-/oui-database/master/oui.json';
+
+               return L.resolveDefault(request.get(url, { cache: true }), []).then(function(res) {
+                       res = res.json();
+
+                       if (Array.isArray(res))
+                               ouiData = res;
+               });
+       },
+
+       loadPeriods: function() {
+               return L.resolveDefault(fs.exec_direct('/usr/libexec/nlbwmon-action', [ 'periods' ], 'json')).then(function(res) {
+                       if (L.isObject(res) && Array.isArray(res.periods))
+                               trafficPeriods = res.periods;
+               });
+       },
+
+       loadData: function(period) {
+               var args = [ 'download', '-g', 'family,mac,ip,layer7', '-o', '-rx_bytes,-tx_bytes' ];
+
+               if (period)
+                       args.push('-t', period);
+
+               return fs.exec_direct('/usr/libexec/nlbwmon-action', args, 'json').then(L.bind(function(res) {
+                       if (!L.isObject(res) || !Array.isArray(res.columns) || !Array.isArray(res.data))
+                               throw new Error(_('Malformed data received'));
+
+                       trafficData = res;
+
+                       var addrs = this.query(null, [ 'ip' ], null),
+                           ipAddrs = [];
+
+                       for (var i = 0; i < addrs.length; i++)
+                               if (ipAddrs.indexOf(addrs[i].ip) < 0)
+                                       ipAddrs.push(addrs[i].ip);
+
+                       if (ipAddrs.length)
+                               return L.resolveDefault(callNetworkRrdnsLookup(ipAddrs, 1000, 1000), {}).then(function(res) {
+                                       hostNames = res;
+                               });
+               }, this)).catch(function(err) {
+                       ui.addNotification(null, _('Unable to fetch traffic statistic data: %s').format(err.message));
+               });
+       },
+
+       off: function(elem) {
+               var val = [0, 0];
+               do {
+                       if (!isNaN(elem.offsetLeft) && !isNaN(elem.offsetTop)) {
+                               val[0] += elem.offsetLeft;
+                               val[1] += elem.offsetTop;
+                       }
+               }
+               while ((elem = elem.offsetParent) != null);
+               return val;
+       },
+
+       kpi: function(id, val1, val2, val3) {
+               var e = L.dom.elem(id) ? id : document.getElementById(id);
+
+               if (val1 && val2 && val3)
+                       e.innerHTML = _('%s, %s and %s').format(val1, val2, val3);
+               else if (val1 && val2)
+                       e.innerHTML = _('%s and %s').format(val1, val2);
+               else if (val1)
+                       e.innerHTML = val1;
+
+               e.parentNode.style.display = val1 ? 'list-item' : '';
+       },
+
+       pie: function(id, data) {
+               var total = data.reduce(function(n, d) { return n + d.value }, 0);
+
+               data.sort(function(a, b) { return b.value - a.value });
+
+               if (total === 0)
+                       data = [{
+                               value: 1,
+                               color: '#cccccc',
+                               label: [ _('no traffic') ]
+                       }];
+
+               for (var i = 0; i < data.length; i++) {
+                       if (!data[i].color) {
+                               var hue = 120 / (data.length-1) * i;
+                               data[i].color = 'hsl(%u, 80%%, 50%%)'.format(hue);
+                               data[i].label.push(hue);
+                       }
+               }
+
+               var node = L.dom.elem(id) ? id : document.getElementById(id),
+                   key = L.dom.elem(id) ? id.id : id,
+                   ctx = node.getContext('2d');
+
+               if (chartRegistry.hasOwnProperty(key))
+                       chartRegistry[key].destroy();
+
+               chartRegistry[key] = new Chart(ctx).Doughnut(data, {
+                       segmentStrokeWidth: 1,
+                       percentageInnerCutout: 30
+               });
+
+               return chartRegistry[key];
+       },
+
+       oui: function(mac) {
+               var m, l = 0, r = ouiData.length / 3 - 1;
+               var mac1 = parseInt(mac.replace(/[^a-fA-F0-9]/g, ''), 16);
+
+               while (l <= r) {
+                       m = l + Math.floor((r - l) / 2);
+
+                       var mask = (0xffffffffffff -
+                                               (Math.pow(2, 48 - ouiData[m * 3 + 1]) - 1));
+
+                       var mac1_hi = ((mac1 / 0x10000) & (mask / 0x10000)) >>> 0;
+                       var mac1_lo = ((mac1 &  0xffff) & (mask &  0xffff)) >>> 0;
+
+                       var mac2 = parseInt(ouiData[m * 3], 16);
+                       var mac2_hi = (mac2 / 0x10000) >>> 0;
+                       var mac2_lo = (mac2 &  0xffff) >>> 0;
+
+                       if (mac1_hi === mac2_hi && mac1_lo === mac2_lo)
+                               return ouiData[m * 3 + 2];
+
+                       if (mac2_hi > mac1_hi ||
+                               (mac2_hi === mac1_hi && mac2_lo > mac1_lo))
+                               r = m - 1;
+                       else
+                               l = m + 1;
+               }
+
+               return null;
+       },
+
+       query: function(filter, group, order) {
+               var keys = [], columns = {}, records = {}, result = [];
+
+               if (typeof(group) !== 'function' && typeof(group) !== 'object')
+                       group = ['mac'];
+
+               for (var i = 0; i < trafficData.columns.length; i++)
+                       columns[trafficData.columns[i]] = i;
+
+               for (var i = 0; i < trafficData.data.length; i++) {
+                       var record = trafficData.data[i];
+
+                       if (typeof(filter) === 'function' && filter(columns, record) !== true)
+                               continue;
+
+                       var key;
+
+                       if (typeof(group) === 'function') {
+                               key = group(columns, record);
+                       }
+                       else {
+                               key = [];
+
+                               for (var j = 0; j < group.length; j++)
+                                       if (columns.hasOwnProperty(group[j]))
+                                               key.push(record[columns[group[j]]]);
+
+                               key = key.join(',');
+                       }
+
+                       if (!records.hasOwnProperty(key)) {
+                               var rec = {};
+
+                               for (var col in columns)
+                                       rec[col] = record[columns[col]];
+
+                               records[key] = rec;
+                               result.push(rec);
+                       }
+                       else {
+                               records[key].conns    += record[columns.conns];
+                               records[key].rx_bytes += record[columns.rx_bytes];
+                               records[key].rx_pkts  += record[columns.rx_pkts];
+                               records[key].tx_bytes += record[columns.tx_bytes];
+                               records[key].tx_pkts  += record[columns.tx_pkts];
+                       }
+               }
+
+               if (typeof(order) === 'function')
+                       result.sort(order);
+
+               return result;
+       },
+
+       renderPeriods: function() {
+               if (!trafficPeriods.length)
+                       return E([]);
+
+               var choices = {},
+                   keys = [];
+
+               for (var e, i = trafficPeriods.length - 1; e = trafficPeriods[i]; i--) {
+                       var ymd1 = e.split(/-/);
+                       var d1 = new Date(+ymd1[0], +ymd1[1] - 1, +ymd1[2]);
+                       var ymd2, d2, pd;
+
+                       if (i) {
+                               ymd2 = trafficPeriods[i - 1].split(/-/);
+                               d2 = new Date(+ymd2[0], +ymd2[1] - 1, +ymd2[2]);
+                               d2.setDate(d2.getDate() - 1);
+                               pd = e;
+                       }
+                       else {
+                               d2 = new Date();
+                               pd = '-';
+                       }
+
+                       keys.push(pd);
+                       choices[pd] = '%04d-%02d-%02d - %04d-%02d-%02d'.format(
+                               d1.getFullYear(), d1.getMonth() + 1, d1.getDate(),
+                               d2.getFullYear(), d2.getMonth() + 1, d2.getDate()
+                       );
+               }
+
+               var dropdown = new ui.Dropdown('-', choices, { sort: keys, optional: false }).render();
+
+               dropdown.addEventListener('cbi-dropdown-change', ui.createHandlerFn(this, function(ev) {
+                       ui.hideTooltip(ev);
+
+                       var period = ev.detail.value.value != '-' ? ev.detail.value.value : null;
+
+                       return this.loadData(period).then(L.bind(function() {
+                               this.renderHostData();
+                               this.renderLayer7Data();
+                               this.renderIPv6Data();
+                       }, this));
+               }));
+
+               return E([], [
+                       E('p', [ _('Select accounting period:'), ' ', dropdown ]),
+                       E('hr')
+               ]);
+       },
+
+       formatHostname: function(dns) {
+               if (dns === undefined || dns === null || dns === '')
+                       return '-';
+
+               dns = dns.split('.')[0];
+
+               if (dns.length > 12)
+                       return '<span title="%q">%h…</span>'.format(dns, dns.substr(0, 12));
+
+               return '%h'.format(dns);
+       },
+
+       renderHostData: function() {
+               var trafData = [], connData = [];
+               var rx_total = 0, tx_total = 0, conn_total = 0;
+
+               var hostData = this.query(
+                       function(c, r) {
+                               return (r[c.rx_bytes] > 0 || r[c.tx_bytes] > 0);
+                       },
+                       ['mac'],
+                       //function(c, r) {
+                       //      return (r[c.mac] !== '00:00:00:00:00:00') ? r[c.mac] : r[c.ip];
+                       //},
+                       function(r1, r2) {
+                               return ((r2.rx_bytes + r2.tx_bytes) - (r1.rx_bytes + r1.tx_bytes));
+                       }
+               );
+
+               var rows = [];
+
+               for (var i = 0; i < hostData.length; i++) {
+                       var rec = hostData[i],
+                           mac = rec.mac.toUpperCase(),
+                           key = (mac !== '00:00:00:00:00:00') ? mac : rec.ip,
+                           dns = hostInfo[mac] ? hostInfo[mac].name : null;
+
+                       var cell = E('div', this.formatHostname(dns));
+
+                       rows.push([
+                               cell,
+                               E('a', {
+                                       'href':         '#' + rec.mac,
+                                       'data-col':     'ip',
+                                       'data-tooltip': _('Source IP')
+                               }, (mac !== '00:00:00:00:00:00') ? mac : _('other')),
+                               E('a', {
+                                       'href':         '#' + rec.mac,
+                                       'data-col':     'layer7',
+                                       'data-tooltip': _('Protocol')
+                               }, '%1000.2m'.format(rec.conns)),
+                               '%1024.2mB'.format(rec.rx_bytes),
+                               '%1000.2mP'.format(rec.rx_pkts),
+                               '%1024.2mB'.format(rec.tx_bytes),
+                               '%1000.2mP'.format(rec.tx_pkts)
+                       ]);
+
+                       trafData.push({
+                               value: rec.rx_bytes + rec.tx_bytes,
+                               label: ["%s: %%.2mB".format(key), cell]
+                       });
+
+                       connData.push({
+                               value: rec.conns,
+                               label: ["%s: %%.2m".format(key), cell]
+                       });
+
+                       rx_total += rec.rx_bytes;
+                       tx_total += rec.tx_bytes;
+                       conn_total += rec.conns;
+               }
+
+               cbi_update_table('#host-data', rows, E('em', [
+                       _('No data recorded yet.'), ' ',
+                       E('a', {
+                               'href': '#',
+                               'click': ui.createHandlerFn(this, 'handleCommit')
+                       }, _('Force reload…'))
+               ]));
+
+               this.pie('traf-pie', trafData);
+               this.pie('conn-pie', connData);
+
+               this.kpi('rx-total', '%1024.2mB'.format(rx_total));
+               this.kpi('tx-total', '%1024.2mB'.format(tx_total));
+               this.kpi('conn-total', '%1000m'.format(conn_total));
+               this.kpi('host-total', '%u'.format(hostData.length));
+       },
+
+       renderLayer7Data: function() {
+               var rxData = [], txData = [];
+               var topConn = [[0],[0],[0]], topRx = [[0],[0],[0]], topTx = [[0],[0],[0]];
+
+               var layer7Data = this.query(
+                       null, ['layer7'],
+                       function(r1, r2) {
+                               return ((r2.rx_bytes + r2.tx_bytes) - (r1.rx_bytes + r1.tx_bytes));
+                       }
+               );
+
+               var rows = [];
+
+               for (var i = 0, c = 0; i < layer7Data.length; i++) {
+                       var rec = layer7Data[i],
+                           cell = E('div', rec.layer7 || _('other'));
+
+                       rows.push([
+                               cell,
+                               '%1000m'.format(rec.conns),
+                               '%1024.2mB'.format(rec.rx_bytes),
+                               '%1000.2mP'.format(rec.rx_pkts),
+                               '%1024.2mB'.format(rec.tx_bytes),
+                               '%1000.2mP'.format(rec.tx_pkts)
+                       ]);
+
+                       rxData.push({
+                               value: rec.rx_bytes,
+                               label: ["%s: %%.2mB".format(rec.layer7 || _('other')), cell]
+                       });
+
+                       txData.push({
+                               value: rec.tx_bytes,
+                               label: ["%s: %%.2mB".format(rec.layer7 || _('other')), cell]
+                       });
+
+                       if (rec.layer7) {
+                               topRx.push([rec.rx_bytes, rec.layer7]);
+                               topTx.push([rec.tx_bytes, rec.layer7]);
+                               topConn.push([rec.conns, rec.layer7]);
+                       }
+               }
+
+               cbi_update_table('#layer7-data', rows, E('em', [
+                       _('No data recorded yet.'), ' ',
+                       E('a', { 'href': L.url('admin/nlbw/commit') }, _('Force reload…'))
+               ]));
+
+               this.pie('layer7-rx-pie', rxData);
+               this.pie('layer7-tx-pie', txData);
+
+               topRx.sort(function(a, b) { return b[0] - a[0] });
+               topTx.sort(function(a, b) { return b[0] - a[0] });
+               topConn.sort(function(a, b) { return b[0] - a[0] });
+
+               this.kpi('layer7-total', layer7Data.length);
+               this.kpi('layer7-most-rx', topRx[0][1], topRx[1][1], topRx[2][1]);
+               this.kpi('layer7-most-tx', topTx[0][1], topTx[1][1], topTx[2][1]);
+               this.kpi('layer7-most-conn', topConn[0][1], topConn[1][1], topConn[2][1]);
+       },
+
+       renderIPv6Data: function() {
+               var col       = { },
+                   rx4_total = 0,
+                   tx4_total = 0,
+                   rx6_total = 0,
+                   tx6_total = 0,
+                   v4_total  = 0,
+                   v6_total  = 0,
+                   ds_total  = 0,
+                   families  = { },
+                   records   = { };
+
+               var ipv6Data = this.query(
+                       null, ['family', 'mac'],
+                       function(r1, r2) {
+                               return ((r2.rx_bytes + r2.tx_bytes) - (r1.rx_bytes + r1.tx_bytes));
+                       }
+               );
+
+               for (var i = 0, c = 0; i < ipv6Data.length; i++) {
+                       var rec = ipv6Data[i],
+                           mac = rec.mac.toUpperCase(),
+                           ip  = rec.ip,
+                           fam = families[mac] || 0,
+                           recs = records[mac] || {};
+
+                       if (rec.family == 4) {
+                               rx4_total += rec.rx_bytes;
+                               tx4_total += rec.tx_bytes;
+                               fam |= 1;
+                       }
+                       else {
+                               rx6_total += rec.rx_bytes;
+                               tx6_total += rec.tx_bytes;
+                               fam |= 2;
+                       }
+
+                       recs[rec.family] = rec;
+                       records[mac] = recs;
+
+                       families[mac] = fam;
+               }
+
+               for (var mac in families) {
+                       switch (families[mac])
+                       {
+                       case 3:
+                               ds_total++;
+                               break;
+
+                       case 2:
+                               v6_total++;
+                               break;
+
+                       case 1:
+                               v4_total++;
+                               break;
+                       }
+               }
+
+               var rows = [];
+
+               for (var mac in records) {
+                       if (mac === '00:00:00:00:00:00')
+                               continue;
+
+                       var dns = hostInfo[mac] ? hostInfo[mac].name : null,
+                           rec4 = records[mac][4],
+                           rec6 = records[mac][6];
+
+                       rows.push([
+                               this.formatHostname(dns),
+                               mac,
+                               [ E('span', _('IPv4')),
+                                 E('span', _('IPv6')) ],
+                               [ E('span', rec4 ? '%1024.2mB'.format(rec4.rx_bytes) : '-'),
+                                 E('span', rec6 ? '%1024.2mB'.format(rec6.rx_bytes) : '-') ],
+                               [ E('span', rec4 ? '%1000.2mP'.format(rec4.rx_pkts)  : '-'),
+                                 E('span', rec6 ? '%1000.2mP'.format(rec6.rx_pkts)  : '-') ],
+                               [ E('span', rec4 ? '%1024.2mB'.format(rec4.tx_bytes) : '-'),
+                                 E('span', rec6 ? '%1024.2mB'.format(rec6.tx_bytes) : '-') ],
+                               [ E('span', rec4 ? '%1000.2mP'.format(rec4.tx_pkts)  : '-'),
+                                 E('span', rec6 ? '%1000.2mP'.format(rec6.tx_pkts)  : '-') ]
+                       ]);
+               }
+
+               cbi_update_table('#ipv6-data', rows, E('em', [
+                       _('No data recorded yet.'), ' ',
+                       E('a', { 'href': L.url('admin/nlbw/commit') }, _('Force reload…'))
+               ]));
+
+               var shareData = [], hostsData = [];
+
+               if (rx4_total > 0 || tx4_total > 0)
+                       shareData.push({
+                               value: rx4_total + tx4_total,
+                               label: ["IPv4: %.2mB"],
+                               color: 'hsl(140, 100%, 50%)'
+                       });
+
+               if (rx6_total > 0 || tx6_total > 0)
+                       shareData.push({
+                               value: rx6_total + tx6_total,
+                               label: ["IPv6: %.2mB"],
+                               color: 'hsl(180, 100%, 50%)'
+                       });
+
+               if (v4_total > 0)
+                       hostsData.push({
+                               value: v4_total,
+                               label: [_('%d IPv4-only hosts')],
+                               color: 'hsl(140, 100%, 50%)'
+                       });
+
+               if (v6_total > 0)
+                       hostsData.push({
+                               value: v6_total,
+                               label: [_('%d IPv6-only hosts')],
+                               color: 'hsl(180, 100%, 50%)'
+                       });
+
+               if (ds_total > 0)
+                       hostsData.push({
+                               value: ds_total,
+                               label: [_('%d dual-stack hosts')],
+                               color: 'hsl(50, 100%, 50%)'
+                       });
+
+               this.pie('ipv6-share-pie', shareData);
+               this.pie('ipv6-hosts-pie', hostsData);
+
+               this.kpi('ipv6-hosts', '%.2f%%'.format(100 / (ds_total + v4_total + v6_total) * (ds_total + v6_total)));
+               this.kpi('ipv6-share', '%.2f%%'.format(100 / (rx4_total + rx6_total + tx4_total + tx6_total) * (rx6_total + tx6_total)));
+               this.kpi('ipv6-rx', '%1024.2mB'.format(rx6_total));
+               this.kpi('ipv6-tx', '%1024.2mB'.format(tx6_total));
+       },
+
+       renderHostDetail: function(node, tooltip) {
+               var key = node.getAttribute('href').substr(1),
+                   col = node.getAttribute('data-col'),
+                   label = node.getAttribute('data-tooltip');
+
+               var detailData = this.query(
+                       function(c, r) {
+                               return ((r[c.mac] === key || r[c.ip] === key) &&
+                                       (r[c.rx_bytes] > 0 || r[c.tx_bytes] > 0));
+                       },
+                       [col],
+                       function(r1, r2) {
+                               return ((r2.rx_bytes + r2.tx_bytes) - (r1.rx_bytes + r1.tx_bytes));
+                       }
+               );
+
+               var rxData = [], txData = [];
+
+               dom.content(tooltip, [
+                       E('div', { 'class': 'head' }, [
+                               E('div', { 'class': 'pie' }, [
+                                       E('label', _('Download')),
+                                       E('canvas', { 'id': 'bubble-pie1', 'width': 100, 'height': 100 })
+                               ]),
+                               E('div', { 'class': 'pie' }, [
+                                       E('label', _('Upload')),
+                                       E('canvas', { 'id': 'bubble-pie2', 'width': 100, 'height': 100 })
+                               ]),
+                               E('div', { 'class': 'kpi' }, [
+                                       E('ul', [
+                                               E('li', _('Hostname: <big id="bubble-hostname">example.org</big>')),
+                                               E('li', _('Vendor: <big id="bubble-vendor">Example Corp.</big>'))
+                                       ])
+                               ])
+                       ]),
+                       E('div', { 'class': 'table' }, [
+                               E('div', { 'class': 'tr table-titles' }, [
+                                       E('div', { 'class': 'th' }, label || col),
+                                       E('div', { 'class': 'th' }, _('Conn.')),
+                                       E('div', { 'class': 'th' }, _('Down. (Bytes)')),
+                                       E('div', { 'class': 'th' }, _('Down. (Pkts.)')),
+                                       E('div', { 'class': 'th' }, _('Up. (Bytes)')),
+                                       E('div', { 'class': 'th' }, _('Up. (Pkts.)')),
+                               ])
+                       ])
+               ]);
+
+               var rows = [];
+
+               for (var i = 0; i < detailData.length; i++) {
+                       var rec = detailData[i],
+                           cell = E('div', rec[col] || _('other'));
+
+                       rows.push([
+                               cell,
+                               '%1000.2m'.format(rec.conns),
+                               '%1024.2mB'.format(rec.rx_bytes),
+                               '%1000.2mP'.format(rec.rx_pkts),
+                               '%1024.2mB'.format(rec.tx_bytes),
+                               '%1000.2mP'.format(rec.tx_pkts)
+                       ]);
+
+                       rxData.push({
+                               label: ['%s: %%1024.2mB'.format(rec[col] || _('other')), cell],
+                               value: rec.rx_bytes
+                       });
+
+                       txData.push({
+                               label: ['%s: %%1024.2mB'.format(rec[col] || _('other')), cell],
+                               value: rec.tx_bytes
+                       });
+               }
+
+               cbi_update_table(tooltip.lastElementChild, rows);
+
+               this.pie(tooltip.querySelector('#bubble-pie1'), rxData);
+               this.pie(tooltip.querySelector('#bubble-pie2'), txData);
+
+               var mac = key.toUpperCase();
+               var name = hostInfo.hasOwnProperty(mac) ? hostInfo[mac].name : null;
+
+               if (!name)
+                       for (var i = 0; i < detailData.length; i++)
+                               if ((name = hostNames[detailData[i].ip]) !== undefined)
+                                       break;
+
+               if (mac !== '00:00:00:00:00:00') {
+                       this.kpi(tooltip.querySelector('#bubble-hostname'), name);
+                       this.kpi(tooltip.querySelector('#bubble-vendor'), this.oui(mac));
+               }
+               else {
+                       this.kpi(tooltip.querySelector('#bubble-hostname'));
+                       this.kpi(tooltip.querySelector('#bubble-vendor'));
+               }
+
+               var rect = node.getBoundingClientRect(), x, y;
+
+               if ('ontouchstart' in window || window.innerWidth <= 992) {
+                       var vpHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0),
+                           scrollFrom = window.pageYOffset,
+                           scrollTo = scrollFrom + rect.top - vpHeight * 0.5,
+                           start = null;
+
+                       tooltip.style.top = (rect.top + rect.height + window.pageYOffset) + 'px';
+                       tooltip.style.left = 0;
+
+                       var scrollStep = function(timestamp) {
+                               if (!start)
+                                       start = timestamp;
+
+                               var duration = Math.max(timestamp - start, 1);
+                               if (duration < 100) {
+                                       document.body.scrollTop = scrollFrom + (scrollTo - scrollFrom) * (duration / 100);
+                                       window.requestAnimationFrame(scrollStep);
+                               }
+                               else {
+                                       document.body.scrollTop = scrollTo;
+                               }
+                       };
+
+                       window.requestAnimationFrame(scrollStep);
+               }
+               else {
+                       x = rect.left + rect.width + window.pageXOffset,
+                   y = rect.top + window.pageYOffset;
+
+                       if ((y + tooltip.offsetHeight) > (window.innerHeight + window.pageYOffset))
+                               y -= ((y + tooltip.offsetHeight) - (window.innerHeight + window.pageYOffset));
+
+                       tooltip.style.top = y + 'px';
+                       tooltip.style.left = x + 'px';
+               }
+
+               return false;
+       },
+
+       setupCharts: function() {
+               Chart.defaults.global.customTooltips = L.bind(function(tooltip) {
+                       var tooltipEl = document.getElementById('chartjs-tooltip');
+
+                       if (!tooltipEl) {
+                               tooltipEl = document.createElement('div');
+                               tooltipEl.setAttribute('id', 'chartjs-tooltip');
+                               document.body.appendChild(tooltipEl);
+                       }
+
+                       if (!tooltip) {
+                               if (tooltipEl.row)
+                                       tooltipEl.row.style.backgroundColor = '';
+
+                               tooltipEl.style.opacity = 0;
+                               return;
+                       }
+
+                       var pos = this.off(tooltip.chart.canvas);
+
+                       tooltipEl.className = tooltip.yAlign;
+                       tooltipEl.innerHTML = tooltip.text[0];
+
+                       tooltipEl.style.opacity = 1;
+                       tooltipEl.style.left = pos[0] + tooltip.x + 'px';
+                       tooltipEl.style.top = pos[1] + tooltip.y - tooltip.caretHeight - tooltip.caretPadding + 'px';
+
+                       var row = findParent(tooltip.text[1], '.tr'),
+                           hue = tooltip.text[2];
+
+                       if (row && !isNaN(hue)) {
+                               row.style.backgroundColor = 'hsl(%u, 100%%, 80%%)'.format(hue);
+                               tooltipEl.row = row;
+                       }
+               }, this);
+
+               Chart.defaults.global.tooltipFontSize = 10;
+               Chart.defaults.global.tooltipTemplate = function(tip) {
+                       tip.label[0] = tip.label[0].format(tip.value);
+                       return tip.label;
+               };
+
+               this.renderHostData();
+               this.renderLayer7Data();
+               this.renderIPv6Data();
+       },
+
+       handleDownload: function(type, group, order) {
+               var args = [ 'download', '-f', type ];
+
+               if (group)
+                       args.push('-g', group);
+
+               if (order)
+                       args.push('-o', order);
+
+               return fs.exec_direct('/usr/libexec/nlbwmon-action', args, 'blob').then(function(blob) {
+                       var data = blob.slice(0, blob.size, (type == 'csv') ? 'text/csv' : 'application/json'),
+                           name = 'nlbwmon-data.%s'.format(type),
+                           url = window.URL.createObjectURL(data),
+                           link = E('a', { 'style': 'display:none', 'href': url, 'download': name });
+
+                       document.body.appendChild(link);
+                       link.click();
+                       document.body.removeChild(link);
+                       window.URL.revokeObjectURL(url);
+               }).catch(function(err) {
+                       ui.addNotification(null, E('p', [ _('Failed to download traffic data: %s').format(err.message) ]));
+               });
+       },
+
+       handleCommit: function() {
+               return fs.exec('/usr/libexec/nlbwmon-action', [ 'commit' ]).then(function(res) {
+                       if (res.code != 0)
+                               throw new Error(res.stderr || res.stdout);
+
+                       window.location.reload(true);
+               }).catch(function(err) {
+                       ui.addNotification(null, E('p', [ _('Failed to commit database: %s').format(err.message) ]));
+               });
+       },
+
+       render: function() {
+               document.addEventListener('tooltip-open', L.bind(function(ev) {
+                       this.renderHostDetail(ev.detail.target, ev.target);
+               }, this));
+
+               if ('ontouchstart' in window) {
+                       document.addEventListener('touchstart', function(ev) {
+                               var tooltip = document.querySelector('.cbi-tooltip');
+                               if (tooltip === ev.target || tooltip.contains(ev.target))
+                                       return;
+
+                               ui.hideTooltip(ev);
+                       });
+               }
+
+               var node = E([], [
+                       E('link', { 'rel': 'stylesheet', 'href': L.resource('view/nlbw.css') }),
+                       E('script', {
+                               'type': 'text/javascript',
+                               'src': L.resource('nlbw.chart.min.js'),
+                               'load': L.bind(this.setupCharts, this)
+                       }),
+
+                       E('h2', [ _('Netlink Bandwidth Monitor') ]),
+                       this.renderPeriods(),
+
+                       E('div', [
+                               E('div', { 'class': 'cbi-section', 'data-tab': 'traffic', 'data-tab-title': _('Traffic Distribution') }, [
+                                       E('div', { 'class': 'head' }, [
+                                               E('div', { 'class': 'pie' }, [
+                                                       E('label', [ _('Traffic / Host') ]),
+                                                       E('canvas', { 'id': 'traf-pie', 'width': 200, 'height': 200 })
+                                               ]),
+
+                                               E('div', { 'class': 'pie' }, [
+                                                       E('label', [ _('Connections / Host') ]),
+                                                       E('canvas', { 'id': 'conn-pie', 'width': 200, 'height': 200 })
+                                               ]),
+
+                                               E('div', { 'class': 'kpi' }, [
+                                                       E('ul', [
+                                                               E('li', _('<big id="host-total">0</big> hosts')),
+                                                               E('li', _('<big id="rx-total">0</big> download')),
+                                                               E('li', _('<big id="tx-total">0</big> upload')),
+                                                               E('li', _('<big id="conn-total">0</big> connections'))
+                                                       ])
+                                               ])
+                                       ]),
+
+                                       E('div', { 'class': 'table', 'id': 'host-data' }, [
+                                               E('div', { 'class': 'tr table-titles' }, [
+                                                       E('div', { 'class': 'th left hostname' }, [ _('Host') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('MAC') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('Connections') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('Download (Bytes)') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('Download (Packets)') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('Upload (Bytes)') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('Upload (Packets)') ]),
+                                               ]),
+                                               E('div', { 'class': 'tr placeholder' }, [
+                                                       E('div', { 'class': 'td' }, [
+                                                               E('em', { 'class': 'spinning' }, [ _('Collecting data...') ])
+                                                       ])
+                                               ])
+                                       ])
+                               ]),
+
+                               E('div', { 'class': 'cbi-section', 'data-tab': 'layer7', 'data-tab-title': _('Application Protocols') }, [
+                                       E('div', { 'class': 'head' }, [
+                                               E('div', { 'class': 'pie' }, [
+                                                       E('label', [ _('Download / Application') ]),
+                                                       E('canvas', { 'id': 'layer7-rx-pie', 'width': 200, 'height': 200 })
+                                               ]),
+
+                                               E('div', { 'class': 'pie' }, [
+                                                       E('label', [ _('Upload / Application') ]),
+                                                       E('canvas', { 'id': 'layer7-tx-pie', 'width': 200, 'height': 200 })
+                                               ]),
+
+                                               E('div', { 'class': 'kpi' }, [
+                                                       E('ul', [
+                                                               E('li', _('<big id="layer7-total">0</big> different application protocols')),
+                                                               E('li', _('<big id="layer7-most-rx">0</big> cause the most download')),
+                                                               E('li', _('<big id="layer7-most-tx">0</big> cause the most upload')),
+                                                               E('li', _('<big id="layer7-most-conn">0</big> cause the most connections'))
+                                                       ])
+                                               ])
+                                       ]),
+
+                                       E('div', { 'class': 'table', 'id': 'layer7-data' }, [
+                                               E('div', { 'class': 'tr table-titles' }, [
+                                                       E('div', { 'class': 'th left' }, [ _('Application') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('Connections') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('Download (Bytes)') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('Download (Packets)') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('Upload (Bytes)') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('Upload (Packets)') ]),
+                                               ]),
+                                               E('div', { 'class': 'tr placeholder' }, [
+                                                       E('div', { 'class': 'td' }, [
+                                                               E('em', { 'class': 'spinning' }, [ _('Collecting data...') ])
+                                                       ])
+                                               ])
+                                       ])
+                               ]),
+
+                               E('div', { 'class': 'cbi-section', 'data-tab': 'ipv6', 'data-tab-title': _('IPv6') }, [
+                                       E('div', { 'class': 'head' }, [
+                                               E('div', { 'class': 'pie' }, [
+                                                       E('label', [ _('IPv4 vs. IPv6') ]),
+                                                       E('canvas', { 'id': 'ipv6-share-pie', 'width': 200, 'height': 200 })
+                                               ]),
+
+                                               E('div', { 'class': 'pie' }, [
+                                                       E('label', [ _('Dualstack enabled hosts') ]),
+                                                       E('canvas', { 'id': 'ipv6-hosts-pie', 'width': 200, 'height': 200 })
+                                               ]),
+
+                                               E('div', { 'class': 'kpi' }, [
+                                                       E('ul', [
+                                                               E('li', _('<big id="ipv6-hosts">0%</big> IPv6 support rate among hosts')),
+                                                               E('li', _('<big id="ipv6-share">0%</big> of the total traffic is IPv6')),
+                                                               E('li', _('<big id="ipv6-rx">0B</big> total IPv6 download')),
+                                                               E('li', _('<big id="ipv6-tx">0B</big> total IPv6 upload'))
+                                                       ])
+                                               ])
+                                       ]),
+
+                                       E('div', { 'class': 'table', 'id': 'ipv6-data' }, [
+                                               E('div', { 'class': 'tr table-titles' }, [
+                                                       E('div', { 'class': 'th left' }, [ _('Host') ]),
+                                                       E('div', { 'class': 'th right' }, [ _('MAC') ]),
+                                                       E('div', { 'class': 'th double right hide-xs' }, [ _('Family') ]),
+                                                       E('div', { 'class': 'th double right' }, [ _('Download (Bytes)') ]),
+                                                       E('div', { 'class': 'th double right' }, [ _('Download (Packets)') ]),
+                                                       E('div', { 'class': 'th double right' }, [ _('Upload (Bytes)') ]),
+                                                       E('div', { 'class': 'th double right' }, [ _('Upload (Packets)') ]),
+                                               ]),
+                                               E('div', { 'class': 'tr placeholder' }, [
+                                                       E('div', { 'class': 'td' }, [
+                                                               E('em', { 'class': 'spinning' }, [ _('Collecting data...') ])
+                                                       ])
+                                               ])
+                                       ])
+                               ]),
+
+                               E('div', { 'class': 'cbi-section', 'data-tab': 'export', 'data-tab-title': _('Export') }, [
+                                       E('ul', [
+                                               E('li', [
+                                                       E('a', {
+                                                               'href': '#',
+                                                               'click': ui.createHandlerFn(this, 'handleDownload', 'csv', 'mac', '-rx,-tx')
+                                                       }, [ _('CSV, grouped by MAC') ])
+                                               ]),
+                                               E('li', [
+                                                       E('a', {
+                                                               'href': '#',
+                                                               'click': ui.createHandlerFn(this, 'handleDownload', 'csv', 'ip', '-rx,-tx')
+                                                       }, [ _('CSV, grouped by IP') ])
+                                               ]),
+                                               E('li', [
+                                                       E('a', {
+                                                               'href': '#',
+                                                               'click': ui.createHandlerFn(this, 'handleDownload', 'csv', 'layer7', '-rx,-tx')
+                                                       }, [ _('CSV, grouped by protocol') ])
+                                               ]),
+                                               E('li', [
+                                                       E('a', {
+                                                               'href': '#',
+                                                               'click': ui.createHandlerFn(this, 'handleDownload', 'json', null, null)
+                                                       }, [ _('JSON dump') ])
+                                               ])
+                                       ])
+                               ])
+                       ])
+               ]);
+
+               ui.tabs.initTabGroup(node.lastElementChild.childNodes);
+
+               return node;
+       },
+
+       handleSave: null,
+       handleSaveApply: null,
+       handleReset: null
+});
diff --git a/applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua b/applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua
deleted file mode 100644 (file)
index 2b6490d..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
--- Copyright 2017 Jo-Philipp Wich <jo@mein.io>
--- Licensed to the public under the Apache License 2.0.
-
-module("luci.controller.nlbw", package.seeall)
-
-function index()
-       entry({"admin", "nlbw"}, firstchild(), _("Bandwidth Monitor"), 80).acl_depends = { "luci-app-nlbwmon" }
-       entry({"admin", "nlbw", "display"}, template("nlbw/display"), _("Display"), 1)
-       entry({"admin", "nlbw", "config"}, cbi("nlbw/config"), _("Configuration"), 2)
-       entry({"admin", "nlbw", "backup"}, template("nlbw/backup"), _("Backup"), 3)
-       entry({"admin", "nlbw", "data"}, call("action_data"), nil, 4)
-       entry({"admin", "nlbw", "list"}, call("action_list"), nil, 5)
-       entry({"admin", "nlbw", "ptr"}, call("action_ptr"), nil, 6).leaf = true
-       entry({"admin", "nlbw", "download"}, call("action_download"), nil, 7)
-       entry({"admin", "nlbw", "restore"}, post("action_restore"), nil, 8)
-       entry({"admin", "nlbw", "commit"}, call("action_commit"), nil, 9)
-end
-
-local function exec(cmd, args, writer)
-       local os = require "os"
-       local nixio = require "nixio"
-
-       local fdi, fdo = nixio.pipe()
-       local pid = nixio.fork()
-
-       if pid > 0 then
-               fdo:close()
-
-               while true do
-                       local buffer = fdi:read(2048)
-
-                       if not buffer or #buffer == 0 then
-                               break
-                       end
-
-                       if writer then
-                               writer(buffer)
-                       end
-               end
-
-               nixio.waitpid(pid)
-       elseif pid == 0 then
-               nixio.dup(fdo, nixio.stdout)
-               fdi:close()
-               fdo:close()
-               nixio.exece(cmd, args, nil)
-               nixio.stdout:close()
-               os.exit(1)
-       end
-end
-
-function action_data()
-       local http = require "luci.http"
-
-       local types = {
-               csv = "text/csv",
-               json = "application/json"
-       }
-
-       local args = { }
-       local mtype = http.formvalue("type") or "json"
-       local delim = http.formvalue("delim") or ","
-       local period = http.formvalue("period")
-       local group_by = http.formvalue("group_by")
-       local order_by = http.formvalue("order_by")
-
-       if types[mtype] then
-               args[#args+1] = "-c"
-               args[#args+1] = mtype
-       else
-               http.status(400, "Unsupported type")
-               return
-       end
-
-       if delim and #delim > 0 then
-               args[#args+1] = "-s%s" % delim
-       end
-
-       if period and #period > 0 then
-               args[#args+1] = "-t"
-               args[#args+1] = period
-       end
-
-       if group_by and #group_by > 0 then
-               args[#args+1] = "-g"
-               args[#args+1] = group_by
-       end
-
-       if order_by and #order_by > 0 then
-               args[#args+1] = "-o"
-               args[#args+1] = order_by
-       end
-
-       http.prepare_content(types[mtype])
-       http.header("Content-Disposition", "attachment; filename=\"data.%s\"" % mtype)
-       exec("/usr/sbin/nlbw", args, http.write)
-end
-
-function action_list()
-       local http = require "luci.http"
-
-       local fd = io.popen("/usr/sbin/nlbw -c list")
-       local periods = { }
-
-       if fd then
-               while true do
-                       local period = fd:read("*l")
-
-                       if not period then
-                               break
-                       end
-
-                       periods[#periods+1] = period
-               end
-
-               fd:close()
-       end
-
-       http.prepare_content("application/json")
-       http.write_json(periods)
-end
-
-function action_ptr(...)
-       local http = require "luci.http"
-       local util = require "luci.util"
-
-       http.prepare_content("application/json")
-       http.write_json(util.ubus("network.rrdns", "lookup", {
-               addrs = {...}, timeout = 3000
-       }))
-end
-
-function action_download()
-       local nixio = require "nixio"
-       local http = require "luci.http"
-       local sys = require "luci.sys"
-       local uci = require "luci.model.uci".cursor()
-
-       local dir = uci:get_first("nlbwmon", "nlbwmon", "database_directory")
-               or "/var/lib/nlbwmon"
-
-       if dir and nixio.fs.stat(dir, "type") == "dir" then
-               local n = "nlbwmon-backup-%s-%s.tar.gz"
-                       %{ sys.hostname(), os.date("%Y-%m-%d") }
-
-               http.prepare_content("application/octet-stream")
-               http.header("Content-Disposition", "attachment; filename=\"%s\"" % n)
-               exec("/bin/tar", { "-C", dir, "-c", "-z", ".", "-f", "-" }, http.write)
-       else
-               http.status(500, "Unable to find database directory")
-       end
-end
-
-function action_restore()
-       local nixio = require "nixio"
-       local http = require "luci.http"
-       local i18n = require "luci.i18n"
-       local tpl = require "luci.template"
-       local uci = require "luci.model.uci".cursor()
-
-       local tmp = "/tmp/nlbw-restore.tar.gz"
-       local dir = uci:get_first("nlbwmon", "nlbwmon", "database_directory")
-               or "/var/lib/nlbwmon"
-
-       local fp
-       http.setfilehandler(
-               function(meta, chunk, eof)
-                       if not fp and meta and meta.name == "archive" then
-                               fp = io.open(tmp, "w")
-                       end
-                       if fp and chunk then
-                               fp:write(chunk)
-                       end
-                       if fp and eof then
-                               fp:close()
-                       end
-               end)
-
-       local files = { }
-       local tar = io.popen("/bin/tar -tzf %s" % tmp, "r")
-       if tar then
-               while true do
-                       local file = tar:read("*l")
-                       if not file then
-                               break
-                       elseif file:match("^%d%d%d%d%d%d%d%d%.db%.gz$") or
-                              file:match("^%./%d%d%d%d%d%d%d%d%.db%.gz$") then
-                               files[#files+1] = file
-                       end
-               end
-               tar:close()
-       end
-
-       if #files == 0 then
-               http.status(500, "Internal Server Error")
-               tpl.render("nlbw/backup", {
-                       message = i18n.translate("Invalid or empty backup archive")
-               })
-               return
-       end
-
-
-       local output = { }
-
-       exec("/etc/init.d/nlbwmon", { "stop" })
-       exec("/bin/mkdir", { "-p", dir })
-
-       exec("/bin/tar", { "-C", dir, "-vxzf", tmp, unpack(files) },
-               function(chunk) output[#output+1] = chunk:match("%S+") end)
-
-       exec("/bin/rm", { "-f", tmp })
-       exec("/etc/init.d/nlbwmon", { "start" })
-
-       tpl.render("nlbw/backup", {
-               message = i18n.translatef(
-                       "The following database files have been restored: %s",
-                       table.concat(output, ", "))
-       })
-end
-
-function action_commit()
-       local http = require "luci.http"
-       local disp = require "luci.dispatcher"
-
-       http.redirect(disp.build_url("admin/nlbw/display"))
-       exec("/usr/sbin/nlbw", { "-c", "commit" })
-end
diff --git a/applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua b/applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua
deleted file mode 100644 (file)
index 8c54b43..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
--- Copyright 2017 Jo-Philipp Wich <jo@mein.io>
--- Licensed to the public under the Apache License 2.0.
-
-local utl = require "luci.util"
-local sys = require "luci.sys"
-local fs  = require "nixio.fs"
-local ip  = require "luci.ip"
-local nw  = require "luci.model.network"
-
-local s, m, period, warning, date, days, interval, ifaces, subnets, limit, prealloc, compress, generations, commit, refresh, directory, protocols
-
-m = Map("nlbwmon", translate("Netlink Bandwidth Monitor - Configuration"),
-       translate("The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic accounting program keeping track of bandwidth usage per host and protocol."))
-
-nw.init(luci.model.uci.cursor_state())
-
-s = m:section(TypedSection, "nlbwmon")
-s.anonymous = true
-s.addremove = false
-s:tab("general", translate("General Settings"))
-s:tab("advanced", translate("Advanced Settings"))
-s:tab("protocol", translate("Protocol Mapping"),
-       translate("Protocol mappings to distinguish traffic types per host, one mapping per line. The first value specifies the IP protocol, the second value the port number and the third column is the name of the mapped protocol."))
-
-period = s:taboption("general", ListValue, "_period", translate("Accounting period"),
-       translate("Choose \"Day of month\" to restart the accounting period monthly on a specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the accounting period exactly every N days, beginning at a given date."))
-
-period:value("relative", translate("Day of month"))
-period:value("absolute", translate("Fixed interval"))
-
-period.write = function(self, cfg, val)
-       if period:formvalue(cfg) == "relative" then
-               m:set(cfg, "database_interval", interval:formvalue(cfg))
-       else
-               m:set(cfg, "database_interval", "%s/%s" %{
-                       date:formvalue(cfg),
-                       days:formvalue(cfg)
-               })
-       end
-end
-
-period.cfgvalue = function(self, cfg)
-       local val = m:get(cfg, "database_interval") or ""
-       if val:match("^%d%d%d%d%-%d%d%-%d%d/%d+$") then
-               return "absolute"
-       end
-       return "relative"
-end
-
-
-warning = s:taboption("general", DummyValue, "_warning", translate("Warning"))
-warning.default = translatef("Changing the accounting interval type will invalidate existing databases!<br /><strong><a href=\"%s\">Download backup</a></strong>.", luci.dispatcher.build_url("admin/nlbw/backup"))
-warning.rawhtml = true
-
-if (m.uci:get_first("nlbwmon", "nlbwmon", "database_interval") or ""):match("^%d%d%d%d-%d%d-%d%d/%d+$") then
-       warning:depends("_period", "relative")
-else
-       warning:depends("_period", "absolute")
-end
-
-
-interval = s:taboption("general", Value, "_interval", translate("Due date"),
-       translate("Day of month to restart the accounting period. Use negative values to count towards the end of month, e.g. \"-5\" to specify the 27th of July or the 24th of February."))
-
-interval.datatype = "or(range(1,31),range(-31,-1))"
-interval.placeholder = "1"
-interval:value("1", translate("1 - Restart every 1st of month"))
-interval:value("-1", translate("-1 - Restart every last day of month"))
-interval:value("-7", translate("-7 - Restart a week before end of month"))
-interval.rmempty = false
-interval:depends("_period", "relative")
-interval.write = period.write
-
-interval.cfgvalue = function(self, cfg)
-       local val = tonumber(m:get(cfg, "database_interval"))
-       return val and tostring(val)
-end
-
-
-date = s:taboption("general", Value, "_date", translate("Start date"),
-       translate("Start date of the first accounting period, e.g. begin of ISP contract."))
-
-date.datatype = "dateyyyymmdd"
-date.placeholder = "2016-03-15"
-date.rmempty = false
-date:depends("_period", "absolute")
-date.write = period.write
-
-date.cfgvalue = function(self, cfg)
-       local val = m:get(cfg, "database_interval") or ""
-       return (val:match("^(%d%d%d%d%-%d%d%-%d%d)/%d+$"))
-end
-
-
-days = s:taboption("general", Value, "_days", translate("Interval"),
-       translate("Length of accounting interval in days."))
-
-days.datatype = "min(1)"
-days.placeholder = "30"
-days.rmempty = false
-days:depends("_period", "absolute")
-days.write = period.write
-
-days.cfgvalue = function(self, cfg)
-       local val = m:get(cfg, "database_interval") or ""
-       return (val:match("^%d%d%d%d%-%d%d%-%d%d/(%d+)$"))
-end
-
-
-ifaces = s:taboption("general", Value, "_ifaces", translate("Local interfaces"),
-       translate("Only conntrack streams from or to any of these networks are counted."))
-
-ifaces.template = "cbi/network_netlist"
-ifaces.widget = "checkbox"
-ifaces.nocreate = true
-
-ifaces.cfgvalue = function(self, cfg)
-       return m:get(cfg, "local_network")
-end
-
-ifaces.write = function(self, cfg)
-       local item
-       local items = {}
-       for item in utl.imatch(subnets:formvalue(cfg)) do
-               items[#items+1] = item
-       end
-       for item in utl.imatch(ifaces:formvalue(cfg)) do
-               items[#items+1] = item
-       end
-       m:set(cfg, "local_network", items)
-end
-
-
-subnets = s:taboption("general", DynamicList, "_subnets", translate("Local subnets"),
-       translate("Only conntrack streams from or to any of these subnets are counted."))
-
-subnets.datatype = "ipaddr"
-
-subnets.cfgvalue = function(self, cfg)
-       local subnet
-       local subnets = {}
-       for subnet in utl.imatch(m:get(cfg, "local_network")) do
-               subnet = ip.new(subnet)
-               subnets[#subnets+1] = subnet and subnet:string()
-       end
-       return subnets
-end
-
-subnets.write = ifaces.write
-
-
-limit = s:taboption("advanced", Value, "database_limit", translate("Maximum entries"),
-       translate("The maximum amount of entries that should be put into the database, setting the limit to 0 will allow databases to grow indefinitely."))
-
-limit.datatype = "uinteger"
-limit.placeholder = "10000"
-
-prealloc = s:taboption("advanced", Flag, "database_prealloc", translate("Preallocate database"),
-       translate("Whether to preallocate the maximum possible database size in memory. This is mainly useful for memory constrained systems which might not be able to satisfy memory allocation after longer uptime periods."))
-
-prealloc:depends({["database_limit"] = "0", ["!reverse"] = true })
-
-
-compress = s:taboption("advanced", Flag, "database_compress", translate("Compress database"),
-       translate("Whether to gzip compress archive databases. Compressing the database files makes accessing old data slightly slower but helps to reduce storage requirements."))
-
-compress.default = compress.enabled
-
-
-generations = s:taboption("advanced", Value, "database_generations", translate("Stored periods"),
-       translate("Maximum number of accounting periods to keep, use zero to keep databases forever."))
-
-generations.datatype = "uinteger"
-generations.placeholder = "10"
-
-
-commit = s:taboption("advanced", Value, "commit_interval", translate("Commit interval"),
-       translate("Interval at which the temporary in-memory database is committed to the persistent database directory."))
-
-commit.placeholder = "24h"
-commit:value("24h", translate("24h - least flash wear at the expense of data loss risk"))
-commit:value("12h", translate("12h - compromise between risk of data loss and flash wear"))
-commit:value("10m", translate("10m - frequent commits at the expense of flash wear"))
-commit:value("60s", translate("60s - commit minutely, useful for non-flash storage"))
-
-
-refresh = s:taboption("advanced", Value, "refresh_interval", translate("Refresh interval"),
-       translate("Interval at which traffic counters of still established connections are refreshed from netlink information."))
-
-refresh.placeholder = "30s"
-refresh:value("30s", translate("30s - refresh twice per minute for reasonably current stats"))
-refresh:value("5m", translate("5m - rarely refresh to avoid frequently clearing conntrack counters"))
-
-
-directory = s:taboption("advanced", Value, "database_directory", translate("Database directory"),
-       translate("Database storage directory. One file per accounting period will be placed into this directory."))
-
-directory.placeholder = "/var/lib/nlbwmon"
-
-
-protocols = s:taboption("protocol", TextValue, "_protocols")
-protocols.rows = 50
-
-protocols.cfgvalue = function(self, cfg)
-       return fs.readfile("/usr/share/nlbwmon/protocols")
-end
-
-protocols.write = function(self, cfg, value)
-       fs.writefile("/usr/share/nlbwmon/protocols", (value or ""):gsub("\r\n", "\n"))
-end
-
-protocols.remove = protocols.write
-
-
-return m
diff --git a/applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm b/applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm
deleted file mode 100644 (file)
index 8a35f97..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<%#
- Copyright 2017 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-
-<h2 name="content"><%:Netlink Bandwidth Monitor - Backup / Restore %></h2>
-
-<fieldset class="cbi-section">
-       <legend><%:Restore Database Backup%></legend>
-       <p>
-               <form method="POST" action="<%=url("admin/nlbw/restore")%>" enctype="multipart/form-data">
-                       <input type="hidden" name="token" value="<%=token%>" />
-                       <input type="file" name="archive" accept="application/gzip,.gz" />
-                       <input type="submit" value="<%:Restore%>" class="cbi-button cbi-button-apply" />
-               </form>
-
-               <% if message then %>
-                       <div class="alert-message"><%=message%></div>
-               <% end %>
-       </p>
-
-       <legend><%:Download Database Backup%></legend>
-       <p>
-               <form method="GET" action="<%=url("admin/nlbw/download")%>">
-                       <input type="submit" value="<%:Generate Backup%>" class="cbi-button cbi-button-link" />
-               </form>
-       </p>
-</fieldset>
-
-<%+footer%>
diff --git a/applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm b/applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm
deleted file mode 100644 (file)
index 3c7af92..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-<%#
- Copyright 2017-2018 Jo-Philipp Wich <jo@mein.io>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<link rel="stylesheet" href="<%=resource%>/view/nlbw.css" />
-
-<script type="text/javascript" src="<%=resource%>/nlbw.chart.min.js"></script>
-<script type="text/javascript" src="<%=resource%>/view/nlbw.js"></script>
-
-<h2 name="content"><%:Netlink Bandwidth Monitor%></h2>
-
-<p>
-       <%:Select accounting period:%>
-       <select id="nlbw.period" style="display:none"></select>
-</p>
-
-<hr />
-
-<div>
-       <div class="cbi-section" data-tab="traffic" data-tab-title="<%:Traffic Distribution%>">
-               <div class="head">
-                       <div class="pie">
-                               <label><%:Traffic / Host%></label>
-                               <canvas id="traf-pie" width="200" height="200"></canvas>
-                       </div>
-
-                       <div class="pie">
-                               <label><%:Connections / Host%></label>
-                               <canvas id="conn-pie" width="200" height="200"></canvas>
-                       </div>
-
-                       <div class="kpi">
-                               <ul>
-                                       <li><%_<big id="host-total">0</big> hosts%></li>
-                                       <li><%_<big id="rx-total">0</big> download%></li>
-                                       <li><%_<big id="tx-total">0</big> upload%></li>
-                                       <li><%_<big id="conn-total">0</big> connections%></li>
-                               </ul>
-                       </div>
-               </div>
-               <div class="table" id="host-data">
-                       <div class="tr table-titles">
-                               <div class="th left hostname"><%:Host%></div>
-                               <div class="th right"><%:MAC%></div>
-                               <div class="th right"><%:Connections%></div>
-                               <div class="th right"><%:Download (Bytes)%></div>
-                               <div class="th right"><%:Download (Packets)%></div>
-                               <div class="th right"><%:Upload (Bytes)%></div>
-                               <div class="th right"><%:Upload (Packets)%></div>
-                       </div>
-                       <div class="tr placeholder">
-                               <div class="td">
-                                       <em class="spinning"><%:Collecting data...%></em>
-                               </div>
-                       </div>
-               </div>
-       </div>
-
-       <div class="cbi-section" data-tab="layer7" data-tab-title="<%:Application Protocols%>">
-               <div class="head">
-                       <div class="pie">
-                               <label><%:Download / Application%></label>
-                               <canvas id="layer7-rx-pie" width="200" height="200"></canvas>
-                       </div>
-
-                       <div class="pie">
-                               <label><%:Upload / Application%></label>
-                               <canvas id="layer7-tx-pie" width="200" height="200"></canvas>
-                       </div>
-
-                       <div class="kpi">
-                               <ul>
-                                       <li><%_<big id="layer7-total">0</big> different application protocols%></li>
-                                       <li><%_<big id="layer7-most-rx">0</big> cause the most download%></li>
-                                       <li><%_<big id="layer7-most-tx">0</big> cause the most upload%></li>
-                                       <li><%_<big id="layer7-most-conn">0</big> cause the most connections%></li>
-                               </ul>
-                       </div>
-               </div>
-               <div class="table" id="layer7-data">
-                       <div class="tr table-titles">
-                               <div class="th left"><%:Application%></div>
-                               <div class="th right"><%:Connections%></div>
-                               <div class="th right"><%:Download (Bytes)%></div>
-                               <div class="th right"><%:Download (Packets)%></div>
-                               <div class="th right"><%:Upload (Bytes)%></div>
-                               <div class="th right"><%:Upload (Packets)%></div>
-                       </div>
-                       <div class="tr placeholder">
-                               <div class="td">
-                                       <em class="spinning"><%:Collecting data...%></em>
-                               </div>
-                       </div>
-               </div>
-       </div>
-
-       <div class="cbi-section" data-tab="ipv6" data-tab-title="<%:IPv6%>">
-               <div class="head">
-                       <div class="pie">
-                               <label><%:IPv4 vs. IPv6%></label>
-                               <canvas id="ipv6-share-pie" width="200" height="200"></canvas>
-                       </div>
-
-                       <div class="pie">
-                               <label><%:Dualstack enabled hosts%></label>
-                               <canvas id="ipv6-hosts-pie" width="200" height="200"></canvas>
-                       </div>
-
-                       <div class="kpi">
-                               <ul>
-                                       <li><%_<big id="ipv6-hosts">0%</big> IPv6 support rate among hosts%></li>
-                                       <li><%_<big id="ipv6-share">0%</big> of the total traffic is IPv6%></li>
-                                       <li><%_<big id="ipv6-rx">0B</big> total IPv6 download%></li>
-                                       <li><%_<big id="ipv6-tx">0B</big> total IPv6 upload%></li>
-                               </ul>
-                       </div>
-               </div>
-               <div class="table" id="ipv6-data">
-                       <div class="tr table-titles">
-                               <div class="th left"><%:Host%></div>
-                               <div class="th right"><%:MAC%></div>
-                               <div class="th double right hide-xs"><%:Family%></div>
-                               <div class="th double right"><%:Download (Bytes)%></div>
-                               <div class="th double right"><%:Download (Packets)%></div>
-                               <div class="th double right"><%:Upload (Bytes)%></div>
-                               <div class="th double right"><%:Upload (Packets)%></div>
-                       </div>
-                       <div class="tr placeholder">
-                               <div class="td">
-                                       <em class="spinning"><%:Collecting data...%></em>
-                               </div>
-                       </div>
-               </div>
-       </div>
-
-       <div class="cbi-section" data-tab="export" data-tab-title="<%:Export%>">
-               <ul>
-                       <li><a href="<%=url('admin/nlbw/data')%>?type=csv&#38;group_by=mac&#38;order_by=-rx,-tx"><%:CSV, grouped by MAC%></a></li>
-                       <li><a href="<%=url('admin/nlbw/data')%>?type=csv&#38;group_by=ip&#38;order_by=-rx,-tx"><%:CSV, grouped by IP%></a></li>
-                       <li><a href="<%=url('admin/nlbw/data')%>?type=csv&#38;group_by=layer7&#38;order_by=-rx,-tx"><%:CSV, grouped by protocol%></a></li>
-                       <li><a href="<%=url('admin/nlbw/data')%>?type=json"><%:JSON dump%></a></li>
-               </ul>
-       </div>
-</div>
-
-<script type="text/javascript">//<![CDATA[
-       var hostInfo = <%=luci.util.serialize_json(luci.sys.net.host_hints())%>;
-
-       XHR.get(L.url('admin/nlbw/list'), null, function(xhr, res) {
-
-               if (res !== null && typeof(res) === 'object' && res.length > 0) {
-                       trafficPeriods = res;
-                       renderPeriods();
-               }
-
-               xhr.open('GET', 'https://raw.githubusercontent.com/jow-/oui-database/master/oui.json', true);
-               xhr.onreadystatechange = function() {
-                       if (xhr.readyState === 4) {
-                               try { res = JSON.parse(xhr.responseText); }
-                               catch(e) { res = null; }
-
-                               if (res !== null && typeof(res) === 'object' && (res.length % 3) === 0)
-                                       ouiData = res;
-
-                               fetchData('');
-                       }
-               };
-               xhr.send(null);
-       });
-
-       document.addEventListener('tooltip-open', function(ev) {
-               renderHostDetail.call(ev.detail.target, ev.target);
-       });
-
-       if ('ontouchstart' in window) {
-               document.addEventListener('touchstart', function(ev) {
-                       var tooltip = document.querySelector('.cbi-tooltip');
-                       if (tooltip === ev.target || tooltip.contains(ev.target))
-                               return;
-
-                       L.hideTooltip(ev);
-               });
-       }
-//]]></script>
-
-<%+footer%>
index b47f122101e61f0a098240cad83b611b31d9076c..5dd5616da081aaf11d9c054fd1f22d537542e501 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 4942b91d872a85b92873aa63c744a54422c1e4d5..541811862a049a2bc5e7672c6b2a3aa10f65fb49 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.0-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "S’estan recollint dades…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Configuració"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Amfitrió"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 8a0e917594b388781bd40c2f7f14748baf07bf4b..ad4d3eae3d7ef785b33f5930e679bcdd9e3ff5b5 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Pokročilá nastavení"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Zálohovat"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Shromažďování údajů…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Nastavení"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Připojení"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "Adresář databáze"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Stáhnout"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Obecné nastavení"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Hostitel"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protokol"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Obnovit"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "Zdrojová IP adresa"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Nahrát"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Varování"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index dadc152703e4d097554125df5b5f6360f4559aa8..89ad7091c4f5baa829f36be779ea8fbf8517fcd1 100644 (file)
@@ -10,151 +10,152 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.0.2-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d IPv4-only Hosts"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d IPv6-only Hosts"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr "%d Dualstack-Hosts"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s und %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s, %s und %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1 - Neustart jeden letzten Tag des Monats"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7 - Neustart eine Woche vor Monatsende"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "1 - Neustart jeden ersten Tag des Monats"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr "10min - häufigereres Sichern auf Kosten von Flashspeicher-Abnutzung"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr "12h - Kompromiss zwischen Datenverlust und Flashspeicher-Abnutzung"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 "24h - geringste Flashspeicherabnutzung auf Kosten erhöhtem Datenverlustrisiko"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr "30s - Aktualisiere alle 30s für angemessen aktuelle Statistiken"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 "5min - selten aktualisieren um die conntrack-Zähler nicht so häufig "
 "zurückzusetzen"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr "60s - minütlich sichern, sinnvoll für nicht-Flashspeicher"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr "<big id=\"conn-total\">0</big> Verbindungen"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr "<big id=\"host-total\">0</big> Hosts"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
-msgstr "<big id=\"ipv6-hosts\">0%</big> IPv6-Unterstützungsrate unter den Hosts"
+msgstr ""
+"<big id=\"ipv6-hosts\">0%</big> IPv6-Unterstützungsrate unter den Hosts"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr "<big id=\"ipv6-rx\">0B</big> IPv6-Download insgesamt"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr "<big id=\"ipv6-share\">0%</big> des gesamten Datenverkehrs ist IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr "<big id=\"ipv6-tx\">0B</big> IPv6-Upload insgesamt"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 "<big id=\"layer7-most-conn\">0</big> verursachen die meisten Verbindungen"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr "<big id=\"layer7-most-rx\">0</big> verursachste den meisten Download"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr "<big id=\"layer7-most-tx\">0</big> verursachen den meisten Upload"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr "<big id=\"layer7-total\">0</big> verschiedene Anwendungsprotokolle"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr "<big id=\"rx-total\">0</big> herunterladen"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr "<big id=\"tx-total\">0</big> Upload"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr "Berechnungszeitraum"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Erweiterte Einstellungen"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr "Anwendung"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr "Anwendungsprotokolle"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Sichern"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr "Bandbreitenmonitor"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr "CSV, gruppiert nach IP"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr "CSV, gruppiert nach MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr "CSV, gruppiert nach Protokoll"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
@@ -162,49 +163,49 @@ msgstr ""
 "Das wechseln des Berechnungszeitraum-Typs wird alle existierenden Datebanken "
 "löschen!<br /><strong><a href=\"%s\">Backup sichern</a></strong>."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Sammle Daten..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr "Sicherungsintervall"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr "Komprimiere Datenbank"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Konfiguration"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr "Verb."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Verbindungen"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr "Verbindungen / Host"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "Datenbankverzeichnis"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
@@ -212,11 +213,11 @@ msgstr ""
 "Datenbank-Verzeichnis. Für jeden Berechnungszeitraum wird eine Datei "
 "angelegt."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr "Tag des Monats"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
@@ -226,105 +227,127 @@ msgstr ""
 "werden vom Monatsende her interpretiert, z.B. \"-5\" für den 27. Juli oder "
 "24. Februar."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "Anzeige"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
-#, fuzzy
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr "Down. (Bytes)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr "Down. (Pkg.)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Herunterladen"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
-#, fuzzy
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr "Download (Bytes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr "Download (Pakete)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr "Download / Anwendung"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr "Datenbank-Backup sichern"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr "Hosts mit Dualstack-IPs"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr "Fälligkeitsdatum"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr "Exportieren"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr "Familie"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr "Festes Intervall"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr "Neu Laden erzwingen…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Allgemeine Einstellungen"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr "Erzeuge Backup"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Host"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr "Hostnamen: <big id=\"bubble-hostname\">example.org</big>"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr "IPv4 zu IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr "Intervall"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
@@ -332,7 +355,7 @@ msgstr ""
 "Zeitintervall nach dem die in-Memory-Datenbank periodisch auf auf dem "
 "Festspeicher persistiert wird."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
@@ -340,36 +363,36 @@ msgstr ""
 "Zeitintervall für das periodische Aktualisieren der Traffic-Zähler "
 "bestehender Verbindungen anhand der netlink-Daten."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr "Ungültiges oder leeres Backup Archiv"
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr "JSON-Dump"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr "Länge des Berechnungszeitraums in Tagen."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr "Lokale Schnittstellen"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr "Lokale Subnetze"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr "Maximale Einträge"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
@@ -377,167 +400,178 @@ msgstr ""
 "Höchstzahl an Abrechnungszeiträumen, die behalten werden sollen, 0 steht für "
 "unbeschränkt."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr "Netlink-Bandbreitenmonitor"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr "Netlink-Bandbreitenmonitor Sichern/Wiederherstellen"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr "Netlink-Bandbreitenmonitor - Konfiguration"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr "Noch keine Daten aufgezeichnet."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protokoll"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Wiederherstellen"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "Quell IP"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr "Startdatum"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
-msgstr "Die folgenden Datenbank Dateien wurden wiederhergestellt: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
+msgstr "Die folgenden Datenbank Dateien wurden wiederhergestellt:"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Hochladen"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Warnung"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
+
+#~ msgid "Invalid or empty backup archive"
+#~ msgstr "Ungültiges oder leeres Backup Archiv"
index e48804a28454c27043ed2766da144f547931ed8c..7608307e8a6c9cde6cd1482e452e5c151475a05d 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Αντίγραφο ασφαλείας"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Συλλογή δεδομένων..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Διαμόρφωση"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 200bb6a0de1f7b91765d230332c79792179d6190..851055d6e17c0e4b536fc0204b70c648d609e4af 100644 (file)
@@ -4,515 +4,547 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 2e882047160bfa60a38e5c43ae75e0a4849137be..5767ff5166f42cf7257e66881b3ac263da62b7dd 100644 (file)
@@ -13,158 +13,158 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 3.11.1\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d hosts solo IPv4"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d hosts solo IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr "%d hosts de doble pila"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s y %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s, %s y %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1 - Reiniciar cada último día del mes"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7 - Reiniciar una semana antes de fin de mes"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "1 - Reiniciar cada 1 del mes"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr "10m - frecuentes cometidos a expensas del desgaste del flash"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 "12h - compromiso entre el riesgo de pérdida de datos y el desgaste por "
 "destello"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 "24h - menor desgaste del flash a expensas del riesgo de pérdida de datos"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 "30s - actualice dos veces por minuto para obtener estadísticas "
 "razonablemente actuales"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 "5m - rara vez se actualiza para evitar el borrado frecuente de los "
 "contadores de conntrack"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr "60s - cometa minuciosamente, útil para almacenamiento sin flash"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr "<big id=\"conn-total\">0</big> conexiones"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr "<big id=\"host-total\">0</big> hosts"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 "<big id=\"ipv6-hosts\">0%</big> tasa de compatibilidad de IPv6 entre los "
 "hosts"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr "<big id=\"ipv6-rx\">0B</big> descarga total de IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr "<big id=\"ipv6-share\">0%</big> del tráfico total es IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr "<big id=\"ipv6-tx\">0B</big> carga total de IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 "<big id=\"layer7-most-conn\">0</big> causa la mayoría de las conexiones"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 "<big id=\"layer7-most-rx\">0</big> es la causa de la descarga más grande"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr "<big id=\"layer7-most-tx\">0</big> causa la mayor carga"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr "<big id=\"layer7-total\">0</big> diferentes protocolos de aplicación"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr "<big id=\"rx-total\">0</big> de descarga"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr "<big id=\"tx-total\">0</big> de subida"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr "Período contable"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Configuración avanzada"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr "Aplicación"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr "Protocolos de aplicación"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Copia de seguridad"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr "Monitor de ancho de banda"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr "CSV, agrupados por IP"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr "CSV, agrupados por MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr "CSV, agrupados por protocolo"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
@@ -173,7 +173,7 @@ msgstr ""
 "existentes!<br /><strong><a href=\"%s\">Descargar copia de seguridad</a></"
 "strong>."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
@@ -184,42 +184,42 @@ msgstr ""
 "reiniciar el período contable exactamente cada N días, comenzando en una "
 "fecha determinada."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Recolectando datos…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr "Intervalo de compromiso"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr "Comprimir la base de datos"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Configuración"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr "Conexiones."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Conexiones"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr "Conexiones / Host"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "Directorio de la base de datos"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
@@ -227,11 +227,11 @@ msgstr ""
 "Directorio de almacenamiento de base de datos. Un archivo por período "
 "contable se colocará en este directorio."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr "Dia del mes"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
@@ -241,103 +241,127 @@ msgstr ""
 "contar hacia el final del mes, p. Ej. \"-5\" para especificar el 27 de julio "
 "o el 24 de febrero."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "Monitor"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr "Desc. (Bytes)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr "Desc. (Paqs.)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Descargar"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr "Descarga (Bytes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr "Descarga (Paquetes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr "Descargar / Aplicación"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr "Descargar copia de seguridad de la base de datos"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr "Hosts habilitados para DualStack"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr "Fecha de vencimiento"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr "Exportar"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr "Familia"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr "Intervalo fijo"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr "Forzar reinicio…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Configuración general"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr "Generar copia de seguridad"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Host"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr "Nombre de host: <big id=\"bubble-hostname\">example.org</big>"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr "IPv4 vs. IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr "Intervalo"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
@@ -345,7 +369,7 @@ msgstr ""
 "Intervalo en el que la base de datos temporal en memoria se confirma al "
 "directorio de base de datos persistente."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
@@ -353,36 +377,36 @@ msgstr ""
 "Intervalo en el que los contadores de tráfico de las conexiones aún "
 "establecidas se actualizan desde la información del enlace de red."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr "Archivo de copia de seguridad no válido o vacío"
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr "Volcado JSON"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr "Duración del intervalo contable en días."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr "Interfaces locales"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr "Subredes locales"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr "Entradas máximas"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
@@ -390,49 +414,49 @@ msgstr ""
 "Número máximo de períodos contables para mantener, use 0 para mantener las "
 "bases de datos para siempre."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr "Monitor de ancho de banda Netlink"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr "Monitor de ancho de banda Netlink - Copia de seguridad / Restauración"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr "Monitor de ancho de banda Netlink - Configuración"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr "No hay datos registrados todavía."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 "Solo se cuentan los flujos de conexión desde o hacia cualquiera de estas "
 "redes."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 "Solo se cuentan los flujos de conexión desde o hacia cualquiera de estas "
 "subredes."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr "Pre-ubicar la base de datos"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protocolo"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr "Mapeo de protocolos"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
@@ -443,41 +467,45 @@ msgstr ""
 "valor, el número de puerto y la tercera columna es el nombre del protocolo "
 "asignado."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr "Intervalo de actualización"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Restaurar"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr "Restaurar la copia de seguridad de la base de datos"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr "Seleccione el período contable:"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "IP de origen"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr "Fecha de inicio"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 "Fecha de inicio del primer período contable, por ejemplo, inicio del "
 "contrato ISP."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr "Periodos almacenados"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
@@ -486,11 +514,11 @@ msgstr ""
 "contabilidad de tráfico ligero y eficiente que realiza un seguimiento del "
 "uso de ancho de banda por host y protocolo."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
-msgstr "Los siguientes archivos de base de datos han sido restaurados: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
+msgstr "Los siguientes archivos de base de datos han sido restaurados:"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
@@ -499,51 +527,55 @@ msgstr ""
 "estableciendo el límite en 0, permitirá que las bases de datos crezcan "
 "indefinidamente."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr "Tráfico / Host"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr "Distribución del tráfico"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr "Sub. (Bytes)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr "Sub. (Paq.)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Subir"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr "Subida (Bytes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr "Subida (Paquetes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr "Subir / Aplicación"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr "Proveedor: <big id=\"bubble-vendor\">Example Corp.</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Advertencia"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
@@ -553,7 +585,7 @@ msgstr ""
 "archivos de la base de datos hace que el acceso a los datos antiguos sea un "
 "poco más lento, pero ayuda a reducir los requisitos de almacenamiento."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
@@ -564,16 +596,19 @@ msgstr ""
 "memoria que pueden no ser capaces de satisfacer la asignación de memoria "
 "después de períodos de tiempo de funcionamiento más largos."
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr "Sin tráfico"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr "Otro"
+
+#~ msgid "Invalid or empty backup archive"
+#~ msgstr "Archivo de copia de seguridad no válido o vacío"
index 69e46687b24da9d45efdfa0074ca721b2123ab78..5da79b33acf72ec50fe44d8c737b5f6af704070c 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
 "X-Generator: Weblate 4.0-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d hôtes IPv4 uniquement"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d hôtes IPv6 uniquement"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s et %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s, %s et %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1 - Redémarrez tous les derniers jours du mois"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7 - Redémarrer une semaine avant la fin du mois"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "1 - Redémarrez tous les 1er du mois"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Paramètres avancés"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Sauvegarder"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Récupération des données…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Configuration"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "Répertoire de la base de données"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Télécharger"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Paramètres généraux"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Hôte"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protocole"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Restaurer"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "Adresse IP source"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Téléverser"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Avertissement"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 3cb0e2a3ae8f1c607ef361d974aa8f422f1df840..7af018d528608df018c1f05d093513d66e226c20 100644 (file)
@@ -4,515 +4,547 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index ff97fe907c300cb52b04d2c0785f5fd220393024..692cb61932f4de9bc5f671964a9b26298ed6bdf1 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 13154787d1c7d5fd990a86b085a07628d97a9f80..591e4d5c3f0b498eeb32bffd6a7a18bb3b3eff6e 100644 (file)
@@ -10,153 +10,153 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 3.10\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d csak IPv4-es gép"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d csak IPv6-os gép"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr "%d kettős protokollcsomagú gép"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s és %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s, %s és %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1 – újraindítás minden hónap utolsó napján"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7 – egy hét újraindítása a hónap vége előtt"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "1 – újraindítás minden hónap első napján"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr "10 perc – gyakori véglegesítések a flash-használat rovására"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 "12 óra – kompromisszum az adatvesztési kockázat és a flash-használat között"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 "24 óra – a legkevesebb flash-használat az adatvesztési kockázat rovására"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 "30 másodperc – frissítés percenként kétszer az észszerűen aktuális "
 "statisztikákhoz"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 "5 perc – ritka frissítés a kapcsolatkövető számlálók gyakori törlésének "
 "elkerüléséhez"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr "60 másodperc – véglegesítés percenként, nem flash tárolóknál hasznos"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr "<big id=\"conn-total\">0</big> kapcsolat"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr "<big id=\"host-total\">0</big> gép"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr "<big id=\"ipv6-hosts\">0%</big> IPv6 támogatási arány a gépek között"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr "<big id=\"ipv6-rx\">0B</big> teljes IPv6 letöltés"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr "A teljes forgalom <big id=\"ipv6-share\">0%</big>-a IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr "<big id=\"ipv6-tx\">0B</big> teljes IPv6 feltöltés"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr "<big id=\"layer7-most-conn\">0</big> okozza a legtöbb kapcsolatot"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr "<big id=\"layer7-most-rx\">0</big> okozza a legtöbb letöltést"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr "<big id=\"layer7-most-tx\">0</big> okozza a legtöbb feltöltést"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr "<big id=\"layer7-total\">0</big> különböző alkalmazásprotokoll"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr "<big id=\"rx-total\">0</big> letöltés"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr "<big id=\"tx-total\">0</big> feltöltés"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr "Elszámolási időszak"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Speciális beállítások"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr "Alkalmazás"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr "Alkalmazásprotokollok"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Biztonsági mentés"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr "Sávszélesség megfigyelő"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr "CSV, IP szerint csoportosítva"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr "CSV, MAC szerint csoportosítva"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr "CSV, protokoll szerint csoportosítva"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
@@ -165,7 +165,7 @@ msgstr ""
 "meglévő adatbázist!<br /><strong><a href=\"%s\">Biztonsági mentés letöltése</"
 "a></strong>."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
@@ -176,42 +176,42 @@ msgstr ""
 "„Rögzített időköz˝ lehetőséget az elszámolási időszak pontosan N naponként "
 "történő újraindításához, kezdve egy adott dátumnál."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Adatok összegyűjtése…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr "Véglegesítési időköz"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr "Adatbázis tömörítése"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Beállítás"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr "Kapcs."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Kapcsolatok"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr "Kapcsolatok / gép"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "Adatbáziskönyvtár"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
@@ -219,11 +219,11 @@ msgstr ""
 "Adatbázis tárolókönyvtár. Elszámolási időszakonként egy fájl lesz elhelyezve "
 "ebbe a könyvtárba."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr "Hónap napja"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
@@ -233,103 +233,127 @@ msgstr ""
 "értékeket a hónap végétől való számoláshoz, például a „-5” július 27. vagy "
 "február 24. napját határozza meg."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "Megjelenítés"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr "Le. (byte)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr "Le. (csom.)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Letöltés"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr "Letöltés (bájt)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr "Letöltés (csomagok)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr "Letöltés / alkalmazás"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr "Adatbázis biztonsági mentés letöltése"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr "Kétvermes engedélyezett gépek"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr "Határidő"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr "Exportálás"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr "Család"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr "Rögzített időköz"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr "Újratöltés kényszerítése…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Általános beállítások"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr "Biztonsági mentés előállítása"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Gép"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr "Gépnév: <big id=\"bubble-hostname\">example.org</big>"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr "IPv4 ↔ IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr "Időköz"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
@@ -337,7 +361,7 @@ msgstr ""
 "Az időköz, amelyben a memóriában lévő átmeneti adatbázis véglegesítve lesz "
 "az állandó adatbázis-könyvtárba."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
@@ -345,36 +369,36 @@ msgstr ""
 "Az időköz, amelyben a még kiépített kapcsolatok forgalomszámlálói frissítve "
 "lesznek a hálózati kapcsolat információiból."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr "Érvénytelen vagy üres biztonsági mentés archívum"
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr "JSON kiírás"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr "Elszámolási időköz hossza napokban."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr "Helyi csatolók"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr "Helyi alhálózatok"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr "Legtöbb bejegyzés"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
@@ -382,51 +406,51 @@ msgstr ""
 "A megtartandó elszámolási időszakok legnagyobb száma. Használjon nullát az "
 "adatbázis örökre való megtartásához."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr "Hálózati kapcsolat sávszélesség megfigyelő"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 "Hálózati kapcsolat sávszélesség megfigyelő – biztonsági mentés és "
 "visszaállítás"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr "Hálózati kapcsolat sávszélesség megfigyelő – beállítások"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr "Még nincsenek adatok rögzítve."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 "Csak azok a kapcsolatkövető adatfolyamok lesznek beleszámolva, amelyek ezen "
 "hálózatok bármelyikébe vagy bármelyikéből érkeznek."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 "Csak azok a kapcsolatkövető adatfolyamok lesznek beleszámolva, amelyek ezen "
 "alhálózatok bármelyikébe vagy bármelyikéből érkeznek."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr "Adatbázis előre lefoglalása"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protokoll"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr "Protokoll-leképezés"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
@@ -437,41 +461,45 @@ msgstr ""
 "az IP protokollt, a második érték a portszámot és a harmadik oszlop a "
 "leképezett protokoll neve."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr "Frissítési időköz"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Visszaállítás"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr "Adatbázis biztonsági mentésének visszaállítása"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr "Elszámolási időszak kiválasztása:"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "Forrás IP"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr "Kezdődátum"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 "Az első elszámolási időszak kezdődátuma, például egy internetszolgáltatóval "
 "kötött szerződés kezdete."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr "Tárolt időszakok"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
@@ -480,11 +508,11 @@ msgstr ""
 "hatékony forgalomelszámoló program, amely figyelemmel kíséri a sávszélesség-"
 "használatot gépenként és protokollonként."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
-msgstr "A következő adatbázisfájlok lettek visszaállítva: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
+msgstr "A következő adatbázisfájlok lettek visszaállítva:"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
@@ -492,51 +520,55 @@ msgstr ""
 "A bejegyzések legnagyobb száma, amit be kell tenni az adatbázisba. A korlát "
 "0-ra állítása az adatbázisok korlátlan növekedését teszi lehetővé."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr "Forgalom / gép"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr "Forgalomelosztás"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr "Fel. (bájt)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr "Fel. (csom.)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Feltöltés"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr "Feltöltés (bájt)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr "Feltöltés (csomagok)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr "Feltöltés / alkalmazás"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr "Gyártó: <big id=\"bubble-vendor\">Példa Kft.</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Figyelmeztetés"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
@@ -546,7 +578,7 @@ msgstr ""
 "tömörítése a régi adatokhoz való hozzáférést kicsit lassabbá teszi, de segít "
 "csökkenteni a tárolási szükségleteket."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
@@ -557,16 +589,19 @@ msgstr ""
 "esetleg nem képesek kielégíteni a memórialefoglalást hosszabb működési "
 "időszakok után."
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr "nincs forgalom"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr "egyéb"
+
+#~ msgid "Invalid or empty backup archive"
+#~ msgstr "Érvénytelen vagy üres biztonsági mentés archívum"
index be604c6579259524d86af3d3bc797b7bad1816a5..95588fa383d0291599eb0c2dfefd1bbe77898500 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 4.0-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Impostazioni Avanzate"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Backup"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Raccolta dati..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Configurazione"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Impostazioni Generali"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Host"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protocollo"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index c22a39ecebcaf11b8aa22aff6a111fc574d3ce5a..d9e118983be9b2089127a7b2318ed1bd3a2740ce 100644 (file)
@@ -13,147 +13,147 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Weblate 3.11\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d IPv4 限定ホスト"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d IPv6 限定ホスト"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr "%d デュアルスタック ホスト"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s, %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s, %s, %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1 - 月の最終日"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7 - 月の最終日の一週間前"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "1 - 毎月1日"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr "10m - フラッシュ媒体への負荷が高い頻繁なコミット(10分)"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr "12h - データ消失リスクとフラッシュ媒体への負荷の妥協点(12時間)"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr "24h - データ消失リスクは高いがフラッシュ媒体への負荷は最小(24時間)"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr "30s - 現在の状態の把握に適切な1分間に2回のリフレッシュ(30秒)"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr "5m - conntrack カウンターの頻繁なクリアを防ぐ、低頻度のリフレッシュ"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr "60秒 - 1分毎のコミット、非フラッシュ ストレージに有用"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr "<big id=\"conn-total\">0</big> 接続数"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr "<big id=\"host-total\">0</big> ホスト数"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr "<big id=\"ipv6-hosts\">0%</big> 全ホスト中の IPv6 サポート比率"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr "<big id=\"ipv6-rx\">0B</big> IPv6 総ダウンロード"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr "<big id=\"ipv6-share\">0%</big> 全トラフィック中の IPv6 の割合"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr "<big id=\"ipv6-tx\">0B</big> IPv6 総アップロード"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr "<big id=\"layer7-most-conn\">0</big> 接続数上位"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr "<big id=\"layer7-most-rx\">0</big> ダウンロード上位"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr "<big id=\"layer7-most-tx\">0</big> アップロード上位"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr "<big id=\"layer7-total\">0</big> アプリケーション プロトコル数"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr "<big id=\"rx-total\">0</big> ダウンロード"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr "<big id=\"tx-total\">0</big> アップロード"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr "収集期間"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "詳細設定"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr "アプリケーション"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr "アプリケーション プロトコル"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "バックアップ"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr "帯域幅モニター"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr "CSV(IP によるグループ化)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr "CSV(MAC によるグループ化)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr "CSV(プロトコルによるグループ化)"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
@@ -161,7 +161,7 @@ msgstr ""
 "既存のデータベースと互換性の無い収集期間の形式が選択されました。<br /"
 "><strong><a href=\"%s\">バックアップのダウンロード</a></strong>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
@@ -171,42 +171,42 @@ msgstr ""
 "毎月3日)。設定した日数毎にデータの収集を行うには、\"特定の間隔\" を選択しま"
 "す。後者の場合、指定された日付から開始されます。"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr "コミット間隔"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr "データベースの圧縮"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "設定"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr "接続数"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "接続数"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr "ホスト毎の接続数"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "データベース ディレクトリ"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
@@ -214,11 +214,11 @@ msgstr ""
 "データベースの保存先ディレクトリです。計測期間あたり 1 つのファイルがこのディ"
 "レクトリに配置されます。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr "月間"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
@@ -227,103 +227,127 @@ msgstr ""
 "月の中で新たな収集期間を開始する日です。月の最終日からの日数をマイナス値で指"
 "定することができます(例: 7月27日または2月24日は \"-5\")。"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "表示"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr "ダウンロード / アプリケーション"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr "データベース バックアップのダウンロード"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr "デュアルスタック ホスト"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr "期日"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr "エクスポート"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr "IP 種別"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr "特定の間隔"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr "強制リロード..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "全般設定"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr "バックアップの作成"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "ホスト"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr "ホスト名: <big id=\"bubble-hostname\">example.org</big>"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr "IPv4 及び IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr "間隔"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
@@ -331,7 +355,7 @@ msgstr ""
 "メモリー上の一時的なデータベースから、永続的なデータベース ディレクトリへのコ"
 "ミットを実行する間隔です。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
@@ -339,36 +363,36 @@ msgstr ""
 "確立中の接続のトラフィック カウンターが netlink 情報によりリフレッシュされる"
 "間隔です。"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr "無効または空のバックアップ アーカイブです。"
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr "JSON ダンプ"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr "収集期間の日数です。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr "ローカル インターフェース"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr "ローカル サブネット"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr "最大件数"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
@@ -376,46 +400,46 @@ msgstr ""
 "計測データを保持する、収集期間の最大個数です。 '0' を設定した場合、全データを"
 "保持します。"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr "Netlink Bandwidth Monitor"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr "Netlink Bandwidth Monitor - バックアップ / 復元"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr "Netlink Bandwidth Monitor - 設定"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr "まだデータがありません。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 "選択されたネットワークにおける conntrack ストリームのみが計測されます。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr "設定されたサブネットにおける conntrack ストリームのみが計測されます。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr "データベースの事前割当"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "プロトコル"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr "プロトコル マッピング"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
@@ -426,39 +450,43 @@ msgstr ""
 "目の値はポート番号、3つ目はマッピングされたプロトコルの名前をそれぞれ表しま"
 "す。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr "リフレッシュ間隔"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "復元"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr "データベースの復元"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr "収集期間を選択:"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "アクセス元 IP"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr "開始日"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr "初回のデータ収集の開始日です(例: ISP 契約の開始日)。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr "保存期間"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
@@ -466,11 +494,11 @@ msgstr ""
 "Netlink Bandwidth Monitor (nlbwmon) は、軽量かつ、ホストやプロトコル毎に帯域"
 "幅使用量の追跡を行う効率的なトラフィック計測プログラムです。"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
-msgstr "次のデータベース ファイルが復元されました: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
+msgstr "次のデータベース ファイルが復元されました:"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
@@ -478,51 +506,55 @@ msgstr ""
 "データベースに保管される最大件数です。 '0' を設定した場合、制限無しのデータ"
 "ベースの増大を許可します。"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr "ホスト毎のトラフィック"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr "トラフィック内訳"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr "アップロード / アプリケーション"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr "ベンダ: <big id=\"bubble-vendor\">Example Corp.</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "警告"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
@@ -532,27 +564,30 @@ msgstr ""
 "いデータへのアクセスが多少遅くなりますが、ストレージ使用量の低減に役立ちま"
 "す。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr "トラフィック無し"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr "その他"
 
+#~ msgid "Invalid or empty backup archive"
+#~ msgstr "無効または空のバックアップ アーカイブです。"
+
 #~ msgid "Down. (Bytes / Pkts.)"
 #~ msgstr "ダウンロード(Bytes / Pkts.)"
 
index 3a074b62656e2b4e494be737c0befa4dedddb775..a1efd833c4d1912225c6cc2701ca616b418c89b5 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Weblate 4.0.2-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "고급 설정"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index aab074802a4475a65e3b0ac12e34bd9a7f82eca9..63325e74d3506d8ab5363cefea1537176ca5f197 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "प्रगत सेटिंग्ज"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "डेटा संकलित करीत आहे ..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "कॉन्फिगरेशन"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "डाउनलोड"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "सामान्य सेटिंग्ज"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "प्रोटोकॉल"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "स्त्रोत आयपी"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index d49a35201b715cf9ba58d9e515ebcb8e97c4f665..bdf4f3122c21ac9fa675e5f779e76a36122b20b2 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Mengumpul data..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 163f106e31dd25fac4e0c80e71532d816fff951b..c3fbb1e6c04f1830ad299c1c8022f71905866c45 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Samler inn data…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 97c34c4d1ab866eeadc478bc40878b60c80ec530..1a8e5f79c33567593501d36a113ffd029f29df11 100644 (file)
@@ -11,149 +11,149 @@ msgstr ""
 "|| n%100>=20) ? 1 : 2;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d hosty tylko z IPv4"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d hosty tylko z IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr "%d hosty dualstack"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s i %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s, %s i %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1- Restart ostatniego dnia miesiąca"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7- Restart tydzień przed końcem miesiąca"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "-1- Restart pierwszego dnia miesiąca"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr "10m - częsty zapis kosztem zużycia pamięci flash"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr "12h - kompromis między utratą danych a zużyciem pamięci flash"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr "24h - najmniejsze zużycie pamięci flash, kosztem utraty danych"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 "30s - odświeżanie dwa razy na minutę dla racjonalnie aktualnych statystyk"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 "5m - rzadkie odświeżanie aby unikać częstego czyszczenia licznika conntrack"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr "60s - częsty zapis, przydatny dla pamięci non-flash"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr "<big id=\"conn-total\">0</big> połączenia"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr "<big id=\"host-total\">0</big> hostów"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr "<big id=\"ipv6-hosts\">0%</big> Obsługa protokołu IPv6 wśród hostów"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr "<big id=\"ipv6-rx\">0B</big> całkowite pobieranie IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr "<big id=\"ipv6-share\">0%</big> z całego ruchu sieciowego IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr "<big id=\"ipv6-tx\">0B</big> całkowite wysyłanie IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr "<big id=\"layer7-most-conn\">0</big> powoduje najwięcej połączeń"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr "<big id=\"layer7-most-rx\">0</big> powoduje najwięcej pobierań"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr "<big id=\"layer7-most-tx\">0</big> powoduje najwięcej wysyłań"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr "<big id=\"layer7-total\">0</big> różne protokoły aplikacji"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr "<big id=\"rx-total\">0</big> pobieranie"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr "<big id=\"tx-total\">0</big> wysyłanie"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr "Okres rozliczeniowy"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Ustawienia zaawansowane"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr "Aplikacja"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr "Protokoły aplikacji"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Kopia zapasowa"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr "Monitor przepustowości"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr "CSV, pogrupowane według adresów IP"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr "CSV, pogrupowane według MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr "CSV, pogrupowane według protokołów"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
@@ -161,7 +161,7 @@ msgstr ""
 "Zmiana typu interwału rozliczeniowego spowoduje unieważnienie istniejących "
 "baz danych!<br /><strong><a href=\"%s\">Pobierz kopię zapasową</a></strong>."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
@@ -171,42 +171,42 @@ msgstr ""
 "miesiąc w określonym dniu, np. co 3. Wybierz \"Ustalony interwał\" aby "
 "zrestartować okres rozliczeniowy dokładnie co N dni, począwszy od danej daty."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Trwa zbieranie danych..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr "Interwał zapisu"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr "Kompresuj baze danych"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Konfiguracja"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr "Połączenia"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Połączenia"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr "Połączenia/Host"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "Katalog bazy danych"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
@@ -214,11 +214,11 @@ msgstr ""
 "Katalog przechowywania bazy danych. Jeden plik na okres rozliczeniowy "
 "zostanie umieszczony w tym katalogu."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr "Dzień miesiąca"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
@@ -228,103 +228,127 @@ msgstr ""
 "ujemne należy stosować do liczenia pod koniec miesiąca, np. \"-5\", aby "
 "określić 27 lipca lub 24 lutego."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "Wyświetl"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr "Pobieranie (Bajty)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr "Pobieranie (Pakiety)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Pobieranie"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr "Pobieranie (Bajty)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr "Pobieranie (Pakiety)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr "Pobieranie/Aplikacja"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr "Pobierz kopię zapasową bazy danych"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr "Hosty z włączoną funkcją dualstack"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr "Termin ważności"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr "Eksportuj"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr "Rodzina"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr "Ustalony interwał"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr "Wymuś przeładowanie…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Ustawienia główne"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr "Generuj kopię zapasową"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Host"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr "Nazwa hosta: <big id=\"bubble-hostname\">example.org</big>"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr "IPv4 vs. IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr "Interwał"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
@@ -332,7 +356,7 @@ msgstr ""
 "Odstęp czasu, w którym tymczasowa baza danych w pamięci jest przekazywana do "
 "stałego katalogu bazy danych."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
@@ -340,36 +364,36 @@ msgstr ""
 "Odstęp czasowy, w którym liczniki ruchu nadal ustanowionych połączeń są "
 "odświeżane z informacji o połączeniu sieciowym."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr "Nieprawidłowe lub puste archiwum kopii zapasowej"
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr "Zrzut JSON"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr "Długość interwału księgowania w dniach."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr "Interfejsy lokalne"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr "Podsieci lokalne"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr "Maksymalna liczba wpisów"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
@@ -377,47 +401,48 @@ msgstr ""
 "Maksymalna liczba okresów rozliczeniowych do zachowania, użyj zera do "
 "zachowania baz danych na zawsze."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr "Monitor wykorzystania łącza internetowego"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
-msgstr "Monitor wykorzystania łącza internetowego - Kopia zapasowa/Przywracanie"
+msgstr ""
+"Monitor wykorzystania łącza internetowego - Kopia zapasowa/Przywracanie"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr "Monitor wykorzystania łącza internetowego - Konfiguracja"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr "Nie zarejestrowano jeszcze żadnych danych."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 "Liczone są tylko strumienie conntrack z lub do którejkolwiek z tych sieci."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 "Liczone są tylko strumienie conntrack z lub do którejkolwiek z tych podsieci."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr "Prealokuj bazę danych"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protokół"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr "Mapowanie protokołów"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
@@ -427,41 +452,45 @@ msgstr ""
 "na linię. Pierwsza wartość określa protokół IP, druga numer portu, a trzecia "
 "nazwę mapowanego protokołu."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr "Częstotliwość odświeżania"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Przywróć"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr "Przywracanie kopii zapasowej bazy danych"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr "Wybierz okres rozliczeniowy:"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "Źródłowy adres IP"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr "Data rozpoczęcia"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 "Data rozpoczęcia pierwszego okresu rozliczeniowego, np. początek umowy z "
 "dostawcą usług internetowych."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr "Przechowywane okresy"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
@@ -470,11 +499,11 @@ msgstr ""
 "programem do księgowania ruchu, śledzącym wykorzystanie przepustowości "
 "hostów i protokołów."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
-msgstr "Przywrócono następujące pliki bazy danych: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
+msgstr "Przywrócono następujące pliki bazy danych:"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
@@ -482,51 +511,55 @@ msgstr ""
 "Maksymalna liczba wpisów, które powinny zostać wprowadzone do bazy danych, "
 "przy ustawieniu limitu na 0, pozwoli bazom danych na nieograniczony wzrost."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr "Ruch sieciowy/Host"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr "Dystrybucja ruchu"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr "Wysyłanie (Bajty)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr "Wysyłanie (Pakiety)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Wyślij"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr "Wysyłanie (Bajty)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr "Wysyłanie (Pakiety)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr "Wysyłanie/Aplikacja"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr "Producent: <big id=\"bubble-vendor\">Example Corp.</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Ostrzeżenie"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
@@ -536,7 +569,7 @@ msgstr ""
 "powoduje, że dostęp do starych danych jest nieco wolniejszy, ale redukuje "
 "zapotrzebowanie na pamięć masową."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
@@ -547,16 +580,19 @@ msgstr ""
 "nie być w stanie zaspokoić alokacji pamięci po dłuższych okresach "
 "bezawaryjnej pracy."
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr "brak ruchu sieciowego"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr "inny"
+
+#~ msgid "Invalid or empty backup archive"
+#~ msgstr "Nieprawidłowe lub puste archiwum kopii zapasowej"
index 19755af8794a70fa119a19067d51870a8bb5d5b3..a411d5a5303998492478d7f96f15a4a6e1e4ac8f 100644 (file)
@@ -10,151 +10,151 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
 "X-Generator: Weblate 3.10-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d hosts somente no IPv4"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d hosts somente no IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr "%d de hosts dual-stack"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s e %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s, %s e %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1 - Reiniciar no último dia do mês"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7 - Reiniciar uma semana antes do fim do mês"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "1 - Reiniciar a cada 1º dia do mês"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr "10m - commits frequentes à custa do desgaste do flash"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr "12h - compromisso entre risco de perda de dados e desgaste do flash"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr "24h - menor desgaste do flash à custa do risco de perda de dados"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 "30s - atualizar duas vezes por minuto para estatísticas razoavelmente atuais"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 "5m - atualizar raramente para evitar a limpeza frequente de contadores de "
 "conntrack"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr "60s - commit minuciosamente, útil para armazenamentos sem flash"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr "<big id=\"conn-total\">0</big> conexões"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr "<big id=\"host-total\">0</big> hosts"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr "<big id=\"ipv6-hosts\">0%</big> Taxa de suporte IPv6 entre hosts"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr "<big id=\"ipv6-rx\">0B</big> descarregamento IPv6 total"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr "<big id=\"ipv6-share\">0%</big> do tráfego total é IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr "<big id=\"ipv6-tx\">0B</big> envio IPv6 total"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr "<big id=\"layer7-most-conn\">0</big> causam a maioria das conexões"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 "<big id=\"layer7-most-rx\">0</big> causam o maior número de descarregamentos"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr "<big id=\"layer7-most-tx\">0</big> causam o maior número de envios"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr "<big id=\"layer7-total\">0</big> protocolos de aplicação diferentes"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr "<big id=\"rx-total\">0</big> descarregamento"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr "<big id=\"tx-total\">0</big> envio"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr "Período contábil"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Definições Avançadas"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr "Aplicação"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr "Protocolos de Aplicação"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Backup"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr "Monitor de Largura de Banda"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr "CSV, agrupado por IP"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr "CSV, agrupado por MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr "CSV, agrupado por protocolo"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
@@ -163,7 +163,7 @@ msgstr ""
 "dados existentes!<br /><strong><a href=\"%s\">Descarregar backup</a></"
 "strong>."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
@@ -174,42 +174,42 @@ msgstr ""
 "para reiniciar o período contábil exatamente a cada N dias, começando numa "
 "determinada data."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "A recolher dados..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr "Intervalo de commit"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr "Comprimir banco de dados"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Configuração"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr "Con."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Ligações"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr "Conexões / Host"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "Diretório da base de dados"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
@@ -217,11 +217,11 @@ msgstr ""
 "Diretório de armazenamento de banco de dados. Um ficheiro por período "
 "contábil estará neste diretório."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr "Dia do mês"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
@@ -231,103 +231,127 @@ msgstr ""
 "contar para o final do mês, por exemplo \"-5\" para especificar o dia 27 de "
 "julho ou o dia 24 de fevereiro."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "Mostrar"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr "Desc. (Bytes)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr "Desc. (Pcts.)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Descarregar"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr "Descarregamento (Bytes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr "Descarregamento (Pacotes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr "Descarregamento / Aplicação"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr "Descarregar Backup de Base de Dados"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr "Hosts com dualstack ativado"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr "Data limite"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr "Exportação"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr "Família"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr "Intervalo fixo"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr "Regarregar forçadamente…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Configurações Gerais"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr "Gerar backup"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Host"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr "Nome do Host: <big id=\"bubble-hostname\">exemplo.org</big>"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr "IPv4 contra IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr "Intervalo"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
@@ -335,7 +359,7 @@ msgstr ""
 "Intervalo no qual o banco de dados na memória temporário é enviado para o "
 "diretório do banco de dados persistente."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
@@ -343,36 +367,36 @@ msgstr ""
 "Intervalo no qual os contadores de tráfego de conexões ainda estabelecidas "
 "são atualizados a partir de informações netlink."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr "Arquivo de backup inválido ou vazio"
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr "Despejo de JSON"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr "Duração do intervalo contábil em dias."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr "Interfaces locais"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr "Subredes locais"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr "Quantidade máxima de entradas"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
@@ -380,49 +404,49 @@ msgstr ""
 "Quantidade máxima de períodos contáveis a manter, use zero para manter "
 "bancos de dados para sempre."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr "Monitor de Largura de Banda Netlink"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr "Monitor de Largura de Banda Netlink - Backup / Restauração"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr "Monitor de Largura de Banda Netlink - Configuração"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr "Ainda não há dados registados."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 "Somente os fluxos de conntrack de ou para qualquer uma dessas redes são "
 "contados."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 "Somente fluxos de conntrack de ou para qualquer uma dessas sub-redes são "
 "contados."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr "Pré-alocar banco de dados"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protocolo"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr "Mapeamento de Protocolos"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
@@ -432,41 +456,45 @@ msgstr ""
 "mapeamento por linha. O primeiro valor especifica o protocolo IP, o segundo "
 "valor o número da porta e a terceira coluna é o nome do protocolo mapeado."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr "Intervalo de atualização"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Restauração"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr "Restaurar o Backup do Banco de Dados"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr "Selecionar período contábil:"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "IP de origem"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr "Data de início"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 "Data de início do primeiro período contábil, por exemplo, início do contrato "
 "com o provedor."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr "Períodos armazenados"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
@@ -475,11 +503,11 @@ msgstr ""
 "um programa de contabilidade de tráfego leve e eficiente que controla o uso "
 "da largura de banda por host e protocolo."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
-msgstr "Os ficheiros de banco de dados seguintes foram restaurados: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
+msgstr "Os ficheiros de banco de dados seguintes foram restaurados:"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
@@ -488,51 +516,55 @@ msgstr ""
 "configurando o limite p ara 0 permitirá que as bases de dados cresçam "
 "indefinidamente."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr "Tráfego / Host"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr "Distribuição do Tráfego"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr "Acima. (Bytes)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr "Acima. (Pcts.)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Enviar"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr "Envio (Bytes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr "Envio (Pacotes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr "Envio / Aplicação"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr "Fornecedor: <big id=\"bubble-vendor\">Corp. Exemplo</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Aviso"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
@@ -542,7 +574,7 @@ msgstr ""
 "ficheiros de banco de dados torna o acesso aos dados antigos um pouco mais "
 "lento, mas ajuda a reduzir os requisitos de armazenamento."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
@@ -553,16 +585,19 @@ msgstr ""
 "não ser capazes de satisfazer a alocação de memória após períodos de "
 "atividade mais longos."
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr "nenhum tráfego"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr "outro"
+
+#~ msgid "Invalid or empty backup archive"
+#~ msgstr "Arquivo de backup inválido ou vazio"
index e1b30bc38143642d974b7784bbd54ebfb6a02cd4..3fc60265428a11239e5549fccaad609464327bc0 100644 (file)
@@ -10,159 +10,159 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
 "X-Generator: Weblate 3.10-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d apenas hosts IPV4"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d apenas hosts IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr "%d hosts com pilha dupla"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s e %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s, %s e %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1 - Reiniciar todos os últimos dias do mês"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7 - Reiniciar uma semana antes do fim do mês"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "1 - Reiniciar a cada 1º dia do mês"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr "10m - commits frequentes à custa do desgaste da memória flash"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 "12h - compromisso entre risco de perda de dados e desgaste da memória flash"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 "24h - menor desgaste da memória flash à custa do risco de perda de dados"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 "30s - atualizar duas vezes por minuto para manter as estatísticas "
 "razoavelmente atuais"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 "5m - atualizar raramente para evitar a limpeza frequente dos contadores "
 "conntrack"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 "60s - realizar um commit por minuto, útil para armazenamento sem memória "
 "flash"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr "<big id=\"conn-total\">0</big> conexões"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr "<big id=\"host-total\">0</big> hosts"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 "<big id=\"ipv6-hosts\">0%</big> Taxa de compatibilidade IPv6 entre os hosts"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr "<big id=\"ipv6-rx\">0B</big> total de downloads IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr "<big id=\"ipv6-share\">0%</big> do tráfego total é IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr "<big id=\"ipv6-tx\">0B</big> upload IPv6 total"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr "<big id=\"layer7-most-conn\">0</big> causou a maioria das conexões"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 "<big id=\"layer7-most-rx\">0</big> causou a maioria da quantidade de "
 "downloads"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 "<big id=\"layer7-most-tx\">0</big> causou a maioria da quantidade de uploads"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr "<big id=\"layer7-total\">0</big> protocolos de diferentes aplicativos"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr "<big id=\"rx-total\">0</big> download"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr "<big id=\"tx-total\">0</big> upload"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr "Período contábil"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Configurações Avançadas"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr "Aplicação"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr "Protocolos de aplicação"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Cópia de Segurança"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr "Monitor da Largura de Banda"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr "CSV, agrupado por IP"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr "CSV, agrupado por MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr "CSV, agrupados por protocolo"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
@@ -170,7 +170,7 @@ msgstr ""
 "Alterar o tipo de intervalo de contabilização invalida as bases de dados "
 "existentes!<br /><strong><a href=\"%s\">Download backup</a></strong>."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
@@ -181,42 +181,42 @@ msgstr ""
 "\" para reiniciar o período contábil exatamente a cada N dias, começando em "
 "uma data determinada."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Coletando dados..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr "Intervalo de commit"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr "Comprimir o banco de dados"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Configuração"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr "Conn."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Conexões"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr "Conexões / Host"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "Diretório do Banco de Dados"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
@@ -224,11 +224,11 @@ msgstr ""
 "O diretório de armazenamento de banco de dados. Um arquivo por período "
 "contábil será colocado neste diretório."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr "Dia do mês"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
@@ -238,103 +238,127 @@ msgstr ""
 "contar no final do mês, por exemplo \"-5\" para especificar o dia 27 de "
 "Julho ou o dia 24 de Fevereiro."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "Exibir"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr "Down. (Bytes)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr "Down. (Pcts.)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Download"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr "Download (Bytes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr "Download (Pacotes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr "Download / Aplicação"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr "Fazer Download da Cópia de Segurança do Banco de Dados"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr "Hosts com pilha dupla ativada"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr "Data de vencimento"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr "Exportar"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr "Família"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr "Intervalo fixo"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr "Impor o recarregamento…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Configurações Gerais"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr "Gerar Cópia de Segurança"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Host"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr "Nome do host: <big id=\"bubble-hostname\">example.org</big>"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr "IPv4 contra IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr "Intervalo"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
@@ -342,7 +366,7 @@ msgstr ""
 "Intervalo no qual o banco de dados temporário na memória é enviado para o "
 "diretório do banco de dados persistente."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
@@ -350,36 +374,36 @@ msgstr ""
 "Intervalo no qual os contadores de tráfego de conexões ainda estabelecidas "
 "são atualizados a partir das informações do netlink."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr "O arquivo da cópia de segurança está inválido ou vazio"
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr "Despejo JSON"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr "Duração do intervalo contábil em dias."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr "Interfaces locais"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr "Subredes locais"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr "Quantidade máxima de entradas"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
@@ -387,49 +411,49 @@ msgstr ""
 "Quantidade máxima de períodos contábeis a serem mantidos, use zero para "
 "manter os bancos de dados para sempre."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr "Monitor da Largura de Banda Netlink"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr "Monitor da Largura de Banda Netlink - Cópia de Segurança / Restauração"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr "Monitor da Largura de Banda Netlink - Configuração"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr "Ainda não há dados registrados."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 "Somente os fluxos conntrack de ou para qualquer uma dessas redes são "
 "contabilizados."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 "Somente fluxos conntrack de ou para qualquer uma destas sub-redes são "
 "contabilizados."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr "Pré-alocar o banco de dados"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protocolo"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr "Mapeamento de Protocolos"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
@@ -440,41 +464,45 @@ msgstr ""
 "protocolo IP, o segundo valor o número da porta e a terceira coluna é o nome "
 "do protocolo mapeado."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr "Intervalo de atualização"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Restauração"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr "Restaurar a Cópia de Segurança do Banco de Dados"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr "Selecione o período contábil:"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "IP de Origem"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr "Data de Início"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 "Data de início do primeiro período contábil, por exemplo, início do contrato "
 "com o provedor de internet."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr "Períodos de armazenamento"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
@@ -483,11 +511,11 @@ msgstr ""
 "contabilidade de tráfego leve e eficiente que controla o uso da largura de "
 "banda por host e protocolo."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
-msgstr "Os seguintes arquivos de banco de dados foram restaurados: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
+msgstr "Os seguintes arquivos de banco de dados foram restaurados:"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
@@ -496,51 +524,55 @@ msgstr ""
 "fixando o limite em 0, permitirá que as bases de dados cresçam "
 "indefinidamente."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr "Tráfego / Host"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr "Distribuição de Tráfego"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr "Up. (Bytes)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr "Up. (Pcts.)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Envio"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr "Envio (Bytes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr "Envio (Pacotes)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr "Envio / Aplicação"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr "Vendedor: <big id=\"bubble-vendor\">Example Corp.</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Alerta"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
@@ -550,7 +582,7 @@ msgstr ""
 "arquivos de banco de dados torna o acesso aos dados antigos um pouco mais "
 "lentos, porém ajuda a reduzir o espaço de armazenamento."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
@@ -561,16 +593,19 @@ msgstr ""
 "serem capazes de satisfazer a alocação de memória após períodos de atividade "
 "mais longos."
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr "nenhum tráfego"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr "Outros"
+
+#~ msgid "Invalid or empty backup archive"
+#~ msgstr "O arquivo da cópia de segurança está inválido ou vazio"
index 10b9d92f788b8f8db4e8d7729e8347cd77f40eb7..8024afc6c6dce9afa3bbc861b9a91f19942b6000 100644 (file)
@@ -11,515 +11,547 @@ msgstr ""
 "20)) ? 1 : 2;\n"
 "X-Generator: Weblate 4.0-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Setări avansate"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Colectare date..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Configurare"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Setări generale"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 9a235e9b13fe193362b1b29ead9ba8420d518604..b71bc61a073c70710b365338f5a2ab595e190576 100644 (file)
@@ -16,151 +16,151 @@ msgstr ""
 "Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
 "интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d только IPv4 хост(а, ов)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d только IPv6 хост(а, ов)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr "%d хост(а, ов) с двумя стеками"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s и %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s, %s и %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1 — Перезапуск каждый последний день месяца"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7 — Перезапуск за неделю до конца месяца"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "1 — Перезапуск 1-го числа каждого месяца"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr "10m — частое сохранение, повышенный износ флеш памяти"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr "12h — компромисс между риском потери данных и нагрузкой на флеш память"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr "24h — наименьшая нагрузка на флеш память, но есть риск потери данных"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 "30s — обновлять два раза в минуту для поддержания актуальной текущей "
 "статистики"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 "5m — редкое обновление, для предотвращения частой очистки счётчиков conntrack"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr "60s — ежеминутное сохранение, подходит для не флеш накопителей"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr "<big id=\"conn-total\">0</big> соединений"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr "<big id=\"host-total\">0</big> хост(а, ов)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr "<big id=\"ipv6-hosts\">0%</big> скорости хостов через IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr "<big id=\"ipv6-rx\">0B</big> всего скачано по IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr "<big id=\"ipv6-share\">0%</big> от общего трафика — IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr "<big id=\"ipv6-tx\">0B</big> всего загружено по IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 "<big id=\"layer7-most-conn\">0</big> создают наибольшее число соединений"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr "<big id=\"layer7-most-rx\">0</big> создают наибольший объём скачивания"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr "<big id=\"layer7-most-tx\">0</big> создают наибольший объём загрузки"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr "<big id=\"layer7-total\">0</big> различных протоколов"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr "<big id=\"rx-total\">0</big> скачано"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr "<big id=\"tx-total\">0</big> загружено"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr "Отчётный период"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Дополнительные настройки"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr "Приложение"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr "Прикладные протоколы"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Резервная копия"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr "Мониторинг трафика"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr "CSV, сгруппированный по IP-адресам"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr "CSV, сгруппированный по MAC-адресам"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr "CSV, сгруппированный по протоколам"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
@@ -168,53 +168,53 @@ msgstr ""
 "Изменение типа отчётного периода сделает недействительными существующие базы "
 "данных!<br /><strong><a href=\"%s\">Скачать резервную копию</a></strong>."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 "Выберите «День месяца» для ежемесячного перезапуска отчётного периода в "
-"конкретное число месяца, например каждое 3-е число месяца.<br />Выберите «"
-"Фиксированный интервал», чтобы перезапускать отчётный период через каждые N "
+"конкретное число месяца, например каждое 3-е число месяца.<br />Выберите "
+"«Фиксированный интервал», чтобы перезапускать отчётный период через каждые N "
 "дней, начиная с заданной даты."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Сбор данных..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr "Интервал сохранения"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr "Сжатие базы данных"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Конфигурация"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr "Соед."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Соединения"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr "Соединения / Хост"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "Папка базы данных"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
@@ -222,11 +222,11 @@ msgstr ""
 "Папка хранения базы данных. В данной папке сохраняется по одному файлу за "
 "отчётный период."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr "День месяца"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
@@ -236,103 +236,127 @@ msgstr ""
 "значения для отсчёта с конца месяца, например, «-5», чтобы указать 27-е июля "
 "или 24-е февраля."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "Отобразить"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr "Скач. (байты)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr "Скач. (пакеты)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Скачивание"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr "Скачивание (байты)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr "Скачивание (пакеты)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr "Скачивание / Приложение"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr "Скачать резервную копию базы данных"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr "Хосты с двумя стеками"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr "Срок"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr "Экспорт"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr "Семейство"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr "Фиксированный интервал"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr "Принудительный перезапуск…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Основные настройки"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr "Создать резервную копию"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Хост"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr "Имя хоста: <big id=\"bubble-hostname\">example.org</big>"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr "IPv4 против IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr "Интервал"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
@@ -340,7 +364,7 @@ msgstr ""
 "Интервал, через который временная база данных в оперативной памяти "
 "сохраняется в папку постоянной базы данных."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
@@ -348,36 +372,36 @@ msgstr ""
 "Интервал обновления счётчиков трафика установленных соединений из информации "
 "netlink."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr "Неверный или пустой архив резервной копии"
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr "Дамп JSON"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr "Продолжительность учётного интервала в днях."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr "Локальные интерфейсы"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr "Локальные подсети"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr "Максимальное количество записей"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
@@ -385,45 +409,45 @@ msgstr ""
 "Максимальное количество отчётных периодов для хранения. Установка значения "
 "«0» позволяет хранить все периоды постоянно."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr "Netlink мониторинг трафика"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr "Netlink мониторинг трафика - Резервная копия / Восстановление"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr "Netlink мониторинг трафика - Настройка"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr "Данные еще не записаны."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr "Отслеживаются только соединения из или в любую из этих сетей."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr "Отслеживаются только соединения из или в любую из этих подсетей."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr "Выделить память для базы данных"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Протокол"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr "Сопоставление протоколов"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
@@ -433,41 +457,45 @@ msgstr ""
 "сопоставление протокола на строку. Первое значение определяет номер IP-"
 "протокола, второе значение — номер порта, третье — имя протокола."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr "Интервал обновления"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Восстановить"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr "Восстановление базы данных из резервной копии"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr "Выберите отчётный период:"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "IP-адрес источника"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr "Дата начала"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 "Дата начала первого отчётного периода, например, дата заключения договора с "
 "провайдером."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr "Сохранённые периоды"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
@@ -476,11 +504,11 @@ msgstr ""
 "учёта трафика, позволяющая отслеживать использование полосы пропускания "
 "канала для каждого хоста и/или протокола."
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
-msgstr "Восстановлены следующие файлы базы данных: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
+msgstr "Восстановлены следующие файлы базы данных:"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
@@ -488,51 +516,55 @@ msgstr ""
 "Максимальное количество записей, которые может быть помещено в базу данных. "
 "Значение «0» позволит базе данных расти бесконечно."
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr "Трафик / Хост"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr "Распределение трафика"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr "Загр. (байты)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr "Загр. (пакеты)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Загрузка"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr "Загрузка (байты)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr "Загрузка (пакеты)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr "Загрузка / Приложение"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr "Производитель: <big id=\"bubble-vendor\">Example Corp.</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Внимание"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
@@ -542,7 +574,7 @@ msgstr ""
 "базы данных сделает доступ к старым данным немного медленнее, но поможет "
 "снизить требования к хранилищу."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
@@ -553,20 +585,23 @@ msgstr ""
 "памяти, которые могут быть не в состоянии выделить необходимый объем памяти "
 "после долгой бесперебойной работы."
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr "нет трафика"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr "другие"
 
+#~ msgid "Invalid or empty backup archive"
+#~ msgstr "Неверный или пустой архив резервной копии"
+
 #~ msgid "Down. (Bytes / Pkts.)"
 #~ msgstr "Внутр. (Bytes / Pkts.)"
 
index 016dbc170667998f07c7f10c6a5c258d19bd3796..11f14c77305d31b19ea31557c321da92b545c664 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 "X-Generator: Weblate 4.0-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Pokročilé nastavenia"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Záloha"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Zbieram dáta..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Konfigurácia"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Pripojenia"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Všeobecné nastavenia"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protokol"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Obnoviť"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Odovzdať"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Upozornenie"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 20c5245daee61f295d918d26e0d9fd874db1577f..99fcc436631d3fe4ffa05e18a4c05ac6f5360fbc 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Avancerade inställningar"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Säkerhetskopiera"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Samlar in data..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Konfiguration"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Anslutningar"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "Visa"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Ladda ner"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Generella inställningar"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Värd"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Protokoll"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Återställ"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Varning"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 39c1cf3a1b455f46b58cf725da93f81c0cdb9a29..1150349e5118e16d6cfb817697db56a597e0e0b4 100644 (file)
 msgid ""
 msgstr "Content-Type: text/plain; charset=UTF-8"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index ed965131fbc9035a5cead7b21582a2007bddca81..1debc4c794d27ad7d87aacc71a1c1dfac4348e74 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Veri alınıyor..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 832c454cb7d84d9498a2663559dda52eeb8b519b..5098dfb75bb62af598429045351c19f34e75ed11 100644 (file)
@@ -11,515 +11,547 @@ msgstr ""
 "4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "Додаткові параметри"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "Резервне копіювання"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Збирання даних..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "Конфігурація"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "Підключення"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "Директорія бази даних"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "Завантажити"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "Загальні параметри"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "Вузол"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Протокол"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "Відновлення"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "Відвантажити"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "Застереження"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 8ebac1435ab52085bc47cf89d0d7337783a51a82..4a0ff65fd347abe0bb7b02912b4733d3914e2a3c 100644 (file)
@@ -10,515 +10,547 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Weblate 3.11-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
 "accounting period exactly every N days, beginning at a given date."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "Đang lấy dữ liệu..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
 "24th of February."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr ""
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "Giao thức"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
 "number and the third column is the name of the mapped protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
 "requirements."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
 "satisfy memory allocation after longer uptime periods."
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr ""
index 944506afe2c2c54d39219a02c1c08e3e6f9210bc..549602fff517599a69fb7f00746ade13a9f6f661 100644 (file)
@@ -13,147 +13,147 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Weblate 3.11\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d 台仅 IPv4 主机"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d 台仅 IPv6 主机"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr "%d 台双协议栈主机"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s 和 %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s,%s 和 %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1 - 每月的最后一天重新开始"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7 - 每月底前一周重新开始"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "1 - 每月的第一天重新开始"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr "10m - 频繁提交,闪存损耗的开销也增大"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr "12h - 平衡统计数据丢失的风险以及闪存使用寿命"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr "24h - 以数据丢失风险的代价换取最小的闪存损耗"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr "30s - 每分钟刷新二次以获得较准确的当前统计值"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr "5m - 较少刷新以避免频繁清除连接跟踪计数器"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr "60s - 每分钟提交,适用于非闪存类型存储"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr "连接:<big id=\"conn-total\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr "主机:<big id=\"host-total\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr "支持 IPv6 的主机比例:<big id=\"ipv6-hosts\">0%</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr "IPv6 总下载量:<big id=\"ipv6-rx\">0B</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr "IPv6 流量比例:<big id=\"ipv6-share\">0%</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr "IPv6 总上传量:<big id=\"ipv6-tx\">0B</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr "连接数最多的协议:<big id=\"layer7-most-conn\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr "下载量最大的协议:<big id=\"layer7-most-rx\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr "上传量最大的协议:<big id=\"layer7-most-tx\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr "应用层协议计数:<big id=\"layer7-total\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr "下载:<big id=\"rx-total\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr "上传:<big id=\"tx-total\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr "统计周期"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "高级设置"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr "应用层"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr "应用层协议"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "备份"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr "带宽监控"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr "CSV,按 IP 分组"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr "CSV,按 MAC 分组"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr "CSV,按协议分组"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
@@ -161,7 +161,7 @@ msgstr ""
 "更改统计周期类型会使现有数据库无效!<br /><strong><a href=\"%s\">下载备份</"
 "a></strong>。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
@@ -170,52 +170,52 @@ msgstr ""
 "选择“每月的某一天”来设置统计周期的重启时间,例如:每个月的第 3 天。选择“固定"
 "周期”来设置从给定日期开始每 N 天重启统计周期。"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "正在收集数据…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr "提交间隔"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr "压缩数据库"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "配置"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr "连接"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "连接"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr "连接 / 主机"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "数据库目录"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr "数据库存储目录。每个“统计周期”的文件将被放到这个目录中。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr "每月的某一天"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
@@ -224,188 +224,212 @@ msgstr ""
 "每个月重启统计周期的日期。使用负数表示从月底开始计算,例如:\"-5\" 可以表示7"
 "月27号或者2月24号。"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "显示"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr "下载量(字节)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr "下载量(包)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr "下载"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr "下载量(字节)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr "下载量(包)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr "下载 / 应用层协议"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr "下载数据库备份"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr "双协议栈主机"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr "重置日期"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr "导出"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr "协议簇"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr "固定周期"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr "强制重新加载…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "常规设置"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr "生成备份"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "主机"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr "主机名:<big id=\"bubble-hostname\">example.org</big>"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr "IPv4"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr "IPv4 与 IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr "周期"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr "将内存中的临时数据库提交到持久性数据库目录的间隔时间。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr "从 netlink 信息中刷新“已建立连接”的流量计数器的间隔时间。"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr "备份存档无效或为空"
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr "JSON 输出"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr "统计周期(天)。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr "本地接口"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr "本地子网"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr "最大条目"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr "保留的统计周期数据库的最大数量,设置 0 表示不限制。"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr "网络带宽监视器"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr "网络带宽监视器 - 备份 / 恢复"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr "网络带宽监视器 - 配置"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr "暂无数据记录。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr "仅统计来自或目标为这些网络接口的连接流量。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr "仅统计来自或目标为这些子网的连接流量。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr "预分配数据库"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "协议"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr "协议映射"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
@@ -414,39 +438,43 @@ msgstr ""
 "协议映射用于区分流量类型,每行一条。第一个值指定 IP 协议类型,第二个值是端口"
 "号,第三个值是映射的协议名称。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr "刷新间隔"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "恢复"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr "恢复数据库备份"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr "选择统计周期:"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "源 IP"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr "起始日期"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr "第一个统计周期的起始日期,例如:ISP 合约的起始日期。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr "储存周期"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
@@ -454,61 +482,65 @@ msgstr ""
 "网络带宽监视器(nlbwmon)是一个轻量、高效的流量统计程序,可以统计每个主机和协"
 "议的带宽使用情况。"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
-msgstr "以下数据库文件已恢复:%s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
+msgstr "以下数据库文件已恢复:"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr "数据库中的最大条目数量, 设置为 0 将允许数据库无限增长。"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr "流量 / 主机"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr "流量分布"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr "上传量(字节)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr "上传量(包)"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "上传"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr "上传量(字节)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr "上传量(包)"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr "上传 / 应用层协议"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr "供应商:<big id=\"bubble-vendor\">Example Corp.</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "警告"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
@@ -517,7 +549,7 @@ msgstr ""
 "是否使用 gzip 压缩数据库存档。压缩数据库文件会使访问旧数据稍微慢一些,但有助"
 "于减少存储占用空间。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
@@ -526,20 +558,23 @@ msgstr ""
 "是否预先分配数据库最大可能占用的内存大小。这主要适用于内存较小系统,这些系统"
 "在长时间运行之后可能无法满足数据库的内存需求。"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr "无流量数据"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr "其他"
 
+#~ msgid "Invalid or empty backup archive"
+#~ msgstr "备份存档无效或为空"
+
 #~ msgid "Down. (Bytes / Pkts.)"
 #~ msgstr "下载(字节 / 数据包)"
 
index 8d1005b4a2629310a2dd4709c1350ef9a96137af..e3d098d671429cbedaadcdbd4f175087eb4118c8 100644 (file)
@@ -13,147 +13,147 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Weblate 4.0-dev\n"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:661
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:550
 msgid "%d IPv4-only hosts"
 msgstr "%d 臺僅 IPv4 主機"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:668
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:557
 msgid "%d IPv6-only hosts"
 msgstr "%d 臺僅 IPv6 主機"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:675
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:564
 msgid "%d dual-stack hosts"
 msgstr "%d 臺雙協議棧主機"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:71
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:114
 msgid "%s and %s"
 msgstr "%s 和 %s"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:112
 msgid "%s, %s and %s"
 msgstr "%s,%s 和 %s"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:68
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:93
 msgid "-1 - Restart every last day of month"
 msgstr "-1 - 每月的最後一天重新開始"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:69
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:94
 msgid "-7 - Restart a week before end of month"
 msgstr "-7 - 每月底前一週重新開始"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:67
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:92
 msgid "1 - Restart every 1st of month"
 msgstr "1 - 每月的第一天重新開始"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:183
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:158
 msgid "10m - frequent commits at the expense of flash wear"
 msgstr "10m - 頻繁提交,快閃記憶體損耗的開銷也增大"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:182
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:157
 msgid "12h - compromise between risk of data loss and flash wear"
 msgstr "12h - 平衡統計資料丟失的風險以及快閃記憶體使用壽命"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:181
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:156
 msgid "24h - least flash wear at the expense of data loss risk"
 msgstr "24h - 以資料丟失風險的代價換取最小的快閃記憶體損耗"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:191
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:163
 msgid "30s - refresh twice per minute for reasonably current stats"
 msgstr "30s - 每分鐘重新整理二次以獲得較準確的當前統計值"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:192
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:164
 msgid "5m - rarely refresh to avoid frequently clearing conntrack counters"
 msgstr "5m - 較少重新整理以避免頻繁清除連線跟蹤計數器"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:184
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:159
 msgid "60s - commit minutely, useful for non-flash storage"
 msgstr "60s - 每分鐘提交,適用於非快閃記憶體型別儲存"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:40
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:839
 msgid "<big id=\"conn-total\">0</big> connections"
 msgstr "連線:<big id=\"conn-total\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:37
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:836
 msgid "<big id=\"host-total\">0</big> hosts"
 msgstr "主機:<big id=\"host-total\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:114
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:915
 msgid "<big id=\"ipv6-hosts\">0%</big> IPv6 support rate among hosts"
 msgstr "支援 IPv6 的主機比例:<big id=\"ipv6-hosts\">0%</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:116
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:917
 msgid "<big id=\"ipv6-rx\">0B</big> total IPv6 download"
 msgstr "IPv6 總下載量:<big id=\"ipv6-rx\">0B</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:115
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:916
 msgid "<big id=\"ipv6-share\">0%</big> of the total traffic is IPv6"
 msgstr "IPv6 流量比例:<big id=\"ipv6-share\">0%</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:117
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:918
 msgid "<big id=\"ipv6-tx\">0B</big> total IPv6 upload"
 msgstr "IPv6 總上傳量:<big id=\"ipv6-tx\">0B</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:79
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:879
 msgid "<big id=\"layer7-most-conn\">0</big> cause the most connections"
 msgstr "連線數最多的協議:<big id=\"layer7-most-conn\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:77
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:877
 msgid "<big id=\"layer7-most-rx\">0</big> cause the most download"
 msgstr "下載量最大的協議:<big id=\"layer7-most-rx\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:78
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:878
 msgid "<big id=\"layer7-most-tx\">0</big> cause the most upload"
 msgstr "上傳量最大的協議:<big id=\"layer7-most-tx\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:76
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:876
 msgid "<big id=\"layer7-total\">0</big> different application protocols"
 msgstr "應用層協議計數:<big id=\"layer7-total\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:38
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:837
 msgid "<big id=\"rx-total\">0</big> download"
 msgstr "下載:<big id=\"rx-total\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:39
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:838
 msgid "<big id=\"tx-total\">0</big> upload"
 msgstr "上傳:<big id=\"tx-total\">0</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:63
 msgid "Accounting period"
 msgstr "統計週期"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:21
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:60
 msgid "Advanced Settings"
 msgstr "進階設定"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:85
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:886
 msgid "Application"
 msgstr "應用層"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:862
 msgid "Application Protocols"
 msgstr "應用層協議"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:10
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:33
 msgid "Backup"
 msgstr "備份"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:7
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:3
 msgid "Bandwidth Monitor"
 msgstr "頻寬監控"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:142
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:953
 msgid "CSV, grouped by IP"
 msgstr "CSV,按 IP 分組"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:141
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:947
 msgid "CSV, grouped by MAC"
 msgstr "CSV,按 MAC 分組"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:143
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:959
 msgid "CSV, grouped by protocol"
 msgstr "CSV,按協議分組"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:52
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:76
 msgid ""
 "Changing the accounting interval type will invalidate existing databases!"
 "<br /><strong><a href=\"%s\">Download backup</a></strong>."
@@ -161,7 +161,7 @@ msgstr ""
 "更改統計週期型別會使現有資料庫無效!<br /><strong><a href=\"%s\">下載備份</"
 "a></strong>。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:64
 msgid ""
 "Choose \"Day of month\" to restart the accounting period monthly on a "
 "specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the "
@@ -170,52 +170,52 @@ msgstr ""
 "選擇“每月的某一天”來設定統計週期的重啟時間,例如:每個月的第 3 天。選擇“固定"
 "週期”來設定從給定日期開始每 N 天重啟統計週期。"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:56
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:94
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:133
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:856
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:895
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:935
 msgid "Collecting data..."
 msgstr "收集資料中..."
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:177
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:154
 msgid "Commit interval"
 msgstr "提交間隔"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:164
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:148
 msgid "Compress database"
 msgstr "壓縮資料庫"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:9
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:24
 msgid "Configuration"
 msgstr "配置"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:302
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:615
 msgid "Conn."
 msgstr "連線"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:48
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:86
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:848
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:887
 msgid "Connections"
 msgstr "連線數"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:31
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:830
 msgid "Connections / Host"
 msgstr "連線 / 主機"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:195
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:166
 msgid "Database directory"
 msgstr "資料庫目錄"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:196
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:167
 msgid ""
 "Database storage directory. One file per accounting period will be placed "
 "into this directory."
 msgstr "資料庫儲存目錄。每個“統計週期”的檔案將被放到這個目錄中。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:72
 msgid "Day of month"
 msgstr "每月的某一天"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:63
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:84
 msgid ""
 "Day of month to restart the accounting period. Use negative values to count "
 "towards the end of month, e.g. \"-5\" to specify the 27th of July or the "
@@ -224,188 +224,212 @@ msgstr ""
 "每個月重啟統計週期的日期。使用負數表示從月底開始計算,例如:\"-5\" 可以表示7"
 "月27號或者2月24號。"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:8
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:24
+msgid "Dismiss"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json:15
 msgid "Display"
 msgstr "顯示"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:303
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:616
 msgid "Down. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:304
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:617
 msgid "Down. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:285
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:598
 msgid "Download"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:49
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:87
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:126
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:849
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:888
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:928
 msgid "Download (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:50
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:88
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:127
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:850
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:889
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:929
 msgid "Download (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:65
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:865
 msgid "Download / Application"
 msgstr "下載 / 應用層協議"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:25
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:58
 msgid "Download Database Backup"
 msgstr "下載資料庫備份"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:108
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:909
 msgid "Dualstack enabled hosts"
 msgstr "雙協議棧主機"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:62
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:83
 msgid "Due date"
 msgstr "重置日期"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:139
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:941
 msgid "Export"
 msgstr "匯出"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:125
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:791
+msgid "Failed to commit database: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:45
+msgid "Failed to download backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:780
+msgid "Failed to download traffic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:28
+msgid "Failed to restore backup archive: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:927
 msgid "Family"
 msgstr "協議簇"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:29
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:73
 msgid "Fixed interval"
 msgstr "固定週期"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:476
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:534
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:639
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:367
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:424
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:528
 msgid "Force reload…"
 msgstr "強制重新載入…"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:20
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:59
 msgid "General Settings"
 msgstr "基本設定"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:28
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:62
 msgid "Generate Backup"
 msgstr "生成備份"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:46
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:123
+#: applications/luci-app-nlbwmon/root/usr/share/rpcd/acl.d/luci-app-nlbwmon.json:3
+msgid "Grant UCI access for luci-app-nlbwmon"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:846
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:925
 msgid "Host"
 msgstr "主機"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:294
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:607
 msgid "Hostname: <big id=\"bubble-hostname\">example.org</big>"
 msgstr "主機名:<big id=\"bubble-hostname\">example.org</big>"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:624
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:513
 msgid "IPv4"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:103
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:904
 msgid "IPv4 vs. IPv6"
 msgstr "IPv4 與 IPv6"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:625
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:100
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:514
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:901
 msgid "IPv6"
 msgstr "IPv6"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:95
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:108
 msgid "Interval"
 msgstr "週期"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:178
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:155
 msgid ""
 "Interval at which the temporary in-memory database is committed to the "
 "persistent database directory."
 msgstr "將記憶體中的臨時資料庫提交到永續性資料庫目錄的間隔時間。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:188
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:162
 msgid ""
 "Interval at which traffic counters of still established connections are "
 "refreshed from netlink information."
 msgstr "從 netlink 資訊中重新整理“已建立連線”的流量計數器的間隔時間。"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:197
-msgid "Invalid or empty backup archive"
-msgstr "備份存檔無效或為空"
-
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:144
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:965
 msgid "JSON dump"
 msgstr "JSON 輸出"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:96
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:109
 msgid "Length of accounting interval in days."
 msgstr "統計週期(天)。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:110
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:120
 msgid "Local interfaces"
 msgstr "本地介面"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:134
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:129
 msgid "Local subnets"
 msgstr "本地子網"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:47
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:124
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:847
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:926
 msgid "MAC"
 msgstr "MAC"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:152
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:76
+msgid "Malformed data received"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:141
 msgid "Maximum entries"
 msgstr "最大條目"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:171
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:152
 msgid ""
 "Maximum number of accounting periods to keep, use zero to keep databases "
 "forever."
 msgstr "保留的統計週期數據庫的最大數量,設定 0 表示不限制。"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:818
 msgid "Netlink Bandwidth Monitor"
 msgstr "網路頻寬監視器"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:9
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:51
 msgid "Netlink Bandwidth Monitor - Backup / Restore"
 msgstr "網路頻寬監視器 - 備份 / 恢復"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:52
 msgid "Netlink Bandwidth Monitor - Configuration"
 msgstr "網路頻寬監視器 - 配置"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:475
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:533
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:638
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:363
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:423
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:527
 msgid "No data recorded yet."
 msgstr "暫無資料記錄。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:111
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:121
 msgid "Only conntrack streams from or to any of these networks are counted."
 msgstr "僅統計來自或目標為這些網路介面的連線流量。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:135
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:130
 msgid "Only conntrack streams from or to any of these subnets are counted."
 msgstr "僅統計來自或目標為這些子網的連線流量。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:158
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:144
 msgid "Preallocate database"
 msgstr "預分配資料庫"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:451
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:339
 msgid "Protocol"
 msgstr "協議"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:22
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid "Protocol Mapping"
 msgstr "協議對映"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:61
 msgid ""
 "Protocol mappings to distinguish traffic types per host, one mapping per "
 "line. The first value specifies the IP protocol, the second value the port "
@@ -414,39 +438,43 @@ msgstr ""
 "協議對映用於區分流量型別,每行一條。第一個值指定 IP 協議型別,第二個值是埠"
 "號,第三個值是對映的協議名稱。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:187
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:161
 msgid "Refresh interval"
 msgstr "重新整理間隔"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:17
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:56
 msgid "Restore"
 msgstr "恢復"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/backup.htm:12
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:52
 msgid "Restore Database Backup"
 msgstr "恢復資料庫備份"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:16
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:20
+msgid "Restore complete"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:285
 msgid "Select accounting period:"
 msgstr "選擇統計週期:"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:446
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:334
 msgid "Source IP"
 msgstr "源 IP"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:80
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:96
 msgid "Start date"
 msgstr "起始日期"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:81
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:97
 msgid "Start date of the first accounting period, e.g. begin of ISP contract."
 msgstr "第一個統計週期的起始日期,例如:ISP 合約的起始日期。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:170
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:151
 msgid "Stored periods"
 msgstr "儲存週期"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:13
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:53
 msgid ""
 "The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic "
 "accounting program keeping track of bandwidth usage per host and protocol."
@@ -454,61 +482,65 @@ msgstr ""
 "網路頻寬監視器(nlbwmon)是一個輕量、高效的流量統計程式,可以統計每個主機和協"
 "議的頻寬使用情況。"
 
-#: applications/luci-app-nlbwmon/luasrc/controller/nlbw.lua:216
-msgid "The following database files have been restored: %s"
-msgstr "以下資料庫檔案已恢復:%s"
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/backup.js:21
+msgid "The following database files have been restored:"
+msgstr "以下資料庫檔案已恢復:"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:153
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:142
 msgid ""
 "The maximum amount of entries that should be put into the database, setting "
 "the limit to 0 will allow databases to grow indefinitely."
 msgstr "資料庫中的最大條目數量, 設定為 0 將允許資料庫無限增長。"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:26
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:825
 msgid "Traffic / Host"
 msgstr "流量 / 主機"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:23
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:822
 msgid "Traffic Distribution"
 msgstr "流量分佈"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:305
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:92
+msgid "Unable to fetch traffic statistic data: %s"
+msgstr ""
+
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:618
 msgid "Up. (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:306
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:619
 msgid "Up. (Pkts.)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:289
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:602
 msgid "Upload"
 msgstr "上傳"
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:51
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:89
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:128
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:851
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:890
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:930
 msgid "Upload (Bytes)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:52
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:90
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:129
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:852
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:891
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:931
 msgid "Upload (Packets)"
 msgstr ""
 
-#: applications/luci-app-nlbwmon/luasrc/view/nlbw/display.htm:70
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:870
 msgid "Upload / Application"
 msgstr "上傳 / 應用層協議"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:295
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:608
 msgid "Vendor: <big id=\"bubble-vendor\">Example Corp.</big>"
 msgstr "供應商:<big id=\"bubble-vendor\">Example Corp.</big>"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:51
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:75
 msgid "Warning"
 msgstr "警告"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:165
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:149
 msgid ""
 "Whether to gzip compress archive databases. Compressing the database files "
 "makes accessing old data slightly slower but helps to reduce storage "
@@ -517,7 +549,7 @@ msgstr ""
 "是否使用 gzip 壓縮資料庫存檔。壓縮資料庫檔案會使訪問舊資料稍微慢一些,但有助"
 "於減少儲存佔用空間。"
 
-#: applications/luci-app-nlbwmon/luasrc/model/cbi/nlbw/config.lua:159
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/config.js:145
 msgid ""
 "Whether to preallocate the maximum possible database size in memory. This is "
 "mainly useful for memory constrained systems which might not be able to "
@@ -526,20 +558,23 @@ msgstr ""
 "是否預先分配資料庫最大可能佔用的記憶體大小。這主要適用於記憶體較小系統,這些"
 "系統在長時間執行之後可能無法滿足資料庫的記憶體需求。"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:88
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:130
 msgid "no traffic"
 msgstr "無流量資料"
 
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:315
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:327
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:332
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:447
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:504
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:517
-#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw.js:522
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:335
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:394
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:407
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:412
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:628
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:640
+#: applications/luci-app-nlbwmon/htdocs/luci-static/resources/view/nlbw/display.js:645
 msgid "other"
 msgstr "其他"
 
+#~ msgid "Invalid or empty backup archive"
+#~ msgstr "備份存檔無效或為空"
+
 #~ msgid "Down. (Bytes / Pkts.)"
 #~ msgstr "下載(位元組 / 資料包)"
 
diff --git a/applications/luci-app-nlbwmon/root/usr/libexec/nlbwmon-action b/applications/luci-app-nlbwmon/root/usr/libexec/nlbwmon-action
new file mode 100755 (executable)
index 0000000..89e5177
--- /dev/null
@@ -0,0 +1,117 @@
+#!/bin/sh
+
+case "$1" in
+
+       backup)
+               dbdir=$(uci -q get nlbwmon.@nlbwmon[0].database_directory)
+
+               if [ ! -d "${dbdir:-/var/lib/nlbwmon}" ]; then
+                       echo "Unable to locate database directory" >&2
+                       exit 1
+               fi
+
+               exec /bin/tar -C "${dbdir:-/var/lib/nlbwmon}" -c -z . -f -
+       ;;
+
+       commit)
+               exec /usr/sbin/nlbw -c commit
+       ;;
+
+       download)
+               shift
+
+               type=json
+               delim=,
+               period=
+               group_by=
+               order_by=
+
+               while [ -n "$1" ]; do
+                       case "$1" in
+                               -f)
+                                       case "$2" in
+                                               csv|json) type=$2 ;;
+                                               *) echo "Invalid data format" >&2; exit 1 ;;
+                                       esac
+                                       shift
+                               ;;
+                               -s)
+                                       case "$2" in
+                                               ?) delim=$2 ;;
+                                               *) echo "Invalid delimitter" >&2; exit 1 ;;
+                                       esac
+                                       shift
+                               ;;
+                               -t)
+                                       case "$2" in
+                                               [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]) period=$2 ;;
+                                               *) echo "Invalid period" >&2; exit 1 ;;
+                                       esac
+                                       shift
+                               ;;
+                               -g|-o)
+                                       case "$1:$2" in
+                                               -g:?*) group_by=$2 ;;
+                                               -o:?*) order_by=$2 ;;
+                                               *) echo "Argument required for $1" >&2; exit 1 ;;
+                                       esac
+                                       shift
+                               ;;
+                               *)
+                                       echo "Unknown option $1" >&2
+                                       exit 1
+                               ;;
+                       esac
+                       shift
+               done
+
+               exec /usr/sbin/nlbw -c $type -s$delim \
+                       ${period:+-t $period} \
+                       ${group_by:+-g "$group_by"} \
+                       ${order_by:+-o "$order_by"}
+       ;;
+
+       periods)
+               for date in $(/usr/sbin/nlbw -c list); do
+                       case "$date" in
+                               [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9])
+                                       res="${res:+$res, }\"$date\""
+                               ;;
+                       esac
+               done
+
+               printf '{ "periods": [ %s ] }' "$res"
+       ;;
+
+       restore)
+               if [ ! -f /tmp/nlbw-restore.tar.gz ]; then
+                       echo "Unable to locate archive to restore" >&2
+                       exit 1
+               fi
+
+               dbdir=$(uci -q get nlbwmon.@nlbwmon[0].database_directory)
+               files=$(/bin/tar -tzf /tmp/nlbw-restore.tar.gz | grep -E '^(\./)?[0-9]{8}\.db(\.gz)?$' | tr '\n' ' ')
+
+               if [ -z "$files" ]; then
+                       echo "Invalid or empty backup archive" >&2
+                       exit 1
+               fi
+
+               /etc/init.d/nlbwmon stop
+               /bin/mkdir -p "${dbdir:-/var/lib/nlbwmon}"
+
+               for file in $(/bin/tar -C "${dbdir:-/var/lib/nlbwmon}" -vxzf /tmp/nlbw-restore.tar.gz $files); do
+                       res="${res:+$res, }\"${file#./}\""
+               done
+
+               /bin/rm -f /tmp/nlbw-restore.tar.gz
+               /etc/init.d/nlbwmon start
+
+               printf '{ "restored": [ %s ] }' "$res"
+       ;;
+
+       *)
+               echo "Usage: $0 {commit|download|periods|restore}" >&2
+               exit 1
+       ;;
+esac
diff --git a/applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json b/applications/luci-app-nlbwmon/root/usr/share/luci/menu.d/luci-app-nlbwmon.json
new file mode 100644 (file)
index 0000000..5b597c6
--- /dev/null
@@ -0,0 +1,40 @@
+{
+       "admin/nlbw": {
+               "title": "Bandwidth Monitor",
+               "order": 80,
+               "action": {
+                       "type": "firstchild"
+               },
+               "depends": {
+                       "acl": [ "luci-app-nlbwmon" ],
+                       "uci": { "nlbwmon": true }
+               }
+       },
+
+       "admin/nlbw/display": {
+               "title": "Display",
+               "order": 1,
+               "action": {
+                       "type": "view",
+                       "path": "nlbw/display"
+               }
+       },
+
+       "admin/nlbw/config": {
+               "title": "Configuration",
+               "order": 2,
+               "action": {
+                       "type": "view",
+                       "path": "nlbw/config"
+               }
+       },
+
+       "admin/nlbw/backup": {
+               "title": "Backup",
+               "order": 3,
+               "action": {
+                       "type": "view",
+                       "path": "nlbw/backup"
+               }
+       }
+}
index 0ccc5b1c3609b5f8b71647583de331d3ff429026..20f05eef03a69208602fe159e89cefd893abb541 100644 (file)
@@ -2,9 +2,31 @@
        "luci-app-nlbwmon": {
                "description": "Grant UCI access for luci-app-nlbwmon",
                "read": {
+                       "cgi-io": [ "exec" ],
+                       "file": {
+                               "/proc/sys/kernel/hostname": [ "read" ],
+                               "/usr/libexec/nlbwmon-action backup": [ "exec" ],
+                               "/usr/libexec/nlbwmon-action download *": [ "exec" ],
+                               "/usr/libexec/nlbwmon-action periods": [ "exec" ],
+                               "/usr/share/nlbwmon/protocols": [ "read" ]
+                       },
+                       "ubus": {
+                               "file": [ "read" ],
+                               "luci-rpc": [ "getHostHints" ],
+                               "network.rrdns": [ "lookup" ]
+                       },
                        "uci": [ "nlbwmon" ]
                },
                "write": {
+                       "file": {
+                               "/tmp/nlbw-restore.tar.gz": [ "write" ],
+                               "/usr/libexec/nlbwmon-action commit": [ "exec" ],
+                               "/usr/libexec/nlbwmon-action restore": [ "exec" ],
+                               "/usr/share/nlbwmon/protocols": [ "write" ]
+                       },
+                       "ubus": {
+                               "file": [ "write" ]
+                       },
                        "uci": [ "nlbwmon" ]
                }
        }