1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Update luci-base and luci-mod-admin-full to latest upstream version

This commit is contained in:
Ycarus 2018-07-03 16:03:20 +02:00
parent e00cf0f4f0
commit 6b6c7e6d7a
75 changed files with 3309 additions and 2564 deletions

View file

@ -14,12 +14,13 @@ LUCI_BASENAME:=base
LUCI_TITLE:=LuCI core libraries LUCI_TITLE:=LuCI core libraries
LUCI_DEPENDS:=+lua +luci-lib-nixio +luci-lib-ip +rpcd +libubus-lua +luci-lib-jsonc +liblucihttp-lua LUCI_DEPENDS:=+lua +luci-lib-nixio +luci-lib-ip +rpcd +libubus-lua +luci-lib-jsonc +liblucihttp-lua
PKG_SOURCE:=LuaSrcDiet-0.12.1.tar.bz2
PKG_SOURCE_URL:=https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/luasrcdiet
PKG_HASH:=ed7680f2896269ae8633756e7edcf09050812f78c8f49e280e63c30d14f35aea
PKG_LICENSE:=Apache-2.0
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/LuaSrcDiet-0.12.1 PKG_SOURCE:=v1.0.0.tar.gz
PKG_SOURCE_URL:=https://github.com/jirutka/luasrcdiet/archive/
PKG_HASH:=48162e63e77d009f5848f18a5cabffbdfc867d0e5e73c6d407f6af5d6880151b
PKG_LICENSE:=MIT
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/luasrcdiet-1.0.0
include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/host-build.mk
@ -36,13 +37,13 @@ endef
define Host/Compile define Host/Compile
$(MAKE) -C src/ clean po2lmo $(MAKE) -C src/ clean po2lmo
$(MAKE) -C $(HOST_BUILD_DIR) bin/LuaSrcDiet.lua $(MAKE) -C $(HOST_BUILD_DIR) bin/luasrcdiet
endef endef
define Host/Install define Host/Install
$(INSTALL_DIR) $(1)/bin $(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) src/po2lmo $(1)/bin/po2lmo $(INSTALL_BIN) src/po2lmo $(1)/bin/po2lmo
$(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/LuaSrcDiet.lua $(1)/bin/LuaSrcDiet $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/luasrcdiet $(1)/bin/luasrcdiet
endef endef
$(eval $(call HostBuild)) $(eval $(call HostBuild))

View file

@ -620,7 +620,11 @@ function cbi_init() {
} }
document.querySelectorAll('.cbi-dropdown').forEach(function(s) { document.querySelectorAll('.cbi-dropdown').forEach(function(s) {
cbi_dropdown_init(s); cbi_dropdown_init(s);
});
document.querySelectorAll('.cbi-tooltip:not(:empty)').forEach(function(s) {
s.parentNode.classList.add('cbi-tooltip-container');
}); });
cbi_d_update(); cbi_d_update();
@ -1232,14 +1236,13 @@ function cbi_validate_field(cbid, optional, type)
function cbi_row_swap(elem, up, store) function cbi_row_swap(elem, up, store)
{ {
var tr = elem.parentNode; var tr = findParent(elem.parentNode, '.cbi-section-table-row');
while (tr && !tr.classList.contains('cbi-section-table-row'))
tr = tr.parentNode;
if (!tr) if (!tr)
return false; return false;
tr.classList.remove('flash');
if (up) { if (up) {
var prev = tr.previousElementSibling; var prev = tr.previousElementSibling;
@ -1277,6 +1280,9 @@ function cbi_row_swap(elem, up, store)
if (input) if (input)
input.value = ids.join(' '); input.value = ids.join(' ');
window.scrollTo(0, tr.offsetTop);
window.setTimeout(function() { tr.classList.add('flash'); }, 1);
return false; return false;
} }
@ -1522,6 +1528,19 @@ function toElem(s)
return elem || null; return elem || null;
} }
function findParent(node, selector)
{
while (node)
if (node.msMatchesSelector && node.msMatchesSelector(selector))
return node;
else if (node.matches && node.matches(selector))
return node;
else
node = node.parentNode;
return null;
}
function E() function E()
{ {
var html = arguments[0], var html = arguments[0],
@ -1541,7 +1560,7 @@ function E()
if (attr) if (attr)
for (var key in attr) for (var key in attr)
if (attr.hasOwnProperty(key)) if (attr.hasOwnProperty(key) && attr[key] !== null && attr[key] !== undefined)
elem.setAttribute(key, attr[key]); elem.setAttribute(key, attr[key]);
if (typeof(data) === 'function') if (typeof(data) === 'function')
@ -1818,18 +1837,6 @@ CBIDropdown = {
document.querySelectorAll('.cbi-dropdown[open]').forEach(function(s) { document.querySelectorAll('.cbi-dropdown[open]').forEach(function(s) {
s.dispatchEvent(new CustomEvent('cbi-dropdown-close', {})); s.dispatchEvent(new CustomEvent('cbi-dropdown-close', {}));
}); });
},
findParent: function(node, selector) {
while (node)
if (node.msMatchesSelector && node.msMatchesSelector(selector))
return node;
else if (node.matches && node.matches(selector))
return node;
else
node = node.parentNode;
return null;
} }
}; };
@ -1908,7 +1915,7 @@ function cbi_dropdown_init(sb) {
sbox.openDropdown(this); sbox.openDropdown(this);
} }
else { else {
var li = sbox.findParent(ev.target, 'li'); var li = findParent(ev.target, 'li');
if (li && li.parentNode.classList.contains('dropdown')) if (li && li.parentNode.classList.contains('dropdown'))
sbox.toggleItem(this, li); sbox.toggleItem(this, li);
} }
@ -1933,7 +1940,7 @@ function cbi_dropdown_init(sb) {
} }
else else
{ {
var active = sbox.findParent(document.activeElement, 'li'); var active = findParent(document.activeElement, 'li');
switch (ev.keyCode) { switch (ev.keyCode) {
case 27: case 27:
@ -1986,7 +1993,7 @@ function cbi_dropdown_init(sb) {
if (!this.hasAttribute('open')) if (!this.hasAttribute('open'))
return; return;
var li = sbox.findParent(ev.target, 'li'); var li = findParent(ev.target, 'li');
if (li) { if (li) {
if (li.parentNode.classList.contains('dropdown')) if (li.parentNode.classList.contains('dropdown'))
sbox.setFocus(this, li); sbox.setFocus(this, li);
@ -2023,18 +2030,18 @@ function cbi_dropdown_init(sb) {
}); });
create.addEventListener('focus', function(ev) { create.addEventListener('focus', function(ev) {
var cbox = sbox.findParent(this, 'li').querySelector('input[type="checkbox"]'); var cbox = findParent(this, 'li').querySelector('input[type="checkbox"]');
if (cbox) cbox.checked = true; if (cbox) cbox.checked = true;
sb.setAttribute('locked-in', ''); sb.setAttribute('locked-in', '');
}); });
create.addEventListener('blur', function(ev) { create.addEventListener('blur', function(ev) {
var cbox = sbox.findParent(this, 'li').querySelector('input[type="checkbox"]'); var cbox = findParent(this, 'li').querySelector('input[type="checkbox"]');
if (cbox) cbox.checked = false; if (cbox) cbox.checked = false;
sb.removeAttribute('locked-in'); sb.removeAttribute('locked-in');
}); });
var li = sbox.findParent(create, 'li'); var li = findParent(create, 'li');
li.setAttribute('unselectable', ''); li.setAttribute('unselectable', '');
li.addEventListener('click', function(ev) { li.addEventListener('click', function(ev) {
@ -2044,3 +2051,77 @@ function cbi_dropdown_init(sb) {
} }
cbi_dropdown_init.prototype = CBIDropdown; cbi_dropdown_init.prototype = CBIDropdown;
function cbi_update_table(table, data, placeholder) {
target = isElem(table) ? table : document.querySelector(table);
if (!isElem(target))
return;
target.querySelectorAll('.tr.table-titles, .cbi-section-table-titles').forEach(function(thead) {
var titles = [];
thead.querySelectorAll('.th').forEach(function(th) {
titles.push(th);
});
if (Array.isArray(data)) {
var n = 0, rows = target.querySelectorAll('.tr');
data.forEach(function(row) {
var trow = E('div', { 'class': 'tr' });
for (var i = 0; i < titles.length; i++) {
var text = titles[i].innerText;
var td = trow.appendChild(E('div', {
'class': titles[i].className,
'data-title': text ? text.trim() : null
}, row[i] || ''));
td.classList.remove('th');
td.classList.add('td');
}
trow.classList.add('cbi-rowstyle-%d'.format((n++ % 2) ? 2 : 1));
if (rows[n])
target.replaceChild(trow, rows[n]);
else
target.appendChild(trow);
});
while (rows[++n])
target.removeChild(rows[n]);
if (placeholder && target.firstElementChild === target.lastElementChild) {
var trow = target.appendChild(E('div', { 'class': 'tr placeholder' }));
var td = trow.appendChild(E('div', { 'class': titles[0].className }, placeholder));
td.classList.remove('th');
td.classList.add('td');
}
}
else {
thead.parentNode.style.display = 'none';
thead.parentNode.querySelectorAll('.tr, .cbi-section-table-row').forEach(function(trow) {
if (trow !== thead) {
var n = 0;
trow.querySelectorAll('.th, .td').forEach(function(td) {
if (n < titles.length) {
var text = (titles[n++].innerText || '').trim();
if (text !== '')
td.setAttribute('data-title', text);
}
});
}
});
thead.parentNode.style.display = '';
}
});
}
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('.table').forEach(cbi_update_table);
});

View file

@ -204,7 +204,6 @@ XHR.poll = function(interval, url, data, callback, post)
}; };
XHR._q.push(e); XHR._q.push(e);
XHR.run();
return e; return e;
} }
@ -260,3 +259,5 @@ XHR.running = function()
{ {
return !!(XHR._r && XHR._i); return !!(XHR._r && XHR._i);
} }
document.addEventListener('DOMContentLoaded', XHR.run);

View file

@ -703,15 +703,22 @@ function _create_node(path)
local last = table.remove(path) local last = table.remove(path)
local parent = _create_node(path) local parent = _create_node(path)
c = {nodes={}, auto=true} c = {nodes={}, auto=true, inreq=true}
-- the node is "in request" if the request path matches
-- at least up to the length of the node path local _, n
if parent.inreq and context.path[#path+1] == last then for _, n in ipairs(path) do
c.inreq = true if context.path[_] ~= n then
c.inreq = false
break
end
end end
c.inreq = c.inreq and (context.path[#path + 1] == last)
parent.nodes[last] = c parent.nodes[last] = c
context.treecache[name] = c context.treecache[name] = c
end end
return c return c
end end

View file

@ -6,9 +6,25 @@ module("luci.tools.status", package.seeall)
local uci = require "luci.model.uci".cursor() local uci = require "luci.model.uci".cursor()
local ipc = require "luci.ip" local ipc = require "luci.ip"
local function duid_to_mac(duid)
local b1, b2, b3, b4, b5, b6
-- DUID-LLT / Ethernet
if type(duid) == "string" and #duid == 28 then
b1, b2, b3, b4, b5, b6 = duid:match("^00010001(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)%x%x%x%x%x%x%x%x$")
-- DUID-LL / Ethernet
elseif type(duid) == "string" and #duid == 20 then
b1, b2, b3, b4, b5, b6 = duid:match("^00030001(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)$")
end
return b1 and ipc.checkmac(table.concat({ b1, b2, b3, b4, b5, b6 }, ":"))
end
local function dhcp_leases_common(family) local function dhcp_leases_common(family)
local rv = { } local rv = { }
local nfs = require "nixio.fs" local nfs = require "nixio.fs"
local sys = require "luci.sys"
local leasefile = "/tmp/dhcp.leases" local leasefile = "/tmp/dhcp.leases"
uci:foreach("dhcp", "dnsmasq", uci:foreach("dhcp", "dnsmasq",
@ -87,6 +103,22 @@ local function dhcp_leases_common(family)
fd:close() fd:close()
end end
if family == 6 then
local _, lease
local hosts = sys.net.host_hints()
for _, lease in ipairs(rv) do
local mac = duid_to_mac(lease.duid)
local host = mac and hosts[mac]
if host then
if not lease.name then
lease.host_hint = host.name or host.ipv4 or host.ipv6
elseif host.name and lease.hostname ~= host.name then
lease.host_hint = host.name
end
end
end
end
return rv return rv
end end
@ -113,6 +145,11 @@ function wifi_networks()
local net local net
for _, net in ipairs(dev:get_wifinets()) do for _, net in ipairs(dev:get_wifinets()) do
local a, an = nil, 0
for _, a in pairs(net:assoclist() or {}) do
an = an + 1
end
rd.networks[#rd.networks+1] = { rd.networks[#rd.networks+1] = {
name = net:shortname(), name = net:shortname(),
link = net:adminlink(), link = net:adminlink(),
@ -128,10 +165,10 @@ function wifi_networks()
noise = net:noise(), noise = net:noise(),
bitrate = net:bitrate(), bitrate = net:bitrate(),
ifname = net:ifname(), ifname = net:ifname(),
assoclist = net:assoclist(),
country = net:country(), country = net:country(),
txpower = net:txpower(), txpower = net:txpower(),
txpoweroff = net:txpower_offset(), txpoweroff = net:txpower_offset(),
num_assoc = an,
disabled = (dev:get("disabled") == "1" or disabled = (dev:get("disabled") == "1" or
net:get("disabled") == "1") net:get("disabled") == "1")
} }
@ -165,7 +202,6 @@ function wifi_network(id)
noise = net:noise(), noise = net:noise(),
bitrate = net:bitrate(), bitrate = net:bitrate(),
ifname = net:ifname(), ifname = net:ifname(),
assoclist = net:assoclist(),
country = net:country(), country = net:country(),
txpower = net:txpower(), txpower = net:txpower(),
txpoweroff = net:txpower_offset(), txpoweroff = net:txpower_offset(),
@ -182,6 +218,52 @@ function wifi_network(id)
return { } return { }
end end
function wifi_assoclist()
local sys = require "luci.sys"
local ntm = require "luci.model.network".init()
local hosts = sys.net.host_hints()
local assoc = {}
local _, dev, net, bss
for _, dev in ipairs(ntm:get_wifidevs()) do
local radioname = dev:get_i18n()
for _, net in ipairs(dev:get_wifinets()) do
local netname = net:shortname()
local netlink = net:adminlink()
local ifname = net:ifname()
for _, bss in pairs(net:assoclist() or {}) do
local host = hosts[_]
bss.bssid = _
bss.ifname = ifname
bss.radio = radioname
bss.name = netname
bss.link = netlink
bss.host_name = (host) and (host.name or host.ipv4 or host.ipv6)
bss.host_hint = (host and host.name and (host.ipv4 or host.ipv6)) and (host.ipv4 or host.ipv6)
assoc[#assoc+1] = bss
end
end
end
table.sort(assoc, function(a, b)
if a.radio ~= b.radio then
return a.radio < b.radio
elseif a.ifname ~= b.ifname then
return a.ifname < b.ifname
else
return a.bssid < b.bssid
end
end)
return assoc
end
function switch_status(devs) function switch_status(devs)
local dev local dev
local switches = { } local switches = { }

View file

@ -47,7 +47,7 @@
} }
</style> </style>
<script type="text/javascript" src="<%=resource%>/cbi.js?v=git-18.138.59467-72fe5dd"></script> <script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[ <script type="text/javascript">//<![CDATA[
var xhr = new XHR(), var xhr = new XHR(),
uci_apply_auth = { sid: '<%=luci.dispatcher.context.authsession%>', token: '<%=token%>' }, uci_apply_auth = { sid: '<%=luci.dispatcher.context.authsession%>', token: '<%=token%>' },

View file

@ -1,6 +1,6 @@
<%+cbi/valueheader%> <%+cbi/valueheader%>
<% if self:cfgvalue(section) ~= false then %> <% if self:cfgvalue(section) ~= false then %>
<input class="cbi-button cbi-input-<%=self.inputstyle or "button" %>" type="submit"<%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> /> <input class="cbi-button cbi-button-<%=self.inputstyle or "button" %>" type="submit"<%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> />
<% else %> <% else %>
- -
<% end %> <% end %>

View file

@ -1,2 +1,10 @@
<div class="td cbi-value-field<% if self.error and self.error[section] then %> cbi-value-error<% end %>"> <%-
local title = luci.util.trim(striptags(self.title))
local ftype = self.template and self.template:gsub("^.+/", "")
-%>
<div class="td cbi-value-field<% if self.error and self.error[section] then %> cbi-value-error<% end %>"<%=
attr("data-name", self.option) ..
ifattr(ftype and #ftype > 0, "data-type", ftype) ..
ifattr(title and #title > 0, "data-title", title)
%>>
<div id="cbi-<%=self.config.."-"..section.."-"..self.option%>" data-index="<%=self.index%>" data-depends="<%=pcdata(self:deplist2json(section))%>"> <div id="cbi-<%=self.config.."-"..section.."-"..self.option%>" data-index="<%=self.index%>" data-depends="<%=pcdata(self:deplist2json(section))%>">

View file

@ -36,6 +36,18 @@
<%=pcdata(self.vallist[i])%> <%=pcdata(self.vallist[i])%>
</li> </li>
<% end %> <% end %>
<% if self.custom then %>
<li>
<input type="password" style="display:none" />
<input class="create-item-input" type="text"<%=
attr("placeholder", self.custom ~= true and
self.custom or
(self.multiple and
translate("Enter custom values") or
translate("Enter custom value")))
%> />
</li>
<% end %>
</ul> </ul>
</div> </div>

View file

@ -14,46 +14,59 @@
local def = fwm:get_defaults() local def = fwm:get_defaults()
local zone = fwm:get_zone(value) local zone = fwm:get_zone(value)
local empty = true local empty = true
local function render_zone(zone)
-%>
<label class="zonebadge" style="background-color:<%=zone:get_color()%>">
<strong><%=zone:name()%></strong>
<div class="cbi-tooltip">
<%-
local zempty = true
for _, net in ipairs(zone:get_networks()) do
net = nwm:get_network(net)
if net then
zempty = false
-%>
<span class="ifacebadge<% if net:name() == self.network then %> ifacebadge-active<% end %>"><%=net:name()%>:&#160;
<%
local nempty = true
for _, iface in ipairs(net:is_bridge() and net:get_interfaces() or { net:get_interface() }) do
nempty = false
%>
<img<%=attr("title", iface:get_i18n())%> src="<%=resource%>/icons/<%=iface:type()%><%=iface:is_up() and "" or "_disabled"%>.png" />
<% end %>
<% if nempty then %><em><%:(empty)%></em><% end %>
</span>
<%- end end -%>
<% if zempty then %><span class="ifacebadge"><em><%:(empty)%></em></span><% end %>
</div>
</label>
<%-
end
-%> -%>
<% if zone then %> <% if zone then %>
<div style="white-space:nowrap"> <div class="zone-forwards">
<label class="zonebadge" style="background-color:<%=zone:get_color()%>"> <div class="zone-src">
<strong><%=zone:name()%>:</strong> <%=render_zone(zone)%>
<%- </div>
local zempty = true <span>&#8658;</span>
for _, net in ipairs(zone:get_networks()) do <div class="zone-dest">
net = nwm:get_network(net) <%
if net then for _, fwd in ipairs(zone:get_forwardings_by("src")) do
zempty = false fz = fwd:dest_zone()
-%> if fz then
<span class="ifacebadge<% if net:name() == self.network then %> ifacebadge-active<% end %>"><%=net:name()%>: empty = false
<% render_zone(fz)
local nempty = true end
for _, iface in ipairs(net:is_bridge() and net:get_interfaces() or { net:get_interface() }) do end
nempty = false if empty then
%> %>
<img<%=attr("title", iface:get_i18n())%> style="width:16px; height:16px; vertical-align:middle" src="<%=resource%>/icons/<%=iface:type()%><%=iface:is_up() and "" or "_disabled"%>.png" />
<% end %>
<% if nempty then %><em><%:(empty)%></em><% end %>
</span>
<%- end end -%>
<%- if zempty then %><em><%:(empty)%></em><% end -%>
</label>
&#160;&#8658;&#160;
<% for _, fwd in ipairs(zone:get_forwardings_by("src")) do
fz = fwd:dest_zone()
if fz then
empty = false %>
<label class="zonebadge" style="background-color:<%=fz:get_color()%>">
<strong><%=fz:name()%></strong>
</label>&#160;
<% end end %>
<% if empty then %>
<label class="zonebadge zonebadge-empty"> <label class="zonebadge zonebadge-empty">
<strong><%=zone:forward():upper()%></strong> <strong><%=zone:forward():upper()%></strong>
</label> </label>
<% end %> <% end %>
</div>
</div> </div>
<% end %> <% end %>

View file

@ -1,9 +1,7 @@
<%- if pageaction then -%> <%- if pageaction then -%>
<div class="cbi-page-actions"> <div class="cbi-page-actions">
<% if redirect and not flow.hidebackbtn then %> <% if redirect and not flow.hidebackbtn then %>
<div style="float:left">
<input class="cbi-button cbi-button-link" type="button" value="<%:Back to Overview%>" onclick="location.href='<%=pcdata(redirect)%>'" /> <input class="cbi-button cbi-button-link" type="button" value="<%:Back to Overview%>" onclick="location.href='<%=pcdata(redirect)%>'" />
</div>
<% end %> <% end %>
<% if flow.skip then %> <% if flow.skip then %>

View file

@ -3,7 +3,6 @@
<br /> <br />
<%- end %> <%- end %>
<div class="cbi-value-description"> <div class="cbi-value-description">
<span class="cbi-value-helpicon"><img src="<%=resource%>/cbi/help.gif" alt="<%:help%>" /></span>
<%=self.description%> <%=self.description%>
</div> </div>
<%- end %> <%- end %>

View file

@ -31,7 +31,6 @@
</li> </li>
<% end %> <% end %>
</ul> </ul>
<br />
<% for i, section in ipairs(self.children) do %> <% for i, section in ipairs(self.children) do %>
<div class="cbi-tabcontainer" id="container.m-<%=self.config%>.<%=section.section or section.sectiontype%>"<% if section.sectiontype ~= self.selected_tab then %> style="display:none"<% end %>> <div class="cbi-tabcontainer" id="container.m-<%=self.config%>.<%=section.section or section.sectiontype%>"<% if section.sectiontype ~= self.selected_tab then %> style="display:none"<% end %>>
<% section:render() %> <% section:render() %>
@ -53,6 +52,4 @@
<% else %> <% else %>
<%- self:render_children() %> <%- self:render_children() %>
<% end %> <% end %>
<br />
</div> </div>

View file

@ -1,5 +1,5 @@
<% if self:cfgvalue(self.section) then section = self.section %> <% if self:cfgvalue(self.section) then section = self.section %>
<fieldset class="cbi-section"> <div class="cbi-section">
<% if self.title and #self.title > 0 then -%> <% if self.title and #self.title > 0 then -%>
<legend><%=self.title%></legend> <legend><%=self.title%></legend>
<%- end %> <%- end %>
@ -15,17 +15,16 @@
<div class="cbi-section-node<% if self.tabs then %> cbi-section-node-tabbed<% end %>" id="cbi-<%=self.config%>-<%=section%>"> <div class="cbi-section-node<% if self.tabs then %> cbi-section-node-tabbed<% end %>" id="cbi-<%=self.config%>-<%=section%>">
<%+cbi/ucisection%> <%+cbi/ucisection%>
</div> </div>
<br /> </div>
</fieldset>
<% elseif self.addremove then %> <% elseif self.addremove then %>
<% if self.template_addremove then include(self.template_addremove) else -%> <% if self.template_addremove then include(self.template_addremove) else -%>
<fieldset class="cbi-section" id="cbi-<%=self.config%>-<%=self.section%>"> <div class="cbi-section" id="cbi-<%=self.config%>-<%=self.section%>">
<% if self.title and #self.title > 0 then -%> <% if self.title and #self.title > 0 then -%>
<legend><%=self.title%></legend> <legend><%=self.title%></legend>
<%- end %> <%- end %>
<div class="cbi-section-descr"><%=self.description%></div> <div class="cbi-section-descr"><%=self.description%></div>
<input type="submit" class="cbi-button cbi-button-add" name="cbi.cns.<%=self.config%>.<%=self.section%>" value="<%:Add%>" /> <input type="submit" class="cbi-button cbi-button-add" name="cbi.cns.<%=self.config%>.<%=self.section%>" value="<%:Add%>" />
</fieldset> </div>
<%- end %> <%- end %>
<% end %> <% end %>
<!-- /nsection --> <!-- /nsection -->

View file

@ -1,4 +1,4 @@
<fieldset class="cbi-section"> <div class="cbi-section">
<% if self.title and #self.title > 0 then -%> <% if self.title and #self.title > 0 then -%>
<legend><%=self.title%></legend> <legend><%=self.title%></legend>
<%- end %> <%- end %>
@ -25,8 +25,7 @@
</div> </div>
<%- end %> <%- end %>
</div> </div>
<br /> </div>
</fieldset>
<%- <%-
if type(self.hidden) == "table" then if type(self.hidden) == "table" then
for k, v in pairs(self.hidden) do for k, v in pairs(self.hidden) do

View file

@ -10,7 +10,6 @@
<% if self.title and #self.title > 0 then %><h2 name="content"><%=self.title%></h2><% end %> <% if self.title and #self.title > 0 then %><h2 name="content"><%=self.title%></h2><% end %>
<% if self.description and #self.description > 0 then %><div class="cbi-map-descr"><%=self.description%></div><% end %> <% if self.description and #self.description > 0 then %><div class="cbi-map-descr"><%=self.description%></div><% end %>
<% self:render_children() %> <% self:render_children() %>
<br />
</div> </div>
<%- if self.message then %> <%- if self.message then %>
<div><%=self.message%></div> <div><%=self.message%></div>
@ -30,9 +29,12 @@
end end
%> %>
<% if redirect then %> <% if redirect then %>
<div style="float:left"> <input class="cbi-button cbi-button-link" type="button" value="<%:Back to Overview%>" onclick="location.href='<%=pcdata(redirect)%>'" />
<input class="cbi-button cbi-button-link" type="button" value="<%:Back to Overview%>" onclick="location.href='<%=pcdata(redirect)%>'" /> <% end %>
</div> <%- if self.cancel ~= false and self.on_cancel then %>
<input class="cbi-button cbi-button-link" type="submit" name="cbi.cancel" value="
<%- if not self.cancel then -%><%-:Cancel-%><%-else-%><%=self.cancel%><%end-%>
" />
<% end %> <% end %>
<%- if self.flow and self.flow.skip then %> <%- if self.flow and self.flow.skip then %>
<input class="cbi-button cbi-button-skip" type="submit" name="cbi.skip" value="<%:Skip%>" /> <input class="cbi-button cbi-button-skip" type="submit" name="cbi.skip" value="<%:Skip%>" />
@ -46,11 +48,6 @@
<input class="cbi-button cbi-button-reset" type="reset" value=" <input class="cbi-button cbi-button-reset" type="reset" value="
<%- if not self.reset then -%><%-:Reset-%><%-else-%><%=self.reset%><%end-%> <%- if not self.reset then -%><%-:Reset-%><%-else-%><%=self.reset%><%end-%>
" /> " />
<% end %>
<%- if self.cancel ~= false and self.on_cancel then %>
<input class="cbi-button cbi-button-reset" type="submit" name="cbi.cancel" value="
<%- if not self.cancel then -%><%-:Cancel-%><%-else-%><%=self.cancel%><%end-%>
" />
<% end %> <% end %>
</div> </div>
</form> </form>

View file

@ -14,10 +14,14 @@ function width(o)
end end
return '' return ''
end end
local anonclass = (not self.anonymous or self.sectiontitle) and "named" or "anonymous"
local titlename = ifattr(not self.anonymous or self.sectiontitle, "data-title", translate("Name"))
-%> -%>
<!-- tblsection --> <!-- tblsection -->
<fieldset class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>"> <div class="cbi-section cbi-tblsection" id="cbi-<%=self.config%>-<%=self.sectiontype%>">
<% if self.title and #self.title > 0 then -%> <% if self.title and #self.title > 0 then -%>
<legend><%=self.title%></legend> <legend><%=self.title%></legend>
<%- end %> <%- end %>
@ -25,121 +29,107 @@ end
<input type="hidden" id="cbi.sts.<%=self.config%>.<%=self.sectiontype%>" name="cbi.sts.<%=self.config%>.<%=self.sectiontype%>" value="" /> <input type="hidden" id="cbi.sts.<%=self.config%>.<%=self.sectiontype%>" name="cbi.sts.<%=self.config%>.<%=self.sectiontype%>" value="" />
<%- end -%> <%- end -%>
<div class="cbi-section-descr"><%=self.description%></div> <div class="cbi-section-descr"><%=self.description%></div>
<div class="cbi-section-node"> <%- local count = 0 -%>
<%- local count = 0 -%> <div class="table cbi-section-table">
<div class="table cbi-section-table"> <div class="tr cbi-section-table-titles <%=anonclass%>"<%=titlename%>>
<div class="tr cbi-section-table-titles"> <%- for i, k in pairs(self.children) do if not k.optional then -%>
<%- if not self.anonymous then -%> <div class="th cbi-section-table-cell"<%=
<%- if self.sectionhead then -%> width(k) ..
<div class="th cbi-section-table-cell"><%=self.sectionhead%></div> attr("data-type", k.template and k.template:gsub("^.+/", "") or "")
<%- else -%> %>>
<div class="th">&#160;</div> <%- if k.titleref then -%><a title="<%=self.titledesc or translate('Go to relevant configuration page')%>" class="cbi-title-ref" href="<%=k.titleref%>"><%- end -%>
<%- end -%> <%-=k.title-%>
<%- count = count +1; end -%> <%- if k.titleref then -%></a><%- end -%>
<%- for i, k in pairs(self.children) do if not k.optional then -%>
<div class="th cbi-section-table-cell"<%=width(k)%>>
<%- if k.titleref then -%><a title="<%=self.titledesc or translate('Go to relevant configuration page')%>" class="cbi-title-ref" href="<%=k.titleref%>"><%- end -%>
<%-=k.title-%>
<%- if k.titleref then -%></a><%- end -%>
</div>
<%- count = count + 1; end; end; if self.sortable then -%>
<div class="th cbi-section-table-cell"><%:Sort%></div>
<%- count = count + 1; end; if self.extedit or self.addremove then -%>
<div class="th cbi-section-table-cell">&#160;</div>
<%- count = count + 1; end -%>
</div> </div>
<div class="tr cbi-section-table-descr"> <%- count = count + 1; end; end; if self.sortable or self.extedit or self.addremove then -%>
<%- if not self.anonymous then -%> <div class="th cbi-section-table-cell cbi-section-actions"></div>
<%- if self.sectiondesc then -%> <%- count = count + 1; end -%>
<div class="th cbi-section-table-cell"><%=self.sectiondesc%></div> </div>
<%- else -%> <div class="tr cbi-section-table-descr <%=anonclass%>">
<div class="th"></div> <%- for i, k in pairs(self.children) do if not k.optional then -%>
<%- end -%> <div class="th cbi-section-table-cell"<%=
<%- end -%> width(k) ..
<%- for i, k in pairs(self.children) do if not k.optional then -%> attr("data-type", k.template and k.template:gsub("^.+/", "") or "")
<div class="th cbi-section-table-cell"<%=width(k)%>><%=k.description%></div> %>><%=k.description%></div>
<%- end; end; if self.sortable then -%> <%- end; end; if self.sortable or self.extedit or self.addremove then -%>
<div class="th cbi-section-table-cell"></div> <div class="th cbi-section-table-cell cbi-section-actions"></div>
<%- end; if self.extedit or self.addremove then -%> <%- end -%>
<div class="th cbi-section-table-cell"></div> </div>
<%- end -%> <%- local isempty, i, k = true, nil, nil
</div> for i, k in ipairs(self:cfgsections()) do
<%- local isempty = true isempty = false
for i, k in ipairs(self:cfgsections()) do
section = k
isempty = false
scope = { valueheader = "cbi/cell_valueheader", valuefooter = "cbi/cell_valuefooter" }
-%>
<div class="tr cbi-section-table-row<% if self.extedit or self.rowcolors then %> cbi-rowstyle-<%=rowstyle()%><% end %>" id="cbi-<%=self.config%>-<%=section%>">
<% if not self.anonymous then -%>
<div class="th"><h3><%=(type(self.sectiontitle) == "function") and self:sectiontitle(section) or k%></h3></div>
<%- end %>
local section = k
<%- local sectionname = striptags((type(self.sectiontitle) == "function") and self:sectiontitle(section) or k)
for k, node in ipairs(self.children) do local sectiontitle = ifattr(sectionname and (not self.anonymous or self.sectiontitle), "data-title", sectionname)
if not node.optional then local colorclass = (self.extedit or self.rowcolors) and " cbi-rowstyle-%d" % rowstyle() or ""
node:render(section, scope or {}) local scope = {
end valueheader = "cbi/cell_valueheader",
valuefooter = "cbi/cell_valuefooter"
}
-%>
<div class="tr cbi-section-table-row<%=colorclass%>" id="cbi-<%=self.config%>-<%=section%>"<%=sectiontitle%>>
<%-
local node
for k, node in ipairs(self.children) do
if not node.optional then
node:render(section, scope or {})
end end
-%> end
-%>
<%- if self.sortable then -%> <%- if self.sortable or self.extedit or self.addremove then -%>
<div class="td cbi-section-table-cell"> <div class="td cbi-section-table-cell nowrap cbi-section-actions">
<input class="cbi-button cbi-button-up" type="button" value="" onclick="return cbi_row_swap(this, true, 'cbi.sts.<%=self.config%>.<%=self.sectiontype%>')" alt="<%:Move up%>" title="<%:Move up%>" /> <%- if self.sortable then -%>
<input class="cbi-button cbi-button-down" type="button" value="" onclick="return cbi_row_swap(this, false, 'cbi.sts.<%=self.config%>.<%=self.sectiontype%>')" alt="<%:Move down%>" title="<%:Move down%>" /> <input class="cbi-button cbi-button-up" type="button" value="<%:Up%>" onclick="return cbi_row_swap(this, true, 'cbi.sts.<%=self.config%>.<%=self.sectiontype%>')" title="<%:Move up%>" />
</div> <input class="cbi-button cbi-button-down" type="button" value="<%:Down%>" onclick="return cbi_row_swap(this, false, 'cbi.sts.<%=self.config%>.<%=self.sectiontype%>')" title="<%:Move down%>" />
<%- end -%> <% end; if self.extedit then -%>
<input class="cbi-button cbi-button-edit" type="button" value="<%:Edit%>"
<%- if self.extedit or self.addremove then -%> <%- if type(self.extedit) == "string" then
<div class="td cbi-section-table-cell"> %> onclick="location.href='<%=self.extedit:format(section)%>'"
<%- if self.extedit then -%> <%- elseif type(self.extedit) == "function" then
<input class="cbi-button cbi-button-edit" type="button" value="<%:Edit%>" %> onclick="location.href='<%=self:extedit(section)%>'"
<%- if type(self.extedit) == "string" then <%- end
%> onclick="location.href='<%=self.extedit:format(section)%>'" %> alt="<%:Edit%>" title="<%:Edit%>" />
<%- elseif type(self.extedit) == "function" then <% end; if self.addremove then %>
%> onclick="location.href='<%=self:extedit(section)%>'" <input class="cbi-button cbi-button-remove" type="submit" value="<%:Delete%>" onclick="this.form.cbi_state='del-section'; return true" name="cbi.rts.<%=self.config%>.<%=k%>" alt="<%:Delete%>" title="<%:Delete%>" />
<%- end <%- end -%>
%> alt="<%:Edit%>" title="<%:Edit%>" /> </div>
<%- end; if self.addremove then %>
<input class="cbi-button cbi-button-remove" type="submit" value="<%:Delete%>" onclick="this.form.cbi_state='del-section'; return true" name="cbi.rts.<%=self.config%>.<%=k%>" alt="<%:Delete%>" title="<%:Delete%>" />
<%- end -%>
</div>
<%- end -%>
</div>
<%- end -%>
<%- if isempty then -%>
<div class="tr cbi-section-table-row">
<div class="td" colspan="<%=count%>"><em><br /><%:This section contains no values yet%></em></div>
</div>
<%- end -%> <%- end -%>
</div> </div>
<%- end -%>
<% if self.error then %> <%- if isempty then -%>
<div class="cbi-section-error"> <div class="tr cbi-section-table-row placeholder">
<ul><% for _, c in pairs(self.error) do for _, e in ipairs(c) do -%> <div class="td"><em><%:This section contains no values yet%></em></div>
<li><%=pcdata(e):gsub("\n","<br />")%></li> </div>
<%- end end %></ul>
</div>
<% end %>
<%- if self.addremove then -%>
<% if self.template_addremove then include(self.template_addremove) else -%>
<div class="cbi-section-create cbi-tblsection-create">
<% if self.anonymous then %>
<input class="cbi-button cbi-button-add" type="submit" value="<%:Add%>" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" title="<%:Add%>" />
<% else %>
<% if self.invalid_cts then -%><div class="cbi-section-error"><% end %>
<input type="text" class="cbi-section-create-name" id="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" data-type="uciname" data-optional="true" />
<input class="cbi-button cbi-button-add" type="submit" onclick="this.form.cbi_state='add-section'; return true" value="<%:Add%>" title="<%:Add%>" />
<% if self.invalid_cts then -%>
<br /><%:Invalid%></div>
<%- end %>
<% end %>
</div>
<%- end %>
<%- end -%> <%- end -%>
</div> </div>
</fieldset>
<% if self.error then %>
<div class="cbi-section-error">
<ul><% for _, c in pairs(self.error) do for _, e in ipairs(c) do -%>
<li><%=pcdata(e):gsub("\n","<br />")%></li>
<%- end end %></ul>
</div>
<% end %>
<%- if self.addremove then -%>
<% if self.template_addremove then include(self.template_addremove) else -%>
<div class="cbi-section-create cbi-tblsection-create">
<% if self.anonymous then %>
<input class="cbi-button cbi-button-add" type="submit" value="<%:Add%>" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" title="<%:Add%>" />
<% else %>
<% if self.invalid_cts then -%>
<div class="cbi-section-error"><%:Invalid%></div>
<%- end %>
<div>
<input type="text" class="cbi-section-create-name" id="cbi.cts.<%=self.config%>.<%=self.sectiontype%>." name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>." data-type="uciname" data-optional="true" />
</div>
<input class="cbi-button cbi-button-add" type="submit" onclick="this.form.cbi_state='add-section'; return true" value="<%:Add%>" title="<%:Add%>" />
<% end %>
</div>
<%- end %>
<%- end -%>
</div>
<!-- /tblsection --> <!-- /tblsection -->

View file

@ -1,4 +1,4 @@
<fieldset class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>"> <div class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>">
<% if self.title and #self.title > 0 then -%> <% if self.title and #self.title > 0 then -%>
<legend><%=self.title%></legend> <legend><%=self.title%></legend>
<%- end %> <%- end %>
@ -20,10 +20,9 @@
<%+cbi/tabmenu%> <%+cbi/tabmenu%>
<fieldset class="cbi-section-node<% if self.tabs then %> cbi-section-node-tabbed<% end %>" id="cbi-<%=self.config%>-<%=section%>"> <div class="cbi-section-node<% if self.tabs then %> cbi-section-node-tabbed<% end %>" id="cbi-<%=self.config%>-<%=section%>">
<%+cbi/ucisection%> <%+cbi/ucisection%>
</fieldset> </div>
<br />
<%- end %> <%- end %>
<% if isempty then -%> <% if isempty then -%>
@ -36,14 +35,15 @@
<% if self.anonymous then -%> <% if self.anonymous then -%>
<input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" /> <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" />
<%- else -%> <%- else -%>
<% if self.invalid_cts then -%><div class="cbi-section-error"><% end %>
<input type="text" class="cbi-section-create-name" id="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" data-type="uciname" data-optional="true" />
<input type="submit" class="cbi-button cbi-button-add" onclick="this.form.cbi_state='add-section'; return true" value="<%:Add%>" />
<% if self.invalid_cts then -%> <% if self.invalid_cts then -%>
<br /><%:Invalid%></div> <div class="cbi-section-error"><%:Invalid%></div>
<%- end %> <%- end %>
<div>
<input type="text" class="cbi-section-create-name" id="cbi.cts.<%=self.config%>.<%=self.sectiontype%>." name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>." data-type="uciname" data-optional="true" />
</div>
<input class="cbi-button cbi-button-add" type="submit" onclick="this.form.cbi_state='add-section'; return true" value="<%:Add%>" title="<%:Add%>" />
<%- end %> <%- end %>
</div> </div>
<%- end %> <%- end %>
<%- end %> <%- end %>
</fieldset> </div>

View file

@ -8,7 +8,7 @@
<%:Uploaded File%> (<%=t.byte_format(s.size)%>) <%:Uploaded File%> (<%=t.byte_format(s.size)%>)
<% if self.unsafeupload then %> <% if self.unsafeupload then %>
<input type="hidden"<%= attr("value", v) .. attr("name", cbid) .. attr("id", cbid) %> /> <input type="hidden"<%= attr("value", v) .. attr("name", cbid) .. attr("id", cbid) %> />
<input class="cbi-button cbi-input-image" type="image" value="<%:Replace entry%>" name="cbi.rlf.<%=section .. "." .. self.option%>" alt="<%:Replace entry%>" title="<%:Replace entry%>" src="<%=resource%>/cbi/reload.gif" /> <input class="cbi-button cbi-button-image" type="image" value="<%:Replace entry%>" name="cbi.rlf.<%=section .. "." .. self.option%>" alt="<%:Replace entry%>" title="<%:Replace entry%>" src="<%=resource%>/cbi/reload.gif" />
<% end %> <% end %>
<% end %> <% end %>

View file

@ -18,23 +18,23 @@
<div class="cbi-map-descr"> <div class="cbi-map-descr">
<%:Please enter your username and password.%> <%:Please enter your username and password.%>
</div> </div>
<fieldset class="cbi-section"><fieldset class="cbi-section-node"> <div class="cbi-section"><div class="cbi-section-node">
<div class="cbi-value"> <div class="cbi-value">
<label class="cbi-value-title"><%:Username%></label> <label class="cbi-value-title"><%:Username%></label>
<div class="cbi-value-field"> <div class="cbi-value-field">
<input class="cbi-input-user" type="text" name="luci_username" value="<%=duser%>" /> <input class="cbi-input-text" type="text" name="luci_username" value="<%=duser%>" />
</div> </div>
</div> </div>
<div class="cbi-value cbi-value-last"> <div class="cbi-value cbi-value-last">
<label class="cbi-value-title"><%:Password%></label> <label class="cbi-value-title"><%:Password%></label>
<div class="cbi-value-field"> <div class="cbi-value-field">
<input class="cbi-input-password" type="password" name="luci_password" /> <input class="cbi-input-text" type="password" name="luci_password" />
</div> </div>
</div> </div>
</fieldset></fieldset> </div></div>
</div> </div>
<div> <div class="cbi-page-actions">
<input type="submit" value="<%:Login%>" class="cbi-button cbi-button-apply" /> <input type="submit" value="<%:Login%>" class="cbi-button cbi-button-apply" />
<input type="reset" value="<%:Reset%>" class="cbi-button cbi-button-reset" /> <input type="reset" value="<%:Reset%>" class="cbi-button cbi-button-reset" />
</div> </div>

View file

@ -49,6 +49,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Càrrega d'1 minut:" msgstr "Càrrega d'1 minut:"
@ -761,9 +764,6 @@ msgstr ""
"Personalitza el comportament dels <abbr title=\"Light Emitting Diode\">LED</" "Personalitza el comportament dels <abbr title=\"Light Emitting Diode\">LED</"
"abbr>s del dispositiu, si és possible." "abbr>s del dispositiu, si és possible."
msgid "DHCP Leases"
msgstr "Arrendaments DHCP"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "Servidor DHCP" msgstr "Servidor DHCP"
@ -776,9 +776,6 @@ msgstr "Client DHCP"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Opcions DHCP" msgstr "Opcions DHCP"
msgid "DHCPv6 Leases"
msgstr "Arrendaments DHCPv6"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -966,6 +963,9 @@ msgstr ""
"No reenviïs les peticions <abbr title=\"Domain Name System\">DNS</abbr> " "No reenviïs les peticions <abbr title=\"Domain Name System\">DNS</abbr> "
"sense el nom <abbr title=\"Domain Name System\">DNS</abbr>" "sense el nom <abbr title=\"Domain Name System\">DNS</abbr>"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Descarrega i instal·la el paquet" msgstr "Descarrega i instal·la el paquet"
@ -1079,6 +1079,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "" msgstr ""
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "" msgstr ""
@ -1111,6 +1114,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Esborrant..." msgstr "Esborrant..."
@ -1293,7 +1302,7 @@ msgstr "Espai lliure"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2590,12 +2599,12 @@ msgstr ""
"\"Dynamic Host Configuration Protocol\">DHCP</abbr>" "\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2603,12 +2612,12 @@ msgid "Really reset all changes?"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2946,9 +2955,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr "Ordena"
msgid "Source" msgid "Source"
msgstr "Origen" msgstr "Origen"
@ -3454,6 +3460,9 @@ msgstr "Canvis sense desar"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Tipus de protocol no suportat." msgstr "Tipus de protocol no suportat."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Actualitza les llistes" msgstr "Actualitza les llistes"
@ -3714,6 +3723,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "pontejat" msgstr "pontejat"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "crea:" msgstr "crea:"
@ -3751,9 +3763,6 @@ msgstr ""
msgid "half-duplex" msgid "half-duplex"
msgstr "" msgstr ""
msgid "help"
msgstr "ajuda"
msgid "hidden" msgid "hidden"
msgstr "amagat" msgstr "amagat"
@ -3802,6 +3811,9 @@ msgstr "engegat"
msgid "open" msgid "open"
msgstr "obert" msgstr "obert"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3853,6 +3865,18 @@ msgstr "sí"
msgid "« Back" msgid "« Back"
msgstr "« Enrere" msgstr "« Enrere"
#~ msgid "DHCP Leases"
#~ msgstr "Arrendaments DHCP"
#~ msgid "DHCPv6 Leases"
#~ msgstr "Arrendaments DHCPv6"
#~ msgid "Sort"
#~ msgstr "Ordena"
#~ msgid "help"
#~ msgstr "ajuda"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "Estat WAN IPv4" #~ msgstr "Estat WAN IPv4"

View file

@ -47,6 +47,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Zatížení za 1 minutu:" msgstr "Zatížení za 1 minutu:"
@ -755,9 +758,6 @@ msgstr ""
"Upraví chování <abbr title=\"Light Emitting Diode\">LED</abbr> diod zařízení " "Upraví chování <abbr title=\"Light Emitting Diode\">LED</abbr> diod zařízení "
"pokud je to možné." "pokud je to možné."
msgid "DHCP Leases"
msgstr "DHCP výpůjčky"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCP server" msgstr "DHCP server"
@ -770,9 +770,6 @@ msgstr "DHCP klient"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Volby DHCP" msgstr "Volby DHCP"
msgid "DHCPv6 Leases"
msgstr "DHCPv6 přidělené IP"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -964,6 +961,9 @@ msgstr ""
"Nepřeposílat <abbr title=\"Domain Name System\">DNS</abbr> dotazy bez <abbr " "Nepřeposílat <abbr title=\"Domain Name System\">DNS</abbr> dotazy bez <abbr "
"title=\"Domain Name System\">DNS</abbr> jména" "title=\"Domain Name System\">DNS</abbr> jména"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Stáhnout a nainstalovat balíček" msgstr "Stáhnout a nainstalovat balíček"
@ -1079,6 +1079,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Povolit tento přípojný bod" msgstr "Povolit tento přípojný bod"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Povolit tento swapovací oddíl" msgstr "Povolit tento swapovací oddíl"
@ -1111,6 +1114,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Odstraňování..." msgstr "Odstraňování..."
@ -1295,7 +1304,7 @@ msgstr "Volné místo"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2601,15 +2610,12 @@ msgstr ""
"Host Configuration Protocol\">DHCP</abbr> Serveru" "Host Configuration Protocol\">DHCP</abbr> Serveru"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"Opravdu odstranit toto rozhraní? Odstranění nelze vrátit zpět!\n"
"Můžete ztratit přístup k zařízení, pokud jste připojeni prostřednictvím "
"tohoto rozhraní."
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"Opravdu odstranit bezdrátovou síť? Odstranění nelze vrátit zpět!\n" "Opravdu odstranit bezdrátovou síť? Odstranění nelze vrátit zpět!\n"
@ -2619,17 +2625,13 @@ msgstr ""
msgid "Really reset all changes?" msgid "Really reset all changes?"
msgstr "Opravdu resetovat všechny změny?" msgstr "Opravdu resetovat všechny změny?"
#, fuzzy
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"Opravdu vypnout síť ?\n"
"Můžete ztratit přístup k zařízení, pokud jste připojeni prostřednictvím "
"tohoto rozhraní."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"Opravdu vypnout rozhraní \"%s\" ?\n" "Opravdu vypnout rozhraní \"%s\" ?\n"
@ -2975,9 +2977,6 @@ msgstr ""
"systému. Nový obraz firmwaru musí být zapsán ručně. Prosím, obraťte se na " "systému. Nový obraz firmwaru musí být zapsán ručně. Prosím, obraťte se na "
"wiki pro zařízení specifické instalační instrukce." "wiki pro zařízení specifické instalační instrukce."
msgid "Sort"
msgstr "Seřadit"
msgid "Source" msgid "Source"
msgstr "Zdroj" msgstr "Zdroj"
@ -3494,6 +3493,9 @@ msgstr "Neuložené změny"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Nepodporovaný typ protokolu." msgstr "Nepodporovaný typ protokolu."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Aktualizovat seznamy" msgstr "Aktualizovat seznamy"
@ -3755,6 +3757,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "přemostěný" msgstr "přemostěný"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "" msgstr ""
@ -3792,9 +3797,6 @@ msgstr "plný-duplex"
msgid "half-duplex" msgid "half-duplex"
msgstr "poloviční-duplex" msgstr "poloviční-duplex"
msgid "help"
msgstr "pomoc"
msgid "hidden" msgid "hidden"
msgstr "skrytý" msgstr "skrytý"
@ -3843,6 +3845,9 @@ msgstr "on"
msgid "open" msgid "open"
msgstr "" msgstr ""
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3894,6 +3899,35 @@ msgstr "ano"
msgid "« Back" msgid "« Back"
msgstr "« Zpět" msgstr "« Zpět"
#~ msgid "DHCP Leases"
#~ msgstr "DHCP výpůjčky"
#~ msgid "DHCPv6 Leases"
#~ msgstr "DHCPv6 přidělené IP"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "Opravdu odstranit toto rozhraní? Odstranění nelze vrátit zpět!\n"
#~ "Můžete ztratit přístup k zařízení, pokud jste připojeni prostřednictvím "
#~ "tohoto rozhraní."
#, fuzzy
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "Opravdu vypnout síť ?\n"
#~ "Můžete ztratit přístup k zařízení, pokud jste připojeni prostřednictvím "
#~ "tohoto rozhraní."
#~ msgid "Sort"
#~ msgstr "Seřadit"
#~ msgid "help"
#~ msgstr "pomoc"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "Stav IPv4 WAN" #~ msgstr "Stav IPv4 WAN"

View file

@ -49,6 +49,9 @@ msgstr "-- anhand Label selektieren --"
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "-- UUID vergleichen --" msgstr "-- UUID vergleichen --"
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Systemlast (1 Minute):" msgstr "Systemlast (1 Minute):"
@ -777,9 +780,6 @@ msgid ""
"\">LED</abbr>s if possible." "\">LED</abbr>s if possible."
msgstr "Passt das Verhalten der Geräte-LEDs an - wenn dies möglich ist." msgstr "Passt das Verhalten der Geräte-LEDs an - wenn dies möglich ist."
msgid "DHCP Leases"
msgstr "DHCP-Leases"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCP-Server" msgstr "DHCP-Server"
@ -792,9 +792,6 @@ msgstr "DHCP Client"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCP-Optionen" msgstr "DHCP-Optionen"
msgid "DHCPv6 Leases"
msgstr "DHCPv6-Leases"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "DHCPv6 Client" msgstr "DHCPv6 Client"
@ -987,6 +984,9 @@ msgid ""
"<abbr title=\"Domain Name System\">DNS</abbr>-Name" "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
msgstr "Anfragen ohne Domainnamen nicht weiterleiten" msgstr "Anfragen ohne Domainnamen nicht weiterleiten"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Paket herunterladen und installieren" msgstr "Paket herunterladen und installieren"
@ -1104,6 +1104,9 @@ msgstr "Das DF-Bit (Nicht fragmentieren) auf gekapselten Paketen setzen."
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Diesen Mountpunkt aktivieren" msgstr "Diesen Mountpunkt aktivieren"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Diesen Auslagerungsspeicher aktivieren" msgstr "Diesen Auslagerungsspeicher aktivieren"
@ -1138,6 +1141,12 @@ msgstr "Entfernter Server"
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "Entfernter Port" msgstr "Entfernter Port"
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Lösche..." msgstr "Lösche..."
@ -1328,10 +1337,10 @@ msgstr "Freier Platz"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
"Weitere Informationen zu WireGuard-Schnittstellen und Peers unter <a href=" "Weitere Informationen zu WireGuard-Schnittstellen und Peers unter <a href="
"\"http://wireguard.io\">wireguard.io</a>." "\"http://wireguard.com\">wireguard.com</a>."
msgid "GHz" msgid "GHz"
msgstr "GHz" msgstr "GHz"
@ -2681,16 +2690,12 @@ msgid ""
msgstr "Lese Informationen aus /etc/ethers um den DHCP-Server zu konfigurieren" msgstr "Lese Informationen aus /etc/ethers um den DHCP-Server zu konfigurieren"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"Diese Schnittstelle wirklich löschen? Der Schritt kann nicht rückgängig "
"gemacht werden!\n"
"Der Zugriff auf das Gerät könnte verlorengehen wenn Sie über diese "
"Schnittstelle verbunden sind."
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"Dieses Drahtlosnetzwerk wirklich löschen? Der Schritt kann nicht rückgängig " "Dieses Drahtlosnetzwerk wirklich löschen? Der Schritt kann nicht rückgängig "
@ -2701,17 +2706,13 @@ msgstr ""
msgid "Really reset all changes?" msgid "Really reset all changes?"
msgstr "Sollen wirklich alle Änderungen verworfen werden?" msgstr "Sollen wirklich alle Änderungen verworfen werden?"
#, fuzzy
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"Das Netzwerk wirklich herunterfahren?\n"
"Der Zugriff auf das Gerät könnte verlorengehen wenn Sie über diese "
"Schnittstelle verbunden sind."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"Die Schnitstelle \"%s\" wirklich herunterfahren?\n" "Die Schnitstelle \"%s\" wirklich herunterfahren?\n"
@ -3070,9 +3071,6 @@ msgstr ""
"geflasht werden. Weitere Informationen sowie gerätespezifische " "geflasht werden. Weitere Informationen sowie gerätespezifische "
"Installationsanleitungen entnehmen Sie bitte dem Wiki." "Installationsanleitungen entnehmen Sie bitte dem Wiki."
msgid "Sort"
msgstr "Sortieren"
msgid "Source" msgid "Source"
msgstr "Quelle" msgstr "Quelle"
@ -3623,6 +3621,9 @@ msgstr "Ungespeicherte Änderungen"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Nicht unterstützter Protokolltyp." msgstr "Nicht unterstützter Protokolltyp."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Listen aktualisieren" msgstr "Listen aktualisieren"
@ -3893,6 +3894,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "bridged" msgstr "bridged"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "erstelle:" msgstr "erstelle:"
@ -3928,9 +3932,6 @@ msgstr "Voll-Duplex"
msgid "half-duplex" msgid "half-duplex"
msgstr "Halb-Duplex" msgstr "Halb-Duplex"
msgid "help"
msgstr "Hilfe"
msgid "hidden" msgid "hidden"
msgstr "versteckt" msgstr "versteckt"
@ -3979,6 +3980,9 @@ msgstr "ein"
msgid "open" msgid "open"
msgstr "offen" msgstr "offen"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "Overlay" msgstr "Overlay"
@ -4030,6 +4034,36 @@ msgstr "ja"
msgid "« Back" msgid "« Back"
msgstr "« Zurück" msgstr "« Zurück"
#~ msgid "DHCP Leases"
#~ msgstr "DHCP-Leases"
#~ msgid "DHCPv6 Leases"
#~ msgstr "DHCPv6-Leases"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "Diese Schnittstelle wirklich löschen? Der Schritt kann nicht rückgängig "
#~ "gemacht werden!\n"
#~ "Der Zugriff auf das Gerät könnte verlorengehen wenn Sie über diese "
#~ "Schnittstelle verbunden sind."
#, fuzzy
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "Das Netzwerk wirklich herunterfahren?\n"
#~ "Der Zugriff auf das Gerät könnte verlorengehen wenn Sie über diese "
#~ "Schnittstelle verbunden sind."
#~ msgid "Sort"
#~ msgstr "Sortieren"
#~ msgid "help"
#~ msgstr "Hilfe"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "IPv4 WAN Status" #~ msgstr "IPv4 WAN Status"

View file

@ -49,6 +49,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Φορτίο 1 λεπτού:" msgstr "Φορτίο 1 λεπτού:"
@ -764,9 +767,6 @@ msgstr ""
"Ρυθμίζει, αν είναι δυνατόν, την συμπεριφορά των <abbr title=\"Light Emitting " "Ρυθμίζει, αν είναι δυνατόν, την συμπεριφορά των <abbr title=\"Light Emitting "
"Diode\">LED</abbr> της συσκευής." "Diode\">LED</abbr> της συσκευής."
msgid "DHCP Leases"
msgstr "DHCP Leases"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "Εξυπηρετητής DHCP" msgstr "Εξυπηρετητής DHCP"
@ -779,9 +779,6 @@ msgstr "Πελάτης DHCP"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Επιλογές DHCP" msgstr "Επιλογές DHCP"
msgid "DHCPv6 Leases"
msgstr ""
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -975,6 +972,9 @@ msgstr ""
"Να μην προωθούνται ερωτήματα <abbr title=\"Domain Name System\">DNS</abbr> " "Να μην προωθούνται ερωτήματα <abbr title=\"Domain Name System\">DNS</abbr> "
"χωρίς όνομα τομέα <abbr title=\"Domain Name System\">DNS</abbr>" "χωρίς όνομα τομέα <abbr title=\"Domain Name System\">DNS</abbr>"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Κατέβασμα και εγκατάσταση πακέτου" msgstr "Κατέβασμα και εγκατάσταση πακέτου"
@ -1091,6 +1091,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Ενεργοποίηση αυτής της προσάρτησης" msgstr "Ενεργοποίηση αυτής της προσάρτησης"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Ενεργοποίηση αυτής της swap" msgstr "Ενεργοποίηση αυτής της swap"
@ -1123,6 +1126,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Διαγράφεται..." msgstr "Διαγράφεται..."
@ -1309,7 +1318,7 @@ msgstr "Ελεύθερος χώρος"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2607,12 +2616,12 @@ msgstr ""
"εξυπηρετητή <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>" "εξυπηρετητή <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2620,12 +2629,12 @@ msgid "Really reset all changes?"
msgstr "Αρχικοποίηση όλων των αλλαγών;" msgstr "Αρχικοποίηση όλων των αλλαγών;"
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2964,9 +2973,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr "Ταξινόμηση"
msgid "Source" msgid "Source"
msgstr "Πηγή" msgstr "Πηγή"
@ -3453,6 +3459,9 @@ msgstr "Μη-αποθηκευμένες Αλλαγές"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "" msgstr ""
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "" msgstr ""
@ -3706,6 +3715,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "" msgstr ""
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "" msgstr ""
@ -3744,9 +3756,6 @@ msgstr ""
msgid "half-duplex" msgid "half-duplex"
msgstr "" msgstr ""
msgid "help"
msgstr "βοήθεια"
msgid "hidden" msgid "hidden"
msgstr "" msgstr ""
@ -3795,6 +3804,9 @@ msgstr "ανοιχτό"
msgid "open" msgid "open"
msgstr "" msgstr ""
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3846,6 +3858,15 @@ msgstr "ναι"
msgid "« Back" msgid "« Back"
msgstr "« Πίσω" msgstr "« Πίσω"
#~ msgid "DHCP Leases"
#~ msgstr "DHCP Leases"
#~ msgid "Sort"
#~ msgstr "Ταξινόμηση"
#~ msgid "help"
#~ msgstr "βοήθεια"
#~ msgid "IPv6 WAN Status" #~ msgid "IPv6 WAN Status"
#~ msgstr "Κατάσταση IPv6 WAN" #~ msgstr "Κατάσταση IPv6 WAN"

View file

@ -49,6 +49,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "1 Minute Load:" msgstr "1 Minute Load:"
@ -751,9 +754,6 @@ msgstr ""
"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode" "Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
"\">LED</abbr>s if possible." "\">LED</abbr>s if possible."
msgid "DHCP Leases"
msgstr "DHCP Leases"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCP Server" msgstr "DHCP Server"
@ -766,9 +766,6 @@ msgstr "DHCP client"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCP-Options" msgstr "DHCP-Options"
msgid "DHCPv6 Leases"
msgstr ""
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -957,6 +954,9 @@ msgstr ""
"Don&#39;t forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests " "Don&#39;t forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests "
"without <abbr title=\"Domain Name System\">DNS</abbr>-Name" "without <abbr title=\"Domain Name System\">DNS</abbr>-Name"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Download and install package" msgstr "Download and install package"
@ -1070,6 +1070,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "" msgstr ""
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "" msgstr ""
@ -1102,6 +1105,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "" msgstr ""
@ -1284,7 +1293,7 @@ msgstr ""
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2573,12 +2582,12 @@ msgstr ""
"Configuration Protocol\">DHCP</abbr>-Server" "Configuration Protocol\">DHCP</abbr>-Server"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2586,12 +2595,12 @@ msgid "Really reset all changes?"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2928,9 +2937,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr ""
msgid "Source" msgid "Source"
msgstr "Source" msgstr "Source"
@ -3410,6 +3416,9 @@ msgstr "Unsaved Changes"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "" msgstr ""
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "" msgstr ""
@ -3664,6 +3673,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "" msgstr ""
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "" msgstr ""
@ -3701,9 +3713,6 @@ msgstr ""
msgid "half-duplex" msgid "half-duplex"
msgstr "" msgstr ""
msgid "help"
msgstr "help"
msgid "hidden" msgid "hidden"
msgstr "" msgstr ""
@ -3752,6 +3761,9 @@ msgstr ""
msgid "open" msgid "open"
msgstr "" msgstr ""
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3803,6 +3815,12 @@ msgstr ""
msgid "« Back" msgid "« Back"
msgstr "« Back" msgstr "« Back"
#~ msgid "DHCP Leases"
#~ msgstr "DHCP Leases"
#~ msgid "help"
#~ msgstr "help"
#~ msgid "Apply" #~ msgid "Apply"
#~ msgstr "Apply" #~ msgstr "Apply"

View file

@ -49,6 +49,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Carga a 1 minuto:" msgstr "Carga a 1 minuto:"
@ -760,9 +763,6 @@ msgstr ""
"Personaliza el comportamiento de los <abbr title=\"Light Emitting Diode" "Personaliza el comportamiento de los <abbr title=\"Light Emitting Diode"
"\">LED</abbr>s del dispositivo, si es posible." "\">LED</abbr>s del dispositivo, si es posible."
msgid "DHCP Leases"
msgstr "Cesiones DHCP"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "Servidor DHCP" msgstr "Servidor DHCP"
@ -775,9 +775,6 @@ msgstr "Cliente DHCP"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Opciones de DHCP" msgstr "Opciones de DHCP"
msgid "DHCPv6 Leases"
msgstr "Cesiones DHCPv6"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -970,6 +967,9 @@ msgstr ""
"No reenviar peticiones de <abbr title=\"Domain Name System\">DNS</abbr> sin " "No reenviar peticiones de <abbr title=\"Domain Name System\">DNS</abbr> sin "
"un nombre de <abbr title=\"Domain Name System\">DNS</abbr>" "un nombre de <abbr title=\"Domain Name System\">DNS</abbr>"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Descargar e instalar paquete" msgstr "Descargar e instalar paquete"
@ -1085,6 +1085,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Active este punto de montaje" msgstr "Active este punto de montaje"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Activar este swap" msgstr "Activar este swap"
@ -1117,6 +1120,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Borrando..." msgstr "Borrando..."
@ -1303,7 +1312,7 @@ msgstr "Espacio libre"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2615,16 +2624,12 @@ msgstr ""
"\"Dynamic Host Configuration Protocol\">DHCP</abbr>" "\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"¿Está seguro de borrar esta interfaz?. ¡No será posible deshacer el "
"borrado!\n"
"Puede perder el acceso a este dispositivo si está conectado por esta "
"interfaz."
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"¿Está seguro de borrar esta red inalámbrica?. ¡No será posible deshacer el " "¿Está seguro de borrar esta red inalámbrica?. ¡No será posible deshacer el "
@ -2634,16 +2639,13 @@ msgstr ""
msgid "Really reset all changes?" msgid "Really reset all changes?"
msgstr "¿Está seguro de querer reiniciar todos los cambios?" msgstr "¿Está seguro de querer reiniciar todos los cambios?"
#, fuzzy
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"¿Está seguro de querer apagar esta red?.\n"
"Puede perder el acceso a este dispositivo si está conectado por esta red."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"¿Está seguro de apagar la interfaz \"%s\"?.\n" "¿Está seguro de apagar la interfaz \"%s\"?.\n"
@ -2988,9 +2990,6 @@ msgstr ""
"grabarse manualmente. Por favor, mire el wiki para instrucciones de " "grabarse manualmente. Por favor, mire el wiki para instrucciones de "
"instalación específicas." "instalación específicas."
msgid "Sort"
msgstr "Ordenar"
msgid "Source" msgid "Source"
msgstr "Origen" msgstr "Origen"
@ -3519,6 +3518,9 @@ msgstr "Cambios no guardados"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Tipo de protocolo no soportado." msgstr "Tipo de protocolo no soportado."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Actualizar listas" msgstr "Actualizar listas"
@ -3782,6 +3784,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "puenteado" msgstr "puenteado"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "crear:" msgstr "crear:"
@ -3819,9 +3824,6 @@ msgstr "full dúplex"
msgid "half-duplex" msgid "half-duplex"
msgstr "half dúplex" msgstr "half dúplex"
msgid "help"
msgstr "ayuda"
msgid "hidden" msgid "hidden"
msgstr "oculto" msgstr "oculto"
@ -3870,6 +3872,9 @@ msgstr "activo"
msgid "open" msgid "open"
msgstr "abierto" msgstr "abierto"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3921,6 +3926,35 @@ msgstr "sí"
msgid "« Back" msgid "« Back"
msgstr "« Volver" msgstr "« Volver"
#~ msgid "DHCP Leases"
#~ msgstr "Cesiones DHCP"
#~ msgid "DHCPv6 Leases"
#~ msgstr "Cesiones DHCPv6"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "¿Está seguro de borrar esta interfaz?. ¡No será posible deshacer el "
#~ "borrado!\n"
#~ "Puede perder el acceso a este dispositivo si está conectado por esta "
#~ "interfaz."
#, fuzzy
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "¿Está seguro de querer apagar esta red?.\n"
#~ "Puede perder el acceso a este dispositivo si está conectado por esta red."
#~ msgid "Sort"
#~ msgstr "Ordenar"
#~ msgid "help"
#~ msgstr "ayuda"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "Estado de la WAN IPv4" #~ msgstr "Estado de la WAN IPv4"

View file

@ -49,6 +49,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Charge sur 1 minute :" msgstr "Charge sur 1 minute :"
@ -767,9 +770,6 @@ msgstr ""
"Personnaliser le comportement des <abbr title=\"Diode Électro-Luminescente" "Personnaliser le comportement des <abbr title=\"Diode Électro-Luminescente"
"\">DEL</abbr>s si possible." "\">DEL</abbr>s si possible."
msgid "DHCP Leases"
msgstr "Baux DHCP"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "Serveur DHCP" msgstr "Serveur DHCP"
@ -782,9 +782,6 @@ msgstr "client DHCP"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Options DHCP" msgstr "Options DHCP"
msgid "DHCPv6 Leases"
msgstr "Bails DHCPv6"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -980,6 +977,9 @@ msgstr ""
"Ne pas transmettre de requêtes <abbr title=\"Domain Name System\">DNS</abbr> " "Ne pas transmettre de requêtes <abbr title=\"Domain Name System\">DNS</abbr> "
"sans nom <abbr title=\"Domain Name System\">DNS</abbr>" "sans nom <abbr title=\"Domain Name System\">DNS</abbr>"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Télécharge et installe le paquet" msgstr "Télécharge et installe le paquet"
@ -1095,6 +1095,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Activer ce montage" msgstr "Activer ce montage"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Activer cette mémoire d'échange (swap)" msgstr "Activer cette mémoire d'échange (swap)"
@ -1129,6 +1132,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Effacement…" msgstr "Effacement…"
@ -1314,7 +1323,7 @@ msgstr "Espace libre"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2626,16 +2635,12 @@ msgid ""
msgstr "Lire /etc/ethers pour configurer le serveur DHCP" msgstr "Lire /etc/ethers pour configurer le serveur DHCP"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"Voulez-vous vraiment supprimer cette interface? L'effacement ne peut être "
"annulé!\n"
"Vous pourriez perdre l'accès à l'équipement si vous y êtes connecté par "
"cette interface."
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"Voulez-vous vraiment supprimer ce réseau sans-fil? L'effacement ne peut être " "Voulez-vous vraiment supprimer ce réseau sans-fil? L'effacement ne peut être "
@ -2647,15 +2652,12 @@ msgid "Really reset all changes?"
msgstr "Voulez-vous vraiment ré-initialiser toutes les modifications ?" msgstr "Voulez-vous vraiment ré-initialiser toutes les modifications ?"
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"Voulez-vous vraiment arrêter l'interface %s ?\n"
"Vous pourriez perdre l'accès à l'équipement si vous y êtes connecté par "
"cette interface."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"Voulez-vous vraiment arrêter l'interface %s ?\n" "Voulez-vous vraiment arrêter l'interface %s ?\n"
@ -3003,9 +3005,6 @@ msgstr ""
"au wiki pour connaître les instructions d'installation spécifiques à votre " "au wiki pour connaître les instructions d'installation spécifiques à votre "
"matériel." "matériel."
msgid "Sort"
msgstr "Trier"
msgid "Source" msgid "Source"
msgstr "Source" msgstr "Source"
@ -3537,6 +3536,9 @@ msgstr "Changements non appliqués"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Type de protocole non pris en charge." msgstr "Type de protocole non pris en charge."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Mettre les listes à jour" msgstr "Mettre les listes à jour"
@ -3802,6 +3804,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "ponté" msgstr "ponté"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "créer:" msgstr "créer:"
@ -3837,9 +3842,6 @@ msgstr "full-duplex"
msgid "half-duplex" msgid "half-duplex"
msgstr "half-duplex" msgstr "half-duplex"
msgid "help"
msgstr "aide"
msgid "hidden" msgid "hidden"
msgstr "cacher" msgstr "cacher"
@ -3888,6 +3890,9 @@ msgstr "Actif"
msgid "open" msgid "open"
msgstr "ouvrir" msgstr "ouvrir"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3939,6 +3944,35 @@ msgstr "oui"
msgid "« Back" msgid "« Back"
msgstr "« Retour" msgstr "« Retour"
#~ msgid "DHCP Leases"
#~ msgstr "Baux DHCP"
#~ msgid "DHCPv6 Leases"
#~ msgstr "Bails DHCPv6"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "Voulez-vous vraiment supprimer cette interface? L'effacement ne peut être "
#~ "annulé!\n"
#~ "Vous pourriez perdre l'accès à l'équipement si vous y êtes connecté par "
#~ "cette interface."
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "Voulez-vous vraiment arrêter l'interface %s ?\n"
#~ "Vous pourriez perdre l'accès à l'équipement si vous y êtes connecté par "
#~ "cette interface."
#~ msgid "Sort"
#~ msgstr "Trier"
#~ msgid "help"
#~ msgstr "aide"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "État IPv4 du WAN" #~ msgstr "État IPv4 du WAN"

View file

@ -47,6 +47,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "עומס במשך דקה:" msgstr "עומס במשך דקה:"
@ -744,9 +747,6 @@ msgstr ""
"מתאים את הגדרות ה-<abbr title=\"Light Emitting Diode\">LED</abbr>-ים במכשיר " "מתאים את הגדרות ה-<abbr title=\"Light Emitting Diode\">LED</abbr>-ים במכשיר "
"(אם אפשרי)." "(אם אפשרי)."
msgid "DHCP Leases"
msgstr "הרשאות DHCP"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "שרת DHCP" msgstr "שרת DHCP"
@ -759,9 +759,6 @@ msgstr "לקוח DHCP"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "אפשרויות-DHCP" msgstr "אפשרויות-DHCP"
msgid "DHCPv6 Leases"
msgstr "הרשאות DHCPv6"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -943,6 +940,9 @@ msgid ""
"<abbr title=\"Domain Name System\">DNS</abbr>-Name" "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
msgstr "" msgstr ""
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "הורד והתקן חבילות" msgstr "הורד והתקן חבילות"
@ -1055,6 +1055,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "" msgstr ""
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "" msgstr ""
@ -1087,6 +1090,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "מוחק..." msgstr "מוחק..."
@ -1269,7 +1278,7 @@ msgstr ""
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2538,28 +2547,25 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
msgid "Really reset all changes?" msgid "Really reset all changes?"
msgstr "" msgstr ""
#, fuzzy
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"האם למחוק את הרשת האלחוטית הזו? המחיקה אינה ניתנת לביטול!\n"
"ייתכן ותאבד גישה לנתב הזה אם אתה מחובר דרך השרת הזו."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2897,9 +2903,6 @@ msgstr ""
"סליחה, אין תמיכה בעדכון מערכת, ולכן קושחה חדשה חייבת להיצרב ידנית. אנא פנה " "סליחה, אין תמיכה בעדכון מערכת, ולכן קושחה חדשה חייבת להיצרב ידנית. אנא פנה "
"אל ה-wiki של OpenWrt/LEDE עבור הוראות ספציפיות למכשיר שלך." "אל ה-wiki של OpenWrt/LEDE עבור הוראות ספציפיות למכשיר שלך."
msgid "Sort"
msgstr "מיין"
msgid "Source" msgid "Source"
msgstr "מקור" msgstr "מקור"
@ -3368,6 +3371,9 @@ msgstr ""
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "" msgstr ""
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "" msgstr ""
@ -3617,6 +3623,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "" msgstr ""
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "" msgstr ""
@ -3652,9 +3661,6 @@ msgstr ""
msgid "half-duplex" msgid "half-duplex"
msgstr "" msgstr ""
msgid "help"
msgstr "עזרה"
msgid "hidden" msgid "hidden"
msgstr "" msgstr ""
@ -3703,6 +3709,9 @@ msgstr "פועל"
msgid "open" msgid "open"
msgstr "" msgstr ""
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3754,6 +3763,26 @@ msgstr "כן"
msgid "« Back" msgid "« Back"
msgstr "<< אחורה" msgstr "<< אחורה"
#~ msgid "DHCP Leases"
#~ msgstr "הרשאות DHCP"
#~ msgid "DHCPv6 Leases"
#~ msgstr "הרשאות DHCPv6"
#, fuzzy
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "האם למחוק את הרשת האלחוטית הזו? המחיקה אינה ניתנת לביטול!\n"
#~ "ייתכן ותאבד גישה לנתב הזה אם אתה מחובר דרך השרת הזו."
#~ msgid "Sort"
#~ msgstr "מיין"
#~ msgid "help"
#~ msgstr "עזרה"
#~ msgid "Apply" #~ msgid "Apply"
#~ msgstr "החל" #~ msgstr "החל"

View file

@ -47,6 +47,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Terhelés (utolsó 1 perc):" msgstr "Terhelés (utolsó 1 perc):"
@ -762,9 +765,6 @@ msgstr ""
"Az eszköz <abbr title=\"Light Emitting Diode\">LED</abbr>-jei működésének " "Az eszköz <abbr title=\"Light Emitting Diode\">LED</abbr>-jei működésének "
"testreszabása." "testreszabása."
msgid "DHCP Leases"
msgstr "DHCP bérletek"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCP kiszolgáló" msgstr "DHCP kiszolgáló"
@ -777,9 +777,6 @@ msgstr "DHCP ügyfél"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCP beállítások" msgstr "DHCP beállítások"
msgid "DHCPv6 Leases"
msgstr "DHCPv6 bérletek"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -971,6 +968,9 @@ msgstr ""
"Ne továbbítsa a <abbr title=\"Domain Name System\">DNS</abbr>-név nélküli " "Ne továbbítsa a <abbr title=\"Domain Name System\">DNS</abbr>-név nélküli "
"<abbr title=\"Domain Name System\">DNS</abbr>-kéréseket " "<abbr title=\"Domain Name System\">DNS</abbr>-kéréseket "
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Csomag letöltése és telepítése" msgstr "Csomag letöltése és telepítése"
@ -1088,6 +1088,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "A csatolás engedélyezése" msgstr "A csatolás engedélyezése"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "A lapozó terület engedélyezése" msgstr "A lapozó terület engedélyezése"
@ -1120,6 +1123,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Törlés..." msgstr "Törlés..."
@ -1305,7 +1314,7 @@ msgstr "Szabad hely"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2618,15 +2627,12 @@ msgstr ""
"Configuration Protocol\">DHCP</abbr> kiszolgáló beállításához" "Configuration Protocol\">DHCP</abbr> kiszolgáló beállításához"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"Biztosan törli az interfészt? A törlés nem visszavonható!\n"
" Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen az "
"interfészen keresztül kapcsolódik."
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"Biztosan törli ezt a vezetéknélküli hálózatot? A törlés nem visszavonható!\n" "Biztosan törli ezt a vezetéknélküli hálózatot? A törlés nem visszavonható!\n"
@ -2636,17 +2642,13 @@ msgstr ""
msgid "Really reset all changes?" msgid "Really reset all changes?"
msgstr "Biztos, hogy visszavonja az összes módosítást?" msgstr "Biztos, hogy visszavonja az összes módosítást?"
#, fuzzy
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"Biztos, hogy leállítja a hálózatot?!\n"
" Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen a "
"hálózaton keresztül kapcsolódik."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"Biztos, hogy leállítja a \"%s\" interfészt?\n" "Biztos, hogy leállítja a \"%s\" interfészt?\n"
@ -2993,9 +2995,6 @@ msgstr ""
"telepítését manuálisan kell elvégezni. Az eszközhöz tartozó telepítési " "telepítését manuálisan kell elvégezni. Az eszközhöz tartozó telepítési "
"utasításokért keresse fel az wiki-t." "utasításokért keresse fel az wiki-t."
msgid "Sort"
msgstr "Sorbarendezés"
msgid "Source" msgid "Source"
msgstr "Forrás" msgstr "Forrás"
@ -3525,6 +3524,9 @@ msgstr "El nem mentett módosítások"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Nem támogatott protokoll típus." msgstr "Nem támogatott protokoll típus."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Listák frissítése" msgstr "Listák frissítése"
@ -3789,6 +3791,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "áthidalt" msgstr "áthidalt"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "új:" msgstr "új:"
@ -3826,9 +3831,6 @@ msgstr "full-duplex"
msgid "half-duplex" msgid "half-duplex"
msgstr "half-duplex" msgstr "half-duplex"
msgid "help"
msgstr "súgó"
msgid "hidden" msgid "hidden"
msgstr "rejtett" msgstr "rejtett"
@ -3877,6 +3879,9 @@ msgstr "be"
msgid "open" msgid "open"
msgstr "nyitás" msgstr "nyitás"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3928,6 +3933,35 @@ msgstr "igen"
msgid "« Back" msgid "« Back"
msgstr "« Vissza" msgstr "« Vissza"
#~ msgid "DHCP Leases"
#~ msgstr "DHCP bérletek"
#~ msgid "DHCPv6 Leases"
#~ msgstr "DHCPv6 bérletek"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "Biztosan törli az interfészt? A törlés nem visszavonható!\n"
#~ " Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen az "
#~ "interfészen keresztül kapcsolódik."
#, fuzzy
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "Biztos, hogy leállítja a hálózatot?!\n"
#~ " Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen a "
#~ "hálózaton keresztül kapcsolódik."
#~ msgid "Sort"
#~ msgstr "Sorbarendezés"
#~ msgid "help"
#~ msgstr "súgó"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "IPv4 WAN állapot" #~ msgstr "IPv4 WAN állapot"

View file

@ -49,6 +49,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Carico in 1 minuto:" msgstr "Carico in 1 minuto:"
@ -767,9 +770,6 @@ msgstr ""
"Personalizza la configurazione dei <abbr title=\"Light Emitting Diode\">LED</" "Personalizza la configurazione dei <abbr title=\"Light Emitting Diode\">LED</"
"abbr> del sistema se possibile." "abbr> del sistema se possibile."
msgid "DHCP Leases"
msgstr "Contratti DHCP"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "Server DHCP" msgstr "Server DHCP"
@ -782,9 +782,6 @@ msgstr "Cliente DHCP"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Opzioni DHCP" msgstr "Opzioni DHCP"
msgid "DHCPv6 Leases"
msgstr "Contratti DHCPv6"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "Cliente DHCPv6" msgstr "Cliente DHCPv6"
@ -976,6 +973,9 @@ msgstr ""
"Non inoltrare le richieste <abbr title=\"Domain Name System\">DNS</abbr> " "Non inoltrare le richieste <abbr title=\"Domain Name System\">DNS</abbr> "
"senza nome <abbr title=\"Domain Name System\">DNS</abbr>" "senza nome <abbr title=\"Domain Name System\">DNS</abbr>"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Scarica e installa pacchetto" msgstr "Scarica e installa pacchetto"
@ -1091,6 +1091,9 @@ msgstr "Abilita l'opzione DF (non Frammentare) dei pacchetti incapsulati"
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Abilita questo mount" msgstr "Abilita questo mount"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Abilita questo swap" msgstr "Abilita questo swap"
@ -1123,6 +1126,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Cancellazione..." msgstr "Cancellazione..."
@ -1307,7 +1316,7 @@ msgstr "Spazio libero"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2616,32 +2625,32 @@ msgstr ""
"\"Dynamic Host Configuration Protocol\">DHCP</abbr>" "\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"Vuoi davvero rimuovere questa interfaccia wireless? La rimozione non può "
"essere ripristinata! Potresti perdere l'accesso a questo dispositivo se sei "
"connesso con questa rete."
msgid "Really reset all changes?" msgid "Really reset all changes?"
msgstr "Azzerare veramente tutte le modifiche?" msgstr "Azzerare veramente tutte le modifiche?"
#, fuzzy
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"Vuoi davvero spegnere questa interfaccia?\\nPotresti perdere l'accesso a "
"questo router se sei connesso usando questa interfaccia."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"Vuoi davvero spegnere questa interfaccia \"%s\" ?\\nPotresti perdere " "Vuoi davvero spegnere questa interfaccia \"%s\"? Potresti perdere l'accesso "
"l'accesso a questo router se stai usando questa interfaccia." "a questo router se stai usando questa interfaccia."
msgid "Really switch protocol?" msgid "Really switch protocol?"
msgstr "Cambiare veramente il protocollo?" msgstr "Cambiare veramente il protocollo?"
@ -2980,9 +2989,6 @@ msgstr ""
"riferimento al wiki per le istruzioni di installazione di dispositivi " "riferimento al wiki per le istruzioni di installazione di dispositivi "
"specifici." "specifici."
msgid "Sort"
msgstr "Ordina"
msgid "Source" msgid "Source"
msgstr "Origine" msgstr "Origine"
@ -3484,6 +3490,9 @@ msgstr "Modifiche non salvate"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Tipo protocollo non supportato." msgstr "Tipo protocollo non supportato."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Aggiorna liste" msgstr "Aggiorna liste"
@ -3751,6 +3760,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "ponte" msgstr "ponte"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "crea:" msgstr "crea:"
@ -3788,9 +3800,6 @@ msgstr "full-duplex"
msgid "half-duplex" msgid "half-duplex"
msgstr "half-duplex" msgstr "half-duplex"
msgid "help"
msgstr "aiuto"
msgid "hidden" msgid "hidden"
msgstr "nascosto" msgstr "nascosto"
@ -3839,6 +3848,9 @@ msgstr "acceso"
msgid "open" msgid "open"
msgstr "apri" msgstr "apri"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3890,6 +3902,33 @@ msgstr "Sì"
msgid "« Back" msgid "« Back"
msgstr "« Indietro" msgstr "« Indietro"
#~ msgid "DHCP Leases"
#~ msgstr "Contratti DHCP"
#~ msgid "DHCPv6 Leases"
#~ msgstr "Contratti DHCPv6"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "Vuoi davvero rimuovere questa interfaccia? La rimozione non può essere "
#~ "ripristinata! Potresti perdere l'accesso a questo dispositivo se sei "
#~ "connesso con questa rete."
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "Vuoi davvero spegnere questa interfaccia? Potresti perdere l'accesso a "
#~ "questo router se sei connesso usando questa interfaccia."
#~ msgid "Sort"
#~ msgstr "Ordina"
#~ msgid "help"
#~ msgstr "aiuto"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "Stato WAN IPv4" #~ msgstr "Stato WAN IPv4"

View file

@ -49,6 +49,9 @@ msgstr "-- ラベルを指定 --"
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "-- UUID を指定 --" msgstr "-- UUID を指定 --"
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "過去1分の負荷:" msgstr "過去1分の負荷:"
@ -777,9 +780,6 @@ msgstr ""
"<abbr title=\"Light Emitting Diode\">LED</abbr> デバイスの挙動をカスタマイズ" "<abbr title=\"Light Emitting Diode\">LED</abbr> デバイスの挙動をカスタマイズ"
"します。" "します。"
msgid "DHCP Leases"
msgstr "DHCPリース"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCPサーバー" msgstr "DHCPサーバー"
@ -792,9 +792,6 @@ msgstr "DHCP クライアント"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCPオプション" msgstr "DHCPオプション"
msgid "DHCPv6 Leases"
msgstr "DHCPv6 リース"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "DHCPv6 クライアント" msgstr "DHCPv6 クライアント"
@ -985,6 +982,9 @@ msgstr ""
"<abbr title=\"Domain Name System\">DNS</abbr>名の無い <abbr title=\"Domain " "<abbr title=\"Domain Name System\">DNS</abbr>名の無い <abbr title=\"Domain "
"Name System\">DNS</abbr>リクエストを転送しません" "Name System\">DNS</abbr>リクエストを転送しません"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "パッケージのダウンロードとインストール" msgstr "パッケージのダウンロードとインストール"
@ -1102,6 +1102,9 @@ msgstr "カプセル化されたパケットの DF (Don't Fragment) フラグを
msgid "Enable this mount" msgid "Enable this mount"
msgstr "マウント設定を有効にする" msgstr "マウント設定を有効にする"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "スワップ設定を有効にする" msgstr "スワップ設定を有効にする"
@ -1134,6 +1137,12 @@ msgstr "エンドポイント ホスト"
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "エンドポイント ポート" msgstr "エンドポイント ポート"
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "消去中..." msgstr "消去中..."
@ -1321,10 +1330,10 @@ msgstr "ディスクの空き容量"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
"WireGuard インターフェースとピアについての詳細情報: <a href=\"http://" "WireGuard インターフェースとピアについての詳細情報: <a href=\"http://"
"wireguard.io\">wireguard.io</a>" "wireguard.com\">wireguard.com</a>"
msgid "GHz" msgid "GHz"
msgstr "GHz" msgstr "GHz"
@ -2641,16 +2650,12 @@ msgstr ""
"として<code>/etc/ethers</code> をロードします" "として<code>/etc/ethers</code> をロードします"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"本当にこのインターフェースを削除しますか?一度削除すると、元に戻すことはできま"
"せん!\n"
"このインターフェースを経由して接続している場合、デバイスにアクセスできなくな"
"る場合があります。"
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"本当にこの無線ネットワークを削除しますか?一度削除すると、元に戻すことはできま" "本当にこの無線ネットワークを削除しますか?一度削除すると、元に戻すことはできま"
@ -2662,15 +2667,12 @@ msgid "Really reset all changes?"
msgstr "本当に全ての変更をリセットしますか?" msgstr "本当に全ての変更をリセットしますか?"
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"本当にネットワークを停止しますか?\n"
"このネットワークを経由して接続している場合、デバイスにアクセスできなくなる場"
"合があります。"
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"本当にインターフェース \"%s\" を停止しますか?\n" "本当にインターフェース \"%s\" を停止しますか?\n"
@ -3017,9 +3019,6 @@ msgstr ""
"ファームウェア更新は手動で行っていただく必要があります。wikiを参照して、この" "ファームウェア更新は手動で行っていただく必要があります。wikiを参照して、この"
"デバイスのインストール手順を参照してください。" "デバイスのインストール手順を参照してください。"
msgid "Sort"
msgstr "ソート"
msgid "Source" msgid "Source"
msgstr "送信元" msgstr "送信元"
@ -3546,6 +3545,9 @@ msgstr "保存されていない変更"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "サポートされていないプロトコルタイプ" msgstr "サポートされていないプロトコルタイプ"
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "リストの更新" msgstr "リストの更新"
@ -3813,6 +3815,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "ブリッジ" msgstr "ブリッジ"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "作成:" msgstr "作成:"
@ -3850,9 +3855,6 @@ msgstr "全二重"
msgid "half-duplex" msgid "half-duplex"
msgstr "半二重" msgstr "半二重"
msgid "help"
msgstr "ヘルプ"
msgid "hidden" msgid "hidden"
msgstr "(不明)" msgstr "(不明)"
@ -3901,6 +3903,9 @@ msgstr "オン"
msgid "open" msgid "open"
msgstr "オープン" msgstr "オープン"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "オーバーレイ" msgstr "オーバーレイ"
@ -3951,3 +3956,32 @@ msgstr "はい"
msgid "« Back" msgid "« Back"
msgstr "« 戻る" msgstr "« 戻る"
#~ msgid "DHCP Leases"
#~ msgstr "DHCPリース"
#~ msgid "DHCPv6 Leases"
#~ msgstr "DHCPv6 リース"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "本当にこのインターフェースを削除しますか?一度削除すると、元に戻すことはで"
#~ "きません!\n"
#~ "このインターフェースを経由して接続している場合、デバイスにアクセスできなく"
#~ "なる場合があります。"
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "本当にネットワークを停止しますか?\n"
#~ "このネットワークを経由して接続している場合、デバイスにアクセスできなくなる"
#~ "場合があります。"
#~ msgid "Sort"
#~ msgstr "ソート"
#~ msgid "help"
#~ msgstr "ヘルプ"

View file

@ -49,6 +49,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "1 분 부하:" msgstr "1 분 부하:"
@ -749,9 +752,6 @@ msgstr ""
"원한다면 장치에 부착된 <abbr title=\"Light Emitting Diode\">LED</abbr> 들의 " "원한다면 장치에 부착된 <abbr title=\"Light Emitting Diode\">LED</abbr> 들의 "
"행동을 마음대로 변경할 수 있습니다." "행동을 마음대로 변경할 수 있습니다."
msgid "DHCP Leases"
msgstr "DHCP 임대 정보"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCP 서버" msgstr "DHCP 서버"
@ -764,9 +764,6 @@ msgstr "DHCP client"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCP-옵션들" msgstr "DHCP-옵션들"
msgid "DHCPv6 Leases"
msgstr "DHCPv6 임대 정보"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -954,6 +951,9 @@ msgid ""
"<abbr title=\"Domain Name System\">DNS</abbr>-Name" "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
msgstr "" msgstr ""
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "패키지 다운로드 후 설치" msgstr "패키지 다운로드 후 설치"
@ -1068,6 +1068,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "" msgstr ""
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "" msgstr ""
@ -1100,6 +1103,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "" msgstr ""
@ -1282,7 +1291,7 @@ msgstr "여유 공간"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2566,12 +2575,12 @@ msgstr ""
"Configuration Protocol\">DHCP</abbr>-서버를 설정합니다" "Configuration Protocol\">DHCP</abbr>-서버를 설정합니다"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2579,14 +2588,12 @@ msgid "Really reset all changes?"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"정말로 네트워크를 shutdown 하시겠습니까?\\n이 인터페이스를 통해 연결하였다면 "
"접속이 끊어질 수 있습니다."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2923,9 +2930,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr "순서"
msgid "Source" msgid "Source"
msgstr "" msgstr ""
@ -3412,6 +3416,9 @@ msgstr "적용 안된 변경 사항"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "" msgstr ""
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "" msgstr ""
@ -3673,6 +3680,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "" msgstr ""
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "" msgstr ""
@ -3710,9 +3720,6 @@ msgstr ""
msgid "half-duplex" msgid "half-duplex"
msgstr "" msgstr ""
msgid "help"
msgstr ""
msgid "hidden" msgid "hidden"
msgstr "" msgstr ""
@ -3761,6 +3768,9 @@ msgstr ""
msgid "open" msgid "open"
msgstr "" msgstr ""
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3812,6 +3822,22 @@ msgstr ""
msgid "« Back" msgid "« Back"
msgstr "" msgstr ""
#~ msgid "DHCP Leases"
#~ msgstr "DHCP 임대 정보"
#~ msgid "DHCPv6 Leases"
#~ msgstr "DHCPv6 임대 정보"
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "정말로 네트워크를 shutdown 하시겠습니까?\\n이 인터페이스를 통해 연결하였다"
#~ "면 접속이 끊어질 수 있습니다."
#~ msgid "Sort"
#~ msgstr "순서"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "IPv4 WAN 상태" #~ msgstr "IPv4 WAN 상태"

View file

@ -49,6 +49,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "" msgstr ""
@ -727,9 +730,6 @@ msgid ""
"\">LED</abbr>s if possible." "\">LED</abbr>s if possible."
msgstr "Mengkustomisasi perilaku peranti LED jika mungkin." msgstr "Mengkustomisasi perilaku peranti LED jika mungkin."
msgid "DHCP Leases"
msgstr ""
msgid "DHCP Server" msgid "DHCP Server"
msgstr "" msgstr ""
@ -742,9 +742,6 @@ msgstr ""
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCP-Pilihan" msgstr "DHCP-Pilihan"
msgid "DHCPv6 Leases"
msgstr ""
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -929,6 +926,9 @@ msgid ""
"<abbr title=\"Domain Name System\">DNS</abbr>-Name" "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
msgstr "Jangan hantar permintaan DNS tanpa nama DNS" msgstr "Jangan hantar permintaan DNS tanpa nama DNS"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Turun dan memasang pakej" msgstr "Turun dan memasang pakej"
@ -1040,6 +1040,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "" msgstr ""
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "" msgstr ""
@ -1072,6 +1075,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "" msgstr ""
@ -1254,7 +1263,7 @@ msgstr ""
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2542,12 +2551,12 @@ msgid ""
msgstr "Baca /etc/ethers untuk mengkonfigurasikan DHCP-Server" msgstr "Baca /etc/ethers untuk mengkonfigurasikan DHCP-Server"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2555,12 +2564,12 @@ msgid "Really reset all changes?"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2897,9 +2906,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr ""
msgid "Source" msgid "Source"
msgstr "Sumber" msgstr "Sumber"
@ -3383,6 +3389,9 @@ msgstr "Perubahan yang belum disimpan"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "" msgstr ""
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "" msgstr ""
@ -3634,6 +3643,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "" msgstr ""
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "" msgstr ""
@ -3669,9 +3681,6 @@ msgstr ""
msgid "half-duplex" msgid "half-duplex"
msgstr "" msgstr ""
msgid "help"
msgstr "Membantu"
msgid "hidden" msgid "hidden"
msgstr "" msgstr ""
@ -3720,6 +3729,9 @@ msgstr ""
msgid "open" msgid "open"
msgstr "" msgstr ""
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3771,6 +3783,9 @@ msgstr ""
msgid "« Back" msgid "« Back"
msgstr "« Kembali" msgstr "« Kembali"
#~ msgid "help"
#~ msgstr "Membantu"
#~ msgid "Apply" #~ msgid "Apply"
#~ msgstr "Melaksanakan" #~ msgstr "Melaksanakan"

View file

@ -44,6 +44,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "1 minutts belastning:" msgstr "1 minutts belastning:"
@ -751,9 +754,6 @@ msgstr ""
"Tilpasser oppførselen til enhetens <abbr title=\"Light Emitting Diode\">LED</" "Tilpasser oppførselen til enhetens <abbr title=\"Light Emitting Diode\">LED</"
"abbr>s om mulig." "abbr>s om mulig."
msgid "DHCP Leases"
msgstr "DHCP Leier"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCP Server" msgstr "DHCP Server"
@ -766,9 +766,6 @@ msgstr "DHCP klient"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCP-Alternativer" msgstr "DHCP-Alternativer"
msgid "DHCPv6 Leases"
msgstr "DHCPv6 Leier"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -960,6 +957,9 @@ msgstr ""
"Ikke videresend <abbr title=\"Domain Name System\">DNS</abbr>-Forespørsler " "Ikke videresend <abbr title=\"Domain Name System\">DNS</abbr>-Forespørsler "
"uten <abbr title=\"Domain Name System\">DNS</abbr>-Navn" "uten <abbr title=\"Domain Name System\">DNS</abbr>-Navn"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Last ned og installer pakken" msgstr "Last ned og installer pakken"
@ -1075,6 +1075,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Aktiver dette monteringspunktet" msgstr "Aktiver dette monteringspunktet"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Aktiver denne swapenhet" msgstr "Aktiver denne swapenhet"
@ -1107,6 +1110,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Sletter..." msgstr "Sletter..."
@ -1291,7 +1300,7 @@ msgstr "Ledig plass"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2593,15 +2602,12 @@ msgstr ""
"Configuration Protocol\">DHCP</abbr>-Server" "Configuration Protocol\">DHCP</abbr>-Server"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"Fjerne dette grensesnittet? Slettingen kan ikke omgjøres!\n"
"Du kan miste kontakten med ruteren om du er tilkoblet via dette "
"grensesnittet."
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"Fjerne dette trådløse nettverket? Slettingen kan ikke omgjøres!\n" "Fjerne dette trådløse nettverket? Slettingen kan ikke omgjøres!\n"
@ -2610,17 +2616,13 @@ msgstr ""
msgid "Really reset all changes?" msgid "Really reset all changes?"
msgstr "Vil du nullstille alle endringer?" msgstr "Vil du nullstille alle endringer?"
#, fuzzy
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"Slå av dette nettverket ?\n"
"Du kan miste kontakten med ruteren om du er tilkoblet via dette "
"grensesnittet."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"Slå av dette grensesnittet \"%s\" ?\n" "Slå av dette grensesnittet \"%s\" ?\n"
@ -2966,9 +2968,6 @@ msgstr ""
"flashes manuelt. Viser til wiki for installering av firmare på forskjellige " "flashes manuelt. Viser til wiki for installering av firmare på forskjellige "
"enheter." "enheter."
msgid "Sort"
msgstr "Sortering"
msgid "Source" msgid "Source"
msgstr "Kilde" msgstr "Kilde"
@ -3490,6 +3489,9 @@ msgstr "Ulagrede Endringer"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Protokoll type er ikke støttet." msgstr "Protokoll type er ikke støttet."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Oppdater lister" msgstr "Oppdater lister"
@ -3754,6 +3756,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "brokoblet" msgstr "brokoblet"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "opprett:" msgstr "opprett:"
@ -3791,9 +3796,6 @@ msgstr "full-dupleks"
msgid "half-duplex" msgid "half-duplex"
msgstr "halv-dupleks" msgstr "halv-dupleks"
msgid "help"
msgstr "Hjelp"
msgid "hidden" msgid "hidden"
msgstr "skjult" msgstr "skjult"
@ -3842,6 +3844,9 @@ msgstr "på"
msgid "open" msgid "open"
msgstr "åpen" msgstr "åpen"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3893,6 +3898,35 @@ msgstr "ja"
msgid "« Back" msgid "« Back"
msgstr "« Tilbake" msgstr "« Tilbake"
#~ msgid "DHCP Leases"
#~ msgstr "DHCP Leier"
#~ msgid "DHCPv6 Leases"
#~ msgstr "DHCPv6 Leier"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "Fjerne dette grensesnittet? Slettingen kan ikke omgjøres!\n"
#~ "Du kan miste kontakten med ruteren om du er tilkoblet via dette "
#~ "grensesnittet."
#, fuzzy
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "Slå av dette nettverket ?\n"
#~ "Du kan miste kontakten med ruteren om du er tilkoblet via dette "
#~ "grensesnittet."
#~ msgid "Sort"
#~ msgstr "Sortering"
#~ msgid "help"
#~ msgstr "Hjelp"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "IPv4 WAN Status" #~ msgstr "IPv4 WAN Status"

View file

@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: LuCI\n" "Project-Id-Version: LuCI\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-04-20 09:40+0200\n" "POT-Creation-Date: 2010-04-20 09:40+0200\n"
"PO-Revision-Date: 2018-05-14 20:05+0200\n" "PO-Revision-Date: 2018-06-10 10:05+0200\n"
"Last-Translator: Rixerx <krystian.kozak20@gmail.com>\n" "Last-Translator: Rixerx <krystian.kozak20@gmail.com>\n"
"Language-Team: Polish\n" "Language-Team: Polish\n"
"Language: pl\n" "Language: pl\n"
@ -50,6 +50,9 @@ msgstr "-- dopasuj po etykiecie --"
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "-- dopasuj po uuid --" msgstr "-- dopasuj po uuid --"
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Obciążenie 1 min.:" msgstr "Obciążenie 1 min.:"
@ -373,12 +376,14 @@ msgstr ""
msgid "Announce as default router even if no public prefix is available." msgid "Announce as default router even if no public prefix is available."
msgstr "" msgstr ""
"Rozgłaszaj jako domyślny router nawet jeśli publiczny prefiks nie jest "
"dostępny."
msgid "Announced DNS domains" msgid "Announced DNS domains"
msgstr "" msgstr "Rozgłaszaj domeny DNS"
msgid "Announced DNS servers" msgid "Announced DNS servers"
msgstr "" msgstr "Rozgłaszaj serwery DNS"
msgid "Anonymous Identity" msgid "Anonymous Identity"
msgstr "" msgstr ""
@ -408,11 +413,13 @@ msgid "Apply unchecked"
msgstr "" msgstr ""
msgid "Architecture" msgid "Architecture"
msgstr "" msgstr "Architektura"
msgid "" msgid ""
"Assign a part of given length of every public IPv6-prefix to this interface" "Assign a part of given length of every public IPv6-prefix to this interface"
msgstr "" msgstr ""
"Przypisz część danej długości każdego publicznego prefiksu IPv6 do tego "
"interfejsu"
msgid "Assign interfaces..." msgid "Assign interfaces..."
msgstr "Przypisz interfejsy..." msgstr "Przypisz interfejsy..."
@ -420,12 +427,14 @@ msgstr "Przypisz interfejsy..."
msgid "" msgid ""
"Assign prefix parts using this hexadecimal subprefix ID for this interface." "Assign prefix parts using this hexadecimal subprefix ID for this interface."
msgstr "" msgstr ""
"Przypisz cześć prefiksu za pomocą szesnastkowego ID subprefiksu dla tego "
"interfejsu"
msgid "Associated Stations" msgid "Associated Stations"
msgstr "Połączone stacje" msgstr "Połączone stacje"
msgid "Associations" msgid "Associations"
msgstr "" msgstr "Połączeni"
msgid "Auth Group" msgid "Auth Group"
msgstr "" msgstr ""
@ -532,6 +541,7 @@ msgstr ""
msgid "Bind only to specific interfaces rather than wildcard address." msgid "Bind only to specific interfaces rather than wildcard address."
msgstr "" msgstr ""
"Powiąż tylko ze specyficznymi interfejsami, a nie z adresami wieloznacznymi."
msgid "Bind the tunnel to this interface (optional)." msgid "Bind the tunnel to this interface (optional)."
msgstr "" msgstr ""
@ -693,10 +703,10 @@ msgid "Configuration files will be kept."
msgstr "Pliki konfiguracyjne zostaną zachowane." msgstr "Pliki konfiguracyjne zostaną zachowane."
msgid "Configuration has been applied." msgid "Configuration has been applied."
msgstr "" msgstr "Konfiguracja została zastosowana."
msgid "Configuration has been rolled back!" msgid "Configuration has been rolled back!"
msgstr "" msgstr "Konfiguracja została wycofana!"
msgid "Confirmation" msgid "Confirmation"
msgstr "Potwierdzenie" msgstr "Potwierdzenie"
@ -765,6 +775,8 @@ msgid ""
"Custom files (certificates, scripts) may remain on the system. To prevent " "Custom files (certificates, scripts) may remain on the system. To prevent "
"this, perform a factory-reset first." "this, perform a factory-reset first."
msgstr "" msgstr ""
"Własne pliki (certyfikaty, skrypty) mogą pozostać w systemie. Aby zapobiec "
"temu, wykonaj najpierw reset do ustawień fabrycznych"
msgid "" msgid ""
"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode" "Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
@ -773,9 +785,6 @@ msgstr ""
"Dostosuj zachowanie diod <abbr title=\"Light Emitting Diode\">LED</abbr> " "Dostosuj zachowanie diod <abbr title=\"Light Emitting Diode\">LED</abbr> "
"urządzenia jeśli jest to możliwe." "urządzenia jeśli jest to możliwe."
msgid "DHCP Leases"
msgstr "Dzierżawy DHCP"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "Serwer DHCP" msgstr "Serwer DHCP"
@ -788,17 +797,14 @@ msgstr "Klient DHCP"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Opcje DHCP" msgstr "Opcje DHCP"
msgid "DHCPv6 Leases"
msgstr "Dzierżawy DHCPv6"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "Klient DHCPv6" msgstr "Klient DHCPv6"
msgid "DHCPv6-Mode" msgid "DHCPv6-Mode"
msgstr "" msgstr "Tryb DHCPv6"
msgid "DHCPv6-Service" msgid "DHCPv6-Service"
msgstr "" msgstr "Serwis DHCPv6"
msgid "DNS" msgid "DNS"
msgstr "DNS" msgstr "DNS"
@ -813,7 +819,7 @@ msgid "DNSSEC"
msgstr "" msgstr ""
msgid "DNSSEC check unsigned" msgid "DNSSEC check unsigned"
msgstr "" msgstr "Sprawdzanie DNSSEC bez podpisu"
msgid "DPD Idle Timeout" msgid "DPD Idle Timeout"
msgstr "" msgstr ""
@ -846,7 +852,7 @@ msgid "Default gateway"
msgstr "Brama domyślna" msgstr "Brama domyślna"
msgid "Default is stateless + stateful" msgid "Default is stateless + stateful"
msgstr "" msgstr "Domyślnie jest to stateless + stateful"
msgid "Default state" msgid "Default state"
msgstr "Stan domyślny" msgstr "Stan domyślny"
@ -985,6 +991,9 @@ msgstr ""
"Nie przekazuj zapytań <abbr title=\"Domain Name System\">DNS</abbr> bez " "Nie przekazuj zapytań <abbr title=\"Domain Name System\">DNS</abbr> bez "
"nazwy <abbr title=\"Domain Name System\">DNS</abbr>'a" "nazwy <abbr title=\"Domain Name System\">DNS</abbr>'a"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Pobierz i zainstaluj pakiet" msgstr "Pobierz i zainstaluj pakiet"
@ -1104,6 +1113,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Włącz ten punkt montowania" msgstr "Włącz ten punkt montowania"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Włącz ten swap" msgstr "Włącz ten swap"
@ -1140,6 +1152,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Usuwanie..." msgstr "Usuwanie..."
@ -1180,13 +1198,13 @@ msgid "External R1 Key Holder List"
msgstr "" msgstr ""
msgid "External system log server" msgid "External system log server"
msgstr "Zewnętrzny serwer dla logów systemowych" msgstr "Serwer zewnętrzny dla logów systemowych"
msgid "External system log server port" msgid "External system log server port"
msgstr "Port zewnętrznego serwera dla logów systemowych" msgstr "Port zewnętrznego serwera logów systemowych"
msgid "External system log server protocol" msgid "External system log server protocol"
msgstr "Protokół zewnętrznego serwera dla logów systemowych" msgstr "Protokół zewnętrznego serwera logów systemowych"
msgid "Extra SSH command options" msgid "Extra SSH command options"
msgstr "" msgstr ""
@ -1325,7 +1343,7 @@ msgstr "Wolna przestrzeń"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -1370,7 +1388,7 @@ msgid "Global Settings"
msgstr "" msgstr ""
msgid "Global network options" msgid "Global network options"
msgstr "" msgstr "Globalne opcje sieciowe"
msgid "Go to password configuration..." msgid "Go to password configuration..."
msgstr "Przejdź do konfiguracji hasła..." msgstr "Przejdź do konfiguracji hasła..."
@ -1462,7 +1480,7 @@ msgid "IPv4 Firewall"
msgstr "Firewall IPv4" msgstr "Firewall IPv4"
msgid "IPv4 Upstream" msgid "IPv4 Upstream"
msgstr "" msgstr "Protokół IPv4"
msgid "IPv4 address" msgid "IPv4 address"
msgstr "Adres IPv4" msgstr "Adres IPv4"
@ -1507,22 +1525,22 @@ msgid "IPv6 Neighbours"
msgstr "" msgstr ""
msgid "IPv6 Settings" msgid "IPv6 Settings"
msgstr "" msgstr "Ustawienia IPv6"
msgid "IPv6 ULA-Prefix" msgid "IPv6 ULA-Prefix"
msgstr "" msgstr "IPv6 Prefiks-ULA"
msgid "IPv6 Upstream" msgid "IPv6 Upstream"
msgstr "" msgstr "Protokół IPv6"
msgid "IPv6 address" msgid "IPv6 address"
msgstr "Adres IPv6" msgstr "Adres IPv6"
msgid "IPv6 assignment hint" msgid "IPv6 assignment hint"
msgstr "" msgstr "Wskazówka przypisania IPv6"
msgid "IPv6 assignment length" msgid "IPv6 assignment length"
msgstr "" msgstr "Długość przydziału IPv6"
msgid "IPv6 gateway" msgid "IPv6 gateway"
msgstr "Brama IPv6" msgstr "Brama IPv6"
@ -1540,7 +1558,7 @@ msgid "IPv6 routed prefix"
msgstr "" msgstr ""
msgid "IPv6 suffix" msgid "IPv6 suffix"
msgstr "" msgstr "Sufiks IPv6"
msgid "IPv6-Address" msgid "IPv6-Address"
msgstr "Adres IPv6" msgstr "Adres IPv6"
@ -1800,6 +1818,7 @@ msgstr "Limit"
msgid "Limit DNS service to subnets interfaces on which we are serving DNS." msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
msgstr "" msgstr ""
"Ogranicz usługi DNS do podsieci interfejsów, na których obsługujemy DNS."
msgid "Limit listening to these interfaces, and loopback." msgid "Limit listening to these interfaces, and loopback."
msgstr "Ogranicz nasłuchiwanie do tych interfesjów, oraz loopbacku." msgstr "Ogranicz nasłuchiwanie do tych interfesjów, oraz loopbacku."
@ -1883,7 +1902,7 @@ msgid "Local IPv6 address"
msgstr "Lokalny adres IPv6" msgstr "Lokalny adres IPv6"
msgid "Local Service Only" msgid "Local Service Only"
msgstr "" msgstr "Tylko serwis lokalny"
msgid "Local Startup" msgid "Local Startup"
msgstr "Lokalny autostart" msgstr "Lokalny autostart"
@ -1904,7 +1923,7 @@ msgstr ""
msgid "Local domain suffix appended to DHCP names and hosts file entries" msgid "Local domain suffix appended to DHCP names and hosts file entries"
msgstr "" msgstr ""
"Przyrostek (suffiks) domeny przyłączany do nazw DHCP i wpisów w pliku hosts" "Przyrostek (sufiks) domeny przyłączany do nazw DHCP i wpisów w pliku hosts"
msgid "Local server" msgid "Local server"
msgstr "Serwer lokalny" msgstr "Serwer lokalny"
@ -2104,7 +2123,7 @@ msgid "NCM"
msgstr "NCM" msgstr "NCM"
msgid "NDP-Proxy" msgid "NDP-Proxy"
msgstr "" msgstr "Proxy NDP"
msgid "NT Domain" msgid "NT Domain"
msgstr "" msgstr ""
@ -2191,7 +2210,7 @@ msgid "Non Pre-emtive CRC errors (CRC_P)"
msgstr "" msgstr ""
msgid "Non-wildcard" msgid "Non-wildcard"
msgstr "" msgstr "Bez symboli wieloznacznych"
msgid "None" msgid "None"
msgstr "Brak" msgstr "Brak"
@ -2222,6 +2241,8 @@ msgstr "Nslookup"
msgid "Number of cached DNS entries (max is 10000, 0 is no caching)" msgid "Number of cached DNS entries (max is 10000, 0 is no caching)"
msgstr "" msgstr ""
"Liczba buforowanych wpisów DNS (max wynosi 10000, 0 oznacza brak pamięci "
"podręcznej)"
msgid "OK" msgid "OK"
msgstr "OK" msgstr "OK"
@ -2299,6 +2320,10 @@ msgid ""
"server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') " "server, use the suffix (like '::1') to form the IPv6 address ('a:b:c:d::1') "
"for the interface." "for the interface."
msgstr "" msgstr ""
"Opcjonalne. Dopuszczalne wartości: 'eui64', 'random', stałe wartości takie "
"jak '::1' lub '::1:2'. Kiedy prefiks IPv6 (taki jak 'a:b:c:d::') jest "
"odbierany z serwera delegującego, użyj sufiksa (takiego jak '::1') aby "
"utworzyć adres IPv6 ('a:b:c:d::1') dla tego interfejsu."
msgid "" msgid ""
"Optional. Base64-encoded preshared key. Adds in an additional layer of " "Optional. Base64-encoded preshared key. Adds in an additional layer of "
@ -2591,7 +2616,7 @@ msgid "Public prefix routed to this device for distribution to clients."
msgstr "" msgstr ""
msgid "QMI Cellular" msgid "QMI Cellular"
msgstr "" msgstr "Komórkowy QMI"
msgid "Quality" msgid "Quality"
msgstr "Jakość" msgstr "Jakość"
@ -2643,15 +2668,12 @@ msgstr ""
"\"Dynamic Host Configuration Protocol\">DHCP</abbr>" "\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"Naprawdę usunąć ten interfejs? Usunięcie nie może zostać cofnięte!\n"
"Możesz stracić dostęp do tego urządzenia, jeśli jesteś połączony przez ten "
"interfejs!"
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"Naprawdę usunąć tę sieć bezprzewodową? Usunięcie nie może zostać cofnięte!\n" "Naprawdę usunąć tę sieć bezprzewodową? Usunięcie nie może zostać cofnięte!\n"
@ -2661,17 +2683,13 @@ msgstr ""
msgid "Really reset all changes?" msgid "Really reset all changes?"
msgstr "Naprawdę usunąć wszelkie zmiany?" msgstr "Naprawdę usunąć wszelkie zmiany?"
#, fuzzy
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"Naprawdę wyłączyć tę sieć?\n"
"Możesz stracić dostęp do tego urządzenia jeśli jesteś połączony przez ten "
"interfejs!"
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"Naprawdę wyłączyć interfejs \"%s\"?\n" "Naprawdę wyłączyć interfejs \"%s\"?\n"
@ -2792,6 +2810,8 @@ msgid ""
"Requires upstream supports DNSSEC; verify unsigned domain responses really " "Requires upstream supports DNSSEC; verify unsigned domain responses really "
"come from unsigned domains" "come from unsigned domains"
msgstr "" msgstr ""
"Wymagane jest wsparcie dla DNSSEC; sprawdzanie, czy niepodpisane odpowiedzi "
"w domenie rzeczywiście pochodzą z domen bez znaku"
msgid "Reset" msgid "Reset"
msgstr "Resetuj" msgstr "Resetuj"
@ -2845,10 +2865,10 @@ msgid "Route Allowed IPs"
msgstr "" msgstr ""
msgid "Route type" msgid "Route type"
msgstr "" msgstr "Typ trasy"
msgid "Router Advertisement-Service" msgid "Router Advertisement-Service"
msgstr "" msgstr "Serwis rozgłoszeniowy routera"
msgid "Router Password" msgid "Router Password"
msgstr "Hasło routera" msgstr "Hasło routera"
@ -2983,7 +3003,7 @@ msgid "Size (.ipk)"
msgstr "" msgstr ""
msgid "Size of DNS query cache" msgid "Size of DNS query cache"
msgstr "" msgstr "Rozmiar pamięci podręcznej zapytań DNS"
msgid "Skip" msgid "Skip"
msgstr "Pomiń" msgstr "Pomiń"
@ -3001,7 +3021,7 @@ msgid "Software"
msgstr "Oprogramowanie" msgstr "Oprogramowanie"
msgid "Software VLAN" msgid "Software VLAN"
msgstr "VLAN programowy" msgstr "Programowy VLAN"
msgid "Some fields are invalid, cannot save values!" msgid "Some fields are invalid, cannot save values!"
msgstr "Wartości pewnych pól są niewłaściwe, nie mogę ich zachować!" msgstr "Wartości pewnych pól są niewłaściwe, nie mogę ich zachować!"
@ -3021,9 +3041,6 @@ msgstr ""
"być wgrany ręcznie. Sprawdź stronę wiki, aby uzyskać instrukcję dla danego " "być wgrany ręcznie. Sprawdź stronę wiki, aby uzyskać instrukcję dla danego "
"urządzenia." "urządzenia."
msgid "Sort"
msgstr "Posortuj"
msgid "Source" msgid "Source"
msgstr "Źródło" msgstr "Źródło"
@ -3112,10 +3129,10 @@ msgid "Submit"
msgstr "Wyślij" msgstr "Wyślij"
msgid "Suppress logging" msgid "Suppress logging"
msgstr "" msgstr "Pomiń rejestrowanie"
msgid "Suppress logging of the routine operation of these protocols" msgid "Suppress logging of the routine operation of these protocols"
msgstr "" msgstr "Pomiń rejestrowanie rutynowych operacji dla tych protokołów"
msgid "Swap" msgid "Swap"
msgstr "" msgstr ""
@ -3354,7 +3371,7 @@ msgid "There are no active leases."
msgstr "Brak aktywnych dzierżaw." msgstr "Brak aktywnych dzierżaw."
msgid "There are no changes to apply." msgid "There are no changes to apply."
msgstr "" msgstr "Nie ma żadnych zmian do zastosowania."
msgid "There are no pending changes to revert!" msgid "There are no pending changes to revert!"
msgstr "Brak oczekujących zmian do przywrócenia!" msgstr "Brak oczekujących zmian do przywrócenia!"
@ -3384,6 +3401,9 @@ msgid ""
"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain " "'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
"Name System\">DNS</abbr> servers." "Name System\">DNS</abbr> servers."
msgstr "" msgstr ""
"Ten plik może zawierać linie takie jak 'server=/domain/1.2.3.4' lub "
"'server=1.2.3.4' dla specyficznych dla domeny lub pełnych serwerów <abbr "
"title=\"Domain Name System\">DNS</abbr>"
msgid "" msgid ""
"This is a list of shell glob patterns for matching files and directories to " "This is a list of shell glob patterns for matching files and directories to "
@ -3464,7 +3484,7 @@ msgid ""
"To restore configuration files, you can upload a previously generated backup " "To restore configuration files, you can upload a previously generated backup "
"archive here." "archive here."
msgstr "" msgstr ""
"Aby przywrócić pliki konfiguracyjne, możesz tutaj przesłać wcześniej " "Aby przywrócić pliki konfiguracyjne, możesz przesłać tutaj wcześniej "
"utworzoną kopię zapasową." "utworzoną kopię zapasową."
msgid "Tone" msgid "Tone"
@ -3557,6 +3577,9 @@ msgstr "Niezapisane zmiany"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Nieobsługiwany typ protokołu." msgstr "Nieobsługiwany typ protokołu."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Aktualizuj listy" msgstr "Aktualizuj listy"
@ -3728,7 +3751,7 @@ msgid "Waiting for command to complete..."
msgstr "Trwa wykonanie polecenia..." msgstr "Trwa wykonanie polecenia..."
msgid "Waiting for configuration to get applied… %ds" msgid "Waiting for configuration to get applied… %ds"
msgstr "" msgstr "Oczekiwanie na zastosowanie konfiguracji… %ds"
msgid "Waiting for device..." msgid "Waiting for device..."
msgstr "Oczekiwanie na urządzenie..." msgstr "Oczekiwanie na urządzenie..."
@ -3828,6 +3851,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "zmostkowany" msgstr "zmostkowany"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "utwórz:" msgstr "utwórz:"
@ -3865,9 +3891,6 @@ msgstr "pełny-duplex"
msgid "half-duplex" msgid "half-duplex"
msgstr "pół-duplex" msgstr "pół-duplex"
msgid "help"
msgstr "pomoc"
msgid "hidden" msgid "hidden"
msgstr "ukryty" msgstr "ukryty"
@ -3917,6 +3940,9 @@ msgstr "włączone"
msgid "open" msgid "open"
msgstr "otwarte" msgstr "otwarte"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3968,6 +3994,35 @@ msgstr "tak"
msgid "« Back" msgid "« Back"
msgstr "« Wróć" msgstr "« Wróć"
#~ msgid "DHCP Leases"
#~ msgstr "Dzierżawy DHCP"
#~ msgid "DHCPv6 Leases"
#~ msgstr "Dzierżawy DHCPv6"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "Naprawdę usunąć ten interfejs? Usunięcie nie może zostać cofnięte!\n"
#~ "Możesz stracić dostęp do tego urządzenia, jeśli jesteś połączony przez "
#~ "ten interfejs!"
#, fuzzy
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "Naprawdę wyłączyć tę sieć?\n"
#~ "Możesz stracić dostęp do tego urządzenia jeśli jesteś połączony przez ten "
#~ "interfejs!"
#~ msgid "Sort"
#~ msgstr "Posortuj"
#~ msgid "help"
#~ msgstr "pomoc"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "Status IPv4 WAN" #~ msgstr "Status IPv4 WAN"

View file

@ -51,6 +51,9 @@ msgstr ""
"-- casar por <abbr title=\"Universal Unique IDentifier/Identificador Único " "-- casar por <abbr title=\"Universal Unique IDentifier/Identificador Único "
"Universal\">UUID</abbr> --" "Universal\">UUID</abbr> --"
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Carga 1 Minuto:" msgstr "Carga 1 Minuto:"
@ -800,9 +803,6 @@ msgstr ""
"Se possível, personaliza o comportamento dos <abbr title=\"Diodo Emissor de " "Se possível, personaliza o comportamento dos <abbr title=\"Diodo Emissor de "
"Luz\">LED</abbr>s." "Luz\">LED</abbr>s."
msgid "DHCP Leases"
msgstr "Alocações do DHCP"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "Servidor DHCP" msgstr "Servidor DHCP"
@ -815,9 +815,6 @@ msgstr "Cliente DHCP"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Opções de DHCP" msgstr "Opções de DHCP"
msgid "DHCPv6 Leases"
msgstr "Alocações DHCPv6"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "Cliente DHCPv6" msgstr "Cliente DHCPv6"
@ -1014,6 +1011,9 @@ msgstr ""
"abbr> sem o nome completo do <abbr title=\"Sistema de Nomes de Domínios" "abbr> sem o nome completo do <abbr title=\"Sistema de Nomes de Domínios"
"\">DNS</abbr>" "\">DNS</abbr>"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Baixe e instale o pacote" msgstr "Baixe e instale o pacote"
@ -1133,6 +1133,9 @@ msgstr "Habilita o campo DF (Não Fragmentar) dos pacotes encapsulados."
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Ativar esta montagem" msgstr "Ativar esta montagem"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Ativar este espaço de troca (swap)" msgstr "Ativar este espaço de troca (swap)"
@ -1167,6 +1170,12 @@ msgstr "Equipamento do ponto final"
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "Porta do ponto final" msgstr "Porta do ponto final"
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Apagando..." msgstr "Apagando..."
@ -1356,10 +1365,10 @@ msgstr "Espaço livre"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
"Mais informações sobre interfaces e parceiros WireGuard em <a href=\"http://" "Mais informações sobre interfaces e parceiros WireGuard em <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgid "GHz" msgid "GHz"
msgstr "GHz" msgstr "GHz"
@ -2729,15 +2738,12 @@ msgstr ""
"\"Protocolo de Configuração Dinâmica de Hosts\">DHCP</abbr>" "\"Protocolo de Configuração Dinâmica de Hosts\">DHCP</abbr>"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"Realmente excluir esta interface? A exclusão não pode ser desfeita!\n"
" Você poderá perder o acesso a este dispositivo se você estiver conectado "
"através desta interface."
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"Realmente excluir esta interface Wireless? A exclusão não pode ser " "Realmente excluir esta interface Wireless? A exclusão não pode ser "
@ -2749,15 +2755,12 @@ msgid "Really reset all changes?"
msgstr "Realmente limpar todas as mudanças?" msgstr "Realmente limpar todas as mudanças?"
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"Realmente desligar esta rede\"%s\" ?\n"
"Você poderá perder o acesso a este dispositivo se você estiver conectado "
"através desta interface."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"Realmente desligar esta interface\"%s\" ?\n" "Realmente desligar esta interface\"%s\" ?\n"
@ -3111,9 +3114,6 @@ msgstr ""
"firmware deve ser gravada manualmente. Por favor, consulte a wiki para " "firmware deve ser gravada manualmente. Por favor, consulte a wiki para "
"instruções específicas da instalação deste dispositivo." "instruções específicas da instalação deste dispositivo."
msgid "Sort"
msgstr "Ordenar"
msgid "Source" msgid "Source"
msgstr "Origem" msgstr "Origem"
@ -3660,6 +3660,9 @@ msgstr "Alterações Não Salvas"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Tipo de protocolo não suportado." msgstr "Tipo de protocolo não suportado."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Atualizar listas" msgstr "Atualizar listas"
@ -3933,6 +3936,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "em ponte" msgstr "em ponte"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "criar" msgstr "criar"
@ -3970,9 +3976,6 @@ msgstr "full-duplex"
msgid "half-duplex" msgid "half-duplex"
msgstr "half-duplex" msgstr "half-duplex"
msgid "help"
msgstr "ajuda"
msgid "hidden" msgid "hidden"
msgstr "ocultar" msgstr "ocultar"
@ -4023,6 +4026,9 @@ msgstr "ligado"
msgid "open" msgid "open"
msgstr "aberto" msgstr "aberto"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "sobreposição" msgstr "sobreposição"
@ -4074,6 +4080,34 @@ msgstr "sim"
msgid "« Back" msgid "« Back"
msgstr "« Voltar" msgstr "« Voltar"
#~ msgid "DHCP Leases"
#~ msgstr "Alocações do DHCP"
#~ msgid "DHCPv6 Leases"
#~ msgstr "Alocações DHCPv6"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "Realmente excluir esta interface? A exclusão não pode ser desfeita!\n"
#~ " Você poderá perder o acesso a este dispositivo se você estiver conectado "
#~ "através desta interface."
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "Realmente desligar esta rede\"%s\" ?\n"
#~ "Você poderá perder o acesso a este dispositivo se você estiver conectado "
#~ "através desta interface."
#~ msgid "Sort"
#~ msgstr "Ordenar"
#~ msgid "help"
#~ msgstr "ajuda"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "Estado IPv4 da WAN" #~ msgstr "Estado IPv4 da WAN"

View file

@ -49,6 +49,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Carga de 1 Minuto:" msgstr "Carga de 1 Minuto:"
@ -764,9 +767,6 @@ msgstr ""
"Customiza o comportamento dos <abbr title=\"Diodo Emissor de Luz\">LED</" "Customiza o comportamento dos <abbr title=\"Diodo Emissor de Luz\">LED</"
"abbr>s, se possível." "abbr>s, se possível."
msgid "DHCP Leases"
msgstr "Concessões DHCP"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "Servidor DHCP" msgstr "Servidor DHCP"
@ -779,9 +779,6 @@ msgstr "Cliente DHCP"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Opções DHCP" msgstr "Opções DHCP"
msgid "DHCPv6 Leases"
msgstr "Concessões DHCPv6"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -975,6 +972,9 @@ msgstr ""
"Não encaminhar consultas <abbr title=\"Sistema de Nomes de Domínios\">DNS</" "Não encaminhar consultas <abbr title=\"Sistema de Nomes de Domínios\">DNS</"
"abbr> sem o nome do <abbr title=\"Sistema de Nomes de Domínios\">DNS</abbr>" "abbr> sem o nome do <abbr title=\"Sistema de Nomes de Domínios\">DNS</abbr>"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Descarregar e instalar pacote" msgstr "Descarregar e instalar pacote"
@ -1091,6 +1091,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Ativar este mount" msgstr "Ativar este mount"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Ativar esta swap" msgstr "Ativar esta swap"
@ -1123,6 +1126,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "A apagar..." msgstr "A apagar..."
@ -1308,7 +1317,7 @@ msgstr "Espaço livre"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2613,15 +2622,12 @@ msgstr ""
"\"Protocolo de Configuração Dinâmica de Hosts\">DHCP</abbr>" "\"Protocolo de Configuração Dinâmica de Hosts\">DHCP</abbr>"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"Deseja mesmo apagar esta interface? A eliminação não poder desfeita!\n"
"Pode perde a ligação ao dispositivo, caso esta ligado através desta "
"interface."
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"Deseja mesmo apagar esta rede? A eliminação não poder desfeita!\n" "Deseja mesmo apagar esta rede? A eliminação não poder desfeita!\n"
@ -2630,16 +2636,13 @@ msgstr ""
msgid "Really reset all changes?" msgid "Really reset all changes?"
msgstr "Deseja mesmo limpar todas as alterações?" msgstr "Deseja mesmo limpar todas as alterações?"
#, fuzzy
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"Deseja mesmo desligar esta rede?\n"
"Pode perder o acesso ao dispositivo se estiver ligado através desta rede."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"Deseja mesmo desligar a interface \"%s\" ?\n" "Deseja mesmo desligar a interface \"%s\" ?\n"
@ -2981,9 +2984,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr "Ordenar"
msgid "Source" msgid "Source"
msgstr "Origem" msgstr "Origem"
@ -3491,6 +3491,9 @@ msgstr "Alterações não Guardadas"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Tipo de protocolo não suportado." msgstr "Tipo de protocolo não suportado."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Actualizar listas" msgstr "Actualizar listas"
@ -3749,6 +3752,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "" msgstr ""
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "criar:" msgstr "criar:"
@ -3786,9 +3792,6 @@ msgstr "full-duplex"
msgid "half-duplex" msgid "half-duplex"
msgstr "half-duplex" msgstr "half-duplex"
msgid "help"
msgstr "ajuda"
msgid "hidden" msgid "hidden"
msgstr "escondido" msgstr "escondido"
@ -3838,6 +3841,9 @@ msgstr "ligado"
msgid "open" msgid "open"
msgstr "abrir" msgstr "abrir"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3889,6 +3895,34 @@ msgstr "sim"
msgid "« Back" msgid "« Back"
msgstr "« Voltar" msgstr "« Voltar"
#~ msgid "DHCP Leases"
#~ msgstr "Concessões DHCP"
#~ msgid "DHCPv6 Leases"
#~ msgstr "Concessões DHCPv6"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "Deseja mesmo apagar esta interface? A eliminação não poder desfeita!\n"
#~ "Pode perde a ligação ao dispositivo, caso esta ligado através desta "
#~ "interface."
#, fuzzy
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "Deseja mesmo desligar esta rede?\n"
#~ "Pode perder o acesso ao dispositivo se estiver ligado através desta rede."
#~ msgid "Sort"
#~ msgstr "Ordenar"
#~ msgid "help"
#~ msgstr "ajuda"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "Estado WAN IPv4" #~ msgstr "Estado WAN IPv4"

View file

@ -48,6 +48,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Incarcarea in ultimul minut" msgstr "Incarcarea in ultimul minut"
@ -737,9 +740,6 @@ msgid ""
"\">LED</abbr>s if possible." "\">LED</abbr>s if possible."
msgstr "" msgstr ""
msgid "DHCP Leases"
msgstr "Conexiuni DHCP"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "Server DHCP" msgstr "Server DHCP"
@ -752,9 +752,6 @@ msgstr ""
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Optiuni DHCP" msgstr "Optiuni DHCP"
msgid "DHCPv6 Leases"
msgstr ""
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -936,6 +933,9 @@ msgid ""
"<abbr title=\"Domain Name System\">DNS</abbr>-Name" "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
msgstr "" msgstr ""
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Descarca si instaleaza pachetul" msgstr "Descarca si instaleaza pachetul"
@ -1046,6 +1046,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "" msgstr ""
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "" msgstr ""
@ -1078,6 +1081,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Stergere..." msgstr "Stergere..."
@ -1261,7 +1270,7 @@ msgstr "Spatiu liber"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2537,12 +2546,12 @@ msgstr ""
"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>-" "<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>-"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2550,12 +2559,12 @@ msgid "Really reset all changes?"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2891,9 +2900,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr ""
msgid "Source" msgid "Source"
msgstr "Sursa" msgstr "Sursa"
@ -3359,6 +3365,9 @@ msgstr "Modificari nesalvate"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Tipul de protocol neacceptat." msgstr "Tipul de protocol neacceptat."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "" msgstr ""
@ -3610,6 +3619,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "" msgstr ""
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "" msgstr ""
@ -3645,9 +3657,6 @@ msgstr ""
msgid "half-duplex" msgid "half-duplex"
msgstr "" msgstr ""
msgid "help"
msgstr "ajutor"
msgid "hidden" msgid "hidden"
msgstr "ascuns" msgstr "ascuns"
@ -3696,6 +3705,9 @@ msgstr ""
msgid "open" msgid "open"
msgstr "" msgstr ""
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3747,6 +3759,12 @@ msgstr "da"
msgid "« Back" msgid "« Back"
msgstr "« Inapoi" msgstr "« Inapoi"
#~ msgid "DHCP Leases"
#~ msgstr "Conexiuni DHCP"
#~ msgid "help"
#~ msgstr "ajutor"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "Statusul IPv4 pe WAN" #~ msgstr "Statusul IPv4 pe WAN"

View file

@ -51,6 +51,9 @@ msgstr "-- проверка по метке --"
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "-- проверка по uuid --" msgstr "-- проверка по uuid --"
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Загрузка за 1 минуту:" msgstr "Загрузка за 1 минуту:"
@ -793,9 +796,6 @@ msgstr ""
"Настройка поведения светодиодной индикации <abbr title=\"Светодиод\">LED</" "Настройка поведения светодиодной индикации <abbr title=\"Светодиод\">LED</"
"abbr>s устройства, если это возможно." "abbr>s устройства, если это возможно."
msgid "DHCP Leases"
msgstr "Аренды DHCP"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCP-сервер" msgstr "DHCP-сервер"
@ -808,9 +808,6 @@ msgstr "DHCP-клиент"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCP-Настройки" msgstr "DHCP-Настройки"
msgid "DHCPv6 Leases"
msgstr "Аренды DHCPv6"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "DHCPv6 клиент" msgstr "DHCPv6 клиент"
@ -1003,6 +1000,9 @@ msgstr ""
"Не перенаправлять <abbr title=\"Служба доменных имён\">DNS</abbr>-запросы " "Не перенаправлять <abbr title=\"Служба доменных имён\">DNS</abbr>-запросы "
"без <abbr title=\"Служба доменных имён\">DNS</abbr>-имени." "без <abbr title=\"Служба доменных имён\">DNS</abbr>-имени."
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Загрузить и установить пакет" msgstr "Загрузить и установить пакет"
@ -1120,6 +1120,9 @@ msgstr "Включите флаг DF (не Фрагментировать) ин
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Включить эту<br />точку монтирования" msgstr "Включить эту<br />точку монтирования"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Включить этот раздел подкачки" msgstr "Включить этот раздел подкачки"
@ -1154,6 +1157,12 @@ msgstr "Конечная точка Хоста"
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "Конечная точка Порта" msgstr "Конечная точка Порта"
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Стирание..." msgstr "Стирание..."
@ -1341,10 +1350,10 @@ msgstr "Свободное место"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
"Дополнительная информация о интерфейсах и партнерах WireGuard приведена в <a " "Дополнительная информация о интерфейсах и партнерах WireGuard приведена в <a "
"href=\"http://wireguard.io\">wireguard.io</a>." "href=\"http://wireguard.com\">wireguard.com</a>."
msgid "GHz" msgid "GHz"
msgstr "ГГц" msgstr "ГГц"
@ -2688,15 +2697,12 @@ msgstr ""
"динамической настройки узла\">DHCP</abbr>-сервера." "динамической настройки узла\">DHCP</abbr>-сервера."
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"Действительно удалить этот интерфейс? Удаление не может быть отменено!\\nВы "
"можете потерять доступ к этому устройству, если вы подключены через этот "
"интерфейс."
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"Действительно удалить эту беспроводную сеть? Удаление не может быть отменено!" "Действительно удалить эту беспроводную сеть? Удаление не может быть отменено!"
@ -2707,18 +2713,16 @@ msgid "Really reset all changes?"
msgstr "Действительно сбросить все изменения?" msgstr "Действительно сбросить все изменения?"
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"Действительно отключить сеть? Вы можете потерять доступ к этому устройству, "
"если вы подключены через этот интерфейс."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"Действительно отключить интерфейс \"%s\" ?\\nВы можете потерять доступ к " "Действительно отключить интерфейс \"%s\"? Вы можете потерять доступ к этому "
"этому устройству, если вы подключены через этот интерфейс." "устройству, если вы подключены через этот интерфейс."
msgid "Really switch protocol?" msgid "Really switch protocol?"
msgstr "Вы действительно хотите изменить протокол?" msgstr "Вы действительно хотите изменить протокол?"
@ -3068,9 +3072,6 @@ msgstr ""
"должна быть установлена вручную. Обратитесь к wiki для получения конкретных " "должна быть установлена вручную. Обратитесь к wiki для получения конкретных "
"инструкций для вашего устройства." "инструкций для вашего устройства."
msgid "Sort"
msgstr "Сортировка"
msgid "Source" msgid "Source"
msgstr "Источник" msgstr "Источник"
@ -3607,6 +3608,9 @@ msgstr "Непринятые изменения"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Неподдерживаемый тип протокола." msgstr "Неподдерживаемый тип протокола."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Обновить списки" msgstr "Обновить списки"
@ -3882,6 +3886,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "соед. мостом" msgstr "соед. мостом"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "создать:" msgstr "создать:"
@ -3919,9 +3926,6 @@ msgstr "полный дуплекс"
msgid "half-duplex" msgid "half-duplex"
msgstr "полудуплекс" msgstr "полудуплекс"
msgid "help"
msgstr "помощь"
msgid "hidden" msgid "hidden"
msgstr "скрытый" msgstr "скрытый"
@ -3970,6 +3974,9 @@ msgstr "включено"
msgid "open" msgid "open"
msgstr "открыть" msgstr "открыть"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "overlay" msgstr "overlay"
@ -4021,6 +4028,33 @@ msgstr "да"
msgid "« Back" msgid "« Back"
msgstr "« Назад" msgstr "« Назад"
#~ msgid "DHCP Leases"
#~ msgstr "Аренды DHCP"
#~ msgid "DHCPv6 Leases"
#~ msgstr "Аренды DHCPv6"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "Действительно удалить этот интерфейс? Удаление не может быть отменено!"
#~ "\\nВы можете потерять доступ к этому устройству, если вы подключены через "
#~ "этот интерфейс."
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "Действительно отключить сеть? Вы можете потерять доступ к этому "
#~ "устройству, если вы подключены через этот интерфейс."
#~ msgid "Sort"
#~ msgstr "Сортировка"
#~ msgid "help"
#~ msgstr "помощь"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "Состояние IPv4 WAN" #~ msgstr "Состояние IPv4 WAN"

View file

@ -44,6 +44,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "" msgstr ""
@ -720,9 +723,6 @@ msgid ""
"\">LED</abbr>s if possible." "\">LED</abbr>s if possible."
msgstr "" msgstr ""
msgid "DHCP Leases"
msgstr ""
msgid "DHCP Server" msgid "DHCP Server"
msgstr "" msgstr ""
@ -735,9 +735,6 @@ msgstr ""
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "" msgstr ""
msgid "DHCPv6 Leases"
msgstr ""
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -917,6 +914,9 @@ msgid ""
"<abbr title=\"Domain Name System\">DNS</abbr>-Name" "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
msgstr "" msgstr ""
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "" msgstr ""
@ -1027,6 +1027,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "" msgstr ""
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "" msgstr ""
@ -1059,6 +1062,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "" msgstr ""
@ -1241,7 +1250,7 @@ msgstr ""
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2510,12 +2519,12 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2523,12 +2532,12 @@ msgid "Really reset all changes?"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2863,9 +2872,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr ""
msgid "Source" msgid "Source"
msgstr "" msgstr ""
@ -3329,6 +3335,9 @@ msgstr ""
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "" msgstr ""
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "" msgstr ""
@ -3578,6 +3587,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "" msgstr ""
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "" msgstr ""
@ -3613,9 +3625,6 @@ msgstr ""
msgid "half-duplex" msgid "half-duplex"
msgstr "" msgstr ""
msgid "help"
msgstr ""
msgid "hidden" msgid "hidden"
msgstr "" msgstr ""
@ -3664,6 +3673,9 @@ msgstr ""
msgid "open" msgid "open"
msgstr "" msgstr ""
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""

View file

@ -47,6 +47,9 @@ msgstr "-- matcha enligt märke --"
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "-- matcha enligt uuid --" msgstr "-- matcha enligt uuid --"
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "Belastning senaste minuten:" msgstr "Belastning senaste minuten:"
@ -734,9 +737,6 @@ msgid ""
"\">LED</abbr>s if possible." "\">LED</abbr>s if possible."
msgstr "" msgstr ""
msgid "DHCP Leases"
msgstr "DHCP-kontrakt"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCP-server" msgstr "DHCP-server"
@ -749,9 +749,6 @@ msgstr "DHCP-klient"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCP-alternativ" msgstr "DHCP-alternativ"
msgid "DHCPv6 Leases"
msgstr "DHCPv6-kontrakt"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "DHCPv6-klient" msgstr "DHCPv6-klient"
@ -937,6 +934,9 @@ msgstr ""
"Vidarebefordra inte <abbr title=\"Domain Name System\">DNS</abbr>-" "Vidarebefordra inte <abbr title=\"Domain Name System\">DNS</abbr>-"
"förfrågningar utan <abbr title=\"Domain Name System\">DNS</abbr>-namn" "förfrågningar utan <abbr title=\"Domain Name System\">DNS</abbr>-namn"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Ladda ner och installera paket" msgstr "Ladda ner och installera paket"
@ -1047,6 +1047,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "Aktivera den här monteringen" msgstr "Aktivera den här monteringen"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "Aktivera den här swap" msgstr "Aktivera den här swap"
@ -1079,6 +1082,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "Raderar..." msgstr "Raderar..."
@ -1261,7 +1270,7 @@ msgstr "Fritt utrymme"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2533,12 +2542,12 @@ msgstr ""
"Configuration Protocol\">DHCP</abbr>-servern" "Configuration Protocol\">DHCP</abbr>-servern"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2546,12 +2555,12 @@ msgid "Really reset all changes?"
msgstr "Verkligen återställa alla ändringar?" msgstr "Verkligen återställa alla ändringar?"
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2886,9 +2895,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr "Sortera"
msgid "Source" msgid "Source"
msgstr "Källa" msgstr "Källa"
@ -3356,6 +3362,9 @@ msgstr "Osparade ändringar"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "Protokolltypen stöds inte." msgstr "Protokolltypen stöds inte."
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "Uppdatera listor" msgstr "Uppdatera listor"
@ -3611,6 +3620,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "bryggad" msgstr "bryggad"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "skapa:" msgstr "skapa:"
@ -3646,9 +3658,6 @@ msgstr "full-duplex"
msgid "half-duplex" msgid "half-duplex"
msgstr "halv-duplex" msgstr "halv-duplex"
msgid "help"
msgstr "hjälp"
msgid "hidden" msgid "hidden"
msgstr "gömd" msgstr "gömd"
@ -3697,6 +3706,9 @@ msgstr "på"
msgid "open" msgid "open"
msgstr "öppen" msgstr "öppen"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3747,3 +3759,15 @@ msgstr "ja"
msgid "« Back" msgid "« Back"
msgstr "« Bakåt" msgstr "« Bakåt"
#~ msgid "DHCP Leases"
#~ msgstr "DHCP-kontrakt"
#~ msgid "DHCPv6 Leases"
#~ msgstr "DHCPv6-kontrakt"
#~ msgid "Sort"
#~ msgstr "Sortera"
#~ msgid "help"
#~ msgstr "hjälp"

View file

@ -37,6 +37,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "" msgstr ""
@ -713,9 +716,6 @@ msgid ""
"\">LED</abbr>s if possible." "\">LED</abbr>s if possible."
msgstr "" msgstr ""
msgid "DHCP Leases"
msgstr ""
msgid "DHCP Server" msgid "DHCP Server"
msgstr "" msgstr ""
@ -728,9 +728,6 @@ msgstr ""
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "" msgstr ""
msgid "DHCPv6 Leases"
msgstr ""
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -910,6 +907,9 @@ msgid ""
"<abbr title=\"Domain Name System\">DNS</abbr>-Name" "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
msgstr "" msgstr ""
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "" msgstr ""
@ -1020,6 +1020,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "" msgstr ""
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "" msgstr ""
@ -1052,6 +1055,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "" msgstr ""
@ -1234,7 +1243,7 @@ msgstr ""
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2503,12 +2512,12 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2516,12 +2525,12 @@ msgid "Really reset all changes?"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2856,9 +2865,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr ""
msgid "Source" msgid "Source"
msgstr "" msgstr ""
@ -3322,6 +3328,9 @@ msgstr ""
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "" msgstr ""
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "" msgstr ""
@ -3571,6 +3580,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "" msgstr ""
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "" msgstr ""
@ -3606,9 +3618,6 @@ msgstr ""
msgid "half-duplex" msgid "half-duplex"
msgstr "" msgstr ""
msgid "help"
msgstr ""
msgid "hidden" msgid "hidden"
msgstr "" msgstr ""
@ -3657,6 +3666,9 @@ msgstr ""
msgid "open" msgid "open"
msgstr "" msgstr ""
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""

View file

@ -47,6 +47,9 @@ msgstr "-- etikete göre eşleştir --"
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "-- uuid'e göre eşleştir --" msgstr "-- uuid'e göre eşleştir --"
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "1 Dakikalık Yük:" msgstr "1 Dakikalık Yük:"
@ -733,9 +736,6 @@ msgid ""
"\">LED</abbr>s if possible." "\">LED</abbr>s if possible."
msgstr "" msgstr ""
msgid "DHCP Leases"
msgstr ""
msgid "DHCP Server" msgid "DHCP Server"
msgstr "" msgstr ""
@ -748,9 +748,6 @@ msgstr ""
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "" msgstr ""
msgid "DHCPv6 Leases"
msgstr ""
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -930,6 +927,9 @@ msgid ""
"<abbr title=\"Domain Name System\">DNS</abbr>-Name" "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
msgstr "" msgstr ""
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "" msgstr ""
@ -1040,6 +1040,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "" msgstr ""
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "" msgstr ""
@ -1072,6 +1075,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "" msgstr ""
@ -1254,7 +1263,7 @@ msgstr ""
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2523,12 +2532,12 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2536,12 +2545,12 @@ msgid "Really reset all changes?"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2876,9 +2885,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr "Sıralama"
msgid "Source" msgid "Source"
msgstr "Kaynak" msgstr "Kaynak"
@ -3342,6 +3348,9 @@ msgstr ""
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "" msgstr ""
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "" msgstr ""
@ -3593,6 +3602,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "köprülü" msgstr "köprülü"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "oluşturma:" msgstr "oluşturma:"
@ -3628,9 +3640,6 @@ msgstr "tam çift yönlü"
msgid "half-duplex" msgid "half-duplex"
msgstr "yarı çift yönlü" msgstr "yarı çift yönlü"
msgid "help"
msgstr "yardım"
msgid "hidden" msgid "hidden"
msgstr "gizli" msgstr "gizli"
@ -3679,6 +3688,9 @@ msgstr "açık"
msgid "open" msgid "open"
msgstr "açık" msgstr "açık"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "bindirilmiş" msgstr "bindirilmiş"
@ -3730,6 +3742,12 @@ msgstr "evet"
msgid "« Back" msgid "« Back"
msgstr "« Geri" msgstr "« Geri"
#~ msgid "Sort"
#~ msgstr "Sıralama"
#~ msgid "help"
#~ msgstr "yardım"
#~ msgid "Apply" #~ msgid "Apply"
#~ msgstr "Uygula" #~ msgstr "Uygula"

File diff suppressed because it is too large Load diff

View file

@ -49,6 +49,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "" msgstr ""
@ -729,9 +732,6 @@ msgstr ""
"Tùy chỉnh chế độ của thiết bị <abbr title=\"Light Emitting Diode\">LED</" "Tùy chỉnh chế độ của thiết bị <abbr title=\"Light Emitting Diode\">LED</"
"abbr>s nếu có thể." "abbr>s nếu có thể."
msgid "DHCP Leases"
msgstr ""
msgid "DHCP Server" msgid "DHCP Server"
msgstr "" msgstr ""
@ -744,9 +744,6 @@ msgstr ""
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "Tùy chọn DHCP" msgstr "Tùy chọn DHCP"
msgid "DHCPv6 Leases"
msgstr ""
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -932,6 +929,9 @@ msgstr ""
"Don&amp;#39;t chuyển tiếp <abbr title=\"Hệ thống tên miền\">DNS</abbr>-Yêu " "Don&amp;#39;t chuyển tiếp <abbr title=\"Hệ thống tên miền\">DNS</abbr>-Yêu "
"cầu không cần <abbr title=\"Hệ thống tên miền\">DNS</abbr>-Tên" "cầu không cần <abbr title=\"Hệ thống tên miền\">DNS</abbr>-Tên"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "Tải và cài đặt gói" msgstr "Tải và cài đặt gói"
@ -1045,6 +1045,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "" msgstr ""
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "" msgstr ""
@ -1077,6 +1080,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "" msgstr ""
@ -1259,7 +1268,7 @@ msgstr ""
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2548,12 +2557,12 @@ msgstr ""
"Configuration Protocol\">DHCP</abbr>-Server" "Configuration Protocol\">DHCP</abbr>-Server"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
@ -2561,12 +2570,12 @@ msgid "Really reset all changes?"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
@ -2903,9 +2912,6 @@ msgid ""
"instructions." "instructions."
msgstr "" msgstr ""
msgid "Sort"
msgstr ""
msgid "Source" msgid "Source"
msgstr "Nguồn" msgstr "Nguồn"
@ -3384,6 +3390,9 @@ msgstr "Thay đổi không lưu"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "" msgstr ""
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "" msgstr ""
@ -3637,6 +3646,9 @@ msgstr ""
msgid "bridged" msgid "bridged"
msgstr "" msgstr ""
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "" msgstr ""
@ -3674,9 +3686,6 @@ msgstr ""
msgid "half-duplex" msgid "half-duplex"
msgstr "" msgstr ""
msgid "help"
msgstr ""
msgid "hidden" msgid "hidden"
msgstr "" msgstr ""
@ -3725,6 +3734,9 @@ msgstr ""
msgid "open" msgid "open"
msgstr "" msgstr ""
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""

View file

@ -39,6 +39,9 @@ msgstr "-- 根据标签匹配 --"
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "-- 根据 UUID 匹配 --" msgstr "-- 根据 UUID 匹配 --"
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "1 分钟负载:" msgstr "1 分钟负载:"
@ -378,13 +381,13 @@ msgid "Any zone"
msgstr "任意区域" msgstr "任意区域"
msgid "Apply request failed with status <code>%h</code>" msgid "Apply request failed with status <code>%h</code>"
msgstr "" msgstr "应用请求失败,状态 <code>%h</code>"
msgid "Apply unchecked" msgid "Apply unchecked"
msgstr "" msgstr "应用未选中"
msgid "Architecture" msgid "Architecture"
msgstr "" msgstr "架构"
msgid "" msgid ""
"Assign a part of given length of every public IPv6-prefix to this interface" "Assign a part of given length of every public IPv6-prefix to this interface"
@ -401,7 +404,7 @@ msgid "Associated Stations"
msgstr "已连接站点" msgstr "已连接站点"
msgid "Associations" msgid "Associations"
msgstr "" msgstr "关联数"
msgid "Auth Group" msgid "Auth Group"
msgstr "认证组" msgstr "认证组"
@ -561,10 +564,10 @@ msgid "Changes"
msgstr "修改数" msgstr "修改数"
msgid "Changes applied." msgid "Changes applied."
msgstr "更改已应用" msgstr "更改已应用"
msgid "Changes have been reverted." msgid "Changes have been reverted."
msgstr "" msgstr "更改已取消。"
msgid "Changes the administrator password for accessing the device" msgid "Changes the administrator password for accessing the device"
msgstr "修改访问设备的管理员密码" msgstr "修改访问设备的管理员密码"
@ -575,7 +578,7 @@ msgstr "信道"
msgid "" msgid ""
"Channel %d is not available in the %s regulatory domain and has been auto-" "Channel %d is not available in the %s regulatory domain and has been auto-"
"adjusted to %d." "adjusted to %d."
msgstr "" msgstr "信道 %d 在 %s 监管区域内不可用并已自动调整到 %d。"
msgid "Check" msgid "Check"
msgstr "检查" msgstr "检查"
@ -657,10 +660,10 @@ msgid "Configuration files will be kept."
msgstr "配置文件将被保留。" msgstr "配置文件将被保留。"
msgid "Configuration has been applied." msgid "Configuration has been applied."
msgstr "" msgstr "配置已应用。"
msgid "Configuration has been rolled back!" msgid "Configuration has been rolled back!"
msgstr "" msgstr "配置已回滚!"
msgid "Confirmation" msgid "Confirmation"
msgstr "确认密码" msgstr "确认密码"
@ -682,6 +685,8 @@ msgid ""
"changes. You might need to reconnect if you modified network related " "changes. You might need to reconnect if you modified network related "
"settings such as the IP address or wireless security credentials." "settings such as the IP address or wireless security credentials."
msgstr "" msgstr ""
"应用配置更改后,无法重新获得对设备的访问权限。如果您修改了网络相关设置如 IP "
"地址或无线安全证书,则可能需要重新连接。"
msgid "Country" msgid "Country"
msgstr "国家" msgstr "国家"
@ -735,9 +740,6 @@ msgid ""
"\">LED</abbr>s if possible." "\">LED</abbr>s if possible."
msgstr "自定义此设备的 <abbr title=\"Light Emitting Diode\">LED</abbr> 行为。" msgstr "自定义此设备的 <abbr title=\"Light Emitting Diode\">LED</abbr> 行为。"
msgid "DHCP Leases"
msgstr "DHCP 分配"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCP 服务器" msgstr "DHCP 服务器"
@ -750,9 +752,6 @@ msgstr "DHCP 客户端"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCP 选项" msgstr "DHCP 选项"
msgid "DHCPv6 Leases"
msgstr "DHCPv6 分配"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "DHCPv6 客户端" msgstr "DHCPv6 客户端"
@ -852,7 +851,7 @@ msgid "Device unreachable"
msgstr "无法连接到设备" msgstr "无法连接到设备"
msgid "Device unreachable!" msgid "Device unreachable!"
msgstr "" msgstr "无法连接到设备!"
msgid "Diagnostics" msgid "Diagnostics"
msgstr "网络诊断" msgstr "网络诊断"
@ -889,7 +888,7 @@ msgid "Discard upstream RFC1918 responses"
msgstr "丢弃 RFC1918 上行响应数据" msgstr "丢弃 RFC1918 上行响应数据"
msgid "Dismiss" msgid "Dismiss"
msgstr "" msgstr "解除"
msgid "Displaying only packages containing" msgid "Displaying only packages containing"
msgstr "只显示有内容的软件包" msgstr "只显示有内容的软件包"
@ -940,6 +939,9 @@ msgid ""
msgstr "" msgstr ""
"不转发没有 <abbr title=\"Domain Name System\">DNS</abbr> 名称的解析请求" "不转发没有 <abbr title=\"Domain Name System\">DNS</abbr> 名称的解析请求"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "下载并安装软件包" msgstr "下载并安装软件包"
@ -1004,6 +1006,7 @@ msgid ""
"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> " "Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
"snooping" "snooping"
msgstr "" msgstr ""
"启用 <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> 窥探"
msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>" msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
msgstr "开启 <abbr title=\"Spanning Tree Protocol\">STP</abbr>" msgstr "开启 <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
@ -1053,6 +1056,9 @@ msgstr "启用后报文的 DF禁止分片标志。"
msgid "Enable this mount" msgid "Enable this mount"
msgstr "启用此挂载点" msgstr "启用此挂载点"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "启用此 swap 分区" msgstr "启用此 swap 分区"
@ -1063,7 +1069,7 @@ msgid "Enabled"
msgstr "启用" msgstr "启用"
msgid "Enables IGMP snooping on this bridge" msgid "Enables IGMP snooping on this bridge"
msgstr "" msgstr "在此桥接上启用 IGMP 窥探"
msgid "" msgid ""
"Enables fast roaming among access points that belong to the same Mobility " "Enables fast roaming among access points that belong to the same Mobility "
@ -1085,6 +1091,12 @@ msgstr "端点主机"
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "端点端口" msgstr "端点端口"
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "擦除中..." msgstr "擦除中..."
@ -1144,7 +1156,7 @@ msgid "FT protocol"
msgstr "FT 协议" msgstr "FT 协议"
msgid "Failed to confirm apply within %ds, waiting for rollback…" msgid "Failed to confirm apply within %ds, waiting for rollback…"
msgstr "" msgstr "在 %d 秒内确认应用失败,等待回滚..."
msgid "File" msgid "File"
msgstr "文件" msgstr "文件"
@ -1267,10 +1279,10 @@ msgstr "空闲空间"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
"有关 WireGuard 接口和 Peer 的更多信息:<a href=\"http://wireguard.io" "有关 WireGuard 接口和 Peer 的更多信息:<a href=\"http://wireguard.com"
"\">wireguard.io</a>。" "\">wireguard.com</a>。"
msgid "GHz" msgid "GHz"
msgstr "GHz" msgstr "GHz"
@ -1397,7 +1409,7 @@ msgid "IPv4 Firewall"
msgstr "IPv4 防火墙" msgstr "IPv4 防火墙"
msgid "IPv4 Upstream" msgid "IPv4 Upstream"
msgstr "" msgstr "IPv4 上游"
msgid "IPv4 address" msgid "IPv4 address"
msgstr "IPv4 地址" msgstr "IPv4 地址"
@ -1448,7 +1460,7 @@ msgid "IPv6 ULA-Prefix"
msgstr "IPv6 ULA 前缀" msgstr "IPv6 ULA 前缀"
msgid "IPv6 Upstream" msgid "IPv6 Upstream"
msgstr "" msgstr "IPv6 上游"
msgid "IPv6 address" msgid "IPv6 address"
msgstr "IPv6 地址" msgstr "IPv6 地址"
@ -2158,7 +2170,7 @@ msgid "Obfuscated Password"
msgstr "混淆密码" msgstr "混淆密码"
msgid "Obtain IPv6-Address" msgid "Obtain IPv6-Address"
msgstr "" msgstr "获取 IPv6 地址"
msgid "Off-State Delay" msgid "Off-State Delay"
msgstr "关闭时间" msgstr "关闭时间"
@ -2566,13 +2578,12 @@ msgstr ""
"Configuration Protocol\">DHCP</abbr> 服务器" "Configuration Protocol\">DHCP</abbr> 服务器"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"确定要删除此接口?删除操作无法撤销!\\n删除此接口可能导致无法再访问路由器"
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"确定要删除此无线网络?删除操作无法撤销!\\n删除此无线网络可能导致无法再访问" "确定要删除此无线网络?删除操作无法撤销!\\n删除此无线网络可能导致无法再访问"
@ -2582,14 +2593,12 @@ msgid "Really reset all changes?"
msgstr "确定要放弃所有更改?" msgstr "确定要放弃所有更改?"
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"确定要关闭此网络?\\n如果您正在使用此接口连接路由器关闭此网络可能导致连接断"
"开!"
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"确定要关闭接口 \"%s\"\\n如果您正在使用此接口连接路由器关闭此网络可能导致" "确定要关闭接口 \"%s\"\\n如果您正在使用此接口连接路由器关闭此网络可能导致"
@ -2742,16 +2751,16 @@ msgid "Reveal/hide password"
msgstr "显示/隐藏 密码" msgstr "显示/隐藏 密码"
msgid "Revert" msgid "Revert"
msgstr "放弃" msgstr "恢复"
msgid "Revert changes" msgid "Revert changes"
msgstr "" msgstr "恢复更改"
msgid "Revert request failed with status <code>%h</code>" msgid "Revert request failed with status <code>%h</code>"
msgstr "" msgstr "恢复请求失败,状态 <code>%h</code>"
msgid "Reverting configuration…" msgid "Reverting configuration…"
msgstr "" msgstr "正在恢复配置..."
msgid "Root" msgid "Root"
msgstr "Root" msgstr "Root"
@ -2816,7 +2825,7 @@ msgid "Save"
msgstr "保存" msgstr "保存"
msgid "Save & Apply" msgid "Save & Apply"
msgstr "保存&应用" msgstr "保存应用"
msgid "Scan" msgid "Scan"
msgstr "扫描" msgstr "扫描"
@ -2934,9 +2943,6 @@ msgstr ""
"抱歉,您的设备暂不支持 sysupgrade 升级,需手动更新固件。请参考 Wiki 中关于此" "抱歉,您的设备暂不支持 sysupgrade 升级,需手动更新固件。请参考 Wiki 中关于此"
"设备的固件更新说明。" "设备的固件更新说明。"
msgid "Sort"
msgstr "排序"
msgid "Source" msgid "Source"
msgstr "源地址" msgstr "源地址"
@ -2979,7 +2985,7 @@ msgid "Start priority"
msgstr "启动优先级" msgstr "启动优先级"
msgid "Starting configuration apply…" msgid "Starting configuration apply…"
msgstr "" msgstr "开始应用配置..."
msgid "Startup" msgid "Startup"
msgstr "启动项" msgstr "启动项"
@ -3146,6 +3152,9 @@ msgid ""
"or revert all pending changes to keep the currently working configuration " "or revert all pending changes to keep the currently working configuration "
"state." "state."
msgstr "" msgstr ""
"在应用挂起的更改后 %d 秒内无法到达该设备,出于安全原因导致配置回滚。如果您认"
"为配置更改仍然正确,请执行未选中的配置应用。或者您可以在尝试再次应用之前解除"
"此警告并编辑更改,或者还原所有未完成的更改以保持当前正在工作的配置状态。"
msgid "" msgid ""
"The device file of the memory or partition (<abbr title=\"for example\">e.g." "The device file of the memory or partition (<abbr title=\"for example\">e.g."
@ -3235,7 +3244,7 @@ msgid "There are no active leases."
msgstr "没有已分配的租约。" msgstr "没有已分配的租约。"
msgid "There are no changes to apply." msgid "There are no changes to apply."
msgstr "" msgstr "没有待生效的更改。"
msgid "There are no pending changes to revert!" msgid "There are no pending changes to revert!"
msgstr "没有可放弃的更改!" msgstr "没有可放弃的更改!"
@ -3423,6 +3432,9 @@ msgstr "未保存的配置"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "不支持的协议类型" msgstr "不支持的协议类型"
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "刷新列表" msgstr "刷新列表"
@ -3592,7 +3604,7 @@ msgid "Waiting for command to complete..."
msgstr "等待命令执行完成..." msgstr "等待命令执行完成..."
msgid "Waiting for configuration to get applied… %ds" msgid "Waiting for configuration to get applied… %ds"
msgstr "" msgstr "等待应用配置... %d 秒"
msgid "Waiting for device..." msgid "Waiting for device..."
msgstr "等待设备..." msgstr "等待设备..."
@ -3685,6 +3697,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "桥接的" msgstr "桥接的"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "创建:" msgstr "创建:"
@ -3722,9 +3737,6 @@ msgstr "全双工"
msgid "half-duplex" msgid "half-duplex"
msgstr "半双工" msgstr "半双工"
msgid "help"
msgstr "帮助"
msgid "hidden" msgid "hidden"
msgstr "隐藏" msgstr "隐藏"
@ -3773,11 +3785,14 @@ msgstr "开"
msgid "open" msgid "open"
msgstr "开放式" msgstr "开放式"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "覆盖" msgstr "覆盖"
msgid "random" msgid "random"
msgstr "" msgstr "随机"
msgid "relay mode" msgid "relay mode"
msgstr "中继模式" msgstr "中继模式"
@ -3824,6 +3839,32 @@ msgstr "是"
msgid "« Back" msgid "« Back"
msgstr "« 后退" msgstr "« 后退"
#~ msgid "DHCP Leases"
#~ msgstr "DHCP 分配"
#~ msgid "DHCPv6 Leases"
#~ msgstr "DHCPv6 分配"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "确定要删除此接口?删除操作无法撤销!\\n删除此接口可能导致无法再访问路由"
#~ "器!"
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "确定要关闭此网络?\\n如果您正在使用此接口连接路由器关闭此网络可能导致连"
#~ "接断开!"
#~ msgid "Sort"
#~ msgstr "排序"
#~ msgid "help"
#~ msgstr "帮助"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "IPv4 WAN 状态" #~ msgstr "IPv4 WAN 状态"

View file

@ -47,6 +47,9 @@ msgstr ""
msgid "-- match by uuid --" msgid "-- match by uuid --"
msgstr "" msgstr ""
msgid "-- please select --"
msgstr ""
msgid "1 Minute Load:" msgid "1 Minute Load:"
msgstr "1分鐘負載" msgstr "1分鐘負載"
@ -740,9 +743,6 @@ msgstr ""
"如果可以的話,自定這個設備的動作 <abbr title=\"Light Emitting Diode\">LED</" "如果可以的話,自定這個設備的動作 <abbr title=\"Light Emitting Diode\">LED</"
"abbr>s ." "abbr>s ."
msgid "DHCP Leases"
msgstr "DHCP的釋放週期"
msgid "DHCP Server" msgid "DHCP Server"
msgstr "DHCP伺服器" msgstr "DHCP伺服器"
@ -755,9 +755,6 @@ msgstr "DHCP用戶端"
msgid "DHCP-Options" msgid "DHCP-Options"
msgstr "DHCP選項" msgstr "DHCP選項"
msgid "DHCPv6 Leases"
msgstr "DHCPv6版釋放時間週期"
msgid "DHCPv6 client" msgid "DHCPv6 client"
msgstr "" msgstr ""
@ -945,6 +942,9 @@ msgstr ""
"若沒 <abbr title=\"Domain Name System\">DNS</abbr>-名稱的話,不要轉發 <abbr " "若沒 <abbr title=\"Domain Name System\">DNS</abbr>-名稱的話,不要轉發 <abbr "
"title=\"Domain Name System\">DNS</abbr>-請求" "title=\"Domain Name System\">DNS</abbr>-請求"
msgid "Down"
msgstr ""
msgid "Download and install package" msgid "Download and install package"
msgstr "下載並安裝軟體包" msgstr "下載並安裝軟體包"
@ -1057,6 +1057,9 @@ msgstr ""
msgid "Enable this mount" msgid "Enable this mount"
msgstr "啟用掛載點" msgstr "啟用掛載點"
msgid "Enable this network"
msgstr ""
msgid "Enable this swap" msgid "Enable this swap"
msgstr "啟用swap功能" msgstr "啟用swap功能"
@ -1089,6 +1092,12 @@ msgstr ""
msgid "Endpoint Port" msgid "Endpoint Port"
msgstr "" msgstr ""
msgid "Enter custom value"
msgstr ""
msgid "Enter custom values"
msgstr ""
msgid "Erasing..." msgid "Erasing..."
msgstr "刪除中..." msgstr "刪除中..."
@ -1272,7 +1281,7 @@ msgstr "剩餘空間"
msgid "" msgid ""
"Further information about WireGuard interfaces and peers at <a href=\"http://" "Further information about WireGuard interfaces and peers at <a href=\"http://"
"wireguard.io\">wireguard.io</a>." "wireguard.com\">wireguard.com</a>."
msgstr "" msgstr ""
msgid "GHz" msgid "GHz"
@ -2553,14 +2562,12 @@ msgstr ""
"Configuration Protocol\">DHCP</abbr>-伺服器" "Configuration Protocol\">DHCP</abbr>-伺服器"
msgid "" msgid ""
"Really delete this interface? The deletion cannot be undone!\\nYou might " "Really delete this interface? The deletion cannot be undone! You might lose "
"lose access to this device if you are connected via this interface." "access to this device if you are connected via this interface"
msgstr "" msgstr ""
"真的要刪除這介面?無法復元刪除!\n"
"假如您要透過這個介面連線您可能會無法存取這個設備."
msgid "" msgid ""
"Really delete this wireless network? The deletion cannot be undone!\\nYou " "Really delete this wireless network? The deletion cannot be undone! You "
"might lose access to this device if you are connected via this network." "might lose access to this device if you are connected via this network."
msgstr "" msgstr ""
"真的要刪除這個無線網路?無法復元的刪除!\n" "真的要刪除這個無線網路?無法復元的刪除!\n"
@ -2569,16 +2576,13 @@ msgstr ""
msgid "Really reset all changes?" msgid "Really reset all changes?"
msgstr "確定要重置回復原廠?" msgstr "確定要重置回復原廠?"
#, fuzzy
msgid "" msgid ""
"Really shut down network?\\nYou might lose access to this device if you are " "Really shut down network? You might lose access to this device if you are "
"connected via this interface." "connected via this interface"
msgstr "" msgstr ""
"真的要刪除這個網路 ?\n"
"假如您是透過這個介面連線您可能會無法存取這個設備."
msgid "" msgid ""
"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if " "Really shutdown interface \"%s\"? You might lose access to this device if "
"you are connected via this interface." "you are connected via this interface."
msgstr "" msgstr ""
"真的要關閉這個介面 \"%s\" ?!\n" "真的要關閉這個介面 \"%s\" ?!\n"
@ -2918,9 +2922,6 @@ msgstr ""
"抱歉, 沒有sysupgrade支援出現, 新版韌體映像檔必須手動更新. 請回歸wiki找尋特定" "抱歉, 沒有sysupgrade支援出現, 新版韌體映像檔必須手動更新. 請回歸wiki找尋特定"
"設備安裝指引." "設備安裝指引."
msgid "Sort"
msgstr "分類"
msgid "Source" msgid "Source"
msgstr "來源" msgstr "來源"
@ -3416,6 +3417,9 @@ msgstr "尚未存檔的修改"
msgid "Unsupported protocol type." msgid "Unsupported protocol type."
msgstr "不支援的協定型態" msgstr "不支援的協定型態"
msgid "Up"
msgstr ""
msgid "Update lists" msgid "Update lists"
msgstr "上傳清單" msgstr "上傳清單"
@ -3674,6 +3678,9 @@ msgstr "baseT"
msgid "bridged" msgid "bridged"
msgstr "已橋接" msgstr "已橋接"
msgid "create"
msgstr ""
msgid "create:" msgid "create:"
msgstr "建立:" msgstr "建立:"
@ -3711,9 +3718,6 @@ msgstr "全雙工"
msgid "half-duplex" msgid "half-duplex"
msgstr "半雙工" msgstr "半雙工"
msgid "help"
msgstr "幫助"
msgid "hidden" msgid "hidden"
msgstr "隱藏" msgstr "隱藏"
@ -3762,6 +3766,9 @@ msgstr "開啟"
msgid "open" msgid "open"
msgstr "打開" msgstr "打開"
msgid "output"
msgstr ""
msgid "overlay" msgid "overlay"
msgstr "" msgstr ""
@ -3813,6 +3820,33 @@ msgstr "是的"
msgid "« Back" msgid "« Back"
msgstr "« 倒退" msgstr "« 倒退"
#~ msgid "DHCP Leases"
#~ msgstr "DHCP的釋放週期"
#~ msgid "DHCPv6 Leases"
#~ msgstr "DHCPv6版釋放時間週期"
#~ msgid ""
#~ "Really delete this interface? The deletion cannot be undone! You might "
#~ "lose access to this device if you are connected via this interface."
#~ msgstr ""
#~ "真的要刪除這介面?無法復元刪除!\n"
#~ "假如您要透過這個介面連線您可能會無法存取這個設備."
#, fuzzy
#~ msgid ""
#~ "Really shut down network? You might lose access to this device if you are "
#~ "connected via this interface."
#~ msgstr ""
#~ "真的要刪除這個網路 ?\n"
#~ "假如您是透過這個介面連線您可能會無法存取這個設備."
#~ msgid "Sort"
#~ msgstr "分類"
#~ msgid "help"
#~ msgstr "幫助"
#~ msgid "IPv4 WAN Status" #~ msgid "IPv4 WAN Status"
#~ msgstr "IPv4寬頻連線狀態" #~ msgstr "IPv4寬頻連線狀態"

View file

@ -43,6 +43,9 @@ function index()
end) end)
if has_wifi then if has_wifi then
page = entry({"admin", "network", "wireless_assoclist"}, call("wifi_assoclist"), nil)
page.leaf = true
page = entry({"admin", "network", "wireless_join"}, post("wifi_join"), nil) page = entry({"admin", "network", "wireless_join"}, post("wifi_join"), nil)
page.leaf = true page.leaf = true
@ -384,6 +387,13 @@ function wifi_shutdown(wnet)
wifi_reconnect_shutdown(true, wnet) wifi_reconnect_shutdown(true, wnet)
end end
function wifi_assoclist()
local s = require "luci.tools.status"
luci.http.prepare_content("application/json")
luci.http.write_json(s.wifi_assoclist())
end
function lease_status() function lease_status()
local s = require "luci.tools.status" local s = require "luci.tools.status"

View file

@ -74,7 +74,7 @@ function action_packages()
local out, err local out, err
-- Display -- Display
local display = luci.http.formvalue("display") or "installed" local display = luci.http.formvalue("display") or "available"
-- Letter -- Letter
local letter = string.byte(luci.http.formvalue("letter") or "A", 1) local letter = string.byte(luci.http.formvalue("letter") or "A", 1)

View file

@ -260,7 +260,7 @@ m.uci:foreach("network", "switch",
end end
local vid = s:option(Value, has_vlan4k or "vlan", "VLAN ID", "<div id='portstatus-%s'></div>" % switch_name) local vid = s:option(Value, has_vlan4k or "vlan", "VLAN ID")
local mx_vid = has_vlan4k and 4094 or (num_vlans - 1) local mx_vid = has_vlan4k and 4094 or (num_vlans - 1)
vid.rmempty = false vid.rmempty = false
@ -333,7 +333,7 @@ m.uci:foreach("network", "switch",
local _, pt local _, pt
for _, pt in ipairs(topo.ports) do for _, pt in ipairs(topo.ports) do
local po = s:option(ListValue, tostring(pt.num), pt.label, '<div id="portstatus-%s-%d"></div>' %{ switch_name, pt.num }) local po = s:option(ListValue, tostring(pt.num), pt.label)
po:value("", translate("off")) po:value("", translate("off"))

View file

@ -104,16 +104,17 @@ end
keys = s2:option(TextValue, "_data", "") keys = s2:option(TextValue, "_data", "")
keys.wrap = "off" keys.wrap = "off"
keys.rows = 3 keys.rows = 3
keys.rmempty = false
function keys.cfgvalue() function keys.cfgvalue()
return fs.readfile("/etc/dropbear/authorized_keys") or "" return fs.readfile("/etc/dropbear/authorized_keys") or ""
end end
function keys.write(self, section, value) function keys.write(self, section, value)
if value then return fs.writefile("/etc/dropbear/authorized_keys", value:gsub("\r\n", "\n"))
fs.writefile("/etc/dropbear/authorized_keys", value:gsub("\r\n", "\n")) end
end
function keys.remove(self, section, value)
return fs.writefile("/etc/dropbear/authorized_keys", "")
end end
end end

View file

@ -67,83 +67,81 @@ local getip_host = luci.config.diag and luci.config.diag.getip or "ifconfig.co"
<div class="cbi-map"> <div class="cbi-map">
<h2 name="content"><%:Diagnostics%></h2> <h2 name="content"><%:Diagnostics%></h2>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:Network Utilities%></legend> <legend><%:Network Utilities%></legend>
<br /> <div class="table">
<div class="tr">
<div class="td left">
<input style="margin: 5px 0" type="text" value="<%=ping_host%>" name="ping" /><br />
<% if has_ping6 then %>
<select name="ping_proto" style="width:auto">
<option value="" selected="selected"><%:IPv4%></option>
<option value="6"><%:IPv6%></option>
</select>
<input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping, this.form.ping_proto.selectedIndex)" />
<% else %>
<input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping)" />
<% end %>
</div>
<div style="width:23%; float:left"> <div class="td left">
<input style="margin: 5px 0" type="text" value="<%=ping_host%>" name="ping" /><br /> <input style="margin: 5px 0" type="text" value="<%=route_host%>" name="traceroute" /><br />
<% if has_ping6 then %> <% if has_traceroute6 then %>
<select name="ping_proto" style="width:auto"> <select name="traceroute_proto" style="width:auto">
<option value="" selected="selected"><%:IPv4%></option> <option value="" selected="selected"><%:IPv4%></option>
<option value="6"><%:IPv6%></option> <option value="6"><%:IPv6%></option>
</select> </select>
<input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping, this.form.ping_proto.selectedIndex)" /> <input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute, this.form.traceroute_proto.selectedIndex)" />
<% else %> <% else %>
<input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping)" /> <input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute)" />
<% end %> <% end %>
<% if not has_traceroute6 then %>
<p>&#160;</p>
<p><%:Install iputils-traceroute6 for IPv6 traceroute%></p>
<% end %>
</div>
<div class="td left">
<input style="margin: 5px 0" type="text" value="<%=dns_host%>" name="nslookup" /><br />
<input type="button" value="<%:Nslookup%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.nslookup)" />
</div>
<% if has_speedtest and false then %>
<div class="td left">
<input style="margin: 5px 0" type="text" value="" name="speedtest" placeholder="alternate server" /><br />
<input type="button" value="<%:Speedtest%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.speedtest)" />
</div>
<% end %>
<% if has_iperf3 then %>
<div class="td left">
<input style="margin: 5px 0" type="text" value="<%=iperf3_host%>" name="iperf3" /><br />
<input type="button" value="<%:Iperf3%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.iperf3)" />
</div>
<% end %>
<% if has_curl then %>
<div class="td left">
<input style="margin: 5px 0" type="hidden" value="<%=getip_host%>" name="getip" /><br />
<input type="button" value="<%:Get public IP%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.getip)" />
</div>
<% end %>
<% if has_netstat then %>
<div class="td left">
<input style="margin: 5px 0" type="hidden" value="" name="netstat" /><br />
<input type="button" value="<%:Netstat%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.netstat)" />
</div>
<% end %>
</div>
</div> </div>
</div>
<div style="width:23%; float:left">
<input style="margin: 5px 0" type="text" value="<%=route_host%>" name="traceroute" /><br />
<% if has_traceroute6 then %>
<select name="traceroute_proto" style="width:auto">
<option value="" selected="selected"><%:IPv4%></option>
<option value="6"><%:IPv6%></option>
</select>
<input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute, this.form.traceroute_proto.selectedIndex)" />
<% else %>
<input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute)" />
<% end %>
<% if not has_traceroute6 then %>
<p>&#160;</p>
<p><%:Install iputils-traceroute6 for IPv6 traceroute%></p>
<% end %>
</div>
<div style="width:23%; float:left;">
<input style="margin: 5px 0" type="text" value="<%=dns_host%>" name="nslookup" /><br />
<input type="button" value="<%:Nslookup%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.nslookup)" />
</div>
<% if has_speedtest and false then %>
<div style="width:23%; float:left;">
<input style="margin: 5px 0" type="text" value="" name="speedtest" placeholder="alternate server" /><br />
<input type="button" value="<%:Speedtest%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.speedtest)" />
</div>
<% end %>
<% if has_iperf3 then %>
<div style="width:23%; float:left;">
<input style="margin: 5px 0" type="text" value="<%=iperf3_host%>" name="iperf3" /><br />
<input type="button" value="<%:Iperf3%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.iperf3)" />
</div>
<% end %>
<% if has_curl then %>
<div style="width:23%; float:left;">
<input style="margin: 5px 0" type="hidden" value="<%=getip_host%>" name="getip" /><br />
<input type="button" value="<%:Get public IP%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.getip)" />
</div>
<% end %>
<% if has_netstat then %>
<div style="width:23%; float:left;">
<input style="margin: 5px 0" type="hidden" value="" name="netstat" /><br />
<input type="button" value="<%:Netstat%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.netstat)" />
</div>
<% end %>
<br style="clear:both" /><br />
</fieldset>
</div> </div>
<fieldset class="cbi-section" style="display:none"> <div class="cbi-section" style="display:none">
<legend id="diag-rc-legend"><%:Collecting data...%></legend> <strong id="diag-rc-legend"></strong>
<span id="diag-rc-output"></span> <span id="diag-rc-output"></span>
</fieldset> </div>
</form> </form>
<%+footer%> <%+footer%>

View file

@ -0,0 +1,61 @@
--- luasrc/view/admin_network/diagnostics.htm 2018-07-03 15:17:57.633203371 +0200
+++ luasrc/view/admin_network/diagnostics.htm 2018-06-08 10:45:56.107723557 +0200
@@ -72,7 +78,7 @@
<br />
- <div style="width:30%; float:left">
+ <div style="width:23%; float:left">
<input style="margin: 5px 0" type="text" value="<%=ping_host%>" name="ping" /><br />
<% if has_ping6 then %>
<select name="ping_proto" style="width:auto">
@@ -85,7 +91,7 @@
<% end %>
</div>
- <div style="width:33%; float:left">
+ <div style="width:23%; float:left">
<input style="margin: 5px 0" type="text" value="<%=route_host%>" name="traceroute" /><br />
<% if has_traceroute6 then %>
<select name="traceroute_proto" style="width:auto">
@@ -102,11 +108,39 @@
<% end %>
</div>
- <div style="width:33%; float:left;">
+ <div style="width:23%; float:left;">
<input style="margin: 5px 0" type="text" value="<%=dns_host%>" name="nslookup" /><br />
<input type="button" value="<%:Nslookup%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.nslookup)" />
</div>
+ <% if has_speedtest and false then %>
+ <div style="width:23%; float:left;">
+ <input style="margin: 5px 0" type="text" value="" name="speedtest" placeholder="alternate server" /><br />
+ <input type="button" value="<%:Speedtest%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.speedtest)" />
+ </div>
+ <% end %>
+
+ <% if has_iperf3 then %>
+ <div style="width:23%; float:left;">
+ <input style="margin: 5px 0" type="text" value="<%=iperf3_host%>" name="iperf3" /><br />
+ <input type="button" value="<%:Iperf3%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.iperf3)" />
+ </div>
+ <% end %>
+
+ <% if has_curl then %>
+ <div style="width:23%; float:left;">
+ <input style="margin: 5px 0" type="hidden" value="<%=getip_host%>" name="getip" /><br />
+ <input type="button" value="<%:Get public IP%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.getip)" />
+ </div>
+ <% end %>
+
+ <% if has_netstat then %>
+ <div style="width:23%; float:left;">
+ <input style="margin: 5px 0" type="hidden" value="" name="netstat" /><br />
+ <input type="button" value="<%:Netstat%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.netstat)" />
+ </div>
+ <% end %>
+
<br style="clear:both" /><br />
</fieldset>

View file

@ -33,7 +33,7 @@
<script type="text/javascript" src="<%=resource%>/cbi.js"></script> <script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<script type="text/javascript">//<![CDATA[ <script type="text/javascript">//<![CDATA[
function iface_shutdown(id, reconnect) { function iface_shutdown(id, reconnect) {
if (!reconnect && !confirm(String.format('<%:Really shutdown interface "%s" ?\nYou might lose access to this device if you are connected via this interface.%>', id))) if (!reconnect && !confirm(<%=luci.http.write_json(translate('Really shutdown interface "%s"? You might lose access to this device if you are connected via this interface.'))%>.format(id)))
return; return;
var d = document.getElementById(id + '-ifc-description'); var d = document.getElementById(id + '-ifc-description');
@ -67,7 +67,7 @@
} }
function iface_delete(id) { function iface_delete(id) {
if (!confirm('<%:Really delete this interface? The deletion cannot be undone!\nYou might lose access to this device if you are connected via this interface.%>')) if (!confirm(<%=luci.http.write_json(translate('Really delete this interface? The deletion cannot be undone! You might lose access to this device if you are connected via this interface'))%>))
return; return;
(new XHR()).post('<%=url('admin/network/iface_delete')%>/' + id, { token: '<%=token%>' }, (new XHR()).post('<%=url('admin/network/iface_delete')%>/' + id, { token: '<%=token%>' },
@ -141,8 +141,8 @@
} }
html += String.format( html += String.format(
'<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />' + '<strong><%:RX%>:</strong> %.2mB (%d <%:Pkts.%>)<br />' +
'<strong><%:TX%></strong>: %.2mB (%d <%:Pkts.%>)<br />', '<strong><%:TX%>:</strong> %.2mB (%d <%:Pkts.%>)<br />',
ifc.rx_bytes, ifc.rx_packets, ifc.rx_bytes, ifc.rx_packets,
ifc.tx_bytes, ifc.tx_packets ifc.tx_bytes, ifc.tx_packets
); );
@ -209,46 +209,43 @@
</fieldset> </fieldset>
<div class="cbi-map"> <div class="cbi-map">
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:Interface Overview%></legend> <legend><%:Interface Overview%></legend>
<div class="table cbi-section-table" style="margin:10px; empty-cells:hide"> <div class="cbi-section-node">
<div class="tr cbi-section-table-titles"> <div class="table">
<div class="th"><%:Network%></div> <%
<div class="th left"><%:Status%></div> for i, net in ipairs(netlist) do
<div class="th"><%:Actions%></div> local z = net[3]
</div> local c = z and z:get_color() or "#EEEEEE"
<% local t = z and translate("Part of zone %q" % z:name()) or translate("No zone assigned")
for i, net in ipairs(netlist) do %>
local z = net[3] <div class="tr cbi-rowstyle-<%=i % 2 + 1%>">
local c = z and z:get_color() or "#EEEEEE" <div class="td col-3 center middle">
local t = z and translate("Part of zone %q" % z:name()) or translate("No zone assigned") <div class="ifacebox">
%> <div class="ifacebox-head" style="background-color:<%=c%>" title="<%=pcdata(t)%>">
<div class="tr cbi-section-table-row cbi-rowstyle-<%=i % 2 + 1%>"> <strong><%=net[1]:upper()%></strong>
<div class="td"> </div>
<div class="ifacebox"> <div class="ifacebox-body" id="<%=net[1]%>-ifc-devices">
<div class="ifacebox-head" style="background-color:<%=c%>" title="<%=pcdata(t)%>"> <img src="<%=resource%>/icons/ethernet_disabled.png" style="width:16px; height:16px" /><br />
<strong><%=net[1]:upper()%></strong> <small>?</small>
</div> </div>
<div class="ifacebox-body" id="<%=net[1]%>-ifc-devices">
<img src="<%=resource%>/icons/ethernet_disabled.png" style="width:16px; height:16px" /><br />
<small>?</small>
</div> </div>
</div> </div>
<div class="td col-5 left" id="<%=net[1]%>-ifc-description">
<em><%:Collecting data...%></em>
</div>
<div class="td cbi-section-actions">
<input type="button" class="cbi-button cbi-button-neutral" onclick="iface_shutdown('<%=net[1]%>', true)" title="<%:Reconnect this interface%>" value="<%:Connect%>" />
<input type="button" class="cbi-button cbi-button-neutral" onclick="iface_shutdown('<%=net[1]%>', false)" title="<%:Shutdown this interface%>" value="<%:Stop%>" />
<input type="button" class="cbi-button cbi-button-action important" onclick="location.href='<%=url("admin/network/network", net[1])%>'" title="<%:Edit this interface%>" value="<%:Edit%>" id="<%=net[1]%>-ifc-edit" />
<input type="button" class="cbi-button cbi-button-negative" onclick="iface_delete('<%=net[1]%>')" value="<%:Delete%>" />
</div>
</div> </div>
<div class="td left" id="<%=net[1]%>-ifc-description"> <% end %>
<em><%:Collecting data...%></em> </div>
</div>
<div class="td">
<input type="button" class="cbi-button cbi-button-reload" style="width:100px" onclick="iface_shutdown('<%=net[1]%>', true)" title="<%:Reconnect this interface%>" value="<%:Connect%>" />
<input type="button" class="cbi-button cbi-button-reset" style="width:100px" onclick="iface_shutdown('<%=net[1]%>', false)" title="<%:Shutdown this interface%>" value="<%:Stop%>" />
<input type="button" class="cbi-button cbi-button-edit" style="width:100px" onclick="location.href='<%=url("admin/network/network", net[1])%>'" title="<%:Edit this interface%>" value="<%:Edit%>" id="<%=net[1]%>-ifc-edit" />
<input type="button" class="cbi-button cbi-button-remove" style="width:100px" onclick="iface_delete('<%=net[1]%>')" value="<%:Delete%>" />
</div>
</div>
<% end %>
</div> </div>
<input type="button" class="cbi-button cbi-button-add" value="<%:Add new interface...%>" onclick="location.href='<%=url("admin/network/iface_add")%>'" /> <input type="button" class="cbi-button cbi-button-add" value="<%:Add new interface...%>" onclick="location.href='<%=url("admin/network/iface_add")%>'" />
</fieldset> </div>
</div> </div>

View file

@ -6,29 +6,18 @@
{ {
if (ifc && (ifc = ifc[0])) if (ifc && (ifc = ifc[0]))
{ {
var html = ''; var s = document.getElementById('<%=self.option%>-ifc-status'),
img = s.querySelector('img'),
info = s.querySelector('span'),
html = '<strong><%:Device%>:</strong> %h<br />'.format(ifc.ifname);
var s = document.getElementById('<%=self.option%>-ifc-signal'); if (ifc.ifname)
if (s)
s.innerHTML = String.format(
'<img src="<%=resource%>/icons/%s%s.png" style="width:16px; height:16px" />' +
'<br /><small>%s</small>',
ifc.type, ifc.is_up ? '' : '_disabled',
ifc.name
);
var d = document.getElementById('<%=self.option%>-ifc-description');
if (d && ifc.ifname)
{ {
if (ifc.is_up) if (ifc.is_up)
{
html += String.format('<strong><%:Uptime%>:</strong> %t<br />', ifc.uptime); html += String.format('<strong><%:Uptime%>:</strong> %t<br />', ifc.uptime);
}
if (ifc.macaddr) if (ifc.macaddr)
{
html += String.format('<strong><%:MAC-Address%>:</strong> %s<br />', ifc.macaddr); html += String.format('<strong><%:MAC-Address%>:</strong> %s<br />', ifc.macaddr);
}
html += String.format( html += String.format(
'<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />' + '<strong><%:RX%></strong>: %.2mB (%d <%:Pkts.%>)<br />' +
@ -38,50 +27,40 @@
); );
if (ifc.ipaddrs && ifc.ipaddrs.length) if (ifc.ipaddrs && ifc.ipaddrs.length)
{
for (var i = 0; i < ifc.ipaddrs.length; i++) for (var i = 0; i < ifc.ipaddrs.length; i++)
html += String.format( html += String.format(
'<strong><%:IPv4%>:</strong> %s<br />', '<strong><%:IPv4%>:</strong> %s<br />',
ifc.ipaddrs[i] ifc.ipaddrs[i]
); );
}
if (ifc.ip6addrs && ifc.ip6addrs.length) if (ifc.ip6addrs && ifc.ip6addrs.length)
{
for (var i = 0; i < ifc.ip6addrs.length; i++) for (var i = 0; i < ifc.ip6addrs.length; i++)
html += String.format( html += String.format(
'<strong><%:IPv6%>:</strong> %s<br />', '<strong><%:IPv6%>:</strong> %s<br />',
ifc.ip6addrs[i] ifc.ip6addrs[i]
); );
}
if (ifc.ip6prefix)
{
html += String.format('<strong><%:IPv6-PD%>:</strong> %s<br />', ifc.ip6prefix);
}
d.innerHTML = html; if (ifc.ip6prefix)
html += String.format('<strong><%:IPv6-PD%>:</strong> %s<br />', ifc.ip6prefix);
info.innerHTML = html;
} }
else if (d) else
{ {
d.innerHTML = '<em><%:Interface not present or not connected yet.%></em>'; info.innerHTML = '<em><%:Interface not present or not connected yet.%></em>';
} }
img.src = '<%=resource%>/icons/%s%s.png'.format(ifc.type, ifc.is_up ? '' : '_disabled');
} }
} }
); );
//]]></script> //]]></script>
<div class="table"> <span class="ifacebadge large" id="<%=self.option%>-ifc-status">
<div class="tr cbi-section-table"> <img src="<%=resource%>/icons/ethernet_disabled.png" />
<div class="td"></div> <span>
<div class="td cbi-value-field" style="min-width:16px; padding:3px; text-align:center" id="<%=self.option%>-ifc-signal"> <em><%:Collecting data...%></em>
<img src="<%=resource%>/icons/ethernet_disabled.png" style="width:16px; height:16px" /><br /> </span>
<small>?</small> </span>
</div>
<div class="td cbi-value-field" style="vertical-align:middle; text-align:left; padding:3px" id="<%=self.option%>-ifc-description">
<em><%:Collecting data...%></em>
</div>
</div>
</div>
<%+cbi/valuefooter%> <%+cbi/valuefooter%>

View file

@ -1,27 +1,11 @@
<script type="text/javascript">//<![CDATA[ <script type="text/javascript">//<![CDATA[
function duid2mac(duid) {
// DUID-LLT / Ethernet
if (duid.length === 28 && duid.substr(0, 8) === '00010001')
return duid.substr(16).replace(/(..)(?=..)/g, '$1:').toUpperCase();
// DUID-LL / Ethernet
if (duid.length === 20 && duid.substr(0, 8) === '00030001')
return duid.substr(8).replace(/(..)(?=..)/g, '$1:').toUpperCase();
return null;
}
var hosts = <%=luci.http.write_json(luci.sys.net.host_hints())%>;
XHR.poll(5, '<%=url('admin/network/dhcplease_status')%>', null, XHR.poll(5, '<%=url('admin/network/dhcplease_status')%>', null,
function(x, st) function(x, st)
{ {
var tb = document.getElementById('lease_status_table'); var tb = document.getElementById('lease_status_table');
if (st && st[0] && tb) if (st && st[0] && tb)
{ {
/* clear all rows */ var rows = [];
while (tb.firstElementChild !== tb.lastElementChild)
tb.removeChild(tb.lastElementChild);
for (var i = 0; i < st[0].length; i++) for (var i = 0; i < st[0].length; i++)
{ {
@ -34,16 +18,15 @@
else else
timestr = String.format('%t', st[0][i].expires); timestr = String.format('%t', st[0][i].expires);
tb.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d">'.format((i % 2) + 1), [ rows.push([
E('<div class="td">', st[0][i].hostname || '?'), st[0][i].hostname || '?',
E('<div class="td">', st[0][i].ipaddr), st[0][i].ipaddr,
E('<div class="td">', st[0][i].macaddr), st[0][i].macaddr,
E('<div class="td">', timestr) timestr
])); ]);
} }
if (tb.firstElementChild === tb.lastElementChild) cbi_update_table(tb, rows, '<em><%:There are no active leases.%></em>');
tb.appendChild(E('<div class="tr cbi-section-table-row"><div class="td"><em><br /><%:There are no active leases.%></em></div></div>'));
} }
var tb6 = document.getElementById('lease6_status_table'); var tb6 = document.getElementById('lease6_status_table');
@ -51,9 +34,7 @@
{ {
tb6.parentNode.style.display = 'block'; tb6.parentNode.style.display = 'block';
/* clear all rows */ var rows = [];
while (tb6.firstElementChild !== tb6.lastElementChild)
tb6.removeChild(tb6.lastElementChild);
for (var i = 0; i < st[1].length; i++) for (var i = 0; i < st[1].length; i++)
{ {
@ -66,60 +47,49 @@
else else
timestr = String.format('%t', st[1][i].expires); timestr = String.format('%t', st[1][i].expires);
var host = hosts[duid2mac(st[1][i].duid)], var name = st[1][i].hostname,
name = st[1][i].hostname, hint = st[1][i].host_hint;
hint = null;
if (!name) { rows.push([
if (host) hint ? '%h (%h)'.format(name || '?', hint) : (name || '?'),
hint = host.name || host.ipv4 || host.ipv6; st[1][i].ip6addr,
} st[1][i].duid,
else { timestr
if (host && host.name && st[1][i].hostname != host.name) ]);
hint = host.name;
}
tb6.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d" style="max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap">'.format((i % 2) + 1), [
E('<div class="td">', hint ? '<div style="max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space: nowrap">%h (%h)</div>'.format(name || '?', hint) : (name || '?')),
E('<div class="td">', st[1][i].ip6addr),
E('<div class="td">', st[1][i].duid),
E('<div class="td">', timestr)
]));
} }
if (tb6.firstElementChild === tb6.lastElementChild) cbi_update_table(tb6, rows, '<em><%:There are no active leases.%></em>');
tb6.appendChild(E('<div class="tr cbi-section-table-row"><div class="td"><em><br /><%:There are no active leases.%></em></div></div>'));
} }
} }
); );
//]]></script> //]]></script>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:Active DHCP Leases%></legend> <h3><%:Active DHCP Leases%></h3>
<div class="table cbi-section-table" id="lease_status_table"> <div class="table" id="lease_status_table">
<div class="tr cbi-section-table-titles"> <div class="tr table-titles">
<div class="th cbi-section-table-cell"><%:Hostname%></div> <div class="th"><%:Hostname%></div>
<div class="th cbi-section-table-cell"><%:IPv4-Address%></div> <div class="th"><%:IPv4-Address%></div>
<div class="th cbi-section-table-cell"><%:MAC-Address%></div> <div class="th"><%:MAC-Address%></div>
<div class="th cbi-section-table-cell"><%:Leasetime remaining%></div> <div class="th"><%:Leasetime remaining%></div>
</div> </div>
<div class="tr cbi-section-table-row"> <div class="tr placeholder">
<div class="td" colspan="4"><em><br /><%:Collecting data...%></em></div> <div class="td"><em><%:Collecting data...%></em></div>
</div> </div>
</div> </div>
</fieldset> </div>
<fieldset class="cbi-section" style="display:none"> <div class="cbi-section" style="display:none">
<legend><%:Active DHCPv6 Leases%></legend> <h3><%:Active DHCPv6 Leases%></h3>
<div class="table cbi-section-table" id="lease6_status_table"> <div class="table" id="lease6_status_table">
<div class="tr cbi-section-table-titles"> <div class="tr table-titles">
<div class="th cbi-section-table-cell"><%:Host%></div> <div class="th"><%:Host%></div>
<div class="th cbi-section-table-cell"><%:IPv6-Address%></div> <div class="th"><%:IPv6-Address%></div>
<div class="th cbi-section-table-cell"><%:DUID%></div> <div class="th"><%:DUID%></div>
<div class="th cbi-section-table-cell"><%:Leasetime remaining%></div> <div class="th"><%:Leasetime remaining%></div>
</div> </div>
<div class="tr cbi-section-table-row"> <div class="tr placeholder">
<div class="td" colspan="4"><em><br /><%:Collecting data...%></em></div> <div class="td"><em><%:Collecting data...%></em></div>
</div> </div>
</div> </div>
</fieldset> </div>

View file

@ -1,21 +1,39 @@
<script type="text/javascript">//<![CDATA[ <script type="text/javascript">//<![CDATA[
var switches = [ '<%=table.concat(self.switches, "', '")%>' ]; var switches = [ '<%=table.concat(self.switches, "', '")%>' ],
tables = document.querySelectorAll('.cbi-section-table');
function add_status_row(table) {
var first_row = table.querySelector('.cbi-section-table-row');
if (first_row.classList.contains('port-status'))
return first_row;
var status_row = first_row.parentNode.insertBefore(
E('div', { 'class': first_row.className }), first_row);
first_row.querySelectorAll('.td').forEach(function(td) {
status_row.appendChild(td.cloneNode(false));
status_row.lastElementChild.removeAttribute('data-title');
});
status_row.firstElementChild.innerHTML = '<%:Port status:%>';
status_row.classList.add('port-status') ;
return status_row;
}
XHR.poll(5, '<%=url('admin/network/switch_status')%>/' + switches.join(','), null, XHR.poll(5, '<%=url('admin/network/switch_status')%>/' + switches.join(','), null,
function(x, st) function(x, st)
{ {
for (var i = 0; i < switches.length; i++) for (var i = 0; i < switches.length; i++)
{ {
var ports = st[switches[i]]; var ports = st[switches[i]];
var th0 = document.getElementById('portstatus-' + switches[i]); var tr = add_status_row(tables[i]);
if (th0 && ports && ports.length) if (tr && ports && ports.length)
{ {
if (!th0.innerHTML)
th0.innerHTML = '<%:Port status:%>';
for (var j = 0; j < ports.length; j++) for (var j = 0; j < ports.length; j++)
{ {
var th = document.getElementById('portstatus-' + switches[i] + '-' + j); var th = tr.querySelector('[data-name="%d"]'.format(j));
if (!th) if (!th)
continue; continue;

View file

@ -0,0 +1,82 @@
<script type="text/javascript">//<![CDATA[
function wifirate(bss, rx) {
var p = rx ? 'rx_' : 'tx_',
s = '%.1f <%:Mbit/s%>, %d<%:MHz%>'
.format(bss[p+'rate'] / 1000, bss[p+'mhz']),
ht = bss[p+'ht'], vht = bss[p+'vht'],
mhz = bss[p+'mhz'], nss = bss[p+'nss'],
mcs = bss[p+'mcs'], sgi = bss[p+'short_gi'];
if (ht || vht) {
if (vht) s += ', VHT-MCS %d'.format(mcs);
if (nss) s += ', VHT-NSS %d'.format(nss);
if (ht) s += ', MCS %s'.format(mcs);
if (sgi) s += ', <%:Short GI%>';
}
return s;
}
XHR.poll(5, '<%=url('admin/network/wireless_assoclist')%>', null,
function(x, st)
{
var tb = document.getElementById('wifi_assoclist_table');
if (st && tb)
{
var rows = [];
st.forEach(function(bss) {
var icon;
var q = (-1 * (bss.noise - bss.signal)) / 5;
if (q < 1)
icon = "<%=resource%>/icons/signal-0.png";
else if (q < 2)
icon = "<%=resource%>/icons/signal-0-25.png";
else if (q < 3)
icon = "<%=resource%>/icons/signal-25-50.png";
else if (q < 4)
icon = "<%=resource%>/icons/signal-50-75.png";
else
icon = "<%=resource%>/icons/signal-75-100.png";
rows.push([
'<span class="ifacebadge" title="%q"><img src="<%=resource%>/icons/wifi.png" /> <a href="%s">%h</a><small>&#160;(%h)</small></span>'.format(
bss.radio,
bss.link,
bss.name,
bss.ifname),
bss.bssid,
bss.host_hint ? '%h (%h)'.format(bss.host_name || '?', bss.host_hint) : (bss.host_name || '?'),
'<span class="ifacebadge" title="<%:Signal%>: %d <%:dBm%> / <%:Noise%>: %d <%:dBm%> / <%:SNR%>: %d"><img src="%s" /> %d / %d <%:dBm%></span>'.format(
bss.signal,
bss.noise,
bss.signal - bss.noise,
icon,
bss.signal,
bss.noise),
E('span', {}, [
E('span', wifirate(bss, true)),
E('br'),
E('span', wifirate(bss, false))
])
]);
});
cbi_update_table(tb, rows, '<em><%:No information available%></em>');
}
}
);
//]]></script>
<div class="table" id="wifi_assoclist_table">
<div class="tr table-titles">
<div class="th nowrap"><%:Network%></div>
<div class="th hide-xs"><%:MAC-Address%></div>
<div class="th nowrap"><%:Host%></div>
<div class="th nowrap"><%:Signal%> / <%:Noise%></div>
<div class="th nowrap"><%:RX Rate%> / <%:TX Rate%></div>
</div>
<div class="tr placeholder">
<div class="td"><em><%:Collecting data...%></em></div>
</div>
</div>

View file

@ -90,25 +90,43 @@
<h2 name="content"><%:Join Network: Wireless Scan%></h2> <h2 name="content"><%:Join Network: Wireless Scan%></h2>
<div class="cbi-map"> <div class="cbi-map">
<fieldset class="cbi-section"> <div class="cbi-section">
<div class="table cbi-section-table" style="empty-cells:hide"> <div class="table">
<div class="tr table-titles">
<div class="th col-1 center"><%:Signal%></div>
<div class="th col-5 left"><%:SSID%></div>
<div class="th col-2 center"><%:Channel%></div>
<div class="th col-2 left"><%:Mode%></div>
<div class="th col-3 left"><%:BSSID%></div>
<div class="th col-2 left"><%:Encryption%></div>
<div class="th cbi-section-actions">&#160;</div>
</div>
<!-- scan list --> <!-- scan list -->
<% for i, net in ipairs(scanlist(3)) do net.encryption = net.encryption or { } %> <% for i, net in ipairs(scanlist(3)) do net.encryption = net.encryption or { } %>
<div class="tr cbi-section-table-row cbi-rowstyle-<%=1 + ((i-1) % 2)%>"> <div class="tr cbi-rowstyle-<%=1 + ((i-1) % 2)%>">
<div class="td cbi-value-field" style="width:16px; padding:3px"> <div class="td col-1 center">
<abbr title="<%:Signal%>: <%=net.signal%> <%:dB%> / <%:Quality%>: <%=net.quality%>/<%=net.quality_max%>"> <abbr title="<%:Signal%>: <%=net.signal%> <%:dB%> / <%:Quality%>: <%=net.quality%>/<%=net.quality_max%>">
<img src="<%=guess_wifi_signal(net)%>" /><br /> <img src="<%=guess_wifi_signal(net)%>" /><br />
<small><%=percent_wifi_signal(net)%>%</small> <small><%=percent_wifi_signal(net)%>%</small>
</abbr> </abbr>
</div> </div>
<div class="td cbi-value-field" style="vertical-align:middle; text-align:left; padding:3px"> <div class="td col-5 left" data-title="<%:SSID%>">
<big><strong><%=net.ssid and utl.pcdata(net.ssid) or "<em>%s</em>" % translate("hidden")%></strong></big><br /> <strong><%=net.ssid and utl.pcdata(net.ssid) or "<em>%s</em>" % translate("hidden")%></strong>
<strong>Channel:</strong> <%=net.channel%> |
<strong>Mode:</strong> <%=net.mode%> |
<strong>BSSID:</strong> <%=net.bssid%> |
<strong>Encryption:</strong> <%=format_wifi_encryption(net.encryption)%>
</div> </div>
<div class="td cbi-value-field" style="width:40px"> <div class="td col-2 center" data-title="<%:Channel%>">
<%=net.channel%>
</div>
<div class="td col-2 left" data-title="<%:Mode%>">
<%=net.mode%>
</div>
<div class="td col-3 left" data-title="<%:BSSID%>">
<%=net.bssid%>
</div>
<div class="td col-2 left" data-title="<%:Encryption%>">
<%=format_wifi_encryption(net.encryption)%>
</div>
<div class="td cbi-section-actions">
<form action="<%=url('admin/network/wireless_join')%>" method="post"> <form action="<%=url('admin/network/wireless_join')%>" method="post">
<input type="hidden" name="token" value="<%=token%>" /> <input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="device" value="<%=utl.pcdata(dev)%>" /> <input type="hidden" name="device" value="<%=utl.pcdata(dev)%>" />
@ -126,23 +144,23 @@
<input type="hidden" name="clbridge" value="<%=iw.type == "wl" and 1 or 0%>" /> <input type="hidden" name="clbridge" value="<%=iw.type == "wl" and 1 or 0%>" />
<input class="cbi-button cbi-button-apply" type="submit" value="<%:Join Network%>" /> <input class="cbi-button cbi-button-action important" type="submit" value="<%:Join Network%>" />
</form> </form>
</div> </div>
</div> </div>
<% end %> <% end %>
<!-- /scan list --> <!-- /scan list -->
</div> </div>
</fieldset> </div>
</div> </div>
<div class="cbi-page-actions right"> <div class="cbi-page-actions right">
<form class="inline" action="<%=url("admin/network/wireless")%>" method="get"> <form class="inline" action="<%=url("admin/network/wireless")%>" method="get">
<input class="cbi-button cbi-button-reset" type="submit" value="<%:Back to overview%>" /> <input class="cbi-button cbi-button-neutral" type="submit" value="<%:Back to overview%>" />
</form> </form>
<form class="inline" action="<%=url('admin/network/wireless_join')%>" method="post"> <form class="inline" action="<%=url('admin/network/wireless_join')%>" method="post">
<input type="hidden" name="token" value="<%=token%>" /> <input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="device" value="<%=utl.pcdata(dev)%>" /> <input type="hidden" name="device" value="<%=utl.pcdata(dev)%>" />
<input class="cbi-button cbi-input-find" type="submit" value="<%:Repeat scan%>" /> <input class="cbi-button cbi-button-action" type="submit" value="<%:Repeat scan%>" />
</form> </form>
</div> </div>

View file

@ -113,32 +113,10 @@
var is_reconnecting = false; var is_reconnecting = false;
function nowrap(s) {
return s.replace(/ /g, '&#160;');
}
function wifirate(bss, rx) {
var p = rx ? 'rx_' : 'tx_',
s = '%.1f <%:Mbit/s%>, %d<%:MHz%>'
.format(bss[p+'rate'] / 1000, bss[p+'mhz']),
ht = bss[p+'ht'], vht = bss[p+'vht'],
mhz = bss[p+'mhz'], nss = bss[p+'nss'],
mcs = bss[p+'mcs'], sgi = bss[p+'short_gi'];
if (ht || vht) {
if (vht) s += ', VHT-MCS %d'.format(mcs);
if (nss) s += ', VHT-NSS %d'.format(nss);
if (ht) s += ', MCS %s'.format(mcs);
if (sgi) s += ', <%:Short GI%>';
}
return s;
}
function wifi_shutdown(id, toggle) { function wifi_shutdown(id, toggle) {
var reconnect = (toggle.getAttribute('active') == 'false'); var reconnect = (toggle.getAttribute('active') == 'false');
if (!reconnect && !confirm(String.format('<%:Really shut down network?\nYou might lose access to this device if you are connected via this interface.%>'))) if (!reconnect && !confirm(<%=luci.http.write_json(translate('Really shut down network? You might lose access to this device if you are connected via this interface'))%>))
return; return;
is_reconnecting = true; is_reconnecting = true;
@ -176,7 +154,7 @@
} }
function wifi_delete(id) { function wifi_delete(id) {
if (!confirm('<%:Really delete this wireless network? The deletion cannot be undone!\nYou might lose access to this device if you are connected via this network.%>')) if (!confirm(<%=luci.http.write_json(translate('Really delete this wireless network? The deletion cannot be undone! You might lose access to this device if you are connected via this network.'))%>))
return; return;
(new XHR()).post('<%=url('admin/network/wireless_delete')%>/' + id, { token: '<%=token%>' }, (new XHR()).post('<%=url('admin/network/wireless_delete')%>/' + id, { token: '<%=token%>' },
@ -193,20 +171,25 @@
{ {
if (st) if (st)
{ {
var assoctable = document.getElementById('iw-assoclist');
if (assoctable)
while (assoctable.firstElementChild !== assoctable.lastElementChild)
assoctable.removeChild(assoctable.lastElementChild);
var devup = { };
var rowstyle = 1; var rowstyle = 1;
var radiostate = { };
st.forEach(function(s) {
var r = radiostate[wifidevs[s.id]] || (radiostate[wifidevs[s.id]] = {});
s.is_assoc = (s.bssid && s.bssid != '00:00:00:00:00:00' && s.channel && s.mode != 'Unknown' && !s.disabled);
r.up = r.up || s.is_assoc;
r.channel = r.channel || s.channel;
r.bitrate = r.bitrate || s.bitrate;
r.frequency = r.frequency || s.frequency;
});
for( var i = 0; i < st.length; i++ ) for( var i = 0; i < st.length; i++ )
{ {
var iw = st[i]; var iw = st[i];
var is_assoc = (iw.bssid && iw.bssid != '00:00:00:00:00:00' && iw.channel && iw.mode != 'Unknown' && !iw.disabled);
var p = iw.quality; var p = iw.quality;
var q = is_assoc ? p : -1; var q = iw.is_assoc ? p : -1;
var icon; var icon;
if (q < 0) if (q < 0)
@ -222,9 +205,6 @@
else else
icon = "<%=resource%>/icons/signal-75-100.png"; icon = "<%=resource%>/icons/signal-75-100.png";
if (!devup[wifidevs[iw.id]])
devup[wifidevs[iw.id]] = is_assoc;
var sig = document.getElementById(iw.id + '-iw-signal'); var sig = document.getElementById(iw.id + '-iw-signal');
if (sig) if (sig)
sig.innerHTML = String.format( sig.innerHTML = String.format(
@ -237,13 +217,13 @@
{ {
if (!iw.disabled) if (!iw.disabled)
{ {
toggle.className = 'cbi-button cbi-button-reset'; toggle.className = 'cbi-button cbi-button-neutral';
toggle.value = '<%:Disable%>'; toggle.value = '<%:Disable%>';
toggle.title = '<%:Shutdown this network%>'; toggle.title = '<%:Shutdown this network%>';
} }
else else
{ {
toggle.className = 'cbi-button cbi-button-reload'; toggle.className = 'cbi-button cbi-button-neutral';
toggle.value = '<%:Enable%>'; toggle.value = '<%:Enable%>';
toggle.title = '<%:Activate this network%>'; toggle.title = '<%:Activate this network%>';
} }
@ -254,7 +234,7 @@
var info = document.getElementById(iw.id + '-iw-status'); var info = document.getElementById(iw.id + '-iw-status');
if (info) if (info)
{ {
if (is_assoc) if (iw.is_assoc)
info.innerHTML = String.format( info.innerHTML = String.format(
'<strong><%:SSID%>:</strong> %h | ' + '<strong><%:SSID%>:</strong> %h | ' +
'<strong><%:Mode%>:</strong> %s<br />' + '<strong><%:Mode%>:</strong> %s<br />' +
@ -274,83 +254,23 @@
: '<em><%:Wireless is disabled or not associated%></em>' : '<em><%:Wireless is disabled or not associated%></em>'
); );
} }
var dev = document.getElementById(wifidevs[iw.id] + '-iw-devinfo');
if (dev)
{
if (is_assoc)
dev.innerHTML = String.format(
'<strong><%:Channel%>:</strong> %s (%s <%:GHz%>) | ' +
'<strong><%:Bitrate%>:</strong> %s <%:Mbit/s%>',
iw.channel ? iw.channel : '?',
iw.frequency ? iw.frequency : '?',
iw.bitrate ? iw.bitrate : '?'
);
else
dev.innerHTML = '';
}
if (assoctable)
{
var assoclist = [ ];
for (var bssid in iw.assoclist)
{
assoclist.push(iw.assoclist[bssid]);
assoclist[assoclist.length-1].bssid = bssid;
}
assoclist.sort(function(a, b) { a.bssid < b.bssid });
for (var j = 0; j < assoclist.length; j++)
{
var icon;
var q = (-1 * (assoclist[j].noise - assoclist[j].signal)) / 5;
if (q < 1)
icon = "<%=resource%>/icons/signal-0.png";
else if (q < 2)
icon = "<%=resource%>/icons/signal-0-25.png";
else if (q < 3)
icon = "<%=resource%>/icons/signal-25-50.png";
else if (q < 4)
icon = "<%=resource%>/icons/signal-50-75.png";
else
icon = "<%=resource%>/icons/signal-75-100.png";
var host = hosts[assoclist[j].bssid],
name = host ? (host.name || host.ipv4 || host.ipv6) : null,
hint = (host && host.name && (host.ipv4 || host.ipv6)) ? (host.ipv4 || host.ipv6) : null;
assoctable.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d">'.format(rowstyle), [
E('<div class="td"><span class="ifacebadge" title="%q"><img src="<%=resource%>/icons/wifi.png" /> %h</span></div>'
.format(iw.device.name, iw.ifname)),
E('<div class="td" style="white-space:nowrap">%h</div>'
.format(iw.ssid || '?')),
E('<div class="td">%h</div>'
.format(assoclist[j].bssid)),
E('<div class="td">', hint ? '<div style="max-width:200px;overflow:hidden;text-overflow:ellipsis">%h (%h)</div>'
.format(name || '?', hint) : (name || '?')),
E('<div class="td"><span class="ifacebadge" title="<%:Signal%>: %d <%:dBm%> / <%:Noise%>: %d <%:dBm%> / <%:SNR%>: %d"><img src="%s" /> %d / %d <%:dBm%></span></div>'
.format(assoclist[j].signal, assoclist[j].noise, assoclist[j].signal - assoclist[j].noise, icon, assoclist[j].signal, assoclist[j].noise)),
E('<div class="td">', [
E('<span style="white-space:nowrap">', wifirate(assoclist[j], true)),
E('<br />'),
E('<span style="white-space:nowrap">', wifirate(assoclist[j], false))
])
]));
rowstyle = (rowstyle == 1) ? 2 : 1;
}
}
} }
if (assoctable && assoctable.firstElementChild === assoctable.lastElementChild) for (var dev in radiostate)
assoctable.appendChild(E('<div class="tr cbi-section-table-row"><div class="td"><em><br /><%:No information available%></em></div></div>'));
for (var dev in devup)
{ {
var img = document.getElementById(dev + '-iw-upstate'); var img = document.getElementById(dev + '-iw-upstate');
if (img) if (img)
img.src = '<%=resource%>/icons/wifi_big' + (devup[dev] ? '' : '_disabled') + '.png'; img.src = '<%=resource%>/icons/wifi' + (radiostate[dev].up ? '' : '_disabled') + '.png';
var stat = document.getElementById(dev + '-iw-devinfo');
if (stat)
stat.innerHTML = String.format(
'<strong><%:Channel%>:</strong> %s (%s <%:GHz%>) | ' +
'<strong><%:Bitrate%>:</strong> %s <%:Mbit/s%>',
radiostate[dev].channel ? radiostate[dev].channel : '?',
radiostate[dev].frequency ? radiostate[dev].frequency : '?',
radiostate[dev].bitrate ? radiostate[dev].bitrate : '?'
);
} }
} }
} }
@ -359,37 +279,37 @@
<h2 name="content"><%:Wireless Overview%></h2> <h2 name="content"><%:Wireless Overview%></h2>
<fieldset class="cbi-section" style="display:none"> <div class="cbi-section" style="display:none">
<legend><%:Reconnecting interface%></legend> <legend><%:Reconnecting interface%></legend>
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> <img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" />
<span id="iw-rc-status"><%:Waiting for changes to be applied...%></span> <span id="iw-rc-status"><%:Waiting for changes to be applied...%></span>
</fieldset> </div>
<div class="cbi-map"> <div id="cbi-wireless-overview" class="cbi-map">
<% for _, dev in ipairs(devices) do local nets = dev:get_wifinets() %> <% for _, dev in ipairs(devices) do local nets = dev:get_wifinets() %>
<!-- device <%=dev:name()%> --> <!-- device <%=dev:name()%> -->
<fieldset class="cbi-section"> <div class="cbi-section-node">
<div class="table cbi-section-table" style="margin:10px; empty-cells:hide"> <div class="table">
<!-- physical device --> <!-- physical device -->
<div class="tr"> <div class="tr">
<div class="td"> <div class="td col-2 center">
<img src="<%=resource%>/icons/wifi_big_disabled.png" id="<%=dev:name()%>-iw-upstate" /> <span class="ifacebadge"><img src="<%=resource%>/icons/wifi_disabled.png" id="<%=dev:name()%>-iw-upstate" /> <%=dev:name()%></span>
</div> </div>
<div class="td left"> <div class="td col-7 left">
<big><strong><%=guess_wifi_hw(dev)%> (<%=dev:name()%>)</strong></big><br /> <big><strong><%=guess_wifi_hw(dev)%></strong></big><br />
<span id="<%=dev:name()%>-iw-devinfo"></span> <span id="<%=dev:name()%>-iw-devinfo"></span>
</div> </div>
<div class="td right"> <div class="td cbi-section-actions">
<form action="<%=url('admin/network/wireless_join')%>" method="post" class="inline"> <form action="<%=url('admin/network/wireless_join')%>" method="post" class="inline">
<input type="hidden" name="device" value="<%=dev:name()%>" /> <input type="hidden" name="device" value="<%=dev:name()%>" />
<input type="hidden" name="token" value="<%=token%>" /> <input type="hidden" name="token" value="<%=token%>" />
<input type="submit" class="cbi-button cbi-button-find" style="width:100px" title="<%:Find and join network%>" value="<%:Scan%>" /> <input type="submit" class="cbi-button cbi-button-action" title="<%:Find and join network%>" value="<%:Scan%>" />
</form> </form>
<form action="<%=url('admin/network/wireless_add')%>" method="post" class="inline"> <form action="<%=url('admin/network/wireless_add')%>" method="post" class="inline">
<input type="hidden" name="device" value="<%=dev:name()%>" /> <input type="hidden" name="device" value="<%=dev:name()%>" />
<input type="hidden" name="token" value="<%=token%>" /> <input type="hidden" name="token" value="<%=token%>" />
<input type="submit" class="cbi-button cbi-button-add" style="width:100px" title="<%:Provide new network%>" value="<%:Add%>" /> <input type="submit" class="cbi-button cbi-button-add" title="<%:Provide new network%>" value="<%:Add%>" />
</form> </form>
</div> </div>
</div> </div>
@ -398,22 +318,22 @@
<!-- network list --> <!-- network list -->
<% if #nets > 0 then %> <% if #nets > 0 then %>
<% for i, net in ipairs(nets) do %> <% for i, net in ipairs(nets) do %>
<div class="tr cbi-section-table-row cbi-rowstyle-<%=1 + ((i-1) % 2)%>"> <div class="tr cbi-rowstyle-<%=1 + ((i-1) % 2)%>">
<div class="td" id="<%=net:id()%>-iw-signal"> <div class="td col-2 center" id="<%=net:id()%>-iw-signal">
<span class="ifacebadge" title="<%:Not associated%>"><img src="<%=resource%>/icons/signal-none.png" /> 0%</span> <span class="ifacebadge" title="<%:Not associated%>"><img src="<%=resource%>/icons/signal-none.png" /> 0%</span>
</div> </div>
<div class="td left" id="<%=net:id()%>-iw-status"> <div class="td col-7 left" id="<%=net:id()%>-iw-status">
<em><%:Collecting data...%></em> <em><%:Collecting data...%></em>
</div> </div>
<div class="td right"> <div class="td cbi-section-actions">
<input id="<%=net:id()%>-iw-toggle" type="button" class="cbi-button cbi-button-reload" style="width:100px" onclick="wifi_shutdown('<%=net:id()%>', this)" title="<%:Delete this network%>" value="<%:Enable%>" /> <input id="<%=net:id()%>-iw-toggle" type="button" class="cbi-button cbi-button-neutral" onclick="wifi_shutdown('<%=net:id()%>', this)" title="<%:Enable this network%>" value="<%:Enable%>" />
<input type="button" class="cbi-button cbi-button-edit" style="width:100px" onclick="location.href='<%=net:adminlink()%>'" title="<%:Edit this network%>" value="<%:Edit%>" /> <input type="button" class="cbi-button cbi-button-action important" onclick="location.href='<%=net:adminlink()%>'" title="<%:Edit this network%>" value="<%:Edit%>" />
<input type="button" class="cbi-button cbi-button-remove" style="width:100px" onclick="wifi_delete('<%=net:id()%>')" title="<%:Delete this network%>" value="<%:Remove%>" /> <input type="button" class="cbi-button cbi-button-negative" onclick="wifi_delete('<%=net:id()%>')" title="<%:Delete this network%>" value="<%:Remove%>" />
</div> </div>
</div> </div>
<% end %> <% end %>
<% else %> <% else %>
<div class="tr cbi-section-table-row cbi-rowstyle-2"> <div class="tr cbi-rowstyle-2">
<div class="td left"> <div class="td left">
<em><%:No network configured on this device%></em> <em><%:No network configured on this device%></em>
</div> </div>
@ -421,30 +341,14 @@
<% end %> <% end %>
<!-- /network list --> <!-- /network list -->
</div> </div>
</fieldset> </div>
<!-- /device <%=dev:name()%> --> <!-- /device <%=dev:name()%> -->
<% end %> <% end %>
<h2><%:Associated Stations%></h2> <h2><%:Associated Stations%></h2>
<fieldset class="cbi-section"> <%+admin_network/wifi_assoclist%>
<div class="table cbi-section-table valign-middle" style="margin:10px" id="iw-assoclist">
<div class="tr cbi-section-table-titles">
<div class="th cbi-section-table-cell"></div>
<div class="th cbi-section-table-cell"><%:SSID%></div>
<div class="th cbi-section-table-cell"><%:MAC-Address%></div>
<div class="th cbi-section-table-cell"><%:Host%></div>
<div class="th cbi-section-table-cell"><%:Signal%> / <%:Noise%></div>
<div class="th cbi-section-table-cell"><%:RX Rate%> / <%:TX Rate%></div>
</div>
<div class="tr cbi-section-table-row cbi-rowstyle-2">
<div class="td">
<em><%:Collecting data...%></em>
</div>
</div>
</div>
</fieldset>
</div> </div>
<%+footer%> <%+footer%>

View file

@ -24,21 +24,22 @@
else else
icon = "<%=resource%>/icons/signal-75-100.png"; icon = "<%=resource%>/icons/signal-75-100.png";
var s = document.getElementById('<%=self.option%>-iw-signal'); var s = document.getElementById('<%=self.option%>-iw-status'),
if (s) small = s.querySelector('small'),
s.innerHTML = String.format( info = s.querySelector('span');
'<img src="%s" title="<%:Signal%>: %d <%:dBm%> / <%:Noise%>: %d <%:dBm%>" /><br />' +
'<small>%d%%</small>', icon, iw.signal, iw.noise, p
);
var d = document.getElementById('<%=self.option%>-iw-description'); small.innerHTML = info.innerHTML = String.format(
if (d && is_assoc) '<img src="%s" title="<%:Signal%>: %d <%:dBm%> / <%:Noise%>: %d <%:dBm%>" />&#160;<br />%d%%&#160;',
d.innerHTML = String.format( icon, iw.signal, iw.noise, p
);
if (is_assoc)
info.innerHTML = String.format(
'<strong><%:Mode%>:</strong> %s | ' + '<strong><%:Mode%>:</strong> %s | ' +
'<strong><%:SSID%>:</strong> %h<br />' + '<strong><%:SSID%>:</strong> %h<br />' +
'<strong><%:BSSID%>:</strong> %s | ' + '<strong><%:BSSID%>:</strong> %s<br />' +
'<strong><%:Encryption%>:</strong> %s<br />' + '<strong><%:Encryption%>:</strong> %s<br />' +
'<strong><%:Channel%>:</strong> %d (%.3f <%:GHz%>) | ' + '<strong><%:Channel%>:</strong> %d (%.3f <%:GHz%>)<br />' +
'<strong><%:Tx-Power%>:</strong> %d <%:dBm%><br />' + '<strong><%:Tx-Power%>:</strong> %d <%:dBm%><br />' +
'<strong><%:Signal%>:</strong> %d <%:dBm%> | ' + '<strong><%:Signal%>:</strong> %d <%:dBm%> | ' +
'<strong><%:Noise%>:</strong> %d <%:dBm%><br />' + '<strong><%:Noise%>:</strong> %d <%:dBm%><br />' +
@ -50,8 +51,8 @@
iw.txpower, iw.signal, iw.noise, iw.txpower, iw.signal, iw.noise,
iw.bitrate ? iw.bitrate : 0, iw.country iw.bitrate ? iw.bitrate : 0, iw.country
); );
else if (d) else
d.innerHTML = String.format( info.innerHTML = String.format(
'<strong><%:SSID%>:</strong> %h | ' + '<strong><%:SSID%>:</strong> %h | ' +
'<strong><%:Mode%>:</strong> %s<br />' + '<strong><%:Mode%>:</strong> %s<br />' +
'<em><%:Wireless is disabled or not associated%></em>', '<em><%:Wireless is disabled or not associated%></em>',
@ -62,17 +63,13 @@
); );
//]]></script> //]]></script>
<div class="table"> <span class="ifacebadge large" id="<%=self.option%>-iw-status">
<div class="tr cbi-section-table"> <small>
<div class="td"></div> <img src="<%=resource%>/icons/signal-none.png" title="<%:Not associated%>" />&#160;
<div class="td cbi-value-field" style="width:16px; padding:3px" id="<%=self.option%>-iw-signal"> </small>
<img src="<%=resource%>/icons/signal-none.png" title="<%:Not associated%>" /><br /> <span>
<small>0%</small> <em><%:Collecting data...%></em>
</div> </span>
<div class="td cbi-value-field" style="vertical-align:middle; text-align:left; padding:3px" id="<%=self.option%>-iw-description"> </span>
<em><%:Collecting data...%></em>
</div>
</div>
</div>
<%+cbi/valuefooter%> <%+cbi/valuefooter%>

View file

@ -202,22 +202,23 @@
data_rx_peak = Math.max(data_rx_peak, data_rx[i]); data_rx_peak = Math.max(data_rx_peak, data_rx[i]);
data_tx_peak = Math.max(data_tx_peak, data_tx[i]); data_tx_peak = Math.max(data_tx_peak, data_tx[i]);
if (i > 0) data_rx_avg += data_rx[i];
{ data_tx_avg += data_tx[i];
data_rx_avg = (data_rx_avg + data_rx[i]) / 2;
data_tx_avg = (data_tx_avg + data_tx[i]) / 2;
}
else
{
data_rx_avg = data_rx[i];
data_tx_avg = data_tx[i];
}
} }
data_rx_avg = (data_rx_avg / Math.max(data_rx.length, 1));
data_tx_avg = (data_tx_avg / Math.max(data_tx.length, 1));
var size = Math.floor(Math.log2(data_max)),
div = Math.pow(2, size - (size % 10)),
mult = data_max / div,
mult = (mult < 5) ? 2 : ((mult < 50) ? 10 : ((mult < 500) ? 100 : 1000));
data_max = data_max + (mult * div) - (data_max % (mult * div));
/* remember current timestamp, calculate horizontal scale */ /* remember current timestamp, calculate horizontal scale */
data_stamp = data[data.length-1][TIME]; data_stamp = data[data.length-1][TIME];
data_scale = height / (data_max * 1.1); data_scale = height / data_max;
/* plot data */ /* plot data */
var pt_rx = '0,' + height; var pt_rx = '0,' + height;
@ -244,9 +245,9 @@
line_rx.setAttribute('points', pt_rx); line_rx.setAttribute('points', pt_rx);
line_tx.setAttribute('points', pt_tx); line_tx.setAttribute('points', pt_tx);
label_25.firstChild.data = bandwidth_label(1.1 * 0.25 * data_max); label_25.firstChild.data = bandwidth_label(0.25 * data_max);
label_50.firstChild.data = bandwidth_label(1.1 * 0.50 * data_max); label_50.firstChild.data = bandwidth_label(0.50 * data_max);
label_75.firstChild.data = bandwidth_label(1.1 * 0.75 * data_max); label_75.firstChild.data = bandwidth_label(0.75 * data_max);
label_rx_cur.innerHTML = bandwidth_label(data_rx[data_rx.length-1], true); label_rx_cur.innerHTML = bandwidth_label(data_rx[data_rx.length-1], true);
label_tx_cur.innerHTML = bandwidth_label(data_tx[data_tx.length-1], true); label_tx_cur.innerHTML = bandwidth_label(data_tx[data_tx.length-1], true);
@ -258,6 +259,8 @@
label_tx_peak.innerHTML = bandwidth_label(data_tx_peak, true); label_tx_peak.innerHTML = bandwidth_label(data_tx_peak, true);
} }
); );
XHR.run();
} }
}, 1000 }, 1000
); );

View file

@ -304,6 +304,8 @@
label_otr_peak.innerHTML = Math.floor(data_otr_peak); label_otr_peak.innerHTML = Math.floor(data_otr_peak);
} }
); );
XHR.run();
} }
}, 1000 }, 1000
); );

View file

@ -54,8 +54,6 @@
swap = swapinfo, swap = swapinfo,
connmax = conn_max, connmax = conn_max,
conncount = conn_count, conncount = conn_count,
leases = stat.dhcp_leases(),
leases6 = stat.dhcp6_leases(),
wifinets = stat.wifi_networks() wifinets = stat.wifi_networks()
} }
@ -111,11 +109,6 @@
luci.http.prepare_content("application/json") luci.http.prepare_content("application/json")
luci.http.write_json(rv) luci.http.write_json(rv)
return
elseif luci.http.formvalue("hosts") == "1" then
luci.http.prepare_content("application/json")
luci.http.write_json(luci.sys.net.host_hints())
return return
end end
-%> -%>
@ -131,7 +124,7 @@
var pc = Math.floor((100 / mn) * vn); var pc = Math.floor((100 / mn) * vn);
return String.format( return String.format(
'<div style="width:200px; position:relative; border:1px solid #999999">' + '<div style="width:100%%; max-width:200px; position:relative; border:1px solid #999999">' +
'<div style="background-color:#CCCCCC; width:%d%%; height:15px">' + '<div style="background-color:#CCCCCC; width:%d%%; height:15px">' +
'<div style="position:absolute; left:0; top:0; text-align:center; width:100%%; color:#000000">' + '<div style="position:absolute; left:0; top:0; text-align:center; width:100%%; color:#000000">' +
'<small>%s / %s (%d%%)</small>' + '<small>%s / %s (%d%%)</small>' +
@ -141,45 +134,6 @@
); );
} }
function wifirate(bss, rx) {
var p = rx ? 'rx_' : 'tx_',
s = '%.1f <%:Mbit/s%>, %d<%:MHz%>'
.format(bss[p+'rate'] / 1000, bss[p+'mhz']),
ht = bss[p+'ht'], vht = bss[p+'vht'],
mhz = bss[p+'mhz'], nss = bss[p+'nss'],
mcs = bss[p+'mcs'], sgi = bss[p+'short_gi'];
if (ht || vht) {
if (vht) s += ', VHT-MCS %d'.format(mcs);
if (nss) s += ', VHT-NSS %d'.format(nss);
if (ht) s += ', MCS %s'.format(mcs);
if (sgi) s += ', <%:Short GI%>';
}
return s;
}
function duid2mac(duid) {
// DUID-LLT / Ethernet
if (duid.length === 28 && duid.substr(0, 8) === '00010001')
return duid.substr(16).replace(/(..)(?=..)/g, '$1:').toUpperCase();
// DUID-LL / Ethernet
if (duid.length === 20 && duid.substr(0, 8) === '00030001')
return duid.substr(8).replace(/(..)(?=..)/g, '$1:').toUpperCase();
return null;
}
var npoll = 1;
var hosts = <%=luci.http.write_json(luci.sys.net.host_hints())%>;
function updateHosts() {
XHR.get('<%=REQUEST_URI%>', { hosts: 1 }, function(x, data) {
hosts = data;
});
}
function labelList(items, offset) { function labelList(items, offset) {
var rv = [ ]; var rv = [ ];
@ -206,7 +160,7 @@
return E('div', { class: 'ifacebox' }, [ return E('div', { class: 'ifacebox' }, [
E('div', { class: 'ifacebox-head center ' + (active ? 'active' : '') }, E('div', { class: 'ifacebox-head center ' + (active ? 'active' : '') },
E('strong', title)), E('strong', title)),
E('div', { class: 'ifacebox-body' }, childs) E('div', { class: 'ifacebox-body left' }, childs)
]); ]);
} }
@ -220,9 +174,6 @@
XHR.poll(5, '<%=REQUEST_URI%>', { status: 1 }, XHR.poll(5, '<%=REQUEST_URI%>', { status: 1 },
function(x, info) function(x, info)
{ {
if (!(npoll++ % 5))
updateHosts();
<% if has_mptcp == 0 then %> <% if has_mptcp == 0 then %>
var us = document.getElementById('upstream_status_table'); var us = document.getElementById('upstream_status_table');
@ -333,86 +284,7 @@
); );
<% end %> <% end %>
<% if has_dhcp then %>
var ls = document.getElementById('lease_status_table');
if (ls)
{
/* clear all rows */
while (ls.firstElementChild !== ls.lastElementChild)
ls.removeChild(ls.lastElementChild);
for (var i = 0; i < info.leases.length; i++)
{
var timestr;
if (info.leases[i].expires === false)
timestr = '<em><%:unlimited%></em>';
else if (info.leases[i].expires <= 0)
timestr = '<em><%:expired%></em>';
else
timestr = String.format('%t', info.leases[i].expires);
ls.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d">'.format((i % 2) + 1), [
E('<div class="td">', info.leases[i].hostname ? info.leases[i].hostname : '?'),
E('<div class="td">', info.leases[i].ipaddr),
E('<div class="td">', info.leases[i].macaddr),
E('<div class="td">', timestr)
]));
}
if (ls.firstElementChild === ls.lastElementChild)
ls.appendChild(E('<div class="tr cbi-section-table-row"><div class="td"><em><br /><%:There are no active leases.%></em></div></div>'));
}
var ls6 = document.getElementById('lease6_status_table');
if (ls6 && info.leases6)
{
ls6.parentNode.style.display = 'block';
/* clear all rows */
while (ls6.firstElementChild !== ls6.lastElementChild)
ls6.removeChild(ls6.lastElementChild);
for (var i = 0; i < info.leases6.length; i++)
{
var timestr;
if (info.leases6[i].expires === false)
timestr = '<em><%:unlimited%></em>';
else if (info.leases6[i].expires <= 0)
timestr = '<em><%:expired%></em>';
else
timestr = String.format('%t', info.leases6[i].expires);
var host = hosts[duid2mac(info.leases6[i].duid)],
name = info.leases6[i].hostname,
hint = null;
if (!name) {
if (host)
hint = host.name || host.ipv4 || host.ipv6;
}
else {
if (host && host.name && info.leases6[i].hostname != host.name)
hint = host.name;
}
ls6.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d">'.format((i % 2) + 1), [
E('<div class="td nowrap">', hint ? '<div>%h (%h)</div>'.format(name || '?', hint) : (name || '?')),
E('<div class="td nowrap">', info.leases6[i].ip6addr),
E('<div class="td nowrap">', info.leases6[i].duid),
E('<div class="td nowrap">', timestr)
]));
}
if (ls6.firstElementChild === ls6.lastElementChild)
ls6.appendChild(E('<div class="tr cbi-section-table-row"><div class="td"><em><br /><%:There are no active leases.%></em></div></div>'));
}
<% end %>
<% if has_wifi then %> <% if has_wifi then %>
var assoclist = [ ];
var ws = document.getElementById('wifi_status_table'); var ws = document.getElementById('wifi_status_table');
if (ws) if (ws)
{ {
@ -429,21 +301,6 @@
{ {
var net = dev.networks[nidx]; var net = dev.networks[nidx];
var is_assoc = (net.bssid != '00:00:00:00:00:00' && net.channel && !net.disabled); var is_assoc = (net.bssid != '00:00:00:00:00:00' && net.channel && !net.disabled);
var num_assoc = 0;
for (var bssid in net.assoclist)
{
var bss = net.assoclist[bssid];
bss.bssid = bssid;
bss.link = net.link;
bss.name = net.name;
bss.ifname = net.ifname;
bss.radio = dev.name;
assoclist.push(bss);
num_assoc++;
}
var icon; var icon;
if (!is_assoc) if (!is_assoc)
@ -466,7 +323,7 @@
'<%:Mode%>', net.mode, '<%:Mode%>', net.mode,
'<%:BSSID%>', is_assoc ? (net.bssid || '-') : null, '<%:BSSID%>', is_assoc ? (net.bssid || '-') : null,
'<%:Encryption%>', is_assoc ? net.encryption : null, '<%:Encryption%>', is_assoc ? net.encryption : null,
'<%:Associations%>', is_assoc ? (num_assoc || '-') : null, '<%:Associations%>', is_assoc ? (net.num_assoc || '-') : null,
null, is_assoc ? null : E('em', '<%:Wireless is disabled or not associated%>'))); null, is_assoc ? null : E('em', '<%:Wireless is disabled or not associated%>')));
} }
@ -481,62 +338,6 @@
if (!ws.lastElementChild) if (!ws.lastElementChild)
ws.appendChild(E('<em><%:No information available%></em>')); ws.appendChild(E('<em><%:No information available%></em>'));
} }
var ac = document.getElementById('wifi_assoc_table');
if (ac)
{
/* clear all rows */
while (ac.firstElementChild !== ac.lastElementChild)
ac.removeChild(ac.lastElementChild);
assoclist.sort(function(a, b) {
return (a.name == b.name)
? (a.bssid < b.bssid)
: (a.name > b.name )
;
});
for (var i = 0; i < assoclist.length; i++)
{
var icon;
var q = (-1 * (assoclist[i].noise - assoclist[i].signal)) / 5;
if (q < 1)
icon = "<%=resource%>/icons/signal-0.png";
else if (q < 2)
icon = "<%=resource%>/icons/signal-0-25.png";
else if (q < 3)
icon = "<%=resource%>/icons/signal-25-50.png";
else if (q < 4)
icon = "<%=resource%>/icons/signal-50-75.png";
else
icon = "<%=resource%>/icons/signal-75-100.png";
var host = hosts[assoclist[i].bssid],
name = host ? (host.name || host.ipv4 || host.ipv6) : null,
hint = (host && host.name && (host.ipv4 || host.ipv6)) ? (host.ipv4 || host.ipv6) : null;
ac.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d">'.format(1 + (i % 2)), [
E('<div class="td"><span class="ifacebadge" title="%q"><img src="<%=resource%>/icons/wifi.png" /> %h</span></div>'
.format(assoclist[i].radio, assoclist[i].ifname)),
E('<div class="td"><a href="%s" style="white-space:nowrap">%h</a></div>'
.format(assoclist[i].link, assoclist[i].name)),
E('<div class="td">',
assoclist[i].bssid),
E('<div class="td nowrap">',
hint ? '<div>%h (%h)</div>'.format(name || '?', hint) : (name || '?')),
E('<div class="td"><span class="ifacebadge" title="<%:Signal%>: %d <%:dBm%> / <%:Noise%>: %d <%:dBm%> / <%:SNR%>: %d"><img src="%s" /> %d / %d <%:dBm%></span></div>'
.format(assoclist[i].signal, assoclist[i].noise, assoclist[i].signal - assoclist[i].noise, icon, assoclist[i].signal, assoclist[i].noise)),
E('<div class="td nowrap">', [
E('<span style="white-space:nowrap">', wifirate(assoclist[i], true)),
E('<br />'),
E('<span style="white-space:nowrap">', wifirate(assoclist[i], false))
])
]));
}
if (ac.firstElementChild === ac.lastElementChild)
ac.appendChild(E('<div class="tr cbi-section-table-row"><div class="td"><em><br /><%:No information available%></em></div></div>'));
}
<% end %> <% end %>
var e; var e;
@ -594,8 +395,8 @@
<h2 name="content"><%:Status%></h2> <h2 name="content"><%:Status%></h2>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:System%></legend> <h3><%:System%></h3>
<div class="table" width="100%"> <div class="table" width="100%">
<div class="tr"><div class="td left" width="33%"><%:Hostname%></div><div class="td left"><%=luci.sys.hostname() or "?"%></div></div> <div class="tr"><div class="td left" width="33%"><%:Hostname%></div><div class="td left"><%=luci.sys.hostname() or "?"%></div></div>
@ -610,79 +411,51 @@
<div class="tr"><div class="td left" width="33%"><%:Uptime%></div><div class="td left" id="uptime">-</div></div> <div class="tr"><div class="td left" width="33%"><%:Uptime%></div><div class="td left" id="uptime">-</div></div>
<div class="tr"><div class="td left" width="33%"><%:Load Average%></div><div class="td left" id="loadavg">-</div></div> <div class="tr"><div class="td left" width="33%"><%:Load Average%></div><div class="td left" id="loadavg">-</div></div>
</div> </div>
</fieldset> </div>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:Memory%></legend> <h3><%:Memory%></h3>
<div class="table" width="100%"> <div class="table" width="100%">
<div class="tr"><div class="td left" width="33%"><%:Total Available%></div><div class="td left" id="memtotal">-</div></div> <div class="tr"><div class="td left" width="33%"><%:Total Available%></div><div class="td left" id="memtotal">-</div></div>
<div class="tr"><div class="td left" width="33%"><%:Free%></div><div class="td left" id="memfree">-</div></div> <div class="tr"><div class="td left" width="33%"><%:Free%></div><div class="td left" id="memfree">-</div></div>
<div class="tr"><div class="td left" width="33%"><%:Buffered%></div><div class="td left" id="membuff">-</div></div> <div class="tr"><div class="td left" width="33%"><%:Buffered%></div><div class="td left" id="membuff">-</div></div>
</div> </div>
</fieldset> </div>
<% if swapinfo.total > 0 then %> <% if swapinfo.total > 0 then %>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:Swap%></legend> <h3><%:Swap%></h3>
<div class="table" width="100%"> <div class="table" width="100%">
<div class="tr"><div class="td left" width="33%"><%:Total Available%></div><div class="td left" id="swaptotal">-</div></div> <div class="tr"><div class="td left" width="33%"><%:Total Available%></div><div class="td left" id="swaptotal">-</div></div>
<div class="tr"><div class="td left" width="33%"><%:Free%></div><div class="td left" id="swapfree">-</div></div> <div class="tr"><div class="td left" width="33%"><%:Free%></div><div class="td left" id="swapfree">-</div></div>
</div> </div>
</fieldset> </div>
<% end %> <% end %>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:Network%></legend> <h3><%:Network%></h3>
<% if has_mptcp == "0" then %>
<div id="upstream_status_table" class="network-status-table"> <div id="upstream_status_table" class="network-status-table">
<em><%:Collecting data...%></em> <em><%:Collecting data...%></em>
</div> </div>
<% end %>
<div class="table" width="100%"> <div class="table" width="100%">
<div class="tr"><div class="td left" width="33%"><%:Active Connections%></div><div class="td left" id="conns">-</div></div> <div class="tr"><div class="td left" width="33%"><%:Active Connections%></div><div class="td left" id="conns">-</div></div>
</div> </div>
</fieldset> </div>
<% if has_dhcp then %> <%
<fieldset class="cbi-section"> if has_dhcp then
<legend><%:DHCP Leases%></legend> include("admin_network/lease_status")
end
<div class="table cbi-section-table" id="lease_status_table"> %>
<div class="tr cbi-section-table-titles">
<div class="th"><%:Hostname%></div>
<div class="th"><%:IPv4-Address%></div>
<div class="th"><%:MAC-Address%></div>
<div class="th"><%:Leasetime remaining%></div>
</div>
<div class="tr cbi-section-table-row">
<div class="td" colspan="4"><em><br /><%:Collecting data...%></em></div>
</div>
</div>
</fieldset>
<fieldset class="cbi-section" style="display:none">
<legend><%:DHCPv6 Leases%></legend>
<div class="table cbi-section-table" id="lease6_status_table">
<div class="tr cbi-section-table-titles">
<div class="th"><%:Host%></div>
<div class="th"><%:IPv6-Address%></div>
<div class="th"><%:DUID%></div>
<div class="th"><%:Leasetime remaining%></div>
</div>
<div class="tr cbi-section-table-row">
<div class="td" colspan="4"><em><br /><%:Collecting data...%></em></div>
</div>
</div>
</fieldset>
<% end %>
<% if has_dsl then %> <% if has_dsl then %>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:DSL%></legend> <h3><%:DSL%></h3>
<div class="table" width="100%"> <div class="table" width="100%">
<div class="tr"> <div class="tr">
<div class="td left" width="33%" style="vertical-align:top"><%:DSL Status%></div> <div class="td left" width="33%" style="vertical-align:top"><%:DSL Status%></div>
@ -696,35 +469,23 @@
</div> </div>
</div> </div>
</div> </div>
</fieldset> </div>
<% end %> <% end %>
<% if has_wifi then %> <% if has_wifi then %>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:Wireless%></legend> <h3><%:Wireless%></h3>
<div id="wifi_status_table" class="network-status-table"> <div id="wifi_status_table" class="network-status-table">
<em><%:Collecting data...%></em> <em><%:Collecting data...%></em>
</div> </div>
</fieldset> </div>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:Associated Stations%></legend> <h3><%:Associated Stations%></h3>
<div class="table cbi-section-table valign-middle" id="wifi_assoc_table"> <%+admin_network/wifi_assoclist%>
<div class="tr cbi-section-table-titles"> </div>
<div class="th">&#160;</div>
<div class="th"><%:Network%></div>
<div class="th"><%:MAC-Address%></div>
<div class="th"><%:Host%></div>
<div class="th"><%:Signal%> / <%:Noise%></div>
<div class="th"><%:RX Rate%> / <%:TX Rate%></div>
</div>
<div class="tr cbi-section-table-row">
<div class="td" colspan="6"><em><br /><%:Collecting data...%></em></div>
</div>
</div>
</fieldset>
<% end %> <% end %>
<%- <%-

View file

@ -62,6 +62,7 @@
<%+header%> <%+header%>
<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<style type="text/css"> <style type="text/css">
span:target { span:target {
color: blue; color: blue;
@ -70,7 +71,6 @@
</style> </style>
<h2 name="content"><%:Firewall Status%></h2> <h2 name="content"><%:Firewall Status%></h2>
<br />
<% if has_ip6tables then %> <% if has_ip6tables then %>
<ul class="cbi-tabmenu"> <ul class="cbi-tabmenu">
@ -88,69 +88,69 @@
<input type="submit" class="cbi-button" name="restart" value="<%:Restart Firewall%>" /> <input type="submit" class="cbi-button" name="restart" value="<%:Restart Firewall%>" />
</form> </form>
<fieldset class="cbi-section"> <div class="cbi-section">
<% for _, tbl in ipairs(tables) do chaincnt = 0 %> <% for _, tbl in ipairs(tables) do chaincnt = 0 %>
<h3><%:Table%>: <%=tbl%></h3> <h3><%:Table%>: <%=tbl%></h3>
<div class="table cbi-section-table" style="font-size:90%">
<% for _, chain in ipairs(ipt:chains(tbl)) do
rowcnt = 0
chaincnt = chaincnt + 1
chaininfo = ipt:chain(tbl, chain)
%>
<div class="tr cbi-section-table-titles cbi-rowstyle-<%=rowstyle()%>">
<div class="th cbi-section-table-cell" style="text-align:left" colspan="11">
<br /><span id="rule_<%=tbl:lower()%>_<%=chain%>">
<%:Chain%> <em><%=chain%></em>
(<%- if chaininfo.policy then -%>
<%:Policy%>: <em><%=chaininfo.policy%></em>, <%:Packets%>: <%=chaininfo.packets%>, <%:Traffic%>: <%=wba.byte_format(chaininfo.bytes)-%>
<%- else -%>
<%:References%>: <%=chaininfo.references-%>
<%- end -%>)</span>
</div>
</div>
<div class="tr cbi-section-table-descr">
<div class="th cbi-section-table-cell"><%:Pkts.%></div>
<div class="th cbi-section-table-cell"><%:Traffic%></div>
<div class="th cbi-section-table-cell"><%:Target%></div>
<div class="th cbi-section-table-cell"><%:Prot.%></div>
<div class="th cbi-section-table-cell"><%:In%></div>
<div class="th cbi-section-table-cell"><%:Out%></div>
<div class="th cbi-section-table-cell"><%:Source%></div>
<div class="th cbi-section-table-cell"><%:Destination%></div>
<div class="th cbi-section-table-cell" style="width:30%"><%:Options%></div>
</div>
<% for _, rule in ipairs(ipt:find({table=tbl, chain=chain})) do %> <% for _, chain in ipairs(ipt:chains(tbl)) do
<div class="tr cbi-section-table-row cbi-rowstyle-<%=rowstyle()%>"> rowcnt = 0
<div class="td"><%=rule.packets%></div> chaincnt = chaincnt + 1
<div class="td" style="white-space: nowrap"><%=wba.byte_format(rule.bytes)%></div> chaininfo = ipt:chain(tbl, chain)
<div class="td"><%=rule.target and link_target(tbl, rule.target) or "-"%></div> %>
<div class="td"><%=rule.protocol%></div> <h4 id="rule_<%=tbl:lower()%>_<%=chain%>">
<div class="td"><%=link_iface(rule.inputif)%></div> <%:Chain%> <em><%=chain%></em>
<div class="td"><%=link_iface(rule.outputif)%></div> (<%- if chaininfo.policy then -%>
<div class="td"><%=rule.source%></div> <%:Policy%>: <em><%=chaininfo.policy%></em>, <%:Packets%>: <%=chaininfo.packets%>, <%:Traffic%>: <%=wba.byte_format(chaininfo.bytes)-%>
<div class="td"><%=rule.destination%></div> <%- else -%>
<div class="td" style="width:30%"><small><%=#rule.options > 0 and luci.util.pcdata(table.concat(rule.options, " ")) or "-"%></small></div> <%:References%>: <%=chaininfo.references-%>
</div> <%- end -%>)
<% end %> </h4>
<% if rowcnt == 1 then %> <div class="cbi-section-node">
<div class="tr cbi-section-table-titles cbi-rowstyle-<%=rowstyle()%>"> <div class="table" style="font-size:90%">
<div class="td" colspan="9"><em><%:No rules in this chain%></em></div> <div class="tr table-titles cbi-rowstyle-<%=rowstyle()%>">
<div class="th hide-xs"><%:Pkts.%></div>
<div class="th nowrap"><%:Traffic%></div>
<div class="th col-5"><%:Target%></div>
<div class="th"><%:Prot.%></div>
<div class="th"><%:In%></div>
<div class="th"><%:Out%></div>
<div class="th"><%:Source%></div>
<div class="th"><%:Destination%></div>
<div class="th col-9 hide-xs"><%:Options%></div>
</div> </div>
<% end %>
<% end %>
<% if chaincnt == 0 then %> <% for _, rule in ipairs(ipt:find({table=tbl, chain=chain})) do %>
<div class="tr cbi-section-table-titles cbi-rowstyle-<%=rowstyle()%>"> <div class="tr cbi-rowstyle-<%=rowstyle()%>">
<div class="td" colspan="9"><em><%:No chains in this table%></em></div> <div class="td"><%=rule.packets%></div>
<div class="td nowrap"><%=wba.byte_format(rule.bytes)%></div>
<div class="td col-5"><%=rule.target and link_target(tbl, rule.target) or "-"%></div>
<div class="td"><%=rule.protocol%></div>
<div class="td"><%=link_iface(rule.inputif)%></div>
<div class="td"><%=link_iface(rule.outputif)%></div>
<div class="td"><%=rule.source%></div>
<div class="td"><%=rule.destination%></div>
<div class="td col-9 hide-xs"><%=#rule.options > 0 and luci.util.pcdata(table.concat(rule.options, " ")) or "-"%></div>
</div>
<% end %>
<% if rowcnt == 1 then %>
<div class="tr cbi-rowstyle-<%=rowstyle()%>">
<div class="td" colspan="9"><em><%:No rules in this chain%></em></div>
</div>
<% end %>
</div> </div>
<% end %> </div>
</div> <% end %>
<% if chaincnt == 0 then %>
<em><%:No chains in this table%></em>
<% end %>
<br /><br /> <br /><br />
<% end %> <% end %>
</fieldset> </div>
</div> </div>
<%+footer%> <%+footer%>

View file

@ -237,6 +237,8 @@
label_15_peak.innerHTML = (data_15_peak / 100).toFixed(2); label_15_peak.innerHTML = (data_15_peak / 100).toFixed(2);
} }
); );
XHR.run();
} }
}, 1000 }, 1000
); );

View file

@ -32,28 +32,30 @@
<%+header%> <%+header%>
<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<div class="cbi-map" id="cbi-network"> <div class="cbi-map" id="cbi-network">
<h2 name="content"><%:Routes%></h2> <h2 name="content"><%:Routes%></h2>
<div class="cbi-map-descr"><%:The following rules are currently active on this system.%></div> <div class="cbi-map-descr"><%:The following rules are currently active on this system.%></div>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend>ARP</legend> <legend>ARP</legend>
<div class="cbi-section-node"> <div class="cbi-section-node">
<div class="table cbi-section-table"> <div class="table">
<div class="tr cbi-section-table-titles"> <div class="tr table-titles">
<div class="th cbi-section-table-cell"><%_<abbr title="Internet Protocol Version 4">IPv4</abbr>-Address%></div> <div class="th"><%_<abbr title="Internet Protocol Version 4">IPv4</abbr>-Address%></div>
<div class="th cbi-section-table-cell"><%_<abbr title="Media Access Control">MAC</abbr>-Address%></div> <div class="th"><%_<abbr title="Media Access Control">MAC</abbr>-Address%></div>
<div class="th cbi-section-table-cell"><%:Interface%></div> <div class="th"><%:Interface%></div>
</div> </div>
<% <%
for _, v in ipairs(ip.neighbors({ family = 4 })) do for _, v in ipairs(ip.neighbors({ family = 4 })) do
if v.mac then if v.mac then
%> %>
<div class="tr cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>"> <div class="tr cbi-rowstyle-<%=(style and 1 or 2)%>">
<div class="td cbi-value-field"><%=v.dest%></div> <div class="td"><%=v.dest%></div>
<div class="td cbi-value-field"><%=v.mac%></div> <div class="td"><%=v.mac%></div>
<div class="td cbi-value-field"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></div> <div class="td"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></div>
</div> </div>
<% <%
style = not style style = not style
@ -62,61 +64,57 @@
%> %>
</div> </div>
</div> </div>
</fieldset> </div>
<br />
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%_Active <abbr title="Internet Protocol Version 4">IPv4</abbr>-Routes%></legend> <legend><%_Active <abbr title="Internet Protocol Version 4">IPv4</abbr>-Routes%></legend>
<div class="cbi-section-node"> <div class="cbi-section-node">
<div class="table cbi-section-table"> <div class="table">
<div class="tr cbi-section-table-titles"> <div class="tr table-titles">
<div class="th cbi-section-table-cell"><%:Network%></div> <div class="th"><%:Network%></div>
<div class="th cbi-section-table-cell"><%:Target%></div> <div class="th"><%:Target%></div>
<div class="th cbi-section-table-cell"><%_<abbr title="Internet Protocol Version 4">IPv4</abbr>-Gateway%></div> <div class="th"><%_<abbr title="Internet Protocol Version 4">IPv4</abbr>-Gateway%></div>
<div class="th cbi-section-table-cell"><%:Metric%></div> <div class="th"><%:Metric%></div>
<div class="th cbi-section-table-cell"><%:Table%></div> <div class="th"><%:Table%></div>
</div> </div>
<% for _, v in ipairs(ip.routes({ family = 4, type = 1 })) do %> <% for _, v in ipairs(ip.routes({ family = 4, type = 1 })) do %>
<div class="tr cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>"> <div class="tr cbi-rowstyle-<%=(style and 1 or 2)%>">
<div class="td cbi-value-field"><%=luci.tools.webadmin.iface_get_network(v.dev) or v.dev%></div> <div class="td"><%=luci.tools.webadmin.iface_get_network(v.dev) or v.dev%></div>
<div class="td cbi-value-field"><%=v.dest%></div> <div class="td"><%=v.dest%></div>
<div class="td cbi-value-field"><%=v.gw%></div> <div class="td"><%=v.gw or "-"%></div>
<div class="td cbi-value-field"><%=v.metric or 0%></div> <div class="td"><%=v.metric or 0%></div>
<div class="td cbi-value-field"><%=rtn[v.table] or v.table%></div> <div class="td"><%=rtn[v.table] or v.table%></div>
</div> </div>
<% style = not style end %> <% style = not style end %>
</div> </div>
</div> </div>
</fieldset> </div>
<br />
<% <%
if nixio.fs.access("/proc/net/ipv6_route") then if nixio.fs.access("/proc/net/ipv6_route") then
style = true style = true
%> %>
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%_Active <abbr title="Internet Protocol Version 6">IPv6</abbr>-Routes%></legend> <legend><%_Active <abbr title="Internet Protocol Version 6">IPv6</abbr>-Routes%></legend>
<div class="cbi-section-node"> <div class="cbi-section-node">
<div class="table cbi-section-table"> <div class="table">
<div class="tr cbi-section-table-titles"> <div class="tr table-titles">
<div class="th cbi-section-table-cell"><%:Network%></div> <div class="th"><%:Network%></div>
<div class="th cbi-section-table-cell"><%:Target%></div> <div class="th"><%:Target%></div>
<div class="th cbi-section-table-cell"><%:Source%></div> <div class="th"><%:Source%></div>
<div class="th cbi-section-table-cell"><%:Metric%></div> <div class="th"><%:Metric%></div>
<div class="th cbi-section-table-cell"><%:Table%></div> <div class="th"><%:Table%></div>
</div> </div>
<% <%
for _, v in ipairs(ip.routes({ family = 6, type = 1 })) do for _, v in ipairs(ip.routes({ family = 6, type = 1 })) do
if v.dest and not v.dest:is6linklocal() then if v.dest and not v.dest:is6linklocal() then
%> %>
<div class="tr cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>"> <div class="tr cbi-rowstyle-<%=(style and 1 or 2)%>">
<div class="td cbi-value-field"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></div> <div class="td"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></div>
<div class="td cbi-value-field"><%=v.dest%></div> <div class="td"><%=v.dest%></div>
<div class="td cbi-value-field"><%=v.from%></div> <div class="td"><%=v.from%></div>
<div class="td cbi-value-field"><%=v.metric or 0%></div> <div class="td"><%=v.metric or 0%></div>
<div class="td cbi-value-field"><%=rtn[v.table] or v.table%></div> <div class="td"><%=rtn[v.table] or v.table%></div>
</div> </div>
<% <%
style = not style style = not style
@ -125,27 +123,25 @@
%> %>
</div> </div>
</div> </div>
</fieldset> </div>
<br />
<fieldset class="cbi-section"> <div class="cbi-section">
<legend><%:IPv6 Neighbours%></legend> <legend><%:IPv6 Neighbours%></legend>
<div class="cbi-section-node"> <div class="cbi-section-node">
<div class="table cbi-section-table"> <div class="table">
<div class="tr cbi-section-table-titles"> <div class="tr table-titles">
<div class="th cbi-section-table-cell"><%:IPv6-Address%></div> <div class="th"><%:IPv6-Address%></div>
<div class="th cbi-section-table-cell"><%:MAC-Address%></div> <div class="th"><%:MAC-Address%></div>
<div class="th cbi-section-table-cell"><%:Interface%></div> <div class="th"><%:Interface%></div>
</div> </div>
<% <%
for _, v in ipairs(ip.neighbors({ family = 6 })) do for _, v in ipairs(ip.neighbors({ family = 6 })) do
if v.dest and not v.dest:is6linklocal() and v.mac then if v.dest and not v.dest:is6linklocal() and v.mac then
%> %>
<div class="tr cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>"> <div class="tr cbi-rowstyle-<%=(style and 1 or 2)%>">
<div class="td cbi-value-field"><%=v.dest%></div> <div class="td"><%=v.dest%></div>
<div class="td cbi-value-field"><%=v.mac%></div> <div class="td"><%=v.mac%></div>
<div class="td cbi-value-field"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></div> <div class="td"><%=luci.tools.webadmin.iface_get_network(v.dev) or '(' .. v.dev .. ')'%></div>
</div> </div>
<% <%
style = not style style = not style
@ -154,8 +150,7 @@
%> %>
</div> </div>
</div> </div>
</fieldset> </div>
<br />
<% end %> <% end %>
</div> </div>

View file

@ -276,7 +276,7 @@
function wireless_label(dbm, noise) function wireless_label(dbm, noise)
{ {
if (noise) if (noise)
return String.format("%d <%:dBm%> (SNR %d <%:dBm%>)", noise_floor + dbm - 255, dbm - noise); return String.format("%d <%:dBm%> (SNR %d <%:dB%>)", noise_floor + dbm - 255, dbm - noise);
else else
return String.format("%d <%:dBm%>", noise_floor + dbm - 255); return String.format("%d <%:dBm%>", noise_floor + dbm - 255);
} }
@ -308,6 +308,8 @@
label_rate_peak.innerHTML = rate_label(data_rate_peak); label_rate_peak.innerHTML = rate_label(data_rate_peak);
} }
); );
XHR.run();
} }
}, 1000 }, 1000
); );

View file

@ -13,84 +13,77 @@
<li class="cbi-tab-disabled"><a href="<%=REQUEST_URI%>/backupfiles"><%:Configuration%></a></li> <li class="cbi-tab-disabled"><a href="<%=REQUEST_URI%>/backupfiles"><%:Configuration%></a></li>
</ul> </ul>
<fieldset class="cbi-section"> <div class="cbi-section">
<h3><%:Backup / Restore%></h3>
<fieldset class="cbi-section"> <div class="cbi-section-descr"><%:Click "Generate archive" to download a tar archive of the current configuration files. To reset the firmware to its initial state, click "Perform reset" (only possible with squashfs images).%></div>
<legend><%:Backup / Restore%></legend> <div class="cbi-section-node">
<div class="cbi-section-descr"><%:Click "Generate archive" to download a tar archive of the current configuration files. To reset the firmware to its initial state, click "Perform reset" (only possible with squashfs images).%></div> <form class="inline" method="post" action="<%=url('admin/system/flashops/backup')%>">
<div class="cbi-section-node"> <input type="hidden" name="token" value="<%=token%>" />
<form class="inline" method="post" action="<%=url('admin/system/flashops/backup')%>"> <div class="cbi-value<% if not reset_avail then %> cbi-value-last<% end %>">
<input type="hidden" name="token" value="<%=token%>" /> <label class="cbi-value-title" for="image"><%:Download backup%>:</label>
<div class="cbi-value<% if not reset_avail then %> cbi-value-last<% end %>"> <div class="cbi-value-field">
<label class="cbi-value-title" for="image"><%:Download backup%>:</label> <input class="cbi-button cbi-button-action important" type="submit" name="backup" value="<%:Generate archive%>" />
<div class="cbi-value-field">
<input class="cbi-button cbi-button-apply" type="submit" name="backup" value="<%:Generate archive%>" />
</div>
</div> </div>
</form> </div>
<% if reset_avail then %> </form>
<form class="inline" method="post" action="<%=url('admin/system/flashops/reset')%>">
<input type="hidden" name="token" value="<%=token%>" />
<div class="cbi-value cbi-value-last">
<label class="cbi-value-title"><%:Reset to defaults%>:</label>
<div class="cbi-value-field">
<input onclick="return confirm('<%:Really reset all changes?%>')" class="cbi-button cbi-button-reset" type="submit" name="reset" value="<%:Perform reset%>" />
</div>
</div>
</form>
<% end %>
</div>
<br />
<div class="cbi-section-descr"><%:To restore configuration files, you can upload a previously generated backup archive here.%></div>
<div class="cbi-section-node">
<form class="inline" method="post" action="<%=url('admin/system/flashops/restore')%>" enctype="multipart/form-data">
<div class="cbi-value cbi-value-last">
<label class="cbi-value-title" for="archive"><%:Restore backup%>:</label>
<div class="cbi-value-field">
<input type="hidden" name="token" value="<%=token%>" />
<input type="file" name="archive" id="archive" />
<input type="submit" class="cbi-button cbi-input-apply" name="restore" value="<%:Upload archive...%>" />
</div>
</div>
</form>
</div>
<% if reset_avail then %> <% if reset_avail then %>
<div class="alert-message warning"><%:Custom files (certificates, scripts) may remain on the system. To prevent this, perform a factory-reset first.%></div> <form class="inline" method="post" action="<%=url('admin/system/flashops/reset')%>">
<input type="hidden" name="token" value="<%=token%>" />
<div class="cbi-value cbi-value-last">
<label class="cbi-value-title"><%:Reset to defaults%>:</label>
<div class="cbi-value-field">
<input onclick="return confirm('<%:Really reset all changes?%>')" class="cbi-button cbi-button-reset" type="submit" name="reset" value="<%:Perform reset%>" />
</div>
</div>
</form>
<% end %> <% end %>
</fieldset> </div>
<div class="cbi-section-descr"><%:To restore configuration files, you can upload a previously generated backup archive here.%></div>
<div class="cbi-section-node">
<form class="inline" method="post" action="<%=url('admin/system/flashops/restore')%>" enctype="multipart/form-data">
<div class="cbi-value cbi-value-last">
<label class="cbi-value-title" for="archive"><%:Restore backup%>:</label>
<div class="cbi-value-field">
<input type="hidden" name="token" value="<%=token%>" />
<input type="file" name="archive" id="archive" />
<input type="submit" class="cbi-button cbi-button-action important" name="restore" value="<%:Upload archive...%>" />
</div>
</div>
</form>
</div>
<% if reset_avail then %>
<div class="alert-message warning"><%:Custom files (certificates, scripts) may remain on the system. To prevent this, perform a factory-reset first.%></div>
<% end %>
</div>
<br /> <div class="cbi-section">
<h3><%:Flash new firmware image%></h3>
<fieldset class="cbi-section"> <% if upgrade_avail then %>
<legend><%:Flash new firmware image%></legend> <form method="post" action="<%=url('admin/system/flashops/sysupgrade')%>" enctype="multipart/form-data">
<% if upgrade_avail then %> <input type="hidden" name="token" value="<%=token%>" />
<form method="post" action="<%=url('admin/system/flashops/sysupgrade')%>" enctype="multipart/form-data"> <div class="cbi-section-descr"><%:Upload a sysupgrade-compatible image here to replace the running firmware. Check "Keep settings" to retain the current configuration (requires a compatible firmware image).%></div>
<input type="hidden" name="token" value="<%=token%>" /> <div class="cbi-section-node">
<div class="cbi-section-descr"><%:Upload a sysupgrade-compatible image here to replace the running firmware. Check "Keep settings" to retain the current configuration (requires a compatible firmware image).%></div> <div class="cbi-value">
<div class="cbi-section-node"> <label class="cbi-value-title" for="keep"><%:Keep settings%>:</label>
<div class="cbi-value"> <div class="cbi-value-field">
<label class="cbi-value-title" for="keep"><%:Keep settings%>:</label> <input type="checkbox" name="keep" id="keep" checked="checked" />
<div class="cbi-value-field">
<input type="checkbox" name="keep" id="keep" checked="checked" />
</div>
</div>
<div class="cbi-value cbi-value-last<% if image_invalid then %> cbi-value-error<% end %>">
<label class="cbi-value-title" for="image"><%:Image%>:</label>
<div class="cbi-value-field">
<input type="file" name="image" id="image" />
<input type="submit" class="cbi-button cbi-input-apply" value="<%:Flash image...%>" />
</div>
</div> </div>
</div> </div>
<% if image_invalid then %> <div class="cbi-value cbi-value-last<% if image_invalid then %> cbi-value-error<% end %>">
<div class="cbi-section-error"><%:The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform. %></div> <label class="cbi-value-title" for="image"><%:Image%>:</label>
<% end %> <div class="cbi-value-field">
</form> <input type="file" name="image" id="image" />
<% else %> <input type="submit" class="cbi-button cbi-button-action important" value="<%:Flash image...%>" />
<div class="cbi-section-descr"><%:Sorry, there is no sysupgrade support present; a new firmware image must be flashed manually. Please refer to the wiki for device specific install instructions.%></div> </div>
<% end %> </div>
</fieldset> </div>
<% if image_invalid then %>
</fieldset> <div class="cbi-section-error"><%:The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform. %></div>
<% end %>
</form>
<% else %>
<div class="cbi-section-descr"><%:Sorry, there is no sysupgrade support present; a new firmware image must be flashed manually. Please refer to the wiki for device specific install instructions.%></div>
<% end %>
</div>
<%+footer%> <%+footer%>

View file

@ -44,6 +44,8 @@ end
<%+header%> <%+header%>
<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
<h2 name="content"><%:Software%></h2> <h2 name="content"><%:Software%></h2>
<div class="cbi-map"> <div class="cbi-map">
@ -57,8 +59,8 @@ end
<input type="hidden" name="exec" value="1" /> <input type="hidden" name="exec" value="1" />
<input type="hidden" name="token" value="<%=token%>" /> <input type="hidden" name="token" value="<%=token%>" />
<fieldset class="cbi-section"> <div class="cbi-section">
<fieldset class="cbi-section-node"> <div class="cbi-section-node">
<% if (install and next(install)) or (remove and next(remove)) or update or upgrade then %> <% if (install and next(install)) or (remove and next(remove)) or update or upgrade then %>
<div class="cbi-value"> <div class="cbi-value">
<% if #stdout > 0 then %><pre><%=pcdata(stdout)%></pre><% end %> <% if #stdout > 0 then %><pre><%=pcdata(stdout)%></pre><% end %>
@ -91,18 +93,18 @@ end
<div style="background-color:#F08080; border-right:1px solid #000000; height:100%; width:<%=used_perc%>%">&#160;</div> <div style="background-color:#F08080; border-right:1px solid #000000; height:100%; width:<%=used_perc%>%">&#160;</div>
</div> </div>
</div> </div>
</fieldset> </div>
<br /> <br />
<fieldset class="cbi-section-node"> <div class="cbi-section-node">
<input type="hidden" name="display" value="<%=pcdata(display)%>" /> <input type="hidden" name="display" value="<%=pcdata(display)%>" />
<div class="cbi-value"> <div class="cbi-value">
<label class="cbi-value-title"><%:Download and install package%>:</label> <label class="cbi-value-title"><%:Download and install package%>:</label>
<div class="cbi-value-field"> <div class="cbi-value-field">
<input type="text" name="url" size="30" value="" /> <input type="text" name="url" size="30" value="" />
<input class="cbi-button cbi-input-save" type="submit" name="go" value="<%:OK%>" /> <input class="cbi-button cbi-button-save" type="submit" name="go" value="<%:OK%>" />
</div> </div>
</div> </div>
@ -110,11 +112,11 @@ end
<label class="cbi-value-title"><%:Filter%>:</label> <label class="cbi-value-title"><%:Filter%>:</label>
<div class="cbi-value-field"> <div class="cbi-value-field">
<input type="text" name="query" size="20" value="<%=pcdata(query)%>" /> <input type="text" name="query" size="20" value="<%=pcdata(query)%>" />
<input type="submit" class="cbi-button cbi-input-find" name="search" value="<%:Find package%>" /> <input type="submit" class="cbi-button cbi-button-action" name="search" value="<%:Find package%>" />
</div> </div>
</div> </div>
</fieldset> </div>
</fieldset> </div>
</form> </form>
@ -122,90 +124,90 @@ end
<ul class="cbi-tabmenu"> <ul class="cbi-tabmenu">
<li class="cbi-tab<% if display ~= "installed" then %>-disabled<% end %>"><a href="?display=installed&amp;query=<%=pcdata(query)%>"><%:Installed packages%><% if query then %> (<%=pcdata(query)%>)<% end %></a></li>
<li class="cbi-tab<% if display ~= "available" then %>-disabled<% end %>"><a href="?display=available&amp;query=<%=pcdata(query)%>"><%:Available packages%><% if query then %> (<%=pcdata(query)%>)<% end %></a></li> <li class="cbi-tab<% if display ~= "available" then %>-disabled<% end %>"><a href="?display=available&amp;query=<%=pcdata(query)%>"><%:Available packages%><% if query then %> (<%=pcdata(query)%>)<% end %></a></li>
<li class="cbi-tab<% if display ~= "installed" then %>-disabled<% end %>"><a href="?display=installed&amp;query=<%=pcdata(query)%>"><%:Installed packages%><% if query then %> (<%=pcdata(query)%>)<% end %></a></li>
</ul> </ul>
<% if display ~= "available" then %> <% if display ~= "available" then %>
<fieldset class="cbi-section"> <div class="cbi-section">
<div class="table cbi-section-table" style="width:100%"> <div class="cbi-section-node">
<div class="tr cbi-section-table-titles"> <div class="table">
<div class="th cbi-section-table-cell" style="text-align:left">&#160;</div> <div class="tr cbi-section-table-titles">
<div class="th cbi-section-table-cell" style="text-align:left"><%:Package name%></div> <div class="th left"><%:Package name%></div>
<div class="th cbi-section-table-cell" style="text-align:left"><%:Version%></div> <div class="th left"><%:Version%></div>
</div> <div class="th cbi-section-actions">&#160;</div>
<% local empty = true; luci.model.ipkg.list_installed(querypat, function(n, v, s, d) empty = false; filter[n] = true %>
<div class="tr cbi-section-table-row cbi-rowstyle-<%=rowstyle()%>">
<div class="td" style="text-align:left; width:10%">
<form method="post" class="inline" action="<%=REQUEST_URI%>">
<input type="hidden" name="exec" value="1" />
<input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="remove" value="<%=pcdata(n)%>" />
<a onclick="window.confirm('<%:Remove%> &quot;<%=luci.util.pcdata(n)%>&quot; ?') &#38;&#38; this.parentNode.submit(); return false" href="#"><%:Remove%></a>
</form>
</div> </div>
<div class="td" style="text-align:left"><%=luci.util.pcdata(n)%></div> <% local empty = true; luci.model.ipkg.list_installed(querypat, function(n, v, s, d) empty = false; filter[n] = true %>
<div class="td" style="text-align:left"><%=luci.util.pcdata(v)%></div> <div class="tr cbi-rowstyle-<%=rowstyle()%>">
<div class="td left"><%=luci.util.pcdata(n)%></div>
<div class="td left"><%=luci.util.pcdata(v)%></div>
<div class="td cbi-section-actions">
<form method="post" class="inline" action="<%=REQUEST_URI%>">
<input type="hidden" name="exec" value="1" />
<input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="remove" value="<%=pcdata(n)%>" />
<input class="cbi-button cbi-button-remove" type="submit" onclick="window.confirm('<%:Remove%> &quot;<%=luci.util.pcdata(n)%>&quot; ?') &#38;&#38; this.parentNode.submit(); return false" value="<%:Remove%>" />
</form>
</div>
</div>
<% end) %>
<% if empty then %>
<div class="tr cbi-section-table-row">
<div class="td left">&#160;</div>
<div class="td left"><em><%:none%></em></div>
<div class="td left"><em><%:none%></em></div>
</div>
<% end %>
</div> </div>
<% end) %>
<% if empty then %>
<div class="tr cbi-section-table-row">
<div class="td" style="text-align:left">&#160;</div>
<div class="td" style="text-align:left"><em><%:none%></em></div>
<div class="td" style="text-align:left"><em><%:none%></em></div>
</div>
<% end %>
</div> </div>
</fieldset> </div>
<% else %> <% else %>
<fieldset class="cbi-section"> <div class="cbi-section">
<% if not querypat then %> <% if not querypat then %>
<ul class="cbi-tabmenu"> <ul class="cbi-tabmenu" style="flex-wrap:wrap">
<% local i; for i = 65, 90 do %> <% local i; for i = 65, 90 do %>
<li class="cbi-tab<% if letter ~= i then %>-disabled<% end %>"><a href="?display=available&amp;letter=<%=string.char(i)%>"><%=string.char(i)%></a></li> <li class="cbi-tab<% if letter ~= i then %>-disabled<% end %>"><a href="?display=available&amp;letter=<%=string.char(i)%>"><%=string.char(i)%></a></li>
<% end %> <% end %>
<li class="cbi-tab<% if letter ~= 35 then %>-disabled<% end %>"><a href="?display=available&amp;letter=%23">#</a></li> <li class="cbi-tab<% if letter ~= 35 then %>-disabled<% end %>"><a href="?display=available&amp;letter=%23">#</a></li>
</ul> </ul>
<div class="cbi-section-node">
<% end %> <% end %>
<div class="table cbi-section-table" style="width:100%"> <div class="cbi-section-node cbi-section-node-tabbed">
<div class="tr cbi-section-table-titles"> <div class="table">
<div class="th cbi-section-table-cell" style="text-align:left">&#160;</div> <div class="tr cbi-section-table-titles">
<div class="th cbi-section-table-cell" style="text-align:left"><%:Package name%></div> <div class="th col-2 left"><%:Package name%></div>
<div class="th cbi-section-table-cell" style="text-align:left"><%:Version%></div> <div class="th col-2 left"><%:Version%></div>
<div class="th cbi-section-table-cell" style="text-align:right"><%:Size (.ipk)%></div> <div class="th col-1 center"><%:Size (.ipk)%></div>
<div class="th cbi-section-table-cell" style="text-align:left"><%:Description%></div> <div class="th col-10 left"><%:Description%></div>
</div> <div class="th cbi-section-actions">&#160;</div>
<% local empty = true; opkg_list(querypat or letterpat, function(n, v, s, d) if filter[n] then return end; empty = false %>
<div class="tr cbi-section-table-row cbi-rowstyle-<%=rowstyle()%>">
<div class="td" style="text-align:left; width:10%">
<form method="post" class="inline" action="<%=REQUEST_URI%>">
<input type="hidden" name="exec" value="1" />
<input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="install" value="<%=pcdata(n)%>" />
<a onclick="window.confirm('<%:Install%> &quot;<%=luci.util.pcdata(n)%>&quot; ?') &#38;&#38; this.parentNode.submit(); return false" href="#"><%:Install%></a>
</form>
</div> </div>
<div class="td" style="text-align:left"><%=luci.util.pcdata(n)%></div> <% local empty = true; opkg_list(querypat or letterpat, function(n, v, s, d) if filter[n] then return end; empty = false %>
<div class="td" style="text-align:left"><%=luci.util.pcdata(v)%></div> <div class="tr cbi-rowstyle-<%=rowstyle()%>">
<div class="td" style="text-align:right"><%=luci.util.pcdata(s)%></div> <div class="td col-2 left"><%=luci.util.pcdata(n)%></div>
<div class="td" style="text-align:left"><%=luci.util.pcdata(d)%></div> <div class="td col-2 left"><%=luci.util.pcdata(v)%></div>
<div class="td col-1 center"><%=luci.util.pcdata(s)%></div>
<div class="td col-10 left"><%=luci.util.pcdata(d)%></div>
<div class="td cbi-section-actions">
<form method="post" class="inline" action="<%=REQUEST_URI%>">
<input type="hidden" name="exec" value="1" />
<input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="install" value="<%=pcdata(n)%>" />
<input class="cbi-button cbi-button-apply" type="submit" onclick="window.confirm('<%:Install%> &quot;<%=luci.util.pcdata(n)%>&quot; ?') &#38;&#38; this.parentNode.submit(); return false" value="<%:Install%>" />
</form>
</div>
</div>
<% end) %>
<% if empty then %>
<div class="tr">
<div class="td left">&#160;</div>
<div class="td left"><em><%:none%></em></div>
<div class="td left"><em><%:none%></em></div>
<div class="td right"><em><%:none%></em></div>
<div class="td left"><em><%:none%></em></div>
</div>
<% end %>
</div> </div>
<% end) %>
<% if empty then %>
<div class="tr cbi-section-table-row">
<div class="td" style="text-align:left">&#160;</div>
<div class="td" style="text-align:left"><em><%:none%></em></div>
<div class="td" style="text-align:left"><em><%:none%></em></div>
<div class="td" style="text-align:right"><em><%:none%></em></div>
<div class="td" style="text-align:left"><em><%:none%></em></div>
</div>
<% end %>
</div> </div>
<% if not querypat then %> </div>
</div>
<% end %>
</fieldset>
<% end %> <% end %>
</div> </div>

View file

@ -7,7 +7,6 @@
<%+header%> <%+header%>
<h2 name="content"><%:Reboot%></h2> <h2 name="content"><%:Reboot%></h2>
<br />
<p><%:Reboots the operating system of your device%></p> <p><%:Reboots the operating system of your device%></p>
@ -49,7 +48,7 @@
} }
//]]></script> //]]></script>
<input class="cbi-button cbi-button-apply" type="button" value="<%:Perform reboot%>" onclick="reboot(this)" /> <input class="cbi-button cbi-button-action important" type="button" value="<%:Perform reboot%>" onclick="reboot(this)" />
<p class="alert-message" style="display:none"> <p class="alert-message" style="display:none">
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> <img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" />

View file

@ -4,7 +4,7 @@
-%> -%>
<% export("uci_changelog", function(changes) -%> <% export("uci_changelog", function(changes) -%>
<fieldset class="cbi-section"> <div class="cbi-section">
<strong><%:Legend:%></strong> <strong><%:Legend:%></strong>
<div class="uci-change-legend"> <div class="uci-change-legend">
<div class="uci-change-legend-label"><ins>&#160;</ins> <%:Section added%></div> <div class="uci-change-legend-label"><ins>&#160;</ins> <%:Section added%></div>
@ -32,9 +32,11 @@
ret[#ret+1] = "<br />%s.%s.%s+=<strong>%s</strong>" ret[#ret+1] = "<br />%s.%s.%s+=<strong>%s</strong>"
%{ r, s, o, util.pcdata(v[i]) } %{ r, s, o, util.pcdata(v[i]) }
end end
else elseif v ~= "" then
ret[#ret+1] = "<br />%s.%s.%s=<strong>%s</strong>" ret[#ret+1] = "<br />%s.%s.%s=<strong>%s</strong>"
%{ r, s, o, util.pcdata(v) } %{ r, s, o, util.pcdata(v) }
else
ret[#ret+1] = "<br /><del>%s.%s.<strong>%s</strong></del>" %{ r, s, o }
end end
end end
end end
@ -57,7 +59,7 @@
ret[#ret+1] = "%s.%s.%s+=<strong>%s</strong><br />" ret[#ret+1] = "%s.%s.%s+=<strong>%s</strong><br />"
%{ r, s, o, util.pcdata(v[i]) } %{ r, s, o, util.pcdata(v[i]) }
end end
else else
ret[#ret+1] = "%s.%s.%s=<strong>%s</strong><br />" ret[#ret+1] = "%s.%s.%s=<strong>%s</strong><br />"
%{ r, s, o, util.pcdata(v) } %{ r, s, o, util.pcdata(v) }
@ -75,5 +77,5 @@
write(table.concat(ret)) write(table.concat(ret))
%></div> %></div>
</fieldset> </div>
<%- end) %> <%- end) %>

View file

@ -27,21 +27,17 @@
<div class="cbi-page-actions"> <div class="cbi-page-actions">
<% if redir_url then %> <% if redir_url then %>
<div style="float:left"> <form method="get" action="<%=luci.util.pcdata(redir_url)%>">
<form class="inline" method="get" action="<%=luci.util.pcdata(redir_url)%>"> <input class="cbi-button cbi-button-link" type="submit" value="<%:Back%>" />
<input class="cbi-button cbi-button-link" style="float:left; margin:0" type="submit" value="<%:Back%>" /> </form>
</form>
</div>
<% end %> <% end %>
<div style="text-align:right"> <input class="cbi-button cbi-button-save" type="button" id="apply_button" value="<%:Save & Apply%>" onclick="uci_apply(true); this.blur()" />
<input class="cbi-button cbi-button-save" type="button" id="apply_button" value="<%:Save & Apply%>" onclick="uci_apply(true); this.blur()" /> <form method="post" action="<%=url("admin/uci/revert")%>">
<form class="inline" method="post" action="<%=url("admin/uci/revert")%>"> <input type="hidden" name="token" value="<%=token%>" />
<input type="hidden" name="token" value="<%=token%>" /> <input type="hidden" name="redir" value="<%=pcdata(luci.http.formvalue("redir"))%>" />
<input type="hidden" name="redir" value="<%=pcdata(luci.http.formvalue("redir"))%>" /> <input class="cbi-button cbi-button-reset" type="submit" value="<%:Revert%>" />
<input class="cbi-button cbi-button-reset" type="submit" value="<%:Revert%>" /> </form>
</form>
</div>
</div> </div>
<%+footer%> <%+footer%>

View file

@ -27,7 +27,7 @@
<div class="alert-message" id="cbi_apply_status" style="display:none"></div> <div class="alert-message" id="cbi_apply_status" style="display:none"></div>
<script type="text/javascript"> <script type="text/javascript">
document.addEventListener("DOMContentLoaded", function() { document.addEventListener("DOMContentLoaded", function() {
uci_apply(true); uci_revert();
}); });
</script> </script>

View file

@ -215,7 +215,8 @@ a:hover {
* ---------------------------------------------------------------------------------------- */ * ---------------------------------------------------------------------------------------- */
p, p,
.cbi-map-descr, .cbi-map-descr,
.cbi-section-descr { .cbi-section-descr,
.table .tr.cbi-section-table-descr .th {
font-size: 13px; font-size: 13px;
font-weight: normal; font-weight: normal;
line-height: 18px; line-height: 18px;
@ -229,7 +230,7 @@ p small {
h1, h1,
h2, h2,
h3, h3, legend,
h4, h4,
h5, h5,
h6 { h6 {
@ -265,14 +266,14 @@ h2 small {
font-size: 14px; font-size: 14px;
} }
h3, h3, legend,
h4, h4,
h5, h5,
h6 { h6 {
line-height: 36px; line-height: 36px;
} }
h3 { h3, legend {
font-size: 18px; font-size: 18px;
} }
@ -543,6 +544,13 @@ textarea {
height: auto; height: auto;
} }
.td > input[type=text],
.td > input[type=password],
.td > select,
.td > .cbi-dropdown {
width: 100%;
}
.uneditable-input { .uneditable-input {
background-color: #ffffff; background-color: #ffffff;
display: block; display: block;
@ -645,6 +653,26 @@ textarea[readonly] {
border-color: #ddd; border-color: #ddd;
} }
.cbi-optionals,
.cbi-section-create {
padding: 0 0 10px 10px;
}
.cbi-section-create {
margin: -3px;
display: inline-flex;
align-items: center;
}
.cbi-section-create > * {
margin: 3px;
flex: 1 1 auto;
}
.cbi-section-create > * > input {
width: 100%;
}
.actions, .actions,
.cbi-page-actions { .cbi-page-actions {
background: #f5f5f5; background: #f5f5f5;
@ -706,6 +734,7 @@ textarea[readonly] {
padding: 0; padding: 0;
font-size: 13px; font-size: 13px;
border-collapse: collapse; border-collapse: collapse;
position: relative;
} }
.table .th, .table .td { .table .th, .table .td {
@ -765,6 +794,19 @@ table tbody th {
vertical-align: top; vertical-align: top;
} }
.tr.placeholder {
height: calc(3em + 20px);
}
.tr.placeholder > .td {
position: absolute;
left: 0;
right: 0;
bottom: 0;
text-align: center;
line-height: 3em;
}
/* Patterns.less /* Patterns.less
* Repeatable UI elements outside the base styles provided from the scaffolding * Repeatable UI elements outside the base styles provided from the scaffolding
* ---------------------------------------------------------------------------- */ * ---------------------------------------------------------------------------- */
@ -1277,99 +1319,67 @@ footer {
outline: 1px dotted #666; outline: 1px dotted #666;
} }
.btn.primary,
.cbi-page-actions .cbi-button-apply,
.cbi-page-actions .cbi-button-save,
.cbi-page-actions .cbi-button-reset {
color: #ffffff;
padding: 5px 14px 6px;
background-color: #0064cd;
background-repeat: repeat-x;
background-image: linear-gradient(to bottom, #049cdb, #0064cd);
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
border-color: #0064cd #0064cd #003f81;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}
.cbi-input-invalid, .cbi-input-invalid,
.cbi-value-error input { .cbi-value-error input {
color: #FF0000; color: #FF0000;
border-color: #FF0000; border-color: #FF0000;
} }
.cbi-button-up, .cbi-button-positive,
.cbi-input-up { .cbi-button-fieldadd,
background-position: center center;
background-image: url('../resources/cbi/up.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
}
.cbi-button-down,
.cbi-input-down {
background-position: center center;
background-image: url('../resources/cbi/down.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
}
.cbi-button-find,
.cbi-input-find {
background-position: 6px center, left top;
padding-left: 28px;
background-image: url('../resources/cbi/find.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
}
.cbi-button-add, .cbi-button-add,
.cbi-input-add { .cbi-button-save {
background-position: 6px center, left top; border-color: #4a4;
padding-left: 28px; color: #4a4;
background-image: url('../resources/cbi/add.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
}
.cbi-button-apply,
.cbi-input-apply {
background-position: 6px center, left top;
padding-left: 28px;
background-image: url('../resources/cbi/apply.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
}
.cbi-button-reset,
.cbi-input-reset {
background-position: 6px center, left top;
padding-left: 28px;
background-image: url('../resources/cbi/reset.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
}
.cbi-button-edit,
.cbi-input-edit {
background-position: 6px center, left top;
padding-left: 28px;
background-image: url('../resources/cbi/edit.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
}
.cbi-button-remove,
.cbi-input-remove {
background-position: 6px center, left top;
padding-left: 28px;
background-image: url('../resources/cbi/remove.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
}
.cbi-button-reload,
.cbi-input-reload {
background-position: 6px center, left top;
padding-left: 28px;
background-image: url('../resources/cbi/reload.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
}
.cbi-button-link,
.cbi-input-link {
background-position: 6px center, left top;
padding-left: 28px;
background-image: url('../resources/cbi/link.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
} }
.cbi-button-neutral,
.cbi-button-download, .cbi-button-download,
.cbi-input-download { .cbi-button-find,
background-position: 6px center, left top; .cbi-button-link,
padding-left: 28px; .cbi-button-up,
background-image: url('../resources/cbi/download.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); .cbi-button-down {
border-color: #444;
color: #444;
}
.btn.primary,
.cbi-button-action,
.cbi-button-apply,
.cbi-button-reload,
.cbi-button-edit {
border-color: #0069d6;
color: #0069d6;
}
.cbi-button-negative,
.cbi-section-remove .cbi-button,
.cbi-button-reset,
.cbi-button-remove {
border-color: #c44;
color: #c44;
}
.btn.primary,
.cbi-button-action.important,
.cbi-page-actions .cbi-button-apply,
.cbi-section-actions .cbi-button-edit {
color: #fff;
background: #0069d6;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.cbi-button-positive.important,
.cbi-page-actions .cbi-button-save {
color: #fff;
background: #4a4;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.cbi-page-actions .cbi-button-apply + .cbi-button-save {
background: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.75);
color: #4a4;
} }
.cbi-dropdown { .cbi-dropdown {
@ -1525,6 +1535,58 @@ footer {
opacity: .6; opacity: .6;
} }
.cbi-tooltip-container {
cursor: help;
}
.cbi-tooltip {
position: absolute;
z-index: 1000;
left: -1000px;
opacity: 0;
transition: opacity .25s ease-out;
}
.cbi-tooltip-container:hover .cbi-tooltip:not(:empty) {
left: auto;
opacity: 1;
transition: opacity .25s ease-in;
}
.zonebadge .cbi-tooltip {
padding: 1px;
background: inherit;
margin: -1.6em 0 0 -5px;
border-radius: 3px;
pointer-events: none;
box-shadow: 0 0 3px #444;
}
.zonebadge .cbi-tooltip > * {
margin: 1px;
}
.zone-forwards {
display: flex;
flex-wrap: wrap;
}
.zone-forwards > * {
flex: 1 1 40%;
padding: 1px;
}
.zone-forwards > span {
flex-basis: 10%;
text-align: center;
}
.zone-forwards .zone-src,
.zone-forwards .zone-dest {
display: flex;
flex-direction: column;
}
.btn.active, .btn:active { .btn.active, .btn:active {
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
} }
@ -1555,46 +1617,6 @@ footer {
font-size: 11px; font-size: 11px;
} }
/* Button icons for specific pages */
.Startup .cbi-section-table input.cbi-input-apply,
.Startup .cbi-section-table input.cbi-button-apply {
background-image: url("../resources/cbi/apply.gif");
background-position: 7px 4px;
padding: 3px 9px 3px 27px;
}
.Processes .cbi-section-table input.cbi-input-reload,
.Startup .cbi-section-table input.cbi-input-reload {
background-image: url("../resources/cbi/reload.gif");
background-position: 7px 4px;
padding: 3px 9px 3px 27px;
}
.Processes .cbi-section-table input.cbi-input-remove,
.Processes .cbi-section-table div.cbi-section-remove input,
.Startup .cbi-section-table input.cbi-input-remove,
.Startup .cbi-section-table div.cbi-section-remove input {
background-image: url("../resources/cbi/remove.gif");
background-position: 7px 4px;
padding: 3px 9px 3px 27px;
}
.Processes .cbi-section-table input.cbi-input-reset,
.Processes .cbi-section-table input.cbi-button-reset,
.Startup .cbi-section-table input.cbi-input-reset,
.Startup .cbi-section-table input.cbi-button-reset {
background-image: url("../resources/cbi/reset.gif");
background-position: 7px 4px;
padding: 3px 9px 3px 27px;
}
.Startup .cbi-section-table input.cbi-input-save,
.Startup .cbi-section-table input.cbi-button-save {
background-image: url("../resources/cbi/save.gif");
background-position: 7px 4px;
padding: 3px 9px 3px 27px;
}
button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner { button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
padding: 0; padding: 0;
border: 0; border: 0;
@ -1746,6 +1768,20 @@ header .pull-right { padding-top: 8px; }
font-weight: normal; font-weight: normal;
} }
.cbi-section-table-titles.named::before,
.cbi-section-table-descr.named::before,
.cbi-section-table-row[data-title]::before {
content: attr(data-title) " ";
display: table-cell;
padding: 10px 10px 9px;
line-height: 18px;
font-weight: bold;
}
.cbi-section-table-row[data-title]::before {
border-top: 1px solid #ddd;
}
.left { text-align: left !important; } .left { text-align: left !important; }
.right { text-align: right !important; } .right { text-align: right !important; }
@ -1784,9 +1820,13 @@ table table td,
vertical-align: middle; vertical-align: middle;
} }
.cbi-value-description { display: inline; } .cbi-value-description {
background-image: url(/luci-static/resources/cbi/help.gif);
.cbi-value-description img { vertical-align: middle; } background-position: .25em .2em;
background-repeat: no-repeat;
margin: .25em 0 0 0;
padding: 0 0 0 1.7em;
}
.cbi-section-error { .cbi-section-error {
border: 1px solid #FF0000; border: 1px solid #FF0000;
@ -1885,6 +1925,7 @@ table table td,
flex-wrap: wrap; flex-wrap: wrap;
} }
.ifacebadge.large,
.network-status-table .ifacebox-body .ifacebadge { .network-status-table .ifacebox-body .ifacebadge {
flex: 1; flex: 1;
margin: .5em .25em 0 .25em; margin: .5em .25em 0 .25em;
@ -1899,7 +1940,6 @@ table table td,
white-space: nowrap; white-space: nowrap;
color: #666666; color: #666666;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
cursor: pointer;
} }
.zonebadge > em, .zonebadge > em,