diff options
Diffstat (limited to 'applications/luci-app-travelmate')
20 files changed, 1638 insertions, 125 deletions
diff --git a/applications/luci-app-travelmate/Makefile b/applications/luci-app-travelmate/Makefile index f4b1b0a4e3..6170f9d4c3 100644 --- a/applications/luci-app-travelmate/Makefile +++ b/applications/luci-app-travelmate/Makefile @@ -1,11 +1,11 @@ -# -# This is free software, licensed under the Apache License, Version 2.0 . +# Copyright 2017 Dirk Brenken (dev@brenken.org) +# This is free software, licensed under the Apache License, Version 2.0 # include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for Travelmate -LUCI_DEPENDS:=+travelmate +LUCI_DEPENDS:=+travelmate +luci-lib-jsonc LUCI_PKGARCH:=all include ../../luci.mk diff --git a/applications/luci-app-travelmate/luasrc/controller/travelmate.lua b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua index 27c19c4e52..a418a8ec61 100644 --- a/applications/luci-app-travelmate/luasrc/controller/travelmate.lua +++ b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua @@ -1,11 +1,35 @@ --- Licensed to the public under the Apache License 2.0. +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 module("luci.controller.travelmate", package.seeall) +local fs = require("nixio.fs") +local util = require("luci.util") +local i18n = require("luci.i18n") +local templ = require("luci.template") + function index() if not nixio.fs.access("/etc/config/travelmate") then return end + entry({"admin", "services", "travelmate"}, firstchild(), _("Travelmate"), 40).dependent = false + entry({"admin", "services", "travelmate", "tab_from_cbi"}, cbi("travelmate/overview_tab", {hideresetbtn=true, hidesavebtn=true}), _("Overview"), 10).leaf = true + entry({"admin", "services", "travelmate", "stations"}, template("travelmate/stations"), _("Wireless Stations"), 20).leaf = true + entry({"admin", "services", "travelmate", "logfile"}, call("logread"), _("View Logfile"), 30).leaf = true + entry({"admin", "services", "travelmate", "advanced"}, firstchild(), _("Advanced"), 100) + entry({"admin", "services", "travelmate", "advanced", "configuration"}, cbi("travelmate/configuration_tab"), _("Edit Travelmate Configuration"), 110).leaf = true + entry({"admin", "services", "travelmate", "advanced", "cfg_wireless"}, cbi("travelmate/cfg_wireless_tab"), _("Edit Wireless Configuration"), 120).leaf = true + entry({"admin", "services", "travelmate", "advanced", "cfg_network"}, cbi("travelmate/cfg_network_tab"), _("Edit Network Configuration"), 130).leaf = true + entry({"admin", "services", "travelmate", "advanced", "cfg_firewall"}, cbi("travelmate/cfg_firewall_tab"), _("Edit Firewall Configuration"), 140).leaf = true + + entry({"admin", "services", "travelmate", "wifiscan"}, template("travelmate/wifi_scan")).leaf = true + entry({"admin", "services", "travelmate", "wifiadd"}, cbi("travelmate/wifi_add", {hideresetbtn=true, hidesavebtn=true})).leaf = true + entry({"admin", "services", "travelmate", "wifiedit"}, cbi("travelmate/wifi_edit", {hideresetbtn=true, hidesavebtn=true})).leaf = true + entry({"admin", "services", "travelmate", "wifidelete"}, cbi("travelmate/wifi_delete", {hideresetbtn=true, hidesavebtn=true})).leaf = true + entry({"admin", "services", "travelmate", "wifiorder"}, cbi("travelmate/wifi_order", {hideresetbtn=true, hidesavebtn=true})).leaf = true +end - entry({"admin", "services", "travelmate"}, cbi("travelmate"), _("Travelmate"), 60) +function logread() + local logfile = util.trim(util.exec("logread -e 'travelmate'")) + templ.render("travelmate/logread", {title = i18n.translate("Travelmate Logfile"), content = logfile}) end diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua deleted file mode 100644 index fa44d4b523..0000000000 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua +++ /dev/null @@ -1,53 +0,0 @@ --- Licensed to the public under the Apache License 2.0. - -m = Map("travelmate", translate("Travelmate"), - translate("Configuration of the Travelmate package to enable travel router functionality. ") .. [[</p>]] .. - translate("Brief advice: Create a wwan interface, configure it to use dhcp and " .. - "add it to the wan zone in firewall. Create the wifi interfaces to be used ('client' mode, " .. - "assigned to wwan network, left as disabled). Travelmate will try " .. - "to connect to the known wifi client interfaces in the defined order. ") .. - [[<a href="https://github.com/openwrt/packages/tree/master/net/travelmate/files/README.md" target="_blank">]] - .. translate("Link to detailed advice") - .. [[</a>]] ) - --- General options - -s = m:section(NamedSection, "global", "travelmate", translate("Global options")) - -o = s:option(Flag, "trm_enabled", translate("Enable Travelmate")) -o.rmempty = false -o.default = 0 - -o = s:option(Value, "trm_maxwait", translate("Max. timeout in seconds for wlan interface reload"), - translate("Default 20, range 10-60")) -o.rmempty = false -o.default = 20 -o.datatype = "range(10,60)" - -o = s:option(Value, "trm_maxretry", translate("Max. number of connection retries to an uplink"), - translate("Default 3, range 1-10")) -o.rmempty = false -o.default = 3 -o.datatype = "range(1,10)" - --- Extra options - -e = m:section(NamedSection, "global", "travelmate", translate("Extra options")) - -a = e:option(Flag, "trm_debug", translate("Debug logging")) -a.rmempty = true -a.default = a.disabled - -a = e:option(Value, "trm_iface", translate("Restrict reload trigger to certain interface(s)"), - translate("Space separated list of wwan interfaces that trigger reload action. To disable reload trigger set it to 'false'. Default: empty")) -a.rmempty = true -a.default = "" -a.datatype = "uciname" - -a = e:option(Flag, "trm_iw", translate("Use iw for scanning"), - translate("Disable this if you want to use iwinfo instead of iw")) -a.rmempty = true -a.default = a.enabled - -return m - diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua new file mode 100644 index 0000000000..e5a048fa88 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua @@ -0,0 +1,37 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local fs = require("nixio.fs") +local util = require("luci.util") +local trminput = "/etc/config/firewall" + +if not nixio.fs.access(trminput) then + m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) + return m +end + +m = SimpleForm("input", nil) +m:append(Template("travelmate/config_css")) +m.submit = translate("Save") +m.reset = false + +s = m:section(SimpleSection, nil, + translate("This form allows you to modify the content of the main firewall configuration file (/etc/config/firewall).")) + +f = s:option(TextValue, "data") +f.rows = 20 +f.rmempty = true + +function f.cfgvalue() + return nixio.fs.readfile(trminput) or "" +end + +function f.write(self, section, data) + return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") +end + +function s.handle(self, state, data) + return true +end + +return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua new file mode 100644 index 0000000000..0096d6a8c2 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua @@ -0,0 +1,37 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local fs = require("nixio.fs") +local util = require("luci.util") +local trminput = "/etc/config/network" + +if not nixio.fs.access(trminput) then + m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) + return m +end + +m = SimpleForm("input", nil) +m:append(Template("travelmate/config_css")) +m.submit = translate("Save") +m.reset = false + +s = m:section(SimpleSection, nil, + translate("This form allows you to modify the content of the main network configuration file (/etc/config/network).")) + +f = s:option(TextValue, "data") +f.rows = 20 +f.rmempty = true + +function f.cfgvalue() + return nixio.fs.readfile(trminput) or "" +end + +function f.write(self, section, data) + return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") +end + +function s.handle(self, state, data) + return true +end + +return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua new file mode 100644 index 0000000000..7ef9920a08 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua @@ -0,0 +1,37 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local fs = require("nixio.fs") +local util = require("luci.util") +local trminput = "/etc/config/wireless" + +if not nixio.fs.access(trminput) then + m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) + return m +end + +m = SimpleForm("input", nil) +m:append(Template("travelmate/config_css")) +m.submit = translate("Save") +m.reset = false + +s = m:section(SimpleSection, nil, + translate("This form allows you to modify the content of the main wireless configuration file (/etc/config/wireless).")) + +f = s:option(TextValue, "data") +f.rows = 20 +f.rmempty = true + +function f.cfgvalue() + return nixio.fs.readfile(trminput) or "" +end + +function f.write(self, section, data) + return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") +end + +function s.handle(self, state, data) + return true +end + +return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua new file mode 100644 index 0000000000..8a20ab9cce --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua @@ -0,0 +1,39 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local fs = require("nixio.fs") +local util = require("luci.util") +local trminput = "/etc/config/travelmate" + +if not nixio.fs.access(trminput) then + m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) + m.reset = false + m.submit = false + return m +end + +m = SimpleForm("input", nil) +m:append(Template("travelmate/config_css")) +m.submit = translate("Save") +m.reset = false + +s = m:section(SimpleSection, nil, + translate("This form allows you to modify the content of the main travelmate configuration file (/etc/config/travelmate).")) + +f = s:option(TextValue, "data") +f.rows = 20 +f.rmempty = true + +function f.cfgvalue() + return nixio.fs.readfile(trminput) or "" +end + +function f.write(self, section, data) + return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") +end + +function s.handle(self, state, data) + return true +end + +return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua new file mode 100644 index 0000000000..27971dfdad --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua @@ -0,0 +1,189 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local fs = require("nixio.fs") +local uci = require("luci.model.uci").cursor() +local json = require("luci.jsonc") +local nw = require("luci.model.network").init() +local fw = require("luci.model.firewall").init() +local trmiface = uci.get("travelmate", "global", "trm_iface") or "trm_wwan" +local trminput = uci.get("travelmate", "global", "trm_rtfile") or "/tmp/trm_runtime.json" +local uplink = uci.get("network", trmiface) or "" +local parse = json.parse(fs.readfile(trminput) or "") + +m = Map("travelmate", translate("Travelmate"), + translate("Configuration of the travelmate package to to enable travel router functionality. ") + .. translatef("For further information " + .. "<a href=\"%s\" target=\"_blank\">" + .. "see online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md")) + +function m.on_after_commit(self) + luci.sys.call("env -i /etc/init.d/travelmate restart >/dev/null 2>&1") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate")) +end + +s = m:section(NamedSection, "global", "travelmate") + +-- Interface Wizard + +if uplink == "" then + dv = s:option(DummyValue, "", translate("Interface Wizard")) + dv.template = "cbi/nullsection" + + o = s:option(Value, "", translate("Uplink interface")) + o.datatype = "and(uciname,rangelength(3,15))" + o.default = trmiface + o.rmempty = false + + btn = s:option(Button, "trm_iface", translate("Create Uplink Interface"), + translate("Create a new wireless wan uplink interface, configure it to use dhcp and ") + .. translate("add it to the wan zone of the firewall. This step has only to be done once.")) + btn.inputtitle = translate("Add Interface") + btn.inputstyle = "apply" + btn.disabled = false + function btn.write(self, section, value) + local iface = o:formvalue(section) + if iface then + uci:set("travelmate", section, "trm_iface", iface) + uci:save("travelmate") + uci:commit("travelmate") + local net = nw:add_network(iface, { proto = "dhcp" }) + if net then + nw:save("network") + nw:commit("network") + local zone = fw:get_zone_by_network("wan") + if zone then + zone:add_network(iface) + fw:save("firewall") + fw:commit("firewall") + end + end + luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1") + end + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate")) + end + return m +end + +-- Main travelmate options + +o1 = s:option(Flag, "trm_enabled", translate("Enable travelmate")) +o1.default = o1.disabled +o1.rmempty = false + +o2 = s:option(Flag, "trm_automatic", translate("Enable 'automatic' mode"), + translate("Keep travelmate in an active state. Check every n seconds the connection status, i.e. the uplink availability.")) +o2.default = o2.enabled +o2.rmempty = false + +btn = s:option(Button, "", translate("Manual Rescan")) +btn:depends("trm_automatic", "") +btn.inputtitle = translate("Rescan") +btn.inputstyle = "find" +btn.disabled = false +function btn.write() + luci.sys.call("env -i /etc/init.d/travelmate start >/dev/null 2>&1") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate")) +end + +o3 = s:option(Value, "trm_iface", translate("Uplink / Trigger interface"), + translate("Name of the uplink interface that triggers travelmate processing in 'manual' mode.")) +o3.datatype = "and(uciname,rangelength(3,15))" +o3.default = trmiface +o3.rmempty = false + +o4 = s:option(Value, "trm_triggerdelay", translate("Trigger delay"), + translate("Additional trigger delay in seconds before travelmate processing begins.")) +o4.default = 2 +o4.datatype = "range(1,90)" +o4.rmempty = false + +o5 = s:option(Flag, "trm_debug", translate("Enable verbose debug logging")) +o5.default = o5.disabled +o5.rmempty = false + +-- Runtime information + +ds = s:option(DummyValue, "_dummy", translate("Runtime information")) +ds.template = "cbi/nullsection" + +dv1 = s:option(DummyValue, "status", translate("Online Status")) +dv1.template = "travelmate/runtime" +if parse == nil then + dv1.value = translate("n/a") +elseif parse.data.station_connection == "true" then + dv1.value = translate("connected") +else + dv1.value = translate("not connected") +end + +dv2 = s:option(DummyValue, "travelmate_version", translate("Travelmate version")) +dv2.template = "travelmate/runtime" +if parse ~= nil then + dv2.value = parse.data.travelmate_version or translate("n/a") +else + dv2.value = translate("n/a") +end + +dv3 = s:option(DummyValue, "station_ssid", translate("Station SSID")) +dv3.template = "travelmate/runtime" +if parse ~= nil then + dv3.value = parse.data.station_ssid or translate("n/a") +else + dv3.value = translate("n/a") +end + +dv4 = s:option(DummyValue, "station_interface", translate("Station Interface")) +dv4.template = "travelmate/runtime" +if parse ~= nil then + dv4.value = parse.data.station_interface or translate("n/a") +else + dv4.value = translate("n/a") +end + +dv5 = s:option(DummyValue, "station_radio", translate("Station Radio")) +dv5.template = "travelmate/runtime" +if parse ~= nil then + dv5.value = parse.data.station_radio or translate("n/a") +else + dv5.value = translate("n/a") +end + +dv6 = s:option(DummyValue, "last_rundate", translate("Last rundate")) +dv6.template = "travelmate/runtime" +if parse ~= nil then + dv6.value = parse.data.last_rundate or translate("n/a") +else + dv6.value = translate("n/a") +end + +-- Extra options + +e = m:section(NamedSection, "global", "travelmate", translate("Extra options"), +translate("Options for further tweaking in case the defaults are not suitable for you.")) + +e1 = e:option(Value, "trm_radio", translate("Radio selection"), + translate("Restrict travelmate to a dedicated radio, e.g. 'radio0'.")) +e1.datatype = "and(uciname,rangelength(6,6))" +e1.rmempty = true + +e2 = e:option(Value, "trm_maxretry", translate("Connection Limit"), + translate("How many times should travelmate try to connect to an Uplink. ") + .. translate("To disable this feature set it to '0' which means unlimited retries.")) +e2.default = 3 +e2.datatype = "range(0,30)" +e2.rmempty = false + +e3 = e:option(Value, "trm_maxwait", translate("Interface Timeout"), + translate("How long should travelmate wait for a successful wlan interface reload.")) +e3.default = 30 +e3.datatype = "range(5,60)" +e3.rmempty = false + +e4 = e:option(Value, "trm_timeout", translate("Overall Timeout"), + translate("Timeout in seconds between retries in 'automatic' mode.")) +e4.default = 60 +e4.datatype = "range(60,300)" +e4.rmempty = false + +return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua new file mode 100644 index 0000000000..dcfa17c8b5 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua @@ -0,0 +1,70 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local fs = require("nixio.fs") +local uci = require("luci.model.uci").cursor() +local http = require("luci.http") +local trmiface = uci.get("travelmate", "global", "trm_iface") or "trm_wwan" + +m = SimpleForm("add", translate("Add Wireless Uplink Configuration")) +m.submit = translate("Save") +m.cancel = translate("Back to overview") +m.reset = false + +function m.on_cancel() + http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) +end + +m.hidden = { + device = http.formvalue("device"), + ssid = http.formvalue("ssid"), + wep = http.formvalue("wep"), + wpa_suites = http.formvalue("wpa_suites"), + wpa_version = http.formvalue("wpa_version") +} + +if m.hidden.ssid ~= "" then + wssid = m:field(Value, "ssid", translate("SSID")) + wssid.default = m.hidden.ssid +else + wssid = m:field(Value, "ssid", translate("SSID (hidden)")) +end + +if (tonumber(m.hidden.wep) or 0) == 1 then + wkey = m:field(Value, "key", translate("WEP passphrase"), + translate("Specify the secret encryption key here.")) + wkey.password = true + wkey.datatype = "wepkey" +elseif (tonumber(m.hidden.wpa_version) or 0) > 0 and + (m.hidden.wpa_suites == "PSK" or m.hidden.wpa_suites == "PSK2") +then + wkey = m:field(Value, "key", translate("WPA passphrase"), + translate("Specify the secret encryption key here.")) + wkey.password = true + wkey.datatype = "wpakey" +end + +function wssid.write(self, section, value) + newsection = uci:section("wireless", "wifi-iface", nil, { + mode = "sta", + network = trmiface, + device = m.hidden.device, + ssid = wssid:formvalue(section), + disabled = "1" + }) + if (tonumber(m.hidden.wep) or 0) == 1 then + uci:set("wireless", newsection, "encryption", "wep-open") + uci:set("wireless", newsection, "key", "1") + uci:set("wireless", newsection, "key1", wkey:formvalue(section)) + elseif (tonumber(m.hidden.wpa_version) or 0) > 0 then + uci:set("wireless", newsection, "encryption", "psk2") + uci:set("wireless", newsection, "key", wkey:formvalue(section)) + else + uci:set("wireless", newsection, "encryption", "none") + end + uci:save("wireless") + uci:commit("wireless") + http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) +end + +return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua new file mode 100644 index 0000000000..0c3cc1865b --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua @@ -0,0 +1,13 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local uci = require("luci.model.uci").cursor() +local http = require("luci.http") +local cfg = http.formvalue("cfg") + +if cfg ~= nil then + uci:delete("wireless", cfg) + uci:save("wireless") + uci:commit("wireless") +end +http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua new file mode 100644 index 0000000000..c60ff22c4d --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua @@ -0,0 +1,56 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local fs = require("nixio.fs") +local uci = require("luci.model.uci").cursor() +local http = require("luci.http") + +m = SimpleForm("edit", translate("Edit Wireless Uplink Configuration")) +m.submit = translate("Save") +m.cancel = translate("Back to overview") +m.reset = false + +function m.on_cancel() + http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) +end + +m.hidden = { + cfg = http.formvalue("cfg") +} + +local s = uci:get_all("wireless", m.hidden.cfg) +if s ~= nil then + wssid = m:field(Value, "ssid", translate("SSID")) + wssid.default = s.ssid + wssid.datatype = "rangelength(1,32)" + if s.encryption and s.key then + wkey = m:field(Value, "key", translatef("Passphrase (%s)", s.encryption)) + elseif s.encryption and s.password then + wkey = m:field(Value, "password", translatef("Passphrase (%s)", s.encryption)) + end + if s.encryption and (s.key or s.password) then + wkey.password = true + wkey.default = s.key or s.password + if s.encryption == "wep" then + wkey.datatype = "wepkey" + else + wkey.datatype = "wpakey" + end + end +else + m.on_cancel() +end + +function wssid.write(self, section, value) + uci:set("wireless", m.hidden.cfg, "ssid", wssid:formvalue(section)) + if s.encryption and s.key then + uci:set("wireless", m.hidden.cfg, "key", wkey:formvalue(section)) + elseif s.encryption and s.password then + uci:set("wireless", m.hidden.cfg, "password", wkey:formvalue(section)) + end + uci:save("wireless") + uci:commit("wireless") + m.on_cancel() +end + +return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua new file mode 100644 index 0000000000..6eb4c72063 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua @@ -0,0 +1,36 @@ +-- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- This is free software, licensed under the Apache License, Version 2.0 + +local http = require("luci.http") +local cfg = http.formvalue("cfg") +local dir = http.formvalue("dir") +local uci = require("luci.model.uci").cursor() +local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan" + +if cfg ~= nil then + local section = "" + local idx = "" + local idx_change = "" + local changed = "" + uci:foreach("wireless", "wifi-iface", function(s) + local iface = s.network or "" + if iface == trmiface then + section = s['.name'] + if cfg == section then + idx = s['.index'] + else + idx_change = s['.index'] + end + if (dir == "up" and idx ~= "" and idx_change ~= "" and idx_change < idx) or + (dir == "down" and idx ~= "" and idx_change ~= "" and idx_change > idx) then + changed = uci:reorder("wireless", cfg, idx_change) + idx = "" + end + end + end) + if changed ~= "" then + uci:save("wireless") + uci:commit("wireless") + end +end +http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm new file mode 100644 index 0000000000..53493a18fb --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm @@ -0,0 +1,10 @@ +<style type="text/css"> + textarea + { + border: 1px solid #cccccc; + padding: 5px; + font-size: 12px; + font-family: monospace; + resize: none; + } +</style> diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm new file mode 100644 index 0000000000..7f6ff7776d --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm @@ -0,0 +1,15 @@ +<%# +Copyright 2017 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + +<%+header%> + +<div class="cbi-map"> + <fieldset class="cbi-section"> + <div class="cbi-section-descr"><%:This form shows the syslog output, pre-filtered for travelmate related messages only.%></div> + <textarea id="logread_id" style="width: 100%; height: 450px; border: 1px solid #cccccc; padding: 5px; font-size: 12px; font-family: monospace; resize: none;" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+2%>"><%=content:pcdata()%></textarea> + </fieldset> +</div> + +<%+footer%> diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm new file mode 100644 index 0000000000..2b9885567a --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm @@ -0,0 +1,10 @@ +<%# +Copyright 2017 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + +<%+cbi/valueheader%> + +<input name="runtime" id="runtime" type="text" class="cbi-input-text" style="border:none; box-shadow:none; background-color:#ffffff; color:#0069d6;" value="<%=self:cfgvalue(section)%>" disabled="disabled" /> + +<%+cbi/valuefooter%> diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm new file mode 100644 index 0000000000..cbb6c189b8 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm @@ -0,0 +1,77 @@ +<%# +Copyright 2017 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + +<%- + local write = io.write + local uci = require("luci.model.uci").cursor() + local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan" +-%> + +<%+header%> + +<div class="cbi-map"> +<h2 name="content"><%:Wireless Stations%></h2> +<div class="cbi-map-descr"> + <%=translatef("Provides an overview of all configured uplinks for the travelmate interface (%s). You can edit, delete or re-order existing uplinks or scan for a new one. The currently used uplink is emphasized in blue.", trmiface)%> +</div> + +<fieldset class="cbi-section"> + <table class="cbi-section-table" style="empty-cells:hide"> + <tr class="cbi-section-table-titles"> + <th class="cbi-section-table-cell" style="text-align:left"><%:Device%></th> + <th class="cbi-section-table-cell" style="text-align:left"><%:SSID%></th> + <th class="cbi-section-table-cell" style="text-align:left"><%:Encryption%></th> + <th class="cbi-section-table-cell" style="text-align:center" colspan="2"><%:Actions%></th> + </tr> +<% + uci:foreach("wireless", "wifi-iface", function(s) + local iface = s.network or "" + if iface == trmiface then + local section = s['.name'] or "" + local device = s.device or "" + local ssid = s.ssid or "" + local encryption = s.encryption or "" + local disabled = s.disabled or "" + local style = "color:#000000" + if disabled == "0" then + style = "color:#0069d6;font-weight:bold" + end +%> + <tr class="cbi-section-table-row cbi-rowstyle-1" style="<%=style%>"> + <td style="text-align:left"><%=device%></td> + <td style="text-align:left"><%=ssid%></td> + <td style="text-align:left"><%=encryption%></td> + <td class="cbi-value-field" style="width:70px;text-align:right"> + <input class="cbi-button cbi-button-up" type="button" value="" onclick="location.href='<%=url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>;dir=up'" alt="<%:Move up%>" title="<%:Move up%>"/> + <input class="cbi-button cbi-button-down" type="button" value="" onclick="location.href='<%=url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>;dir=down'" alt="<%:Move down%>" title="<%:Move down%>"/> + </td> + <td class="cbi-value-field" style="width:150px;text-align:right"> + <input type="button" class="cbi-button cbi-button-edit" onclick="location.href='<%=url('admin/services/travelmate/wifiedit')%>?cfg=<%=section%>'" title="<%:Edit this Uplink%>" value="<%:Edit%>"/> + <input type="button" class="cbi-button cbi-button-remove" onclick="location.href='<%=url('admin/services/travelmate/wifidelete')%>?cfg=<%=section%>'" title="<%:Delete this Uplink%>" value="<%:Delete%>"/> + </td> + </tr> +<% + end + end) +%> + </table> +</fieldset> +<div class="cbi-page-actions right"> +<% + uci:foreach("wireless", "wifi-device", function(s) + local device = s[".name"] +%> + <form class="inline" action="<%=url('admin/services/travelmate/wifiscan')%>" method="post"> + <input type="hidden" name="device" value="<%=device%>"/> + <input type="hidden" name="token" value="<%=token%>"/> + <input type="submit" class="cbi-button cbi-button-find" title="<%:Find and join network on %><%=device%>" value="<%:Scan %><%=device%>"/> + </form> +<% + end) +%> +</div> +</div> + +<%+footer%> diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm new file mode 100644 index 0000000000..af90c18d23 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm @@ -0,0 +1,90 @@ +<%# +Copyright 2017 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + +<%- + local sys = require("luci.sys") + local utl = require("luci.util") + local dev = luci.http.formvalue("device") + local iw = luci.sys.wifi.getiwinfo(dev) + + if not iw then + luci.http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) + end + + function format_wifi_encryption(info) + if info.wep == true then + return translate("WEP") + elseif info.wpa > 0 then + return translate("WPA / WPA2") + elseif info.enabled then + return translate("Unknown") + else + return translate("Open") + end + end + + function percent_wifi_signal(info) + local qc = info.quality or 0 + local qm = info.quality_max or 0 + if info.ssid and qc > 0 and qm > 0 then + return math.floor((100 / qm) * qc) + else + return 0 + end + end +-%> + +<%+header%> + +<div class="cbi-map"> +<h2 name="content"><%:Wireless Scan%></h2> + <fieldset class="cbi-section"> + <table class="cbi-section-table" style="empty-cells:hide"> + <tr class="cbi-section-table-titles"> + <th class="cbi-section-table-cell" style="text-align:left"><%:Uplink SSID%></th> + <th class="cbi-section-table-cell" style="text-align:left"><%:Encryption%></th> + <th class="cbi-section-table-cell" style="text-align:left" colspan="2"><%:Signal strength%></th> + </tr> + <% for i, net in ipairs(iw.scanlist or { }) do %> + <tr class="cbi-section-table-row cbi-rowstyle-1"> + <td class="cbi-value-field" style="text-align:left"> + <strong><%=net.ssid and utl.pcdata(net.ssid) or "<em>%s</em>" % translate("hidden")%></strong> + </td> + <td class="cbi-value-field" style="text-align:left"> + <%=format_wifi_encryption(net.encryption)%> + </td> + <td class="cbi-value-field" style="text-align:left"> + <%=percent_wifi_signal(net)%> % + </td> + <td class="cbi-value-field" style="width:100px;text-align:right"> + <form class="inline" action="<%=url('admin/services/travelmate/wifiadd')%>" method="post"> + <input type="hidden" name="token" value="<%=token%>"/> + <input type="hidden" name="device" value="<%=utl.pcdata(dev)%>"/> + <input type="hidden" name="ssid" value="<%=utl.pcdata(net.ssid)%>"/> + <input type="hidden" name="wep" value="<%=net.encryption.wep and 1 or 0%>"/> + <% if net.encryption.wpa then %> + <input type="hidden" name="wpa_version" value="<%=net.encryption.wpa%>"/> + <% for _, v in ipairs(net.encryption.auth_suites) do %><input type="hidden" name="wpa_suites" value="<%=v%>"/> + <% end; end %> + <input class="cbi-button cbi-button-apply" type="submit" value="<%:Add Uplink%>"/> + </form> + </td> + </tr> + <% end %> + </table> + </fieldset> +<div class="cbi-page-actions right"> + <form class="inline" action="<%=url('admin/services/travelmate/wifiscan')%>" method="post"> + <input type="hidden" name="token" value="<%=token%>"/> + <input type="hidden" name="device" value="<%=utl.pcdata(dev)%>"/> + <input class="cbi-button cbi-input-find" type="submit" value="<%:Repeat scan%>"/> + </form> + <form class="inline" action="<%=url('admin/services/travelmate/stations')%>" method="post"> + <input class="cbi-button cbi-button-reset" type="submit" value="<%:Back to overview%>"/> + </form> +</div> +</div> + +<%+footer%> diff --git a/applications/luci-app-travelmate/po/ja/travelmate.po b/applications/luci-app-travelmate/po/ja/travelmate.po index de1aceed95..febdbd5833 100644 --- a/applications/luci-app-travelmate/po/ja/travelmate.po +++ b/applications/luci-app-travelmate/po/ja/travelmate.po @@ -7,85 +7,321 @@ msgstr "" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0.3\n" "Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n" "Plural-Forms: nplurals=1; plural=0;\n" "Language: ja\n" +msgid "Actions" +msgstr "操作" + +msgid "Add Interface" +msgstr "インターフェースの追加" + +msgid "Add Uplink" +msgstr "アップリンクの追加" + +msgid "Add Wireless Uplink Configuration" +msgstr "無線アップリンク追加の設定" + msgid "" -"Brief advice: Create a wwan interface, configure it to use dhcp and add it " -"to the wan zone in firewall. Create the wifi interfaces to be used ('client' " -"mode, assigned to wwan network, left as disabled). Travelmate will try to " -"connect to the known wifi client interfaces in the defined order." -msgstr "" -"簡単な解説: 予めWWANインターフェースを作成し、DHCPを使用するよう構成してファ" -"イアウォールのWANゾーンに追加します。また、使用される無線インターフェースを作" -"成しておきます(\"クライアント\" モード、WWANに割り当て、無効状態)。" -"Travelmateは、登録されている順序で既知の無線クライアント インターフェースへの" -"接続を試行します。" +"Additional trigger delay in seconds before travelmate processing begins." +msgstr "Travelmate の処理が開始されるまでの、追加の遅延時間(秒)です。" + +msgid "Advanced" +msgstr "詳細設定" + +msgid "Back to overview" +msgstr "概要へ戻る" msgid "" -"Configuration of the Travelmate package to enable travel router " +"Configuration of the travelmate package to to enable travel router " "functionality." -msgstr "トラベル ルータ機能を有効にする、Travelmate パッケージの設定です。" +msgstr "" +"トラベル ルーター機能を有効化するための、 Travelmate パッケージの設定です。" + +msgid "Connection Limit" +msgstr "接続制限" -msgid "Debug logging" -msgstr "デバッグ ログ" +msgid "Create Uplink Interface" +msgstr "アップリンク インターフェースの作成" + +msgid "" +"Create a new wireless wan uplink interface, configure it to use dhcp and" +msgstr "" +"新規の無線 WAN アップリンク インターフェースを作成し、 DHCP を使用するよう構" +"成して" -msgid "Default 20, range 10-60" -msgstr "既定値 20、範囲 10 - 60" +msgid "Delete" +msgstr "削除" -msgid "Default 3, range 1-10" -msgstr "既定値 3、範囲 1 - 10" +msgid "Delete this Uplink" +msgstr "このアップリンクを削除" -msgid "Disable this if you want to use iwinfo instead of iw" -msgstr "iw の代わりに iwinfo を使用したい場合、この設定を無効にします。" +msgid "Device" +msgstr "デバイス" -msgid "Enable Travelmate" -msgstr "Travelmateの有効化" +msgid "Edit" +msgstr "編集" + +msgid "Edit Firewall Configuration" +msgstr "ファイアウォール設定の編集" + +msgid "Edit Network Configuration" +msgstr "ネットワーク設定の編集" + +msgid "Edit Travelmate Configuration" +msgstr "Travelmate 設定の編集" + +msgid "Edit Wireless Configuration" +msgstr "無線設定の編集" + +msgid "Edit Wireless Uplink Configuration" +msgstr "無線アップリンク設定の編集" + +msgid "Edit this Uplink" +msgstr "このアップリンクを編集" + +msgid "Enable 'automatic' mode" +msgstr "'automatic' モードの有効化" + +msgid "Enable travelmate" +msgstr "Travelmate の有効化" + +msgid "Enable verbose debug logging" +msgstr "詳細なデバッグ ログの有効化" + +msgid "Encryption" +msgstr "暗号化" msgid "Extra options" msgstr "拡張オプション" -msgid "Global options" -msgstr "全般オプション" +msgid "Find and join network on" +msgstr "ネットワークの検索と参加:" + +msgid "" +"For further information <a href=\"%s\" target=\"_blank\">see online " +"documentation</a>" +msgstr "" +"詳細な情報は <a href=\"%s\" target=\"_blank\">オンライン ドキュメント</a> を" +"確認してください。" + +msgid "How long should travelmate wait for a successful wlan interface reload." +msgstr "" +"無線LAN インターフェースのリロードが成功するまでの、Travelmate の待機時間で" +"す。" + +msgid "How many times should travelmate try to connect to an Uplink." +msgstr "Travelmate がアップリンクへの接続を試行する回数です。" + +msgid "Input file not found, please check your configuration." +msgstr "入力ファイルが見つかりません。設定を確認してください。" -msgid "Link to detailed advice" -msgstr "詳細な解説へのリンク" +msgid "Interface Timeout" +msgstr "インターフェース タイムアウト" -msgid "Max. number of connection retries to an uplink" -msgstr "確立までの接続試行回数" +msgid "Interface Wizard" +msgstr "インターフェース ウィザード" -msgid "Max. timeout in seconds for wlan interface reload" -msgstr "無線LANインターフェース リロード時の最大待機時間(秒)" +msgid "" +"Keep travelmate in an active state. Check every n seconds the connection " +"status, i.e. the uplink availability." +msgstr "" +"Travelmate をアクティブ状態で維持します。\"実行間隔\" で設定された時間毎" +"(秒)に、アップリンクの可用性を確認するために接続状態をチェックします" + +msgid "Last rundate" +msgstr "最終実行日時" -msgid "Restrict reload trigger to certain interface(s)" -msgstr "リロード トリガを特定のインターフェースに限定する" +msgid "Manual Rescan" +msgstr "手動再スキャン" + +msgid "Move down" +msgstr "下へ" + +msgid "Move up" +msgstr "上へ" msgid "" -"Space separated list of wwan interfaces that trigger reload action. To " -"disable reload trigger set it to 'false'. Default: empty" +"Name of the uplink interface that triggers travelmate processing in 'manual' " +"mode." msgstr "" -"リロード動作のトリガとなる、スペースで区切られたWWAN インターフェースのリスト" -"です。リロードのトリガを無効にするには、'false' を設定します。既定値:(空)" +"'manual' モード時に Travelmate の処理のトリガーとなる、アップリンク インター" +"フェースの名前です。" + +msgid "Online Status" +msgstr "オンライン ステータス" + +msgid "Open" +msgstr "オープン" + +msgid "" +"Options for further tweaking in case the defaults are not suitable for you." +msgstr "デフォルトの設定が適切でない場合、さらに設定するためのオプションです。" + +msgid "Overall Timeout" +msgstr "実行間隔" + +msgid "Overview" +msgstr "概要" + +msgid "Passphrase (%s)" +msgstr "暗号フレーズ (%s)" + +msgid "" +"Provides an overview of all configured uplinks for the travelmate interface " +"(%s). You can edit, delete or re-order existing uplinks or scan for a new " +"one. The currently used uplink is emphasized in blue." +msgstr "" +"Travelmate 用インターフェース(%s)に設定済みの全アップリンクの一覧です。既存" +"のアップリンクの編集や削除、並べ替えを行ったり、スキャンを行って新規アップリ" +"ンクを追加することができます。現在使用されているアップリンクは、青色で強調さ" +"れます。" + +msgid "Radio selection" +msgstr "無線の選択" + +msgid "Repeat scan" +msgstr "再スキャン" + +msgid "Rescan" +msgstr "再スキャン" + +msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'." +msgstr "Travelmate が指定された無線に接続するよう制御します。(例: 'radio0')" + +msgid "Runtime information" +msgstr "実行情報" + +msgid "SSID" +msgstr "SSID" + +msgid "SSID (hidden)" +msgstr "SSID(ステルス)" + +msgid "Save" +msgstr "保存" + +msgid "Scan" +msgstr "スキャン:" + +msgid "Signal strength" +msgstr "信号強度" + +msgid "Specify the secret encryption key here." +msgstr "暗号キーを設定します。" + +msgid "Station Interface" +msgstr "ステーション インターフェース" + +msgid "Station Radio" +msgstr "ステーション電波" + +msgid "Station SSID" +msgstr "ステーション SSID" + +msgid "" +"This form allows you to modify the content of the main firewall " +"configuration file (/etc/config/firewall)." +msgstr "" +"このフォームでは、ファイアウォール 設定ファイル (/etc/config/firewall) の内容" +"を変更することができます。" + +msgid "" +"This form allows you to modify the content of the main network configuration " +"file (/etc/config/network)." +msgstr "" +"このフォームでは、ネットワーク 設定ファイル (/etc/config/network) の内容を変" +"更することができます。" + +msgid "" +"This form allows you to modify the content of the main travelmate " +"configuration file (/etc/config/travelmate)." +msgstr "" +"このフォームでは、 Travelmate 設定ファイル (/etc/config/travelmate) の内容を" +"変更することができます。" + +msgid "" +"This form allows you to modify the content of the main wireless " +"configuration file (/etc/config/wireless)." +msgstr "" +"このフォームでは、無線 設定ファイル (/etc/config/wireless) の内容を変更するこ" +"とができます。" + +msgid "" +"This form shows the syslog output, pre-filtered for travelmate related " +"messages only." +msgstr "" +"このフォームには、システムログ内の Travelmate に関するメッセージのみが表示さ" +"れます。" + +msgid "Timeout in seconds between retries in 'automatic' mode." +msgstr "'automatic' モード時に接続を確認または再試行する間隔(秒)です。" + +msgid "To disable this feature set it to '0' which means unlimited retries." +msgstr "" +"この機能を無効にして接続の再試行を無制限にする場合、 '0' を設定します。" msgid "Travelmate" msgstr "Travelmate" -msgid "Use iw for scanning" -msgstr "スキャンに iw を使用する" +msgid "Travelmate Logfile" +msgstr "Travelmate ログファイル" + +msgid "Travelmate version" +msgstr "Travelmate バージョン" + +msgid "Trigger delay" +msgstr "トリガー遅延" + +msgid "Unknown" +msgstr "不明" + +msgid "Uplink / Trigger interface" +msgstr "アップリンク / トリガー インターフェース" -#~ msgid "Default 3, range 0-10. Set to 0 to allow unlimited retries" -#~ msgstr "既定値 3、範囲 0 - 10。再試行回数を制限しない場合、0 に設定します。" +msgid "Uplink SSID" +msgstr "アップリンク SSID" + +msgid "Uplink interface" +msgstr "アップリンク インターフェース" + +msgid "View Logfile" +msgstr "ログファイルの確認" + +msgid "WEP" +msgstr "WEP" + +msgid "WEP passphrase" +msgstr "WEP 暗号キー" + +msgid "WPA / WPA2" +msgstr "WPA / WPA2" + +msgid "WPA passphrase" +msgstr "WPA 暗号キー" + +msgid "Wireless Scan" +msgstr "無線スキャン" + +msgid "Wireless Stations" +msgstr "無線ステーション" + +msgid "" +"add it to the wan zone of the firewall. This step has only to be done once." +msgstr "" +"ファイアウォールの wan ゾーンに追加します。このステップは、一度だけ実行される" +"必要があります。" -#~ msgid "Default 30, range 5-60" -#~ msgstr "既定値 30、範囲 5 - 60" +msgid "connected" +msgstr "接続済み" -#~ msgid "Default: empty = use all radios." -#~ msgstr "デフォルト:(空)= 全ての無線を使用" +msgid "hidden" +msgstr "(不明)" -#~ msgid "Loop timeout in seconds for wlan monitoring" -#~ msgstr "無線LAN モニターのループ タイムアウト(秒)" +msgid "n/a" +msgstr "利用不可" -#~ msgid "Use only one radio, e.g. 'radio0'" -#~ msgstr "単一の無線のみ使用する 例: 'radio0'" +msgid "not connected" +msgstr "未接続" diff --git a/applications/luci-app-travelmate/po/pt-br/travelmate.po b/applications/luci-app-travelmate/po/pt-br/travelmate.po new file mode 100644 index 0000000000..41fab70149 --- /dev/null +++ b/applications/luci-app-travelmate/po/pt-br/travelmate.po @@ -0,0 +1,360 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" +"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: pt_BR\n" + +msgid "Actions" +msgstr "" + +msgid "Add Interface" +msgstr "" + +msgid "Add Uplink" +msgstr "" + +msgid "Add Wireless Uplink Configuration" +msgstr "" + +msgid "" +"Additional trigger delay in seconds before travelmate processing begins." +msgstr "" + +msgid "Advanced" +msgstr "" + +msgid "Back to overview" +msgstr "" + +msgid "" +"Configuration of the travelmate package to to enable travel router " +"functionality." +msgstr "" + +msgid "Connection Limit" +msgstr "" + +msgid "Create Uplink Interface" +msgstr "" + +msgid "" +"Create a new wireless wan uplink interface, configure it to use dhcp and" +msgstr "" + +msgid "Delete" +msgstr "" + +msgid "Delete this Uplink" +msgstr "" + +msgid "Device" +msgstr "" + +msgid "Edit" +msgstr "" + +msgid "Edit Firewall Configuration" +msgstr "" + +msgid "Edit Network Configuration" +msgstr "" + +msgid "Edit Travelmate Configuration" +msgstr "" + +msgid "Edit Wireless Configuration" +msgstr "" + +msgid "Edit Wireless Uplink Configuration" +msgstr "" + +msgid "Edit this Uplink" +msgstr "" + +msgid "Enable 'automatic' mode" +msgstr "" + +msgid "Enable travelmate" +msgstr "" + +msgid "Enable verbose debug logging" +msgstr "" + +msgid "Encryption" +msgstr "" + +msgid "Extra options" +msgstr "Opções adicionais" + +msgid "Find and join network on" +msgstr "" + +msgid "" +"For further information <a href=\"%s\" target=\"_blank\">see online " +"documentation</a>" +msgstr "" + +msgid "How long should travelmate wait for a successful wlan interface reload." +msgstr "" + +msgid "How many times should travelmate try to connect to an Uplink." +msgstr "" + +msgid "Input file not found, please check your configuration." +msgstr "" + +msgid "Interface Timeout" +msgstr "" + +msgid "Interface Wizard" +msgstr "" + +msgid "" +"Keep travelmate in an active state. Check every n seconds the connection " +"status, i.e. the uplink availability." +msgstr "" + +msgid "Last rundate" +msgstr "" + +msgid "Manual Rescan" +msgstr "" + +msgid "Move down" +msgstr "" + +msgid "Move up" +msgstr "" + +msgid "" +"Name of the uplink interface that triggers travelmate processing in 'manual' " +"mode." +msgstr "" + +msgid "Online Status" +msgstr "" + +msgid "Open" +msgstr "" + +msgid "" +"Options for further tweaking in case the defaults are not suitable for you." +msgstr "" + +msgid "Overall Timeout" +msgstr "" + +msgid "Overview" +msgstr "" + +msgid "Passphrase (%s)" +msgstr "" + +msgid "" +"Provides an overview of all configured uplinks for the travelmate interface " +"(%s). You can edit, delete or re-order existing uplinks or scan for a new " +"one. The currently used uplink is emphasized in blue." +msgstr "" + +msgid "Radio selection" +msgstr "" + +msgid "Repeat scan" +msgstr "" + +msgid "Rescan" +msgstr "" + +msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'." +msgstr "" + +msgid "Runtime information" +msgstr "" + +msgid "SSID" +msgstr "" + +msgid "SSID (hidden)" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Scan" +msgstr "" + +msgid "Signal strength" +msgstr "" + +msgid "Specify the secret encryption key here." +msgstr "" + +msgid "Station Interface" +msgstr "" + +msgid "Station Radio" +msgstr "" + +msgid "Station SSID" +msgstr "" + +msgid "" +"This form allows you to modify the content of the main firewall " +"configuration file (/etc/config/firewall)." +msgstr "" + +msgid "" +"This form allows you to modify the content of the main network configuration " +"file (/etc/config/network)." +msgstr "" + +msgid "" +"This form allows you to modify the content of the main travelmate " +"configuration file (/etc/config/travelmate)." +msgstr "" + +msgid "" +"This form allows you to modify the content of the main wireless " +"configuration file (/etc/config/wireless)." +msgstr "" + +msgid "" +"This form shows the syslog output, pre-filtered for travelmate related " +"messages only." +msgstr "" + +msgid "Timeout in seconds between retries in 'automatic' mode." +msgstr "" + +msgid "To disable this feature set it to '0' which means unlimited retries." +msgstr "" + +msgid "Travelmate" +msgstr "Travelmate" + +msgid "Travelmate Logfile" +msgstr "" + +msgid "Travelmate version" +msgstr "" + +msgid "Trigger delay" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Uplink / Trigger interface" +msgstr "" + +msgid "Uplink SSID" +msgstr "" + +msgid "Uplink interface" +msgstr "" + +msgid "View Logfile" +msgstr "" + +msgid "WEP" +msgstr "" + +msgid "WEP passphrase" +msgstr "" + +msgid "WPA / WPA2" +msgstr "" + +msgid "WPA passphrase" +msgstr "" + +msgid "Wireless Scan" +msgstr "" + +msgid "Wireless Stations" +msgstr "" + +msgid "" +"add it to the wan zone of the firewall. This step has only to be done once." +msgstr "" + +msgid "connected" +msgstr "" + +msgid "hidden" +msgstr "" + +msgid "n/a" +msgstr "" + +msgid "not connected" +msgstr "" + +#~ msgid "" +#~ "Brief advice: Create a wwan interface, configure it to use dhcp and add " +#~ "it to the wan zone in firewall. Create the wifi interfaces to be used " +#~ "('client' mode, assigned to wwan network, left as disabled). Travelmate " +#~ "will try to connect to the known wifi client interfaces in the defined " +#~ "order." +#~ msgstr "" +#~ "Breve conselho: Crie uma interface wwan, configure-a para usar DHCP e " +#~ "adicione-a à zona wan no firewall. Crie as interfaces wifi a serem usadas " +#~ "(modo 'cliente', atribuído à rede wwan, deixado como desativado). O " +#~ "Travelmate tentará se conectar às interfaces de cliente wifi conhecidas " +#~ "na ordem definida." + +#~ msgid "" +#~ "Configuration of the Travelmate package to enable travel router " +#~ "functionality." +#~ msgstr "" +#~ "Configuração do pacote Travelmate para permitir a funcionalidade de " +#~ "roteador de viagem." + +#~ msgid "Debug logging" +#~ msgstr "Registros(log) para depuração" + +#~ msgid "Default 20, range 10-60" +#~ msgstr "Padrão 20, faixa 10-60" + +#~ msgid "Default 3, range 1-10" +#~ msgstr "Padrão 3, faixa 1-10" + +#~ msgid "Disable this if you want to use iwinfo instead of iw" +#~ msgstr "Desabilite isto se você quer usar o iwinfo ao invés do iw" + +#~ msgid "Enable Travelmate" +#~ msgstr "Habilitar o Travelmate" + +#~ msgid "Global options" +#~ msgstr "Opções Globais" + +#~ msgid "Link to detailed advice" +#~ msgstr "Endereço para conselhos detalhados" + +#~ msgid "Max. number of connection retries to an uplink" +#~ msgstr "Máximo número de tentativas de conexão para um enlace" + +#~ msgid "Max. timeout in seconds for wlan interface reload" +#~ msgstr "Tempo limite máximo em segundos para recarregar a interface wlan" + +#~ msgid "Restrict reload trigger to certain interface(s)" +#~ msgstr "Restringir o gatilho de recarga para somente alguma(s) interface(s)" + +#~ msgid "" +#~ "Space separated list of wwan interfaces that trigger reload action. To " +#~ "disable reload trigger set it to 'false'. Default: empty" +#~ msgstr "" +#~ "Lista separada por espaços de interfaces wwan que acionam a ação de " +#~ "recarga. Para desabilitar o gatilho de recarga, defina-o como 'false'. " +#~ "Padrão: vazio" + +#~ msgid "Use iw for scanning" +#~ msgstr "Use o iw para escaneamento" diff --git a/applications/luci-app-travelmate/po/templates/travelmate.pot b/applications/luci-app-travelmate/po/templates/travelmate.pot index 20628196b6..a9ceafe237 100644 --- a/applications/luci-app-travelmate/po/templates/travelmate.pot +++ b/applications/luci-app-travelmate/po/templates/travelmate.pot @@ -1,58 +1,288 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" +msgid "Actions" +msgstr "" + +msgid "Add Interface" +msgstr "" + +msgid "Add Uplink" +msgstr "" + +msgid "Add Wireless Uplink Configuration" +msgstr "" + msgid "" -"Brief advice: Create a wwan interface, configure it to use dhcp and add it " -"to the wan zone in firewall. Create the wifi interfaces to be used ('client' " -"mode, assigned to wwan network, left as disabled). Travelmate will try to " -"connect to the known wifi client interfaces in the defined order." +"Additional trigger delay in seconds before travelmate processing begins." +msgstr "" + +msgid "Advanced" +msgstr "" + +msgid "Back to overview" msgstr "" msgid "" -"Configuration of the Travelmate package to enable travel router " +"Configuration of the travelmate package to to enable travel router " "functionality." msgstr "" -msgid "Debug logging" +msgid "Connection Limit" +msgstr "" + +msgid "Create Uplink Interface" +msgstr "" + +msgid "" +"Create a new wireless wan uplink interface, configure it to use dhcp and" msgstr "" -msgid "Default 20, range 10-60" +msgid "Delete" msgstr "" -msgid "Default 3, range 1-10" +msgid "Delete this Uplink" msgstr "" -msgid "Disable this if you want to use iwinfo instead of iw" +msgid "Device" msgstr "" -msgid "Enable Travelmate" +msgid "Edit" +msgstr "" + +msgid "Edit Firewall Configuration" +msgstr "" + +msgid "Edit Network Configuration" +msgstr "" + +msgid "Edit Travelmate Configuration" +msgstr "" + +msgid "Edit Wireless Configuration" +msgstr "" + +msgid "Edit Wireless Uplink Configuration" +msgstr "" + +msgid "Edit this Uplink" +msgstr "" + +msgid "Enable 'automatic' mode" +msgstr "" + +msgid "Enable travelmate" +msgstr "" + +msgid "Enable verbose debug logging" +msgstr "" + +msgid "Encryption" msgstr "" msgid "Extra options" msgstr "" -msgid "Global options" +msgid "Find and join network on" msgstr "" -msgid "Link to detailed advice" +msgid "" +"For further information <a href=\"%s\" target=\"_blank\">see online " +"documentation</a>" msgstr "" -msgid "Max. number of connection retries to an uplink" +msgid "How long should travelmate wait for a successful wlan interface reload." msgstr "" -msgid "Max. timeout in seconds for wlan interface reload" +msgid "How many times should travelmate try to connect to an Uplink." msgstr "" -msgid "Restrict reload trigger to certain interface(s)" +msgid "Input file not found, please check your configuration." +msgstr "" + +msgid "Interface Timeout" +msgstr "" + +msgid "Interface Wizard" +msgstr "" + +msgid "" +"Keep travelmate in an active state. Check every n seconds the connection " +"status, i.e. the uplink availability." +msgstr "" + +msgid "Last rundate" +msgstr "" + +msgid "Manual Rescan" +msgstr "" + +msgid "Move down" +msgstr "" + +msgid "Move up" +msgstr "" + +msgid "" +"Name of the uplink interface that triggers travelmate processing in 'manual' " +"mode." +msgstr "" + +msgid "Online Status" +msgstr "" + +msgid "Open" msgstr "" msgid "" -"Space separated list of wwan interfaces that trigger reload action. To " -"disable reload trigger set it to 'false'. Default: empty" +"Options for further tweaking in case the defaults are not suitable for you." +msgstr "" + +msgid "Overall Timeout" +msgstr "" + +msgid "Overview" +msgstr "" + +msgid "Passphrase (%s)" +msgstr "" + +msgid "" +"Provides an overview of all configured uplinks for the travelmate interface " +"(%s). You can edit, delete or re-order existing uplinks or scan for a new " +"one. The currently used uplink is emphasized in blue." +msgstr "" + +msgid "Radio selection" +msgstr "" + +msgid "Repeat scan" +msgstr "" + +msgid "Rescan" +msgstr "" + +msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'." +msgstr "" + +msgid "Runtime information" +msgstr "" + +msgid "SSID" +msgstr "" + +msgid "SSID (hidden)" +msgstr "" + +msgid "Save" +msgstr "" + +msgid "Scan" +msgstr "" + +msgid "Signal strength" +msgstr "" + +msgid "Specify the secret encryption key here." +msgstr "" + +msgid "Station Interface" +msgstr "" + +msgid "Station Radio" +msgstr "" + +msgid "Station SSID" +msgstr "" + +msgid "" +"This form allows you to modify the content of the main firewall " +"configuration file (/etc/config/firewall)." +msgstr "" + +msgid "" +"This form allows you to modify the content of the main network configuration " +"file (/etc/config/network)." +msgstr "" + +msgid "" +"This form allows you to modify the content of the main travelmate " +"configuration file (/etc/config/travelmate)." +msgstr "" + +msgid "" +"This form allows you to modify the content of the main wireless " +"configuration file (/etc/config/wireless)." +msgstr "" + +msgid "" +"This form shows the syslog output, pre-filtered for travelmate related " +"messages only." +msgstr "" + +msgid "Timeout in seconds between retries in 'automatic' mode." +msgstr "" + +msgid "To disable this feature set it to '0' which means unlimited retries." msgstr "" msgid "Travelmate" msgstr "" -msgid "Use iw for scanning" +msgid "Travelmate Logfile" +msgstr "" + +msgid "Travelmate version" +msgstr "" + +msgid "Trigger delay" +msgstr "" + +msgid "Unknown" +msgstr "" + +msgid "Uplink / Trigger interface" +msgstr "" + +msgid "Uplink SSID" +msgstr "" + +msgid "Uplink interface" +msgstr "" + +msgid "View Logfile" +msgstr "" + +msgid "WEP" +msgstr "" + +msgid "WEP passphrase" +msgstr "" + +msgid "WPA / WPA2" +msgstr "" + +msgid "WPA passphrase" +msgstr "" + +msgid "Wireless Scan" +msgstr "" + +msgid "Wireless Stations" +msgstr "" + +msgid "" +"add it to the wan zone of the firewall. This step has only to be done once." +msgstr "" + +msgid "connected" +msgstr "" + +msgid "hidden" +msgstr "" + +msgid "n/a" +msgstr "" + +msgid "not connected" msgstr "" |