summaryrefslogtreecommitdiffhomepage
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/ui.js12
-rw-r--r--modules/luci-base/luasrc/controller/admin/index.lua79
-rw-r--r--modules/luci-base/luasrc/controller/admin/uci.lua26
-rw-r--r--modules/luci-base/luasrc/dispatcher.lua1168
-rw-r--r--modules/luci-base/luasrc/view/header.htm5
-rw-r--r--modules/luci-base/po/cs/base.po70
-rw-r--r--modules/luci-base/po/es/base.po10
-rw-r--r--modules/luci-base/po/hu/base.po507
-rw-r--r--modules/luci-base/po/pt-br/base.po4
-rw-r--r--modules/luci-base/po/uk/base.po6
-rw-r--r--modules/luci-base/root/usr/share/luci/menu.d/luci-base.json142
-rw-r--r--modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json11
-rw-r--r--modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js134
-rw-r--r--modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js137
-rw-r--r--modules/luci-mod-network/luasrc/controller/admin/network.lua99
-rw-r--r--modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm117
-rw-r--r--modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json85
-rw-r--r--modules/luci-mod-status/luasrc/controller/admin/status.lua24
-rw-r--r--modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json129
19 files changed, 1695 insertions, 1070 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/ui.js b/modules/luci-base/htdocs/luci-static/resources/ui.js
index 31f89339c..a60aea911 100644
--- a/modules/luci-base/htdocs/luci-static/resources/ui.js
+++ b/modules/luci-base/htdocs/luci-static/resources/ui.js
@@ -457,9 +457,9 @@ var UIDropdown = UIElement.extend({
'placeholder': this.options.custom_placeholder || this.options.placeholder
});
- if (this.options.datatype)
- L.ui.addValidator(createEl, this.options.datatype,
- true, null, 'blur', 'keyup');
+ if (this.options.datatype || this.options.validate)
+ L.ui.addValidator(createEl, this.options.datatype || 'string',
+ true, this.options.validate, 'blur', 'keyup');
sb.lastElementChild.appendChild(E('li', { 'data-value': '-' }, createEl));
}
@@ -1270,9 +1270,9 @@ var UIDynamicList = UIElement.extend({
dl.lastElementChild.appendChild(inputEl);
dl.lastElementChild.appendChild(E('div', { 'class': 'cbi-button cbi-button-add' }, '+'));
- if (this.options.datatype)
- L.ui.addValidator(inputEl, this.options.datatype,
- true, null, 'blur', 'keyup');
+ if (this.options.datatype || this.options.validate)
+ L.ui.addValidator(inputEl, this.options.datatype || 'string',
+ true, this.options.validate, 'blur', 'keyup');
}
for (var i = 0; i < this.values.length; i++)
diff --git a/modules/luci-base/luasrc/controller/admin/index.lua b/modules/luci-base/luasrc/controller/admin/index.lua
index 0cebfa4f5..68bbd38a7 100644
--- a/modules/luci-base/luasrc/controller/admin/index.lua
+++ b/modules/luci-base/luasrc/controller/admin/index.lua
@@ -3,85 +3,6 @@
module("luci.controller.admin.index", package.seeall)
-function index()
- function toplevel_page(page, preflookup, preftarget)
- if preflookup and preftarget then
- if lookup(preflookup) then
- page.target = preftarget
- end
- end
-
- if not page.target then
- page.target = firstchild()
- end
- end
-
- local uci = require("luci.model.uci").cursor()
-
- local root = node()
- if not root.target then
- root.target = alias("admin")
- root.index = true
- end
-
- local page = node("admin")
-
- page.title = _("Administration")
- page.order = 10
- page.sysauth = "root"
- page.sysauth_authenticator = "htmlauth"
- page.ucidata = true
- page.index = true
- page.target = firstnode()
-
- -- Empty menu tree to be populated by addons and modules
-
- page = node("admin", "status")
- page.title = _("Status")
- page.order = 10
- page.index = true
- -- overview is from mod-admin-full
- toplevel_page(page, "admin/status/overview", alias("admin", "status", "overview"))
-
- page = node("admin", "system")
- page.title = _("System")
- page.order = 20
- page.index = true
- -- system/system is from mod-admin-full
- toplevel_page(page, "admin/system/system", alias("admin", "system", "system"))
-
- -- Only used if applications add items
- page = node("admin", "vpn")
- page.title = _("VPN")
- page.order = 30
- page.index = true
- toplevel_page(page, false, false)
-
- -- Only used if applications add items
- page = node("admin", "services")
- page.title = _("Services")
- page.order = 40
- page.index = true
- toplevel_page(page, false, false)
-
- -- Even for mod-admin-full network just uses first submenu item as landing
- page = node("admin", "network")
- page.title = _("Network")
- page.order = 50
- page.index = true
- toplevel_page(page, false, false)
-
- page = entry({"admin", "translations"}, call("action_translations"), nil)
- page.leaf = true
-
- page = entry({"admin", "ubus"}, call("action_ubus"), nil)
- page.sysauth = false
- page.leaf = true
-
- -- Logout is last
- entry({"admin", "logout"}, call("action_logout"), _("Logout"), 999)
-end
-
function action_logout()
local dsp = require "luci.dispatcher"
local utl = require "luci.util"
diff --git a/modules/luci-base/luasrc/controller/admin/uci.lua b/modules/luci-base/luasrc/controller/admin/uci.lua
index 6b19c62f8..7aad10d58 100644
--- a/modules/luci-base/luasrc/controller/admin/uci.lua
+++ b/modules/luci-base/luasrc/controller/admin/uci.lua
@@ -4,32 +4,6 @@
module("luci.controller.admin.uci", package.seeall)
-function index()
- local redir = luci.http.formvalue("redir", true)
- or table.concat(luci.dispatcher.context.request, "/")
-
- entry({"admin", "uci"}, nil, _("Configuration"))
- entry({"admin", "uci", "revert"}, post("action_revert"), nil)
-
- local node
- local authen = function(checkpass, allowed_users)
- return "root", luci.http.formvalue("sid")
- end
-
- node = entry({"admin", "uci", "apply_rollback"}, post("action_apply_rollback"), nil)
- node.cors = true
- node.sysauth_authenticator = authen
-
- node = entry({"admin", "uci", "apply_unchecked"}, post("action_apply_unchecked"), nil)
- node.cors = true
- node.sysauth_authenticator = authen
-
- node = entry({"admin", "uci", "confirm"}, call("action_confirm"), nil)
- node.cors = true
- node.sysauth = false
-end
-
-
local function ubus_state_to_http(errstr)
local map = {
["Invalid command"] = 400,
diff --git a/modules/luci-base/luasrc/dispatcher.lua b/modules/luci-base/luasrc/dispatcher.lua
index b43b94fde..d4293422b 100644
--- a/modules/luci-base/luasrc/dispatcher.lua
+++ b/modules/luci-base/luasrc/dispatcher.lua
@@ -17,138 +17,336 @@ _M.fs = fs
-- Index table
local index = nil
--- Fastindex
-local fi
+local function check_fs_depends(fs)
+ local fs = require "nixio.fs"
+
+ for path, kind in pairs(fs) do
+ if kind == "directory" then
+ local empty = true
+ for entry in (fs.dir(path) or function() end) do
+ empty = false
+ break
+ end
+ if empty then
+ return false
+ end
+ elseif kind == "executable" then
+ if fs.stat(path, "type") ~= "reg" or not fs.access(path, "x") then
+ return false
+ end
+ elseif kind == "file" then
+ if fs.stat(path, "type") ~= "reg" then
+ return false
+ end
+ end
+ end
+ return true
+end
-function build_url(...)
- local path = {...}
- local url = { http.getenv("SCRIPT_NAME") or "" }
+local function check_uci_depends_options(conf, s, opts)
+ local uci = require "luci.model.uci"
- local p
- for _, p in ipairs(path) do
- if p:match("^[a-zA-Z0-9_%-%.%%/,;]+$") then
- url[#url+1] = "/"
- url[#url+1] = p
+ if type(opts) == "string" then
+ return (s[".type"] == opts)
+ elseif opts == true then
+ for option, value in pairs(s) do
+ if option:byte(1) ~= 46 then
+ return true
+ end
+ end
+ elseif type(opts) == "table" then
+ for option, value in pairs(opts) do
+ local sval = s[option]
+ if type(sval) == "table" then
+ local found = false
+ for _, v in ipairs(sval) do
+ if v == value then
+ found = true
+ break
+ end
+ end
+ if not found then
+ return false
+ end
+ elseif value == true then
+ if sval == nil then
+ return false
+ end
+ else
+ if sval ~= value then
+ return false
+ end
+ end
end
end
- if #path == 0 then
- url[#url+1] = "/"
+ return true
+end
+
+local function check_uci_depends_section(conf, sect)
+ local uci = require "luci.model.uci"
+
+ for section, options in pairs(sect) do
+ local stype = section:match("^@([A-Za-z0-9_%-]+)$")
+ if stype then
+ local found = false
+ uci:foreach(conf, stype, function(s)
+ if check_uci_depends_options(conf, s, options) then
+ found = true
+ return false
+ end
+ end)
+ if not found then
+ return false
+ end
+ else
+ local s = uci:get_all(conf, section)
+ if not s or not check_uci_depends_options(conf, s, options) then
+ return false
+ end
+ end
end
- return table.concat(url, "")
+ return true
end
-function _ordered_children(node)
- local name, child, children = nil, nil, {}
+local function check_uci_depends(conf)
+ local uci = require "luci.model.uci"
- for name, child in pairs(node.nodes) do
- children[#children+1] = {
- name = name,
- node = child,
- order = child.order or 100
- }
+ for config, values in pairs(conf) do
+ if values == true then
+ local found = false
+ uci:foreach(config, nil, function(s)
+ found = true
+ return false
+ end)
+ if not found then
+ return false
+ end
+ elseif type(values) == "table" then
+ if not check_uci_depends_section(config, values) then
+ return false
+ end
+ end
end
- table.sort(children, function(a, b)
- if a.order == b.order then
- return a.name < b.name
- else
- return a.order < b.order
+ return true
+end
+
+local function check_depends(spec)
+ if type(spec.depends) ~= "table" then
+ return true
+ end
+
+ if type(spec.depends.fs) == "table" and not check_fs_depends(spec.depends.fs) then
+ local satisfied = false
+ local alternatives = (#spec.depends.fs > 0) and spec.depends.fs or { spec.depends.fs }
+ for _, alternative in ipairs(alternatives) do
+ if check_fs_depends(alternative) then
+ satisfied = true
+ break
+ end
end
- end)
+ if not satisfied then
+ return false
+ end
+ end
- return children
+ if type(spec.depends.uci) == "table" then
+ local satisfied = false
+ local alternatives = (#spec.depends.uci > 0) and spec.depends.uci or { spec.depends.uci }
+ for _, alternative in ipairs(alternatives) do
+ if check_uci_depends(alternative) then
+ satisfied = true
+ break
+ end
+ end
+ if not satisfied then
+ return false
+ end
+ end
+
+ return true
end
-local function dependencies_satisfied(node)
- if type(node.file_depends) == "table" then
- for _, file in ipairs(node.file_depends) do
- local ftype = fs.stat(file, "type")
- if ftype == "dir" then
- local empty = true
- for e in (fs.dir(file) or function() end) do
- empty = false
- end
- if empty then
- return false
- end
- elseif ftype == nil then
- return false
- end
+local function target_to_json(target, module)
+ local action
+
+ if target.type == "call" then
+ action = {
+ ["type"] = "call",
+ ["module"] = module,
+ ["function"] = target.name,
+ ["parameters"] = target.argv
+ }
+ elseif target.type == "view" then
+ action = {
+ ["type"] = "view",
+ ["path"] = target.view
+ }
+ elseif target.type == "template" then
+ action = {
+ ["type"] = "template",
+ ["path"] = target.view
+ }
+ elseif target.type == "cbi" then
+ action = {
+ ["type"] = "cbi",
+ ["path"] = target.model
+ }
+ elseif target.type == "form" then
+ action = {
+ ["type"] = "form",
+ ["path"] = target.model
+ }
+ elseif target.type == "firstchild" then
+ action = {
+ ["type"] = "firstchild"
+ }
+ elseif target.type == "firstnode" then
+ action = {
+ ["type"] = "firstchild",
+ ["recurse"] = true
+ }
+ elseif target.type == "arcombine" then
+ if type(target.targets) == "table" then
+ action = {
+ ["type"] = "arcombine",
+ ["targets"] = {
+ target_to_json(target.targets[1], module),
+ target_to_json(target.targets[2], module)
+ }
+ }
end
+ elseif target.type == "alias" then
+ action = {
+ ["type"] = "alias",
+ ["path"] = table.concat(target.req, "/")
+ }
+ elseif target.type == "rewrite" then
+ action = {
+ ["type"] = "rewrite",
+ ["path"] = table.concat(target.req, "/"),
+ ["remove"] = target.n
+ }
end
- if type(node.uci_depends) == "table" then
- for config, expect_sections in pairs(node.uci_depends) do
- if type(expect_sections) == "table" then
- for section, expect_options in pairs(expect_sections) do
- if type(expect_options) == "table" then
- for option, expect_value in pairs(expect_options) do
- local val = uci:get(config, section, option)
- if expect_value == true and val == nil then
- return false
- elseif type(expect_value) == "string" then
- if type(val) == "table" then
- local found = false
- for _, subval in ipairs(val) do
- if subval == expect_value then
- found = true
- end
- end
- if not found then
- return false
- end
- elseif val ~= expect_value then
- return false
- end
- end
- end
+ if target.post and action then
+ action.post = target.post
+ end
+
+ return action
+end
+
+local function tree_to_json(node, json)
+ local fs = require "nixio.fs"
+ local util = require "luci.util"
+
+ if type(node.nodes) == "table" then
+ for subname, subnode in pairs(node.nodes) do
+ local spec = {
+ title = util.striptags(subnode.title),
+ order = subnode.order
+ }
+
+ if subnode.leaf then
+ spec.wildcard = true
+ end
+
+ if subnode.cors then
+ spec.cors = true
+ end
+
+ if subnode.setuser then
+ spec.setuser = subnode.setuser
+ end
+
+ if subnode.setgroup then
+ spec.setgroup = subnode.setgroup
+ end
+
+ if type(subnode.target) == "table" then
+ spec.action = target_to_json(subnode.target, subnode.module)
+ end
+
+ if type(subnode.file_depends) == "table" then
+ for _, v in ipairs(subnode.file_depends) do
+ spec.depends = spec.depends or {}
+ spec.depends.fs = spec.depends.fs or {}
+
+ local ft = fs.stat(v, "type")
+ if ft == "dir" then
+ spec.depends.fs[v] = "directory"
+ elseif v:match("/s?bin/") then
+ spec.depends.fs[v] = "executable"
else
- local val = uci:get(config, section)
- if expect_options == true and val == nil then
- return false
- elseif type(expect_options) == "string" and val ~= expect_options then
- return false
- end
+ spec.depends.fs[v] = "file"
end
end
- elseif expect_sections == true then
- if not uci:get_first(config) then
- return false
+ end
+
+ if type(subnode.uci_depends) == "table" then
+ for k, v in pairs(subnode.uci_depends) do
+ spec.depends = spec.depends or {}
+ spec.depends.uci = spec.depends.uci or {}
+ spec.depends.uci[k] = v
end
end
+
+ if (subnode.sysauth_authenticator ~= nil) or
+ (subnode.sysauth ~= nil and subnode.sysauth ~= false)
+ then
+ if subnode.sysauth_authenticator == "htmlauth" then
+ spec.auth = {
+ login = true,
+ methods = { "cookie:sysauth" }
+ }
+ elseif subname == "rpc" and subnode.module == "luci.controller.rpc" then
+ spec.auth = {
+ login = false,
+ methods = { "param:auth", "cookie:sysauth" }
+ }
+ elseif subnode.module == "luci.controller.admin.uci" then
+ spec.auth = {
+ login = false,
+ methods = { "param:sid" }
+ }
+ end
+ elseif subnode.sysauth == false then
+ spec.auth = {}
+ end
+
+ if not spec.action then
+ spec.title = nil
+ end
+
+ spec.satisfied = check_depends(spec)
+ json.children = json.children or {}
+ json.children[subname] = tree_to_json(subnode, spec)
end
end
- return true
+ return json
end
-function node_visible(node)
- if node then
- return not (
- (not dependencies_satisfied(node)) or
- (not node.title or #node.title == 0) or
- (not node.target or node.hidden == true) or
- (type(node.target) == "table" and node.target.type == "firstchild" and
- (type(node.nodes) ~= "table" or not next(node.nodes)))
- )
- end
- return false
-end
+function build_url(...)
+ local path = {...}
+ local url = { http.getenv("SCRIPT_NAME") or "" }
-function node_childs(node)
- local rv = { }
- if node then
- local _, child
- for _, child in ipairs(_ordered_children(node)) do
- if node_visible(child.node) then
- rv[#rv+1] = child.name
- end
+ local p
+ for _, p in ipairs(path) do
+ if p:match("^[a-zA-Z0-9_%-%.%%/,;]+$") then
+ url[#url+1] = "/"
+ url[#url+1] = p
end
end
- return rv
+
+ if #path == 0 then
+ url[#url+1] = "/"
+ end
+
+ return table.concat(url, "")
end
@@ -185,6 +383,38 @@ function error500(message)
return false
end
+local function determine_request_language()
+ local conf = require "luci.config"
+ assert(conf.main, "/etc/config/luci seems to be corrupt, unable to find section 'main'")
+
+ local lang = conf.main.lang or "auto"
+ if lang == "auto" then
+ local aclang = http.getenv("HTTP_ACCEPT_LANGUAGE") or ""
+ for aclang in aclang:gmatch("[%w_-]+") do
+ local country, culture = aclang:match("^([a-z][a-z])[_-]([a-zA-Z][a-zA-Z])$")
+ if country and culture then
+ local cc = "%s_%s" %{ country, culture:lower() }
+ if conf.languages[cc] then
+ lang = cc
+ break
+ elseif conf.languages[country] then
+ lang = country
+ break
+ end
+ elseif conf.languages[aclang] then
+ lang = aclang
+ break
+ end
+ end
+ end
+
+ if lang == "auto" then
+ lang = i18n.default
+ end
+
+ i18n.setlanguage(lang)
+end
+
function httpdispatch(request, prefix)
http.context.request = request
@@ -204,6 +434,8 @@ function httpdispatch(request, prefix)
r[#r+1] = node
end
+ determine_request_language()
+
local stat, err = util.coxpcall(function()
dispatch(context.request)
end, error500)
@@ -306,189 +538,245 @@ local function session_setup(user, pass, allowed_users)
return nil, nil
end
-function dispatch(request)
- --context._disable_memtrace = require "luci.debug".trap_memtrace("l")
- local ctx = context
- ctx.path = request
+local function check_authentication(method)
+ local auth_type, auth_param = method:match("^(%w+):(.+)$")
+ local sid, sdat
- local conf = require "luci.config"
- assert(conf.main,
- "/etc/config/luci seems to be corrupt, unable to find section 'main'")
+ if auth_type == "cookie" then
+ sid = http.getcookie(auth_param)
+ elseif auth_type == "param" then
+ sid = http.formvalue(auth_param)
+ end
- local i18n = require "luci.i18n"
- local lang = conf.main.lang or "auto"
- if lang == "auto" then
- local aclang = http.getenv("HTTP_ACCEPT_LANGUAGE") or ""
- for aclang in aclang:gmatch("[%w_-]+") do
- local country, culture = aclang:match("^([a-z][a-z])[_-]([a-zA-Z][a-zA-Z])$")
- if country and culture then
- local cc = "%s_%s" %{ country, culture:lower() }
- if conf.languages[cc] then
- lang = cc
- break
- elseif conf.languages[country] then
- lang = country
- break
- end
- elseif conf.languages[aclang] then
- lang = aclang
- break
- end
+ return session_retrieve(sid)
+end
+
+local function get_children(node)
+ local children = {}
+
+ if not node.wildcard and type(node.children) == "table" then
+ for name, child in pairs(node.children) do
+ children[#children+1] = {
+ name = name,
+ node = child,
+ order = child.order or 1000
+ }
end
- end
- if lang == "auto" then
- lang = i18n.default
- end
- i18n.setlanguage(lang)
- local c = ctx.tree
- local stat
- if not c then
- c = createtree()
+ table.sort(children, function(a, b)
+ if a.order == b.order then
+ return a.name < b.name
+ else
+ return a.order < b.order
+ end
+ end)
end
- local track = {}
- local args = {}
- ctx.args = args
- ctx.requestargs = ctx.requestargs or args
- local n
- local preq = {}
- local freq = {}
+ return children
+end
- for i, s in ipairs(request) do
- preq[#preq+1] = s
- freq[#freq+1] = s
- c = c.nodes[s]
- n = i
- if not c then
- break
+local function find_subnode(root, prefix, recurse, descended)
+ local children = get_children(root)
+
+ if #children > 0 and (not descended or recurse) then
+ local sub_path = { unpack(prefix) }
+
+ if recurse == false then
+ recurse = nil
end
- util.update(track, c)
+ for _, child in ipairs(children) do
+ sub_path[#prefix+1] = child.name
+
+ local res_path = find_subnode(child.node, sub_path, recurse, true)
- if c.leaf then
- break
+ if res_path then
+ return res_path
+ end
end
end
- if c and c.leaf then
- for j=n+1, #request do
- args[#args+1] = request[j]
- freq[#freq+1] = request[j]
+ if descended then
+ if not recurse or
+ root.action.type == "cbi" or
+ root.action.type == "form" or
+ root.action.type == "view" or
+ root.action.type == "template" or
+ root.action.type == "arcombine"
+ then
+ return prefix
end
end
+end
- ctx.requestpath = ctx.requestpath or freq
- ctx.path = preq
+local function merge_trees(node_a, node_b)
+ for k, v in pairs(node_b) do
+ if k == "children" then
+ node_a.children = node_a.children or {}
- -- Init template engine
- if (c and c.index) or not track.notemplate then
- local tpl = require("luci.template")
- local media = track.mediaurlbase or luci.config.main.mediaurlbase
- if not pcall(tpl.Template, "themes/%s/header" % fs.basename(media)) then
- media = nil
- for name, theme in pairs(luci.config.themes) do
- if name:sub(1,1) ~= "." and pcall(tpl.Template,
- "themes/%s/header" % fs.basename(theme)) then
- media = theme
- end
+ for name, spec in pairs(v) do
+ node_a.children[name] = merge_trees(node_a.children[name] or {}, spec)
end
- assert(media, "No valid theme found")
+ else
+ node_a[k] = v
end
+ end
+ return node_a
+end
- local function _ifattr(cond, key, val, noescape)
- if cond then
- local env = getfenv(3)
- local scope = (type(env.self) == "table") and env.self
- if type(val) == "table" then
- if not next(val) then
- return ''
- else
- val = util.serialize_json(val)
- end
- end
-
- val = tostring(val or
- (type(env[key]) ~= "function" and env[key]) or
- (scope and type(scope[key]) ~= "function" and scope[key]) or "")
+function menu_json()
+ local tree = context.tree or createtree()
+ local lua_tree = tree_to_json(tree, {
+ action = {
+ ["type"] = "firstchild",
+ ["recurse"] = true
+ }
+ })
- if noescape ~= true then
- val = util.pcdata(val)
- end
+ local json_tree = createtree_json()
+ return merge_trees(lua_tree, json_tree)
+end
- return string.format(' %s="%s"', tostring(key), val)
- else
- return ''
+local function init_template_engine(ctx)
+ local tpl = require "luci.template"
+ local media = luci.config.main.mediaurlbase
+
+ if not pcall(tpl.Template, "themes/%s/header" % fs.basename(media)) then
+ media = nil
+ for name, theme in pairs(luci.config.themes) do
+ if name:sub(1,1) ~= "." and pcall(tpl.Template,
+ "themes/%s/header" % fs.basename(theme)) then
+ media = theme
end
end
+ assert(media, "No valid theme found")
+ end
- tpl.context.viewns = setmetatable({
- write = http.write;
- include = function(name) tpl.Template(name):render(getfenv(2)) end;
- translate = i18n.translate;
- translatef = i18n.translatef;
- export = function(k, v) if tpl.context.viewns[k] == nil then tpl.context.viewns[k] = v end end;
- striptags = util.striptags;
- pcdata = util.pcdata;
- media = media;
- theme = fs.basename(media);
- resource = luci.config.main.resourcebase;
- ifattr = function(...) return _ifattr(...) end;
- attr = function(...) return _ifattr(true, ...) end;
- url = build_url;
- }, {__index=function(tbl, key)
- if key == "controller" then
- return build_url()
- elseif key == "REQUEST_URI" then
- return build_url(unpack(ctx.requestpath))
- elseif key == "FULL_REQUEST_URI" then
- local url = { http.getenv("SCRIPT_NAME") or "", http.getenv("PATH_INFO") }
- local query = http.getenv("QUERY_STRING")
- if query and #query > 0 then
- url[#url+1] = "?"
- url[#url+1] = query
+ local function _ifattr(cond, key, val, noescape)
+ if cond then
+ local env = getfenv(3)
+ local scope = (type(env.self) == "table") and env.self
+ if type(val) == "table" then
+ if not next(val) then
+ return ''
+ else
+ val = util.serialize_json(val)
end
- return table.concat(url, "")
- elseif key == "token" then
- return ctx.authtoken
- else
- return rawget(tbl, key) or _G[key]
end
- end})
- end
- track.dependent = (track.dependent ~= false)
- assert(not track.dependent or not track.auto,
- "Access Violation\nThe page at '" .. table.concat(request, "/") .. "/' " ..
- "has no parent node so the access to this location has been denied.\n" ..
- "This is a software bug, please report this message at " ..
- "https://github.com/openwrt/luci/issues"
- )
+ val = tostring(val or
+ (type(env[key]) ~= "function" and env[key]) or
+ (scope and type(scope[key]) ~= "function" and scope[key]) or "")
- if track.sysauth and not ctx.authsession then
- local authen = track.sysauth_authenticator
- local _, sid, sdat, default_user, allowed_users
+ if noescape ~= true then
+ val = util.pcdata(val)
+ end
- if type(authen) == "string" and authen ~= "htmlauth" then
- error500("Unsupported authenticator %q configured" % authen)
- return
+ return string.format(' %s="%s"', tostring(key), val)
+ else
+ return ''
end
+ end
- if type(track.sysauth) == "table" then
- default_user, allowed_users = nil, track.sysauth
+ tpl.context.viewns = setmetatable({
+ write = http.write;
+ include = function(name) tpl.Template(name):render(getfenv(2)) end;
+ translate = i18n.translate;
+ translatef = i18n.translatef;
+ export = function(k, v) if tpl.context.viewns[k] == nil then tpl.context.viewns[k] = v end end;
+ striptags = util.striptags;
+ pcdata = util.pcdata;
+ media = media;
+ theme = fs.basename(media);
+ resource = luci.config.main.resourcebase;
+ ifattr = function(...) return _ifattr(...) end;
+ attr = function(...) return _ifattr(true, ...) end;
+ url = build_url;
+ }, {__index=function(tbl, key)
+ if key == "controller" then
+ return build_url()
+ elseif key == "REQUEST_URI" then
+ return build_url(unpack(ctx.requestpath))
+ elseif key == "FULL_REQUEST_URI" then
+ local url = { http.getenv("SCRIPT_NAME") or "", http.getenv("PATH_INFO") }
+ local query = http.getenv("QUERY_STRING")
+ if query and #query > 0 then
+ url[#url+1] = "?"
+ url[#url+1] = query
+ end
+ return table.concat(url, "")
+ elseif key == "token" then
+ return ctx.authtoken
else
- default_user, allowed_users = track.sysauth, { track.sysauth }
+ return rawget(tbl, key) or _G[key]
end
+ end})
- if type(authen) == "function" then
- _, sid = authen(sys.user.checkpasswd, allowed_users)
- else
- sid = http.getcookie("sysauth")
+ return tpl
+end
+
+function dispatch(request)
+ --context._disable_memtrace = require "luci.debug".trap_memtrace("l")
+ local ctx = context
+
+ local auth, cors, suid, sgid
+ local menu = menu_json()
+ local page = menu
+
+ local requested_path_full = {}
+ local requested_path_node = {}
+ local requested_path_args = {}
+
+ for i, s in ipairs(request) do
+ if type(page.children) ~= "table" or not page.children[s] then
+ page = nil
+ break
+ end
+
+ if not page.children[s].satisfied then
+ page = nil
+ break
end
- sid, sdat = session_retrieve(sid, allowed_users)
+ page = page.children[s]
+ auth = page.auth or auth
+ cors = page.cors or cors
+ suid = page.setuser or suid
+ sgid = page.setgroup or sgid
- if not (sid and sdat) and authen == "htmlauth" then
+ requested_path_full[i] = s
+ requested_path_node[i] = s
+
+ if page.wildcard then
+ for j = i + 1, #request do
+ requested_path_args[j - i] = request[j]
+ requested_path_full[j] = request[j]
+ end
+ break
+ end
+ end
+
+ local tpl = init_template_engine(ctx)
+
+ ctx.args = requested_path_args
+ ctx.path = requested_path_node
+ ctx.dispatched = page
+
+ ctx.requestpath = ctx.requestpath or requested_path_full
+ ctx.requestargs = ctx.requestargs or requested_path_args
+ ctx.requested = ctx.requested or page
+
+ if type(auth) == "table" and type(auth.methods) == "table" and #auth.methods > 0 then
+ local sid, sdat
+ for _, method in ipairs(auth.methods) do
+ sid, sdat = check_authentication(method)
+
+ if sid and sdat then
+ break
+ end
+ end
+
+ if not (sid and sdat) and auth.login then
local user = http.getenv("HTTP_AUTH_USER")
local pass = http.getenv("HTTP_AUTH_PASS")
@@ -497,27 +785,23 @@ function dispatch(request)
pass = http.formvalue("luci_password")
end
- sid, sdat = session_setup(user, pass, allowed_users)
+ sid, sdat = session_setup(user, pass, { "root" })
if not sid then
- local tmpl = require "luci.template"
-
context.path = {}
http.status(403, "Forbidden")
http.header("X-LuCI-Login-Required", "yes")
- tmpl.render(track.sysauth_template or "sysauth", {
- duser = default_user,
- fuser = user
- })
- return
+ return tpl.render("sysauth", { duser = "root", fuser = user })
end
http.header("Set-Cookie", 'sysauth=%s; path=%s; HttpOnly%s' %{
sid, build_url(), http.getenv("HTTPS") == "on" and "; secure" or ""
})
+
http.redirect(build_url(unpack(ctx.requestpath)))
+ return
end
if not sid or not sdat then
@@ -531,81 +815,117 @@ function dispatch(request)
ctx.authuser = sdat.username
end
- if track.cors and http.getenv("REQUEST_METHOD") == "OPTIONS" then
+ local action = (page and type(page.action) == "table") and page.action or {}
+
+ if action.type == "arcombine" then
+ action = (#requested_path_args > 0) and action.targets[2] or action.targets[1]
+ end
+
+ if cors and http.getenv("REQUEST_METHOD") == "OPTIONS" then
luci.http.status(200, "OK")
luci.http.header("Access-Control-Allow-Origin", http.getenv("HTTP_ORIGIN") or "*")
luci.http.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
return
end
- if c and require_post_security(c.target, args) then
- if not test_post_security(c) then
+ if require_post_security(action) then
+ if not test_post_security() then
return
end
end
- if track.setgroup then
- sys.process.setgroup(track.setgroup)
+ if sgid then
+ sys.process.setgroup(sgid)
end
- if track.setuser then
- sys.process.setuser(track.setuser)
+ if suid then
+ sys.process.setuser(suid)
end
- local target = nil
- if c then
- if type(c.target) == "function" then
- target = c.target
- elseif type(c.target) == "table" then
- target = c.target.target
+ if action.type == "view" then
+ tpl.render("view", { view = action.path })
+
+ elseif action.type == "call" then
+ local ok, mod = util.copcall(require, action.module)
+ if not ok then
+ error500(mod)
+ return
+ end
+
+ local func = mod[action["function"]]
+
+ assert(func ~= nil,
+ 'Cannot resolve function "' .. action["function"] .. '". Is it misspelled or local?')
+
+ assert(type(func) == "function",
+ 'The symbol "' .. action["function"] .. '" does not refer to a function but data ' ..
+ 'of type "' .. type(func) .. '".')
+
+ local argv = (type(action.parameters) == "table" and #action.parameters > 0) and { unpack(action.parameters) } or {}
+ for _, s in ipairs(requested_path_args) do
+ argv[#argv + 1] = s
end
- end
- if c and (c.index or type(target) == "function") then
- ctx.dispatched = c
- ctx.requested = ctx.requested or ctx.dispatched
- end
+ local ok, err = util.copcall(func, unpack(argv))
+ if not ok then
+ error500(err)
+ end
- if c and c.index then
- local tpl = require "luci.template"
+ elseif action.type == "firstchild" then
+ local sub_request = find_subnode(page, requested_path_full, action.recurse)
+ if sub_request then
+ dispatch(sub_request)
+ else
+ tpl.render("empty_node_placeholder", getfenv(1))
+ end
- if util.copcall(tpl.render, "indexer", {}) then
- return true
+ elseif action.type == "alias" then
+ local sub_request = {}
+ for name in action.path:gmatch("[^/]+") do
+ sub_request[#sub_request + 1] = name
end
- end
- if type(target) == "function" then
- util.copcall(function()
- local oldenv = getfenv(target)
- local module = require(c.module)
- local env = setmetatable({}, {__index=
+ for _, s in ipairs(requested_path_args) do
+ sub_request[#sub_request + 1] = s
+ end
- function(tbl, key)
- return rawget(tbl, key) or module[key] or oldenv[key]
- end})
+ dispatch(sub_request)
- setfenv(target, env)
- end)
+ elseif action.type == "rewrite" then
+ local sub_request = { unpack(request) }
+ for i = 1, action.remove do
+ table.remove(sub_request, 1)
+ end
- local ok, err
- if type(c.target) == "table" then
- ok, err = util.copcall(target, c.target, unpack(args))
- else
- ok, err = util.copcall(target, unpack(args))
+ local n = 1
+ for s in action.path:gmatch("[^/]+") do
+ table.insert(sub_request, n, s)
+ n = n + 1
end
- if not ok then
- error500("Failed to execute " .. (type(c.target) == "function" and "function" or c.target.type or "unknown") ..
- " dispatcher target for entry '/" .. table.concat(request, "/") .. "'.\n" ..
- "The called action terminated with an exception:\n" .. tostring(err or "(unknown)"))
+
+ for _, s in ipairs(requested_path_args) do
+ sub_request[#sub_request + 1] = s
end
+
+ dispatch(sub_request)
+
+ elseif action.type == "template" then
+ tpl.render(action.path, getfenv(1))
+
+ elseif action.type == "cbi" then
+ _cbi({ config = action.config, model = action.path }, unpack(requested_path_args))
+
+ elseif action.type == "form" then
+ _form({ model = action.path }, unpack(requested_path_args))
+
else
- local root = node()
- if not root or not root.target then
+ local root = find_subnode(menu, {}, true)
+ if not root then
error404("No root node was registered, this usually happens if no module was installed.\n" ..
"Install luci-mod-admin-full and retry. " ..
"If the module is already installed, try removing the /tmp/luci-indexcache file.")
else
- error404("No page is registered at '/" .. table.concat(request, "/") .. "'.\n" ..
+ error404("No page is registered at '/" .. table.concat(requested_path_full, "/") .. "'.\n" ..
"If this url belongs to an extension, make sure it is properly installed.\n" ..
"If the extension was recently installed, try removing the /tmp/luci-indexcache file.")
end
@@ -659,13 +979,9 @@ function createindex()
"' - It must correspond to the file path!")
local idx = mod.index
- assert(type(idx) == "function",
- "Invalid controller file found\n" ..
- "The file '" .. path .. "' contains no index() function.\n" ..
- "Please make sure that the controller contains a valid " ..
- "index function and verify the spelling!")
-
- index[modname] = idx
+ if type(idx) == "function" then
+ index[modname] = idx
+ end
end
if indexcache then
@@ -675,6 +991,94 @@ function createindex()
end
end
+function createtree_json()
+ local json = require "luci.jsonc"
+ local tree = {}
+
+ local schema = {
+ action = "table",
+ auth = "table",
+ cors = "boolean",
+ depends = "table",
+ order = "number",
+ setgroup = "string",
+ setuser = "string",
+ title = "string",
+ wildcard = "boolean"
+ }
+
+ local files = {}
+ local fprint = {}
+ local cachefile
+
+ for file in (fs.glob("/usr/share/luci/menu.d/*.json") or function() end) do
+ files[#files+1] = file
+
+ if indexcache then
+ local st = fs.stat(file)
+ if st then
+ fprint[#fprint+1] = '%x' % st.ino
+ fprint[#fprint+1] = '%x' % st.mtime
+ fprint[#fprint+1] = '%x' % st.size
+ end
+ end
+ end
+
+ if indexcache then
+ cachefile = "%s.%s.json" %{
+ indexcache,
+ nixio.crypt(table.concat(fprint, "|"), "$1$"):sub(5):gsub("/", ".")
+ }
+
+ local res = json.parse(fs.readfile(cachefile) or "")
+ if res then
+ return res
+ end
+
+ for file in (fs.glob("%s.*.json" % indexcache) or function() end) do
+ fs.unlink(file)
+ end
+ end
+
+ for _, file in ipairs(files) do
+ local data = json.parse(fs.readfile(file) or "")
+ if type(data) == "table" then
+ for path, spec in pairs(data) do
+ if type(spec) == "table" then
+ local node = tree
+
+ for s in path:gmatch("[^/]+") do
+ if s == "*" then
+ node.wildcard = true
+ break
+ end
+
+ node.children = node.children or {}
+ node.children[s] = node.children[s] or {}
+ node = node.children[s]
+ end
+
+ if node ~= tree then
+ for k, t in pairs(schema) do
+ if type(spec[k]) == t then
+ node[k] = spec[k]
+ end
+ end
+
+ node.satisfied = check_depends(spec)
+ end
+ end
+ end
+ end
+ end
+
+ if cachefile then
+ fs.writefile(cachefile, json.stringify(tree))
+ end
+
+ return tree
+end
+
-- Build the index before if it does not exist yet.
function createtree()
if not index then
@@ -767,16 +1171,6 @@ function _create_node(path)
c = {nodes={}, auto=true, inreq=true}
- local _, n
- for _, n in ipairs(path) do
- if context.path[_] ~= n then
- c.inreq = false
- break
- end
- end
-
- c.inreq = c.inreq and (context.path[#path + 1] == last)
-
parent.nodes[last] = c
context.treecache[name] = c
end
@@ -786,119 +1180,24 @@ end
-- Subdispatchers --
-function _find_eligible_node(root, prefix, deep, types, descend)
- local children = _ordered_children(root)
-
- if not root.leaf and deep ~= nil then
- local sub_path = { unpack(prefix) }
-
- if deep == false then
- deep = nil
- end
-
- local _, child
- for _, child in ipairs(children) do
- sub_path[#prefix+1] = child.name
-
- local res_path = _find_eligible_node(child.node, sub_path,
- deep, types, true)
-
- if res_path then
- return res_path
- end
- end
- end
-
- if descend and
- (not types or
- (type(root.target) == "table" and
- util.contains(types, root.target.type)))
- then
- return prefix
- end
-end
-
-function _find_node(recurse, types)
- local path = { unpack(context.path) }
- local name = table.concat(path, ".")
- local node = context.treecache[name]
-
- path = _find_eligible_node(node, path, recurse, types)
-
- if path then
- dispatch(path)
- else
- require "luci.template".render("empty_node_placeholder")
- end
-end
-
-function _firstchild()
- return _find_node(false, nil)
-end
-
function firstchild()
- return { type = "firstchild", target = _firstchild }
-end
-
-function _firstnode()
- return _find_node(true, { "cbi", "form", "template", "arcombine" })
+ return { type = "firstchild" }
end
function firstnode()
- return { type = "firstnode", target = _firstnode }
+ return { type = "firstnode" }
end
function alias(...)
- local req = {...}
- return function(...)
- for _, r in ipairs({...}) do
- req[#req+1] = r
- end
-
- dispatch(req)
- end
+ return { type = "alias", req = { ... } }
end
function rewrite(n, ...)
- local req = {...}
- return function(...)
- local dispatched = util.clone(context.dispatched)
-
- for i=1,n do
- table.remove(dispatched, 1)
- end
-
- for i, r in ipairs(req) do
- table.insert(dispatched, i, r)
- end
-
- for _, r in ipairs({...}) do
- dispatched[#dispatched+1] = r
- end
-
- dispatch(dispatched)
- end
-end
-
-
-local function _call(self, ...)
- local func = getfenv()[self.name]
- assert(func ~= nil,
- 'Cannot resolve function "' .. self.name .. '". Is it misspelled or local?')
-
- assert(type(func) == "function",
- 'The symbol "' .. self.name .. '" does not refer to a function but data ' ..
- 'of type "' .. type(func) .. '".')
-
- if #self.argv > 0 then
- return func(unpack(self.argv), ...)
- else
- return func(...)
- end
+ return { type = "rewrite", n = n, req = { ... } }
end
function call(name, ...)
- return {type = "call", argv = {...}, name = name, target = _call}
+ return { type = "call", argv = {...}, name = name }
end
function post_on(params, name, ...)
@@ -906,8 +1205,7 @@ function post_on(params, name, ...)
type = "call",
post = params,
argv = { ... },
- name = name,
- target = _call
+ name = name
}
end
@@ -916,25 +1214,16 @@ function post(...)
end
-local _template = function(self, ...)
- require "luci.template".render(self.view)
-end
-
function template(name)
- return {type = "template", view = name, target = _template}
-end
-
-
-local _view = function(self, ...)
- require "luci.template".render("view", { view = self.view })
+ return { type = "template", view = name }
end
function view(name)
- return {type = "view", view = name, target = _view}
+ return { type = "view", view = name }
end
-local function _cbi(self, ...)
+function _cbi(self, ...)
local cbi = require "luci.cbi"
local tpl = require "luci.template"
local http = require "luci.http"
@@ -1048,25 +1337,21 @@ function cbi(model, config)
type = "cbi",
post = { ["cbi.submit"] = true },
config = config,
- model = model,
- target = _cbi
+ model = model
}
end
-local function _arcombine(self, ...)
- local argv = {...}
- local target = #argv > 0 and self.targets[2] or self.targets[1]
- setfenv(target.target, self.env)
- target:target(unpack(argv))
-end
-
function arcombine(trg1, trg2)
- return {type = "arcombine", env = getfenv(), target = _arcombine, targets = {trg1, trg2}}
+ return {
+ type = "arcombine",
+ env = getfenv(),
+ targets = {trg1, trg2}
+ }
end
-local function _form(self, ...)
+function _form(self, ...)
local cbi = require "luci.cbi"
local tpl = require "luci.template"
local http = require "luci.http"
@@ -1092,10 +1377,9 @@ end
function form(model)
return {
- type = "cbi",
+ type = "form",
post = { ["cbi.submit"] = true },
- model = model,
- target = _form
+ model = model
}
end
diff --git a/modules/luci-base/luasrc/view/header.htm b/modules/luci-base/luasrc/view/header.htm
index 1ef0e5b01..9cdedde5c 100644
--- a/modules/luci-base/luasrc/view/header.htm
+++ b/modules/luci-base/luasrc/view/header.htm
@@ -13,8 +13,8 @@
local applyconf = luci.config and luci.config.apply
%>
-<script type="text/javascript" src="<%=resource%>/promis.min.js"></script>
-<script type="text/javascript" src="<%=resource%>/luci.js"></script>
+<script type="text/javascript" src="<%=resource%>/promis.min.js?v=git-19.292.31773-cc35194"></script>
+<script type="text/javascript" src="<%=resource%>/luci.js?v=git-19.292.31773-cc35206"></script>
<script type="text/javascript">
L = new LuCI(<%= luci.http.write_json({
token = token,
@@ -22,6 +22,7 @@
scriptname = luci.http.getenv("SCRIPT_NAME"),
pathinfo = luci.http.getenv("PATH_INFO"),
requestpath = luci.dispatcher.context.requestpath,
+ dispatchpath = luci.dispatcher.context.path,
pollinterval = luci.config.main.pollinterval or 5,
sessionid = luci.dispatcher.context.authsession,
apply_rollback = math.max(applyconf and applyconf.rollback or 30, 30),
diff --git a/modules/luci-base/po/cs/base.po b/modules/luci-base/po/cs/base.po
index 17ac1b2db..fa003cb22 100644
--- a/modules/luci-base/po/cs/base.po
+++ b/modules/luci-base/po/cs/base.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2019-12-07 10:44+0000\n"
+"PO-Revision-Date: 2019-12-13 23:06+0000\n"
"Last-Translator: Jiri Tersel <jiri.tersel@seznam.cz>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/openwrt/luci/cs/>\n"
"Language: cs\n"
@@ -21,12 +21,13 @@ msgid "%d Bit"
msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/ui.js:2223
+#, fuzzy
msgid "%d invalid field(s)"
-msgstr ""
+msgstr "%d neplatné/á pole"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:32
msgid "%s is untagged in multiple VLANs!"
-msgstr ""
+msgstr "%s je neotagováno ve více VLAN!"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/bandwidth.js:290
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:400
@@ -76,12 +77,12 @@ msgstr "-- vlastní --"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:268
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:377
msgid "-- match by label --"
-msgstr ""
+msgstr "-- párovat dle názvu --"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:254
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:360
msgid "-- match by uuid --"
-msgstr ""
+msgstr "-- párovat dle UUID --"
#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:27
#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:44
@@ -91,7 +92,7 @@ msgstr "-- prosím vyberte --"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:849
msgid "0 = not using RSSI threshold, 1 = do not change driver default"
-msgstr ""
+msgstr "0 = nepoužít práh RSSI, 1 = neměnit výchozí nastavení ovladače"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/load.js:228
msgid "1 Minute Load:"
@@ -116,31 +117,35 @@ msgstr "Zatížení za 5 minut:"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1401
msgid "6-octet identifier as a hex string - no colons"
-msgstr ""
+msgstr "6oktetový identifikátor jako šestnáctkový řetězec - bez dvojteček"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1345
msgid "802.11r Fast Transition"
msgstr "802.11r Fast Transition"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1602
+#, fuzzy
msgid "802.11w Association SA Query maximum timeout"
-msgstr ""
+msgstr "Maximální časový limit 802.11w Association SA Query"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1609
+#, fuzzy
msgid "802.11w Association SA Query retry timeout"
-msgstr ""
+msgstr "Časový limit opakování 802.11w Association SA Query"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1568
+#, fuzzy
msgid "802.11w Management Frame Protection"
-msgstr ""
+msgstr "802.11w Zabezpečení Řídících Rámců"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1602
msgid "802.11w maximum timeout"
-msgstr ""
+msgstr "Maximální časový limit 802.11w"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1609
+#, fuzzy
msgid "802.11w retry timeout"
-msgstr ""
+msgstr "Časový limit opakování 802.11w"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:866
msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
@@ -193,8 +198,11 @@ msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
msgstr "<abbr title=\"Internet Protokol Verze 6\">IPv6</abbr>-Brána"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:398
+#, fuzzy
msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
msgstr ""
+"<abbr title=\"Internetový Protokol Verze 6\">IPv6</abbr>-Suffix "
+"(šestnáctkový)"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:40
#: modules/luci-mod-system/luasrc/controller/admin/system.lua:25
@@ -252,11 +260,11 @@ msgstr "Je nutné se znovu přihlásit, protože vypršela platnost relace."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:890
msgid "A43C + J43 + A43"
-msgstr ""
+msgstr "A43C + J43 + A43"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:891
msgid "A43C + J43 + A43 + V43"
-msgstr ""
+msgstr "A43C + J43 + A43 + V43"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:903
msgid "ADSL"
@@ -264,7 +272,7 @@ msgstr "ADSL"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:879
msgid "ANSI T1.413"
-msgstr ""
+msgstr "ANSI T1.413"
#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:94
#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:67
@@ -279,7 +287,7 @@ msgstr "ARP limit opakování"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:898
msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
+msgstr "ATM (asynchronní režim přenosu)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:919
msgid "ATM Bridges"
@@ -318,7 +326,7 @@ msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:541
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:545
msgid "Absent Interface"
-msgstr ""
+msgstr "Rozhraní chybí"
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:47
msgid "Access Concentrator"
@@ -382,7 +390,7 @@ msgstr "Přidat"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:923
msgid "Add ATM Bridge"
-msgstr ""
+msgstr "Přidat ATM most"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:92
msgid "Add IPv4 address…"
@@ -480,7 +488,7 @@ msgstr "Alias rozhraní"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:140
msgid "Alias of \"%s\""
-msgstr ""
+msgstr "Alias \"%s\""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:166
msgid "All Servers"
@@ -550,10 +558,13 @@ msgid "Always announce default router"
msgstr "Vždy oznamovat výchozí směrovač"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:817
+#, fuzzy
msgid ""
"Always use 40MHz channels even if the secondary channel overlaps. Using this "
"option does not comply with IEEE 802.11n-2009!"
msgstr ""
+"Vždy používat kanály šířky 40 MHz, i když se sekundární kanál překrývá. "
+"Použití této možnosti nevyhovuje standardu IEEE 802.11n-2009!"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:871
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:19
@@ -619,10 +630,12 @@ msgstr "Annex M G.992.5"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:649
msgid "Announce as default router even if no public prefix is available."
msgstr ""
+"Oznamovat jako výchozí směrovač, i když není k dispozici žádný veřejný "
+"prefix."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:654
msgid "Announced DNS domains"
-msgstr ""
+msgstr "Oznámené DNS domény"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:653
msgid "Announced DNS servers"
@@ -630,15 +643,15 @@ msgstr "Oznámené DNS servery"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1531
msgid "Anonymous Identity"
-msgstr ""
+msgstr "Anonymní identita"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:161
msgid "Anonymous Mount"
-msgstr ""
+msgstr "Anonymní připojení"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:157
msgid "Anonymous Swap"
-msgstr ""
+msgstr "Anonymní odkládací oddíl/soubor"
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:84
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:173
@@ -670,9 +683,10 @@ msgstr "Architektura"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:184
#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:27
+#, fuzzy
msgid ""
"Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr ""
+msgstr "Přiřadit zadanou délku každého veřejného IPv6 prefixu k tomuto rozhraní"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:189
#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:31
@@ -690,13 +704,15 @@ msgid "Associations"
msgstr ""
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:153
+#, fuzzy
msgid "Attempt to enable configured mount points for attached devices"
-msgstr ""
+msgstr "Pokusit se povolit nakonfigurované přípojné body pro připojená zařízení"
#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:104
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:64
+#, fuzzy
msgid "Auth Group"
-msgstr ""
+msgstr "Autorizační skupina"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1456
msgid "Authentication"
@@ -705,7 +721,7 @@ msgstr "Autentizace"
#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:70
#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:70
msgid "Authentication Type"
-msgstr ""
+msgstr "Typ autentizace"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:76
msgid "Authoritative"
diff --git a/modules/luci-base/po/es/base.po b/modules/luci-base/po/es/base.po
index 56c638aa1..397e69da9 100644
--- a/modules/luci-base/po/es/base.po
+++ b/modules/luci-base/po/es/base.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2019-12-05 17:06+0000\n"
+"PO-Revision-Date: 2019-12-13 23:06+0000\n"
"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/luci/es/>"
"\n"
@@ -2225,7 +2225,7 @@ msgstr "Generar archivo"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:75
msgid "Given password confirmation did not match, password not changed!"
msgstr ""
-"La confirmación y la contraseña no coinciden. ¡No se ha cambiado la "
+"La contraseña y la confirmación no coinciden, ¡No se ha cambiado la "
"contraseña!"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:145
@@ -2729,7 +2729,7 @@ msgstr "Reconectando interfaz..."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:198
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:204
msgid "Interface is shutting down..."
-msgstr "Parando interfaz..."
+msgstr "Deteniendo interfaz..."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:248
msgid "Interface is starting..."
@@ -4950,11 +4950,11 @@ msgstr ""
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:61
#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:103
msgid "Source"
-msgstr "Fuente"
+msgstr "Origen"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:83
msgid "Source Address"
-msgstr "Dirección de la fuente"
+msgstr "Dirección de origen"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:290
msgid "Specifies the directory the device is attached to"
diff --git a/modules/luci-base/po/hu/base.po b/modules/luci-base/po/hu/base.po
index 20301df8e..92fefd9b4 100644
--- a/modules/luci-base/po/hu/base.po
+++ b/modules/luci-base/po/hu/base.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2019-12-10 23:13+0000\n"
+"PO-Revision-Date: 2019-12-13 23:06+0000\n"
"Last-Translator: Balázs Úr <balazs@urbalazs.hu>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/openwrt/luci/"
"hu/>\n"
@@ -82,7 +82,7 @@ msgstr ""
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:254
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:360
msgid "-- match by uuid --"
-msgstr ""
+msgstr "-- egyezés UUID szerint --"
#: modules/luci-compat/luasrc/view/cbi/firewall_zonelist.htm:27
#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:44
@@ -104,7 +104,7 @@ msgstr "15 perces terhelés:"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1372
msgid "4-character hexadecimal ID"
-msgstr ""
+msgstr "4 karakteres hexadecimális azonosító"
#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:18
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:11
@@ -153,7 +153,7 @@ msgstr "<abbr title=\"Domain Name System\">DNS</abbr> lekérdezési port"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:212
msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> szerver port"
+msgstr "<abbr title=\"Domain Name System\">DNS</abbr>-kiszolgáló portja"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:163
msgid ""
@@ -201,7 +201,7 @@ msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-utótag (hex)"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:40
#: modules/luci-mod-system/luasrc/controller/admin/system.lua:25
msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> konfiguráció"
+msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> beállítása"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:51
msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
@@ -234,7 +234,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:248
msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">Max.</abbr> párhuzamos lekérdezés"
+msgstr "<abbr title=\"maximal\">Legtöbb</abbr> egyidejű lekérdezés"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:26
msgid ""
@@ -277,11 +277,11 @@ msgstr "APN"
#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:175
msgid "ARP retry threshold"
-msgstr "ARP újrapróbálkozási küszöbérték"
+msgstr "ARP újrapróbálkozási küszöbszint"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:898
msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
+msgstr "ATM (aszinkron átviteli mód)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:919
msgid "ATM Bridges"
@@ -290,7 +290,7 @@ msgstr "ATM Hidak"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:951
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:66
msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM Virtuális Csatorna Azonosító (VCI)"
+msgstr "ATM virtuális csatorna-azonosító (VCI)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:952
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoa.js:70
@@ -324,7 +324,7 @@ msgstr "Hiányzó csatoló"
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pppoe.js:47
msgid "Access Concentrator"
-msgstr "Elérési központ"
+msgstr "Sűrítő elérése"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:837
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:942
@@ -389,11 +389,11 @@ msgstr "IPv4-cím hozzáadása…"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:207
msgid "Add IPv6 address…"
-msgstr ""
+msgstr "IPv6-cím hozzáadása…"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:47
msgid "Add LED action"
-msgstr ""
+msgstr "LED művelet hozzáadása"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:216
msgid "Add VLAN"
@@ -407,7 +407,7 @@ msgstr ""
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:148
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:237
msgid "Add key"
-msgstr ""
+msgstr "Kulcs hozzáadása"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:151
msgid "Add local domain suffix to names served from hosts files"
@@ -417,7 +417,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:306
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:752
msgid "Add new interface..."
-msgstr "Új interfész hozzáadása..."
+msgstr "Új csatoló hozzáadása…"
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:99
msgid "Add peer"
@@ -429,7 +429,7 @@ msgstr "További 'hosts' fájlok"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:158
msgid "Additional servers file"
-msgstr ""
+msgstr "További kiszolgálók fájlja"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:33
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:34
@@ -495,7 +495,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:111
msgid "Allocate IP sequentially"
-msgstr ""
+msgstr "IP lefoglalása egymás után"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:24
msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
@@ -556,6 +556,9 @@ msgid ""
"Always use 40MHz channels even if the secondary channel overlaps. Using this "
"option does not comply with IEEE 802.11n-2009!"
msgstr ""
+"Mindig a 40 MHz-es csatornákat használja, akkor is ha a másodlagos csatorna "
+"átfedi. Ennek a beállításnak a használata nem felel meg az IEEE 802.11n-2009 "
+"előírásainak!"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:871
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:19
@@ -572,7 +575,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:881
msgid "Annex A G.992.2"
-msgstr ""
+msgstr "A G.992.2 melléklet"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:882
msgid "Annex A G.992.3"
@@ -592,7 +595,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:877
msgid "Annex B G.992.3"
-msgstr ""
+msgstr "B G.992.3 melléklet"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:878
msgid "Annex B G.992.5"
@@ -604,7 +607,7 @@ msgstr "J melléklet (összes)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:884
msgid "Annex L G.992.3 POTS 1"
-msgstr ""
+msgstr "L G.992.3 POTS 1 melléklet"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:875
msgid "Annex M (all)"
@@ -640,7 +643,7 @@ msgstr "Névtelen csatolás"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:157
msgid "Anonymous Swap"
-msgstr ""
+msgstr "Névtelen cserehely"
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:84
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:173
@@ -704,7 +707,7 @@ msgstr ""
#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:104
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:64
msgid "Auth Group"
-msgstr ""
+msgstr "Hitelesítési csoport"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1456
msgid "Authentication"
@@ -713,7 +716,7 @@ msgstr "Hitelesítés"
#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:70
#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:70
msgid "Authentication Type"
-msgstr ""
+msgstr "Hitelesítés típusa"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:76
msgid "Authoritative"
@@ -748,7 +751,7 @@ msgstr ""
#: modules/luci-compat/luasrc/model/network/proto_hnet.lua:7
#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:7
msgid "Automatic Homenet (HNCP)"
-msgstr ""
+msgstr "Automatikus otthoni hálózat (HNCP)"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:173
msgid "Automatically check filesystem for errors before mounting"
@@ -760,7 +763,7 @@ msgstr "Fájlrendszerek automatikus csatolása csatlakoztatáskor"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:165
msgid "Automatically mount swap on hotplug"
-msgstr ""
+msgstr "Cserehely automatikus csatolása csatlakoztatáskor"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:169
msgid "Automount Filesystem"
@@ -768,7 +771,7 @@ msgstr "Fájlrendszer automatikus csatolása"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:165
msgid "Automount Swap"
-msgstr ""
+msgstr "Cserehely automatikus csatolása"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:192
msgid "Available"
@@ -798,7 +801,7 @@ msgstr ""
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:48
msgid "BR / DMR / AFTR"
-msgstr ""
+msgstr "BR / DMR / AFTR"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:109
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:131
@@ -840,7 +843,7 @@ msgstr "Sáv"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:820
msgid "Beacon Interval"
-msgstr ""
+msgstr "Alapjel időköze"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:320
#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:46
@@ -849,10 +852,10 @@ msgid ""
"configuration files marked by opkg, essential base files and the user "
"defined backup patterns."
msgstr ""
-"Alább található a biztonsági mentésbe kerülő fájlok listája. A lista az opkg "
-"által megjelölt módosított konfigurációs fájlokból, fontos alapvető "
-"fájlokból valamint a felhasználó által megadott mintáknak megfelelő "
-"fájlokból áll."
+"Az alább meghatározott fájllista kerül be a biztonsági mentésbe. A lista az "
+"opkg által megjelölt módosított beállítófájlokból, a nélkülözhetetlen "
+"alapvető fájlokból, valamint a felhasználó által meghatározott biztonsági "
+"mentés mintákból áll."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:290
msgid ""
@@ -878,7 +881,7 @@ msgstr "Bitsebesség"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:169
msgid "Bogus NX Domain Override"
-msgstr "Hamis NX tartomány felülbírálása"
+msgstr "Hamis NX-tartomány felülbírálása"
#: modules/luci-base/htdocs/luci-static/resources/network.js:2814
#: modules/luci-compat/luasrc/model/network.lua:1420
@@ -978,7 +981,7 @@ msgstr "Csatorna"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:173
msgid "Check filesystems before mount"
-msgstr ""
+msgstr "Fájlrendszerek ellenőrzése csatolás előtt"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1856
msgid "Check this option to delete the existing networks from this radio."
@@ -995,7 +998,7 @@ msgstr ""
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:387
msgid "Choose mtdblock"
-msgstr ""
+msgstr "Az mtdblock kiválasztása"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:486
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1879
@@ -1041,6 +1044,8 @@ msgid ""
"Click \"Save mtdblock\" to download specified mtdblock file. (NOTE: THIS "
"FEATURE IS FOR PROFESSIONALS! )"
msgstr ""
+"Kattintson az „Az mtdblock mentése” gombra egy meghatározott mtdblock fájl "
+"letöltéséhez. (MEGJEGYZÉS: EZ A FUNKCIÓ CSAK SZAKEMBEREKNEK VALÓ!)"
#: modules/luci-base/htdocs/luci-static/resources/network.js:3602
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:838
@@ -1106,6 +1111,11 @@ msgid ""
"workaround might cause interoperability issues and reduced robustness of key "
"negotiation especially in environments with heavy traffic load."
msgstr ""
+"Bonyolulttá teszi a kulcs újratelepítési támadásokat az ügyfél oldalon az "
+"EAPOL-kulcskeretek újraátvitelének letiltásával, ami a kulcsok telepítéséhez "
+"használható. Ez a kerülő megoldás esetleg interoperabilitási problémákat és "
+"a kulcsegyeztetés robusztusságának csökkentését okozhatja, különösen az erős "
+"forgalomterheléssel rendelkező környezetekben."
#: modules/luci-base/htdocs/luci-static/resources/ui.js:2467
#: modules/luci-base/luasrc/controller/admin/uci.lua:11
@@ -1128,7 +1138,7 @@ msgstr "Beállítás sikertelen"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:170
msgid "Confirm disconnect"
-msgstr ""
+msgstr "Leválasztás megerősítése"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:51
msgid "Confirmation"
@@ -1190,7 +1200,7 @@ msgstr "Tűzfal zóna készítés / hozzárendelés"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:782
msgid "Create interface"
-msgstr ""
+msgstr "Csatoló létrehozása"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:166
msgid "Critical"
@@ -1211,7 +1221,7 @@ msgstr ""
#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:82
#: modules/luci-compat/luasrc/view/cbi/network_ifacelist.htm:83
msgid "Custom Interface"
-msgstr "Egyéni interfész"
+msgstr "Egyéni csatoló"
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:36
msgid "Custom delegated IPv6-prefix"
@@ -1229,11 +1239,11 @@ msgid ""
"\">LED</abbr>s if possible."
msgstr ""
"Az eszköz <abbr title=\"Light Emitting Diode\">LED</abbr>-jei működésének "
-"testreszabása."
+"személyre szabása."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1258
msgid "DAE-Client"
-msgstr ""
+msgstr "DAE-kliens"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1266
msgid "DAE-Port"
@@ -1273,7 +1283,7 @@ msgstr "DHCPv6-mód"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:626
msgid "DHCPv6-Service"
-msgstr ""
+msgstr "DHCPv6-szolgáltatás"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:44
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:45
@@ -1314,7 +1324,7 @@ msgstr ""
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:13
msgid "DSL Status"
-msgstr ""
+msgstr "DSL állapota"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:901
msgid "DSL line mode"
@@ -1322,7 +1332,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:998
msgid "DTIM Interval"
-msgstr ""
+msgstr "DTIM időköze"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:57
msgid "DUID"
@@ -1345,7 +1355,7 @@ msgstr "Alapértelmezés %d"
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:107
msgid "Default Route"
-msgstr ""
+msgstr "Alapértelmezett útvonal"
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/464xlat.js:48
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:85
@@ -1368,7 +1378,7 @@ msgstr "Alapértelmezett állapot"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:596
msgid "Define a name for this network."
-msgstr "Adja meg a hálózat nevét."
+msgstr "Határozzon meg egy nevet ehhez a hálózathoz."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:614
msgid ""
@@ -1393,7 +1403,7 @@ msgstr "Törlés"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:176
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:182
msgid "Delete key"
-msgstr ""
+msgstr "Kulcs törlése"
#: modules/luci-base/htdocs/luci-static/resources/ui.js:1679
msgid "Delete request failed: %s"
@@ -1405,7 +1415,7 @@ msgstr "Hálózat törlése"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:998
msgid "Delivery Traffic Indication Message Interval"
-msgstr ""
+msgstr "Kézbesítési forgalom jelző üzenet időköze"
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:108
msgid "Description"
@@ -1445,7 +1455,7 @@ msgstr "Eszköz"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:771
msgid "Device Configuration"
-msgstr "Eszköz beállítások"
+msgstr "Eszköz beállításai"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:83
msgid "Device is not active"
@@ -1472,7 +1482,7 @@ msgstr "Diagnosztika"
#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:101
#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:93
msgid "Dial number"
-msgstr ""
+msgstr "Szám tárcsázása"
#: modules/luci-base/htdocs/luci-static/resources/ui.js:1580
msgid "Directory"
@@ -1488,13 +1498,13 @@ msgid ""
"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
"this interface."
msgstr ""
-"<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> tiltása ezen "
-"az interfészen."
+"A <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> letiltása "
+"ennél a csatolónál."
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:171
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/connections.js:370
msgid "Disable DNS lookups"
-msgstr ""
+msgstr "DNS keresések letiltása"
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:93
msgid "Disable Encryption"
@@ -1586,7 +1596,7 @@ msgstr "Ne továbbítson fordított keresési kéréseket a helyi hálózathoz"
#: modules/luci-base/htdocs/luci-static/resources/ui.js:1665
msgid "Do you really want to delete \"%s\" ?"
-msgstr ""
+msgstr "Valóban törölni szeretné ezt: „%s”?"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:177
msgid "Do you really want to delete the following SSH key?"
@@ -1610,7 +1620,7 @@ msgstr "Tartomány fehérlista"
#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:67
msgid "Don't Fragment"
-msgstr ""
+msgstr "Ne tördeljen"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:73
msgid ""
@@ -1630,11 +1640,11 @@ msgstr "Biztonsági mentés letöltése"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:394
msgid "Download mtdblock"
-msgstr ""
+msgstr "Az mtdblock letöltése"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:906
msgid "Downstream SNR offset"
-msgstr ""
+msgstr "Belső SNR eltolás"
#: modules/luci-base/htdocs/luci-static/resources/form.js:1174
msgid "Drag to reorder"
@@ -1677,7 +1687,7 @@ msgstr ""
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:67
msgid "EA-bits length"
-msgstr ""
+msgstr "EA-bitek hossza"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1421
msgid "EAP-Method"
@@ -1707,7 +1717,7 @@ msgstr "Hálózat szerkesztése"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:703
msgid "Edit wireless network"
-msgstr ""
+msgstr "Vezeték nélküli hálózat szerkesztése"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:168
msgid "Emergency"
@@ -1723,6 +1733,8 @@ msgid ""
"Enable <abbr title=\"Internet Group Management Protocol\">IGMP</abbr> "
"snooping"
msgstr ""
+"<abbr title=\"Internet Group Management Protocol\">IGMP</abbr> szimatolás "
+"engedélyezése"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:455
msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
@@ -1761,7 +1773,7 @@ msgstr "NTP-kliens engedélyezése"
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:96
msgid "Enable Single DES"
-msgstr ""
+msgstr "Egyszeres DES engedélyezése"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:263
msgid "Enable TFTP server"
@@ -1818,6 +1830,8 @@ msgid ""
"Enables fast roaming among access points that belong to the same Mobility "
"Domain"
msgstr ""
+"Engedélyezi a gyors barangolást a hozzáférési pontok között, amelyek "
+"ugyanazon mobilitási tartományhoz tartoznak"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:455
msgid "Enables the Spanning Tree Protocol on this bridge"
@@ -1846,7 +1860,7 @@ msgstr ""
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:132
msgid "Endpoint Port"
-msgstr ""
+msgstr "Végpont portja"
#: modules/luci-compat/luasrc/view/cbi/dropdown.htm:16
msgid "Enter custom value"
@@ -1858,7 +1872,7 @@ msgstr "Egyéni értékek megadása"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:93
msgid "Erasing..."
-msgstr "Törlés..."
+msgstr "Törlés…"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:97
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:98
@@ -1871,7 +1885,7 @@ msgstr "Hiba"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:29
msgid "Errored seconds (ES)"
-msgstr ""
+msgstr "Hibás másodpercek (ES)"
#: modules/luci-base/htdocs/luci-static/resources/network.js:2826
#: modules/luci-compat/luasrc/model/network.lua:1432
@@ -1881,11 +1895,11 @@ msgstr "Ethernet adapter"
#: modules/luci-base/htdocs/luci-static/resources/network.js:2817
#: modules/luci-compat/luasrc/model/network.lua:1422
msgid "Ethernet Switch"
-msgstr "Ethernet switch"
+msgstr "Ethernet kapcsoló"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:300
msgid "Exclude interfaces"
-msgstr ""
+msgstr "Csatolók kizárása"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:150
msgid "Expand hosts"
@@ -1914,7 +1928,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1412
msgid "External R0 Key Holder List"
-msgstr ""
+msgstr "Külső R0 kulcstartólista"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1416
msgid "External R1 Key Holder List"
@@ -1930,11 +1944,11 @@ msgstr "Külső rendszernapló kiszolgáló port"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:152
msgid "External system log server protocol"
-msgstr ""
+msgstr "Külső rendszernapló-kiszolgáló protokollja"
#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:79
msgid "Extra SSH command options"
-msgstr ""
+msgstr "További SSH parancs kapcsolók"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1386
msgid "FT over DS"
@@ -2001,6 +2015,8 @@ msgid ""
"Find all currently attached filesystems and swap and replace configuration "
"with defaults based on what was detected"
msgstr ""
+"Az összes jelenleg csatolt fájlrendszer és cserehely megkeresése, és a "
+"beállítások cseréje az alapértelmezettekkel az alapján, hogy mi lett észlelve"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:730
msgid "Find and join network"
@@ -2045,7 +2061,7 @@ msgstr "Flash image..."
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:275
msgid "Flash image?"
-msgstr ""
+msgstr "Beírja a lemezképet?"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:401
msgid "Flash new firmware image"
@@ -2053,7 +2069,7 @@ msgstr "Új firmware image flash-elése"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:352
msgid "Flash operations"
-msgstr "Flash műveletek"
+msgstr "Beírás műveletei"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:284
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:286
@@ -2096,7 +2112,7 @@ msgstr ""
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:90
msgid "Force use of NAT-T"
-msgstr ""
+msgstr "NAT-T használatának kényszerítése"
#: modules/luci-base/luasrc/view/csrftoken.htm:8
msgid "Form token mismatch"
@@ -2112,7 +2128,7 @@ msgstr ""
#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:161
msgid "Forward broadcast traffic"
-msgstr "Broadcast forgalom továbbítás"
+msgstr "Üzenetszórási forgalom továbbítása"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:844
msgid "Forward mesh peer traffic"
@@ -2135,6 +2151,8 @@ msgid ""
"Further information about WireGuard interfaces and peers at <a href='http://"
"wireguard.com'>wireguard.com</a>."
msgstr ""
+"A WireGuard csatolókról és a partnerekről további információkat a <a "
+"href='http://wireguard.com'>wireguard.com</a> oldalon talál."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:79
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:133
@@ -2158,7 +2176,7 @@ msgstr "Átjáró portok"
#: modules/luci-base/htdocs/luci-static/resources/network.js:9
#: modules/luci-compat/luasrc/model/network.lua:29
msgid "Gateway address is invalid"
-msgstr ""
+msgstr "Az átjáró címe érvénytelen"
#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:98
msgid "Gateway metric"
@@ -2189,7 +2207,7 @@ msgstr "PMK előállítása helyileg"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:363
msgid "Generate archive"
-msgstr "Archívum készítése"
+msgstr "Archívum előállítása"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:75
msgid "Given password confirmation did not match, password not changed!"
@@ -2219,7 +2237,7 @@ msgstr "Ugrás a megfelelő beállítási oldalhoz"
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:66
msgid "Group Password"
-msgstr ""
+msgstr "Csoportjelszó"
#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:22
msgid "Guest"
@@ -2231,7 +2249,7 @@ msgstr "HE.net jelszó"
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:73
msgid "HE.net username"
-msgstr ""
+msgstr "HE.net felhasználónév"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:45
msgid "Hang Up"
@@ -2266,7 +2284,7 @@ msgstr "Gép"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js:21
msgid "Host entries"
-msgstr "Host bejegyzések"
+msgstr "Gépbejegyzések"
#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:171
msgid "Host expiry timeout"
@@ -2304,7 +2322,7 @@ msgstr "Hibrid"
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:75
msgid "IKE DH Group"
-msgstr ""
+msgstr "IKE DH csoport"
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:59
msgid "IP Addresses"
@@ -2316,7 +2334,7 @@ msgstr ""
#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:88
msgid "IP Type"
-msgstr ""
+msgstr "IP típusa"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/hosts.js:30
msgid "IP address"
@@ -2330,7 +2348,7 @@ msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/network.js:11
#: modules/luci-compat/luasrc/model/network.lua:31
msgid "IP address is missing"
-msgstr ""
+msgstr "IP-cím hiányzik"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:80
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:81
@@ -2349,11 +2367,11 @@ msgstr "IPv4 tűzfal"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:28
msgid "IPv4 Upstream"
-msgstr ""
+msgstr "Külső IPv4"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:178
msgid "IPv4 address"
-msgstr "IPv4 cím"
+msgstr "IPv4-cím"
#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:33
msgid "IPv4 assignment length"
@@ -2361,7 +2379,7 @@ msgstr "IPv4 hozzárendelés hossza"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:181
msgid "IPv4 broadcast"
-msgstr "IPv4 broadcast"
+msgstr "IPv4 üzenetszórás"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:180
msgid "IPv4 gateway"
@@ -2373,7 +2391,7 @@ msgstr "IPv4 hálózati maszk"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:286
msgid "IPv4 network in address/netmask notation"
-msgstr ""
+msgstr "IPv4 hálózat cím/hálózati maszk jelölésben"
#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:90
msgid "IPv4 only"
@@ -2432,7 +2450,7 @@ msgstr "IPv6 szomszédok"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:549
msgid "IPv6 Settings"
-msgstr ""
+msgstr "IPv6 beállítások"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:863
msgid "IPv6 ULA-Prefix"
@@ -2440,7 +2458,7 @@ msgstr ""
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:28
msgid "IPv6 Upstream"
-msgstr ""
+msgstr "Külső IPv6"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:205
msgid "IPv6 address"
@@ -2449,7 +2467,7 @@ msgstr "IPv6 cím"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:189
#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:31
msgid "IPv6 assignment hint"
-msgstr ""
+msgstr "IPv6 hozzárendelés segítsége"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:184
#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:27
@@ -2485,7 +2503,7 @@ msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:218
msgid "IPv6 suffix"
-msgstr ""
+msgstr "IPv6-utótag"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:56
#: modules/luci-mod-status/luasrc/view/admin_status/routes.htm:132
@@ -2557,7 +2575,7 @@ msgstr ""
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:74
#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:97
msgid "If unchecked, no default route is configured"
-msgstr "Ha nincs kiválasztva, akkor nincs alapértelmezett útvonal beállítva"
+msgstr "Ha nincs bejelölve, akkor nincs alapértelmezett útvonal beállítva"
#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:37
#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:124
@@ -2582,11 +2600,12 @@ msgid ""
"slow process as the swap-device cannot be accessed with the high datarates "
"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
msgstr ""
-"Ha a fizikai memória túl kevés a nem használt adatok ideiglenesen áttehetők "
-"egy swap-eszközre mely így nagyobb mennyiségű használható <abbr title="
-"\"Random Access Memory\">RAM</abbr>-ot eredményez. Az adatok áttétele egy "
-"nagyon lassú folyamat mivel a swap-eszköz nem érhető el akkora sebességgel "
-"mint a <abbr title=\"Random Access Memory\">RAM</abbr>."
+"Ha a fizikai memória túl kevés, akkor a nem használt adatok átmenetileg "
+"áttehetők egy cserehelyeszközre, ami nagyobb mennyiségű használható <abbr "
+"title=\"Random Access Memory\">RAM</abbr>-ot eredményez. Legyen tudatában "
+"annak, hogy az adatok áttétele nagyon lassú folyamat, mivel a "
+"cserehelyeszköz nem érhető el akkora adatsebességgel, mint a <abbr title=\""
+"Random Access Memory\">RAM</abbr>."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:100
msgid "Ignore <code>/etc/hosts</code>"
@@ -2594,7 +2613,7 @@ msgstr "Az <code>/etc/hosts</code> mellőzése"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:574
msgid "Ignore interface"
-msgstr "Interfész figyelmen kívül hagyása"
+msgstr "Csatoló mellőzése"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:89
msgid "Ignore resolve file"
@@ -2719,7 +2738,7 @@ msgstr "Csatolók"
#: protocols/luci-proto-hnet/htdocs/luci-static/resources/protocol/hnet.js:20
msgid "Internal"
-msgstr ""
+msgstr "Belső"
#: modules/luci-base/luasrc/view/error500.htm:8
msgid "Internal Server Error"
@@ -2752,7 +2771,7 @@ msgstr "Érvénytelen argumentum"
#: modules/luci-base/htdocs/luci-static/resources/rpc.js:394
msgid "Invalid command"
-msgstr ""
+msgstr "Érvénytelen parancs"
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:80
msgid "Invalid hexadecimal value"
@@ -2804,7 +2823,7 @@ msgstr "Kernel napló"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js:57
msgid "Kernel Version"
-msgstr "Kernel verzió"
+msgstr "Kernel verziója"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1283
msgid "Key"
@@ -2838,7 +2857,7 @@ msgstr "L2TP-kiszolgáló"
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:89
#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:112
msgid "LCP echo failure threshold"
-msgstr "LCP echo hibaküszöb"
+msgstr "LCP-visszhang hibaküszöbszintje"
#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:144
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/ppp.js:128
@@ -2847,7 +2866,7 @@ msgstr "LCP echo hibaküszöb"
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:102
#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:125
msgid "LCP echo interval"
-msgstr "LCP Echo időtartam"
+msgstr "LCP visszhang időtartama"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:955
msgid "LLC"
@@ -2881,7 +2900,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:85
msgid "Leasefile"
-msgstr "Bérlet fájl"
+msgstr "Bérletfájl"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:36
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/40_dhcp.js:31
@@ -2920,11 +2939,11 @@ msgstr "Figyelés korlátozása ezekre a csatolókra és a visszacsatolásra."
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:24
msgid "Line Attenuation (LATN)"
-msgstr ""
+msgstr "Vonal csillapítása (LATN)"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:17
msgid "Line Mode"
-msgstr ""
+msgstr "Vonali mód"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:16
msgid "Line State"
@@ -2979,7 +2998,7 @@ msgstr "Domain-ok listája, melyeknél az RFC1918 válaszok megengedettek"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:170
msgid "List of hosts that supply bogus NX domain results"
-msgstr "A hamis NX tartomány eredményeket szolgáltató gépek listája"
+msgstr "Gépek listája, amelyek hamis NX-tartomány eredményeket szolgáltatnak"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:295
msgid "Listen Interfaces"
@@ -2987,7 +3006,7 @@ msgstr "Figyelési csatolók"
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:54
msgid "Listen Port"
-msgstr ""
+msgstr "Port figyelése"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/dropbear.js:16
msgid "Listen only on the given interface or, if unspecified, on all"
@@ -2995,7 +3014,7 @@ msgstr "Figyelés csak a megadott csatolón, vagy az összesen, ha nincs megadva
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:213
msgid "Listening port for inbound DNS queries"
-msgstr "Szerver port a beérkező DNS kérések számára"
+msgstr "Port figyelése a bejövő DNS-lekérdezésekhez"
#: modules/luci-mod-status/luasrc/controller/admin/status.lua:23
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:202
@@ -3018,7 +3037,7 @@ msgstr "Könyvtártartalmak betöltése…"
#: modules/luci-base/luasrc/view/view.htm:4
#: modules/luci-mod-status/luasrc/view/admin_status/index.htm:12
msgid "Loading view…"
-msgstr ""
+msgstr "Nézet betöltése…"
#: modules/luci-base/htdocs/luci-static/resources/network.js:10
#: modules/luci-compat/luasrc/model/network.lua:30
@@ -3044,7 +3063,7 @@ msgstr "Helyi IPv6-cím"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:283
msgid "Local Service Only"
-msgstr ""
+msgstr "Csak helyi szolgáltatás"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/startup.js:112
msgid "Local Startup"
@@ -3111,7 +3130,7 @@ msgstr "Kijelentkezés"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:31
msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
+msgstr "Jel vesztésének másodpercei (LOSS)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:576
msgid "Lowest leased address as offset from the network address."
@@ -3146,12 +3165,12 @@ msgstr "MAC-lista"
#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:16
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:13
msgid "MAP / LW4over6"
-msgstr ""
+msgstr "MAP / LW4over6"
#: modules/luci-compat/luasrc/model/network/proto_4x6.lua:62
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:7
msgid "MAP rule is invalid"
-msgstr ""
+msgstr "A MAP szabály érvénytelen"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:318
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/wireless.js:319
@@ -3178,6 +3197,8 @@ msgid ""
"Make sure to clone the root filesystem using something like the commands "
"below:"
msgstr ""
+"Győződjön meg arról, hogy klónozta-e a gyökér fájlrendszert az alábbi "
+"parancsokhoz hasonló valami használatával:"
#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:108
#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:100
@@ -3200,7 +3221,7 @@ msgstr "Legnagyobb elérhető adatsebesség (ATTNDR)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1017
msgid "Maximum allowed Listen Interval"
-msgstr ""
+msgstr "Legnagyobb engedélyezett figyelési időköz"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:231
msgid "Maximum allowed number of active DHCP leases"
@@ -3226,7 +3247,7 @@ msgstr "Bérelt címek legnagyobb száma."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:796
msgid "Maximum transmit power"
-msgstr ""
+msgstr "Legnagyobb átviteli teljesítmény"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:80
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:137
@@ -3305,7 +3326,7 @@ msgstr "Modell"
#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:72
msgid "Modem default"
-msgstr ""
+msgstr "Modem alapértelmezett"
#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:73
#: protocols/luci-proto-modemmanager/htdocs/luci-static/resources/protocol/modemmanager.js:57
@@ -3333,7 +3354,7 @@ msgstr "Modemkezelő"
#: modules/luci-base/htdocs/luci-static/resources/network.js:3605
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:915
msgid "Monitor"
-msgstr "Ellenőrzés"
+msgstr "Megfigyelés"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:29
msgid "More Characters"
@@ -3403,7 +3424,7 @@ msgstr "Mozgatás fel"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1364
msgid "NAS ID"
-msgstr "NAS azonosító"
+msgstr "NAS-azonosító"
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:87
msgid "NAT-T Mode"
@@ -3416,7 +3437,7 @@ msgstr ""
#: modules/luci-compat/luasrc/model/network/proto_ncm.lua:26
#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:31
msgid "NCM"
-msgstr ""
+msgstr "NCM"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:632
msgid "NDP-Proxy"
@@ -3424,7 +3445,7 @@ msgstr ""
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:72
msgid "NT Domain"
-msgstr ""
+msgstr "NT-tartomány"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:270
msgid "NTP server candidates"
@@ -3490,15 +3511,15 @@ msgstr "Nincs DHCP-kiszolgáló beállítva ehhez a csatolóhoz"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1197
msgid "No Encryption"
-msgstr ""
+msgstr "Nincs titkosítás"
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:89
msgid "No NAT-T"
-msgstr ""
+msgstr "Nincs NAT-T"
#: modules/luci-base/htdocs/luci-static/resources/rpc.js:398
msgid "No data received"
-msgstr ""
+msgstr "Nem érkezett adat"
#: modules/luci-base/htdocs/luci-static/resources/ui.js:1786
msgid "No entries in this directory"
@@ -3529,7 +3550,7 @@ msgstr "Nincs negatív gyorsítótár"
#: themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm:238
#: themes/luci-theme-rosy/luasrc/view/themes/rosy/header.htm:279
msgid "No password set!"
-msgstr "Nincs jelszó!"
+msgstr "Nincs jelszó beállítva!"
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:104
msgid "No peers defined yet"
@@ -3570,7 +3591,7 @@ msgstr "Zaj:"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:34
msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
+msgstr "Nem kezdeményező CRC-hibák (CRC_P)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:289
msgid "Non-wildcard"
@@ -3645,7 +3666,7 @@ msgstr ""
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:67
#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:93
msgid "Obtain IPv6-Address"
-msgstr ""
+msgstr "IPv6-cím beszerzése"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:62
msgid "Off"
@@ -3673,7 +3694,7 @@ msgstr "Legalább gépnevet vagy MAC-címet meg kell adni!"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:462
msgid "One of the following: %s"
-msgstr ""
+msgstr "A következők egyike: %s"
#: modules/luci-compat/luasrc/view/cbi/nullsection.htm:17
#: modules/luci-compat/luasrc/view/cbi/ucisection.htm:22
@@ -3701,7 +3722,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:792
msgid "Operating frequency"
-msgstr ""
+msgstr "Működési gyakoriság"
#: modules/luci-base/htdocs/luci-static/resources/ui.js:2476
msgid "Option changed"
@@ -3762,7 +3783,7 @@ msgstr "Elhagyható. Az alagút csatoló legnagyobb átviteli egysége."
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:132
msgid "Optional. Port of peer."
-msgstr ""
+msgstr "Elhagyható. A partner portja."
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:136
msgid ""
@@ -3797,7 +3818,7 @@ msgstr "Kimeneti csatoló"
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:59
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:164
msgid "Output zone"
-msgstr ""
+msgstr "Kimeneti zóna"
#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:54
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:222
@@ -3820,7 +3841,7 @@ msgstr "MAC-cím felülbírálása"
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:119
#: protocols/luci-proto-qmi/htdocs/luci-static/resources/protocol/qmi.js:97
msgid "Override MTU"
-msgstr "MTU felülbíráslás"
+msgstr "MTU felülbírálása"
#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:63
msgid "Override TOS"
@@ -3828,7 +3849,7 @@ msgstr "TOS felülbírálása"
#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:58
msgid "Override TTL"
-msgstr ""
+msgstr "TTL felülbírálása"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:989
msgid "Override default interface name"
@@ -3856,7 +3877,7 @@ msgstr "Áttekintő"
#: modules/luci-base/htdocs/luci-static/resources/ui.js:1632
msgid "Overwrite existing file \"%s\" ?"
-msgstr ""
+msgstr "Felülírja a meglévő „%s” fájlt?"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/processes.js:69
msgid "Owner"
@@ -3908,7 +3929,7 @@ msgstr "PIN"
#: modules/luci-base/htdocs/luci-static/resources/network.js:19
#: modules/luci-compat/luasrc/model/network.lua:39
msgid "PIN code rejected"
-msgstr ""
+msgstr "PIN-kód visszautasítva"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1407
msgid "PMK R1 Push"
@@ -3993,7 +4014,7 @@ msgstr ""
#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:110
msgid "Password2"
-msgstr ""
+msgstr "2. jelszó"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js:231
msgid "Paste or drag SSH key file…"
@@ -4001,7 +4022,7 @@ msgstr "SSH kulcsfájl beszúrása vagy idehúzása…"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1431
msgid "Path to CA-Certificate"
-msgstr "CA tanúsítvány elérési útja"
+msgstr "Útvonal a CA-tanúsítványhoz"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1437
msgid "Path to Client-Certificate"
@@ -4098,7 +4119,7 @@ msgstr "Adja meg a felhasználónevét és a jelszavát."
#: modules/luci-base/htdocs/luci-static/resources/ui.js:2273
msgid "Please select the file to upload."
-msgstr ""
+msgstr "Válassza ki a feltöltendő fájlt."
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:45
msgid "Policy"
@@ -4110,7 +4131,7 @@ msgstr "Port"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:145
msgid "Port %s"
-msgstr ""
+msgstr "%s. port"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:275
msgid "Port status:"
@@ -4134,7 +4155,7 @@ msgstr ""
#: protocols/luci-proto-ncm/htdocs/luci-static/resources/protocol/ncm.js:74
msgid "Prefer UMTS"
-msgstr ""
+msgstr "UMTS előnyben részesítése"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/30_network.js:32
msgid "Prefix Delegated"
@@ -4154,8 +4175,8 @@ msgid ""
"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
"ignore failures"
msgstr ""
-"A peer halottnak tekintése a megadott számú LCP echo hibák után. Használjon "
-"0-t a hibák figyelmen kívül hagyásához."
+"A partner halottnak tekintése a megadott mennyiségű LCP visszhang hibák "
+"után. Használjon 0 értéket a hibák figyelmen kívül hagyásához."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:301
msgid "Prevent listening on these interfaces."
@@ -4244,7 +4265,7 @@ msgstr "R0 kulcs élettartama"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1401
msgid "R1 Key Holder"
-msgstr ""
+msgstr "R1 kulcstartó"
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:88
msgid "RFC3947 NAT-T mode"
@@ -4319,11 +4340,11 @@ msgstr "Valós idejű grafikonok"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1378
msgid "Reassociation Deadline"
-msgstr ""
+msgstr "Újratársítás határideje"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:188
msgid "Rebind protection"
-msgstr "Rebind elleni védelem"
+msgstr "Újrakötési védelem"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:13
#: modules/luci-mod-system/luasrc/controller/admin/system.lua:30
@@ -4351,7 +4372,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:343
msgid "Reconnect this interface"
-msgstr "Csatlakoztassa újra az interfészt"
+msgstr "Csatoló újrakapcsolódása"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:48
msgid "References"
@@ -4379,7 +4400,7 @@ msgstr "Átjátszó híd"
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:50
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:49
msgid "Remote IPv4 address"
-msgstr "Távoli IPv4 cím"
+msgstr "Távoli IPv4-cím"
#: protocols/luci-proto-ipip/htdocs/luci-static/resources/protocol/ipip.js:40
msgid "Remote IPv4 address or FQDN"
@@ -4391,7 +4412,7 @@ msgstr "Eltávolítás"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1856
msgid "Replace wireless configuration"
-msgstr "Vezetéknélküli beállítások lecserélése"
+msgstr "Vezeték nélküli beállítások cseréje"
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dhcpv6.js:17
msgid "Request IPv6-address"
@@ -4407,7 +4428,7 @@ msgstr "Kérés időkorlátja"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1571
msgid "Required"
-msgstr ""
+msgstr "Kötelező"
#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:31
msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
@@ -4421,7 +4442,7 @@ msgstr "Kötelező. Base64 kódolású személyes kulcs ehhez a csatolóhoz."
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:113
msgid "Required. Base64-encoded public key of peer."
-msgstr ""
+msgstr "Kötelező. A partner Base64 kódolású nyilvános kulcsa."
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:122
msgid ""
@@ -4443,12 +4464,12 @@ msgstr "EAP támogatással rendelkező hostapd szükséges"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1137
msgid "Requires hostapd with OWE support"
-msgstr ""
+msgstr "OWE támogatással rendelkező hostapd szükséges"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1133
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1134
msgid "Requires hostapd with SAE support"
-msgstr ""
+msgstr "SAE támogatással rendelkező hostapd szükséges"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1568
msgid ""
@@ -4478,7 +4499,7 @@ msgstr "WPA-ügyfél szükséges"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1147
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1148
msgid "Requires wpa-supplicant with EAP support"
-msgstr ""
+msgstr "EAP támogatással rendelkező WPA-ügyfél szükséges"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1149
msgid "Requires wpa-supplicant with OWE support"
@@ -4488,7 +4509,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1146
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1159
msgid "Requires wpa-supplicant with SAE support"
-msgstr ""
+msgstr "SAE támogatással rendelkező WPA-ügyfél szükséges"
#: modules/luci-base/htdocs/luci-static/resources/luci.js:2944
#: modules/luci-base/luasrc/view/sysauth.htm:39
@@ -4572,7 +4593,7 @@ msgstr "Gyökér előkészítés"
#: protocols/luci-proto-wireguard/htdocs/luci-static/resources/protocol/wireguard.js:126
msgid "Route Allowed IPs"
-msgstr ""
+msgstr "Engedélyezett IP-k irányítása"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:72
msgid "Route table"
@@ -4580,7 +4601,7 @@ msgstr "Útválasztó tábla"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:59
msgid "Route type"
-msgstr ""
+msgstr "Útvonal típusa"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:620
msgid "Router Advertisement-Service"
@@ -4589,7 +4610,7 @@ msgstr ""
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/password.js:44
#: modules/luci-mod-system/luasrc/controller/admin/system.lua:11
msgid "Router Password"
-msgstr "Router jelszó"
+msgstr "Útválasztó jelszava"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:14
#: modules/luci-mod-status/luasrc/controller/admin/status.lua:16
@@ -4607,7 +4628,7 @@ msgstr ""
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:240
msgid "Rule"
-msgstr ""
+msgstr "Szabály"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:333
msgid "Run a filesystem check before mounting the device"
@@ -4636,11 +4657,11 @@ msgstr "SSH hozzáférés"
#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:70
msgid "SSH server address"
-msgstr ""
+msgstr "SSH-kiszolgáló címe"
#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:74
msgid "SSH server port"
-msgstr ""
+msgstr "SSH-kiszolgáló portja"
#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:58
msgid "SSH username"
@@ -4680,11 +4701,11 @@ msgstr "Mentés & Alkalmazás"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:396
msgid "Save mtdblock"
-msgstr ""
+msgstr "Az mtdblock mentése"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:384
msgid "Save mtdblock contents"
-msgstr ""
+msgstr "Az mtdblock tartalmának mentése"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:732
msgid "Scan"
@@ -4783,11 +4804,11 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:560
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:570
msgid "Setup DHCP Server"
-msgstr "DHCP kiszolgáló beállítása"
+msgstr "DHCP-kiszolgáló beállítása"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/50_dsl.js:30
msgid "Severely Errored Seconds (SES)"
-msgstr ""
+msgstr "Súlyosan hibás másodpercek (SES)"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:70
msgid "Short GI"
@@ -4800,7 +4821,7 @@ msgstr ""
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:431
#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:18
msgid "Show current backup file list"
-msgstr "Mentendő fájlok aktuális listájának megjelenítése"
+msgstr "Jelenlegi biztonsági mentés fájllista megjelenítése"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/iptables.js:99
msgid "Show empty chains"
@@ -4839,7 +4860,7 @@ msgstr "Méret"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js:256
msgid "Size of DNS query cache"
-msgstr ""
+msgstr "A DNS lekérdezési gyorsítótár mérete"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:183
msgid "Size of the ZRam device in megabytes"
@@ -4861,7 +4882,7 @@ msgstr "Ugrás a navigációhoz"
#: modules/luci-base/htdocs/luci-static/resources/network.js:2820
#: modules/luci-compat/luasrc/model/network.lua:1427
msgid "Software VLAN"
-msgstr ""
+msgstr "Szoftveres VLAN"
#: modules/luci-compat/luasrc/view/cbi/header.htm:2
msgid "Some fields are invalid, cannot save values!"
@@ -4893,7 +4914,7 @@ msgstr "Forrás"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:83
msgid "Source Address"
-msgstr ""
+msgstr "Forráscím"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:290
msgid "Specifies the directory the device is attached to"
@@ -4904,15 +4925,16 @@ msgid ""
"Specifies the maximum amount of failed ARP requests until hosts are presumed "
"to be dead"
msgstr ""
-"Megadja a maximális sikertelen ARP kérések számát, amik után a host nem "
-"elérhetőnek tekinthető"
+"Megadja a sikertelen ARP-kérések legnagyobb számát, ami után a gépek "
+"halottnak tekinthetők"
#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:171
msgid ""
"Specifies the maximum amount of seconds after which hosts are presumed to be "
"dead"
msgstr ""
-"Megadja a másodpercek számát, amik után a host nem elérhetőnek tekinthető"
+"Megadja a másodpercek legnagyobb számát, amely után a gép halottnak "
+"tekinthető"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:796
msgid ""
@@ -4942,6 +4964,8 @@ msgid ""
"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
"bytes)."
msgstr ""
+"Egy MTU (Maximum Transmission Unit – legnagyobb átviteli egység) megadása az "
+"alapértelmezettől (1280 bájttól) eltérően."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1873
msgid "Specify the secret encryption key here."
@@ -4959,7 +4983,7 @@ msgstr "Indítás prioritása"
#: modules/luci-base/htdocs/luci-static/resources/ui.js:2669
msgid "Starting configuration apply…"
-msgstr ""
+msgstr "Beállítások alkalmazásának indítása…"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1663
msgid "Starting wireless scan..."
@@ -4998,10 +5022,10 @@ msgid ""
"to DHCP clients. They are also required for non-dynamic interface "
"configurations where only hosts with a corresponding lease are served."
msgstr ""
-"A statikus bérletekkel a DHCP kliensekhez fix IP-címet és hostnevet "
-"rendelhet. Olyan nem dinamikus interfész konfigurációk esetén is "
-"szükségesek, ahol a csak a megfelelő bérlettel rendelkező hosztok kerülnek "
-"kiszolgálásra."
+"A statikus bérleteket a rögzített IP-címek és a szimbolikus gépnevek DHCP "
+"ügyfelekhez történő hozzárendeléséhez használják. Ezek olyan nem dinamikus "
+"csatoló beállításoknál is szükségesek, ahol csak a megfelelő bérlettel "
+"rendelkező gépek kerülnek kiszolgálásra."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1012
msgid "Station inactivity limit"
@@ -5082,11 +5106,11 @@ msgstr "Protokoll váltása"
#: modules/luci-base/htdocs/luci-static/resources/protocol/static.js:104
#: modules/luci-compat/luasrc/view/cbi/ipaddr.htm:26
msgid "Switch to CIDR list notation"
-msgstr ""
+msgstr "Váltás CIDR lista jelölésre"
#: modules/luci-base/htdocs/luci-static/resources/ui.js:1573
msgid "Symbolic link"
-msgstr ""
+msgstr "Szimbolikus hivatkozás"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:72
msgid "Sync with NTP-Server"
@@ -5110,7 +5134,7 @@ msgstr "Rendszernapló"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:100
msgid "System Properties"
-msgstr "Rendszer tulajdonságok"
+msgstr "Rendszer tulajdonságai"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:137
msgid "System log buffer size"
@@ -5160,7 +5184,7 @@ msgstr "Megszakítás"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:83
msgid "The <em>block mount</em> command failed with code %d"
-msgstr ""
+msgstr "A <em>block mount</em> parancs meghiúsult %d kóddal"
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:77
msgid ""
@@ -5191,7 +5215,7 @@ msgstr ""
#: modules/luci-compat/luasrc/view/cbi/error.htm:6
msgid "The configuration file could not be loaded due to the following error:"
-msgstr ""
+msgstr "A beállítófájlt nem sikerült betölteni a következő hiba miatt:"
#: modules/luci-base/htdocs/luci-static/resources/ui.js:2566
msgid ""
@@ -5203,6 +5227,14 @@ msgid ""
"or revert all pending changes to keep the currently working configuration "
"state."
msgstr ""
+"Az eszközt nem sikerült elérni %d másodpercen belül a függőben lévő "
+"változtatások alkalmazása után, ami a beállítások visszaállítását okozta "
+"biztonsági okokból. Ha hisz abban, hogy a beállítások változtatásai ennek "
+"ellenére helyesek, akkor végezze el a beállítások ellenőrizetlen "
+"alkalmazását. Alternatívaként eltüntetheti ezt a figyelmeztetést, és "
+"szerkesztheti a változtatásokat, mielőtt megpróbálja ismét alkalmazni, vagy "
+"visszavonhatja az összes függőben lévő változtatást a jelenleg működő "
+"beállítási állapot megtartásához."
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:278
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:390
@@ -5210,7 +5242,7 @@ msgid ""
"The device file of the memory or partition (<abbr title=\"for example\">e.g."
"</abbr> <code>/dev/sda1</code>)"
msgstr ""
-"A memória vagy partíció eszköz fájlja (<abbr title=\"például\">pl.</abbr> "
+"A memória vagy partíció eszközfájlja (<abbr title=\"például\">pl.</abbr> "
"<code>/dev/sda1</code>)"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:646
@@ -5218,6 +5250,8 @@ msgid ""
"The existing wireless configuration needs to be changed for LuCI to function "
"properly."
msgstr ""
+"A meglévő vezeték nélküli beállítást meg kell változtatni a LuCI-hoz, hogy "
+"megfelelően működjön."
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:211
msgid ""
@@ -5226,7 +5260,7 @@ msgid ""
"\"Proceed\" below to start the flash procedure."
msgstr ""
"A telepítő lemezkép fel lett töltve. Alább található az ellenőrző-összeg és "
-"a fájlméret, hasonlítsa össze az eredeti fájllal, hogy megbizonyosodjon az "
+"a fájlméret. Hasonlítsa össze az eredeti fájllal, hogy megbizonyosodjon az "
"adatok helyességéről.<br />Kattintson a lenti „Folytatás” gombra a "
"telepítési eljárás indításához."
@@ -5286,13 +5320,13 @@ msgid ""
"segments. Often there is by default one Uplink port for a connection to the "
"next greater network like the internet and other ports for a local network."
msgstr ""
-"Az eszközön található hálózati portok kombinálhatók több <abbr title="
-"\"Virtual Local Area Network\">VLAN</abbr>-ba, amelyekben a számítógépek "
-"közvetlenül kommunikálhatnak egmással. A <abbr title=\"Virtual Local Area "
-"Network\">VLAN</abbr>-ok gyakran a hálózati szegmensek elkülönítésére "
-"használják. Gyakran van egy alapértelmezett Uplink port a következő nagyobb "
-"hálózathoz (pl. az internet) való kapcsolódásra és a többi port a helyi "
-"hálózathoz."
+"Az eszközön található hálózati portok kombinálhatók több <abbr title=\""
+"Virtual Local Area Network\">VLAN</abbr>-ba, amelyekben a számítógépek "
+"közvetlenül kommunikálhatnak egymással. A <abbr title=\"Virtual Local Area "
+"Network\">VLAN</abbr>-okat gyakran a hálózati szegmensek elkülönítésére "
+"használják. Gyakran alapértelmezetten van egy kimenő port a következő "
+"nagyobb hálózathoz (például az internethez) való kapcsolódásra és egyéb "
+"portok a helyi hálózathoz."
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:154
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/reboot.js:35
@@ -5341,7 +5375,7 @@ msgstr ""
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:313
msgid "The sysupgrade command failed with code %d"
-msgstr ""
+msgstr "A rendszerfrissítési parancs meghiúsult %d kóddal"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:116
msgid ""
@@ -5349,10 +5383,14 @@ msgid ""
"listed below. Press \"Continue\" to restore the backup and reboot, or "
"\"Cancel\" to abort the operation."
msgstr ""
+"A feltöltött biztonsági mentés archívum érvényesnek tűnik, és az alább "
+"felsorolt fájlokat tartalmazza. Nyomja meg a „Folytatás” gombot a biztonsági "
+"mentés visszaállításához és az újraindításhoz, vagy a „Mégse” gombot a "
+"művelet megszakításához."
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:111
msgid "The uploaded backup archive is not readable"
-msgstr ""
+msgstr "A feltöltött biztonsági mentés archívum nem olvasható"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:240
msgid "The uploaded firmware does not allow keeping current configuration."
@@ -5374,7 +5412,7 @@ msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/ui.js:2684
msgid "There are no changes to apply"
-msgstr ""
+msgstr "Nincsenek alkalmazandó változtatások"
#: themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm:174
#: themes/luci-theme-material/luasrc/view/themes/material/header.htm:212
@@ -5384,9 +5422,8 @@ msgid ""
"There is no password set on this router. Please configure a root password to "
"protect the web interface and enable SSH."
msgstr ""
-"A routeren jelenleg nincs jelszó beállítva. Állítsa be a root felhasználó "
-"jelszavát a felhasználói felület védelme és az SSH elérés engélyezése "
-"érdekében."
+"Nincs jelszó beállítva ezen az útválasztón. Állítson be rendszergazda "
+"jelszót a webes felület védelméhez és az SSH engedélyezéséhez."
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6rd.js:49
msgid "This IPv4 address of the relay"
@@ -5406,6 +5443,9 @@ msgid ""
"'server=1.2.3.4' for domain-specific or full upstream <abbr title=\"Domain "
"Name System\">DNS</abbr> servers."
msgstr ""
+"Ez a fájl olyan sorokat tartalmazhat, mint például „server=/domain/1.2.3.4” "
+"vagy „server=1.2.3.4” a tartományra jellemző vagy teljesen külső <abbr title="
+"\"Domain Name System\">DNS</abbr>-kiszolgálókhoz."
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:416
#: modules/luci-mod-system/luasrc/model/cbi/admin_system/backupfiles.lua:16
@@ -5451,12 +5491,14 @@ msgstr ""
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:73
msgid "This is the plain username for logging into the account"
-msgstr ""
+msgstr "Ez az egyszerű felhasználónév a fiókba történő bejelentkezéshez"
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/6in4.js:57
msgid ""
"This is the prefix routed to you by the tunnel broker for use by clients"
msgstr ""
+"Ez az alagút-közvetítő által Önnek irányított előtag az ügyfelek általi "
+"használathoz"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/crontab.js:25
msgid "This is the system crontab in which scheduled tasks can be defined."
@@ -5507,14 +5549,14 @@ msgid ""
"archive here. To reset the firmware to its initial state, click \"Perform "
"reset\" (only possible with squashfs images)."
msgstr ""
-"Itt tölthet fel egy korábban létrehozott biztonsági mentés archívumot a "
-"konfigurációs fájlok visszaállításához. A firmware kezdeti állapotának "
-"visszaállításához kattintson a \"Visszaállítás végrehajtása\" gombra (csak "
-"squashfs image-ek esetén lehetséges)."
+"A beállítófájlok visszaállításához itt feltölthet egy korábban előállított "
+"biztonsági mentés archívumot. A firmware kezdeti állapotára történő "
+"visszaállításához kattintson a „Visszaállítás végrehajtása” gombra (csak "
+"squashfs lemezképekkel lehetséges)."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:888
msgid "Tone"
-msgstr ""
+msgstr "Tónus"
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js:34
msgid "Total Available"
@@ -5537,7 +5579,7 @@ msgstr "Átvitel"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:99
msgid "Transmit"
-msgstr "Küldés"
+msgstr "Átvitel"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/leds.js:65
msgid "Trigger"
@@ -5560,7 +5602,7 @@ msgstr "Tunnel interfész"
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:55
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/map.js:76
msgid "Tunnel Link"
-msgstr ""
+msgstr "Alagút hivatkozás"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:134
msgid "Tx-Power"
@@ -5686,7 +5728,7 @@ msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/ui.js:2431
msgid "Unsaved Changes"
-msgstr "El nem mentett módosítások"
+msgstr "Mentetlen változtatások"
#: modules/luci-base/htdocs/luci-static/resources/rpc.js:402
msgid "Unspecified error"
@@ -5723,7 +5765,7 @@ msgstr ""
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:165
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js:379
msgid "Upload archive..."
-msgstr "Archívum feltöltése..."
+msgstr "Archívum feltöltése…"
#: modules/luci-base/htdocs/luci-static/resources/ui.js:1725
msgid "Upload file"
@@ -5764,7 +5806,7 @@ msgstr "<code>/etc/ethers</code> használata"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:265
msgid "Use DHCP advertised servers"
-msgstr ""
+msgstr "DHCP által meghirdetett kiszolgálók használata"
#: protocols/luci-proto-relay/htdocs/luci-static/resources/protocol/relay.js:167
msgid "Use DHCP gateway"
@@ -5805,7 +5847,7 @@ msgstr "TTL használata az alagút interfészen"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:292
msgid "Use as external overlay (/overlay)"
-msgstr ""
+msgstr "Használat külső rátétként (/overlay)"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/mounts.js:291
msgid "Use as root filesystem (/)"
@@ -5831,7 +5873,7 @@ msgstr "Beépített IPv6-kezelés használata"
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:80
#: protocols/luci-proto-pppossh/htdocs/luci-static/resources/protocol/pppossh.js:103
msgid "Use custom DNS servers"
-msgstr "Egyedi DNS szerverek használata"
+msgstr "Egyedi DNS-kiszolgálók használata"
#: modules/luci-base/htdocs/luci-static/resources/protocol/dhcp.js:34
#: protocols/luci-proto-3g/htdocs/luci-static/resources/protocol/3g.js:116
@@ -5904,7 +5946,7 @@ msgstr "Felhasználói tanúsítvány (PEM kódolású)"
#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:125
msgid "User key (PEM encoded)"
-msgstr ""
+msgstr "Felhasználói kulcs (PEM kódolású)"
#: modules/luci-base/luasrc/view/sysauth.htm:23
#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:105
@@ -5918,7 +5960,7 @@ msgstr "VC-Mux"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:904
msgid "VDSL"
-msgstr ""
+msgstr "VDSL"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:170
msgid "VLANs on %q"
@@ -5940,7 +5982,7 @@ msgstr "VPN helyi port"
#: protocols/luci-proto-ppp/htdocs/luci-static/resources/protocol/pptp.js:58
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:39
msgid "VPN Server"
-msgstr "VPN kiszolgáló"
+msgstr "VPN-kiszolgáló"
#: protocols/luci-proto-openconnect/htdocs/luci-static/resources/protocol/openconnect.js:99
msgid "VPN Server port"
@@ -5969,7 +6011,7 @@ msgstr "A feltöltött képfájl ellenőrzése."
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:54
msgid "Virtual dynamic interface"
-msgstr ""
+msgstr "Virtuális dinamikus csatoló"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:942
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:943
@@ -6033,6 +6075,9 @@ msgid ""
"R0/R1 key options below are not applied. Disable this to use the R0 and R1 "
"key options."
msgstr ""
+"Egy PSK használatakor a PMK automatikusan előállítható. Ha engedélyezve van, "
+"akkor a lenti R0/R1 kulcsbeállítások nincsenek alkalmazva. Tiltsa le ezt az "
+"R0 és az R1 kulcsbeállítások használatához."
#: modules/luci-compat/luasrc/view/cbi/wireless_modefreq.htm:166
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:386
@@ -6053,14 +6098,14 @@ msgstr "Vezeték nélküli"
#: modules/luci-base/htdocs/luci-static/resources/network.js:2811
#: modules/luci-compat/luasrc/model/network.lua:1418
msgid "Wireless Adapter"
-msgstr "Vezetéknélküli adapter"
+msgstr "Vezeték nélküli adapter"
#: modules/luci-base/htdocs/luci-static/resources/network.js:2790
#: modules/luci-base/htdocs/luci-static/resources/network.js:3994
#: modules/luci-compat/luasrc/model/network.lua:1404
#: modules/luci-compat/luasrc/model/network.lua:1865
msgid "Wireless Network"
-msgstr "Vezetéknélküli hálózat"
+msgstr "Vezeték nélküli hálózat"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:663
msgid "Wireless Overview"
@@ -6072,19 +6117,19 @@ msgstr "Vezeték nélküli biztonság"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:645
msgid "Wireless configuration migration"
-msgstr ""
+msgstr "Vezeték nélküli beállítások költöztetése"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:104
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:142
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:37
msgid "Wireless is disabled"
-msgstr "Vezetéknélküli hálózat le van tiltva"
+msgstr "A vezeték nélküli le van tiltva"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:104
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:142
#: modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js:37
msgid "Wireless is not associated"
-msgstr "Vezetéknélküli hálózat nincs kapcsolódva"
+msgstr "Vezeték nélküli nincs hozzárendelve"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:787
msgid "Wireless network is disabled"
@@ -6100,7 +6145,7 @@ msgstr "Fogadott DNS-kérések írása a rendszernaplóba"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:156
msgid "Write system log to file"
-msgstr ""
+msgstr "Rendszernapló írása fájlba"
#: modules/luci-base/htdocs/luci-static/resources/form.js:1757
#: protocols/luci-proto-vpnc/htdocs/luci-static/resources/protocol/vpnc.js:109
@@ -6142,7 +6187,7 @@ msgstr "ZRam tömörítési algoritmus"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:195
msgid "ZRam Compression Streams"
-msgstr ""
+msgstr "ZRam tömörítési adatfolyamok"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:181
msgid "ZRam Settings"
@@ -6263,11 +6308,11 @@ msgstr "továbbítás"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:81
msgid "full-duplex"
-msgstr "full-duplex"
+msgstr "teljes kétirányú"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:81
msgid "half-duplex"
-msgstr "half-duplex"
+msgstr "váltakozó kétirányú"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:565
msgid "hexadecimal encoded value"
@@ -6281,11 +6326,11 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/routes.js:35
msgid "if target is a network"
-msgstr "ha a cél hálózat"
+msgstr "ha a cél egy hálózat"
#: protocols/luci-proto-ipv6/htdocs/luci-static/resources/protocol/dslite.js:63
msgid "ignore"
-msgstr ""
+msgstr "mellőzés"
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:69
#: modules/luci-base/htdocs/luci-static/resources/tools/widgets.js:190
@@ -6295,7 +6340,7 @@ msgstr "bemenet"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:390
msgid "key between 8 and 63 characters"
-msgstr ""
+msgstr "8 és 63 karakter közötti kulcs"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:402
msgid "key with either 5 or 13 characters"
@@ -6307,7 +6352,7 @@ msgstr "helyi <abbr title=\"Domain Name System\">DNS</abbr>-fájl"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1203
msgid "medium security"
-msgstr ""
+msgstr "közepes biztonság"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1395
msgid "minutes"
@@ -6411,7 +6456,7 @@ msgstr ""
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/switch.js:347
msgid "tagged"
-msgstr "cimkézett"
+msgstr "címkézett"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1378
msgid "time units (TUs / 1.024 ms) [1000-65535]"
@@ -6467,11 +6512,11 @@ msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/validation.js:249
msgid "valid IPv4 address"
-msgstr ""
+msgstr "érvényes IPv4-cím"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:249
msgid "valid IPv4 address or network"
-msgstr ""
+msgstr "érvényes IPv4-cím vagy hálózat"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:369
msgid "valid IPv4 address:port"
@@ -6479,7 +6524,7 @@ msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/validation.js:309
msgid "valid IPv4 network"
-msgstr ""
+msgstr "érvényes IPv4 hálózat"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:271
msgid "valid IPv4 or IPv6 CIDR"
@@ -6503,11 +6548,11 @@ msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/validation.js:299
msgid "valid IPv6 host id"
-msgstr ""
+msgstr "érvényes IPv6 gépazonosító"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:314
msgid "valid IPv6 network"
-msgstr ""
+msgstr "érvényes IPv6 hálózat"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:267
msgid "valid IPv6 prefix value (0-128)"
@@ -6523,7 +6568,7 @@ msgstr "érvényes UCI azonosító"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:357
msgid "valid UCI identifier, hostname or IP address"
-msgstr ""
+msgstr "érvényes UCI-azonosító, gépnév vagy IP-cím"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:378
#: modules/luci-base/htdocs/luci-static/resources/validation.js:381
@@ -6537,7 +6582,7 @@ msgstr ""
#: modules/luci-base/htdocs/luci-static/resources/validation.js:232
msgid "valid decimal value"
-msgstr ""
+msgstr "érvényes decimális érték"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:400
msgid "valid hexadecimal WEP key"
@@ -6558,7 +6603,7 @@ msgstr "érvényes gépnév"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:340
msgid "valid hostname or IP address"
-msgstr ""
+msgstr "érvényes gépnév vagy IP-cím"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:224
msgid "valid integer value"
@@ -6607,7 +6652,7 @@ msgstr "érték %d karakterrel"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:436
msgid "value with at least %d characters"
-msgstr ""
+msgstr "érték legalább %d karakterrel"
#: modules/luci-base/htdocs/luci-static/resources/validation.js:441
msgid "value with at most %d characters"
diff --git a/modules/luci-base/po/pt-br/base.po b/modules/luci-base/po/pt-br/base.po
index ed322f86c..c053dcbf3 100644
--- a/modules/luci-base/po/pt-br/base.po
+++ b/modules/luci-base/po/pt-br/base.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2019-12-09 20:02+0000\n"
+"PO-Revision-Date: 2019-12-13 23:06+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"openwrt/luci/pt_BR/>\n"
@@ -2091,7 +2091,7 @@ msgstr "Configurações do Firewall"
#: modules/luci-mod-status/luasrc/view/admin_status/iptables.htm:44
msgid "Firewall Status"
-msgstr "Estado do Firewall"
+msgstr "Condição do Firewall"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js:913
msgid "Firmware File"
diff --git a/modules/luci-base/po/uk/base.po b/modules/luci-base/po/uk/base.po
index e2d615642..566293904 100644
--- a/modules/luci-base/po/uk/base.po
+++ b/modules/luci-base/po/uk/base.po
@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"PO-Revision-Date: 2019-11-30 21:05+0000\n"
-"Last-Translator: Yurii Petrashko <yuripet@gmail.com>\n"
+"PO-Revision-Date: 2019-12-13 23:06+0000\n"
+"Last-Translator: Сергій Йовенко <s.yovenko@gmail.com>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/openwrt/luci/"
"uk/>\n"
"Language: uk\n"
@@ -1371,7 +1371,7 @@ msgstr "Швидк. передавання"
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:161
#: modules/luci-mod-system/htdocs/luci-static/resources/view/system/system.js:172
msgid "Debug"
-msgstr "Зневаджування"
+msgstr "Відлагодження"
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1218
#: modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js:1242
diff --git a/modules/luci-base/root/usr/share/luci/menu.d/luci-base.json b/modules/luci-base/root/usr/share/luci/menu.d/luci-base.json
new file mode 100644
index 000000000..cdfffb512
--- /dev/null
+++ b/modules/luci-base/root/usr/share/luci/menu.d/luci-base.json
@@ -0,0 +1,142 @@
+{
+ "admin": {
+ "title": "Administration",
+ "order": 10,
+ "action": {
+ "type": "firstchild",
+ "recurse": true
+ },
+ "auth": {
+ "methods": [ "cookie:sysauth" ],
+ "login": true
+ }
+ },
+
+ "admin/status": {
+ "title": "Status",
+ "order": 10,
+ "action": {
+ "type": "firstchild",
+ "preferred": "overview",
+ "recurse": true
+ }
+ },
+
+ "admin/system": {
+ "title": "System",
+ "order": 20,
+ "action": {
+ "type": "firstchild",
+ "preferred": "system",
+ "recurse": true
+ }
+ },
+
+ "admin/vpn": {
+ "title": "VPN",
+ "order": 30,
+ "action": {
+ "type": "firstchild",
+ "recurse": true
+ }
+ },
+
+ "admin/services": {
+ "title": "Services",
+ "order": 40,
+ "action": {
+ "type": "firstchild",
+ "recurse": true
+ }
+ },
+
+ "admin/network": {
+ "title": "Network",
+ "order": 50,
+ "action": {
+ "type": "firstchild",
+ "recurse": true
+ }
+ },
+
+ "admin/translations/*": {
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.index",
+ "function": "action_translations"
+ },
+ "auth": {
+ "methods": [ "cookie:sysauth" ]
+ }
+ },
+
+ "admin/ubus/*": {
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.index",
+ "function": "action_ubus"
+ },
+ "auth": {}
+ },
+
+ "admin/logout": {
+ "title": "Logout",
+ "order": 999,
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.index",
+ "function": "action_logout"
+ }
+ },
+
+ "admin/uci": {
+ "action": {
+ "type": "firstchild"
+ }
+ },
+
+ "admin/uci/revert": {
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.uci",
+ "function": "action_revert",
+ "post": true
+ }
+ },
+
+ "admin/uci/apply_rollback": {
+ "cors": true,
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.uci",
+ "function": "action_apply_rollback",
+ "post": true
+ },
+ "auth": {
+ "methods": [ "cookie:sysauth" ]
+ }
+ },
+
+ "admin/uci/apply_unchecked": {
+ "cors": true,
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.uci",
+ "function": "action_apply_unchecked",
+ "post": true
+ },
+ "auth": {
+ "methods": [ "cookie:sysauth" ]
+ }
+ },
+
+ "admin/uci/confirm": {
+ "cors": true,
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.uci",
+ "function": "action_confirm"
+ },
+ "auth": {}
+ }
+}
diff --git a/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json b/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json
index 50ddc299f..e215cf945 100644
--- a/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json
+++ b/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json
@@ -38,7 +38,16 @@
"/proc/sys/kernel/hostname": [ "read" ],
"/proc/sys/net/netfilter/nf_conntrack_*": [ "read" ],
"/proc/mounts": [ "read" ],
- "/usr/lib/lua/luci/version.lua": [ "read" ]
+ "/usr/lib/lua/luci/version.lua": [ "read" ],
+ "/bin/ping *": [ "exec" ],
+ "/bin/ping6 *": [ "exec" ],
+ "/bin/traceroute *": [ "exec" ],
+ "/bin/traceroute6 *": [ "exec" ],
+ "/usr/bin/ping *": [ "exec" ],
+ "/usr/bin/ping6 *": [ "exec" ],
+ "/usr/bin/traceroute *": [ "exec" ],
+ "/usr/bin/traceroute6 *": [ "exec" ],
+ "/usr/bin/nslookup *": [ "exec" ]
},
"ubus": {
"file": [ "list", "read", "stat" ],
diff --git a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js
index ab6779e14..9f1f8dc57 100644
--- a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js
+++ b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js
@@ -2,8 +2,9 @@
'require rpc';
'require uci';
'require form';
+'require validation';
-var callHostHints, callDUIDHints, callDHCPLeases, CBILeaseStatus;
+var callHostHints, callDUIDHints, callDHCPLeases, CBILeaseStatus, CBILease6Status;
callHostHints = rpc.declare({
object: 'luci-rpc',
@@ -20,8 +21,7 @@ callDUIDHints = rpc.declare({
callDHCPLeases = rpc.declare({
object: 'luci-rpc',
method: 'getDHCPLeases',
- params: [ 'family' ],
- expect: { dhcp_leases: [] }
+ expect: { '': {} }
});
CBILeaseStatus = form.DummyValue.extend({
@@ -43,6 +43,86 @@ CBILeaseStatus = form.DummyValue.extend({
}
});
+CBILease6Status = form.DummyValue.extend({
+ renderWidget: function(section_id, option_id, cfgvalue) {
+ return E([
+ E('h4', _('Active DHCPv6 Leases')),
+ E('div', { 'id': 'lease6_status_table', 'class': 'table' }, [
+ E('div', { 'class': 'tr table-titles' }, [
+ E('div', { 'class': 'th' }, _('Host')),
+ E('div', { 'class': 'th' }, _('IPv6-Address')),
+ E('div', { 'class': 'th' }, _('DUID')),
+ E('div', { 'class': 'th' }, _('Leasetime remaining'))
+ ]),
+ E('div', { 'class': 'tr placeholder' }, [
+ E('div', { 'class': 'td' }, E('em', _('Collecting data...')))
+ ])
+ ])
+ ]);
+ }
+});
+
+function validateHostname(sid, s) {
+ if (s.length > 256)
+ return _('Expecting: %s').format(_('valid hostname'));
+
+ var labels = s.replace(/^\.+|\.$/g, '').split(/\./);
+
+ for (var i = 0; i < labels.length; i++)
+ if (!labels[i].match(/^[a-z0-9_](?:[a-z0-9-]{0,61}[a-z0-9])?$/i))
+ return _('Expecting: %s').format(_('valid hostname'));
+
+ return true;
+}
+
+function validateAddressList(sid, s) {
+ if (s == null || s == '')
+ return true;
+
+ var m = s.match(/^\/(.+)\/$/),
+ names = m ? m[1].split(/\//) : [ s ];
+
+ for (var i = 0; i < names.length; i++) {
+ var res = validateHostname(sid, names[i]);
+
+ if (res !== true)
+ return res;
+ }
+
+ return true;
+}
+
+function validateServerSpec(sid, s) {
+ if (s == null || s == '')
+ return true;
+
+ var m = s.match(/^\/(.+)\/(.*)$/);
+ if (!m)
+ return _('Expecting: %s').format(_('valid hostname'));
+
+ var res = validateAddressList(sid, m[1]);
+ if (res !== true)
+ return res;
+
+ if (m[2] == '' || m[2] == '#')
+ return true;
+
+ // ipaddr%scopeid#srvport@source@interface#srcport
+
+ m = m[2].match(/^([0-9a-f:.]+)(?:%[^#@]+)?(?:#(\d+))?(?:@([0-9a-f:.]+)(?:@[^#]+)?(?:#(\d+))?)?$/);
+
+ if (!m)
+ return _('Expecting: %s').format(_('valid IP address'));
+ else if (validation.parseIPv4(m[1]) && m[3] != null && !validation.parseIPv4(m[3]))
+ return _('Expecting: %s').format(_('valid IPv4 address'));
+ else if (validation.parseIPv6(m[1]) && m[3] != null && !validation.parseIPv6(m[3]))
+ return _('Expecting: %s').format(_('valid IPv6 address'));
+ else if ((m[2] != null && +m[2] > 65535) || (m[4] != null && +m[4] > 65535))
+ return _('Expecting: %s').format(_('valid port value'));
+
+ return true;
+}
+
return L.view.extend({
load: function() {
return Promise.all([
@@ -52,7 +132,8 @@ return L.view.extend({
},
render: function(hosts_duids) {
- var hosts = hosts_duids[0],
+ var has_dhcpv6 = L.hasSystemFeature('dnsmasq', 'dhcpv6') || L.hasSystemFeature('odhcpd'),
+ hosts = hosts_duids[0],
duids = hosts_duids[1],
m, s, o, ss, so;
@@ -182,6 +263,7 @@ return L.view.extend({
o.optional = true;
o.placeholder = '/example.org/10.1.2.3';
+ o.validate = validateServerSpec;
o = s.taboption('general', form.Flag, 'rebind_protection',
@@ -204,8 +286,8 @@ return L.view.extend({
o.optional = true;
o.depends('rebind_protection', '1');
- o.datatype = 'host(1)';
o.placeholder = 'ihost.netflix.com';
+ o.validate = validateAddressList;
o = s.taboption('advanced', form.Value, 'port',
@@ -288,6 +370,7 @@ return L.view.extend({
o = s.taboption('general', form.Flag, 'nonwildcard',
_('Non-wildcard'),
_('Bind dynamically to interfaces rather than wildcard address (recommended as linux default)'));
+ o.default = o.enabled;
o.optional = false;
o.rmempty = true;
@@ -399,9 +482,15 @@ return L.view.extend({
o = s.taboption('leases', CBILeaseStatus, '__status__');
+ if (has_dhcpv6)
+ o = s.taboption('leases', CBILease6Status, '__status6__');
+
return m.render().then(function(mapEl) {
L.Poll.add(function() {
- return callDHCPLeases(4).then(function(leases) {
+ return callDHCPLeases().then(function(leaseinfo) {
+ var leases = Array.isArray(leaseinfo.dhcp_leases) ? leaseinfo.dhcp_leases : [],
+ leases6 = Array.isArray(leaseinfo.dhcp6_leases) ? leaseinfo.dhcp6_leases : [];
+
cbi_update_table(mapEl.querySelector('#lease_status_table'),
leases.map(function(lease) {
var exp;
@@ -421,6 +510,39 @@ return L.view.extend({
];
}),
E('em', _('There are no active leases')));
+
+ if (has_dhcpv6) {
+ cbi_update_table(mapEl.querySelector('#lease6_status_table'),
+ leases6.map(function(lease) {
+ var exp;
+
+ if (lease.expires === false)
+ exp = E('em', _('unlimited'));
+ else if (lease.expires <= 0)
+ exp = E('em', _('expired'));
+ else
+ exp = '%t'.format(lease.expires);
+
+ var hint = lease.macaddr ? hosts[lease.macaddr] : null,
+ name = hint ? (hint.name || hint.ipv4 || hint.ipv6) : null,
+ host = null;
+
+ if (name && lease.hostname && lease.hostname != name && lease.ip6addr != name)
+ host = '%s (%s)'.format(lease.hostname, name);
+ else if (lease.hostname)
+ host = lease.hostname;
+ else if (name)
+ host = name;
+
+ return [
+ host || '-',
+ lease.ip6addrs ? lease.ip6addrs.join(' ') : lease.ip6addr,
+ lease.duid,
+ exp
+ ];
+ }),
+ E('em', _('There are no active leases')));
+ }
});
});
diff --git a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js
new file mode 100644
index 000000000..ee2a46615
--- /dev/null
+++ b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js
@@ -0,0 +1,137 @@
+'use strict';
+'require fs';
+'require ui';
+'require uci';
+
+return L.view.extend({
+ handleCommand: function(exec, args) {
+ var buttons = document.querySelectorAll('.diag-action > .cbi-button');
+
+ for (var i = 0; i < buttons.length; i++)
+ buttons[i].setAttribute('disabled', 'true');
+
+ return fs.exec(exec, args).then(function(res) {
+ var out = document.querySelector('.command-output');
+ out.style.display = '';
+
+ L.dom.content(out, [ res.stdout || '', res.stderr || '' ]);
+ }).catch(function(err) {
+ ui.addNotification(null, E('p', [ err ]))
+ }).finally(function() {
+ for (var i = 0; i < buttons.length; i++)
+ buttons[i].removeAttribute('disabled');
+ });
+ },
+
+ handlePing: function(ev, cmd) {
+ var exec = cmd || 'ping',
+ addr = ev.currentTarget.parentNode.previousSibling.value,
+ args = (exec == 'ping') ? [ '-c', '5', '-W', '1', addr ] : [ '-c', '5', addr ];
+
+ return this.handleCommand(exec, args);
+ },
+
+ handleTraceroute: function(ev, cmd) {
+ var exec = cmd || 'traceroute',
+ addr = ev.currentTarget.parentNode.previousSibling.value,
+ args = (exec == 'traceroute') ? [ '-q', '1', '-w', '1', '-n', addr ] : [ '-q', '1', '-w', '2', '-n', addr ];
+
+ return this.handleCommand(exec, args);
+ },
+
+ handleNslookup: function(ev, cmd) {
+ var addr = ev.currentTarget.parentNode.previousSibling.value;
+
+ return this.handleCommand('nslookup', [ addr ]);
+ },
+
+ load: function() {
+ return Promise.all([
+ L.resolveDefault(fs.stat('/bin/ping6'), {}),
+ L.resolveDefault(fs.stat('/usr/bin/ping6'), {}),
+ L.resolveDefault(fs.stat('/bin/traceroute6'), {}),
+ L.resolveDefault(fs.stat('/usr/bin/traceroute6'), {}),
+ uci.load('luci')
+ ]);
+ },
+
+ render: function(res) {
+ var has_ping6 = res[0].path || res[1].path,
+ has_traceroute6 = res[2].path || res[3].path,
+ dns_host = uci.get('luci', 'diag', 'dns') || 'openwrt.org',
+ ping_host = uci.get('luci', 'diag', 'ping') || 'openwrt.org',
+ route_host = uci.get('luci', 'diag', 'route') || 'openwrt.org';
+
+ return E([], [
+ E('h2', {}, [ _('Network Utilities') ]),
+ E('div', { 'class': 'table' }, [
+ E('div', { 'class': 'tr' }, [
+ E('div', { 'class': 'td left' }, [
+ E('input', {
+ 'style': 'margin:5px 0',
+ 'type': 'text',
+ 'value': ping_host
+ }),
+ E('span', { 'class': 'diag-action' }, [
+ has_ping6 ? new ui.ComboButton('ping', {
+ 'ping': '%s %s'.format(_('IPv4'), _('Ping')),
+ 'ping6': '%s %s'.format(_('IPv6'), _('Ping')),
+ }, {
+ 'click': ui.createHandlerFn(this, 'handlePing'),
+ 'classes': {
+ 'ping': 'cbi-button cbi-button-action',
+ 'ping6': 'cbi-button cbi-button-action'
+ }
+ }).render() : E('button', {
+ 'class': 'cbi-button cbi-button-action',
+ 'click': ui.createHandlerFn(this, 'handlePing')
+ }, [ _('Ping') ])
+ ])
+ ]),
+
+ E('div', { 'class': 'td left' }, [
+ E('input', {
+ 'style': 'margin:5px 0',
+ 'type': 'text',
+ 'value': route_host
+ }),
+ E('span', { 'class': 'diag-action' }, [
+ has_traceroute6 ? new ui.ComboButton('traceroute', {
+ 'traceroute': '%s %s'.format(_('IPv4'), _('Traceroute')),
+ 'traceroute6': '%s %s'.format(_('IPv6'), _('Traceroute')),
+ }, {
+ 'click': ui.createHandlerFn(this, 'handleTraceroute'),
+ 'classes': {
+ 'traceroute': 'cbi-button cbi-button-action',
+ 'traceroute6': 'cbi-button cbi-button-action'
+ }
+ }).render() : E('button', {
+ 'class': 'cbi-button cbi-button-action',
+ 'click': ui.createHandlerFn(this, 'handleTraceroute')
+ }, [ _('Traceroute') ])
+ ])
+ ]),
+
+ E('div', { 'class': 'td left' }, [
+ E('input', {
+ 'style': 'margin:5px 0',
+ 'type': 'text',
+ 'value': dns_host
+ }),
+ E('span', { 'class': 'diag-action' }, [
+ E('button', {
+ 'class': 'cbi-button cbi-button-action',
+ 'click': ui.createHandlerFn(this, 'handleNslookup')
+ }, [ _('Nslookup') ])
+ ])
+ ])
+ ])
+ ]),
+ E('pre', { 'class': 'command-output', 'style': 'display:none' })
+ ]);
+ },
+
+ handleSaveApply: null,
+ handleSave: null,
+ handleReset: null
+});
diff --git a/modules/luci-mod-network/luasrc/controller/admin/network.lua b/modules/luci-mod-network/luasrc/controller/admin/network.lua
index bd00235fa..109c59f2a 100644
--- a/modules/luci-mod-network/luasrc/controller/admin/network.lua
+++ b/modules/luci-mod-network/luasrc/controller/admin/network.lua
@@ -4,63 +4,6 @@
module("luci.controller.admin.network", package.seeall)
-function index()
- local page
-
--- if page.inreq then
- page = entry({"admin", "network", "switch"}, view("network/switch"), _("Switch"), 20)
- page.uci_depends = { network = { ["@switch[0]"] = "switch" } }
-
- page = entry({"admin", "network", "wireless"}, view("network/wireless"), _('Wireless'), 15)
- page.uci_depends = { wireless = { ["@wifi-device[0]"] = "wifi-device" } }
- page.leaf = true
-
- page = entry({"admin", "network", "remote_addr"}, call("remote_addr"), nil)
- page.leaf = true
-
- page = entry({"admin", "network", "network"}, view("network/interfaces"), _("Interfaces"), 10)
- page.leaf = true
- page.subindex = true
-
- page = node("admin", "network", "dhcp")
- page.uci_depends = { dhcp = true }
- page.target = view("network/dhcp")
- page.title = _("DHCP and DNS")
- page.order = 30
-
- page = node("admin", "network", "hosts")
- page.uci_depends = { dhcp = true }
- page.target = view("network/hosts")
- page.title = _("Hostnames")
- page.order = 40
-
- page = node("admin", "network", "routes")
- page.target = view("network/routes")
- page.title = _("Static Routes")
- page.order = 50
-
- page = node("admin", "network", "diagnostics")
- page.target = template("admin_network/diagnostics")
- page.title = _("Diagnostics")
- page.order = 60
-
- page = entry({"admin", "network", "diag_ping"}, post("diag_ping"), nil)
- page.leaf = true
-
- page = entry({"admin", "network", "diag_nslookup"}, post("diag_nslookup"), nil)
- page.leaf = true
-
- page = entry({"admin", "network", "diag_traceroute"}, post("diag_traceroute"), nil)
- page.leaf = true
-
- page = entry({"admin", "network", "diag_ping6"}, post("diag_ping6"), nil)
- page.leaf = true
-
- page = entry({"admin", "network", "diag_traceroute6"}, post("diag_traceroute6"), nil)
- page.leaf = true
--- end
-end
-
local function addr2dev(addr, src)
local ip = require "luci.ip"
local route = ip.route(addr, src)
@@ -123,45 +66,3 @@ function remote_addr()
luci.http.prepare_content("application/json")
luci.http.write_json(result)
end
-
-function diag_command(cmd, addr)
- if addr and addr:match("^[a-zA-Z0-9%-%.:_]+$") then
- luci.http.prepare_content("text/plain")
-
- local util = io.popen(cmd % luci.util.shellquote(addr))
- if util then
- while true do
- local ln = util:read("*l")
- if not ln then break end
- luci.http.write(ln)
- luci.http.write("\n")
- end
-
- util:close()
- end
-
- return
- end
-
- luci.http.status(500, "Bad address")
-end
-
-function diag_ping(addr)
- diag_command("ping -c 5 -W 1 %s 2>&1", addr)
-end
-
-function diag_traceroute(addr)
- diag_command("traceroute -q 1 -w 1 -n %s 2>&1", addr)
-end
-
-function diag_nslookup(addr)
- diag_command("nslookup %s 2>&1", addr)
-end
-
-function diag_ping6(addr)
- diag_command("ping6 -c 5 %s 2>&1", addr)
-end
-
-function diag_traceroute6(addr)
- diag_command("traceroute6 -q 1 -w 2 -n %s 2>&1", addr)
-end
diff --git a/modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm b/modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm
deleted file mode 100644
index 03dd5aab2..000000000
--- a/modules/luci-mod-network/luasrc/view/admin_network/diagnostics.htm
+++ /dev/null
@@ -1,117 +0,0 @@
-<%#
- Copyright 2010 Jo-Philipp Wich <jow@openwrt.org>
- Licensed to the public under the Apache License 2.0.
--%>
-
-<%+header%>
-
-<%
-local fs = require "nixio.fs"
-local has_ping6 = fs.access("/bin/ping6") or fs.access("/usr/bin/ping6")
-local has_traceroute6 = fs.access("/bin/traceroute6") or fs.access("/usr/bin/traceroute6")
-
-local dns_host = luci.config.diag and luci.config.diag.dns or "dev.openwrt.org"
-local ping_host = luci.config.diag and luci.config.diag.ping or "dev.openwrt.org"
-local route_host = luci.config.diag and luci.config.diag.route or "dev.openwrt.org"
-%>
-
-<script type="text/javascript">//<![CDATA[
- var stxhr = new XHR();
-
- function update_status(field, proto)
- {
- var tool = field.name;
- var addr = field.value;
- var protocol = proto ? "6" : "";
-
- var legend = document.getElementById('diag-rc-legend');
- var output = document.getElementById('diag-rc-output');
-
- if (legend && output)
- {
- output.innerHTML =
- '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> ' +
- '<%:Waiting for command to complete...%>'
- ;
-
- legend.parentNode.style.display = 'block';
- legend.style.display = 'inline';
-
- stxhr.post('<%=url('admin/network')%>/diag_' + tool + protocol + '/' + addr, { token: '<%=token%>' },
- function(x)
- {
- if (x.responseText)
- {
- legend.style.display = 'none';
- output.innerHTML = String.format('<pre>%h</pre>', x.responseText);
- }
- else
- {
- legend.style.display = 'none';
- output.innerHTML = '<span class="error"><%:Bad address specified!%></span>';
- }
- }
- );
- }
- }
-//]]></script>
-
-<form method="post" action="<%=url('admin/network/diagnostics')%>">
- <div class="cbi-map">
- <h2 name="content"><%:Diagnostics%></h2>
-
- <div class="cbi-section">
- <legend><%:Network Utilities%></legend>
-
- <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 %>
- <span>
- <select name="ping_proto" style="width:auto">
- <option value="" selected="selected"><%:IPv4%></option>
- <option value="6"><%:IPv6%></option>
- </select>
- </span>
- <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 class="td left">
- <input style="margin: 5px 0" type="text" value="<%=route_host%>" name="traceroute" /><br />
- <% if has_traceroute6 then %>
- <span>
- <select name="traceroute_proto" style="width:auto">
- <option value="" selected="selected"><%:IPv4%></option>
- <option value="6"><%:IPv6%></option>
- </select>
- </span>
- <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 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>
- </div>
- </div>
- </div>
- </div>
-
- <div class="cbi-section" style="display:none">
- <strong id="diag-rc-legend"></strong>
- <span id="diag-rc-output"></span>
- </div>
-</form>
-
-<%+footer%>
diff --git a/modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json b/modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json
new file mode 100644
index 000000000..670f2c1a4
--- /dev/null
+++ b/modules/luci-mod-network/root/usr/share/luci/menu.d/luci-mod-network.json
@@ -0,0 +1,85 @@
+{
+ "admin/network/switch": {
+ "title": "Switch",
+ "order": 20,
+ "action": {
+ "type": "view",
+ "path": "network/switch"
+ },
+ "depends": {
+ "fs": { "/sbin/swconfig": "executable" },
+ "uci": { "network": { "@switch": true } }
+ }
+ },
+
+ "admin/network/wireless": {
+ "title": "Wireless",
+ "order": 15,
+ "action": {
+ "type": "view",
+ "path": "network/wireless"
+ },
+ "depends": {
+ "uci": { "wireless": { "@wifi-device": true } }
+ }
+ },
+
+ "admin/network/remote_addr/*": {
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.network",
+ "function": "remote_addr"
+ }
+ },
+
+ "admin/network/network": {
+ "title": "Interfaces",
+ "order": 10,
+ "action": {
+ "type": "view",
+ "path": "network/interfaces"
+ }
+ },
+
+ "admin/network/dhcp": {
+ "title": "DHCP and DNS",
+ "order": 30,
+ "action": {
+ "type": "view",
+ "path": "network/dhcp"
+ },
+ "depends": {
+ "uci": { "dhcp": true }
+ }
+ },
+
+ "admin/network/hosts": {
+ "title": "Hostnames",
+ "order": 40,
+ "action": {
+ "type": "view",
+ "path": "network/hosts"
+ },
+ "depends": {
+ "uci": { "dhcp": true }
+ }
+ },
+
+ "admin/network/routes": {
+ "title": "Static Routes",
+ "order": 50,
+ "action": {
+ "type": "view",
+ "path": "network/routes"
+ }
+ },
+
+ "admin/network/diagnostics": {
+ "title": "Diagnostics",
+ "order": 60,
+ "action": {
+ "type": "view",
+ "path": "network/diagnostics"
+ }
+ }
+}
diff --git a/modules/luci-mod-status/luasrc/controller/admin/status.lua b/modules/luci-mod-status/luasrc/controller/admin/status.lua
index 6f8414922..2684bdf71 100644
--- a/modules/luci-mod-status/luasrc/controller/admin/status.lua
+++ b/modules/luci-mod-status/luasrc/controller/admin/status.lua
@@ -4,30 +4,6 @@
module("luci.controller.admin.status", package.seeall)
-function index()
- local page
-
- entry({"admin", "status", "overview"}, template("admin_status/index"), _("Overview"), 1)
-
- entry({"admin", "status", "iptables"}, template("admin_status/iptables"), _("Firewall"), 2).leaf = true
- entry({"admin", "status", "iptables_dump"}, call("dump_iptables")).leaf = true
- entry({"admin", "status", "iptables_action"}, post("action_iptables")).leaf = true
-
- entry({"admin", "status", "routes"}, template("admin_status/routes"), _("Routes"), 3)
- entry({"admin", "status", "syslog"}, call("action_syslog"), _("System Log"), 4)
- entry({"admin", "status", "dmesg"}, call("action_dmesg"), _("Kernel Log"), 5)
- entry({"admin", "status", "processes"}, view("status/processes"), _("Processes"), 6)
-
- entry({"admin", "status", "realtime"}, alias("admin", "status", "realtime", "load"), _("Realtime Graphs"), 7)
-
- entry({"admin", "status", "realtime", "load"}, view("status/load"), _("Load"), 1)
- entry({"admin", "status", "realtime", "bandwidth"}, view("status/bandwidth"), _("Traffic"), 2)
- entry({"admin", "status", "realtime", "wireless"}, view("status/wireless"), _("Wireless"), 3).uci_depends = { wireless = true }
- entry({"admin", "status", "realtime", "connections"}, view("status/connections"), _("Connections"), 4)
-
- entry({"admin", "status", "nameinfo"}, call("action_nameinfo")).leaf = true
-end
-
function action_syslog()
local syslog = luci.sys.syslog()
luci.template.render("admin_status/syslog", {syslog=syslog})
diff --git a/modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json b/modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json
new file mode 100644
index 000000000..03f7dce3b
--- /dev/null
+++ b/modules/luci-mod-status/root/usr/share/luci/menu.d/luci-mod-status.json
@@ -0,0 +1,129 @@
+{
+ "admin/status/overview": {
+ "title": "Overview",
+ "order": 1,
+ "action": {
+ "type": "template",
+ "path": "admin_status/index"
+ }
+ },
+
+ "admin/status/iptables/*": {
+ "title": "Firewall",
+ "order": 2,
+ "action": {
+ "type": "template",
+ "path": "admin_status/iptables"
+ }
+ },
+
+ "admin/status/iptables_dump/*": {
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.status",
+ "function": "dump_iptables"
+ }
+ },
+
+ "admin/status/iptables_action/*": {
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.status",
+ "function": "action_iptables"
+ }
+ },
+
+ "admin/status/routes": {
+ "title": "Routes",
+ "order": 3,
+ "action": {
+ "type": "template",
+ "path": "admin_status/routes"
+ }
+ },
+
+ "admin/status/syslog": {
+ "title": "System Log",
+ "order": 4,
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.status",
+ "function": "action_syslog"
+ }
+ },
+
+ "admin/status/dmesg": {
+ "title": "Kernel Log",
+ "order": 5,
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.status",
+ "function": "action_dmesg"
+ }
+ },
+
+ "admin/status/processes": {
+ "title": "Processes",
+ "order": 6,
+ "action": {
+ "type": "view",
+ "path": "status/processes"
+ }
+ },
+
+ "admin/status/realtime": {
+ "title": "Realtime Graphs",
+ "order": 7,
+ "action": {
+ "type": "alias",
+ "path": "admin/status/realtime/load"
+ }
+ },
+
+ "admin/status/realtime/load": {
+ "title": "Load",
+ "order": 1,
+ "action": {
+ "type": "view",
+ "path": "status/load"
+ }
+ },
+
+ "admin/status/realtime/bandwidth": {
+ "title": "Traffic",
+ "order": 2,
+ "action": {
+ "type": "view",
+ "path": "status/bandwidth"
+ }
+ },
+
+ "admin/status/realtime/wireless": {
+ "title": "Wireless",
+ "order": 3,
+ "action": {
+ "type": "view",
+ "path": "status/wireless"
+ },
+ "depends": {
+ "uci": { "wireless": { "@wifi-device": true } }
+ }
+ },
+
+ "admin/status/realtime/connections": {
+ "title": "Connections",
+ "order": 4,
+ "action": {
+ "type": "view",
+ "path": "status/connections"
+ }
+ },
+
+ "admin/status/nameinfo/*": {
+ "action": {
+ "type": "call",
+ "module": "luci.controller.admin.status",
+ "function": "action_nameinfo"
+ }
+ }
+}