diff options
Diffstat (limited to 'modules')
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> </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" + } + } +} |