summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-firewall
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2020-01-19 16:08:47 +0100
committerJo-Philipp Wich <jo@mein.io>2020-01-19 16:22:47 +0100
commit7944b0a90bbb0f0f5d1da5eaf5d9906ac546c44b (patch)
tree5ebe11f9fe5b310f6b1863cb3349a3141eea9409 /applications/luci-app-firewall
parent601c4ee01e21f4da3fc615196d21fde72bfbaee9 (diff)
luci-app-firewall: rework rule descriptions, deduplicate code
Use a simple custom format string DSL to assemble the rule description texts in the overview page. Also move common code for shared, complex cbi options to the firewall tool class. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'applications/luci-app-firewall')
-rw-r--r--applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js564
-rw-r--r--applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js237
-rw-r--r--applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js289
-rw-r--r--applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js258
-rw-r--r--applications/luci-app-firewall/po/bg/firewall.po764
-rw-r--r--applications/luci-app-firewall/po/ca/firewall.po840
-rw-r--r--applications/luci-app-firewall/po/cs/firewall.po845
-rw-r--r--applications/luci-app-firewall/po/de/firewall.po971
-rw-r--r--applications/luci-app-firewall/po/el/firewall.po783
-rw-r--r--applications/luci-app-firewall/po/en/firewall.po758
-rw-r--r--applications/luci-app-firewall/po/es/firewall.po972
-rw-r--r--applications/luci-app-firewall/po/fr/firewall.po822
-rw-r--r--applications/luci-app-firewall/po/he/firewall.po758
-rw-r--r--applications/luci-app-firewall/po/hi/firewall.po764
-rw-r--r--applications/luci-app-firewall/po/hu/firewall.po944
-rw-r--r--applications/luci-app-firewall/po/it/firewall.po856
-rw-r--r--applications/luci-app-firewall/po/ja/firewall.po924
-rw-r--r--applications/luci-app-firewall/po/ko/firewall.po772
-rw-r--r--applications/luci-app-firewall/po/mr/firewall.po764
-rw-r--r--applications/luci-app-firewall/po/ms/firewall.po764
-rw-r--r--applications/luci-app-firewall/po/no/firewall.po845
-rw-r--r--applications/luci-app-firewall/po/pl/firewall.po970
-rw-r--r--applications/luci-app-firewall/po/pt-br/firewall.po930
-rw-r--r--applications/luci-app-firewall/po/pt/firewall.po943
-rw-r--r--applications/luci-app-firewall/po/ro/firewall.po791
-rw-r--r--applications/luci-app-firewall/po/ru/firewall.po972
-rw-r--r--applications/luci-app-firewall/po/sk/firewall.po764
-rw-r--r--applications/luci-app-firewall/po/sv/firewall.po851
-rw-r--r--applications/luci-app-firewall/po/templates/firewall.pot758
-rw-r--r--applications/luci-app-firewall/po/tr/firewall.po764
-rw-r--r--applications/luci-app-firewall/po/uk/firewall.po925
-rw-r--r--applications/luci-app-firewall/po/vi/firewall.po764
-rw-r--r--applications/luci-app-firewall/po/zh-cn/firewall.po930
-rw-r--r--applications/luci-app-firewall/po/zh-tw/firewall.po927
34 files changed, 13888 insertions, 12895 deletions
diff --git a/applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js b/applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js
index e983035b3..c60bfd028 100644
--- a/applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js
+++ b/applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js
@@ -36,10 +36,12 @@ var protocols = [
'esp', 50, 'IPSEC-ESP',
'ah', 51, 'IPSEC-AH',
'skip', 57, 'SKIP',
+ 'icmpv6', 58, 'IPv6-ICMP',
'ipv6-icmp', 58, 'IPv6-ICMP',
'ipv6-nonxt', 59, 'IPv6-NoNxt',
'ipv6-opts', 60, 'IPv6-Opts',
- 'rspf', 73, 'RSPF', 'CPHB',
+ 'rspf', 73, 'RSPF',
+ 'rspf', 73, 'CPHB',
'vmtp', 81, 'VMTP',
'eigrp', 88, 'EIGRP',
'ospf', 89, 'OSPFIGP',
@@ -54,6 +56,8 @@ var protocols = [
'isis', 124, 'ISIS',
'sctp', 132, 'SCTP',
'fc', 133, 'FC',
+ 'mh', 135, 'Mobility-Header',
+ 'ipv6-mh', 135, 'Mobility-Header',
'mobility-header', 135, 'Mobility-Header',
'udplite', 136, 'UDPLite',
'mpls-in-ip', 137, 'MPLS-in-IP',
@@ -72,243 +76,184 @@ function lookupProto(x) {
for (var i = 0; i < protocols.length; i += 3)
if (s == protocols[i] || s == protocols[i+1])
- return [ protocols[i+1], protocols[i+2] ];
+ return [ protocols[i+1], protocols[i+2], protocols[i] ];
- return [ -1, x ];
+ return [ -1, x, x ];
}
-
return L.Class.extend({
- fmt_neg: function(x) {
- var rv = E([]),
- v = (typeof(x) == 'string') ? x.replace(/^ *! */, '') : '';
-
- L.dom.append(rv, (v != '' && v != x) ? [ _('not') + ' ', v ] : [ '', x ]);
- return rv;
- },
-
- fmt_mac: function(x) {
- var rv = E([]), l = L.toArray(x);
-
- if (l.length == 0)
- return null;
-
- L.dom.append(rv, [ _('MAC') + ' ' ]);
-
- for (var i = 0; i < l.length; i++) {
- var n = this.fmt_neg(l[i]);
- L.dom.append(rv, (i > 0) ? [ ', ', n ] : n);
+ fmt: function(fmtstr, args, values) {
+ var repl = [],
+ wrap = false,
+ tokens = [];
+
+ if (values == null) {
+ values = [];
+ wrap = true;
}
- if (rv.childNodes.length > 2)
- rv.firstChild.data = _('MACs') + ' ';
+ var get = function(args, key) {
+ var names = key.trim().split(/\./),
+ obj = args,
+ ctx = obj;
- return rv;
- },
-
- fmt_port: function(x, d) {
- var rv = E([]), l = L.toArray(x);
+ for (var i = 0; i < names.length; i++) {
+ if (!L.isObject(obj))
+ return null;
- if (l.length == 0) {
- if (d) {
- L.dom.append(rv, E('var', {}, d));
- return rv;
+ ctx = obj;
+ obj = obj[names[i]];
}
- return null;
- }
-
- L.dom.append(rv, [ _('port') + ' ' ]);
+ if (typeof(obj) == 'function')
+ return obj.call(ctx);
- for (var i = 0; i < l.length; i++) {
- var n = this.fmt_neg(l[i]),
- m = n.lastChild.data.match(/^(\d+)\D+(\d+)$/);
+ return obj;
+ };
- if (i > 0)
- L.dom.append(rv, [ ', ' ]);
+ var isset = function(val) {
+ if (L.isObject(val) && !L.dom.elem(val)) {
+ for (var k in val)
+ if (val.hasOwnProperty(k))
+ return true;
- if (m) {
- rv.firstChild.data = _('ports') + ' ';
- L.dom.append(rv, E('var', [ n.firstChild, m[1], '-', m[2] ]));
+ return false;
+ }
+ else if (Array.isArray(val)) {
+ return (val.length > 0);
}
else {
- L.dom.append(rv, E('var', {}, n));
+ return (val !== null && val !== undefined && val !== '' && val !== false);
}
- }
-
- if (rv.childNodes.length > 2)
- rv.firstChild.data = _('ports') + ' ';
-
- return rv;
- },
-
- fmt_ip: function(x, d) {
- var rv = E([]), l = L.toArray(x);
+ };
- if (l.length == 0) {
- if (d) {
- L.dom.append(rv, E('var', {}, d));
- return rv;
+ var parse = function(tokens, text) {
+ if (L.dom.elem(text)) {
+ tokens.push('<span data-fmt-placeholder="%d"></span>'.format(values.length));
+ values.push(text);
}
+ else {
+ tokens.push(String(text).replace(/\\(.)/g, '$1'));
+ }
+ };
- return null;
+ for (var i = 0, last = 0; i <= fmtstr.length; i++) {
+ if (fmtstr.charAt(i) == '%' && fmtstr.charAt(i + 1) == '{') {
+ if (i > last)
+ parse(tokens, fmtstr.substring(last, i));
+
+ var j = i + 1, nest = 0;
+
+ var subexpr = [];
+
+ for (var off = j + 1, esc = false; j <= fmtstr.length; j++) {
+ var ch = fmtstr.charAt(j);
+
+ if (esc) {
+ esc = false;
+ }
+ else if (ch == '\\') {
+ esc = true;
+ }
+ else if (ch == '{') {
+ nest++;
+ }
+ else if (ch == '}') {
+ if (--nest == 0) {
+ subexpr.push(fmtstr.substring(off, j));
+ break;
+ }
+ }
+ else if (ch == '?' || ch == ':' || ch == '#') {
+ if (nest == 1) {
+ subexpr.push(fmtstr.substring(off, j));
+ subexpr.push(ch);
+ off = j + 1;
+ }
+ }
+ }
+
+ var varname = subexpr[0].trim(),
+ op1 = (subexpr[1] != null) ? subexpr[1] : '?',
+ if_set = (subexpr[2] != null && subexpr[2] != '') ? subexpr[2] : '%{' + varname + '}',
+ op2 = (subexpr[3] != null) ? subexpr[3] : ':',
+ if_unset = (subexpr[4] != null) ? subexpr[4] : '';
+
+ /* Invalid expression */
+ if (nest != 0 || subexpr.length > 5 || varname == '') {
+ return fmtstr;
+ }
+
+ /* enumeration */
+ else if (op1 == '#' && subexpr.length == 3) {
+ var items = L.toArray(get(args, varname));
+
+ for (var k = 0; k < items.length; k++) {
+ tokens.push.apply(tokens, this.fmt(if_set, Object.assign({}, args, {
+ first: k == 0,
+ next: k > 0,
+ last: (k + 1) == items.length,
+ item: items[k]
+ }), values));
+ }
+ }
+
+ /* ternary expression */
+ else if (op1 == '?' && op2 == ':' && (subexpr.length == 1 || subexpr.length == 3 || subexpr.length == 5)) {
+ var val = get(args, varname);
+
+ if (subexpr.length == 1)
+ parse(tokens, isset(val) ? val : '');
+ else if (isset(val))
+ tokens.push.apply(tokens, this.fmt(if_set, args, values));
+ else
+ tokens.push.apply(tokens, this.fmt(if_unset, args, values));
+ }
+
+ /* unrecognized command */
+ else {
+ return fmtstr;
+ }
+
+ last = j + 1;
+ i = j;
+ }
+ else if (i >= fmtstr.length) {
+ if (i > last)
+ parse(tokens, fmtstr.substring(last, i));
+ }
}
- L.dom.append(rv, [ _('IP') + ' ' ]);
-
- for (var i = 0; i < l.length; i++) {
- var n = this.fmt_neg(l[i]),
- m = n.lastChild.data.match(/^(\S+)\/(\d+\.\S+)$/);
+ if (wrap) {
+ var node = E('span', {}, tokens.join('')),
+ repl = node.querySelectorAll('span[data-fmt-placeholder]');
- if (i > 0)
- L.dom.append(rv, [ ', ' ]);
+ for (var i = 0; i < repl.length; i++)
+ repl[i].parentNode.replaceChild(values[repl[i].getAttribute('data-fmt-placeholder')], repl[i]);
- if (m)
- rv.firstChild.data = _('IP range') + ' ';
- else if (n.lastChild.data.match(/^[a-zA-Z0-9_]+$/))
- rv.firstChild.data = _('Network') + ' ';
-
- L.dom.append(rv, E('var', {}, n));
+ return node;
}
-
- if (rv.childNodes.length > 2)
- rv.firstChild.data = _('IPs') + ' ';
-
- return rv;
- },
-
- fmt_zone: function(x, d) {
- if (x == '*')
- return E('var', _('any zone'));
- else if (x != null && x != '')
- return E('var', {}, [ x ]);
- else if (d != null && d != '')
- return E('var', {}, d);
- else
- return null;
- },
-
- fmt_icmp_type: function(x) {
- var rv = E([]), l = L.toArray(x);
-
- if (l.length == 0)
- return null;
-
- L.dom.append(rv, [ _('type') + ' ' ]);
-
- for (var i = 0; i < l.length; i++) {
- var n = this.fmt_neg(l[i]);
-
- if (i > 0)
- L.dom.append(rv, [ ', ' ]);
-
- L.dom.append(rv, E('var', {}, n));
+ else {
+ return tokens;
}
-
- if (rv.childNodes.length > 2)
- rv.firstChild.data = _('types') + ' ';
-
- return rv;
- },
-
- fmt_family: function(family) {
- if (family == 'ipv4')
- return _('IPv4');
- else if (family == 'ipv6')
- return _('IPv6');
- else
- return _('IPv4 and IPv6');
},
- fmt_proto: function(x, icmp_types) {
- var rv = E([]), l = L.toArray(x);
-
- if (l.length == 0)
- return null;
-
- var t = this.fmt_icmp_type(icmp_types);
+ map_invert: function(v, fn) {
+ return L.toArray(v).map(function(v) {
+ v = String(v);
- for (var i = 0; i < l.length; i++) {
- var n = this.fmt_neg(l[i]),
- p = lookupProto(n.lastChild.data);
-
- if (n.lastChild.data == 'all')
- continue;
-
- if (i > 0)
- L.dom.append(rv, [ ', ' ]);
-
- if (t && (p[0] == 1 || p[0] == 58))
- L.dom.append(rv, [ _('%s%s with %s').format(n.firstChild.data, p[1], ''), t ]);
- else
- L.dom.append(rv, [ n.firstChild.data, p[1] ]);
- }
-
- return rv;
- },
+ if (fn != null && typeof(v[fn]) == 'function')
+ v = v[fn].call(v);
- fmt_limit: function(limit, burst) {
- if (limit == null || limit == '')
- return null;
-
- var m = String(limit).match(/^(\d+)\/(\w+)$/),
- u = m[2] || 'second',
- l = +(m[1] || limit),
- b = +burst;
-
- if (!isNaN(l)) {
- if (u.match(/^s/))
- u = _('second');
- else if (u.match(/^m/))
- u = _('minute');
- else if (u.match(/^h/))
- u = _('hour');
- else if (u.match(/^d/))
- u = _('day');
-
- if (!isNaN(b) && b > 0)
- return E('<span>' +
- _('<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts.').format(l, u, b) +
- '</span>');
- else
- return E('<span>' +
- _('<var>%d</var> pkts. per <var>%s</var>').format(l, u) +
- '</span>');
- }
+ return {
+ ival: v,
+ inv: v.charAt(0) == '!',
+ val: v.replace(/^!\s*/, '')
+ };
+ });
},
- fmt_target: function(x, src, dest) {
- if (src == null || src == '') {
- if (x == 'ACCEPT')
- return _('Accept output');
- else if (x == 'REJECT')
- return _('Refuse output');
- else if (x == 'NOTRACK')
- return _('Do not track output');
- else /* if (x == 'DROP') */
- return _('Discard output');
- }
- else if (dest != null && dest != '') {
- if (x == 'ACCEPT')
- return _('Accept forward');
- else if (x == 'REJECT')
- return _('Refuse forward');
- else if (x == 'NOTRACK')
- return _('Do not track forward');
- else /* if (x == 'DROP') */
- return _('Discard forward');
- }
- else {
- if (x == 'ACCEPT')
- return _('Accept input');
- else if (x == 'REJECT' )
- return _('Refuse input');
- else if (x == 'NOTRACK')
- return _('Do not track input');
- else /* if (x == 'DROP') */
- return _('Discard input');
- }
- },
+ lookupProto: lookupProto,
addDSCPOption: function(s, is_target) {
var o = s.taboption(is_target ? 'general' : 'advanced', form.Value, is_target ? 'set_dscp' : 'dscp',
@@ -442,5 +387,208 @@ return L.Class.extend({
o.depends({ limit: null, '!reverse': true });
return o;
- }
+ },
+
+ transformHostHints: function(family, hosts) {
+ var choice_values = [], choice_labels = {};
+
+ if (!family || family == 'ipv4') {
+ L.sortedKeys(hosts, 'ipv4', 'addr').forEach(function(mac) {
+ var val = hosts[mac].ipv4,
+ txt = hosts[mac].name || mac;
+
+ choice_values.push(val);
+ choice_labels[val] = E([], [ val, ' (', E('strong', {}, [txt]), ')' ]);
+ });
+ }
+
+ if (!family || family == 'ipv6') {
+ L.sortedKeys(hosts, 'ipv6', 'addr').forEach(function(mac) {
+ var val = hosts[mac].ipv6,
+ txt = hosts[mac].name || mac;
+
+ choice_values.push(val);
+ choice_labels[val] = E([], [ val, ' (', E('strong', {}, [txt]), ')' ]);
+ });
+ }
+
+ return [choice_values, choice_labels];
+ },
+
+ updateHostHints: function(map, section_id, option, family, hosts) {
+ var opt = map.lookupOption(option, section_id)[0].getUIElement(section_id),
+ choices = this.transformHostHints(family, hosts);
+
+ opt.clearChoices();
+ opt.addChoices(choices[0], choices[1]);
+ },
+
+ addIPOption: function(s, tab, name, label, description, family, hosts, multiple) {
+ var o = s.taboption(tab, multiple ? form.DynamicList : form.Value, name, label, description);
+
+ o.modalonly = true;
+ o.datatype = 'list(neg(ipmask))';
+ o.placeholder = multiple ? _('-- add IP --') : _('any');
+
+ if (family != null) {
+ var choices = this.transformHostHints(family, hosts);
+
+ for (var i = 0; i < choices[0].length; i++)
+ o.value(choices[0][i], choices[1][choices[0][i]]);
+ }
+
+ /* force combobox rendering */
+ o.transformChoices = function() {
+ return this.super('transformChoices', []) || {};
+ };
+
+ return o;
+ },
+
+ addLocalIPOption: function(s, tab, name, label, description, devices) {
+ var o = s.taboption(tab, form.Value, name, label, description);
+
+ o.modalonly = true;
+ o.datatype = 'ip4addr("nomask")';
+ o.placeholder = _('any');
+
+ L.sortedKeys(devices, 'name').forEach(function(dev) {
+ var ip4addrs = devices[dev].ipaddrs;
+
+ if (!L.isObject(devices[dev].flags) || !Array.isArray(ip4addrs) || devices[dev].flags.loopback)
+ return;
+
+ for (var i = 0; i < ip4addrs.length; i++) {
+ if (!L.isObject(ip4addrs[i]) || !ip4addrs[i].address)
+ continue;
+
+ o.value(ip4addrs[i].address, E([], [
+ ip4addrs[i].address, ' (', E('strong', {}, [dev]), ')'
+ ]));
+ }
+ });
+
+ return o;
+ },
+
+ addMACOption: function(s, tab, name, label, description, hosts) {
+ var o = s.taboption(tab, form.DynamicList, name, label, description);
+
+ o.modalonly = true;
+ o.datatype = 'list(macaddr)';
+ o.placeholder = _('-- add MAC --');
+
+ L.sortedKeys(hosts).forEach(function(mac) {
+ o.value(mac, E([], [ mac, ' (', E('strong', {}, [
+ hosts[mac].name || hosts[mac].ipv4 || hosts[mac].ipv6 || '?'
+ ]), ')' ]));
+ });
+
+ return o;
+ },
+
+ CBIProtocolSelect: form.MultiValue.extend({
+ __name__: 'CBI.ProtocolSelect',
+
+ addChoice: function(value, label) {
+ if (!Array.isArray(this.keylist) || this.keylist.indexOf(value) == -1)
+ this.value(value, label);
+ },
+
+ load: function(section_id) {
+ var cfgvalue = L.toArray(this.super('load', [section_id]) || this.default).sort();
+
+ ['all', 'tcp', 'udp', 'icmp'].concat(cfgvalue).forEach(L.bind(function(value) {
+ switch (value) {
+ case 'all':
+ case 'any':
+ case '*':
+ this.addChoice('all', _('Any'));
+ break;
+
+ case 'tcpudp':
+ this.addChoice('tcp', 'TCP');
+ this.addChoice('udp', 'UDP');
+ break;
+
+ default:
+ var m = value.match(/^(0x[0-9a-f]{1,2}|[0-9]{1,3})$/),
+ p = lookupProto(m ? +m[1] : value);
+
+ this.addChoice(p[2], p[1]);
+ break;
+ }
+ }, this));
+
+ return cfgvalue;
+ },
+
+ renderWidget: function(section_id, option_index, cfgvalue) {
+ var value = (cfgvalue != null) ? cfgvalue : this.default,
+ choices = this.transformChoices();
+
+ var widget = new ui.Dropdown(L.toArray(value), choices, {
+ id: this.cbid(section_id),
+ sort: this.keylist,
+ multiple: true,
+ optional: false,
+ display_items: 10,
+ dropdown_items: -1,
+ create: true,
+ validate: function(value) {
+ var v = L.toArray(value);
+
+ for (var i = 0; i < v.length; i++) {
+ if (v[i] == 'all')
+ continue;
+
+ var m = v[i].match(/^(0x[0-9a-f]{1,2}|[0-9]{1,3})$/);
+
+ if (m ? (+m[1] > 255) : (lookupProto(v[i])[0] == -1))
+ return _('Unrecognized protocol');
+ }
+
+ return true;
+ }
+ });
+
+ widget.createChoiceElement = function(sb, value) {
+ var m = value.match(/^(0x[0-9a-f]{1,2}|[0-9]{1,3})$/),
+ p = lookupProto(lookupProto(m ? +m[1] : value)[0]);
+
+ return ui.Dropdown.prototype.createChoiceElement.call(this, sb, p[2], p[1]);
+ };
+
+ widget.createItems = function(sb, value) {
+ var values = L.toArray(value).map(function(value) {
+ var m = value.match(/^(0x[0-9a-f]{1,2}|[0-9]{1,3})$/),
+ p = lookupProto(m ? +m[1] : value);
+
+ return (p[0] > -1) ? p[2] : value;
+ });
+
+ return ui.Dropdown.prototype.createItems.call(this, sb, values.join(' '));
+ };
+
+ widget.toggleItem = function(sb, li) {
+ var value = li.getAttribute('data-value'),
+ toggleFn = ui.Dropdown.prototype.toggleItem;
+
+ toggleFn.call(this, sb, li);
+
+ if (value == 'all') {
+ var items = li.parentNode.querySelectorAll('li[data-value]');
+
+ for (var j = 0; j < items.length; j++)
+ if (items[j] !== li)
+ toggleFn.call(this, sb, items[j], false);
+ }
+ else {
+ toggleFn.call(this, sb, li.parentNode.querySelector('li[data-value="all"]'), false);
+ }
+ };
+
+ return widget.render();
+ }
+ })
});
diff --git a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js
index 500e68fb1..096124fcc 100644
--- a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js
+++ b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js
@@ -3,73 +3,85 @@
'require rpc';
'require uci';
'require form';
+'require firewall as fwmodel';
'require tools.firewall as fwtool';
'require tools.widgets as widgets';
-function fmt(fmt /*, ...*/) {
- var repl = [], wrap = false;
-
- for (var i = 1; i < arguments.length; i++) {
- if (L.dom.elem(arguments[i])) {
- switch (arguments[i].nodeType) {
- case 1:
- repl.push(arguments[i].outerHTML);
- wrap = true;
- break;
-
- case 3:
- repl.push(arguments[i].data);
- break;
-
- case 11:
- var span = E('span');
- span.appendChild(arguments[i]);
- repl.push(span.innerHTML);
- wrap = true;
- break;
-
- default:
- repl.push('');
- }
- }
- else {
- repl.push(arguments[i]);
- }
- }
+function rule_proto_txt(s, ctHelpers) {
+ var proto = L.toArray(uci.get('firewall', s, 'proto')).filter(function(p) {
+ return (p != '*' && p != 'any' && p != 'all');
+ }).map(function(p) {
+ var pr = fwtool.lookupProto(p);
+ return {
+ num: pr[0],
+ name: pr[1],
+ types: (pr[0] == 1 || pr[0] == 58) ? L.toArray(uci.get('firewall', s, 'icmp_type')) : null
+ };
+ });
+
+ m = String(uci.get('firewall', s, 'helper') || '').match(/^(!\s*)?(\S+)$/);
+ var h = m ? {
+ val: m[0].toUpperCase(),
+ inv: m[1],
+ name: (ctHelpers.filter(function(ctH) { return ctH.name.toLowerCase() == m[2].toLowerCase() })[0] || {}).description
+ } : null;
+
+ m = String(uci.get('firewall', s, 'mark')).match(/^(!\s*)?(0x[0-9a-f]{1,8}|[0-9]{1,10})(?:\/(0x[0-9a-f]{1,8}|[0-9]{1,10}))?$/i);
+ var f = m ? {
+ val: m[0].toUpperCase().replace(/X/g, 'x'),
+ inv: m[1],
+ num: '0x%02X'.format(+m[2]),
+ mask: m[3] ? '0x%02X'.format(+m[3]) : null
+ } : null;
+
+ return fwtool.fmt(_('Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="cbi-tooltip-container">%{item.name}<span class="cbi-tooltip">ICMP with types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip="Match fwmarks except %{mark.num}%{mark.mask? with mask %{mark.mask}}.":%{mark.mask? data-tooltip="Mask fwmark value with %{mark.mask} before compare."}}>%{mark.val}</var>}%{helper?, helper %{helper.inv?<var data-tooltip="Match any helper except &quot;%{helper.name}&quot;">%{helper.val}</var>:<var data-tooltip="%{helper.name}">%{helper.val}</var>}}'), {
+ proto: proto,
+ helper: h,
+ mark: f
+ });
+}
- var rv = fmt.format.apply(fmt, repl);
- return wrap ? E('span', rv) : rv;
+function rule_src_txt(s, hosts) {
+ var z = uci.get('firewall', s, 'src');
+
+ return fwtool.fmt(_('From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-tooltip="Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint.name}}.":%{item.hint.name? data-tooltip="%{item.hint.name}"}}>%{item.ival}</var>}}'), {
+ src: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z || E('em', _('this device')))]),
+ src_ip: fwtool.map_invert(uci.get('firewall', s, 'src_ip'), 'toLowerCase'),
+ src_mac: fwtool.map_invert(uci.get('firewall', s, 'src_mac'), 'toUpperCase').map(function(v) { return Object.assign(v, { hint: hosts[v.val] }) }),
+ src_port: fwtool.map_invert(uci.get('firewall', s, 'src_port'))
+ });
}
-function forward_proto_txt(s) {
- return fmt('%s-%s',
- fwtool.fmt_family('ipv4'),
- fwtool.fmt_proto(uci.get('firewall', s, 'proto'),
- uci.get('firewall', s, 'icmp_type')) || 'TCP+UDP');
+function rule_dest_txt(s) {
+ return fwtool.fmt(_('To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}'), {
+ dest: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName(null) }, [E('em', _('this device'))]),
+ dest_ip: fwtool.map_invert(uci.get('firewall', s, 'src_dip'), 'toLowerCase'),
+ dest_port: fwtool.map_invert(uci.get('firewall', s, 'src_dport'))
+ });
}
-function forward_src_txt(s) {
- var z = fwtool.fmt_zone(uci.get('firewall', s, 'src'), _('any zone')),
- a = fwtool.fmt_ip(uci.get('firewall', s, 'src_ip'), _('any host')),
- p = fwtool.fmt_port(uci.get('firewall', s, 'src_port')),
- m = fwtool.fmt_mac(uci.get('firewall', s, 'src_mac'));
-
- if (p && m)
- return fmt(_('From %s in %s with source %s and %s'), a, z, p, m);
- else if (p || m)
- return fmt(_('From %s in %s with source %s'), a, z, p || m);
- else
- return fmt(_('From %s in %s'), a, z);
+function rule_limit_txt(s) {
+ var m = String(uci.get('firewall', s, 'limit')).match(/^(\d+)\/([smhd])\w*$/i),
+ l = m ? {
+ num: +m[1],
+ unit: ({ s: _('second'), m: _('minute'), h: _('hour'), d: _('day') })[m[2]],
+ burst: uci.get('firewall', s, 'limit_burst')
+ } : null;
+
+ if (!l)
+ return '';
+
+ return fwtool.fmt(_('Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</var>%{limit.burst? burst <var>%{limit.burst}</var>}'), { limit: l });
}
-function forward_via_txt(s) {
- var a = fwtool.fmt_ip(uci.get('firewall', s, 'src_dip'), _('any router IP')),
- p = fwtool.fmt_port(uci.get('firewall', s, 'src_dport'));
+function rule_target_txt(s) {
+ var z = uci.get('firewall', s, 'dest');
- if (p)
- return fmt(_('Via %s at %s'), a, p);
- else
- return fmt(_('Via %s'), a);
+ return fwtool.fmt(_('<var data-tooltip="DNAT">Forward</var> to %{dest}%{dest_ip? IP <var>%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}'), {
+ dest: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z || E('em', _('this device')))]),
+ dest_ip: (uci.get('firewall', s, 'dest_ip') || '').toLowerCase(),
+ dest_port: uci.get('firewall', s, 'dest_port')
+ });
}
return L.view.extend({
@@ -85,16 +97,24 @@ return L.view.extend({
expect: { result: [] }
}),
+ callNetworkDevices: rpc.declare({
+ object: 'luci-rpc',
+ method: 'getNetworkDevices',
+ expect: { '': {} }
+ }),
+
load: function() {
return Promise.all([
this.callHostHints(),
- this.callConntrackHelpers()
+ this.callConntrackHelpers(),
+ this.callNetworkDevices()
]);
},
render: function(data) {
var hosts = data[0],
ctHelpers = data[1],
+ devs = data[2],
m, s, o;
m = new form.Map('firewall', _('Firewall - Port Forwards'),
@@ -134,24 +154,19 @@ return L.view.extend({
o.modalonly = false;
o.textvalue = function(s) {
return E('small', [
- forward_proto_txt(s), E('br'),
- forward_src_txt(s), E('br'),
- forward_via_txt(s)
+ rule_proto_txt(s, ctHelpers), E('br'),
+ rule_src_txt(s, hosts), E('br'),
+ rule_dest_txt(s), E('br'),
+ rule_limit_txt(s)
]);
};
- o = s.option(form.ListValue, '_dest', _('Forward to'));
+ o = s.option(form.ListValue, '_dest', _('Action'));
o.modalonly = false;
o.textvalue = function(s) {
- var z = fwtool.fmt_zone(uci.get('firewall', s, 'dest'), _('any zone')),
- a = fwtool.fmt_ip(uci.get('firewall', s, 'dest_ip'), _('any host')),
- p = fwtool.fmt_port(uci.get('firewall', s, 'dest_port')) ||
- fwtool.fmt_port(uci.get('firewall', s, 'src_dport'));
-
- if (p)
- return fmt(_('%s, %s in %s'), a, p, z);
- else
- return fmt(_('%s in %s'), a, z);
+ return E('small', [
+ rule_target_txt(s)
+ ]);
};
o = s.option(form.Flag, 'enabled', _('Enable'));
@@ -159,18 +174,9 @@ return L.view.extend({
o.default = o.enabled;
o.editable = true;
- o = s.taboption('general', form.Value, 'proto', _('Protocol'));
+ o = s.taboption('general', fwtool.CBIProtocolSelect, 'proto', _('Protocol'));
o.modalonly = true;
o.default = 'tcp udp';
- o.value('tcp udp', 'TCP+UDP');
- o.value('tcp', 'TCP');
- o.value('udp', 'UDP');
- o.value('icmp', 'ICMP');
-
- o.cfgvalue = function(/* ... */) {
- var v = this.super('cfgvalue', arguments);
- return (v == 'tcpudp') ? 'tcp udp' : v;
- };
o = s.taboption('general', widgets.ZoneSelect, 'src', _('Source zone'));
o.modalonly = true;
@@ -178,31 +184,15 @@ return L.view.extend({
o.nocreate = true;
o.default = 'wan';
- o = s.taboption('advanced', form.Value, 'src_mac', _('Source MAC address'),
- _('Only match incoming traffic from these MACs.'));
- o.modalonly = true;
+ o = fwtool.addMACOption(s, 'advanced', 'src_mac', _('Source MAC address'),
+ _('Only match incoming traffic from these MACs.'), hosts);
o.rmempty = true;
- o.datatype = 'neg(macaddr)';
- o.placeholder = E('em', _('any'));
- L.sortedKeys(hosts).forEach(function(mac) {
- o.value(mac, '%s (%s)'.format(
- mac,
- hosts[mac].name || hosts[mac].ipv4 || hosts[mac].ipv6 || '?'
- ));
- });
-
- o = s.taboption('advanced', form.Value, 'src_ip', _('Source IP address'),
- _('Only match incoming traffic from this IP or range.'));
- o.modalonly = true;
+ o.datatype = 'list(neg(macaddr))';
+
+ o = fwtool.addIPOption(s, 'advanced', 'src_ip', _('Source IP address'),
+ _('Only match incoming traffic from this IP or range.'), 'ipv4', hosts);
o.rmempty = true;
o.datatype = 'neg(ipmask4)';
- o.placeholder = E('em', _('any'));
- L.sortedKeys(hosts, 'ipv4', 'addr').forEach(function(mac) {
- o.value(hosts[mac].ipv4, '%s (%s)'.format(
- hosts[mac].ipv4,
- hosts[mac].name || mac
- ));
- });
o = s.taboption('advanced', form.Value, 'src_port', _('Source port'),
_('Only match incoming traffic originating from the given source port or port range on the client host'));
@@ -210,33 +200,21 @@ return L.view.extend({
o.rmempty = true;
o.datatype = 'neg(portrange)';
o.placeholder = _('any');
- o.depends('proto', 'tcp');
- o.depends('proto', 'udp');
- o.depends('proto', 'tcp udp');
- o.depends('proto', 'tcpudp');
+ o.depends({ proto: 'tcp', '!contains': true });
+ o.depends({ proto: 'udp', '!contains': true });
- o = s.taboption('advanced', form.Value, 'src_dip', _('External IP address'),
- _('Only match incoming traffic directed at the given IP address.'));
- o.modalonly = true;
- o.rmempty = true;
+ o = fwtool.addLocalIPOption(s, 'advanced', 'src_dip', _('External IP address'),
+ _('Only match incoming traffic directed at the given IP address.'), devs);
o.datatype = 'neg(ipmask4)';
- o.placeholder = E('em', _('any'));
- L.sortedKeys(hosts, 'ipv4', 'addr').forEach(function(mac) {
- o.value(hosts[mac].ipv4, '%s (%s)'.format(
- hosts[mac].ipv4,
- hosts[mac].name || mac
- ));
- });
+ o.rmempty = true;
o = s.taboption('general', form.Value, 'src_dport', _('External port'),
_('Match incoming traffic directed at the given destination port or port range on this host'));
o.modalonly = true;
o.rmempty = false;
o.datatype = 'neg(portrange)';
- o.depends('proto', 'tcp');
- o.depends('proto', 'udp');
- o.depends('proto', 'tcp udp');
- o.depends('proto', 'tcpudp');
+ o.depends({ proto: 'tcp', '!contains': true });
+ o.depends({ proto: 'udp', '!contains': true });
o = s.taboption('general', widgets.ZoneSelect, 'dest', _('Internal zone'));
o.modalonly = true;
@@ -244,17 +222,10 @@ return L.view.extend({
o.nocreate = true;
o.default = 'lan';
- o = s.taboption('general', form.Value, 'dest_ip', _('Internal IP address'),
- _('Redirect matched incoming traffic to the specified internal host'));
- o.modalonly = true;
+ o = fwtool.addIPOption(s, 'general', 'dest_ip', _('Internal IP address'),
+ _('Redirect matched incoming traffic to the specified internal host'), 'ipv4', hosts);
o.rmempty = true;
o.datatype = 'ipmask4';
- L.sortedKeys(hosts, 'ipv4', 'addr').forEach(function(mac) {
- o.value(hosts[mac].ipv4, '%s (%s)'.format(
- hosts[mac].ipv4,
- hosts[mac].name || mac
- ));
- });
o = s.taboption('general', form.Value, 'dest_port', _('Internal port'),
_('Redirect matched incoming traffic to the given port on the internal host'));
@@ -262,10 +233,8 @@ return L.view.extend({
o.rmempty = true;
o.placeholder = _('any');
o.datatype = 'portrange';
- o.depends('proto', 'tcp');
- o.depends('proto', 'udp');
- o.depends('proto', 'tcp udp');
- o.depends('proto', 'tcpudp');
+ o.depends({ proto: 'tcp', '!contains': true });
+ o.depends({ proto: 'udp', '!contains': true });
o = s.taboption('advanced', form.Flag, 'reflection', _('Enable NAT Loopback'));
o.modalonly = true;
diff --git a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js
index 6c6efc805..cc85e6676 100644
--- a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js
+++ b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js
@@ -3,142 +3,137 @@
'require rpc';
'require uci';
'require form';
+'require firewall as fwmodel';
'require tools.firewall as fwtool';
'require tools.widgets as widgets';
-function fmt(fmt /*, ...*/) {
- var repl = [], wrap = false;
-
- for (var i = 1; i < arguments.length; i++) {
- if (L.dom.elem(arguments[i])) {
- switch (arguments[i].nodeType) {
- case 1:
- repl.push(arguments[i].outerHTML);
- wrap = true;
- break;
-
- case 3:
- repl.push(arguments[i].data);
- break;
-
- case 11:
- var span = E('span');
- span.appendChild(arguments[i]);
- repl.push(span.innerHTML);
- wrap = true;
- break;
-
- default:
- repl.push('');
- }
- }
- else {
- repl.push(arguments[i]);
- }
- }
-
- var rv = fmt.format.apply(fmt, repl);
- return wrap ? E('span', rv) : rv;
+function rule_proto_txt(s, ctHelpers) {
+ var f = (uci.get('firewall', s, 'family') || '').toLowerCase().replace(/^(?:any|\*)$/, '');
+
+ var proto = L.toArray(uci.get('firewall', s, 'proto')).filter(function(p) {
+ return (p != '*' && p != 'any' && p != 'all');
+ }).map(function(p) {
+ var pr = fwtool.lookupProto(p);
+ return {
+ num: pr[0],
+ name: pr[1],
+ types: (pr[0] == 1 || pr[0] == 58) ? L.toArray(uci.get('firewall', s, 'icmp_type')) : null
+ };
+ });
+
+ m = String(uci.get('firewall', s, 'helper') || '').match(/^(!\s*)?(\S+)$/);
+ var h = m ? {
+ val: m[0].toUpperCase(),
+ inv: m[1],
+ name: (ctHelpers.filter(function(ctH) { return ctH.name.toLowerCase() == m[2].toLowerCase() })[0] || {}).description
+ } : null;
+
+ m = String(uci.get('firewall', s, 'mark')).match(/^(!\s*)?(0x[0-9a-f]{1,8}|[0-9]{1,10})(?:\/(0x[0-9a-f]{1,8}|[0-9]{1,10}))?$/i);
+ var f = m ? {
+ val: m[0].toUpperCase().replace(/X/g, 'x'),
+ inv: m[1],
+ num: '0x%02X'.format(+m[2]),
+ mask: m[3] ? '0x%02X'.format(+m[3]) : null
+ } : null;
+
+ m = String(uci.get('firewall', s, 'dscp')).match(/^(!\s*)?(?:(CS[0-7]|BE|AF[1234][123]|EF)|(0x[0-9a-f]{1,2}|[0-9]{1,2}))$/);
+ var d = m ? {
+ val: m[0],
+ inv: m[1],
+ name: m[2],
+ num: m[3] ? '0x%02X'.format(+m[3]) : null
+ } : null;
+
+ return fwtool.fmt(_('%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and <var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="cbi-tooltip-container">%{item.name}<span class="cbi-tooltip">ICMP with types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip="Match fwmarks except %{mark.num}%{mark.mask? with mask %{mark.mask}}.":%{mark.mask? data-tooltip="Mask fwmark value with %{mark.mask} before compare."}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?<var data-tooltip="Match DSCP classifications except %{dscp.num?:%{dscp.name}}">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper %{helper.inv?<var data-tooltip="Match any helper except &quot;%{helper.name}&quot;">%{helper.val}</var>:<var data-tooltip="%{helper.name}">%{helper.val}</var>}}'), {
+ ipv4: (!f || f == 'ipv4'),
+ ipv6: (!f || f == 'ipv6'),
+ src: uci.get('firewall', s, 'src'),
+ dest: uci.get('firewall', s, 'dest'),
+ proto: proto,
+ helper: h,
+ mark: f,
+ dscp: d
+ });
}
-function forward_proto_txt(s) {
- return fmt('%s-%s',
- fwtool.fmt_family(uci.get('firewall', s, 'family')),
- fwtool.fmt_proto(uci.get('firewall', s, 'proto'),
- uci.get('firewall', s, 'icmp_type')) || 'TCP+UDP');
+function rule_src_txt(s, hosts) {
+ var z = uci.get('firewall', s, 'src'),
+ d = (uci.get('firewall', s, 'direction') == 'in') ? uci.get('firewall', s, 'device') : null;
+
+ return fwtool.fmt(_('From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-tooltip="Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint.name}}.":%{item.hint.name? data-tooltip="%{item.hint.name}"}}>%{item.ival}</var>}}'), {
+ src: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z || E('em', _('this device')))]),
+ src_ip: fwtool.map_invert(uci.get('firewall', s, 'src_ip'), 'toLowerCase'),
+ src_mac: fwtool.map_invert(uci.get('firewall', s, 'src_mac'), 'toUpperCase').map(function(v) { return Object.assign(v, { hint: hosts[v.val] }) }),
+ src_port: fwtool.map_invert(uci.get('firewall', s, 'src_port')),
+ src_device: d
+ });
}
-function rule_src_txt(s) {
- var z = fwtool.fmt_zone(uci.get('firewall', s, 'src')),
- p = fwtool.fmt_port(uci.get('firewall', s, 'src_port')),
- m = fwtool.fmt_mac(uci.get('firewall', s, 'src_mac'));
-
- // Forward/Input
- if (z) {
- var a = fwtool.fmt_ip(uci.get('firewall', s, 'src_ip'), _('any host'));
- if (p && m)
- return fmt(_('From %s in %s with source %s and %s'), a, z, p, m);
- else if (p || m)
- return fmt(_('From %s in %s with source %s'), a, z, p || m);
- else
- return fmt(_('From %s in %s'), a, z);
- }
-
- // Output
- else {
- var a = fwtool.fmt_ip(uci.get('firewall', s, 'src_ip'), _('any router IP'));
- if (p && m)
- return fmt(_('From %s on <var>this device</var> with source %s and %s'), a, p, m);
- else if (p || m)
- return fmt(_('From %s on <var>this device</var> with source %s'), a, p || m);
- else
- return fmt(_('From %s on <var>this device</var>'), a);
- }
+function rule_dest_txt(s) {
+ var z = uci.get('firewall', s, 'dest'),
+ d = (uci.get('firewall', s, 'direction') == 'out') ? uci.get('firewall', s, 'device') : null;
+
+ return fwtool.fmt(_('To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}'), {
+ dest: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z || E('em', _('this device')))]),
+ dest_ip: fwtool.map_invert(uci.get('firewall', s, 'dest_ip'), 'toLowerCase'),
+ dest_port: fwtool.map_invert(uci.get('firewall', s, 'dest_port')),
+ dest_device: d
+ });
}
-function rule_dest_txt(s) {
- var z = fwtool.fmt_zone(uci.get('firewall', s, 'dest')),
- p = fwtool.fmt_port(uci.get('firewall', s, 'dest_port'));
-
- // Forward
- if (z) {
- var a = fwtool.fmt_ip(uci.get('firewall', s, 'dest_ip'), _('any host'));
- if (p)
- return fmt(_('To %s, %s in %s'), a, p, z);
- else
- return fmt(_('To %s in %s'), a, z);
- }
+function rule_limit_txt(s) {
+ var m = String(uci.get('firewall', s, 'limit')).match(/^(\d+)\/([smhd])\w*$/i),
+ l = m ? {
+ num: +m[1],
+ unit: ({ s: _('second'), m: _('minute'), h: _('hour'), d: _('day') })[m[2]],
+ burst: uci.get('firewall', s, 'limit_burst')
+ } : null;
- // Input
- else {
- var a = fwtool.fmt_ip(uci.get('firewall', s, 'dest_ip'), _('any router IP'));
- if (p)
- return fmt(_('To %s at %s on <var>this device</var>'), a, p);
- else
- return fmt(_('To %s on <var>this device</var>'), a);
- }
+ if (!l)
+ return '';
+
+ return fwtool.fmt(_('Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</var>%{limit.burst? burst <var>%{limit.burst}</var>}'), { limit: l });
}
-function rule_target_txt(s) {
- var t = fwtool.fmt_target(uci.get('firewall', s, 'target'), uci.get('firewall', s, 'src'), uci.get('firewall', s, 'dest')),
- l = fwtool.fmt_limit(uci.get('firewall', s, 'limit'), uci.get('firewall', s, 'limit_burst'));
+function rule_target_txt(s, ctHelpers) {
+ var t = uci.get('firewall', s, 'target'),
+ h = (uci.get('firewall', s, 'set_helper') || '').toUpperCase(),
+ s = {
+ target: t,
+ src: uci.get('firewall', s, 'src'),
+ dest: uci.get('firewall', s, 'dest'),
+ set_helper: h,
+ set_mark: uci.get('firewall', s, 'set_mark'),
+ set_xmark: uci.get('firewall', s, 'set_xmark'),
+ set_dscp: uci.get('firewall', s, 'set_dscp'),
+ helper_name: (ctHelpers.filter(function(ctH) { return ctH.name.toUpperCase() == h })[0] || {}).description
+ };
- if (l)
- return fmt(_('<var>%s</var> and limit to %s'), t, l);
- else
- return fmt('<var>%s</var>', t);
-}
+ switch (t) {
+ case 'DROP':
+ return fwtool.fmt(_('<var data-tooltip="DROP">Drop</var> %{src?%{dest?forward:input}:output}'), s);
-function update_ip_hints(map, section_id, family, hosts) {
- var elem_src_ip = map.lookupOption('src_ip', section_id)[0].getUIElement(section_id),
- elem_dst_ip = map.lookupOption('dest_ip', section_id)[0].getUIElement(section_id),
- choice_values = [], choice_labels = {};
+ case 'ACCEPT':
+ return fwtool.fmt(_('<var data-tooltip="ACCEPT">Accept</var> %{src?%{dest?forward:input}:output}'), s);
- elem_src_ip.clearChoices();
- elem_dst_ip.clearChoices();
+ case 'REJECT':
+ return fwtool.fmt(_('<var data-tooltip="REJECT">Reject</var> %{src?%{dest?forward:input}:output}'), s);
- if (!family || family == 'ipv4') {
- L.sortedKeys(hosts, 'ipv4', 'addr').forEach(function(mac) {
- var val = hosts[mac].ipv4,
- txt = '%s (<strong>%s</strong>)'.format(val, hosts[mac].name || mac);
+ case 'NOTRACK':
+ return fwtool.fmt(_('<var data-tooltip="NOTRACK">Do not track</var> %{src?%{dest?forward:input}:output}'), s);
- choice_values.push(val);
- choice_labels[val] = txt;
- });
- }
+ case 'HELPER':
+ return fwtool.fmt(_('<var data-tooltip="HELPER">Assign conntrack</var> helper <var%{helper_name? data-tooltip="%{helper_name}"}>%{set_helper}</var>'), s);
- if (!family || family == 'ipv6') {
- L.sortedKeys(hosts, 'ipv6', 'addr').forEach(function(mac) {
- var val = hosts[mac].ipv6,
- txt = '%s (<strong>%s</strong>)'.format(val, hosts[mac].name || mac);
+ case 'MARK':
+ return fwtool.fmt(_('<var data-tooltip="MARK">%{set_mark?Assign:XOR}</var> firewall mark <var>%{set_mark?:%{set_xmark}}</var>'), s);
- choice_values.push(val);
- choice_labels[val] = txt;
- });
- }
+ case 'DSCP':
+ return fwtool.fmt(_('<var data-tooltip="DSCP">Assign DSCP</var> classification <var>%{set_dscp}</var>'), s);
- elem_src_ip.addChoices(choice_values, choice_labels);
- elem_dst_ip.addChoices(choice_values, choice_labels);
+ default:
+ return t;
+ }
}
return L.view.extend({
@@ -215,16 +210,17 @@ return L.view.extend({
o.modalonly = false;
o.textvalue = function(s) {
return E('small', [
- forward_proto_txt(s), E('br'),
- rule_src_txt(s), E('br'),
- rule_dest_txt(s)
+ rule_proto_txt(s, ctHelpers), E('br'),
+ rule_src_txt(s, hosts), E('br'),
+ rule_dest_txt(s), E('br'),
+ rule_limit_txt(s)
]);
};
o = s.option(form.ListValue, '_target', _('Action'));
o.modalonly = false;
o.textvalue = function(s) {
- return rule_target_txt(s);
+ return rule_target_txt(s, ctHelpers);
};
o = s.option(form.Flag, 'enabled', _('Enable'));
@@ -268,22 +264,14 @@ return L.view.extend({
o.value('ipv4', _('IPv4 only'));
o.value('ipv6', _('IPv6 only'));
o.validate = function(section_id, value) {
- update_ip_hints(this.map, section_id, value, hosts);
+ fwtool.updateHostHints(this.map, section_id, 'src_ip', value, hosts);
+ fwtool.updateHostHints(this.map, section_id, 'dest_ip', value, hosts);
return true;
};
- o = s.taboption('general', form.Value, 'proto', _('Protocol'));
+ o = s.taboption('general', fwtool.CBIProtocolSelect, 'proto', _('Protocol'));
o.modalonly = true;
o.default = 'tcp udp';
- o.value('all', _('Any'));
- o.value('tcp udp', 'TCP+UDP');
- o.value('tcp', 'TCP');
- o.value('udp', 'UDP');
- o.value('icmp', 'ICMP');
- o.cfgvalue = function(/* ... */) {
- var v = this.super('cfgvalue', arguments);
- return (v == 'tcpudp') ? 'tcp udp' : v;
- };
o = s.taboption('advanced', form.MultiValue, 'icmp_type', _('Match ICMP type'));
o.modalonly = true;
@@ -330,7 +318,8 @@ return L.view.extend({
o.value('TOS-network-unreachable');
o.value('ttl-zero-during-reassembly');
o.value('ttl-zero-during-transit');
- o.depends('proto', 'icmp');
+ o.depends({ proto: 'icmp', '!contains': true });
+ o.depends({ proto: 'icmpv6', '!contains': true });
o = s.taboption('general', widgets.ZoneSelect, 'src', _('Source zone'));
o.modalonly = true;
@@ -338,31 +327,15 @@ return L.view.extend({
o.allowany = true;
o.allowlocal = 'src';
- o = s.taboption('advanced', form.Value, 'src_mac', _('Source MAC address'));
- o.modalonly = true;
- o.datatype = 'list(macaddr)';
- o.placeholder = _('any');
- L.sortedKeys(hosts).forEach(function(mac) {
- o.value(mac, '%s (%s)'.format(
- mac,
- hosts[mac].name || hosts[mac].ipv4 || hosts[mac].ipv6 || '?'
- ));
- });
-
- o = s.taboption('general', form.Value, 'src_ip', _('Source address'));
- o.modalonly = true;
- o.datatype = 'list(neg(ipmask))';
- o.placeholder = _('any');
- o.transformChoices = function() { return {} }; /* force combobox rendering */
+ fwtool.addMACOption(s, 'advanced', 'src_mac', _('Source MAC address'), null, hosts);
+ fwtool.addIPOption(s, 'general', 'src_ip', _('Source address'), null, '', hosts, true);
o = s.taboption('general', form.Value, 'src_port', _('Source port'));
o.modalonly = true;
o.datatype = 'list(neg(portrange))';
o.placeholder = _('any');
- o.depends('proto', 'tcp');
- o.depends('proto', 'udp');
- o.depends('proto', 'tcp udp');
- o.depends('proto', 'tcpudp');
+ o.depends({ proto: 'tcp', '!contains': true });
+ o.depends({ proto: 'udp', '!contains': true });
o = s.taboption('general', widgets.ZoneSelect, 'dest', _('Destination zone'));
o.modalonly = true;
@@ -370,20 +343,14 @@ return L.view.extend({
o.allowany = true;
o.allowlocal = true;
- o = s.taboption('general', form.Value, 'dest_ip', _('Destination address'));
- o.modalonly = true;
- o.datatype = 'list(neg(ipmask))';
- o.placeholder = _('any');
- o.transformChoices = function() { return {} }; /* force combobox rendering */
+ fwtool.addIPOption(s, 'general', 'dest_ip', _('Destination address'), null, '', hosts, true);
o = s.taboption('general', form.Value, 'dest_port', _('Destination port'));
o.modalonly = true;
o.datatype = 'list(neg(portrange))';
o.placeholder = _('any');
- o.depends('proto', 'tcp');
- o.depends('proto', 'udp');
- o.depends('proto', 'tcp udp');
- o.depends('proto', 'tcpudp');
+ o.depends({ proto: 'tcp', '!contains': true });
+ o.depends({ proto: 'udp', '!contains': true });
o = s.taboption('general', form.ListValue, 'target', _('Action'));
o.modalonly = true;
diff --git a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js
index 919a418fe..2db02d944 100644
--- a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js
+++ b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js
@@ -3,126 +3,90 @@
'require rpc';
'require uci';
'require form';
+'require firewall as fwmodel';
'require tools.firewall as fwtool';
'require tools.widgets as widgets';
-function fmt(fmtstr, args) {
- var repl = [], wrap = false;
- var tokens = [];
-
- for (var i = 0, last = 0; i <= fmtstr.length; i++) {
- if (fmtstr.charAt(i) == '%' && fmtstr.charAt(i + 1) == '{') {
- if (i > last)
- tokens.push(fmtstr.substring(last, i));
-
- var j = i + 1, nest = 0;
-
- var subexpr = [];
-
- for (var off = j + 1, esc = false; j <= fmtstr.length; j++) {
- if (esc) {
- esc = false;
- }
- else if (fmtstr.charAt(j) == '\\') {
- esc = true;
- }
- else if (fmtstr.charAt(j) == '{') {
- nest++;
- }
- else if (fmtstr.charAt(j) == '}') {
- if (--nest == 0) {
- subexpr.push(fmtstr.substring(off, j));
- break;
- }
- }
- else if (fmtstr.charAt(j) == '?' || fmtstr.charAt(j) == ':') {
- if (nest == 1) {
- subexpr.push(fmtstr.substring(off, j));
- subexpr.push(fmtstr.charAt(j));
- off = j + 1;
- }
- }
- }
-
- var varname = subexpr[0].trim(),
- op1 = (subexpr[1] != null) ? subexpr[1] : '?',
- if_set = (subexpr[2] != null && subexpr[2] != '') ? subexpr[2] : '%{' + varname + '}',
- op2 = (subexpr[3] != null) ? subexpr[3] : ':',
- if_unset = (subexpr[4] != null) ? subexpr[4] : '';
-
- /* Invalid expression */
- if (nest != 0 || subexpr.length > 5 || varname == '' || op1 != '?' || op2 != ':')
- return fmtstr;
-
- if (subexpr.length == 1)
- tokens.push(args[varname] != null ? args[varname] : '');
- else if (args[varname] != null)
- tokens.push(fmt(if_set.replace(/\\(.)/g, '$1'), args));
- else
- tokens.push(fmt(if_unset.replace(/\\(.)/g, '$1'), args));
-
- last = j + 1;
- i = last;
- }
- else if (i >= fmtstr.length) {
- if (i > last)
- tokens.push(fmtstr.substring(last, i));
- }
- }
-
- for (var i = 0; i < tokens.length; i++)
- if (typeof(tokens[i]) == 'object')
- return E('span', {}, tokens);
+function rule_proto_txt(s) {
+ var proto = L.toArray(uci.get('firewall', s, 'proto')).filter(function(p) {
+ return (p != '*' && p != 'any' && p != 'all');
+ }).map(function(p) {
+ var pr = fwtool.lookupProto(p);
+ return {
+ num: pr[0],
+ name: pr[1]
+ };
+ });
- return tokens.join('');
+ m = String(uci.get('firewall', s, 'mark')).match(/^(!\s*)?(0x[0-9a-f]{1,8}|[0-9]{1,10})(?:\/(0x[0-9a-f]{1,8}|[0-9]{1,10}))?$/i);
+ var f = m ? {
+ val: m[0].toUpperCase().replace(/X/g, 'x'),
+ inv: m[1],
+ num: '0x%02X'.format(+m[2]),
+ mask: m[3] ? '0x%02X'.format(+m[3]) : null
+ } : null;
+
+ return fwtool.fmt(_('Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</var>}}%{mark?, mark <var%{mark.inv? data-tooltip="Match fwmarks except %{mark.num}%{mark.mask? with mask %{mark.mask}}.":%{mark.mask? data-tooltip="Mask fwmark value with %{mark.mask} before compare."}}>%{mark.val}</var>}'), {
+ proto: proto,
+ mark: f
+ });
}
-function snat_proto_txt(s) {
- var m = uci.get('firewall', s, 'mark'),
- p = uci.get('firewall', s, 'proto');
+function rule_src_txt(s, hosts) {
+ var z = uci.get('firewall', s, 'src');
- return fmt(_('Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?with firewall mark %{mark}} %{limit?limited to %{limit}}'), {
- protocol: (p && p != 'all' && p != 'any' && p != '*') ? fwtool.fmt_proto(uci.get('firewall', s, 'proto')) : null,
- family: fwtool.fmt_family('ipv4'),
- mark: m ? E('var', {}, fwtool.fmt_neg(m)) : null,
- limit: fwtool.fmt_limit(uci.get('firewall', s, 'limit'), uci.get('firewall', s, 'limit_burst'))
+ return fwtool.fmt(_('From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}'), {
+ src: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName(null) }, [E('em', _('any zone'))]),
+ src_ip: fwtool.map_invert(uci.get('firewall', s, 'src_ip'), 'toLowerCase'),
+ src_port: fwtool.map_invert(uci.get('firewall', s, 'src_port'))
});
}
-function snat_src_txt(s) {
- return fmt(_('From %{ipaddr?:any host} %{port?with source %{port}}'), {
- ipaddr: fwtool.fmt_ip(uci.get('firewall', s, 'src_ip')),
- port: fwtool.fmt_port(uci.get('firewall', s, 'src_port'))
+function rule_dest_txt(s) {
+ var z = uci.get('firewall', s, 'src');
+
+ return fwtool.fmt(_('To %{dest}%{dest_device?, via interface <var>%{dest_device}</var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}'), {
+ dest: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z || E('em', _('this device')))]),
+ dest_ip: fwtool.map_invert(uci.get('firewall', s, 'dest_ip'), 'toLowerCase'),
+ dest_port: fwtool.map_invert(uci.get('firewall', s, 'dest_port')),
+ dest_device: uci.get('firewall', s, 'device')
});
}
-function snat_dest_txt(s) {
- var z = uci.get('firewall', s, 'src'),
- d = uci.get('firewall', s, 'device');
+function rule_limit_txt(s) {
+ var m = String(uci.get('firewall', s, 'limit')).match(/^(\d+)\/([smhd])\w*$/i),
+ l = m ? {
+ num: +m[1],
+ unit: ({ s: _('second'), m: _('minute'), h: _('hour'), d: _('day') })[m[2]],
+ burst: uci.get('firewall', s, 'limit_burst')
+ } : null;
- return fmt(_('To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} %{device?egress device %{device}}'), {
- port: fwtool.fmt_port(uci.get('firewall', s, 'dest_port')),
- ipaddr: fwtool.fmt_ip(uci.get('firewall', s, 'dest_ip')),
- zone: (z != '*') ? fwtool.fmt_zone(z) : null,
- device: d ? E('var', {}, [d]) : null
- });
+ if (!l)
+ return '';
+
+ return fwtool.fmt(_('Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</var>%{limit.burst? burst <var>%{limit.burst}</var>}'), { limit: l });
}
-function snat_rewrite_txt(s) {
+function rule_target_txt(s) {
var t = uci.get('firewall', s, 'target'),
- l = fwtool.fmt_limit(uci.get('firewall', s, 'limit'), uci.get('firewall', s, 'limit_burst'));
+ s = {
+ target: t,
+ snat_ip: uci.get('firewall', s, 'snat_ip'),
+ snat_port: uci.get('firewall', s, 'snat_port')
+ };
- if (t == 'SNAT') {
- return fmt(_('Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}'), {
- ipaddr: fwtool.fmt_ip(uci.get('firewall', s, 'snat_ip')),
- port: fwtool.fmt_port(uci.get('firewall', s, 'snat_port'))
- });
- }
- else if (t == 'MASQUERADE') {
- return _('Rewrite to outbound device IP');
- }
- else if (t == 'ACCEPT') {
- return _('Do not rewrite');
+ switch (t) {
+ case 'SNAT':
+ return fwtool.fmt(_('<var data-tooltip="SNAT">Statically rewrite</var> to source %{snat_ip?IP <var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}'), s);
+
+ case 'MASQUERADE':
+ return fwtool.fmt(_('<var data-tooltip="MASQUERADE">Automatically rewrite</var> source IP'));
+
+ case 'ACCEPT':
+ return fwtool.fmt(_('<var data-tooltip="ACCEPT">Prevent source rewrite</var>'));
+
+ default:
+ return t;
}
}
@@ -175,16 +139,17 @@ return L.view.extend({
o.modalonly = false;
o.textvalue = function(s) {
return E('small', [
- snat_proto_txt(s), E('br'),
- snat_src_txt(s), E('br'),
- snat_dest_txt(s)
+ rule_proto_txt(s), E('br'),
+ rule_src_txt(s, hosts), E('br'),
+ rule_dest_txt(s), E('br'),
+ rule_limit_txt(s)
]);
};
- o = s.option(form.ListValue, '_dest', _('Rewrite to'));
+ o = s.option(form.ListValue, '_target', _('Action'));
o.modalonly = false;
o.textvalue = function(s) {
- return snat_rewrite_txt(s);
+ return rule_target_txt(s);
};
o = s.option(form.Flag, 'enabled', _('Enable'));
@@ -192,17 +157,9 @@ return L.view.extend({
o.default = o.enabled;
o.editable = true;
- o = s.taboption('general', form.Value, 'proto', _('Protocol'));
+ o = s.taboption('general', fwtool.CBIProtocolSelect, 'proto', _('Protocol'));
o.modalonly = true;
o.default = 'all';
- o.value('all', _('Any'));
- o.value('tcp udp', 'TCP+UDP');
- o.value('tcp', 'TCP');
- o.value('udp', 'UDP');
- o.cfgvalue = function(/* ... */) {
- var v = this.super('cfgvalue', arguments);
- return (v == 'tcpudp') ? 'tcp udp' : v;
- };
o = s.taboption('general', widgets.ZoneSelect, 'src', _('Outbound zone'));
o.modalonly = true;
@@ -211,18 +168,10 @@ return L.view.extend({
o.allowany = true;
o.default = 'lan';
- o = s.taboption('general', form.Value, 'src_ip', _('Source IP address'),
- _('Match forwarded traffic from this IP or range.'));
- o.modalonly = true;
+ o = fwtool.addIPOption(s, 'general', 'src_ip', _('Source address'),
+ _('Match forwarded traffic from this IP or range.'), 'ipv4', hosts);
o.rmempty = true;
o.datatype = 'neg(ipmask4)';
- o.placeholder = E('em', _('any'));
- L.sortedKeys(hosts, 'ipv4', 'addr').forEach(function(mac) {
- o.value(hosts[mac].ipv4, '%s (%s)'.format(
- hosts[mac].ipv4,
- hosts[mac].name || mac
- ));
- });
o = s.taboption('general', form.Value, 'src_port', _('Source port'),
_('Match forwarded traffic originating from the given source port or port range.'));
@@ -230,23 +179,13 @@ return L.view.extend({
o.rmempty = true;
o.datatype = 'neg(portrange)';
o.placeholder = _('any');
- o.depends('proto', 'tcp');
- o.depends('proto', 'udp');
- o.depends('proto', 'tcp udp');
- o.depends('proto', 'tcpudp');
+ o.depends({ proto: 'tcp', '!contains': true });
+ o.depends({ proto: 'udp', '!contains': true });
- o = s.taboption('general', form.Value, 'dest_ip', _('Destination IP address'),
- _('Match forwarded traffic directed at the given IP address.'));
- o.modalonly = true;
+ o = fwtool.addIPOption(s, 'general', 'dest_ip', _('Destination address'),
+ _('Match forwarded traffic directed at the given IP address.'), 'ipv4', hosts);
o.rmempty = true;
o.datatype = 'neg(ipmask4)';
- o.placeholder = E('em', _('any'));
- L.sortedKeys(hosts, 'ipv4', 'addr').forEach(function(mac) {
- o.value(hosts[mac].ipv4, '%s (%s)'.format(
- hosts[mac].ipv4,
- hosts[mac].name || mac
- ));
- });
o = s.taboption('general', form.Value, 'dest_port', _('Destination port'),
_('Match forwarded traffic directed at the given destination port or port range.'));
@@ -254,10 +193,8 @@ return L.view.extend({
o.rmempty = true;
o.placeholder = _('any');
o.datatype = 'neg(portrange)';
- o.depends('proto', 'tcp');
- o.depends('proto', 'udp');
- o.depends('proto', 'tcp udp');
- o.depends('proto', 'tcpudp');
+ o.depends({ proto: 'tcp', '!contains': true });
+ o.depends({ proto: 'udp', '!contains': true });
o = s.taboption('general', form.ListValue, 'target', _('Action'));
o.modalonly = true;
@@ -266,35 +203,20 @@ return L.view.extend({
o.value('MASQUERADE', _('MASQUERADE - Automatically rewrite to outbound interface IP'));
o.value('ACCEPT', _('ACCEPT - Disable address rewriting'));
- o = s.taboption('general', form.Value, 'snat_ip', _('Rewrite IP address'),
- _('Rewrite matched traffic to the specified source IP address.'));
- o.modalonly = true;
- o.rmempty = true;
- o.placeholder = _('do not rewrite');
- o.datatype = 'ip4addr("nomask")';
+ o = fwtool.addLocalIPOption(s, 'general', 'snat_ip', _('Rewrite IP address'),
+ _('Rewrite matched traffic to the specified source IP address.'), devs);
+ o.placeholder = null;
+ o.depends('target', 'SNAT');
o.validate = function(section_id, value) {
var port = this.map.lookupOption('snat_port', section_id),
+ a = this.formvalue(section_id),
p = port ? port[0].formvalue(section_id) : null;
- if ((value == null || value == '') && (p == null || p == ''))
+ if ((a == null || a == '') && (p == null || p == ''))
return _('A rewrite IP must be specified!');
return true;
};
- o.depends('target', 'SNAT');
- L.sortedKeys(devs, 'name').forEach(function(dev) {
- var ip4addrs = devs[dev].ipaddrs;
-
- if (!L.isObject(devs[dev].flags) || !Array.isArray(ip4addrs) || devs[dev].flags.loopback)
- return;
-
- for (var i = 0; i < ip4addrs.length; i++) {
- if (!L.isObject(ip4addrs[i]) || !ip4addrs[i].address)
- continue;
-
- o.value(ip4addrs[i].address, '%s (%s)'.format(ip4addrs[i].address, dev));
- }
- });
o = s.taboption('general', form.Value, 'snat_port', _('Rewrite port'),
_('Rewrite matched traffic to the specified source port or port range.'));
@@ -302,10 +224,8 @@ return L.view.extend({
o.rmempty = true;
o.placeholder = _('do not rewrite');
o.datatype = 'portrange';
- o.depends({ target: 'SNAT', proto: 'tcp' });
- o.depends({ target: 'SNAT', proto: 'udp' });
- o.depends({ target: 'SNAT', proto: 'tcp udp' });
- o.depends({ target: 'SNAT', proto: 'tcpudp' });
+ o.depends({ proto: 'tcp', '!contains': true });
+ o.depends({ proto: 'udp', '!contains': true });
o = s.taboption('advanced', widgets.DeviceSelect, 'device', _('Outbound device'),
_('Matches forwarded traffic using the specified outbound network device.'));
diff --git a/applications/luci-app-firewall/po/bg/firewall.po b/applications/luci-app-firewall/po/bg/firewall.po
index 6498e6f6f..8b793653a 100644
--- a/applications/luci-app-firewall/po/bg/firewall.po
+++ b/applications/luci-app-firewall/po/bg/firewall.po
@@ -14,53 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr ""
@@ -77,9 +127,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr ""
@@ -96,30 +146,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -167,84 +216,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -256,7 +274,7 @@ msgstr ""
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -268,17 +286,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -306,15 +324,15 @@ msgstr ""
msgid "Firewall - Custom Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr ""
@@ -327,49 +345,54 @@ msgstr ""
msgid "Forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -380,72 +403,64 @@ msgstr ""
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -453,27 +468,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -485,142 +500,132 @@ msgstr ""
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -629,9 +634,9 @@ msgstr ""
msgid "Output"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -644,44 +649,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -694,57 +687,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -788,65 +769,65 @@ msgstr ""
# msgid "Protocol"
# msgstr ""
#
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -876,61 +857,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -938,23 +923,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -962,11 +947,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -982,33 +971,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1020,133 +1001,118 @@ msgstr ""
msgid "Zones"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
diff --git a/applications/luci-app-firewall/po/ca/firewall.po b/applications/luci-app-firewall/po/ca/firewall.po
index f6341cf09..72339c2bf 100644
--- a/applications/luci-app-firewall/po/ca/firewall.po
+++ b/applications/luci-app-firewall/po/ca/firewall.po
@@ -16,53 +16,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s en %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s amb %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s en %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> paquets al <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> i limita a %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Acció"
@@ -79,9 +129,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Ajusts avançats"
@@ -98,30 +148,29 @@ msgstr "Permet el reenviament des dels <em>zones d'origen</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Permet el reenviament als <em>zones de destí</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Qualsevol"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -173,84 +222,53 @@ msgstr ""
"ordres s'executen després de cada reinici de tallafocs, just després el "
"conjunt de regles per defecte s'ha carregat."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Adreça IP de destí"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Adreça de destí"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Port de destí"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Zona de destí"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "No reescriguis"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Descarta els paquets invàlids"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Activa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -262,7 +280,7 @@ msgstr "Habilita protecció contra la inundació SYN"
msgid "Enable logging on this zone"
msgstr "Habilita el registre d'aquesta zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -274,17 +292,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Adreça IP extern"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Port extern"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Paràmetres extres"
@@ -308,15 +326,15 @@ msgstr "Tallafocs"
msgid "Firewall - Custom Rules"
msgstr "Tallafocs - Regles personalitzades"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Tallafocs - Reenviaments de port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Tallafocs - Regles de tràfic"
@@ -329,49 +347,54 @@ msgstr "Tallafocs - Ajusts de zona"
msgid "Forward"
msgstr "Reenvia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Reenvia a"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Divendres"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Des de %s en %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Des de %s en %s amb origen %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Des de %s en %s amb orígens %s i %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -382,72 +405,64 @@ msgstr "Ajusts generals"
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 i IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Només IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Només IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Entrada"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Adreça IP interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Port intern"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Zona interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -455,27 +470,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Limita els missatges de registre"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -487,54 +502,48 @@ msgstr "Fixació MSS"
msgid "Masquerading"
msgstr "Mascarada"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Coincideix"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Coincideix amb el tipus ICMP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -542,78 +551,74 @@ msgstr ""
"Coincideix amb trànsit entrant dirigit al port o rang de ports de destí en "
"aquest host donat"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Dilluns"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Nom"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "Només coincideix amb trànsit entrant dirigit a la adreça IP donada."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Només coincideix amb trànsit entrant des d'aquests MAC."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "Només coincideix amb trànsit entrant des d'aquest IP o rang."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -621,12 +626,12 @@ msgstr ""
"Només coincideix amb trànsit originant en el host client des del port o del "
"rang de ports d'origen donat"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -635,9 +640,9 @@ msgstr ""
msgid "Output"
msgstr "Sortida"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr "Passa paràmetres addicionals al iptables. Utilitzeu-ho amb cura!"
@@ -650,12 +655,12 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Reenviaments de port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -663,33 +668,21 @@ msgstr ""
"El reenviament de ports permet que els ordinadors remots en el Internet "
"connectin a un ordinador o servei específic dins del LAN privat."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protocol"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr "Redirigeix trànsit entrant coincidit al port donat en el host intern"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Redirigeix trànsit entrant coincidit al host intern especificat"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -702,57 +695,45 @@ msgstr "Restringeix la mascarada a les subxarxes de destí donades"
msgid "Restrict Masquerading to given source subnets"
msgstr "Restringeix la mascarada a les subxarxes d'origen donades"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Restringeix a la família d'adreces"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Dissabte"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -766,65 +747,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Adreça IP d'origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Adreça MAC d'origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Adreça d'origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Port d'origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Zona d'origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Diumenge"
@@ -869,53 +850,57 @@ msgstr ""
"<em>Xarxes cobertes</em> especifica quines xarxes disponibles són membres "
"d'aquesta zona."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Dijous"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "A %s a %s en <var>aquest dispositiu</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "A %s en %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "A %s en <var>aquest dispositiu</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "A %s, %s en %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Regles de trànsit"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -925,8 +910,8 @@ msgstr ""
"zones distintes, per exemple per a rebutjar trànsit entre certs hosts o "
"obrir ports WAN en el encaminador."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Dimarts"
@@ -934,23 +919,23 @@ msgstr "Dimarts"
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -958,11 +943,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -978,33 +967,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Via %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Via %s a %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Dimecres"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1016,137 +997,182 @@ msgstr "Zona ⇒ Reenviaments"
msgid "Zones"
msgstr "Zones"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "accepta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "qualsevol"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "qualsevol host"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "qualsevol IP d'encaminador"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "qualsevol zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "no rastregis"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "descarta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "rebutja"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s en %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s amb %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s en %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> paquets al <var>%s</var>"
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> i limita a %s"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Adreça IP de destí"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "No reescriguis"
+
+#~ msgid "Forward to"
+#~ msgstr "Reenvia a"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Des de %s en %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Des de %s en %s amb origen %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Des de %s en %s amb orígens %s i %s"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "A %s a %s en <var>aquest dispositiu</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "A %s en %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "A %s en <var>aquest dispositiu</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "A %s, %s en %s"
+
+#~ msgid "Via %s"
+#~ msgstr "Via %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Via %s a %s"
+
+#~ msgid "any host"
+#~ msgstr "qualsevol host"
+
+#~ msgid "any router IP"
+#~ msgstr "qualsevol IP d'encaminador"
+
#~ msgid "Force connection tracking"
#~ msgstr "Força el rastreig de connexió"
diff --git a/applications/luci-app-firewall/po/cs/firewall.po b/applications/luci-app-firewall/po/cs/firewall.po
index 437ff82d2..cb3fad4e6 100644
--- a/applications/luci-app-firewall/po/cs/firewall.po
+++ b/applications/luci-app-firewall/po/cs/firewall.po
@@ -12,53 +12,103 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 3.10-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s v %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s s %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s v %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> paketů za <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> paketů za <var>%s</var>, burst <var>%d</var> paketů."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> a omezit na %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Akce"
@@ -75,9 +125,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Pokročilé nastavení"
@@ -94,30 +144,29 @@ msgstr "Povolit přesměrování ze <em>zdrojových oblastí</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Povolit přesměrování do <em>zdrojových oblastí</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Libovolné"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -168,84 +217,53 @@ msgstr ""
"nejsou jinak pokryté frameworkem firewallu. Příkazy jsou spuštěny po každém "
"restartu firewallu, právě po načtení výchozí sady pravidel."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Cílová IP adresa"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Cílová adresa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Cílový port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Cílová zóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Nepřepisovat"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Zahazovat neplatné pakety"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Povolit"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Povolit NAT Loopback"
@@ -257,7 +275,7 @@ msgstr "Povolit ochranu proti SYN-flood"
msgid "Enable logging on this zone"
msgstr "Povolit logování v této oblasti"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -269,17 +287,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Vnější IP adresa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Vnější port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Další argumenty volání"
@@ -303,15 +321,15 @@ msgstr "Firewall"
msgid "Firewall - Custom Rules"
msgstr "Firewall - Vlastní pravidla"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Firewall - Přesměrování portů"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Firewall - Pravidla síťového provozu"
@@ -324,49 +342,54 @@ msgstr "Firewall - Nastavení zón"
msgid "Forward"
msgstr "Přesměrování"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Přesměrovat na"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Pátek"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Z %s v %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Z %s v %s se zdrojovou %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Z %s v %s se zdrojovou %s a %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -377,72 +400,64 @@ msgstr "Obecné nastavení"
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 a IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "pouze IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "pouze IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Vstup"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Vnitřní IP adresa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Vnitřní port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Vnitřní zóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -450,27 +465,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Omezit logovací zprávy"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -482,54 +497,48 @@ msgstr "MSS clamping"
msgid "Masquerading"
msgstr "Maškárádování"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Shoda"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Odpovídá ICMP typu"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -537,78 +546,74 @@ msgstr ""
"Vybrat příchozí provoz, směrovaný na zadaný cílový port nebo rozsah portů "
"tohoto hostitele"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Pondělí"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Dny v měsíci"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Název"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Síť"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "Vybrat pouze příchozí provoz, směrovaný na danou IP adresu."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Vybrat pouze příchozí provoz z těchto MAC adres."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "Vybrat pouze příchozí provoz z této IP nebo rozsahu IP adres."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -616,12 +621,12 @@ msgstr ""
"Vybrat pouze příchozí provoz, pocházející ze zadaného portu nebo rozsahu "
"portů klienta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -630,9 +635,9 @@ msgstr ""
msgid "Output"
msgstr "Výstup"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr "Předává další argumenty iptables. Používat opatrně!"
@@ -645,12 +650,12 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Přesměrování portů"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -659,34 +664,22 @@ msgstr ""
"Internetu připojení k vybraným počítačům nebo službám uvnitř privátní sítě "
"LAN."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protokol"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Přesměrovat vybraný příchozí provoz na uvedený port vnitřního hostitele"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Přesměrovat vybraný příchozí provoz na uvedeného vnitřního hostitele"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -699,57 +692,45 @@ msgstr "Omezit maškarádování na uvedené cílové podsítě"
msgid "Restrict Masquerading to given source subnets"
msgstr "Omezit maškarádování na uvedené zdrojové podsítě"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Omezit na rodinu adres"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Sobota"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -763,65 +744,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Zdrojová IP adresa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Zdrojová MAC adresa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Zdrojová adresa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Zdrojový port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Zdrojová zóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Neděle"
@@ -864,53 +845,57 @@ msgstr ""
"pro přesměrování provozu mezi rozdílnými sítěmi uvnitř jedné zóny. "
"<em>Pokryté sítě</em> určuje, které z dostupných sítí jsou členy této zóny."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Čtvrtek"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "Časová omezení"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Čas v UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Na %s v %s na <var>tomto zařízení</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "Na %s v %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "Na %s na <var>tomto zařízení</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "Na %s, %s v %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Pravidla síťového provozu"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -920,8 +905,8 @@ msgstr ""
"různými zónami, například pro odmítnutí provozu mezi jistými hostiteli nebo "
"pro otevření WAN portů na routeru."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Úterý"
@@ -929,23 +914,23 @@ msgstr "Úterý"
msgid "Unable to save contents: %s"
msgstr "Nelze uložit obsah: %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "Nepojmenované pravidlo"
@@ -953,11 +938,15 @@ msgstr "Nepojmenované pravidlo"
msgid "Unnamed zone"
msgstr "Nepojmenovaná zóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -973,33 +962,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Prostřednictvím %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Středa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1011,137 +992,185 @@ msgstr "Zóna ⇒ Přesměrování"
msgid "Zones"
msgstr "Zóny"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "přijmout"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "libovolný"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "libovolný hostitel"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "libovolná IP routeru"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "libovolná zóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "nesledovat"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "zahodit"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "odmítnout"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s v %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s s %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s v %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> paketů za <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr "<var>%d</var> paketů za <var>%s</var>, burst <var>%d</var> paketů."
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> a omezit na %s"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Cílová IP adresa"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Nepřepisovat"
+
+#~ msgid "Forward to"
+#~ msgstr "Přesměrovat na"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Z %s v %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Z %s v %s se zdrojovou %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Z %s v %s se zdrojovou %s a %s"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "Network"
+#~ msgstr "Síť"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "Na %s v %s na <var>tomto zařízení</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "Na %s v %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "Na %s na <var>tomto zařízení</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "Na %s, %s v %s"
+
+#~ msgid "Via %s"
+#~ msgstr "Prostřednictvím %s"
+
+#~ msgid "any host"
+#~ msgstr "libovolný hostitel"
+
+#~ msgid "any router IP"
+#~ msgstr "libovolná IP routeru"
+
#~ msgid "Force connection tracking"
#~ msgstr "Vynutit sledování připojení"
diff --git a/applications/luci-app-firewall/po/de/firewall.po b/applications/luci-app-firewall/po/de/firewall.po
index f87f51bae..39d7d0c20 100644
--- a/applications/luci-app-firewall/po/de/firewall.po
+++ b/applications/luci-app-firewall/po/de/firewall.po
@@ -14,53 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s mit %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> Pkte. pro <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> Pkte. pro <var>%s</var>, Häufung <var>%d</var> Pkte."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> und limitieren auf %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
msgid "A rewrite IP must be specified!"
msgstr "Es muss eine IP-Adresse zum Umschreiben angegeben werden!"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
msgid "ACCEPT - Disable address rewriting"
msgstr "ACCEPT - Umschreiben von IP-Adressen deaktivieren"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "Erlaubte Weiterleitung"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "Eingang akzeptieren"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "Ausgang akzeptieren"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Aktion"
@@ -83,9 +133,9 @@ msgstr ""
"Zonenquellenverkehr, z.B. <code>-p tcp --sport 443</code>, um nur "
"eingehenden HTTPS-Verkehr übereinstimmen zu lassen."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Erweiterte Einstellungen"
@@ -102,30 +152,29 @@ msgstr "Erlaube Weiterleitung von <em>Quellzone</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Erlaube Weiterleitung zu <em>Zielzone</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Beliebig"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "Beliebig"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -179,51 +228,36 @@ msgstr ""
"Befehle werden mit jedem Firewall-Neustart abgearbeitet, direkt nach dem "
"Laden der Basisregeln."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Ziel IP-Adresse"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Zieladresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Zielport"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Ziel-Zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "Weiterleiten verwerfen"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "Eingang verwerfen"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "Ausgang verwerfen"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
@@ -233,33 +267,17 @@ msgstr ""
"Conntrack-Status <em>invalid</em> abzulehnen. Dies kann bei komplexen "
"asymmetrischen Routen erforderlich sein."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Nicht umschreiben"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "Weiterleitung nicht verfolgen"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "Eingang nicht verfolgen"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "Ausgang nicht verfolgen"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Ungültige Pakete verwerfen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Aktivieren"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "NAT-Loopback aktivieren"
@@ -271,7 +289,7 @@ msgstr "Schutz vor SYN-flood-Attacken"
msgid "Enable logging on this zone"
msgstr "Protokollierung innerhalb der Zone aktivieren"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr "Erwarte: %s"
@@ -284,17 +302,17 @@ msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
"Wählt explizit zulässige Verbindungs-Tracking-Helfer für den Zonenverkehr aus"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Externe IP-Adresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Externer Port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Zusätzliche Argumente"
@@ -318,15 +336,15 @@ msgstr "Firewall"
msgid "Firewall - Custom Rules"
msgstr "Firewall - Benutzerdefinierte Regeln"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr "Firewall - NAT Regeln"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Firewall - Portweiterleitungen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Firewall - Traffic-Regeln"
@@ -339,49 +357,54 @@ msgstr "Firewall - Zoneneinstellungen"
msgid "Forward"
msgstr "Weitergeleitet"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Weiterleiten an"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Freitag"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Von %s in %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Von %s in %s mit Quell-%s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Von %s in %s mit Quell-%s und %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "Von %s auf <var>dieses Gerät</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "Von %s auf <var>diesem Gerät</var> mit Quelle %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "Von %s auf <var>dieses Gerät</var> mit Quelle %s und %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
-msgstr "Von %{ipaddr?:beliebigen Hosts} %{port?mit Quell-%{port}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -392,72 +415,64 @@ msgstr "Allgemeine Einstellungen"
msgid "Hardware flow offloading"
msgstr "Hardwarebeschleunigte Flusskontrolle"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "IP-Bereich"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IPs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 und IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "nur IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "nur IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Eingehend"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Interne IP-Adresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Interner Port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Interne Zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -465,27 +480,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Protokollnachrichten limitieren"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MACs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
"MASQUERADE - Automatisch auf IP-Adresse der ausgehenden Schnittstelle "
@@ -499,60 +514,52 @@ msgstr "MSS Korrektur"
msgid "Masquerading"
msgstr "NAT aktivieren"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Filter"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-"Selektiere %{protocol?%{family}-%{protocol} Verkehr:jeglichen %{family}-"
-"Verkehr} %{mark?mit Firewall-Markierung %{mark}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Nach ICMP-Typ filtern"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr "Selektiert an die angegebene IP-Adresse gerichteten Verkehr."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
"Selektiert an den angegeben Port oder Port-Bereich gerichteten Verkehr."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
"Selektiert weitergeleiteten Verkehr von dieser IP oder diesem IP-Bereich."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
"Selektiert weitergeleiteten Verkehr vom angegebenem Quellport oder "
"Portbereich."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -560,53 +567,53 @@ msgstr ""
"Eingehende Verbindungen filtern welche an den angegebenen Port oder "
"Portbereich auf dem lokalen Gerät gerichtet sind"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr "Erfasse Markierung"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
"Selektiert Verkehr mit einer spezifischen Firewall-Markierung oder einem "
"Bereich von Markierungen."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
"Selektiert weitergeleiteten Verkehr welcher die angegebene "
"Netzwerkschnittstelle benutzt."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Montag"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Monatstage"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr "NAT-Regeln"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
@@ -614,30 +621,26 @@ msgstr ""
"NAT-Regeln erlauben eine detaillierte Kontrolle über die verwendete Quell-IP-"
"Adresse für ausgehenden oder weitergeleiteten Verkehr."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Name"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Netzwerk"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "Selektiert nur Traffic der an die angegebene IP-Adresse gerichtet ist."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Selektiert nur Traffic von den angegebenen MAC-Adressen."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "Selektiert nur Traffic vom angebenem Quell-IP-Adressbereich."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -645,12 +648,12 @@ msgstr ""
"Nur eingehenden Datenverkehr, der vom angegebenen Quellport oder Portbereich "
"des Client-Host stammt, selektieren"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr "Ausgehende Schnittstelle"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr "Ausgehende Zone"
@@ -659,9 +662,9 @@ msgstr "Ausgehende Zone"
msgid "Output"
msgstr "Ausgehend"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
"Gibt zusätzliche Kommandozeilenargumente an iptables weiter. Mit Vorsicht "
@@ -682,12 +685,12 @@ msgstr ""
"führen können, dass der Firewall-Regelsatz außer Funktion gesetzt wird und "
"alle Dienste vollständig offengelegt werden."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Portweiterleitungen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -695,35 +698,23 @@ msgstr ""
"Portweiterleitungen ermöglichen es entfernten Rechnern im Internet auf "
"bestimmte Computer oder Dienste im lokalen LAN zuzugreifen."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protokoll"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Gefilterte Verbindungen an den angegeben Port auf dem internen Host "
"weiterleiten"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Gefilterte Verbindungen an den angegeben internen Host weiterleiten"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "Weiterleiten ablehnen"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "Eingang ablehnen"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "Ausgang ablehnen"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -737,59 +728,47 @@ msgstr "NAT auf die angegebenen Ziel-Subnetze beschränken"
msgid "Restrict Masquerading to given source subnets"
msgstr "NAT auf die angegebenen Quell-Subnetze beschränken"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Beschränke auf Adressfamilie"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr "IP-Adresse umschreiben"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr "Selektierten Verkehr auf die angegebene Quell-IP-Adresse umschreiben."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
"Selektierten Verkehr auf den angegebenen Quell-Port bzw. Port-Bereich "
"umschreiben."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr "Port umschreiben"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr "Umschreiben auf…"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr "Umschreiben auf %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr "Umschreiben auf ausgehende Schnittstellen-IP"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "Routing/NAT-Beschleunigung"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr "SNAT - Umschreiben auf spezifische Quell-IP oder Port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Samstag"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -803,65 +782,65 @@ msgstr "Softwarebasierte Auslagerung von Routing/NAT"
msgid "Software flow offloading"
msgstr "Beschleunigte Flusskontrolle"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Quell-IP-Adresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Quell-MAC-Adresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Quelladresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Quellport"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Quell-Zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "Startdatum (JJJJ-MM-TT)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr "Startzeit (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "Enddatum (JJJJ-MM-TT)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr "Stoppzeit (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Sonntag"
@@ -907,55 +886,57 @@ msgstr ""
"dieser Zone zu. <em>Covered networks</em> definiert welche der verfügbaren "
"Netzwerke zu dieser Zone gehören."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Donnerstag"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "Zeitbeschränkungen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Zeit ist UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Zu %s an %s auf <var>diesem Gerät</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "Zu %s in %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "Zu %s auf <var>diesem Gerät</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "Zu %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-"Zu %{ipaddr?:beliebigem Host} %{port?an %{port}} %{zone?über Zone %{zone}} "
-"%{device?ausgehende Schnittstelle %{device}}"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Traffic-Regeln"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -965,8 +946,8 @@ msgstr ""
"zum Beispiel um Traffic zwischen bestimmten Rechnern zu unterbinden oder um "
"WAN-Ports auf dem Router zu öffnen."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Dienstag"
@@ -974,23 +955,23 @@ msgstr "Dienstag"
msgid "Unable to save contents: %s"
msgstr "Inhalt kann nicht gespeichert werden: %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr "Unbenannte NAT-Regel"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "Unbenannte Portweiterleitung"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "Unbennante Regel"
@@ -998,11 +979,15 @@ msgstr "Unbennante Regel"
msgid "Unnamed zone"
msgstr "Unbenannte Zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -1022,33 +1007,25 @@ msgstr ""
"Diese Option verwenden, um den Zonenverkehr nach Quell- oder Zielsubnetz "
"anstelle von Netzwerken oder Geräten zu klassifizieren."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Über %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Über %s an %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Mittwoch"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "Wochentage"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1062,137 +1039,287 @@ msgstr "Zonen"
# Die richtige Übersetzung von ACCEPT im Firewallkontext ist nicht "Annehmen" sondern "Zulassen". Man kann ja keinen
# ausgehenden Traffic annehmen.
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "zulassen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "beliebig"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "beliebiger Rechner"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "beliebige Router-IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "beliebige Zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "Tag"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr "nicht umschreiben"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "nicht verfolgen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "verwerfen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "Stunde"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "Minute"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "nicht"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "Port"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "Ports"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "zurückweisen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "Sekunde"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "diese neue Zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "Typ"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "Typen"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr "gültige Firewall-Markierung"
+#~ msgid "%s in %s"
+#~ msgstr "%s in %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s mit %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s in %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> Pkte. pro <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr "<var>%d</var> Pkte. pro <var>%s</var>, Häufung <var>%d</var> Pkte."
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> und limitieren auf %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "Erlaubte Weiterleitung"
+
+#~ msgid "Accept input"
+#~ msgstr "Eingang akzeptieren"
+
+#~ msgid "Accept output"
+#~ msgstr "Ausgang akzeptieren"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Ziel IP-Adresse"
+
+#~ msgid "Discard forward"
+#~ msgstr "Weiterleiten verwerfen"
+
+#~ msgid "Discard input"
+#~ msgstr "Eingang verwerfen"
+
+#~ msgid "Discard output"
+#~ msgstr "Ausgang verwerfen"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Nicht umschreiben"
+
+#~ msgid "Do not track forward"
+#~ msgstr "Weiterleitung nicht verfolgen"
+
+#~ msgid "Do not track input"
+#~ msgstr "Eingang nicht verfolgen"
+
+#~ msgid "Do not track output"
+#~ msgstr "Ausgang nicht verfolgen"
+
+#~ msgid "Forward to"
+#~ msgstr "Weiterleiten an"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Von %s in %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Von %s in %s mit Quell-%s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Von %s in %s mit Quell-%s und %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "Von %s auf <var>dieses Gerät</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "Von %s auf <var>diesem Gerät</var> mit Quelle %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "Von %s auf <var>dieses Gerät</var> mit Quelle %s und %s"
+
+#~ msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#~ msgstr "Von %{ipaddr?:beliebigen Hosts} %{port?mit Quell-%{port}}"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "IP-Bereich"
+
+#~ msgid "IPs"
+#~ msgstr "IPs"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MACs"
+
+#~ msgid ""
+#~ "Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} "
+#~ "%{mark?with firewall mark %{mark}} %{limit?limited to %{limit}}"
+#~ msgstr ""
+#~ "Selektiere %{protocol?%{family}-%{protocol} Verkehr:jeglichen %{family}-"
+#~ "Verkehr} %{mark?mit Firewall-Markierung %{mark}}"
+
+#~ msgid "Network"
+#~ msgstr "Netzwerk"
+
+#~ msgid "Refuse forward"
+#~ msgstr "Weiterleiten ablehnen"
+
+#~ msgid "Refuse input"
+#~ msgstr "Eingang ablehnen"
+
+#~ msgid "Refuse output"
+#~ msgstr "Ausgang ablehnen"
+
+#~ msgid "Rewrite to"
+#~ msgstr "Umschreiben auf…"
+
+#~ msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
+#~ msgstr ""
+#~ "Umschreiben auf %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
+
+#~ msgid "Rewrite to outbound device IP"
+#~ msgstr "Umschreiben auf ausgehende Schnittstellen-IP"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "Zu %s an %s auf <var>diesem Gerät</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "Zu %s in %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "Zu %s auf <var>diesem Gerät</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "Zu %s, %s in %s"
+
+#~ msgid ""
+#~ "To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
+#~ "%{device?egress device %{device}}"
+#~ msgstr ""
+#~ "Zu %{ipaddr?:beliebigem Host} %{port?an %{port}} %{zone?über Zone "
+#~ "%{zone}} %{device?ausgehende Schnittstelle %{device}}"
+
+#~ msgid "Via %s"
+#~ msgstr "Über %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Über %s an %s"
+
+#~ msgid "any host"
+#~ msgstr "beliebiger Rechner"
+
+#~ msgid "any router IP"
+#~ msgstr "beliebige Router-IP"
+
+#~ msgid "not"
+#~ msgstr "nicht"
+
+#~ msgid "port"
+#~ msgstr "Port"
+
+#~ msgid "ports"
+#~ msgstr "Ports"
+
+#~ msgid "type"
+#~ msgstr "Typ"
+
+#~ msgid "types"
+#~ msgstr "Typen"
+
#~ msgid "Force connection tracking"
#~ msgstr "Connectiontracking erzwingen"
diff --git a/applications/luci-app-firewall/po/el/firewall.po b/applications/luci-app-firewall/po/el/firewall.po
index 8f27b6f9c..d36ab4cc8 100644
--- a/applications/luci-app-firewall/po/el/firewall.po
+++ b/applications/luci-app-firewall/po/el/firewall.po
@@ -14,53 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s με %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> πκτ. ανά <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Ενέργεια"
@@ -77,9 +127,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Ρυθμίσεις για προχωρημένους"
@@ -96,30 +146,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Οποιοδήποτε"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -167,84 +216,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Διεύθυνση IP προορισμού"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Διεύθυνση προορισμού"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Θύρα προορισμού"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Ζώνη προορισμού"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Αγνόηση μη-έγκυρων πακετών"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Ενεργοποίηση"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -257,7 +275,7 @@ msgstr "Προστασία SYN-flood"
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -269,17 +287,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Εξωτερική διεύθυνση IP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Εξωτερική θύρα"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Επιπλέον παράμετροι"
@@ -303,15 +321,15 @@ msgstr "Τείχος προστασίας"
msgid "Firewall - Custom Rules"
msgstr "Τείχος προστασίας - Προσαρμοσμένοι Κανόνες"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Τείχος προστασίας - Προώθηση Θυρών"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Τείχος προστασίας - Κανόνες Κίνησεις"
@@ -324,49 +342,54 @@ msgstr "Τείχος προστασίας - Ρυθμίσεις Ζώνης"
msgid "Forward"
msgstr "Προώθηση"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Απο %s στο %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -377,74 +400,66 @@ msgstr "Γενικές Ρυθμίσεις"
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 και IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Μόνο IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Μόνο IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Είσοδος"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
#, fuzzy
msgid "Internal IP address"
msgstr "Εσωτερική διεύθυνση"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
#, fuzzy
msgid "Internal port"
msgstr "Εξωτερική θύρα"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Εσωτερική ζώνη"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -452,27 +467,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Περιορισμός καταγραφών συστήματος"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -485,142 +500,132 @@ msgstr "Περιορισμός MSS"
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Όνομα"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -629,9 +634,9 @@ msgstr ""
msgid "Output"
msgstr "Έξοδος"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -644,44 +649,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Προώθηση Θυρών"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Πρωτόκολλο"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -694,57 +687,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -758,68 +739,68 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
#, fuzzy
msgid "Source IP address"
msgstr "Διεύθυνση MAC πηγής"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
#, fuzzy
msgid "Source address"
msgstr "Διεύθυνση MAC πηγής"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Θύρα πηγής"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
#, fuzzy
msgid "Source zone"
msgstr "Θύρα πηγής"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -851,61 +832,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -913,23 +898,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -937,11 +922,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -957,33 +946,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -995,137 +976,137 @@ msgstr ""
msgid "Zones"
msgstr "Ζώνες"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "αποδοχή"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "αγνόηση"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "απόρριψη"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s με %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> πκτ. ανά <var>%s</var>"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Διεύθυνση IP προορισμού"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Απο %s στο %s"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
#~ msgid "Force connection tracking"
#~ msgstr "Επιβολή παρακολούθησης σύνδεσης"
diff --git a/applications/luci-app-firewall/po/en/firewall.po b/applications/luci-app-firewall/po/en/firewall.po
index 680a92502..944371042 100644
--- a/applications/luci-app-firewall/po/en/firewall.po
+++ b/applications/luci-app-firewall/po/en/firewall.po
@@ -11,53 +11,103 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Action"
@@ -74,9 +124,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr ""
@@ -93,30 +143,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -164,84 +213,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Destination address"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Destination port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Destination zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Drop invalid packets"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -253,7 +271,7 @@ msgstr "Enable SYN-flood protection"
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -265,17 +283,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "External port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -303,15 +321,15 @@ msgstr "Firewall"
msgid "Firewall - Custom Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr ""
@@ -324,49 +342,54 @@ msgstr ""
msgid "Forward"
msgstr "Forward"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -377,72 +400,64 @@ msgstr ""
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Input"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Internal IP address"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Internal port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -450,27 +465,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -482,54 +497,48 @@ msgstr "MSS clamping"
msgid "Masquerading"
msgstr "Masquerading"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -537,89 +546,85 @@ msgstr ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Name"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -628,9 +633,9 @@ msgstr ""
msgid "Output"
msgstr "Output"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -643,45 +648,33 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protocol"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Redirect matched incoming traffic to the given port on the internal host"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Redirect matched incoming traffic to the specified internal host"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -694,57 +687,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -788,65 +769,65 @@ msgstr ""
# msgid "Protocol"
# msgstr ""
#
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Source IP address"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Source address"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Source port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Source zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -878,61 +859,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -940,23 +925,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -964,11 +949,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -984,33 +973,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1022,133 +1003,112 @@ msgstr ""
msgid "Zones"
msgstr "Zones"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "accept"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "any"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "drop"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "reject"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
diff --git a/applications/luci-app-firewall/po/es/firewall.po b/applications/luci-app-firewall/po/es/firewall.po
index dd1f6aaa3..948120cdb 100644
--- a/applications/luci-app-firewall/po/es/firewall.po
+++ b/applications/luci-app-firewall/po/es/firewall.po
@@ -14,54 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10.2-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s en %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s con %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s en %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> paquetes por <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-"<var>%d</var> paquetes por <var>%s</var>, máximo <var>%d</var> paquetes."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> y limitar a %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
msgid "A rewrite IP must be specified!"
msgstr "¡Se debe especificar una IP de reescritura!"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
msgid "ACCEPT - Disable address rewriting"
msgstr "ACEPTAR - Desactivar reescritura de direcciones"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "Aceptar reenvío"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "Aceptar entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "Aceptar salida"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Acción"
@@ -84,9 +133,9 @@ msgstr ""
"tráfico de origen de zona, p.e. <code>-p tcp --sport 443</code> para que "
"solo coincida con el tráfico HTTPS entrante."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Configuración avanzada"
@@ -103,19 +152,18 @@ msgstr "Permitir reenvío desde <em>zonas de origen</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Permitir reenvío a <em>zonas de destino</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Cualquiera"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "Cualquier día"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
@@ -125,11 +173,11 @@ msgstr ""
"conexiones establecidas. El formato es el valor [/ máscara]. Si se "
"especifica una máscara, esos bits establecidos en la máscara se ponen a cero."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr "Aplique la clase o valor DSCP dado a las conexiones establecidas."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
"Asigne el asistente de seguimiento de conexión especificado al tráfico "
@@ -185,51 +233,36 @@ msgstr ""
"cualquier reinicio del FIrewall, justo tras haber cargado el conjunto de "
"reglas predeterminadas."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr "Clasificación DSCP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr "Marca DSCP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr "Marca DSCP requerida"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Dirección IP destino"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Dirección de destino"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Puerto de destino"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Zona de destino"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr "Nombre del dispositivo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "Descartar reenvío"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "Descartar entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "Descartar salida"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
@@ -239,33 +272,17 @@ msgstr ""
"estado conntrack <em>inválido</em>. Esto puede ser necesario para "
"configuraciones complejas de rutas asimétricas."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "No reescribir"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "No seguir reenvío"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "No seguir entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "No seguir salida"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Descartar paquetes inválidos"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Activar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Activar bucle NAT"
@@ -277,7 +294,7 @@ msgstr "Activar protección contra inundaciones SYN"
msgid "Enable logging on this zone"
msgstr "Activar registro en esta zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr "Esperando: %s"
@@ -291,17 +308,17 @@ msgstr ""
"Elige explícitamente los ayudantes de seguimiento de conexión permitidos "
"para el tráfico de zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Dirección IP externa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Puerto externo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Argumentos extra"
@@ -325,15 +342,15 @@ msgstr "Firewall"
msgid "Firewall - Custom Rules"
msgstr "Firewall - Reglas personalizadas"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr "Firewall - Reglas de NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Firewall - Reenvío de puertos"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Firewall - Reglas de tráfico"
@@ -346,49 +363,54 @@ msgstr "Firewall - Configuración de la zona"
msgid "Forward"
msgstr "Reenviar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Reenviar a"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Viernes"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Desde %s en %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Desde %s en %s con origen %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Desde %s en %s con origen %s y %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "Desde %s en <var>este dispositivo</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "Desde %s en <var>este dispositivo</var> con la fuente %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "De %s en <var>este dispositivo</var> con la fuente %s y %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
-msgstr "Desde %{ipaddr?:cualquier host} %{puerto?con origen %{puerto}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -399,72 +421,64 @@ msgstr "Configuración general"
msgid "Hardware flow offloading"
msgstr "Descarga de flujo por hardware"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "Rango de IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 e IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Sólo IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Sólo IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr "Dispositivo de entrada"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Entrada"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Dirección IP interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Puerto interno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Zona interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr "Marca DSCP inválida"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr "Valor límite no válido"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr "Límite de ráfaga"
@@ -472,27 +486,27 @@ msgstr "Límite de ráfaga"
msgid "Limit log messages"
msgstr "Limitar registro de mensajes"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr "Limitar coincidencia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr "Limita el tráfico que coincide con la velocidad especificada."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr "IP de origen de bucle invertido"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr "MASQUERADE - Reescribe automáticamente a la interfaz IP saliente"
@@ -504,60 +518,52 @@ msgstr "Fijado de MSS"
msgid "Masquerading"
msgstr "Enmascaramiento"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Coincidir"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-"Coincidir %{protocolo?%{familia} %{protocolo} tráfico:cualquiera %{familia} "
-"tráfico} %{marco?con marco de firewall %{marco}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr "Coincidir DSCP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Coincidir con tipo ICMP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr "Dispositivo de coincidencia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr "Haga coincidir el tráfico reenviado dirigido a la dirección IP dada."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
"Haga coincidir el tráfico reenviado dirigido al puerto de destino o rango de "
"puertos dados."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr "Haga coincidir el tráfico reenviado desde esta IP o rango."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
"Haga coincidir el tráfico reenviado que se origina en el puerto fuente o "
"rango de puertos dados."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr "Ayudante de partido"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -565,34 +571,34 @@ msgstr ""
"Coincidir con tráfico de entrada dirigido al puerto o rango de puertos "
"destino en este host"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr "Marca de partido"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
"Haga coincidir el tráfico con el ayudante de seguimiento de conexión "
"especificado."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
"Coincide con una marca de firewall específica o un rango de marcas "
"diferentes."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
"Coincide con el tráfico reenviado utilizando el dispositivo de red saliente "
"especificado."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr "Coincide con el tráfico que lleva la marca DSCP especificada."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
@@ -601,22 +607,22 @@ msgstr ""
"recarga en uno cada vez que no se alcanza el límite especificado "
"anteriormente, hasta este número."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Lunes"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Días del mes"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr "Reglas NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
@@ -624,30 +630,26 @@ msgstr ""
"Las reglas de NAT permiten un control detallado sobre la IP de origen para "
"el tráfico saliente o reenviado."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Nombre"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Red"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "Coincidir sólo con tráfico de entrada a esta dirección IP."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Coincidir sólo con tráfico de entrada desde estas MACs."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "Coincidir sólo con tráfico de entrada desde esta IP o rango."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -655,12 +657,12 @@ msgstr ""
"Solo coincida con el tráfico entrante que se origina desde el puerto de "
"origen o el rango de puertos en el host del cliente"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr "Dispositivo saliente"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr "Zona de salida"
@@ -669,9 +671,9 @@ msgstr "Zona de salida"
msgid "Output"
msgstr "Salida"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr "Ingrese argumentos adicionales a iptables. ¡Utilícelo con cuidado!"
@@ -690,12 +692,12 @@ msgstr ""
"conjunto de reglas del firewall se rompa, exponiendo completamente todos los "
"servicios."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Reenvío de puertos"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -703,36 +705,24 @@ msgstr ""
"El reenvío de puertos permite a ordenadores remotos en internet conectar a "
"un ordenador o servicio específico en la LAN privada."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protocolo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Redirigir el tráfico de entrada que coincida al puerto dado en el host "
"interno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
"Redirigir el tráfico de entrada que coincida al host interno especificado"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "Rechazar reenvío"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "Rechazar entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "Rechazar salida"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -746,61 +736,48 @@ msgstr "Restringir enmascaramiento a las subredes destino"
msgid "Restrict Masquerading to given source subnets"
msgstr "Restringir enmascaramiento a las subredes origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Restringir a la familia de direcciones"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr "Reescribir dirección IP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
"Reescribe el tráfico coincidente a la dirección IP de origen especificada."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
"Reescribe el tráfico coincidente al puerto de origen o rango de puertos "
"especificados."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr "Reescribir puerto"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr "Reescribe a"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-"Reescribe a %{ipaddr?%{puerto?%{ipaddr}, %{puerto}:%{ipaddr}}:%{puerto}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr "Reescribir a la IP del dispositivo saliente"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "Enrutamiento/NAT Offloading"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr "SNAT - Reescribe a una fuente específica IP o puerto"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Sábado"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr "Establecer marca"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -817,32 +794,32 @@ msgstr "Descarga basada en software para enrutamiento/NAT"
msgid "Software flow offloading"
msgstr "Descarga de flujo por software"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Dirección IP de origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Dirección MAC de origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Dirección de origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Puerto de origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Zona de origen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
@@ -850,7 +827,7 @@ msgstr ""
"Especifica si se debe vincular esta regla de tráfico a un dispositivo de red "
"entrante o saliente específico."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
@@ -858,28 +835,28 @@ msgstr ""
"Especifica si se debe usar la dirección IP externa o interna para el tráfico "
"reflejado."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "Fecha de inicio (aaaa-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr "Hora de inicio (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "Fecha de finalización (aaaa-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr "Hora de finalización (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Domingo"
@@ -924,55 +901,57 @@ msgstr ""
"<em>Redes cubiertas</em> especifican qué redes disponibles son miembros de "
"esta zona."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Jueves"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "Restricciones de tiempo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Tiempo en UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "A %s en %s por <var>este dispositivo</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "A %s en %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "A %s por <var>este dispositivo</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "A %s, %s en %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-"A %{ipaddr?:cualquier destino} %{puerto?a %{puerto}} %{zona?via zona "
-"%{zona}} %{dispositivo?dispositivo de salida %{dispositivo}}"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr "Ayudante de seguimiento"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Reglas de tráfico"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -982,8 +961,8 @@ msgstr ""
"diferentes zonas, por ejemplo, para rechazar el tráfico entre ciertos hosts "
"o para abrir puertos WAN en el enrutador."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Martes"
@@ -991,23 +970,23 @@ msgstr "Martes"
msgid "Unable to save contents: %s"
msgstr "No se puede guardar el contenido: %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr "Ayudante de Conntrack desconocido o no instalado \"%s\""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr "NAT sin nombre"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "Reenvío sin nombre"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "Regla sin nombre"
@@ -1015,11 +994,15 @@ msgstr "Regla sin nombre"
msgid "Unnamed zone"
msgstr "Zona sin nombre"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr "Usar dirección IP externa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr "Usar dirección IP interna"
@@ -1039,33 +1022,25 @@ msgstr ""
"Use esta opción para clasificar el tráfico de zona por subred de origen o "
"destino en lugar de redes o dispositivos."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr "Se requiere una marca de firewall válida"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Vía %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Vía %s a %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Miércoles"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "Días de la semana"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr "Marca de firewall XOR"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr "Marca XOR"
@@ -1077,137 +1052,288 @@ msgstr "Zona ⇒ Reenvíos"
msgid "Zones"
msgstr "Zonas"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "Aceptar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "cualquiera"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "cualquier host"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "cualquier router IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "cualquier zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr "aplicar marca de firewall"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr "asignar ayudante de Conntrack"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "Día"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr "no reescribir"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "No seguir"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "Descartar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "Hora"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "Minuto"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "No"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "puerto"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "puertos"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "Rechazar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "segundo"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "Esta nueva zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "Tipo"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "Tipos"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr "ilimitado"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr "sin especificar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr "marca de firewall válida"
+#~ msgid "%s in %s"
+#~ msgstr "%s en %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s con %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s en %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> paquetes por <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr ""
+#~ "<var>%d</var> paquetes por <var>%s</var>, máximo <var>%d</var> paquetes."
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> y limitar a %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "Aceptar reenvío"
+
+#~ msgid "Accept input"
+#~ msgstr "Aceptar entrada"
+
+#~ msgid "Accept output"
+#~ msgstr "Aceptar salida"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Dirección IP destino"
+
+#~ msgid "Discard forward"
+#~ msgstr "Descartar reenvío"
+
+#~ msgid "Discard input"
+#~ msgstr "Descartar entrada"
+
+#~ msgid "Discard output"
+#~ msgstr "Descartar salida"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "No reescribir"
+
+#~ msgid "Do not track forward"
+#~ msgstr "No seguir reenvío"
+
+#~ msgid "Do not track input"
+#~ msgstr "No seguir entrada"
+
+#~ msgid "Do not track output"
+#~ msgstr "No seguir salida"
+
+#~ msgid "Forward to"
+#~ msgstr "Reenviar a"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Desde %s en %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Desde %s en %s con origen %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Desde %s en %s con origen %s y %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "Desde %s en <var>este dispositivo</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "Desde %s en <var>este dispositivo</var> con la fuente %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "De %s en <var>este dispositivo</var> con la fuente %s y %s"
+
+#~ msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#~ msgstr "Desde %{ipaddr?:cualquier host} %{puerto?con origen %{puerto}}"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "Rango de IP"
+
+#~ msgid "IPs"
+#~ msgstr "IP"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MAC"
+
+#~ msgid ""
+#~ "Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} "
+#~ "%{mark?with firewall mark %{mark}} %{limit?limited to %{limit}}"
+#~ msgstr ""
+#~ "Coincidir %{protocolo?%{familia} %{protocolo} tráfico:cualquiera "
+#~ "%{familia} tráfico} %{marco?con marco de firewall %{marco}}"
+
+#~ msgid "Network"
+#~ msgstr "Red"
+
+#~ msgid "Refuse forward"
+#~ msgstr "Rechazar reenvío"
+
+#~ msgid "Refuse input"
+#~ msgstr "Rechazar entrada"
+
+#~ msgid "Refuse output"
+#~ msgstr "Rechazar salida"
+
+#~ msgid "Rewrite to"
+#~ msgstr "Reescribe a"
+
+#~ msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
+#~ msgstr ""
+#~ "Reescribe a %{ipaddr?%{puerto?%{ipaddr}, %{puerto}:%{ipaddr}}:%{puerto}}"
+
+#~ msgid "Rewrite to outbound device IP"
+#~ msgstr "Reescribir a la IP del dispositivo saliente"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "A %s en %s por <var>este dispositivo</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "A %s en %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "A %s por <var>este dispositivo</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "A %s, %s en %s"
+
+#~ msgid ""
+#~ "To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
+#~ "%{device?egress device %{device}}"
+#~ msgstr ""
+#~ "A %{ipaddr?:cualquier destino} %{puerto?a %{puerto}} %{zona?via zona "
+#~ "%{zona}} %{dispositivo?dispositivo de salida %{dispositivo}}"
+
+#~ msgid "Via %s"
+#~ msgstr "Vía %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Vía %s a %s"
+
+#~ msgid "any host"
+#~ msgstr "cualquier host"
+
+#~ msgid "any router IP"
+#~ msgstr "cualquier router IP"
+
+#~ msgid "not"
+#~ msgstr "No"
+
+#~ msgid "port"
+#~ msgstr "puerto"
+
+#~ msgid "ports"
+#~ msgstr "puertos"
+
+#~ msgid "type"
+#~ msgstr "Tipo"
+
+#~ msgid "types"
+#~ msgstr "Tipos"
+
#~ msgid "Force connection tracking"
#~ msgstr "Forzar seguimiento de conexión"
diff --git a/applications/luci-app-firewall/po/fr/firewall.po b/applications/luci-app-firewall/po/fr/firewall.po
index ca2494b41..53c816f86 100644
--- a/applications/luci-app-firewall/po/fr/firewall.po
+++ b/applications/luci-app-firewall/po/fr/firewall.po
@@ -14,53 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.10.1\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s dans %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s avec %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s dans %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "Accepter l'entrée"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Action"
@@ -77,9 +127,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Paramètres avancés"
@@ -96,30 +146,29 @@ msgstr "Permettre la transmission des <em>zones source</em> :"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Permettre la transmission vers les <em>zones destination</em> :"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "N'importe lequel"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "N'importe quel jour"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -173,84 +222,53 @@ msgstr ""
"feu. Les commandes sont exécutées après chaque redémarrage du pare-feu, "
"juste après le chargement de l'ensemble de règles par défaut."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Adresse IP de destination"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Adresse de destination"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Port de destination"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Zone de destination"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Supprimer les paquets invalides"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Activer"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Activer le NAT sur la boucle-locale"
@@ -262,7 +280,7 @@ msgstr "Activer la protection contre le SYN-flood"
msgid "Enable logging on this zone"
msgstr "Activer les traces (logs) sur cette zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -274,17 +292,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Adresse IP externe"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Port externe"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Arguments supplémentaires"
@@ -312,15 +330,15 @@ msgstr "Pare-feu"
msgid "Firewall - Custom Rules"
msgstr "Pare-feu - Règles personnalisées"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Pare-feu - Redirections de ports"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Pare-feu - Règles de trafic"
@@ -333,49 +351,54 @@ msgstr "Pare-feu - Configuration des zones"
msgid "Forward"
msgstr "Transférer"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Transférer à"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Vendredi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -386,72 +409,64 @@ msgstr "Paramètres généraux"
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "Plage IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IPs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 et IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "IPv4 seulement"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "IPv6 seulement"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Entrée"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Adresse IP interne"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Port interne"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Zone interne"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -459,27 +474,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Limiter les messages de journalisation"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MACs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -491,54 +506,48 @@ msgstr "Contrainte du MSS"
msgid "Masquerading"
msgstr "Masquage"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Type ICMP correspondant"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -546,89 +555,85 @@ msgstr ""
"Prendre en compte le trafic dirigé vers le port de destination donné (ou la "
"gamme de ports) sur cet hôte"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Lundi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Nom"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Réseau"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Montrer seulement le trafic entrant provenant de ces adresses MAC."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -637,9 +642,9 @@ msgstr ""
msgid "Output"
msgstr "Sortie"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
"Passe des arguments supplémentaires aux tables d'adresses IP. A utiliser "
@@ -654,12 +659,12 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Redirections de port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -667,35 +672,23 @@ msgstr ""
"La redirection de port permet aux ordinateurs distants sur Internet, de se "
"connecter à un ordinateur ou service spécifié dans le réseau local privé."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protocole"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Rediriger le trafic entrant correspondant vers le port donné sur l'hôte "
"interne"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Rediriger le trafic entrant correspondant vers l'hôte interne spécifié"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -712,57 +705,45 @@ msgstr ""
"Restreindre la substitution d'adresses (Masquerade) à ces sous-réseaux "
"sources"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Restreindre à cette famille d'adresses"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Samedi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -806,65 +787,65 @@ msgstr ""
# msgid "Protocol"
# msgstr ""
#
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Adresse IP source"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Adresse MAC source"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Adresse source"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Port source"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Zone source"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Dimanche"
@@ -910,53 +891,57 @@ msgstr ""
"cette zone. Les <em>réseaux couverts</em> indiquent quels réseaux "
"disponibles sont membre de cette zone."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Jeudi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Heure en UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Règles de trafic"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -966,8 +951,8 @@ msgstr ""
"entre différentes zones, par exemple pour rejeter le trafic entre certains "
"hôtes ou pour ouvrir des ports WAN sur le routeur."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Mardi"
@@ -975,23 +960,23 @@ msgstr "Mardi"
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -999,11 +984,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -1021,33 +1010,25 @@ msgstr ""
"Utilisez cette option pour classer le trafic de zone par sous-réseau source "
"ou de destination au lieu de réseaux ou de périphériques."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Mercredi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1059,137 +1040,170 @@ msgstr "Zone ⇒ Transmissions"
msgid "Zones"
msgstr "Zones"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "accepter"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "tous"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "n'importe quel hôte"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "n'importe quelle zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "journée"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "ignorer"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "heure"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "minute"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "ne pas"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "port"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "rejeter"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "type"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s dans %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s avec %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s dans %s"
+
+#~ msgid "Accept input"
+#~ msgstr "Accepter l'entrée"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Adresse IP de destination"
+
+#~ msgid "Forward to"
+#~ msgstr "Transférer à"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "Plage IP"
+
+#~ msgid "IPs"
+#~ msgstr "IPs"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MACs"
+
+#~ msgid "Network"
+#~ msgstr "Réseau"
+
+#~ msgid "any host"
+#~ msgstr "n'importe quel hôte"
+
+#~ msgid "not"
+#~ msgstr "ne pas"
+
+#~ msgid "port"
+#~ msgstr "port"
+
+#~ msgid "type"
+#~ msgstr "type"
+
#~ msgid "Force connection tracking"
#~ msgstr "Forcer le suivi des connexions"
diff --git a/applications/luci-app-firewall/po/he/firewall.po b/applications/luci-app-firewall/po/he/firewall.po
index aad6172ea..92c844683 100644
--- a/applications/luci-app-firewall/po/he/firewall.po
+++ b/applications/luci-app-firewall/po/he/firewall.po
@@ -8,53 +8,103 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr ""
@@ -71,9 +121,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr ""
@@ -90,30 +140,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -161,84 +210,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -250,7 +268,7 @@ msgstr ""
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -262,17 +280,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -296,15 +314,15 @@ msgstr ""
msgid "Firewall - Custom Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr ""
@@ -317,49 +335,54 @@ msgstr ""
msgid "Forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -370,72 +393,64 @@ msgstr ""
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -443,27 +458,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -475,142 +490,132 @@ msgstr ""
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -619,9 +624,9 @@ msgstr ""
msgid "Output"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -634,44 +639,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -684,57 +677,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -748,65 +729,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -836,61 +817,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -898,23 +883,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -922,11 +907,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -942,33 +931,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -980,133 +961,112 @@ msgstr ""
msgid "Zones"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
diff --git a/applications/luci-app-firewall/po/hi/firewall.po b/applications/luci-app-firewall/po/hi/firewall.po
index 89570e9d7..1e2b057ad 100644
--- a/applications/luci-app-firewall/po/hi/firewall.po
+++ b/applications/luci-app-firewall/po/hi/firewall.po
@@ -14,53 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr ""
@@ -77,9 +127,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr ""
@@ -96,30 +146,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -167,84 +216,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -256,7 +274,7 @@ msgstr ""
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -268,17 +286,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -306,15 +324,15 @@ msgstr ""
msgid "Firewall - Custom Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr ""
@@ -327,49 +345,54 @@ msgstr ""
msgid "Forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -380,72 +403,64 @@ msgstr ""
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -453,27 +468,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -485,142 +500,132 @@ msgstr ""
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -629,9 +634,9 @@ msgstr ""
msgid "Output"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -644,44 +649,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -694,57 +687,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -788,65 +769,65 @@ msgstr ""
# msgid "Protocol"
# msgstr ""
#
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -876,61 +857,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -938,23 +923,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -962,11 +947,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -982,33 +971,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1020,133 +1001,118 @@ msgstr ""
msgid "Zones"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
diff --git a/applications/luci-app-firewall/po/hu/firewall.po b/applications/luci-app-firewall/po/hu/firewall.po
index 1a67ebe72..c010cb57d 100644
--- a/applications/luci-app-firewall/po/hu/firewall.po
+++ b/applications/luci-app-firewall/po/hu/firewall.po
@@ -12,53 +12,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10.2\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s ebben: %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s ezzel: %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s ebben: %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> csomag / <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> csomag / <var>%s</var>, löket <var>%d</var> csomag"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> és korlátozás erre: %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
msgid "A rewrite IP must be specified!"
msgstr "Egy átírási IP-t meg kell adni!"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
msgid "ACCEPT - Disable address rewriting"
msgstr "ELFOGADÁS – címátírás letiltása"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "Továbbítás elfogadása"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "Bemenet elfogadása"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "Kimenet elfogadása"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Művelet"
@@ -81,9 +131,9 @@ msgstr ""
"besorolásához, például <code>-p tcp --sport 443</code> csak a bejövő HTTPS "
"forgalom illesztéséhez."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Speciális beállítások"
@@ -100,35 +150,34 @@ msgstr "Továbbítás engedélyezése a <em>forrászónákból</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Továbbítás engedélyezése ezekbe a <em>célzónákba</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Bármelyik"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "Bármely nap"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
"A megadott érték és a meglévő jelölésérték bitenkénti kizáró vagy "
-"műveletének alkalmazása a kiépített kapcsolatokon. A formátum: érték[/maszk]"
-". Ha egy maszk meg van adva, akkor a maszkban beállított bitek ki lesznek "
-"nullázva."
+"műveletének alkalmazása a kiépített kapcsolatokon. A formátum: érték[/"
+"maszk]. Ha egy maszk meg van adva, akkor a maszkban beállított bitek ki "
+"lesznek nullázva."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
"A megadott DSCP-osztály vagy érték alkalmazása a kiépített kapcsolatokra."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
"A megadott kapcsolatkövető segítőjének hozzárendelése az illesztett "
@@ -184,51 +233,36 @@ msgstr ""
"parancsok minden tűzfal-újraindítás után végrehajtásra kerülnek, közvetlenül "
"az alapértelmezett szabálykészletek betöltődése után."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr "DSCP osztályozás"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr "DSCP jelölés"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr "DSCP jelölés szükséges"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Cél IP-cím"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Célcím"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Célport"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Célzóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr "Eszköz neve"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "Továbbítás elvetése"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "Bemenet elvetése"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "Kimenet elvetése"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
@@ -237,33 +271,17 @@ msgstr ""
"Ne telepítsen további szabályokat az <em>érvénytelen</em> kapcsolatkövető "
"állapottal rendelkező továbbított forgalom visszautasításához."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Ne írja felül"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "Ne kövesse a továbbítást"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "Ne kövesse a bemenetet"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "Ne kövesse a kimenetet"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Érvénytelen csomagok eldobása"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Engedélyezés"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "NAT visszacsatolás engedélyezése"
@@ -275,7 +293,7 @@ msgstr "SYN-elárasztás elleni védelem engedélyezése"
msgid "Enable logging on this zone"
msgstr "Naplózás engedélyezése ezen a zónán"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr "Elvárás: %s"
@@ -289,17 +307,17 @@ msgstr ""
"Határozottan kiválasztja az engedélyezett kapcsolatkövető segítőket a "
"zónaforgalomhoz"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Külső IP-cím"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Külső port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "További argumentumok"
@@ -323,15 +341,15 @@ msgstr "Tűzfal"
msgid "Firewall - Custom Rules"
msgstr "Tűzfal – egyéni szabályok"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr "Tűzfal – NAT szabályok"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Tűzfal – porttovábbítások"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Tűzfal – forgalmi szabályok"
@@ -344,50 +362,54 @@ msgstr "Tűzfal – Zóna beállításai"
msgid "Forward"
msgstr "Továbbítás"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Továbbítás ide"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Péntek"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Innen: %s, ebben: %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Innen: %s, ebben: %s, ezzel a forrással: %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Innen: %s, ebben: %s, ezekkel a forrásokkal: %s és %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "Ettől: %s, <var>ezen az eszközön</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "Ettől: %s, <var>ezen az eszközön</var>, ezzel a forrással: %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-"Ettől: %s, <var>ezen az eszközön</var>, ezekkel a forrásokkal: %s és %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -398,72 +420,64 @@ msgstr "Általános beállítások"
msgid "Hardware flow offloading"
msgstr "Hardveres áramláskiürítés"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "IP-tartomány"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IP-k"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 és IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Csak IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Csak IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr "Bejövő eszköz"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Bemenet"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Belső IP-cím"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Belső port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Belső zóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr "Érvénytelen DSCP jelölés"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr "Érvénytelen korlátérték"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr "Löket korlátozása"
@@ -471,27 +485,27 @@ msgstr "Löket korlátozása"
msgid "Limit log messages"
msgstr "Naplóüzenetek korlátozása"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr "Illesztés korlátozása"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr "Korlátozza a megadott sebességre illeszkedő forgalmat."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr "Visszacsatolás forrás IP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MAC-ek"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr "ÁLCÁZÁS – átírás automatikusan a kimenő csatoló IP-jére"
@@ -503,58 +517,52 @@ msgstr "MSS összefogás"
msgid "Masquerading"
msgstr "Álcázás"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Illesztés"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr "DSCP illesztése"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "ICMP-típus illesztése"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr "Eszköz illesztése"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr "A megadott IP-címre irányított továbbított forgalom illesztése."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
"A megadott célportra vagy porttartományra irányított továbbított forgalom "
"illesztése."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr "Erről az IP-ről vagy tartományról továbbított forgalom illesztése."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
"A megadott forrásportról vagy porttartományból eredő továbbított forgalom "
"illesztése."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr "Illesztési segítő"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -562,31 +570,31 @@ msgstr ""
"Az ezen a gépen lévő megadott célportra vagy porttartományra irányított "
"bejövő forgalom illesztése"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr "Jelölés illesztése"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr "Forgalom illesztése a megadott kapcsolatkövető segítő használatával."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
"Egy bizonyos tűzfaljelölést vagy különböző jelölések tartományát illeszti."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
"A megadott kimeneti hálózati eszköz használatával illeszti a továbbított "
"forgalmat."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr "A megadott DSCP jelölést szállító forgalmat illeszti."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
@@ -595,22 +603,22 @@ msgstr ""
"minden alkalommal, amikor a fent meghatározott korlátot nem érik el, "
"legfeljebb eddig a számig."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Hétfő"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Hónap napjai"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr "NAT szabályok"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
@@ -618,31 +626,27 @@ msgstr ""
"A NAT szabályok lehetővé teszik a részletes szabályozást a kimenő vagy "
"továbbított forgalomnál használandó forrás IP fölött."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Név"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Hálózat"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "Csak a megadott IP-címre irányított bejövő forgalom illesztése."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Csak ezekről a MAC-ekről érkező bejövő forgalom illesztése."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
"Csak erről az IP-ről vagy tartományból érkező bejövő forgalom illesztése."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -650,12 +654,12 @@ msgstr ""
"Csak az ügyfélgépen lévő megadott forrásportról vagy porttartományból eredő "
"bejövő forgalom illesztése"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr "Kimeneti eszköz"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr "Kimenő zóna"
@@ -664,9 +668,9 @@ msgstr "Kimenő zóna"
msgid "Output"
msgstr "Kimenet"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
"Átadja a további argumentumokat az iptables részére. Használja "
@@ -687,12 +691,12 @@ msgstr ""
"tönkre tehetik a tűzfalszabálykészleteket, ezáltal teljesen feltárva az "
"összes szolgáltatást."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Porttovábbítások"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -701,33 +705,21 @@ msgstr ""
"személyes helyi hálózat bizonyos számítógépéhez vagy szolgáltatásához "
"történő csatlakozását."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protokoll"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr "Egyező bejövő forgalom átirányítása a belső gép megadott portjára"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Egyező bejövő forgalom átirányítása a megadott belső gépre"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "Továbbítás visszautasítása"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "Bemenet visszautasítása"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "Kimenet visszautasítása"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr "Hardveres NAT támogatás szükséges. Legalább az mt7621-hez megvalósítva"
@@ -740,58 +732,46 @@ msgstr "Álcázás korlátozása a megadott célalhálózatokra"
msgid "Restrict Masquerading to given source subnets"
msgstr "Álcázás korlátozása a megadott forrás alhálózatokra"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Korlátozás címcsaládra"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr "IP-cím átírása"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr "Illesztett forgalom átírása a megadott forrás IP-címre."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
"Illesztett forgalom átírása a megadott forrásportra vagy porttartományra."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr "Port átírása"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr "Átírás erre:"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr "Átírás a kimenő eszköz IP-jére"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "Útválasztás vagy NAT kiürítés"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr "SNAT – átírás egy adott forrás IP-re vagy portra"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Szombat"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr "Jelölés beállítása"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -808,32 +788,32 @@ msgstr "Szoftver alapú kiürítés az útválasztásnál vagy NAT-nál"
msgid "Software flow offloading"
msgstr "Szoftveres áramláskiürítés"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Forrás IP-cím"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Forrás MAC-cím"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Forráscím"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Forrásport"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Forrászóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
@@ -841,7 +821,7 @@ msgstr ""
"Meghatározza, hogy ezt a forgalomszabályt egy adott bejövő vagy kimenő "
"hálózati eszközhöz kell kötni."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
@@ -849,28 +829,28 @@ msgstr ""
"Meghatározza, hogy a külső vagy a belső IP-címet használja a visszatükrözött "
"forgalomnál."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "Kezdés dátuma (ÉÉÉÉ-HH-NN)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr "Kezdés ideje (ÓÓ.PP.MM)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "Leállítás dátuma (ÉÉÉÉ-HH-NN)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr "Leállítás ideje (ÓÓ.PP.MM)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Vasárnap"
@@ -915,53 +895,57 @@ msgstr ""
"belül. A <em>lefedett hálózatok</em> adják meg, hogy mely elérhető hálózatok "
"tagjai ennek a zónának."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Csütörtök"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "Időkorlátozások"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Idő UTC szerint"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Ide: %s, ekkor: %s, <var>ezen az eszközön</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "Ide: %s, ebben: %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "Ide: %s, <var>ezen az eszközön</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "Erre: %s, %s ebben: %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr "Követési segítő"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Forgalmi szabályok"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -971,8 +955,8 @@ msgstr ""
"szabályokat határozzák meg, például bizonyos gépek közötti forgalom "
"visszautasításához vagy WAN portok megnyitásához az útválasztón."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Kedd"
@@ -980,23 +964,23 @@ msgstr "Kedd"
msgid "Unable to save contents: %s"
msgstr "Nem lehet elmenteni a tartalmat: %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr "Ismeretlen vagy nem telepített kapcsolatkövető segítő: „%s”"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr "Névtelen NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "Névtelen továbbítás"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "Névtelen szabály"
@@ -1004,11 +988,15 @@ msgstr "Névtelen szabály"
msgid "Unnamed zone"
msgstr "Névtelen zóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr "Külső IP-cím használata"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr "Belső IP-cím használata"
@@ -1028,33 +1016,25 @@ msgstr ""
"Használja ezt a beállítást a zónaforgalom forrás- vagy célalhálózat szerint "
"történő besorolásához a hálózatok vagy eszközök helyett."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr "Érvényes tűzfaljelölés szükséges"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Ezen keresztül: %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Ezen keresztül: %s, itt: %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Szerda"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "Hétköznapok"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr "kizáró vagy tűzfaljelölés"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr "kizáró vagy jelölés"
@@ -1066,137 +1046,267 @@ msgstr "Zóna ⇒ Továbbítások"
msgid "Zones"
msgstr "Zónák"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "elfogadás"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "bármely"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "bármely gép"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "bármely útválasztó IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "bármely zóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr "tűzfaljelölés alkalmazása"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr "kapcsolatkövető segítő hozzárendelése"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "nap"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr "ne írja át"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "ne kövessen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "eldobás"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "óra"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "perc"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "nem"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "port"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "portok"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "visszautasítás"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "másodperc"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "ez az új zóna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "típus"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "típusok"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr "korlátlan"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr "nincs meghatározva"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr "érvényes tűzfaljelölés"
+#~ msgid "Rewrite to"
+#~ msgstr "Átírás erre:"
+
+#~ msgid "Rewrite to outbound device IP"
+#~ msgstr "Átírás a kimenő eszköz IP-jére"
+
+#~ msgid "%s in %s"
+#~ msgstr "%s ebben: %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s ezzel: %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s ebben: %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> csomag / <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr "<var>%d</var> csomag / <var>%s</var>, löket <var>%d</var> csomag"
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> és korlátozás erre: %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "Továbbítás elfogadása"
+
+#~ msgid "Accept input"
+#~ msgstr "Bemenet elfogadása"
+
+#~ msgid "Accept output"
+#~ msgstr "Kimenet elfogadása"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Cél IP-cím"
+
+#~ msgid "Discard forward"
+#~ msgstr "Továbbítás elvetése"
+
+#~ msgid "Discard input"
+#~ msgstr "Bemenet elvetése"
+
+#~ msgid "Discard output"
+#~ msgstr "Kimenet elvetése"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Ne írja felül"
+
+#~ msgid "Do not track forward"
+#~ msgstr "Ne kövesse a továbbítást"
+
+#~ msgid "Do not track input"
+#~ msgstr "Ne kövesse a bemenetet"
+
+#~ msgid "Do not track output"
+#~ msgstr "Ne kövesse a kimenetet"
+
+#~ msgid "Forward to"
+#~ msgstr "Továbbítás ide"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Innen: %s, ebben: %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Innen: %s, ebben: %s, ezzel a forrással: %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Innen: %s, ebben: %s, ezekkel a forrásokkal: %s és %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "Ettől: %s, <var>ezen az eszközön</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "Ettől: %s, <var>ezen az eszközön</var>, ezzel a forrással: %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr ""
+#~ "Ettől: %s, <var>ezen az eszközön</var>, ezekkel a forrásokkal: %s és %s"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "IP-tartomány"
+
+#~ msgid "IPs"
+#~ msgstr "IP-k"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MAC-ek"
+
+#~ msgid "Network"
+#~ msgstr "Hálózat"
+
+#~ msgid "Refuse forward"
+#~ msgstr "Továbbítás visszautasítása"
+
+#~ msgid "Refuse input"
+#~ msgstr "Bemenet visszautasítása"
+
+#~ msgid "Refuse output"
+#~ msgstr "Kimenet visszautasítása"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "Ide: %s, ekkor: %s, <var>ezen az eszközön</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "Ide: %s, ebben: %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "Ide: %s, <var>ezen az eszközön</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "Erre: %s, %s ebben: %s"
+
+#~ msgid "Via %s"
+#~ msgstr "Ezen keresztül: %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Ezen keresztül: %s, itt: %s"
+
+#~ msgid "any host"
+#~ msgstr "bármely gép"
+
+#~ msgid "any router IP"
+#~ msgstr "bármely útválasztó IP"
+
+#~ msgid "not"
+#~ msgstr "nem"
+
+#~ msgid "port"
+#~ msgstr "port"
+
+#~ msgid "ports"
+#~ msgstr "portok"
+
+#~ msgid "type"
+#~ msgstr "típus"
+
+#~ msgid "types"
+#~ msgstr "típusok"
+
#~ msgid "Force connection tracking"
#~ msgstr "Kapcsolat követés kényszerítése"
diff --git a/applications/luci-app-firewall/po/it/firewall.po b/applications/luci-app-firewall/po/it/firewall.po
index 96cec2922..503cb7b52 100644
--- a/applications/luci-app-firewall/po/it/firewall.po
+++ b/applications/luci-app-firewall/po/it/firewall.po
@@ -14,53 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10.1\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s con %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> e limita a %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "Accetta input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "Accetta output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Azione"
@@ -77,9 +127,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Opzioni Avanzate"
@@ -96,30 +146,29 @@ msgstr "Permetti routing da <em>zone di origine</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Permetti rounting a <em>zone di destinazione</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Qualsiasi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "Qualsiasi giorno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -171,84 +220,53 @@ msgstr ""
"comandi sono eseguiti dopo ogni riavvio del firewall, giusto dopo le altre "
"regole che sono state caricate."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Indirizzo IP destinazione"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Indirizzo di destinazione"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Porta di destinazione"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Zona di destinazione"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Non riscrivere"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Scarta pacchetti invalidi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Attiva"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Attiva NAT Loopback"
@@ -260,7 +278,7 @@ msgstr "Attiva protezione SYN-flood"
msgid "Enable logging on this zone"
msgstr "Attiva registro su questa zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -272,17 +290,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Indirizzo IP Esterno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Porta Esterna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Comandi extra"
@@ -306,15 +324,15 @@ msgstr "Firewall"
msgid "Firewall - Custom Rules"
msgstr "Firewall - Regole Personalizzate"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Firewall - Inoltro Porte"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Firewall - Regole Traffico"
@@ -327,49 +345,54 @@ msgstr "Firewall - Opzioni delle Zone"
msgid "Forward"
msgstr "Inoltra"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Inoltra a"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Venerdì"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Da %s a %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Da %s a %s con sorgente %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Da %s a %s con sorgente %s e %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -380,72 +403,64 @@ msgstr "Opzioni Generali"
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "Intervallo IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IPs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 e IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Solo IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Solo IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Ingresso"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Indirizzo IP interno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Porta interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Zona Interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -453,27 +468,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Limita messaggi del registro"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MACs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -485,54 +500,48 @@ msgstr ""
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Corrispondenza"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Corrispondenza tipo ICMP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -540,78 +549,74 @@ msgstr ""
"Corrispondi traffico in entrata diretto alla porta o intervallo di porte "
"dato su questo host"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Lunedì"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Giorni del Mese"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Nome"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Rete"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "Corrispondi solo traffico in entrata diretto al dato indirizzo IP."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Corrispondi solo traffico in entrata da questi MAC."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "Corrispondi solo traffico in entrata da questo IP o intervallo."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -619,12 +624,12 @@ msgstr ""
"Corrispondi solo traffico in entrata originato dalla porta o intervallo di "
"porte sorgenti su host cliente"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -633,9 +638,9 @@ msgstr ""
msgid "Output"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr "Passa comandi addizionali a iptables. Usare con cura!"
@@ -648,12 +653,12 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Inoltri Porta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -661,33 +666,21 @@ msgstr ""
"L'inoltro delle porte permette ai computer in remoto su Internet di "
"connettersi a uno specifico computer o servizio presente nella LAN privata"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protocollo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr "Reindirizza il traffico in entrata alla porta data su host interno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Reindirizza il traffico in entrata allo specifico host interno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -700,57 +693,45 @@ msgstr "Limita il Masquerading alle subnet di destinazione date"
msgid "Restrict Masquerading to given source subnets"
msgstr "Limita il Masquerading alle subnet sorgente date"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Limita agli indirizzi famiglia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Sabato"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -785,65 +766,65 @@ msgstr ""
# msgstr ""
# msgid "Protocol"
# msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Indirizzo IP di origine"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Indirizzo MAC di origine"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Indirizzo di origine"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Porta di origine"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Zona di origine"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "Data di Inizio (yyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "Data di Stop (yyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Domenica"
@@ -888,53 +869,57 @@ msgstr ""
"differenti nella zona. Le <em>reti coperte</em> specificano quali reti "
"disponibili sono membri di questa zona."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Giovedì"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Orario in UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Verso %s a %s su <var>questo dispositivo</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "Verso %s in %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "Verso %s su <var>questo dispositivo</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "Verso %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Regole di Traffico"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -944,8 +929,8 @@ msgstr ""
"tra zone differenti, per esempio per rifiutare il traffico tra certi host o "
"per aprire porte WAN sul router."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Martedì"
@@ -953,23 +938,23 @@ msgstr "Martedì"
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "Regola senza nome"
@@ -977,11 +962,15 @@ msgstr "Regola senza nome"
msgid "Unnamed zone"
msgstr "Zona senza nome"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -997,33 +986,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Via %s a %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Mercoledì"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "Giorni della Settimana"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1035,137 +1016,200 @@ msgstr "Zona ⇒ Inoltri"
msgid "Zones"
msgstr "Zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "accetta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "qualsiasi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "qualsiasi host"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "qualsiasi router IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "qualsiasi zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "giorno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "non tracciare"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "scarta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "non"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "porti"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "rifiuta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "questa nuova zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "tipi"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s con %s"
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> e limita a %s"
+
+#~ msgid "Accept input"
+#~ msgstr "Accetta input"
+
+#~ msgid "Accept output"
+#~ msgstr "Accetta output"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Indirizzo IP destinazione"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Non riscrivere"
+
+#~ msgid "Forward to"
+#~ msgstr "Inoltra a"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Da %s a %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Da %s a %s con sorgente %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Da %s a %s con sorgente %s e %s"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "Intervallo IP"
+
+#~ msgid "IPs"
+#~ msgstr "IPs"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MACs"
+
+#~ msgid "Network"
+#~ msgstr "Rete"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "Verso %s a %s su <var>questo dispositivo</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "Verso %s in %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "Verso %s su <var>questo dispositivo</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "Verso %s, %s in %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Via %s a %s"
+
+#~ msgid "any host"
+#~ msgstr "qualsiasi host"
+
+#~ msgid "any router IP"
+#~ msgstr "qualsiasi router IP"
+
+#~ msgid "not"
+#~ msgstr "non"
+
+#~ msgid "ports"
+#~ msgstr "porti"
+
+#~ msgid "types"
+#~ msgstr "tipi"
+
#~ msgid "Force connection tracking"
#~ msgstr "Forza tracciamento connessione"
diff --git a/applications/luci-app-firewall/po/ja/firewall.po b/applications/luci-app-firewall/po/ja/firewall.po
index be98d30e7..f2d4b0737 100644
--- a/applications/luci-app-firewall/po/ja/firewall.po
+++ b/applications/luci-app-firewall/po/ja/firewall.po
@@ -14,54 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s (%s)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s ,%s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s (%s)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> パケット / <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-"<var>%d</var> パケット / <var>%s</var>, バースト <var>%d</var> パケット"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var>, %s を上限に設定"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "転送を許可"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "入力を許可"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "出力を許可"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "動作"
@@ -84,9 +133,9 @@ msgstr ""
"em> 引数です。(例: HTTPS 受信トラフィックのみにマッチさせる <code>-p tcp --"
"sport 443</code>)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "詳細設定"
@@ -103,30 +152,29 @@ msgstr "<em>送信元ゾーン</em>からの転送を許可する:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "<em>宛先ゾーン</em>への転送を許可する:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "全て"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "全日"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -180,51 +228,36 @@ msgstr ""
"ドは、ファイアウォール機能の起動ごとに、標準のルールが読み込まれた後に実行さ"
"れます。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "宛先アドレス"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "宛先ポート"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "宛先ゾーン"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "転送を破棄"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "入力を破棄"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "出力を破棄"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
@@ -234,33 +267,17 @@ msgstr ""
"追加ルールをインストールしません。これは、複雑で非対称なルートのセットアップ"
"に必要となることがあります。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "リライトしない"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "転送を追跡しない"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "入力を追跡しない"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "出力を追跡しない"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "無効なパケットを遮断する"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "有効"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "NATループバックを有効にする"
@@ -272,7 +289,7 @@ msgstr "SYN-Floodプロテクションを有効にする"
msgid "Enable logging on this zone"
msgstr "このゾーンのログ記録を有効にする"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -284,17 +301,17 @@ msgstr "実験的な機能です。 QoS/SQM との完全な互換性はありま
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr "ゾーン トラフィックのコネクション追跡ヘルパーを明示的に選択します。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "外部IPアドレス"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "外部ポート"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "追加の引数"
@@ -318,15 +335,15 @@ msgstr "ファイアウォール"
msgid "Firewall - Custom Rules"
msgstr "ファイアウォール - 手動設定ルール"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "ファイアウォール - ポートフォワーディング"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "ファイアウォール - トラフィック・ルール"
@@ -339,49 +356,54 @@ msgstr "ファイアウォール - ゾーン設定"
msgid "Forward"
msgstr "転送"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "転送先"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "金曜日"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "送信元 %s (%s)"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "送信元 %s (%s) , %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "送信元 %s (%s) , %s, %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "送信元 %s (<var>デバイス</var>)"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "送信元 %s, %s (<var>デバイス</var>)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "送信元 %s, %s, %s (<var>デバイス</var>)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -392,72 +414,64 @@ msgstr "一般設定"
msgid "Hardware flow offloading"
msgstr "ハードウェア フローオフロード"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "IP の範囲"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4及びIPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "IPv4のみ"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "IPv6のみ"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "受信"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "内部IPアドレス"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "内部ポート"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "内部ゾーン"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -465,27 +479,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "ログメッセージを制限"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -497,54 +511,48 @@ msgstr "MSSクランプ"
msgid "Masquerading"
msgstr "マスカレード"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "対象"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "ICMPタイプの一致"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -552,80 +560,76 @@ msgstr ""
"設定された宛先ポート(またはポート範囲)に一致した受信トラフィックが対象になり"
"ます"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "月曜日"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "月間"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "名前"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "ネットワーク"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "設定された宛先IPアドレスと一致した受信トラフィックが対象になります。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "設定されたMACアドレスと一致した受信したトラフィックが対象になります。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
"設定されたIPアドレス (または範囲) と一致した受信したトラフィックが対象になり"
"ます。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -633,12 +637,12 @@ msgstr ""
"設定されたクライアントホストの送信元ポート(またはポート範囲)からの受信トラ"
"フィックと一致したトラフィックのみを対象にします。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -647,9 +651,9 @@ msgstr ""
msgid "Output"
msgstr "送信"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
"iptablesにパススルーする追加の引数を設定してください。ただし、注意して設定し"
@@ -669,12 +673,12 @@ msgstr ""
"し、全サービスを外部に晒す恐れがあることに、特段の注意を払い使用されなければ"
"なりません。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "ポートフォワーディング"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -683,34 +687,22 @@ msgstr ""
"ベートなネットワーク上の、特定のコンピュータやサービスへのアクセスを可能にし"
"ます。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "プロトコル"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"ルールに一致した受信トラフィックを、内部ホストの設定されたポートへ転送します"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "ルールに一致した受信トラフィックを、設定された内部ホストへ転送します"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "転送を拒否"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "入力を拒否"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "出力を拒否"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -724,57 +716,45 @@ msgstr "設定された宛先サブネットへのマスカレードを制限す
msgid "Restrict Masquerading to given source subnets"
msgstr "設定された送信元サブネットへのマスカレードを制限する"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "アドレスファミリの制限"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "ルーティング/NAT オフロード"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "土曜日"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -788,65 +768,65 @@ msgstr "ルーティング/NAT のための、ソフトウェアベースのオ
msgid "Software flow offloading"
msgstr "ソフトウェア フローオフロード"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "送信元IPアドレス"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "送信元MACアドレス"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "送信元アドレス"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "送信元ポート"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "送信元ゾーン"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "開始日 (yyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr "開始時刻 (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "停止日 (yyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr "停止時刻 (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "日曜日"
@@ -889,53 +869,57 @@ msgstr ""
"準のポリシーになります。<em>対象ネットワーク</em>は、どのネットワーク設定がこ"
"のゾーンに属するかを設定します。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "木曜日"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "時間制限"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "UTC時刻を使用"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "宛先 %s, %s (<var>デバイス</var>)"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "宛先 %s (%s)"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "宛先 %s (<var>デバイス</var>)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "宛先 %s, %s (%s)"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "トラフィック・ルール"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -945,8 +929,8 @@ msgstr ""
"します。例えば、特定のホスト間や、ルーターのWANポートへのトラフィックの拒否を"
"設定することができます。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "火曜日"
@@ -954,23 +938,23 @@ msgstr "火曜日"
msgid "Unable to save contents: %s"
msgstr "内容を保存できません: %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "名称未設定の転送"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "名称未設定のルール"
@@ -978,11 +962,15 @@ msgstr "名称未設定のルール"
msgid "Unnamed zone"
msgstr "名称未設定のゾーン"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -1002,33 +990,25 @@ msgstr ""
"ネットワークまたはデバイスに代わり、アクセス元またはアクセス先サブネットによ"
"るゾーン トラフィックの区分にこのオプションを使用します。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "経由 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "経由 %s , %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "水曜日"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "曜日"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1040,137 +1020,255 @@ msgstr "ゾーン ⇒ 転送"
msgid "Zones"
msgstr "ゾーン"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "許可"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "全て"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "全てのホスト"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "全てのルーターIP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "全てのゾーン"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "日"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "コネクション追跡を行わない"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "破棄"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "時間"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "分"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "ポート"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "ポート"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "拒否"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "秒"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "この新しいゾーン"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "タイプ"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "タイプ"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s (%s)"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s ,%s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s (%s)"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> パケット / <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr ""
+#~ "<var>%d</var> パケット / <var>%s</var>, バースト <var>%d</var> パケット"
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var>, %s を上限に設定"
+
+#~ msgid "Accept forward"
+#~ msgstr "転送を許可"
+
+#~ msgid "Accept input"
+#~ msgstr "入力を許可"
+
+#~ msgid "Accept output"
+#~ msgstr "出力を許可"
+
+#~ msgid "Discard forward"
+#~ msgstr "転送を破棄"
+
+#~ msgid "Discard input"
+#~ msgstr "入力を破棄"
+
+#~ msgid "Discard output"
+#~ msgstr "出力を破棄"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "リライトしない"
+
+#~ msgid "Do not track forward"
+#~ msgstr "転送を追跡しない"
+
+#~ msgid "Do not track input"
+#~ msgstr "入力を追跡しない"
+
+#~ msgid "Do not track output"
+#~ msgstr "出力を追跡しない"
+
+#~ msgid "Forward to"
+#~ msgstr "転送先"
+
+#~ msgid "From %s in %s"
+#~ msgstr "送信元 %s (%s)"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "送信元 %s (%s) , %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "送信元 %s (%s) , %s, %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "送信元 %s (<var>デバイス</var>)"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "送信元 %s, %s (<var>デバイス</var>)"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "送信元 %s, %s, %s (<var>デバイス</var>)"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "IP の範囲"
+
+#~ msgid "IPs"
+#~ msgstr "IP"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MAC"
+
+#~ msgid "Network"
+#~ msgstr "ネットワーク"
+
+#~ msgid "Refuse forward"
+#~ msgstr "転送を拒否"
+
+#~ msgid "Refuse input"
+#~ msgstr "入力を拒否"
+
+#~ msgid "Refuse output"
+#~ msgstr "出力を拒否"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "宛先 %s, %s (<var>デバイス</var>)"
+
+#~ msgid "To %s in %s"
+#~ msgstr "宛先 %s (%s)"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "宛先 %s (<var>デバイス</var>)"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "宛先 %s, %s (%s)"
+
+#~ msgid "Via %s"
+#~ msgstr "経由 %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "経由 %s , %s"
+
+#~ msgid "any host"
+#~ msgstr "全てのホスト"
+
+#~ msgid "any router IP"
+#~ msgstr "全てのルーターIP"
+
+#~ msgid "port"
+#~ msgstr "ポート"
+
+#~ msgid "ports"
+#~ msgstr "ポート"
+
+#~ msgid "type"
+#~ msgstr "タイプ"
+
+#~ msgid "types"
+#~ msgstr "タイプ"
+
#~ msgid "Force connection tracking"
#~ msgstr "強制的にコネクション追跡を行う"
diff --git a/applications/luci-app-firewall/po/ko/firewall.po b/applications/luci-app-firewall/po/ko/firewall.po
index 00eb4d126..f62824f61 100644
--- a/applications/luci-app-firewall/po/ko/firewall.po
+++ b/applications/luci-app-firewall/po/ko/firewall.po
@@ -14,53 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s ,%s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr ""
@@ -77,9 +127,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr ""
@@ -96,30 +146,29 @@ msgstr "<em>Source zone</em> 로부터의 forward 허용:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "<em>Destination zone</em> 으로 forward 허용:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -170,84 +219,53 @@ msgstr ""
"수 있도록 합니다. 입력된 명령어들은 매 방화벽 재시작시 실행되는데 default "
"ruleset 이 load 된 후 시점입니다."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Destination IP 주소"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Destination 주소"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "활성화"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "NAT Loopback 활성화"
@@ -259,7 +277,7 @@ msgstr "SYN-flood protection 활성화"
msgid "Enable logging on this zone"
msgstr "zone 의 logging 활성화"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -271,17 +289,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "외부 IP 주소"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "외부 port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "추가 argument"
@@ -305,15 +323,15 @@ msgstr "방화벽"
msgid "Firewall - Custom Rules"
msgstr "방화벽 - Custom Rules"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "방화벽 - Port Forwards"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "방화벽 - Traffic Rules"
@@ -326,49 +344,54 @@ msgstr "방화벽 - Zone 설정"
msgid "Forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "금요일"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -379,72 +402,64 @@ msgstr ""
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "내부 IP 주소"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "내부 port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "내부 zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -452,27 +467,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -484,142 +499,132 @@ msgstr ""
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "월요일"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "이름"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -628,9 +633,9 @@ msgstr ""
msgid "Output"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr "iptables 명령에 추가 인자들을 더합니다. 조심해 사용하세요!"
@@ -643,12 +648,12 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Port Forward"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -656,33 +661,21 @@ msgstr ""
"Port forwarding 기능은 인터넷 상의 원격 컴퓨터가 내부 LAN 에 속한 특정 컴퓨터"
"나 서비스에 접속할 수 있도록 합니다."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -695,57 +688,45 @@ msgstr "주어진 destination subnet 으로 Masquerading 제한"
msgid "Restrict Masquerading to given source subnets"
msgstr "주어진 source subnet 으로 Masquerading 제한"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Address family 제한"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "토요일"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -759,65 +740,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Source IP 주소"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Source MAC 주소"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Source 주소"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "시작 날짜 (yyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "종료 날짜 (yyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "일요일"
@@ -861,53 +842,57 @@ msgstr ""
"를 오가는 forward traffic 에 대한 정책을 뜻합니다. <em>Covered networks</em> "
"에서는 zone 의 영향을 받을 네트워크들을 지정할 수 있습니다."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "목요일"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "UTC 기준시"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Traffic Rule"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -917,8 +902,8 @@ msgstr ""
"다. 예를 들어 특정 host 들 사이의 트래픽을 차단하거나 공유기의 WAN port 를 "
"open 할때 사용됩니다."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "화요일"
@@ -926,23 +911,23 @@ msgstr "화요일"
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -950,11 +935,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -970,33 +959,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "수요일"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "주일"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1008,137 +989,128 @@ msgstr ""
msgid "Zones"
msgstr "Zone 내역"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s ,%s"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Destination IP 주소"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
#~ msgid "Add and edit..."
#~ msgstr "추가 후 수정..."
diff --git a/applications/luci-app-firewall/po/mr/firewall.po b/applications/luci-app-firewall/po/mr/firewall.po
index 9b71e137f..e0026896a 100644
--- a/applications/luci-app-firewall/po/mr/firewall.po
+++ b/applications/luci-app-firewall/po/mr/firewall.po
@@ -14,53 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr ""
@@ -77,9 +127,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "प्रगत सेटिंग्ज"
@@ -96,30 +146,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -167,84 +216,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "सक्षम करा"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -256,7 +274,7 @@ msgstr ""
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -268,17 +286,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -306,15 +324,15 @@ msgstr ""
msgid "Firewall - Custom Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr ""
@@ -327,49 +345,54 @@ msgstr ""
msgid "Forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -380,72 +403,64 @@ msgstr "सामान्य सेटिंग्ज"
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 आणि IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "केवळ IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "केवळ IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -453,27 +468,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -485,142 +500,132 @@ msgstr ""
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "नाव"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -629,9 +634,9 @@ msgstr ""
msgid "Output"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -644,44 +649,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "प्रोटोकॉल"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -694,57 +687,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -788,65 +769,65 @@ msgstr ""
# msgid "Protocol"
# msgstr ""
#
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -876,61 +857,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -938,23 +923,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -962,11 +947,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -982,33 +971,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1020,133 +1001,118 @@ msgstr ""
msgid "Zones"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
diff --git a/applications/luci-app-firewall/po/ms/firewall.po b/applications/luci-app-firewall/po/ms/firewall.po
index 0e3856e1a..910e3ffdb 100644
--- a/applications/luci-app-firewall/po/ms/firewall.po
+++ b/applications/luci-app-firewall/po/ms/firewall.po
@@ -12,53 +12,103 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Tindakan"
@@ -75,9 +125,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr ""
@@ -94,30 +144,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -165,84 +214,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -254,7 +272,7 @@ msgstr ""
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -266,17 +284,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -300,15 +318,15 @@ msgstr ""
msgid "Firewall - Custom Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr ""
@@ -321,49 +339,54 @@ msgstr ""
msgid "Forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -374,72 +397,64 @@ msgstr ""
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -447,27 +462,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -479,142 +494,132 @@ msgstr ""
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -623,9 +628,9 @@ msgstr ""
msgid "Output"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -638,44 +643,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -688,57 +681,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -752,65 +733,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -840,61 +821,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -902,23 +887,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -926,11 +911,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -946,33 +935,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -984,133 +965,118 @@ msgstr ""
msgid "Zones"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
diff --git a/applications/luci-app-firewall/po/no/firewall.po b/applications/luci-app-firewall/po/no/firewall.po
index 11e2df5f6..2cb1beca1 100644
--- a/applications/luci-app-firewall/po/no/firewall.po
+++ b/applications/luci-app-firewall/po/no/firewall.po
@@ -10,53 +10,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s i %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s med %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s i %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> pakker per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> pakker per <var>%s</var>, burst <var>%d</var>pakker."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> og begrens til %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Handling"
@@ -73,9 +123,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Avanserte Innstillinger"
@@ -92,30 +142,29 @@ msgstr "Tillat videresending fra <em>kilde soner</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Tillat videresending til <em>destinasjon soner</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Enhver"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -166,84 +215,53 @@ msgstr ""
"som ikke dekkes av brannmurens standardoppsett. Kommandoene utføres etter "
"hver omstart av brannmuren, rett etter at standard regelsett er lastet."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Destinasjon IP adresse"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Destinasjon adresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Destinasjon port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Destinasjon sone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Ikke omskriv"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Forkast ugyldige pakker"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Aktiver"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Aktiver NAT <abbr title=\"Loopback\">Tilbakekobling</abbr>"
@@ -255,7 +273,7 @@ msgstr "Aktiver SYN-flood beskyttelse"
msgid "Enable logging on this zone"
msgstr "Aktiver logging av denne sonen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -267,17 +285,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Ekstern IP adressse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Ekstern port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Ekstra argumenter"
@@ -301,15 +319,15 @@ msgstr "Brannmur"
msgid "Firewall - Custom Rules"
msgstr "Brannmur - Egendefinerte Regler"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Brannmur - Port Videresending"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Brannmur - Trafikk Regler"
@@ -322,49 +340,54 @@ msgstr "Brannmur - Sone Innstillinger"
msgid "Forward"
msgstr "Videresend"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Videresend til"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
-msgid "Friday"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Fra %s i %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Fra %s i %s med kilde %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Fra %s i %s med kilde %s og %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -375,72 +398,64 @@ msgstr "Generelle Innstillinger"
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 og IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Kun IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Kun IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Inndata"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Intern IP adresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Intern port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Intern sone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -448,27 +463,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Begrens logging"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -480,54 +495,48 @@ msgstr "MSS Kontroll (Clamping)"
msgid "Masquerading"
msgstr "Masquerading"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Match"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Match ICMP type"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -535,78 +544,74 @@ msgstr ""
"Match innkommende trafikk rettet mot den oppgitte destinasjonsport eller "
"portområdet på denne verten"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Navn"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "Match kun innkommende trafikk rettet mot den oppgitt IP adresse."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Match kun innkommende trafikk fra disse MAC adresser."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "Match kun innkommende trafikk fra denne IP eller IP område."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -614,12 +619,12 @@ msgstr ""
"Match kun innkommende trafikk som kommer fra den oppgitte kildeport eller "
"fra portområdet til klienten"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -628,9 +633,9 @@ msgstr ""
msgid "Output"
msgstr "Utdata"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr "Sender flere argumenter til iptables. Bruk med forsiktighet!"
@@ -643,12 +648,12 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Port Videresendinger"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -656,35 +661,23 @@ msgstr ""
"Port videresending tillater at eksterne datamaskiner på Internett kan koble "
"seg til en bestemt maskin eller tjeneste innenfor det private LAN."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protokoll"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Viderekoble matchet innkommende trafikk til den oppgitte porten på intern "
"vert"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Viderekoble matchet innkommende trafikk til den angitte interne vert"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -697,57 +690,45 @@ msgstr "Begrens Masquerading til oppgitt destinasjons subnett"
msgid "Restrict Masquerading to given source subnets"
msgstr "Begrens Masqeuerading til oppgitt kilde subnett"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Begrens til adresse familie"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -761,65 +742,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Kilde IP adresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Kilde MAC adresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Kilde adresse"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Kilde port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Kilde sone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -864,53 +845,57 @@ msgstr ""
"spesifiserer hvilken av de tilgjengelige nettverk som er medlem av denne "
"sone."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Til %s på %s på <var>denne enheten</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "Til %s i %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "Til %s på <var>denne enheten</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "Til %s, %s i %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Trafikk Regler"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -920,8 +905,8 @@ msgstr ""
"for eksempel for å avvise trafikk mellom visse verter eller for å åpne WAN "
"porter på ruteren."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -929,23 +914,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -953,11 +938,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -973,33 +962,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Via %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Via %s på %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1011,137 +992,185 @@ msgstr "Sone = Videresendinger"
msgid "Zones"
msgstr "Soner"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "godta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "enhver"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "enhver vert"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "enhver ruter IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "enhver sone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "ikke track"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "forkast"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "avslå"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s i %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s med %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s i %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> pakker per <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr "<var>%d</var> pakker per <var>%s</var>, burst <var>%d</var>pakker."
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> og begrens til %s"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Destinasjon IP adresse"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Ikke omskriv"
+
+#~ msgid "Forward to"
+#~ msgstr "Videresend til"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Fra %s i %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Fra %s i %s med kilde %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Fra %s i %s med kilde %s og %s"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "Til %s på %s på <var>denne enheten</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "Til %s i %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "Til %s på <var>denne enheten</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "Til %s, %s i %s"
+
+#~ msgid "Via %s"
+#~ msgstr "Via %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Via %s på %s"
+
+#~ msgid "any host"
+#~ msgstr "enhver vert"
+
+#~ msgid "any router IP"
+#~ msgstr "enhver ruter IP"
+
#~ msgid "Force connection tracking"
#~ msgstr ""
#~ "Bruk <abbr title=\\\"connection tracking\\\">forbindelse sporing</abbr>"
diff --git a/applications/luci-app-firewall/po/pl/firewall.po b/applications/luci-app-firewall/po/pl/firewall.po
index d29fa79c5..8ec627894 100644
--- a/applications/luci-app-firewall/po/pl/firewall.po
+++ b/applications/luci-app-firewall/po/pl/firewall.po
@@ -15,54 +15,103 @@ msgstr ""
"|| n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 3.10.2-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s w %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s z %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s w %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> pakietów na <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-"<var>%d</var> pakietów na <var>%s</var>, popsutych <var>%d</var> pakietów."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> i limit do %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
msgid "A rewrite IP must be specified!"
msgstr "Należy podać adres IP do ponownego zapisu!"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
msgid "ACCEPT - Disable address rewriting"
msgstr "AKCEPTUJ - Wyłącz przepisywanie adresów"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "Zaakceptuj przekazywanie"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "Zaakceptuj wejście"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "Zaakceptuj wyjście"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Akcja"
@@ -85,9 +134,9 @@ msgstr ""
"docelowej, np. <code>-p tcp --sport 443</code> tylko w celu dopasowania "
"ruchu przychodzącego HTTPS."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Ustawienia zaawansowane"
@@ -104,19 +153,18 @@ msgstr "Zezwól na przekazywanie z <em>strefy źródłowej</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Zezwól na przekazywanie do <em>strefy docelowej</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Każdy"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "Każdy dzień"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
@@ -126,11 +174,11 @@ msgstr ""
"ustanowionych połączeniach. Format to wartość [/mask]. Jeśli maska jest "
"określona, wówczas ustawione w niej bity są zerowane."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr "Zastosuj daną klasę lub wartość DSCP do ustanowionych połączeń."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
"Przypisz określonego pomocnika śledzenia połączeń do dopasowanego ruchu."
@@ -184,51 +232,36 @@ msgstr ""
"są objęte składnią zapory. Polecenia wykonywane są po każdym restarcie "
"zapory, zaraz po załadowaniu zestawu reguł domyślnych."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr "Klasyfikacja DSCP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr "Znacznik DSCP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr "Wymagany znacznik DSCP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Docelowy adres IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Adres docelowy"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Port docelowy"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Strefa docelowa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr "Nazwa urządzenia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "Odrzuć przekazywanie"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "Odrzuć wejście"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "Odrzuć wyjście"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
@@ -238,33 +271,17 @@ msgstr ""
"state <em>invalid</em>. Może to być wymagane w przypadku skomplikowanych "
"asymetrycznych ustawień trasy."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Nie przepisuj"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "Nie śledź przekazywania"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "Nie śledź wejścia"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "Nie śledź wyjścia"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Porzuć wadliwe pakiety"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Włącz"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Włącz NAT Loopback"
@@ -276,7 +293,7 @@ msgstr "Włącz ochronę SYN-flood"
msgid "Enable logging on this zone"
msgstr "Włącz logowanie tej strefy"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr "Zaleca się użyć: %s"
@@ -289,17 +306,17 @@ msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
"Dokładnie wybiera dozwolone pomoce śledzenia połączeń dla ruchu strefowego"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Zewnętrzne adresy IP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Port zewnętrzny"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Dodatkowe argumenty"
@@ -326,15 +343,15 @@ msgstr "Zapora sieciowa"
msgid "Firewall - Custom Rules"
msgstr "Zapora sieciowa - Własne reguły"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr "Zapora sieciowa - Zasady NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Zapora sieciowa - Przekazywane porty"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Zapora sieciowa - Reguły ruchu"
@@ -347,49 +364,54 @@ msgstr "Zapora sieciowa - Ustawienia strefy"
msgid "Forward"
msgstr "Przekazuj"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Przekazuj do"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Piątek"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Z %s w %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Z %s w %s ze źródłem %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Z %s w %s ze źródłem %s i %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "Z %s na <var>to urządzenie</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "Z %s na <var>to urządzenie</var> ze źródłem %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "Z %s na <var>to urządzenie</var> ze źródłem %s oraz %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
-msgstr "Z %{ipaddr?:any host} %{port?with source %{port}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -400,72 +422,64 @@ msgstr "Ustawienia główne"
msgid "Hardware flow offloading"
msgstr "Sprzętowy flow offloading"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "Zakres IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IPs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 i IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Tylko IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Tylko IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr "Urządzenie przychodzące"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Ruch przychodzący"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Wewnętrzny adres IP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Port wewnętrzny"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Strefa wewnętrzna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr "Nieprawidłowy znacznik DSCP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr "Nieprawidłowa wartość graniczna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr "Naruszenie limitu"
@@ -473,27 +487,27 @@ msgstr "Naruszenie limitu"
msgid "Limit log messages"
msgstr "Ograniczenie logowania"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr "Dopasowanie limitu"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr "Ogranicza ruch zgodny z określoną stawką."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr "Źródło pętli zwrotnej IP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MACs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr "MASQUERADE - Automatyczne przepisywanie na interfejs wyjściowy IP"
@@ -505,59 +519,51 @@ msgstr "Dostosuj MSS"
msgid "Masquerading"
msgstr "Maskarada"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Dopasuj"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-"Dopasuj %{protocol?%{family} %{protocol} traffic:any %{family} traffic} "
-"%{mark?with firewall mark %{mark}} %{limit?limited to %{limit}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr "Dopasuj DSCP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Dopasuj typ ICMP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr "Dopasuj urządzenie"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr "Dopasuj przesyłany ruch skierowany na podany adres IP."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
"Dopasuj przesyłany ruch skierowany na dany port docelowy lub zakres portów."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr "Dopasuj przesyłany ruch z tego adresu IP lub zakresu."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
"Dopasuj przesyłany ruch pochodzący z danego portu źródłowego lub zakresu "
"portów."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr "Dopasuj pomocnika"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -565,30 +571,30 @@ msgstr ""
"Dopasuj ruch przychodzący do danego portu docelowego lub zakresu portów na "
"tym hoście"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr "Znacznik dopasowania"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr "Dopasuj ruch, używając określonego pomocnika śledzenia połączeń."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr "Odpowiada konkretnemu znakowi zapory lub zakresowi różnych znaków."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
"Dopasowuje przesyłany ruch przy użyciu określonego wychodzącego urządzenia "
"sieciowego."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr "Dopasowuje ruch niosący określone oznaczenie DSCP."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
@@ -597,22 +603,22 @@ msgstr ""
"ładowana jednorazowo za każdym razem, gdy limit określony powyżej nie "
"zostanie osiągnięty, aż do tej liczby."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Poniedziałek"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Dni miesiąca"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr "Zasady NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
@@ -620,30 +626,26 @@ msgstr ""
"Reguły NAT umożliwiają precyzyjną kontrolę źródłowego adresu IP w celu "
"użycia ruchu wychodzącego lub przekazywanego."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Nazwa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Sieć"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "Dopasuj tylko przychodzący ruch skierowany do danego adresu IP."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Dopasuj tylko ruch z tych adresów MAC."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "Dopasuj tylko ruch przychodzący z tego adresu IP lub zakresu adresów."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -651,12 +653,12 @@ msgstr ""
"Dopasuj tylko ruch przychodzący z podanego portu źródłowego lub zakresu "
"portów na hoście klienta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr "Urządzenie wychodzące"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr "Strefa wychodząca"
@@ -665,9 +667,9 @@ msgstr "Strefa wychodząca"
msgid "Output"
msgstr "Ruch wychodzący"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
"Przekazuje dodatkowe argumenty do iptables. Zachowaj szczególną ostrożność!"
@@ -687,12 +689,12 @@ msgstr ""
"złamanie zestawu reguł zapory sieciowej, całkowicie odsłaniając wszystkie "
"usługi."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Przekazywanie portów"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -700,35 +702,23 @@ msgstr ""
"Przekazanie portów pozwala komputerom z internetu na połączenia z "
"komputerami z sieci LAN."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protokół"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Przekieruj ruch przychodzący na podany port do wskazanego hosta w sieci "
"wewnętrznej"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Przekieruj ruch przychodzący do wskazanego hosta w sieci wewnętrznej"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "Odmowa przekazania"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "Odmowa wejścia"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "Odmowa wyjścia"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr "Wymaga sprzętowej obsługi NAT. Wdrożono dla co najmniej mt7621"
@@ -743,58 +733,46 @@ msgstr "Ogranicz maskaradę do wskazanych podsieci źródłowych"
# Wstawiłem rodzinę gdyż gdzieś wcześniej było tak opisane ale klasa pasuje mi tu bardziej.
# Obsy - niestety ale "rodzina". W gui dotyczy to wyboru IPv4/IPv6, więc "rodzina" a nie klasa.
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Ogranicz do rodziny adresów"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr "Przepisz adres IP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr "Przepisz dopasowany ruch do określonego źródłowego adresu IP."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
"Przepisz dopasowany ruch do określonego portu źródłowego lub zakresu portów."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr "Przepisz port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr "Przepisz do"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr "Przepisz do %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr "Przepisz do adresu IP urządzenia wychodzącego"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "Routing/NAT Offloading"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr "SNAT - Przepisz do określonego źródłowego adresu IP lub portu"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Sobota"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr "Ustaw znacznik"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -811,32 +789,32 @@ msgstr "Oprogramowanie oparte na offloading dla routingu/NAT"
msgid "Software flow offloading"
msgstr "Programowy flow offloading"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Źródłowy adres IP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Źródłowy adres MAC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Adres źródłowy"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Port źródłowy"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Strefa źródłowa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
@@ -844,7 +822,7 @@ msgstr ""
"Określa, czy powiązać tę regułę ruchu z określonym przychodzącym, czy "
"wychodzącym urządzeniem sieciowym."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
@@ -852,28 +830,28 @@ msgstr ""
"Określa, czy użyć zewnętrznego czy wewnętrznego adresu IP do odbijanego "
"ruchu."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "Data rozpoczęcia (rrrr-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr "Czas rozpoczęcia (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "Data zakończenia (yyyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr "Czas zatrzymania (yyyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Niedziela"
@@ -916,55 +894,57 @@ msgstr ""
"politykę ruchu przekazywanego pomiędzy różnymi sieciami wewnątrz strefy. "
"<em>Objęte sieci</em> określają dostępne sieci będące członkami tej strefy."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Czwartek"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "Ograniczenia czasowe"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Czas w UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Do %s w %s na <var>tym urządzeniu</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "Do %s w %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "Do %s na <var>tym urządzeniu</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "Do %s, %s w %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-"Do %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr "Pomocnik śledzenia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Reguły ruchu sieciowego"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -974,8 +954,8 @@ msgstr ""
"między strefami, na przykład aby odrzucać ruch między konkretnymi hostami "
"albo otworzyć porty WAN routera."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Wtorek"
@@ -983,23 +963,23 @@ msgstr "Wtorek"
msgid "Unable to save contents: %s"
msgstr "Nie można zapisać zawartości: %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr "Nieznany lub nie zainstalowany pomocnik conntrack \"%s\""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr "Nienazwany NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "Przekazywanie bez nazwy"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "Nieznana zasada"
@@ -1007,11 +987,15 @@ msgstr "Nieznana zasada"
msgid "Unnamed zone"
msgstr "Strefa bez nazwy"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr "Użyj zewnętrznego adresu IP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr "Użyj wewnętrznego adresu IP"
@@ -1031,33 +1015,25 @@ msgstr ""
"Opcji tej należy używać do klasyfikacji ruchu strefowego według źródła lub "
"podsieci docelowej zamiast sieci lub urządzeń."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr "Wymagany prawidłowy znacznik zapory sieciowej"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Przez %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Przez %s w %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Środa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "Dni tygodnia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr "Znacznik zapory XOR"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr "Znacznik XOR"
@@ -1069,137 +1045,287 @@ msgstr "Strefa ⇒ Przekazywanie"
msgid "Zones"
msgstr "Strefy"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "akceptuj"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "dowolny"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "dowolny host"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "dowolne IP routera"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "dowolna strefa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr "Zastosuj znacznik zapory"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr "przypisz pomocnika conntrack"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "Dzień"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr "Nie przepisuj"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "nie śledź"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "porzuć"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "godzina"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "minuta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "Nie"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "port"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "porty"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "odrzucaj"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "sekunda"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "ta nowa strefa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "typ"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "typy"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr "nielimitowane"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr "nieokreślone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr "prawidłowy znacznik zapory sieciowej"
+#~ msgid "%s in %s"
+#~ msgstr "%s w %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s z %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s w %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> pakietów na <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr ""
+#~ "<var>%d</var> pakietów na <var>%s</var>, popsutych <var>%d</var> pakietów."
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> i limit do %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "Zaakceptuj przekazywanie"
+
+#~ msgid "Accept input"
+#~ msgstr "Zaakceptuj wejście"
+
+#~ msgid "Accept output"
+#~ msgstr "Zaakceptuj wyjście"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Docelowy adres IP"
+
+#~ msgid "Discard forward"
+#~ msgstr "Odrzuć przekazywanie"
+
+#~ msgid "Discard input"
+#~ msgstr "Odrzuć wejście"
+
+#~ msgid "Discard output"
+#~ msgstr "Odrzuć wyjście"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Nie przepisuj"
+
+#~ msgid "Do not track forward"
+#~ msgstr "Nie śledź przekazywania"
+
+#~ msgid "Do not track input"
+#~ msgstr "Nie śledź wejścia"
+
+#~ msgid "Do not track output"
+#~ msgstr "Nie śledź wyjścia"
+
+#~ msgid "Forward to"
+#~ msgstr "Przekazuj do"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Z %s w %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Z %s w %s ze źródłem %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Z %s w %s ze źródłem %s i %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "Z %s na <var>to urządzenie</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "Z %s na <var>to urządzenie</var> ze źródłem %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "Z %s na <var>to urządzenie</var> ze źródłem %s oraz %s"
+
+#~ msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#~ msgstr "Z %{ipaddr?:any host} %{port?with source %{port}}"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "Zakres IP"
+
+#~ msgid "IPs"
+#~ msgstr "IPs"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MACs"
+
+#~ msgid ""
+#~ "Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} "
+#~ "%{mark?with firewall mark %{mark}} %{limit?limited to %{limit}}"
+#~ msgstr ""
+#~ "Dopasuj %{protocol?%{family} %{protocol} traffic:any %{family} traffic} "
+#~ "%{mark?with firewall mark %{mark}} %{limit?limited to %{limit}}"
+
+#~ msgid "Network"
+#~ msgstr "Sieć"
+
+#~ msgid "Refuse forward"
+#~ msgstr "Odmowa przekazania"
+
+#~ msgid "Refuse input"
+#~ msgstr "Odmowa wejścia"
+
+#~ msgid "Refuse output"
+#~ msgstr "Odmowa wyjścia"
+
+#~ msgid "Rewrite to"
+#~ msgstr "Przepisz do"
+
+#~ msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
+#~ msgstr "Przepisz do %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
+
+#~ msgid "Rewrite to outbound device IP"
+#~ msgstr "Przepisz do adresu IP urządzenia wychodzącego"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "Do %s w %s na <var>tym urządzeniu</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "Do %s w %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "Do %s na <var>tym urządzeniu</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "Do %s, %s w %s"
+
+#~ msgid ""
+#~ "To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
+#~ "%{device?egress device %{device}}"
+#~ msgstr ""
+#~ "Do %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
+#~ "%{device?egress device %{device}}"
+
+#~ msgid "Via %s"
+#~ msgstr "Przez %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Przez %s w %s"
+
+#~ msgid "any host"
+#~ msgstr "dowolny host"
+
+#~ msgid "any router IP"
+#~ msgstr "dowolne IP routera"
+
+#~ msgid "not"
+#~ msgstr "Nie"
+
+#~ msgid "port"
+#~ msgstr "port"
+
+#~ msgid "ports"
+#~ msgstr "porty"
+
+#~ msgid "type"
+#~ msgstr "typ"
+
+#~ msgid "types"
+#~ msgstr "typy"
+
#~ msgid "Force connection tracking"
#~ msgstr "Wymuś śledzenie połączeń"
diff --git a/applications/luci-app-firewall/po/pt-br/firewall.po b/applications/luci-app-firewall/po/pt-br/firewall.po
index 2ee9b06f5..e889170e4 100644
--- a/applications/luci-app-firewall/po/pt-br/firewall.po
+++ b/applications/luci-app-firewall/po/pt-br/firewall.po
@@ -14,53 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 3.10-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s com %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s em %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> pcts. por <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> pcts. por <var>%s</var>, pico <var>%d</var> pcts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> e limite a %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "Aceitar encaminhamento"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "Aceitar entrada"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "Aceitar saída"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Ação"
@@ -83,9 +133,9 @@ msgstr ""
"da zona, por exemplo, <code>-p tcp --sport 443</code> para corresponder "
"apenas ao tráfego HTTPS de entrada."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Configurações Avançadas"
@@ -102,30 +152,29 @@ msgstr "Permite o encaminhamento da <em>zona de origem</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Permite o encaminhamento para a <em>zona de destino</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Qualquer"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "Qualquer dia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -178,51 +227,36 @@ msgstr ""
"cobertos por esta ferramenta. Os comandos serão executados após cada "
"reinício do firewall, logo após a carga do conjunto de regras padrão."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Endereço IP de destino"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Endereço de destino"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Porta de destino"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Zona de destino"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "Descartar o encaminhamento"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "Descartar a entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "Descartar a saída"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
@@ -232,33 +266,17 @@ msgstr ""
"estado do conntrack for <em>invalid</em>. Isto pode ser necessário para "
"configurações complexas e de rotas assimétricas."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Não sobrescreva"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "Não rastrear o encaminhamento"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "Não rastrear a entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "Não rastrear a saída"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Descartar pacotes inválidos"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Ativar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Habilite o Loopback do NAT"
@@ -270,7 +288,7 @@ msgstr "Habilite proteção contra SYN-flood"
msgid "Enable logging on this zone"
msgstr "Habilite o registro nesta zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -285,17 +303,17 @@ msgstr ""
"Escolhe explicitamente os assistentes de rastreamento de conexão permitidos "
"para o tráfego da zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Endereço IP externo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Porta Externa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Argumentos extras"
@@ -319,15 +337,15 @@ msgstr "Firewall"
msgid "Firewall - Custom Rules"
msgstr "Firewall - Regras personalizadas"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Firewall - Encaminhamento de Portas"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Firewall - Regras de Tráfego"
@@ -340,49 +358,54 @@ msgstr "Firewall - Configurações de Zona"
msgid "Forward"
msgstr "Encaminhar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Encaminhar para"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Sexta-feira"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Vindo de %s em %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Vindo de %s em %s com origem %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Vindo de %s em %s com origem %s e %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "De %s <var>neste dispositivo</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "De %s <var>neste dispositivo</var> com origem %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "De %s <var>neste dispositivo</var> com origem %s e %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -393,72 +416,64 @@ msgstr "Configurações Gerais"
msgid "Hardware flow offloading"
msgstr "Aceleração de fluxo de dados via Hardware"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "Faixa IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IPs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 e IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Somente IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Somente IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Entrada"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Endereço IP interno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Porta Interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Zona interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -466,27 +481,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Limita as mensagens de registro"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MACs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -498,54 +513,48 @@ msgstr "Ajuste do MSS"
msgid "Masquerading"
msgstr "Mascaramento"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Casa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Casa com ICMP tipo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -553,79 +562,75 @@ msgstr ""
"Casa o tráfego entrante direcionado para uma porta ou faixa de portas de "
"destino específica neste computador"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Segunda-Feira"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Dias do mês"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Nome"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Rede"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
"Somente case o tráfego entrante direcionado para o endereço IP fornecido."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Somente case o tráfego entrante destes endereços MAC."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "Somente case o tráfego entrante desta faixa de endereços IP."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -633,12 +638,12 @@ msgstr ""
"Somente case o tráfego entrante vindo da porta de origem fornecida ou "
"intervalo de portas no equipamento cliente"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -647,9 +652,9 @@ msgstr ""
msgid "Output"
msgstr "Saída"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr "Passa argumentos adicionais para o iptables. Use com cuidado!"
@@ -667,12 +672,12 @@ msgstr ""
"extremo cuidado, pois valores inválidos podem quebrar todo o conjunto de "
"regras do firewall expondo todos os serviços completamente."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Encaminhamentos de Porta"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -680,34 +685,22 @@ msgstr ""
"O encaminhamento de portas permite que computadores remotos na Internet "
"conectem a um computador ou serviço específico dentro da rede local privada."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protocolo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Redireciona tráfego entrante para a porta especificada no computador interno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Redireciona tráfego entrante para o computador interno especificado"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "Recusar encaminhamento"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "Recusar entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "Recusar saída"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr "Requer suporte de NAT em hardware. Implementado ao menos para mt7621"
@@ -720,57 +713,45 @@ msgstr "Restringe o mascaramento para uma subrede de destino específica"
msgid "Restrict Masquerading to given source subnets"
msgstr "Restringe o mascaramento para uma subrede de origem específica"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Restringe para uma família de endereços"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "Aceleração de Roteamento/NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Sábado"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -784,65 +765,65 @@ msgstr "Aceleração de roteamento/NAT baseada em Software"
msgid "Software flow offloading"
msgstr "Aceleração de fluxo de dados via Software"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Endereço IP de origem"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Endereço MAC de origem"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Endereço de origem"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Porta de origem"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Zona de origem"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "Dia inicial (aaaa-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr "Hora de Início (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "Dia final (aaaa-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr "Hora de Parada (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Domingo"
@@ -886,53 +867,57 @@ msgstr ""
"<em>Redes Cobertas</em> especificam que redes disponíveis são membros desta "
"zona."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Quita-feira"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "Restrições de tempo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Hora em UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Para %s em %s <var>neste dispositivo</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "Para %s em %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "Para %s <var>neste dispositivo</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "Para %s, %s em %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Regras de tráfego"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -942,8 +927,8 @@ msgstr ""
"diferentes zonas. Por exemplo, rejeitar o tráfego entre certos equipamentos "
"ou abrir portas WAN no roteador."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Terça-feira"
@@ -951,23 +936,23 @@ msgstr "Terça-feira"
msgid "Unable to save contents: %s"
msgstr "Não foi possível salvar os conteúdos: %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "Encaminhamento sem nome"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "Regra sem nome"
@@ -975,11 +960,15 @@ msgstr "Regra sem nome"
msgid "Unnamed zone"
msgstr "Zona sem nome"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -999,33 +988,25 @@ msgstr ""
"Use esta opção para classificar o tráfego da zona por sub-rede de origem ou "
"destino em vez de redes ou dispositivos."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Via %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Através do %s na %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Quarta-feira"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "Dias da semana"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1037,137 +1018,260 @@ msgstr "Zona ⇒ Encaminhamentos"
msgid "Zones"
msgstr "Zonas"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "aceitar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "qualquer"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "qualquer equipamento"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "qualquer endereço IP do roteador"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "qualquer zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "dia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "não rastrear"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "descartar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "hora"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "minuto"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "não"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "porta"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "portas"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "rejeitar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "segundo"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "esta nova zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "tipo"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "tipos"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s in %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s com %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s em %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> pcts. por <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr "<var>%d</var> pcts. por <var>%s</var>, pico <var>%d</var> pcts."
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> e limite a %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "Aceitar encaminhamento"
+
+#~ msgid "Accept input"
+#~ msgstr "Aceitar entrada"
+
+#~ msgid "Accept output"
+#~ msgstr "Aceitar saída"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Endereço IP de destino"
+
+#~ msgid "Discard forward"
+#~ msgstr "Descartar o encaminhamento"
+
+#~ msgid "Discard input"
+#~ msgstr "Descartar a entrada"
+
+#~ msgid "Discard output"
+#~ msgstr "Descartar a saída"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Não sobrescreva"
+
+#~ msgid "Do not track forward"
+#~ msgstr "Não rastrear o encaminhamento"
+
+#~ msgid "Do not track input"
+#~ msgstr "Não rastrear a entrada"
+
+#~ msgid "Do not track output"
+#~ msgstr "Não rastrear a saída"
+
+#~ msgid "Forward to"
+#~ msgstr "Encaminhar para"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Vindo de %s em %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Vindo de %s em %s com origem %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Vindo de %s em %s com origem %s e %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "De %s <var>neste dispositivo</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "De %s <var>neste dispositivo</var> com origem %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "De %s <var>neste dispositivo</var> com origem %s e %s"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "Faixa IP"
+
+#~ msgid "IPs"
+#~ msgstr "IPs"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MACs"
+
+#~ msgid "Network"
+#~ msgstr "Rede"
+
+#~ msgid "Refuse forward"
+#~ msgstr "Recusar encaminhamento"
+
+#~ msgid "Refuse input"
+#~ msgstr "Recusar entrada"
+
+#~ msgid "Refuse output"
+#~ msgstr "Recusar saída"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "Para %s em %s <var>neste dispositivo</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "Para %s em %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "Para %s <var>neste dispositivo</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "Para %s, %s em %s"
+
+#~ msgid "Via %s"
+#~ msgstr "Via %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Através do %s na %s"
+
+#~ msgid "any host"
+#~ msgstr "qualquer equipamento"
+
+#~ msgid "any router IP"
+#~ msgstr "qualquer endereço IP do roteador"
+
+#~ msgid "not"
+#~ msgstr "não"
+
+#~ msgid "port"
+#~ msgstr "porta"
+
+#~ msgid "ports"
+#~ msgstr "portas"
+
+#~ msgid "type"
+#~ msgstr "tipo"
+
+#~ msgid "types"
+#~ msgstr "tipos"
+
#~ msgid "Force connection tracking"
#~ msgstr "Force o rastreamento da conexão"
diff --git a/applications/luci-app-firewall/po/pt/firewall.po b/applications/luci-app-firewall/po/pt/firewall.po
index 77bc6cbc5..afb87a4d3 100644
--- a/applications/luci-app-firewall/po/pt/firewall.po
+++ b/applications/luci-app-firewall/po/pt/firewall.po
@@ -14,53 +14,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.10.2\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s em %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s em %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> pkts. por <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> pcts. por <var>%s</var>, burst <var>%d</var> pcts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> e limite a %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
msgid "A rewrite IP must be specified!"
msgstr "Um IP reescrito deve ser especificado!"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
msgid "ACCEPT - Disable address rewriting"
msgstr "ACCEPT - Deactivate reescrever endereços"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "Aceitar o encaminhamento"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "Aceitar a entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "Aceitar a saída"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Ação"
@@ -83,9 +133,9 @@ msgstr ""
"fonte de zona, por exemplo, <code>-p tcp - esporte 443</code> para "
"corresponder apenas ao tráfego HTTPS de entrada."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Definições Avançadas"
@@ -102,19 +152,18 @@ msgstr "Permitir encaminhamento de <em>zonas de origem</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Permitir encaminhamento para <em>zonas de destino</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Qualquer"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "Qualquer dia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
@@ -124,11 +173,11 @@ msgstr ""
"ligações estabelecidas. Formato é valor[/máscara]. Se uma máscara for "
"especificada, os bits definidos na máscara são zerados."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr "Aplique a classe ou valor de DSCP dado às conexões estabelecidas."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
"Atribua o ajudante de rastreamento de conexão especificado para o tráfego "
@@ -184,51 +233,36 @@ msgstr ""
"comandos são executados a seguir ao reinicio da firewall, logo a seguir ao "
"conjunto de regras predefinidas serem carregadas."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr "Classificação de DSCP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr "Marca de DSCP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr "Marca de DSCP necessária"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Endereço IP de destino"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Endereço de destino"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Porta de destino"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Zona de destino"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr "Nome do aparelho"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "Descartar o encaminhamento"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "Descartar a entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "Descartar a saída"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
@@ -238,33 +272,17 @@ msgstr ""
"conntrack <em>invalid</em>. Isto pode ser necessário para configurações "
"complexas de rotas assimétricas."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Não re-escrever"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "Não rastrear o encaminhamento"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "Não rastrear a entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "Não rastrear a saída"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Cancelar pacotes inválidos"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Ativar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Ativar NAT Loopback"
@@ -276,7 +294,7 @@ msgstr "Ativar a Proteção SYN-flood"
msgid "Enable logging on this zone"
msgstr "Ativar registo nesta zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr "À espera de: %s"
@@ -290,17 +308,17 @@ msgstr ""
"Escolhe explicitamente os assistentes de rastreamento de conexão permitidos "
"para o tráfego da zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Endereço IP externo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Porta externa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Argumentos adicionais"
@@ -324,15 +342,15 @@ msgstr "Firewall"
msgid "Firewall - Custom Rules"
msgstr "Firewall - Regras Personalizadas"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr "Firewall - Regras de NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Firewall - Encaminhamento de Portas"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Firewall - Regras de Tráfego"
@@ -345,49 +363,54 @@ msgstr "Firewall - Definições de Zona"
msgid "Forward"
msgstr "Encaminhar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Encaminhar para"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Sexta-feira"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "De %s em %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "De %s em %s com origem %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "De %s em %s com origem %s e %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "De %s <var>neste aparelho</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "De %s <var>neste aparelho</var> com a fonte %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "De %s <var>neste aparelho</var> com as fontes %s e %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
-msgstr "De %{ipaddr?:qualquer host} %{port?com fonte %{port}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -398,72 +421,64 @@ msgstr "Configurações Gerais"
msgid "Hardware flow offloading"
msgstr "Descarga de fluxo em hardware"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "Intervalo de IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IPs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 e IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Só IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Só IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr "Aparelho de entrada"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Entrada"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Endereço IP interno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Porta interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Zona Interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr "Marca de DSCP inválida"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr "Valor limite inválido"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr "Limite de burst"
@@ -471,27 +486,27 @@ msgstr "Limite de burst"
msgid "Limit log messages"
msgstr "Limitar registo de mensagens"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr "Limitar a correspondência"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr "Limita o tráfego de acordo com a taxa especificada."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr "IP fonte de loopback"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MACs"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -503,54 +518,48 @@ msgstr "Fixação de MSS"
msgid "Masquerading"
msgstr "Mascaramento"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Corresponder"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Correspondência do tipo de ICMP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -558,78 +567,74 @@ msgstr ""
"O tráfego de entrada corresponde a uma dada porta de destino ou intervalo de "
"portas neste host"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Segunda-feira"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Dias do mês"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Nome"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Rede"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "Só se tráfego de entrada corresponder ao endereço IP fornecido."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Só se o tráfego de entrada corresponder a um destes MACs."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "Só se o tráfego de entrada corresponder a este IP ou intervalo."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -637,12 +642,12 @@ msgstr ""
"Só se o tráfego de entrada corresponder à porta de origem fornecida ou de um "
"intervalo de portas no host cliente"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -651,9 +656,9 @@ msgstr ""
msgid "Output"
msgstr "Saída"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr "Passa argumentos adicionais para o iptables. Usar com cuidado!"
@@ -671,12 +676,12 @@ msgstr ""
"cuidado, pois valores inválidos podem tornar o conjunto de regras do "
"firewall quebrado, expondo completamente todos os serviços."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Encaminhamento de Portas"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -684,35 +689,23 @@ msgstr ""
"O Encaminhamento de Portas permite que computadores remotos na internet se "
"liguem a um computador ou serviço especifico na rede privada (LAN)."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protocolo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Redirecionar a entrada de trafego correspondente à porta fornecida no host "
"interno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Redirecionar o tráfego de entrada correspondente para o host interno"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "Recusar encaminhamento"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "Recusar entrada"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "Recusar saída"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -726,57 +719,45 @@ msgstr "Restringir o Mascaramento às sub-redes de destino dadas"
msgid "Restrict Masquerading to given source subnets"
msgstr "Restringir Mascaramento a sub-redes de origem fornecidas"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Restringir a família de endereços"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "Descargar Roteamento/NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Sábado"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -790,65 +771,65 @@ msgstr "Descarga baseada em software para roteamento/NAT"
msgid "Software flow offloading"
msgstr "Descarga de fluxo de software"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Endereço IP de origem"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Endereço MAC de origem"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Endereço de origem"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Porta de origem"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Zona de origem"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "Data de Início (aaaaa-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr "Hora de início (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "Data de Paragem (aaaaa-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr "Tempo de Parada (hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Domingo"
@@ -893,53 +874,57 @@ msgstr ""
"abrangidas</em> especifica quais das redes disponíveis são membros desta "
"zona."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Quinta-feira"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "Restrições de Tempo"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Tempo em UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Para %s no %s em <var>este dispositivo</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "Para %s em %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "Para %s em <var>este dispositivo</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "Para %s, %s em %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Regras de Tráfego"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -949,8 +934,8 @@ msgstr ""
"diferentes zonas, por exemplo, para rejeitar trafego entre certos hosts ou "
"para abrir portas WAN no router."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Terça-feira"
@@ -958,23 +943,23 @@ msgstr "Terça-feira"
msgid "Unable to save contents: %s"
msgstr "Incapaz de gravar conteúdos: %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "Encaminhamento sem nome"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "Regra sem nome"
@@ -982,11 +967,15 @@ msgstr "Regra sem nome"
msgid "Unnamed zone"
msgstr "Zona sem nome"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -1006,33 +995,25 @@ msgstr ""
"Use esta opção para classificar o tráfego da zona por sub-rede de origem ou "
"destino em vez de redes ou aparelhos."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Via %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Via %s no %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Quarta-feira"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "Dias úteis"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1044,137 +1025,263 @@ msgstr "Zona ⇒ Encaminhamentos"
msgid "Zones"
msgstr "Zonas"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "aceitar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "qualquer"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "qualquer host"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "qualquer IP do router"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "qualquer zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "dia"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "não seguir"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "descartar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "hora"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "minuto"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "não"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "porta"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "portas"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "rejeitar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "segundo"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "esta nova zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "tipo"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "tipos"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr "ilimitado"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr "não especificado"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#~ msgstr "De %{ipaddr?:qualquer host} %{port?com fonte %{port}}"
+
+#~ msgid "%s in %s"
+#~ msgstr "%s em %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s with %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s em %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> pkts. por <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr "<var>%d</var> pcts. por <var>%s</var>, burst <var>%d</var> pcts."
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> e limite a %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "Aceitar o encaminhamento"
+
+#~ msgid "Accept input"
+#~ msgstr "Aceitar a entrada"
+
+#~ msgid "Accept output"
+#~ msgstr "Aceitar a saída"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Endereço IP de destino"
+
+#~ msgid "Discard forward"
+#~ msgstr "Descartar o encaminhamento"
+
+#~ msgid "Discard input"
+#~ msgstr "Descartar a entrada"
+
+#~ msgid "Discard output"
+#~ msgstr "Descartar a saída"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Não re-escrever"
+
+#~ msgid "Do not track forward"
+#~ msgstr "Não rastrear o encaminhamento"
+
+#~ msgid "Do not track input"
+#~ msgstr "Não rastrear a entrada"
+
+#~ msgid "Do not track output"
+#~ msgstr "Não rastrear a saída"
+
+#~ msgid "Forward to"
+#~ msgstr "Encaminhar para"
+
+#~ msgid "From %s in %s"
+#~ msgstr "De %s em %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "De %s em %s com origem %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "De %s em %s com origem %s e %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "De %s <var>neste aparelho</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "De %s <var>neste aparelho</var> com a fonte %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "De %s <var>neste aparelho</var> com as fontes %s e %s"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "Intervalo de IP"
+
+#~ msgid "IPs"
+#~ msgstr "IPs"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MACs"
+
+#~ msgid "Network"
+#~ msgstr "Rede"
+
+#~ msgid "Refuse forward"
+#~ msgstr "Recusar encaminhamento"
+
+#~ msgid "Refuse input"
+#~ msgstr "Recusar entrada"
+
+#~ msgid "Refuse output"
+#~ msgstr "Recusar saída"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "Para %s no %s em <var>este dispositivo</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "Para %s em %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "Para %s em <var>este dispositivo</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "Para %s, %s em %s"
+
+#~ msgid "Via %s"
+#~ msgstr "Via %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Via %s no %s"
+
+#~ msgid "any host"
+#~ msgstr "qualquer host"
+
+#~ msgid "any router IP"
+#~ msgstr "qualquer IP do router"
+
+#~ msgid "not"
+#~ msgstr "não"
+
+#~ msgid "port"
+#~ msgstr "porta"
+
+#~ msgid "ports"
+#~ msgstr "portas"
+
+#~ msgid "type"
+#~ msgstr "tipo"
+
+#~ msgid "types"
+#~ msgstr "tipos"
+
#~ msgid "Force connection tracking"
#~ msgstr "Forçar rasto de ligação"
diff --git a/applications/luci-app-firewall/po/ro/firewall.po b/applications/luci-app-firewall/po/ro/firewall.po
index cabf779ac..597b1e04a 100644
--- a/applications/luci-app-firewall/po/ro/firewall.po
+++ b/applications/luci-app-firewall/po/ro/firewall.po
@@ -13,53 +13,103 @@ msgstr ""
"20)) ? 1 : 2;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s în %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s cu %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s în %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Actiune"
@@ -76,9 +126,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Setări avansate"
@@ -95,30 +145,29 @@ msgstr "Permite trecerea din <em>zonele sursa</em>."
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Permite trecerea catre <em>zonele sursa</em>."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Oricare"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "Orice zi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -166,84 +215,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Destinaţie adresă IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Destinaţie adresă"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Portul destinatie"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Zonă de destinație"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Nu rescrie"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Descarcă pachetele invalide"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Activează"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Activează loopback NAT"
@@ -255,7 +273,7 @@ msgstr "Activează protecţia SYN-flood"
msgid "Enable logging on this zone"
msgstr "Activeaza log in aceasta zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -267,17 +285,17 @@ msgstr "Funcție experimentală. Nu este complet compatibiă cu QoS/SQM."
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Adresă IP externă"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Port extern"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -301,15 +319,15 @@ msgstr "Firewall"
msgid "Firewall - Custom Rules"
msgstr "Firewall - Reguli particularizate"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Firewall - Port-uri forwardate"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Firewall - Reguli ale traficului"
@@ -322,49 +340,54 @@ msgstr "Setari zona la firewall"
msgid "Forward"
msgstr "Forward"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Vineri"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -375,72 +398,64 @@ msgstr "Setări principale"
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 şi IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "doar IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "doar IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Intrare"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Adresa IP interna"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Port intern"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Zonă internă"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -448,27 +463,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Limitează mesaje în log"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -480,142 +495,132 @@ msgstr "Ajustare MSS"
msgid "Masquerading"
msgstr "Translatare"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Potrivire"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Potriveste pe tipul de ICMP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Luni"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Nume"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -624,9 +629,9 @@ msgstr ""
msgid "Output"
msgstr "Ieşire"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -639,44 +644,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protocol"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -689,57 +682,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Sâmbătă"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -753,65 +734,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "Sursă adresă IP"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "Sursă adresă MAC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Adresa sursa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Port sursa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Zona sursa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Duminică"
@@ -841,61 +822,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Joi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "Restricţii de timp"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Marţi"
@@ -903,23 +888,23 @@ msgstr "Marţi"
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -927,11 +912,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -947,33 +936,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Miercuri"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -985,137 +966,143 @@ msgstr ""
msgid "Zones"
msgstr "Zone"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "accept"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "oricare"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "orice zona"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "zi"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "oră"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "minut"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "secundă"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "tip"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s în %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s cu %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s în %s"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Destinaţie adresă IP"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Nu rescrie"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "type"
+#~ msgstr "tip"
+
#~ msgid "Force connection tracking"
#~ msgstr "Forteaza urmarirea conexiunilor"
diff --git a/applications/luci-app-firewall/po/ru/firewall.po b/applications/luci-app-firewall/po/ru/firewall.po
index 116b35196..9ea36a630 100644
--- a/applications/luci-app-firewall/po/ru/firewall.po
+++ b/applications/luci-app-firewall/po/ru/firewall.po
@@ -16,53 +16,103 @@ msgstr ""
"Project-Info: Это технический перевод, не дословный. Главное-удобный русский "
"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s в %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s с %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s в %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> пакетов за <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> пакетов за <var>%s</var>, подряд <var>%d</var> пакетов"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> с пределом в %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
msgid "A rewrite IP must be specified!"
msgstr "IP-адрес для перезаписи должен быть указан!"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
msgid "ACCEPT - Disable address rewriting"
msgstr "ACCEPT — отключить перезапись адреса"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "Принимать перенаправляемый трафик"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "Принимать входящий трафик"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "Принимать исходящий трафик"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Действие"
@@ -85,9 +135,9 @@ msgstr ""
"источника, например <code>-p tcp --sport 443</code> для соответствия только "
"входящему HTTPS трафику."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Дополнительные настройки"
@@ -104,30 +154,29 @@ msgstr "Разрешить перенаправление из <em>'зон ис
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Разрешить перенаправление в <em>'зоны назначения'</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Любой"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "Любой день"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
"Назначить указанного помощника отслеживания соединений для соответствующего "
@@ -183,51 +232,36 @@ msgstr ""
"каждой перезагрузки межсетевого экрана, сразу после загрузки набора правил "
"по умолчанию."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "IP-адрес назначения"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Адрес назначения"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Порт назначения"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Зона назначения"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr "Имя устройства"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "Отклонять перенаправляемый трафик"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "Отклонять входящий трафик"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "Отклонять исходящий трафик"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
@@ -237,33 +271,17 @@ msgstr ""
"трафика с состоянием <em>недействительный</em> (<em>invalid</em>). Это может "
"потребоваться для сложных настроек асимметричной маршрутизации."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Не перезаписывать"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "Не отслеживать перенаправляемый трафик"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "Не отслеживать входящий трафик"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "Не отслеживать исходящий трафик"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Отбрасывать некорректные пакеты"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Включить"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Включить NAT Loopback"
@@ -275,7 +293,7 @@ msgstr "Включить защиту от SYN-flood атак"
msgid "Enable logging on this zone"
msgstr "Включить журналирование в этой зоне"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr "Ожидается: %s"
@@ -289,17 +307,17 @@ msgstr ""
"Явно определяет допустимые варианты помощников (helpers) отслеживания "
"соединений (connection tracking) трафика в зоне"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Внешний IP-адрес"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Внешний порт"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Дополнительные аргументы"
@@ -323,15 +341,15 @@ msgstr "Межсетевой экран"
msgid "Firewall - Custom Rules"
msgstr "Межсетевой экран - Пользовательские правила"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr "Межсетевой экран - Правила NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Межсетевой экран - Перенаправление портов"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Межсетевой экран - Правила для трафика"
@@ -344,49 +362,54 @@ msgstr "Межсетевой экран - Настройка зон"
msgid "Forward"
msgstr "Перенаправление"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Перенаправлять на"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Пятница"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Из %s в %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Из %s в %s с источником %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Из %s в %s с источниками %s и %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "Из %s в <var>это устройство</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "Из %s в <var>это устройство</var> с источником %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "Из %s в <var>это устройство</var> с источниками %s and %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
-msgstr "Из %{ipaddr?:любой хост} %{port?с источником %{port}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -397,72 +420,64 @@ msgstr "Основные настройки"
msgid "Hardware flow offloading"
msgstr "Аппаратный flow offloading"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP-адрес"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "Диапазон IP-адресов"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IP-адреса"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 и IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Только IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Только IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr "Входящее устройство"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Входящий трафик"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Внутренний IP-адрес"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Внутренний порт"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Внутренняя зона"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -470,27 +485,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Ограничить журнал сообщений"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr "IP-адрес источника петли (Loopback)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MAC-адреса"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
"MASQUERADE — автоматически переписывать на IP-адрес исходящего интерфейса"
@@ -503,62 +518,54 @@ msgstr "Ограничение MSS"
msgid "Masquerading"
msgstr "Маскарадинг"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Входящий трафик"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-"Соответствует %{protocol?%{family} %{protocol} трафику:любому %{family} "
-"трафику} %{mark?с меткой брандмауэра %{mark}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Соответствовать ICMP типу"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr "Соответствие устройству"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
"Соответствие перенаправляемого трафика, направленного на заданный IP-адрес."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
"Соответствие перенаправляемого трафика, направленного на заданный порт "
"назначения или диапазон портов."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
"Соответствие перенаправляемого трафика от данного IP-адреса или диапазона."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
"Соответствие перенаправляемого трафика, исходящего от заданного порта "
"источника или диапазона портов."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr "Соответствие помощнику"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -566,53 +573,53 @@ msgstr ""
"Порт или диапазон портов, входящие подключения на который будут "
"перенаправляться на внутренний порт внутреннего IP-адреса (см. ниже)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr "Соответствие метки"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
"Сопоставление трафика с помощью указанного помощника отслеживания соединений."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
"Соответствие определённой метке брандмауэра или диапазона различных меток."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
"Соответствие перенаправляемого трафика, использующего указанное исходящее "
"сетевое устройство."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Понедельник"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Дни месяца"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr "Правила NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
@@ -620,33 +627,29 @@ msgstr ""
"Правила NAT позволяют точно контролировать IP-адрес источника в исходящем "
"или перенаправляемом трафике."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Имя"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Сеть"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
"Применять правило только для входящих подключений на указанный IP-адрес"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Применять правило только для входящего трафика от этих MAC-адресов."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
"Применять правило только для входящего трафика от этого IP-адреса или "
"диапазона адресов."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -654,12 +657,12 @@ msgstr ""
"Применять правило только для входящего трафика от указанного порта или "
"диапазона портов клиентского хоста"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr "Исходящее устройство"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr "Исходящая зона"
@@ -668,9 +671,9 @@ msgstr "Исходящая зона"
msgid "Output"
msgstr "Исходящий трафик"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
"Передаёт дополнительные аргументы таблице iptables. Используйте с "
@@ -690,12 +693,12 @@ msgstr ""
"осторожностью, так как неверные значения могут привести к нарушению работы "
"правил межсетевого экрана, полностью открывая доступ ко всем службам системы."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Перенаправление портов"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -703,35 +706,23 @@ msgstr ""
"Перенаправленные портов позволяет удалённым компьютерам из Интернета "
"соединяться с компьютером или службой внутри частной локальной сети."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Протокол"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Перенаправлять трафик на указанный порт или диапазон портов внутреннего IP-"
"адреса"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Перенаправлять трафик на указанный IP-адрес"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "Сбрасывать перенаправляемый трафик"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "Сбрасывать входящий трафик"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "Сбрасывать исходящий трафик"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -745,59 +736,47 @@ msgstr "Использовать маскарадинг только для ук
msgid "Restrict Masquerading to given source subnets"
msgstr "Использовать маскарадинг только для указанных подсетей-отправителей"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Использовать протокол"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr "IP-адрес для перезаписи"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr "Перезаписать соответствующий трафик на указанный IP-адрес источника."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
"Перезаписать соответствующий трафик на указанный порт источника или диапазон "
"портов."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr "Порт для перезаписи"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr "Перезаписать"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr "Перезаписать на %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr "Перезаписать на IP-адрес исходящего устройства"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "Маршрутизация/NAT offloading"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr "SNAT — перезаписать на указанный IP-адрес источника или порт"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Суббота"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -811,32 +790,32 @@ msgstr "Программная реализация offloading для маршр
msgid "Software flow offloading"
msgstr "Программный flow offloading"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "IP-адрес источника"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "MAC-адрес источника"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Адрес источника"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Порт источника"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Зона источника"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
@@ -844,7 +823,7 @@ msgstr ""
"Определяет, привязывать ли это правило трафика к конкретному входящему или "
"исходящему сетевому устройству."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
@@ -852,28 +831,28 @@ msgstr ""
"Определяет, использовать внешний или внутренний IP-адрес для отраженного "
"трафика."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "Дата начала (год-мес-день)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr "Время начала (чч.мм.сс)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "Дата окончания (год-мес-день)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr "Время окончания (чч.мм.сс)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Воскресенье"
@@ -916,55 +895,57 @@ msgstr ""
"различными сетями внутри зоны. <em>'Использовать сети'</em> указывает, какие "
"доступные сети являются членами этой зоны."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Четверг"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "Временные ограничения"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Время UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "К %s, %s на <var>этом устройстве</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "К %s в %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "К %s на <var>этом устройстве</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "К %s, %s в %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-"На %{ipaddr?:любой адрес назначения} %{port?порт %{port}} %{zone?через зону "
-"%{zone}} %{device?исходящее устройство %{device}}"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr "Помощник отслеживания"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Правила для трафика"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -974,8 +955,8 @@ msgstr ""
"зонами, например, запрет трафика между некоторыми хостами или открытие WAN-"
"портов маршрутизатора."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Вторник"
@@ -983,23 +964,23 @@ msgstr "Вторник"
msgid "Unable to save contents: %s"
msgstr "Невозможно сохранить содержимое: %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr "Неизвестный или не установленный помощник «‎%s»"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr "NAT без имени"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "Перенаправление без имени"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "Правило без имени"
@@ -1007,11 +988,15 @@ msgstr "Правило без имени"
msgid "Unnamed zone"
msgstr "Зона без имени"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr "Использовать внешний IP-адрес"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr "Использовать внутренний IP-адрес"
@@ -1031,33 +1016,25 @@ msgstr ""
"Используйте эту опцию для классификации трафика зоны по источнику или "
"подсети назначения вместо сети или устройств."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Через %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Через %s, %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Среда"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "Дни недели"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1069,137 +1046,288 @@ msgstr "Зона ⇒ Перенаправления"
msgid "Zones"
msgstr "Зоны"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "принимать"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "любой"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "любого хоста"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "любой IP-адрес маршрутизатора"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "любой зоны"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr "назначить помощника отслеживания соединений"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "день"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr "не перезаписывать"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "не отслеживать"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "не обрабатывать"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "час"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "минута"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "нет"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "порт"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "порты"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "отвергать"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "секунда"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "эта новая зона"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "тип"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "типы"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr "не определено"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr "верная метка брандмауэра"
+#~ msgid "%s in %s"
+#~ msgstr "%s в %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s с %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s в %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> пакетов за <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr ""
+#~ "<var>%d</var> пакетов за <var>%s</var>, подряд <var>%d</var> пакетов"
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> с пределом в %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "Принимать перенаправляемый трафик"
+
+#~ msgid "Accept input"
+#~ msgstr "Принимать входящий трафик"
+
+#~ msgid "Accept output"
+#~ msgstr "Принимать исходящий трафик"
+
+#~ msgid "Destination IP address"
+#~ msgstr "IP-адрес назначения"
+
+#~ msgid "Discard forward"
+#~ msgstr "Отклонять перенаправляемый трафик"
+
+#~ msgid "Discard input"
+#~ msgstr "Отклонять входящий трафик"
+
+#~ msgid "Discard output"
+#~ msgstr "Отклонять исходящий трафик"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Не перезаписывать"
+
+#~ msgid "Do not track forward"
+#~ msgstr "Не отслеживать перенаправляемый трафик"
+
+#~ msgid "Do not track input"
+#~ msgstr "Не отслеживать входящий трафик"
+
+#~ msgid "Do not track output"
+#~ msgstr "Не отслеживать исходящий трафик"
+
+#~ msgid "Forward to"
+#~ msgstr "Перенаправлять на"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Из %s в %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Из %s в %s с источником %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Из %s в %s с источниками %s и %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "Из %s в <var>это устройство</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "Из %s в <var>это устройство</var> с источником %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "Из %s в <var>это устройство</var> с источниками %s and %s"
+
+#~ msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#~ msgstr "Из %{ipaddr?:любой хост} %{port?с источником %{port}}"
+
+#~ msgid "IP"
+#~ msgstr "IP-адрес"
+
+#~ msgid "IP range"
+#~ msgstr "Диапазон IP-адресов"
+
+#~ msgid "IPs"
+#~ msgstr "IP-адреса"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MAC-адреса"
+
+#~ msgid ""
+#~ "Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} "
+#~ "%{mark?with firewall mark %{mark}} %{limit?limited to %{limit}}"
+#~ msgstr ""
+#~ "Соответствует %{protocol?%{family} %{protocol} трафику:любому %{family} "
+#~ "трафику} %{mark?с меткой брандмауэра %{mark}}"
+
+#~ msgid "Network"
+#~ msgstr "Сеть"
+
+#~ msgid "Refuse forward"
+#~ msgstr "Сбрасывать перенаправляемый трафик"
+
+#~ msgid "Refuse input"
+#~ msgstr "Сбрасывать входящий трафик"
+
+#~ msgid "Refuse output"
+#~ msgstr "Сбрасывать исходящий трафик"
+
+#~ msgid "Rewrite to"
+#~ msgstr "Перезаписать"
+
+#~ msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
+#~ msgstr ""
+#~ "Перезаписать на %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
+
+#~ msgid "Rewrite to outbound device IP"
+#~ msgstr "Перезаписать на IP-адрес исходящего устройства"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "К %s, %s на <var>этом устройстве</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "К %s в %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "К %s на <var>этом устройстве</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "К %s, %s в %s"
+
+#~ msgid ""
+#~ "To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
+#~ "%{device?egress device %{device}}"
+#~ msgstr ""
+#~ "На %{ipaddr?:любой адрес назначения} %{port?порт %{port}} %{zone?через "
+#~ "зону %{zone}} %{device?исходящее устройство %{device}}"
+
+#~ msgid "Via %s"
+#~ msgstr "Через %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Через %s, %s"
+
+#~ msgid "any host"
+#~ msgstr "любого хоста"
+
+#~ msgid "any router IP"
+#~ msgstr "любой IP-адрес маршрутизатора"
+
+#~ msgid "not"
+#~ msgstr "нет"
+
+#~ msgid "port"
+#~ msgstr "порт"
+
+#~ msgid "ports"
+#~ msgstr "порты"
+
+#~ msgid "type"
+#~ msgstr "тип"
+
+#~ msgid "types"
+#~ msgstr "типы"
+
#~ msgid "Force connection tracking"
#~ msgstr "Принудительно включать отслеживание соединений"
diff --git a/applications/luci-app-firewall/po/sk/firewall.po b/applications/luci-app-firewall/po/sk/firewall.po
index d7f266465..009fa9a32 100644
--- a/applications/luci-app-firewall/po/sk/firewall.po
+++ b/applications/luci-app-firewall/po/sk/firewall.po
@@ -12,53 +12,103 @@ 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-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Akcia"
@@ -75,9 +125,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr ""
@@ -94,30 +144,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -165,84 +214,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -254,7 +272,7 @@ msgstr ""
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -266,17 +284,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -300,15 +318,15 @@ msgstr ""
msgid "Firewall - Custom Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr ""
@@ -321,49 +339,54 @@ msgstr ""
msgid "Forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -374,72 +397,64 @@ msgstr ""
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -447,27 +462,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -479,142 +494,132 @@ msgstr ""
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -623,9 +628,9 @@ msgstr ""
msgid "Output"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -638,44 +643,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -688,57 +681,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -752,65 +733,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -840,61 +821,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -902,23 +887,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -926,11 +911,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -946,33 +935,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -984,133 +965,118 @@ msgstr ""
msgid "Zones"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
diff --git a/applications/luci-app-firewall/po/sv/firewall.po b/applications/luci-app-firewall/po/sv/firewall.po
index 1319bdfaf..8a96c4b05 100644
--- a/applications/luci-app-firewall/po/sv/firewall.po
+++ b/applications/luci-app-firewall/po/sv/firewall.po
@@ -12,53 +12,103 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s i %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s med %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%2, %s i %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> pkt. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> pkt. per <var>%s</var>, brustna <var>%d</var> pkt."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> och gränsen till %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Åtgärd"
@@ -75,9 +125,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Avancerade inställningar"
@@ -94,30 +144,29 @@ msgstr "Tillåt vidarebefordring från <em>källzonerna</em>:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Till vidarebefordring till <em>destinationszonerna:</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Något"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -165,84 +214,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "Destinationens IP-adress"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Destinationens adress"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Destinationsport"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Destinationens zon"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "Skriv inte om igen"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Släpp ogiltiga paket"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Aktivera"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -254,7 +272,7 @@ msgstr ""
msgid "Enable logging on this zone"
msgstr "Aktivera loggning i den här zonen"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -266,17 +284,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Extern IP-adress"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Extern port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Extra argument"
@@ -300,15 +318,15 @@ msgstr "Brandvägg"
msgid "Firewall - Custom Rules"
msgstr "Brandvägg - Anpassade regler"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Brandvägg - Vidarebefordring av port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Brandvägg - Trafikregler"
@@ -321,49 +339,54 @@ msgstr "Brandvägg - Zoninställningar"
msgid "Forward"
msgstr "Vidarebefordra"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "Vidarebefordra till"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "Fredag"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "Från %s i %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "Från %s i %s med källa %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "Från %s i %s med källa %s och %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -374,72 +397,64 @@ msgstr "Generella inställningar"
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 och IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Endast IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Endast IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Inmatning"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Intern IP-adress"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Intern port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Intern zon"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -447,27 +462,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Begränsa loggmeddelanden"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -479,54 +494,48 @@ msgstr ""
msgid "Masquerading"
msgstr "Maskering"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Matcha"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Matchar ICMP-typ"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -534,90 +543,86 @@ msgstr ""
"Matcha inkommande trafik dirigerad till den angivna destinationsporten eller "
"portens räckvidd på den här värden"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Måndag"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Dagar i månaden"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Namn"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Nätverk"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
"Matcha endast inkommande trafik från den här IP-adressen eller räckvidden."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -626,9 +631,9 @@ msgstr ""
msgid "Output"
msgstr "Utmatning"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -641,44 +646,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Vidarebefordringar av port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Protokoll"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -691,57 +684,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Begränsa till adressfamilj"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Lördag"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -755,65 +736,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "IP-adress för källa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "MAC-adress för källa"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Adress för källkod"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "Startdatum (åååå-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "Stopptid (åååå-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Söndag"
@@ -843,61 +824,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Torsdag"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Tid enligt UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "Till %s vid %s på <var>den här enheten</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "Till %s i %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "Till %s på <var>den här enheten</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "Till %s, %s i %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Trafikregler"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Tisdag"
@@ -905,23 +890,23 @@ msgstr "Tisdag"
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -929,11 +914,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -949,33 +938,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Via %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Onsdag"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "Veckodagar"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -987,137 +968,191 @@ msgstr ""
msgid "Zones"
msgstr "Zoner"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "acceptera"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "något"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "alla värdar"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "alla zoner"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "spåra inte"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "släpp"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "port"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "portar"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "neka"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "typ"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s i %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s med %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%2, %s i %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> pkt. per <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr "<var>%d</var> pkt. per <var>%s</var>, brustna <var>%d</var> pkt."
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> och gränsen till %s"
+
+#~ msgid "Destination IP address"
+#~ msgstr "Destinationens IP-adress"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "Skriv inte om igen"
+
+#~ msgid "Forward to"
+#~ msgstr "Vidarebefordra till"
+
+#~ msgid "From %s in %s"
+#~ msgstr "Från %s i %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "Från %s i %s med källa %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "Från %s i %s med källa %s och %s"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "Network"
+#~ msgstr "Nätverk"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "Till %s vid %s på <var>den här enheten</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "Till %s i %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "Till %s på <var>den här enheten</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "Till %s, %s i %s"
+
+#~ msgid "Via %s"
+#~ msgstr "Via %s"
+
+#~ msgid "any host"
+#~ msgstr "alla värdar"
+
+#~ msgid "port"
+#~ msgstr "port"
+
+#~ msgid "ports"
+#~ msgstr "portar"
+
+#~ msgid "type"
+#~ msgstr "typ"
+
#~ msgid "Disable"
#~ msgstr "Inaktivera"
diff --git a/applications/luci-app-firewall/po/templates/firewall.pot b/applications/luci-app-firewall/po/templates/firewall.pot
index f11d72686..4b25a2cd4 100644
--- a/applications/luci-app-firewall/po/templates/firewall.pot
+++ b/applications/luci-app-firewall/po/templates/firewall.pot
@@ -1,53 +1,103 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr ""
@@ -64,9 +114,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr ""
@@ -83,30 +133,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -154,84 +203,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -243,7 +261,7 @@ msgstr ""
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -255,17 +273,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -289,15 +307,15 @@ msgstr ""
msgid "Firewall - Custom Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr ""
@@ -310,49 +328,54 @@ msgstr ""
msgid "Forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -363,72 +386,64 @@ msgstr ""
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -436,27 +451,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -468,142 +483,132 @@ msgstr ""
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -612,9 +617,9 @@ msgstr ""
msgid "Output"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -627,44 +632,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -677,57 +670,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -741,65 +722,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -829,61 +810,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -891,23 +876,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -915,11 +900,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -935,33 +924,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -973,133 +954,112 @@ msgstr ""
msgid "Zones"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
diff --git a/applications/luci-app-firewall/po/tr/firewall.po b/applications/luci-app-firewall/po/tr/firewall.po
index 71604217c..c0a220507 100644
--- a/applications/luci-app-firewall/po/tr/firewall.po
+++ b/applications/luci-app-firewall/po/tr/firewall.po
@@ -12,53 +12,103 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Eylem"
@@ -75,9 +125,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr ""
@@ -94,30 +144,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -165,84 +214,53 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -254,7 +272,7 @@ msgstr ""
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -266,17 +284,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -300,15 +318,15 @@ msgstr ""
msgid "Firewall - Custom Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr ""
@@ -321,49 +339,54 @@ msgstr ""
msgid "Forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -374,72 +397,64 @@ msgstr ""
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -447,27 +462,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -479,142 +494,132 @@ msgstr ""
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -623,9 +628,9 @@ msgstr ""
msgid "Output"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -638,44 +643,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -688,57 +681,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -752,65 +733,65 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -840,61 +821,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -902,23 +887,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -926,11 +911,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -946,33 +935,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -984,133 +965,118 @@ msgstr ""
msgid "Zones"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
diff --git a/applications/luci-app-firewall/po/uk/firewall.po b/applications/luci-app-firewall/po/uk/firewall.po
index 209bfbfab..890654d6a 100644
--- a/applications/luci-app-firewall/po/uk/firewall.po
+++ b/applications/luci-app-firewall/po/uk/firewall.po
@@ -13,53 +13,103 @@ msgstr ""
"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 3.10-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s у %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s із %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s у %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> пакетів за <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> пакетів за <var>%s</var>, підряд <var>%d</var> пакетів"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> з лімітом %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "Приймати переспрямовування"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "Приймати вхідний"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "Приймати вихідний"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Дія"
@@ -82,9 +132,9 @@ msgstr ""
"зони, наприклад, <code>-p tcp --sport 443</code>, щоб зіставляти лише "
"вхідний трафік HTTPS."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "Додаткові параметри"
@@ -101,30 +151,29 @@ msgstr "Дозволити переспрямовування від <em>зон
msgid "Allow forward to <em>destination zones</em>:"
msgstr "Дозволити переспрямовування до <em>зон призначення</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "Будь-який"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "Будь-який день"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -183,51 +232,36 @@ msgstr ""
"виконуються після кожного перезавантаження брандмауера, відразу після "
"завантаження типового набору правил."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Адреса призначення"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Порт призначення"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "Зона призначення"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "Відкидати переспрямовування"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "Відкидати вхідний"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "Відкидати вихідний"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
@@ -237,33 +271,17 @@ msgstr ""
"зі станом відслідковування з'єднань <em>invalid</em>. Це може знадобитися "
"для складних налаштувань асиметричного маршруту."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "Не відслідковувати переспрямовування"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "Не відслідковувати вхідний"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "Не відслідковувати вихідний"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Відкидати помилкові пакети"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Увімкнути"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "Увімкнути NAT Loopback"
@@ -275,7 +293,7 @@ msgstr "Увімкнути захист від SYN-flood"
msgid "Enable logging on this zone"
msgstr "Увімкнути реєстрування у цій зоні"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -289,17 +307,17 @@ msgstr ""
"В явному вигляді дозволені помічники відслідковування з'єднань для трафіку "
"зони"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "Зовнішня IP-адреса"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "Зовнішній порт"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "Додаткові аргументи"
@@ -323,15 +341,15 @@ msgstr "Брандмауер"
msgid "Firewall - Custom Rules"
msgstr "Брандмауер — Настроювані правила"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "Брандмауер — Переспрямовування портів"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "Брандмауер — Правила трафіка"
@@ -344,49 +362,54 @@ msgstr "Брандмауер — Параметри зон"
msgid "Forward"
msgstr "Переспрямовування"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "переспрямовування до"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "П'ятниця"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "%s у %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "%s у %s з джерелом %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "%s у %s з джерелом %s та %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "Від %s на <var>цьому пристрої</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "Від %s на <var>цьому пристрої</var> з джерелом %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "Від %s на <var>цьому пристрої</var> з джерелом %s та %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -397,72 +420,64 @@ msgstr "Загальні параметри"
msgid "Hardware flow offloading"
msgstr "Апаратні засоби розвантаження потоку"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP-адреса"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "Діапазон IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IP-адреси"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 та IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "Лише IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "Лише IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Вхідний"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "Внутрішня IP-адреса"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "Внутрішній порт"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "Внутрішня зона"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -470,27 +485,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "Обмеження повідомлень журналу"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC-адреса"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MAC-адреси"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -502,54 +517,48 @@ msgstr "Затискання MSS"
msgid "Masquerading"
msgstr "Підміна"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "Зіставляти"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "Зіставляти ICMP типу"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
@@ -557,78 +566,74 @@ msgstr ""
"Зіставляти вхідний трафік, спрямований на заданий порт призначення або "
"діапазон портів цього вузла"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "Понеділок"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "Дні місяця"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "Ім'я"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "Мережа"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "Зіставляти тільки вхідний трафік, спрямований на задану IP-адресу."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "Зіставляти тільки вхідний трафік від цих MAC-адрес."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "Зіставляти тільки вхідний трафік від цього IP чи діапазону."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
@@ -636,12 +641,12 @@ msgstr ""
"Зіставляти тільки вхідний трафік, що виникає на заданому порту джерела або "
"діапазоні портів вузла клієнта"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -650,9 +655,9 @@ msgstr ""
msgid "Output"
msgstr "Вихідний"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
"Передача додаткових аргументів для IPTables. Використовуйте з обережністю!"
@@ -671,12 +676,12 @@ msgstr ""
"особливою обережністю, оскільки невірні значення можуть призвести до "
"порушення набору правил брандмауера, повністю відкриваючи всі служби."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "Переспрямовування портів"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
@@ -684,34 +689,22 @@ msgstr ""
"Переспрямовування портів дозволяє віддаленим комп'ютерам з Інтернету "
"підключатися до певного комп'ютера або служби у приватній мережі."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Протокол"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
"Переспрямувати відповідний вхідний трафік на заданий порт внутрішнього вузла"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "Переспрямувати відповідний вхідний трафік на заданий внутрішній вузол"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "Відхиляти переспрямовування"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "Відхиляти вхідний"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "Відхиляти вихідний"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr "Необхідна апаратна підтримка NAT. Упроваджено принаймні для mt7621"
@@ -724,57 +717,45 @@ msgstr "Обмежити підміну заданими підмережами
msgid "Restrict Masquerading to given source subnets"
msgstr "Обмежити підміну заданими підмережами джерела"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "Обмежити сімейство протоколів"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "Розвантаження маршрутизації/NAT"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "Субота"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -788,65 +769,65 @@ msgstr "Програмне розвантаження для маршрутиз
msgid "Software flow offloading"
msgstr "Програмне розвантаження потоку"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "IP-адреса джерела"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "MAC-адреса джерела"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "Адреса джерела"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Порт джерела"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "Зона джерела"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "Дата початку (рррр-мм-дд)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr "Час початку (гг:хх:сс)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "Дата зупинки (рррр-мм-дд)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr "Час зупинки (гг:хх:сс)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "Неділя"
@@ -890,53 +871,57 @@ msgstr ""
"спрямовування трафіку між різними мережами в межах зони. Пункт <em>Покриті "
"мережі</em> визначає, які доступні мережі є членами цієї зони."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "Четвер"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "Часові обмеження"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "Час в UTC"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "%s на %s <var>цього пристрою</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "%s у %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "%s на <var>цього пристрою</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "%s, %s у %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "Правила трафіка"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -946,8 +931,8 @@ msgstr ""
"різними зонами, наприклад, відхиляти трафік між певними вузлами або відкрити "
"порти WAN на маршрутизаторі."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "Вівторок"
@@ -955,23 +940,23 @@ msgstr "Вівторок"
msgid "Unable to save contents: %s"
msgstr "Не вдалося зберегти вміст: %s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "Переспрямовування без назви"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "Правило без назви"
@@ -979,11 +964,15 @@ msgstr "Правило без назви"
msgid "Unnamed zone"
msgstr "Зона без назви"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -1003,33 +992,25 @@ msgstr ""
"Використовуйте цей параметр для класифікації трафіку зон за підмережею "
"джерела чи призначення замість мереж або пристроїв."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "Через %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "Через %s на %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "Середа"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "Дні тижня"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1041,137 +1022,255 @@ msgstr "Зона ⇒ Переспрямовування"
msgid "Zones"
msgstr "Зони"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "приймати"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "будь-який"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "будь-який вузол"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "будь-який IP роутера"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "будь-якій зоні"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "день"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "не відстеж."
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "опускати"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "година"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "хвилина"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "не"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "порт"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "порти"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "відкидати"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "секунду"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "ця нова зона"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "типом"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "типами"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s у %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s із %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s у %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> пакетів за <var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr ""
+#~ "<var>%d</var> пакетів за <var>%s</var>, підряд <var>%d</var> пакетів"
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> з лімітом %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "Приймати переспрямовування"
+
+#~ msgid "Accept input"
+#~ msgstr "Приймати вхідний"
+
+#~ msgid "Accept output"
+#~ msgstr "Приймати вихідний"
+
+#~ msgid "Discard forward"
+#~ msgstr "Відкидати переспрямовування"
+
+#~ msgid "Discard input"
+#~ msgstr "Відкидати вхідний"
+
+#~ msgid "Discard output"
+#~ msgstr "Відкидати вихідний"
+
+#~ msgid "Do not track forward"
+#~ msgstr "Не відслідковувати переспрямовування"
+
+#~ msgid "Do not track input"
+#~ msgstr "Не відслідковувати вхідний"
+
+#~ msgid "Do not track output"
+#~ msgstr "Не відслідковувати вихідний"
+
+#~ msgid "Forward to"
+#~ msgstr "переспрямовування до"
+
+#~ msgid "From %s in %s"
+#~ msgstr "%s у %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "%s у %s з джерелом %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "%s у %s з джерелом %s та %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "Від %s на <var>цьому пристрої</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "Від %s на <var>цьому пристрої</var> з джерелом %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "Від %s на <var>цьому пристрої</var> з джерелом %s та %s"
+
+#~ msgid "IP"
+#~ msgstr "IP-адреса"
+
+#~ msgid "IP range"
+#~ msgstr "Діапазон IP"
+
+#~ msgid "IPs"
+#~ msgstr "IP-адреси"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC-адреса"
+
+#~ msgid "MACs"
+#~ msgstr "MAC-адреси"
+
+#~ msgid "Network"
+#~ msgstr "Мережа"
+
+#~ msgid "Refuse forward"
+#~ msgstr "Відхиляти переспрямовування"
+
+#~ msgid "Refuse input"
+#~ msgstr "Відхиляти вхідний"
+
+#~ msgid "Refuse output"
+#~ msgstr "Відхиляти вихідний"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "%s на %s <var>цього пристрою</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "%s у %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "%s на <var>цього пристрою</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "%s, %s у %s"
+
+#~ msgid "Via %s"
+#~ msgstr "Через %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "Через %s на %s"
+
+#~ msgid "any host"
+#~ msgstr "будь-який вузол"
+
+#~ msgid "any router IP"
+#~ msgstr "будь-який IP роутера"
+
+#~ msgid "not"
+#~ msgstr "не"
+
+#~ msgid "port"
+#~ msgstr "порт"
+
+#~ msgid "ports"
+#~ msgstr "порти"
+
+#~ msgid "type"
+#~ msgstr "типом"
+
+#~ msgid "types"
+#~ msgstr "типами"
+
#~ msgid "Force connection tracking"
#~ msgstr "Примусове відслідковування з'єднань"
diff --git a/applications/luci-app-firewall/po/vi/firewall.po b/applications/luci-app-firewall/po/vi/firewall.po
index 39a6ce087..709292054 100644
--- a/applications/luci-app-firewall/po/vi/firewall.po
+++ b/applications/luci-app-firewall/po/vi/firewall.po
@@ -16,53 +16,103 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.11-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "Hành động"
@@ -79,9 +129,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr ""
@@ -98,30 +148,29 @@ msgstr ""
msgid "Allow forward to <em>destination zones</em>:"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -169,85 +218,54 @@ msgid ""
"each firewall restart, right after the default ruleset has been loaded."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "Địa chỉ điểm đến"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "Cổng điểm đến"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
#, fuzzy
msgid "Destination zone"
msgstr "Điểm đến"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "Bỏ qua nhưng gói không hợp lý"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "Kích hoạt"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr ""
@@ -260,7 +278,7 @@ msgstr "SYN-flood bảo vệ "
msgid "Enable logging on this zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -272,17 +290,17 @@ msgstr ""
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "External port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr ""
@@ -306,15 +324,15 @@ msgstr "Firewall"
msgid "Firewall - Custom Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr ""
@@ -327,49 +345,54 @@ msgstr ""
msgid "Forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -380,74 +403,66 @@ msgstr ""
msgid "Hardware flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "Input"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
#, fuzzy
msgid "Internal IP address"
msgstr "Internal address"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
#, fuzzy
msgid "Internal port"
msgstr "External port"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -455,27 +470,27 @@ msgstr ""
msgid "Limit log messages"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
-msgid "Limits traffic matching to the specified rate."
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
-msgid "Loopback source IP"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
+msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
+msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -488,142 +503,132 @@ msgstr "MSS Clamping"
msgid "Masquerading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -632,9 +637,9 @@ msgstr ""
msgid "Output"
msgstr "Output"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr ""
@@ -647,44 +652,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "Giao thức"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr ""
@@ -697,57 +690,45 @@ msgstr ""
msgid "Restrict Masquerading to given source subnets"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -761,68 +742,68 @@ msgstr ""
msgid "Software flow offloading"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
#, fuzzy
msgid "Source IP address"
msgstr "Đỉa chỉ MAC nguồn"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
#, fuzzy
msgid "Source address"
msgstr "Đỉa chỉ MAC nguồn"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "Cổng nguồn"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
#, fuzzy
msgid "Source zone"
msgstr "Cổng nguồn"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr ""
@@ -854,61 +835,65 @@ msgid ""
"networks</em> specifies which available networks are members of this zone."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
"the router."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr ""
@@ -916,23 +901,23 @@ msgstr ""
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr ""
@@ -940,11 +925,15 @@ msgstr ""
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -960,33 +949,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -998,133 +979,118 @@ msgstr ""
msgid "Zones"
msgstr "Zones"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "chấp nhận"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "drop"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "Không chấp nhận"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
diff --git a/applications/luci-app-firewall/po/zh-cn/firewall.po b/applications/luci-app-firewall/po/zh-cn/firewall.po
index 9270c8f66..a28d8a02e 100644
--- a/applications/luci-app-firewall/po/zh-cn/firewall.po
+++ b/applications/luci-app-firewall/po/zh-cn/firewall.po
@@ -16,53 +16,103 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.10-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s 位于 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s 和 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s 位于 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> 数据包/<var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> 数据包/<var>%s</var>,突发 <var>%d</var> 数据包。"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> 并限制到 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "接受转发"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "接受入站"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "接受出站"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "动作"
@@ -83,9 +133,9 @@ msgstr ""
"附加 <em>iptables</em> 参数对区域入流量分类。如:<code>-p tcp --sport 443</"
"code> 仅匹配入站 HTTPS 流量。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "高级设置"
@@ -102,30 +152,29 @@ msgstr "允许来自<em>源区域</em>的转发:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "允许转发到<em>目标区域</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "任何"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr "每天"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -175,51 +224,36 @@ msgstr ""
"自定义规则允许您执行不属于防火墙框架的任意 iptables 命令。每次重启防火墙时,"
"在默认的规则运行后这些命令将立即执行。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "目标 IP 地址"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "目标地址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "目标端口"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "目标区域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "丢弃转发"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "丢弃入站"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "丢弃出站"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
@@ -228,33 +262,17 @@ msgstr ""
"不安装额外的规则以拒绝 conntrack 状态为<em>无效</em>的转发流量。对复杂的非对"
"称路由这可能是必需的设置。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "不重写"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "不跟踪转发"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "不跟踪入站"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "不跟踪出站"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "丢弃无效数据包"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "启用"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "启用 NAT 环回"
@@ -266,7 +284,7 @@ msgstr "启用 SYN-flood 防御"
msgid "Enable logging on this zone"
msgstr "启用此区域的日志记录"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -278,17 +296,17 @@ msgstr "实验特性。与 QoS/SQM 不完全兼容。"
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr "为区域流量明确选择允许的连接跟踪助手"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "外部 IP 地址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "外部端口"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "额外参数"
@@ -312,15 +330,15 @@ msgstr "防火墙"
msgid "Firewall - Custom Rules"
msgstr "防火墙 - 自定义规则"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "防火墙 - 端口转发"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "防火墙 - 通信规则"
@@ -333,49 +351,54 @@ msgstr "防火墙 - 区域设置"
msgid "Forward"
msgstr "转发"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "转发到"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "星期五"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "来自 %s 位于 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "来自 %s 位于 %s 源于 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "来自 %s 位于 %s 源端口 %s 源 MAC %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "来自 %s 位于<var>本设备</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "来自 %s 位于<var>本设备</var>源于 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "来自 %s 位于<var>本设备</var>源端口 %s 源 MAC %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -386,72 +409,64 @@ msgstr "基本设置"
msgid "Hardware flow offloading"
msgstr "硬件流量分载"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "IP 范围"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 和 IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "仅 IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "仅 IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "入站数据"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "内部 IP 地址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "内部端口"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "内部区域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -459,27 +474,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "限制日志信息"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -491,142 +506,132 @@ msgstr "MSS 钳制"
msgid "Masquerading"
msgstr "IP 动态伪装"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "匹配规则"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "匹配 ICMP 类型"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr "匹配指向此主机上指定目标端口或目标端口范围的入站流量"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "星期一"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "日期"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "名称"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr "网络"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "仅匹配指定目的 IP 地址的入站流量。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "仅匹配来自这些 MAC 的入站流量。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "仅匹配来自此 IP 或 IP 范围的入站流量。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr "仅匹配源自客户端主机上给定源端口或源端口范围的入站流量"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -635,9 +640,9 @@ msgstr ""
msgid "Output"
msgstr "出站数据"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr "传递到 iptables 的额外参数。小心使用!"
@@ -653,45 +658,33 @@ msgstr ""
"他条件来匹配数据包。使用这些选项应格外小心,因为无效值可能会破坏防火墙规则集"
"而对外暴露所有服务。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "端口转发"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr ""
"端口转发允许 Internet 上的远程计算机连接到内部网络中的特定计算机或服务。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "协议"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr "重定向匹配的入站流量到内部主机的端口"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "重定向匹配的入站流量到指定的内部主机"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "拒绝转发"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "拒绝入站"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "拒绝出站"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr "需要硬件 NAT 支持。目前 mt7621 已实现"
@@ -704,57 +697,45 @@ msgstr "要限制 IP 动态伪装的目标子网"
msgid "Restrict Masquerading to given source subnets"
msgstr "要限制 IP 动态伪装的源子网"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "限制地址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "Routing/NAT 分载"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "星期六"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -768,65 +749,65 @@ msgstr "基于软件的 Routing/NAT 分载"
msgid "Software flow offloading"
msgstr "软件流量分载"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "源 IP 地址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "源 MAC 地址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "源地址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "源端口"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "源区域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "开始日期(yyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr "开始时间(hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "停止日期(yyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr "停止时间(hh.mm.ss)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "星期日"
@@ -863,53 +844,57 @@ msgstr ""
"域入站和出站流量的默认策略,<em>转发</em>选项描述该区域内不同网络之间的流量转"
"发策略。<em>涵盖的网络</em>指定从属于这个区域的网络。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "星期四"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr "时间限制"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "UTC 时间"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "到 %s 在 %s 位于<var>本设备</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "到 %s 位于 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "到 %s 位于<var>本设备</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "到 %s, %s 位于 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "通信规则"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -918,8 +903,8 @@ msgstr ""
"通信规则定义了不同区域间的数据包传输策略,例如:拒绝一些主机之间的通信,开放"
"路由器 WAN 上的端口。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "星期二"
@@ -927,23 +912,23 @@ msgstr "星期二"
msgid "Unable to save contents: %s"
msgstr "无法保存内容:%s"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "未命名转发"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "未命名规则"
@@ -951,11 +936,15 @@ msgstr "未命名规则"
msgid "Unnamed zone"
msgstr "未命名区域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -971,33 +960,25 @@ msgid ""
"instead of networks or devices."
msgstr "此选项可对源或目标子网而非网络或设备进行区域流量分类。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "通过 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "通过 %s 在 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "星期三"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "星期"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -1009,137 +990,260 @@ msgstr "区域 ⇒ 转发"
msgid "Zones"
msgstr "区域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "接受"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "任意"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "所有主机"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "所有路由 IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "所有区域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "日"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "不跟踪"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "丢弃"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "小时"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "分钟"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "非"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "端口"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "端口"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "拒绝"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "秒"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr "此新区域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "类型"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "类型"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s 位于 %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s 和 %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s 位于 %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> 数据包/<var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr "<var>%d</var> 数据包/<var>%s</var>,突发 <var>%d</var> 数据包。"
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> 并限制到 %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "接受转发"
+
+#~ msgid "Accept input"
+#~ msgstr "接受入站"
+
+#~ msgid "Accept output"
+#~ msgstr "接受出站"
+
+#~ msgid "Destination IP address"
+#~ msgstr "目标 IP 地址"
+
+#~ msgid "Discard forward"
+#~ msgstr "丢弃转发"
+
+#~ msgid "Discard input"
+#~ msgstr "丢弃入站"
+
+#~ msgid "Discard output"
+#~ msgstr "丢弃出站"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "不重写"
+
+#~ msgid "Do not track forward"
+#~ msgstr "不跟踪转发"
+
+#~ msgid "Do not track input"
+#~ msgstr "不跟踪入站"
+
+#~ msgid "Do not track output"
+#~ msgstr "不跟踪出站"
+
+#~ msgid "Forward to"
+#~ msgstr "转发到"
+
+#~ msgid "From %s in %s"
+#~ msgstr "来自 %s 位于 %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "来自 %s 位于 %s 源于 %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "来自 %s 位于 %s 源端口 %s 源 MAC %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "来自 %s 位于<var>本设备</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "来自 %s 位于<var>本设备</var>源于 %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "来自 %s 位于<var>本设备</var>源端口 %s 源 MAC %s"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "IP 范围"
+
+#~ msgid "IPs"
+#~ msgstr "IP"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MAC"
+
+#~ msgid "Network"
+#~ msgstr "网络"
+
+#~ msgid "Refuse forward"
+#~ msgstr "拒绝转发"
+
+#~ msgid "Refuse input"
+#~ msgstr "拒绝入站"
+
+#~ msgid "Refuse output"
+#~ msgstr "拒绝出站"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "到 %s 在 %s 位于<var>本设备</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "到 %s 位于 %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "到 %s 位于<var>本设备</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "到 %s, %s 位于 %s"
+
+#~ msgid "Via %s"
+#~ msgstr "通过 %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "通过 %s 在 %s"
+
+#~ msgid "any host"
+#~ msgstr "所有主机"
+
+#~ msgid "any router IP"
+#~ msgstr "所有路由 IP"
+
+#~ msgid "not"
+#~ msgstr "非"
+
+#~ msgid "port"
+#~ msgstr "端口"
+
+#~ msgid "ports"
+#~ msgstr "端口"
+
+#~ msgid "type"
+#~ msgstr "类型"
+
+#~ msgid "types"
+#~ msgstr "类型"
+
#~ msgid "Force connection tracking"
#~ msgstr "强制连接追踪"
diff --git a/applications/luci-app-firewall/po/zh-tw/firewall.po b/applications/luci-app-firewall/po/zh-tw/firewall.po
index 9d35ee5eb..3233f9c91 100644
--- a/applications/luci-app-firewall/po/zh-tw/firewall.po
+++ b/applications/luci-app-firewall/po/zh-tw/firewall.po
@@ -13,53 +13,103 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 3.10-dev\n"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:154
-msgid "%s in %s"
-msgstr "%s 位於 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47
+msgid ""
+"%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?<var>IPv4</var> and "
+"<var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#"
+"%{next?, }%{item.types?<var class=\"cbi-tooltip-container\">%{item.name}"
+"<span class=\"cbi-tooltip\">ICMP with types %{item.types#%{next?, }<var>"
+"%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var"
+"%{mark.inv? data-tooltip=\"Match fwmarks except %{mark.num}%{mark.mask? with "
+"mask %{mark.mask}}.\":%{mark.mask? data-tooltip=\"Mask fwmark value with "
+"%{mark.mask} before compare.\"}}>%{mark.val}</var>}%{dscp?, DSCP %{dscp.inv?"
+"<var data-tooltip=\"Match DSCP classifications except %{dscp.num?:%{dscp."
+"name}}\">%{dscp.val}</var>:<var>%{dscp.val}</var>}}%{helper?, helper "
+"%{helper.inv?<var data-tooltip=\"Match any helper except &quot;%{helper.name}"
+"&quot;\">%{helper.val}</var>:<var data-tooltip=\"%{helper.name}\">%{helper."
+"val}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:242
-msgid "%s%s with %s"
-msgstr "%s%s 和 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+msgid "-- add IP --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:152
-msgid "%s, %s in %s"
-msgstr "%s, %s 位於 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479
+msgid "-- add MAC --"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:275
-msgid "<var>%d</var> pkts. per <var>%s</var>"
-msgstr "<var>%d</var> 資料包/<var>%s</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117
+msgid ""
+"<var data-tooltip=\"ACCEPT\">Accept</var> %{src?%{dest?forward:input}:output}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:271
-msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
-msgstr "<var>%d</var> 資料包/<var>%s</var>,突發 <var>%d</var> 資料包。"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86
+msgid "<var data-tooltip=\"ACCEPT\">Prevent source rewrite</var>"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:107
-msgid "<var>%s</var> and limit to %s"
-msgstr "<var>%s</var> 並限制到 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80
+msgid ""
+"<var data-tooltip=\"DNAT\">Forward</var> to %{dest}%{dest_ip? IP <var>"
+"%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
-msgid "A rewrite IP must be specified!"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114
+msgid ""
+"<var data-tooltip=\"DROP\">Drop</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:267
-msgid "ACCEPT - Disable address rewriting"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132
+msgid ""
+"<var data-tooltip=\"DSCP\">Assign DSCP</var> classification <var>%{set_dscp}"
+"</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126
+msgid ""
+"<var data-tooltip=\"HELPER\">Assign conntrack</var> helper <var"
+"%{helper_name? data-tooltip=\"%{helper_name}\"}>%{set_helper}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129
+msgid ""
+"<var data-tooltip=\"MARK\">%{set_mark?Assign:XOR}</var> firewall mark <var>"
+"%{set_mark?:%{set_xmark}}</var>"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83
+msgid "<var data-tooltip=\"MASQUERADE\">Automatically rewrite</var> source IP"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123
+msgid ""
+"<var data-tooltip=\"NOTRACK\">Do not track</var> %{src?%{dest?forward:input}:"
+"output}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120
+msgid ""
+"<var data-tooltip=\"REJECT\">Reject</var> %{src?%{dest?forward:input}:output}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:293
-msgid "Accept forward"
-msgstr "接受轉發"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80
+msgid ""
+"<var data-tooltip=\"SNAT\">Statically rewrite</var> to source %{snat_ip?IP "
+"<var>%{snat_ip}</var>} %{snat_port?port <var>%{snat_port}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:303
-msgid "Accept input"
-msgstr "接受入站"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216
+msgid "A rewrite IP must be specified!"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:283
-msgid "Accept output"
-msgstr "接受出站"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:204
+msgid "ACCEPT - Disable address rewriting"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:224
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:388
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:220
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199
msgid "Action"
msgstr "行動"
@@ -76,9 +126,9 @@ msgid ""
"e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:109
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:178
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:78
msgid "Advanced Settings"
msgstr "高階設定"
@@ -95,30 +145,29 @@ msgstr "允許從<em>源區域</em>轉發:"
msgid "Allow forward to <em>destination zones</em>:"
msgstr "允許轉發到<em>目標區域</em>:"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:278
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506
msgid "Any"
msgstr "任何"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:454
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:470
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:329
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:345
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
msgid "Any day"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:369
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314
msgid ""
"Apply a bitwise XOR of the given value and the existing mark value on "
"established connections. Format is value[/mask]. If a mask is specified then "
"those bits set in the mask are zeroed out."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Apply the given DSCP class or value to established connections."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Assign the specified connection tracking helper to matched traffic."
msgstr ""
@@ -168,84 +217,53 @@ msgstr ""
"自訂規則允許您執行不屬於防火牆框架的任意 iptables 指令。每次重啟防火牆時,在"
"預設的規則執行後這些指令將立即執行。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:365
msgid "DSCP classification"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294
msgid "DSCP mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238
-msgid "Destination IP address"
-msgstr "目標 IP 位址"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:346
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185
msgid "Destination address"
msgstr "目標位址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:379
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
msgid "Destination port"
msgstr "目標埠"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340
msgid "Destination zone"
msgstr "目標區域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:256
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:252
msgid "Device name"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:299
-msgid "Discard forward"
-msgstr "丟棄轉發"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:309
-msgid "Discard input"
-msgstr "丟棄入站"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:289
-msgid "Discard output"
-msgstr "丟棄出站"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:211
msgid ""
"Do not install extra rules to reject forwarded traffic with conntrack state "
"<em>invalid</em>. This may be required for complex asymmetric route setups."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:125
-msgid "Do not rewrite"
-msgstr "不重寫"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:297
-msgid "Do not track forward"
-msgstr "不跟蹤轉發"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:307
-msgid "Do not track input"
-msgstr "不跟蹤入站"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:287
-msgid "Do not track output"
-msgstr "不跟蹤出站"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36
msgid "Drop invalid packets"
msgstr "丟棄無效資料包"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:230
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:226
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
msgid "Enable"
msgstr "啟用"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239
msgid "Enable NAT Loopback"
msgstr "啟用 NAT 環回"
@@ -257,7 +275,7 @@ msgstr "啟用 SYN-flood 防禦"
msgid "Enable logging on this zone"
msgstr "啟用此區域的日誌記錄"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "Expecting: %s"
msgstr ""
@@ -269,17 +287,17 @@ msgstr "實驗特性。與 QoS/SQM 不完全相容。"
msgid "Explicitly choses allowed connection tracking helpers for zone traffic"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:218
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206
msgid "External IP address"
msgstr "外部 IP 位址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211
msgid "External port"
msgstr "外部埠"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:306
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:320
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240
msgid "Extra arguments"
msgstr "附加引數"
@@ -303,15 +321,15 @@ msgstr "防火牆"
msgid "Firewall - Custom Rules"
msgstr "防火牆 - 自訂規則"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:154
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:118
msgid "Firewall - NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:100
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:120
msgid "Firewall - Port Forwards"
msgstr "防火牆 - 埠轉發"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:169
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:164
msgid "Firewall - Traffic Rules"
msgstr "防火牆 - 通訊規則"
@@ -324,49 +342,54 @@ msgstr "防火牆 - 區域設定"
msgid "Forward"
msgstr "轉發"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:143
-msgid "Forward to"
-msgstr "轉發到"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29
+msgid ""
+"Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</"
+"var>}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks except "
+"%{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-tooltip="
+"\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}</var>}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:427
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
msgid "Friday"
msgstr "星期五"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:62
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
-msgid "From %s in %s"
-msgstr "來自 %s 位於 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:60
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:62
-msgid "From %s in %s with source %s"
-msgstr "來自 %s 位於 %s 源於 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:60
-msgid "From %s in %s with source %s and %s"
-msgstr "來自 %s 位於 %s 源埠 %s 源 MAC %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:75
-msgid "From %s on <var>this device</var>"
-msgstr "來自 %s 位於<var>本裝置</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:73
-msgid "From %s on <var>this device</var> with source %s"
-msgstr "來自 %s 位於<var>本裝置</var>源於 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:71
-msgid "From %s on <var>this device</var> with source %s and %s"
-msgstr "來自 %s 位於<var>本裝置</var>源埠 %s 源 MAC %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63
+msgid ""
+"From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP "
+"%{src_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-"
+"tooltip=\"Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint."
+"name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint.name}\"}}>%{item.ival}"
+"</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:93
-msgid "From %{ipaddr?:any host} %{port?with source %{port}}"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47
+msgid ""
+"From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{src_port?, "
+"port %{src_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var"
+"%{item.inv? data-tooltip=\"Match MACs except %{item.val}%{item.hint.name? a."
+"k.a. %{item.hint.name}}.\":%{item.hint.name? data-tooltip=\"%{item.hint."
+"name}\"}}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:108
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:177
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:162
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:31
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:77
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16
@@ -377,72 +400,64 @@ msgstr "基本設定"
msgid "Hardware flow offloading"
msgstr "硬體流量分載"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:157
-msgid "IP"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:167
-msgid "IP range"
-msgstr "IP 範圍"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:175
-msgid "IPs"
-msgstr "IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:216
-msgid "IPv4"
-msgstr "IPv4"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:220
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:263
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192
msgid "IPv4 and IPv6"
msgstr "IPv4 和 IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193
msgid "IPv4 only"
msgstr "僅 IPv4"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:218
-msgid "IPv6"
-msgstr "IPv6"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:265
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:194
msgid "IPv6 only"
msgstr "僅 IPv6"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235
msgid "Inbound device"
msgstr ""
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37
+msgid ""
+"Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="
+"\"cbi-tooltip-container\">%{item.name}<span class=\"cbi-tooltip\">ICMP with "
+"types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item."
+"name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip=\"Match fwmarks "
+"except %{mark.num}%{mark.mask? with mask %{mark.mask}}.\":%{mark.mask? data-"
+"tooltip=\"Mask fwmark value with %{mark.mask} before compare.\"}}>%{mark.val}"
+"</var>}%{helper?, helper %{helper.inv?<var data-tooltip=\"Match any helper "
+"except &quot;%{helper.name}&quot;\">%{helper.val}</var>:<var data-tooltip="
+"\"%{helper.name}\">%{helper.val}</var>}}"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:115
msgid "Input"
msgstr "入站資料"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:225
msgid "Internal IP address"
msgstr "內部 IP 位址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:259
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:230
msgid "Internal port"
msgstr "內部埠"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:241
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
msgid "Internal zone"
msgstr "內部區域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:357
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302
msgid "Invalid DSCP mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
msgid "Invalid limit value"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:435
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380
msgid "Limit burst"
msgstr ""
@@ -450,27 +465,27 @@ msgstr ""
msgid "Limit log messages"
msgstr "限制日誌資訊"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:401
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346
msgid "Limit matching"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:402
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67
+msgid ""
+"Limit matching to <var>%{limit.num}</var> packets per <var>%{limit.unit}</"
+"var>%{limit.burst? burst <var>%{limit.burst}</var>}"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347
msgid "Limits traffic matching to the specified rate."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid "Loopback source IP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:96
-msgid "MAC"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:104
-msgid "MACs"
-msgstr "MAC"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:266
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203
msgid "MASQUERADE - Automatically rewrite to outbound interface IP"
msgstr ""
@@ -482,142 +497,132 @@ msgstr "MSS 鉗制"
msgid "Masquerading"
msgstr "IP 動態偽裝"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:133
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:153
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:209
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:138
msgid "Match"
msgstr "匹配規則"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84
-msgid ""
-"Match %{protocol?%{family} %{protocol} traffic:any %{family} traffic} %{mark?"
-"with firewall mark %{mark}} %{limit?limited to %{limit}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260
msgid "Match DSCP"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:288
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:276
msgid "Match ICMP type"
msgstr "匹配 ICMP 型別"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:232
msgid "Match device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186
msgid "Match forwarded traffic directed at the given IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:191
msgid ""
"Match forwarded traffic directed at the given destination port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172
msgid "Match forwarded traffic from this IP or range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:228
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:177
msgid ""
"Match forwarded traffic originating from the given source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:232
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
msgid ""
"Match incoming traffic directed at the given destination port or port range "
"on this host"
msgstr "匹配指向此主機上指定目標埠或目標埠範圍的入站流量。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Match mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:390
msgid "Match traffic using the specified connection tracking helper."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:371
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
msgid "Matches a specific firewall mark or a range of different marks."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:311
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231
msgid "Matches forwarded traffic using the specified outbound network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
msgid "Matches traffic carrying the specified DSCP marking."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:436
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381
msgid ""
"Maximum initial number of packets to match: this number gets recharged by "
"one every time the limit specified above is not reached, up to this number."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:251
msgid "Monday"
msgstr "星期一"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:466
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261
msgid "Month Days"
msgstr "日期"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:121
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43
msgid "NAT Rules"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:155
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:119
msgid ""
"NAT rules allow fine grained control over the source IP to use for outbound "
"or forwarded traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:210
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:149
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:205
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93
msgid "Name"
msgstr "名字"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:169
-msgid "Network"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
msgid "Only match incoming traffic directed at the given IP address."
msgstr "僅匹配指定目的 IP 位址的入站流量。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:182
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:188
msgid "Only match incoming traffic from these MACs."
msgstr "僅匹配來自這些 MAC 的入站流量。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:193
msgid "Only match incoming traffic from this IP or range."
msgstr "僅匹配來自此 IP 或 IP 範圍的入站流量。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:208
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:198
msgid ""
"Only match incoming traffic originating from the given source port or port "
"range on the client host"
msgstr "僅匹配源自客戶端主機上給定源埠或源埠範圍的入站流量。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:310
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:236
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230
msgid "Outbound device"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
msgid "Outbound zone"
msgstr ""
@@ -626,9 +631,9 @@ msgstr ""
msgid "Output"
msgstr "出站資料"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:307
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:447
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:321
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:241
msgid "Passes additional arguments to iptables. Use with care!"
msgstr "傳遞到 iptables 的額外引數。小心使用!"
@@ -641,44 +646,32 @@ msgid ""
"all services."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:123
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25
msgid "Port Forwards"
msgstr "埠轉發"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:101
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:121
msgid ""
"Port forwarding allows remote computers on the Internet to connect to a "
"specific computer or service within the private LAN."
msgstr "埠轉發允許 Internet 上的遠端計算機連線到內部網路中的特定計算機或服務。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:275
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:177
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:160
msgid "Protocol"
msgstr "協議"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:260
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:231
msgid ""
"Redirect matched incoming traffic to the given port on the internal host"
msgstr "重定向匹配的入站流量到內部主機的埠"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:226
msgid "Redirect matched incoming traffic to the specified internal host"
msgstr "重定向匹配的入站流量到指定的內部主機"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:295
-msgid "Refuse forward"
-msgstr "拒絕轉發"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:305
-msgid "Refuse input"
-msgstr "拒絕入站"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:285
-msgid "Refuse output"
-msgstr "拒絕出站"
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:66
msgid "Requires hardware NAT support. Implemented at least for mt7621"
msgstr "需要硬體 NAT 支援。目前 mt7621 已實現"
@@ -691,57 +684,45 @@ msgstr "要限制 IP 動態偽裝的目標子網"
msgid "Restrict Masquerading to given source subnets"
msgstr "要限制 IP 動態偽裝的源子網"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:264
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:191
msgid "Restrict to address family"
msgstr "限制位址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:206
msgid "Rewrite IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207
msgid "Rewrite matched traffic to the specified source IP address."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:300
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:222
msgid "Rewrite matched traffic to the specified source port or port range."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:299
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:221
msgid "Rewrite port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184
-msgid "Rewrite to"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:116
-msgid "Rewrite to %{ipaddr?%{port?%{ipaddr}, %{port}:%{ipaddr}}:%{port}}"
-msgstr ""
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:122
-msgid "Rewrite to outbound device IP"
-msgstr ""
-
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53
msgid "Routing/NAT Offloading"
msgstr "Routing/NAT 分載"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202
msgid "SNAT - Rewrite to specific source IP or port"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:428
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:256
msgid "Saturday"
msgstr "星期六"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "Set mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315
msgid ""
"Set the given mark value on established connections. Format is value[/mask]. "
"If a mask is specified then only those bits set in the mask are modified."
@@ -755,65 +736,65 @@ msgstr "基於軟體的 Routing/NAT 分載"
msgid "Software flow offloading"
msgstr "軟體流量分載"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:194
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:192
msgid "Source IP address"
msgstr "源 IP 位址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:187
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:330
msgid "Source MAC address"
msgstr "源 MAC 位址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:331
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
msgid "Source address"
msgstr "源位址"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:227
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:176
msgid "Source port"
msgstr "源埠"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:175
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:335
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:324
msgid "Source zone"
msgstr "源區域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:257
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:253
msgid ""
"Specifies whether to tie this traffic rule to a specific inbound or outbound "
"network device."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:275
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:244
msgid ""
"Specifies whether to use the external or the internal IP address for "
"reflected traffic."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:485
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:360
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280
msgid "Start Date (yyyy-mm-dd)"
msgstr "開始日期(yyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:477
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:352
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:444
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:272
msgid "Start Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:489
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:364
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284
msgid "Stop Date (yyyy-mm-dd)"
msgstr "停止日期(yyyy-mm-dd)"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:481
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:356
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:448
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:276
msgid "Stop Time (hh.mm.ss)"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:455
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:330
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250
msgid "Sunday"
msgstr "星期日"
@@ -850,53 +831,57 @@ msgstr ""
"域入站和出站流量的預設策略,<em>轉發</em>選項描述該區域內不同網路之間的流量轉"
"發策略。<em>覆蓋網路</em>指定從屬於這個區域的網路。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:459
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:334
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254
msgid "Thursday"
msgstr "星期四"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:179
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128
msgid "Time Restrictions"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:493
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288
msgid "Time in UTC"
msgstr "UTC 時間"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96
-msgid "To %s at %s on <var>this device</var>"
-msgstr "到 %s 在 %s 位於<var>本裝置</var>"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89
-msgid "To %s in %s"
-msgstr "到 %s 位於 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:98
-msgid "To %s on <var>this device</var>"
-msgstr "到 %s 位於<var>本裝置</var>"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76
+msgid ""
+"To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP "
+"%{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match IP addresses except "
+"%{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }"
+"<var%{item.inv? data-tooltip=\"Match ports except %{item.val}.\"}>%{item."
+"ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:87
-msgid "To %s, %s in %s"
-msgstr "到 %s, %s 位於 %s"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48
+msgid ""
+"To %{dest}%{dest_device?, via interface <var>%{dest_device}</"
+"var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip=\"Match "
+"IP addresses except %{item.val}.\"}>%{item.ival}</var>}}%{dest_port?, port "
+"%{dest_port#%{next?, }<var%{item.inv? data-tooltip=\"Match ports except "
+"%{item.val}.\"}>%{item.ival}</var>}}"
+msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:103
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56
msgid ""
-"To %{ipaddr?:any destination} %{port?at %{port}} %{zone?via zone %{zone}} "
-"%{device?egress device %{device}}"
+"To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match IP addresses except %{item.val}.\"}>%{item.ival}</"
+"var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="
+"\"Match ports except %{item.val}.\"}>%{item.ival}</var>}}"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:416
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:383
msgid "Tracking helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:167
#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34
msgid "Traffic Rules"
msgstr "通訊規則"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:170
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:165
msgid ""
"Traffic rules define policies for packets traveling between different zones, "
"for example to reject traffic between certain hosts or to open WAN ports on "
@@ -905,8 +890,8 @@ msgstr ""
"通訊規則定義了不同區域間的資料包傳輸策略,例如:拒絕一些主機之間的通訊,開放"
"路由器 WAN 上的埠。"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:332
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:424
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:252
msgid "Tuesday"
msgstr "星期二"
@@ -914,23 +899,23 @@ msgstr "星期二"
msgid "Unable to save contents: %s"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:299
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:438
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:268
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:405
msgid "Unknown or not installed conntrack helper \"%s\""
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:167
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:171
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:131
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135
msgid "Unnamed NAT"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:116
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:150
msgid "Unnamed forward"
msgstr "未命名轉發"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:211
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:206
msgid "Unnamed rule"
msgstr "未命名規則"
@@ -938,11 +923,15 @@ msgstr "未命名規則"
msgid "Unnamed zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:279
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548
+msgid "Unrecognized protocol"
+msgstr ""
+
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248
msgid "Use external IP address"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:278
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247
msgid "Use internal IP address"
msgstr ""
@@ -958,33 +947,25 @@ msgid ""
"instead of networks or devices."
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328
msgid "Valid firewall mark required"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:72
-msgid "Via %s"
-msgstr "通過 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:70
-msgid "Via %s at %s"
-msgstr "通過 %s 在 %s"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:458
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:333
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253
msgid "Wednesday"
msgstr "星期三"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:450
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:325
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:417
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:245
msgid "Week Days"
msgstr "星期"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:397
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364
msgid "XOR firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:368
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313
msgid "XOR mark"
msgstr ""
@@ -996,137 +977,257 @@ msgstr "區域 ⇒ 轉發"
msgid "Zones"
msgstr "區域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:123
msgid "accept"
msgstr "接受"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:320
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:199
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:212
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:223
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:286
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:293
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:376
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:382
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:418
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:219
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:232
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:243
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:336
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:351
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:385
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194
msgid "any"
msgstr "所有"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:53
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:147
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:58
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:85
-msgid "any host"
-msgstr "所有主機"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:66
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:69
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:94
-msgid "any router IP"
-msgstr "所有路由 IP"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:182
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:52
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:146
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
msgid "any zone"
msgstr "所有區域"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:396
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363
msgid "apply firewall mark"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:395
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:362
msgid "assign conntrack helper"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "day"
msgstr "日"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:303
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225
msgid "do not rewrite"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:361
msgid "don't track"
msgstr "不跟蹤"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:358
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:46
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122
msgid "drop"
msgstr "丟棄"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "hour"
msgstr "小時"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "minute"
msgstr "分鐘"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:86
-msgid "not"
-msgstr "非"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:121
-msgid "port"
-msgstr "埠"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:131
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:140
-msgid "ports"
-msgstr "埠"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121
msgid "reject"
msgstr "拒絕"
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60
msgid "second"
msgstr "秒"
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49
+msgid "this device"
+msgstr ""
+
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:88
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:176
#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265
msgid "this new zone"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:197
-msgid "type"
-msgstr "型別"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:209
-msgid "types"
-msgstr "型別"
-
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:406
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351
msgid "unlimited"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:238
+#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234
msgid "unspecified"
msgstr ""
-#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:391
+#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336
msgid "valid firewall mark"
msgstr ""
+#~ msgid "%s in %s"
+#~ msgstr "%s 位於 %s"
+
+#~ msgid "%s%s with %s"
+#~ msgstr "%s%s 和 %s"
+
+#~ msgid "%s, %s in %s"
+#~ msgstr "%s, %s 位於 %s"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>"
+#~ msgstr "<var>%d</var> 資料包/<var>%s</var>"
+
+#~ msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+#~ msgstr "<var>%d</var> 資料包/<var>%s</var>,突發 <var>%d</var> 資料包。"
+
+#~ msgid "<var>%s</var> and limit to %s"
+#~ msgstr "<var>%s</var> 並限制到 %s"
+
+#~ msgid "Accept forward"
+#~ msgstr "接受轉發"
+
+#~ msgid "Accept input"
+#~ msgstr "接受入站"
+
+#~ msgid "Accept output"
+#~ msgstr "接受出站"
+
+#~ msgid "Destination IP address"
+#~ msgstr "目標 IP 位址"
+
+#~ msgid "Discard forward"
+#~ msgstr "丟棄轉發"
+
+#~ msgid "Discard input"
+#~ msgstr "丟棄入站"
+
+#~ msgid "Discard output"
+#~ msgstr "丟棄出站"
+
+#~ msgid "Do not rewrite"
+#~ msgstr "不重寫"
+
+#~ msgid "Do not track forward"
+#~ msgstr "不跟蹤轉發"
+
+#~ msgid "Do not track input"
+#~ msgstr "不跟蹤入站"
+
+#~ msgid "Do not track output"
+#~ msgstr "不跟蹤出站"
+
+#~ msgid "Forward to"
+#~ msgstr "轉發到"
+
+#~ msgid "From %s in %s"
+#~ msgstr "來自 %s 位於 %s"
+
+#~ msgid "From %s in %s with source %s"
+#~ msgstr "來自 %s 位於 %s 源於 %s"
+
+#~ msgid "From %s in %s with source %s and %s"
+#~ msgstr "來自 %s 位於 %s 源埠 %s 源 MAC %s"
+
+#~ msgid "From %s on <var>this device</var>"
+#~ msgstr "來自 %s 位於<var>本裝置</var>"
+
+#~ msgid "From %s on <var>this device</var> with source %s"
+#~ msgstr "來自 %s 位於<var>本裝置</var>源於 %s"
+
+#~ msgid "From %s on <var>this device</var> with source %s and %s"
+#~ msgstr "來自 %s 位於<var>本裝置</var>源埠 %s 源 MAC %s"
+
+#~ msgid "IP"
+#~ msgstr "IP"
+
+#~ msgid "IP range"
+#~ msgstr "IP 範圍"
+
+#~ msgid "IPs"
+#~ msgstr "IP"
+
+#~ msgid "IPv4"
+#~ msgstr "IPv4"
+
+#~ msgid "IPv6"
+#~ msgstr "IPv6"
+
+#~ msgid "MAC"
+#~ msgstr "MAC"
+
+#~ msgid "MACs"
+#~ msgstr "MAC"
+
+#~ msgid "Refuse forward"
+#~ msgstr "拒絕轉發"
+
+#~ msgid "Refuse input"
+#~ msgstr "拒絕入站"
+
+#~ msgid "Refuse output"
+#~ msgstr "拒絕出站"
+
+#~ msgid "To %s at %s on <var>this device</var>"
+#~ msgstr "到 %s 在 %s 位於<var>本裝置</var>"
+
+#~ msgid "To %s in %s"
+#~ msgstr "到 %s 位於 %s"
+
+#~ msgid "To %s on <var>this device</var>"
+#~ msgstr "到 %s 位於<var>本裝置</var>"
+
+#~ msgid "To %s, %s in %s"
+#~ msgstr "到 %s, %s 位於 %s"
+
+#~ msgid "Via %s"
+#~ msgstr "通過 %s"
+
+#~ msgid "Via %s at %s"
+#~ msgstr "通過 %s 在 %s"
+
+#~ msgid "any host"
+#~ msgstr "所有主機"
+
+#~ msgid "any router IP"
+#~ msgstr "所有路由 IP"
+
+#~ msgid "not"
+#~ msgstr "非"
+
+#~ msgid "port"
+#~ msgstr "埠"
+
+#~ msgid "ports"
+#~ msgstr "埠"
+
+#~ msgid "type"
+#~ msgstr "型別"
+
+#~ msgid "types"
+#~ msgstr "型別"
+
#~ msgid "Force connection tracking"
#~ msgstr "強制連線追蹤"