diff options
59 files changed, 1377 insertions, 255 deletions
diff --git a/applications/luci-app-rp-pppoe-server/Makefile b/applications/luci-app-rp-pppoe-server/Makefile new file mode 100644 index 0000000000..6cf4595cea --- /dev/null +++ b/applications/luci-app-rp-pppoe-server/Makefile @@ -0,0 +1,15 @@ +# +# Copyright (C) 2015 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=Roaring Penguing PPPoE Server +LUCI_DEPENDS:=+rp-pppoe-server + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua b/applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua new file mode 100644 index 0000000000..105a80e28d --- /dev/null +++ b/applications/luci-app-rp-pppoe-server/luasrc/controller/rp-pppoe-server.lua @@ -0,0 +1,13 @@ +-- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com> +-- Licensed to the public under the Apache License 2.0. + +module("luci.controller.rp-pppoe-server", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/pppoe") then + return + end + + entry({"admin", "services", "rp-pppoe-server"}, cbi("rp-pppoe-server"), _("RP PPPoE Server")) +end + diff --git a/applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua b/applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua new file mode 100644 index 0000000000..ef15ed6127 --- /dev/null +++ b/applications/luci-app-rp-pppoe-server/luasrc/model/cbi/rp-pppoe-server.lua @@ -0,0 +1,72 @@ +-- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com> +-- Licensed to the public under the Apache License 2.0. + +local m, s, o + +local nixio = require "nixio" + +m = Map("pppoe", translate("Roaring Penguin PPPoE Server"), + translate("PPPoE Server Configuration")) + +s = m:section(TypedSection, "pppoe_server", translate("Server Configuration")) +s.addremove = false +s.anonymous = true + +o = s:option(Value, "interface", translate("Interface"), translate("Interface on which to listen.")) +o.template = "cbi/network_ifacelist" +o.nocreate = true + +o = s:option(Value, "ac_name", translate("Access Concentrator Name")) +o.optional = true + +o = s:option(DynamicList, "service_name", translate("Service Name")) +o.optional = true + +o = s:option(Value, "maxsessionsperpeer", translate("Maximum sessions per peer")) +o.optional = true +o.datatype = "uinteger" + +o = s:option(Value, "localip", translate("IP of listening side")) +o.datetype = "ipaddr" + +o = s:option(Value, "firstremoteip", translate("First remote IP")) +o.datatype = "ipaddr" + +o = s:option(Value, "maxsessions", translate("Maximum sessions")) +o.datatype = "uinteger" +o.default = 64 +o.optional = true + +o = s:option(Value, "optionsfile", translate("Options file")) +o.default = "/etc/ppp/pppoe-server-options" +o.optional = true + +o = s:option(Flag, "randomsessions", translate("Random session selection"), translate("Instead of starting at beginning and going to end, randomize session number")) +o.optional = true + +o = s:option(Value, "unit", translate("Unit"), translate("PPP unit number")) +o.optional = true +o.datatype = "uinteger" +o.default = 0 + +o = s:option(Value, "offset", translate("Offset"), translate("PPP offset")) +o.optional = true +o.datatype = "uinteger" +o.default = 0 + +o = s:option(Value, "timeout", translate("Timeout")) +o.optional = true +o.datatype = "uinteger" +o.default = 60 + +o = s:option(Value, "mss", translate("MSS")) +o.optional = true +o.datatype = "uinteger" +o.default = 1468 + + +o = s:option(Flag, "sync", translate("Sync")) +o.optional = true +o.default = false + +return m diff --git a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua index 3f26aeed6f..36c5554d35 100644 --- a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua +++ b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua @@ -25,6 +25,7 @@ function index() conntrack = _("Conntrack"), cpu = _("Processor"), + cpufreq = _("CPU Frequency"), csv = _("CSV Output"), df = _("Disk Space Usage"), disk = _("Disk Usage"), @@ -49,6 +50,7 @@ function index() sensors = _("Sensors"), splash_leases = _("Splash Leases"), tcpconns = _("TCP Connections"), + thermal = _("Thermal"), unixsock = _("UnixSock"), uptime = _("Uptime") } @@ -56,8 +58,12 @@ function index() -- our collectd menu local collectd_menu = { output = { "csv", "network", "rrdtool", "unixsock" }, - general = { "cpu", "df", "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "sensors", "uptime" }, - network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "openvpn", "ping", "splash_leases", "tcpconns", "iwinfo" } + general = { "cpu", "cpufreq", "df", "disk", "email", + "entropy", "exec", "irq", "load", "memory", + "nut", "processes", "sensors", "thermal", "uptime" }, + network = { "conntrack", "dns", "interface", "iptables", + "netlink", "olsrd", "openvpn", "ping", + "splash_leases", "tcpconns", "iwinfo" } } -- create toplevel menu nodes diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua new file mode 100644 index 0000000000..d1116630b4 --- /dev/null +++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua @@ -0,0 +1,14 @@ +-- Licensed to the public under the Apache License 2.0. + +m = Map("luci_statistics", + translate("CPU Frequency Plugin Configuration"), + translate("This plugin collects statistics about the processor frequency scaling.")) + +-- collectd_cpufreq config section +s = m:section( NamedSection, "collectd_cpufreq", "luci_statistics" ) + +-- collectd_cpufreq.enable +enable = s:option( Flag, "enable", translate("Enable this plugin") ) +enable.default = 0 + +return m diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua new file mode 100644 index 0000000000..bdf41b79bc --- /dev/null +++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua @@ -0,0 +1,29 @@ +-- Licensed to the public under the Apache License 2.0. + +m = Map("luci_statistics", + translate("Thermal Plugin Configuration"), + translate("The thermal plugin will monitor temperature of the system. " .. + "Data is typically read from /sys/class/thermal/*/temp " .. + "( '*' denotes the thermal device to be read, e.g. thermal_zone1 )") + ) + +-- collectd_thermal config section +s = m:section( NamedSection, "collectd_thermal", "luci_statistics" ) + +-- collectd_thermal.enable +enable = s:option( Flag, "enable", translate("Enable this plugin") ) +enable.default = 0 + +-- collectd_thermal.tz (Device) +tz = s:option( Value, "Device", translate("Monitor device(s) / thermal zone(s)"), + translate("Empty value = monitor all") ) +tz.optional = true +tz:depends( "enable", 1 ) + +-- collectd_thermal.ignoreselected (IgnoreSelected) +ignoreselected = s:option( Flag, "IgnoreSelected", translate("Monitor all except specified") ) +ignoreselected.default = 0 +ignoreselected.optional = true +ignoreselected:depends( "enable", 1 ) + +return m diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua new file mode 100644 index 0000000000..25a72d2285 --- /dev/null +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua @@ -0,0 +1,25 @@ +-- Licensed to the public under the Apache License 2.0. + +module("luci.statistics.rrdtool.definitions.cpufreq",package.seeall) + +function rrdargs( graph, plugin, plugin_instance, dtype ) + + return { + title = "%H: Processor frequency", + alt_autoscale = true, + vlabel = "Frequency (Hz)", + number_format = "%3.2lf%s", + data = { + sources = { + cpufreq = { "" } + }, + options = { + cpufreq_0 = { color = "ff0000", title = "Core 0", noarea=true, overlay=true }, + cpufreq_1 = { color = "0000ff", title = "Core 1", noarea=true, overlay=true }, + cpufreq_2 = { color = "00ff00", title = "Core 2", noarea=true, overlay=true }, + cpufreq_3 = { color = "00ffff", title = "Core 3", noarea=true, overlay=true } + } + } + } +end + diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua index 8b04ab8b38..dd93196902 100644 --- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua @@ -32,23 +32,24 @@ function rrdargs( graph, plugin, plugin_instance, dtype ) options = { current_output = { color = "00e000", title = "Output current", noarea=true, overlay=true }, - current_battery = { color = "0000ff", title = "Battery current", noarea=true, overlay=true }, + current_battery = { color = "0000ff", title = "Battery current", noarea=true, overlay=true } } } } local percentage = { - title = "%H: Battery charge on UPS \"%pi\"", + title = "%H: Battery charge/load on UPS \"%pi\"", vlabel = "Percent", y_min = "0", y_max = "100", number_format = "%5.1lf%%", data = { instances = { - percent = "charge" + percent = { "charge", "load" } }, options = { - percent_charge = { color = "00ff00", title = "Charge level" } + percent_charge = { color = "00ff00", title = "Charge level" }, + percent_load = { color = "ff0000", title = "Load" } } } } @@ -78,10 +79,39 @@ function rrdargs( graph, plugin, plugin_instance, dtype ) timeleft = { "battery" } }, options = { - timeleft_battery = { color = "0000ff", title = "Time left", transform_rpn = "60,/" } + timeleft_battery = { color = "0000ff", title = "Time left", transform_rpn = "60,/", noarea=true } } } } - return { voltages, currents, percentage, temperature, timeleft } + local power = { + title = "%H: Power on UPS \"%pi\"", + vlabel = "Power", + number_format = "%5.1lf%%", + data = { + instances = { + power = { "ups" } + }, + options = { + power_ups = { color = "00ff00", title = "Power level" } + } + } + } + + local frequencies = { + title = "%H: Frequencies on UPS \"%pi\"", + vlabel = "Hz", + number_format = "%5.1lfHz", + data = { + instances = { + frequency = { "input", "output" } + }, + + options = { + frequency_output = { color = "00e000", title = "Output frequency", noarea=true, overlay=true }, + frequency_input = { color = "ffb000", title = "Input frequency", noarea=true, overlay=true } + } + } + } + return { voltages, currents, percentage, temperature, timeleft, power, frequencies } end diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua new file mode 100644 index 0000000000..532246465e --- /dev/null +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua @@ -0,0 +1,20 @@ +-- Licensed to the public under the Apache License 2.0. + +module("luci.statistics.rrdtool.definitions.thermal",package.seeall) + +function rrdargs( graph, plugin, plugin_instance, dtype ) + + return { + title = "%H: Temperature of %pi", + alt_autoscale = true, + vlabel = "Celsius", + number_format = "%3.1lf%s", + data = { + types = { "temperature" }, + options = { + temperature = { color = "ff0000", title = "Temperature", noarea=true }, + } + } + } +end + diff --git a/applications/luci-app-statistics/root/etc/config/luci_statistics b/applications/luci-app-statistics/root/etc/config/luci_statistics index 4435d5c61e..774a8382e2 100644 --- a/applications/luci-app-statistics/root/etc/config/luci_statistics +++ b/applications/luci-app-statistics/root/etc/config/luci_statistics @@ -55,6 +55,9 @@ config statistics 'collectd_conntrack' config statistics 'collectd_cpu' option enable '1' +config statistics 'collectd_cpufreq' + option enable '0' + config statistics 'collectd_df' option enable '0' option Devices '/dev/mtdblock/4' @@ -151,6 +154,11 @@ config statistics 'collectd_tcpconns' option ListeningPorts '0' option LocalPorts '22 80' +config statistics 'collectd_thermal' + option enable '0' + option IgnoreSelected '0' + option Device '' + config statistics 'collectd_uptime' option enable '0' diff --git a/applications/luci-app-statistics/root/usr/bin/stat-genconfig b/applications/luci-app-statistics/root/usr/bin/stat-genconfig index 49d8a09935..df9af15261 100755 --- a/applications/luci-app-statistics/root/usr/bin/stat-genconfig +++ b/applications/luci-app-statistics/root/usr/bin/stat-genconfig @@ -273,6 +273,12 @@ plugins = { { } }, + cpufreq = { + { }, + { }, + { } + }, + csv = { { "DataDir" }, { "StoreRates" }, @@ -417,6 +423,12 @@ plugins = { { "LocalPorts", "RemotePorts" } }, + thermal = { + { }, + { "IgnoreSelected" }, + { "Device" } + }, + unixsock = { { "SocketFile", "SocketGroup", "SocketPerms" }, { }, diff --git a/applications/luci-app-travelmate/Makefile b/applications/luci-app-travelmate/Makefile new file mode 100644 index 0000000000..f4b1b0a4e3 --- /dev/null +++ b/applications/luci-app-travelmate/Makefile @@ -0,0 +1,13 @@ +# +# 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_PKGARCH:=all + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-travelmate/luasrc/controller/travelmate.lua b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua new file mode 100644 index 0000000000..27c19c4e52 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/controller/travelmate.lua @@ -0,0 +1,11 @@ +-- Licensed to the public under the Apache License 2.0. + +module("luci.controller.travelmate", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/travelmate") then + return + end + + entry({"admin", "services", "travelmate"}, cbi("travelmate"), _("Travelmate"), 60) +end diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua new file mode 100644 index 0000000000..9050ae9686 --- /dev/null +++ b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua @@ -0,0 +1,53 @@ +-- 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_loop", translate("Loop timeout in seconds for wlan monitoring"), + translate("Default 30, range 5-60")) +o.rmempty = false +o.default = 30 +o.datatype = "range(5,60)" + +o = s:option(Value, "trm_maxretry", translate("Max. number of connection retries to an uplink"), + translate("Default 3, range 0-10. Set to 0 to allow unlimited retries")) +o.rmempty = false +o.default = 3 +o.datatype = "range(0,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_device", translate("Use only one radio, e.g. 'radio0'"), + translate("Default: empty = use all radios.")) +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/po/templates/travelmate.pot b/applications/luci-app-travelmate/po/templates/travelmate.pot new file mode 100644 index 0000000000..533b3e2639 --- /dev/null +++ b/applications/luci-app-travelmate/po/templates/travelmate.pot @@ -0,0 +1,56 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +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 "" + +msgid "" +"Configuration of the Travelmate package to enable travel router " +"functionality." +msgstr "" + +msgid "Debug logging" +msgstr "" + +msgid "Default 3, range 0-10. Set to 0 to allow unlimited retries" +msgstr "" + +msgid "Default 30, range 5-60" +msgstr "" + +msgid "Default: empty = use all radios." +msgstr "" + +msgid "Disable this if you want to use iwinfo instead of iw" +msgstr "" + +msgid "Enable Travelmate" +msgstr "" + +msgid "Extra options" +msgstr "" + +msgid "Global options" +msgstr "" + +msgid "Link to detailed advice" +msgstr "" + +msgid "Loop timeout in seconds for wlan monitoring" +msgstr "" + +msgid "Max. number of connection retries to an uplink" +msgstr "" + +msgid "Travelmate" +msgstr "" + +msgid "Use iw for scanning" +msgstr "" + +msgid "Use only one radio, e.g. 'radio0'" +msgstr "" diff --git a/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate b/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate new file mode 100755 index 0000000000..f7676774a1 --- /dev/null +++ b/applications/luci-app-travelmate/root/etc/uci-defaults/40_luci-travelmate @@ -0,0 +1,11 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@travelmate[-1] + add ucitrack travelmate + set ucitrack.@travelmate[-1].init=travelmate + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/applications/luci-app-wifischedule/Makefile b/applications/luci-app-wifischedule/Makefile new file mode 100644 index 0000000000..1708562a4e --- /dev/null +++ b/applications/luci-app-wifischedule/Makefile @@ -0,0 +1,22 @@ +# Copyright (c) 2016, prpl Foundation +# +# Permission to use, copy, modify, and/or distribute this software for any purpose with or without +# fee is hereby granted, provided that the above copyright notice and this permission notice appear +# in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE +# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +# FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +# Author: Nils Koenig <openwrt@newk.it> + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=Turns WiFi on and off according to a schedule +LUCI_DEPENDS:=+wifischedule + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-wifischedule/README.md b/applications/luci-app-wifischedule/README.md new file mode 100644 index 0000000000..591abb1049 --- /dev/null +++ b/applications/luci-app-wifischedule/README.md @@ -0,0 +1,86 @@ +# wifischedule +Turns WiFi on and off according to a schedule on an openwrt router + +## Components +* wifischedule: Shell script that creates cron jobs based on configuration provided in UCI and does all the other logic of enabling and disabling wifi with the use of `/sbin/wifi` and `/usr/bin/iwinfo`. Can be used standalone. +* luci-app-wifischedule: LUCI frontend for creating the UCI configuration and triggering the actions. Depends on wifischedule. + + +## Use cases +You can create user-defined events when to enable or disable WiFi. +There are various use cases why you would like to do so: + +1. Reduce power consumption and therefore reduce CO2 emissions. +2. Reduce emitted electromagnatic radiation. +3. Force busincess hours when WiFi is available. + +Regarding 1: Please note, that you need to unload the wireless driver modules in order to get the most effect of saving power. +In my test scenario only disabling WiFi saves about ~0.4 Watt, unloading the modules removes another ~0.4 Watt. + +Regarding 2: Think of a wireless accesspoint e.g. in your bedrom, kids room where you want to remove the ammount of radiation emitted. + +Regarding 3: E.g. in a company, why would wireless need to be enabled weekends if no one is there working? +Or think of an accesspoint in your kids room when you want the youngsters to sleep after 10 pm instead of facebooking... + +## Configuration +You can create an arbitrary number of schedule events. Please note that there is on sanity check done wheather the start / stop times overlap or make sense. +If start and stop time are equal, this leads to disabling the WiFi at the given time. + +Logging if enabled is done to the file `/var/log/wifi_schedule.log` and can be reviewed through the "View Logfile" tab. +The cron jobs created can be reviewed through the "View Cron Jobs" tab. + +Please note that the "Unload Modules" function is currently considered as experimental. You can manually add / remove modules in the text field. +The button "Determine Modules Automatically" tries to make a best guess determining regarding the driver module and its dependencies. +When un-/loading the modules, there is a certain number of retries (`module_load`) performed. + +The option "Force disabling wifi even if stations associated" does what it says - when activated it simply shuts down WiFi. +When unchecked, its checked every `recheck_interval` minutes if there are still stations associated. Once the stations disconnect, WiFi is disabled. + +Please note, that the parameters `module_load` and `recheck_interval` are only accessible through uci. + +## UCI Configuration `wifi_schedule` +UCI configuration file: `/etc/config/wifi_schedule`: + +``` +config global + option logging '0' + option enabled '0' + option recheck_interval '10' + option modules_retries '10' + +config entry 'Businesshours' + option enabled '0' + option daysofweek 'Monday Tuesday Wednesday Thursday Friday' + option starttime '06:00' + option stoptime '22:00' + option forcewifidown '0' + +config entry 'Weekend' + option enabled '0' + option daysofweek 'Saturday Sunday' + option starttime '00:00' + option stoptime '00:00' + option forcewifidown '1' +``` + +## Script: `wifi_schedule.sh` +This is the script that does the work. Make your changes to the UCI config file: `/etc/config/wifi_schedule` + +Then call the script as follows in order to get the necessary cron jobs created: + +`wifi_schedule.sh cron` + +All commands: + +``` +wifi_schedule.sh cron|start|stop|forcestop|recheck|getmodules|savemodules|help + + cron: Create cronjob entries. + start: Start wifi. + stop: Stop wifi gracefully, i.e. check if there are stations associated and if so keep retrying. + forcestop: Stop wifi immediately. + recheck: Recheck if wifi can be disabled now. + getmodules: Returns a list of modules used by the wireless driver(s) + savemodules: Saves a list of automatic determined modules to UCI + help: This description. +``` diff --git a/applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua b/applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua new file mode 100644 index 0000000000..a33c7aab9a --- /dev/null +++ b/applications/luci-app-wifischedule/luasrc/controller/wifischedule/wifi_schedule.lua @@ -0,0 +1,32 @@ +-- Copyright (c) 2016, prpl Foundation +-- +-- Permission to use, copy, modify, and/or distribute this software for any purpose with or without +-- fee is hereby granted, provided that the above copyright notice and this permission notice appear +-- in all copies. +-- +-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE +-- INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +-- FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +-- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +-- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-- +-- Author: Nils Koenig <openwrt@newk.it> + +module("luci.controller.wifischedule.wifi_schedule", package.seeall) + +function index() + entry({"admin", "wifi_schedule"}, firstchild(), "Wifi Schedule", 60).dependent=false + entry({"admin", "wifi_schedule", "tab_from_cbi"}, cbi("wifischedule/wifi_schedule"), "Schedule", 1) + entry({"admin", "wifi_schedule", "wifi_schedule"}, call("wifi_schedule_log"), "View Logfile", 2) + entry({"admin", "wifi_schedule", "cronjob"}, call("view_crontab"), "View Cron Jobs", 3) +end + +function wifi_schedule_log() + local logfile = luci.sys.exec("cat /tmp/log/wifi_schedule.log") + luci.template.render("wifischedule/file_viewer", {title="Wifi Schedule Logfile", content=logfile}) +end + +function view_crontab() + local crontab = luci.sys.exec("cat /etc/crontabs/root") + luci.template.render("wifischedule/file_viewer", {title="Cron Jobs", content=crontab}) +end diff --git a/applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua b/applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua new file mode 100644 index 0000000000..2cca476b4f --- /dev/null +++ b/applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua @@ -0,0 +1,259 @@ +-- Copyright (c) 2016, prpl Foundation +-- +-- Permission to use, copy, modify, and/or distribute this software for any purpose with or without +-- fee is hereby granted, provided that the above copyright notice and this permission notice appear +-- in all copies. +-- +-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE +-- INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +-- FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +-- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +-- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +-- +-- Author: Nils Koenig <openwrt@newk.it> + +function file_exists(name) + local f=io.open(name,"r") + if f~=nil then io.close(f) return true else return false end +end + + +function time_validator(self, value, desc) + if value ~= nil then + + h_str, m_str = string.match(value, "^(%d%d?):(%d%d?)$") + h = tonumber(h_str) + m = tonumber(m_str) + if ( h ~= nil and + h >= 0 and + h <= 23 and + m ~= nil and + m >= 0 and + m <= 59) then + return value + end + end + return nil, translate("The value '" .. desc .. "' is invalid") +end + +-- ------------------------------------------------------------------------------------------------- + +-- BEGIN Map +m = Map("wifi_schedule", translate("Wifi Schedule"), translate("Defines a schedule when to turn on and off wifi.")) +function m.on_commit(self) + luci.sys.exec("/usr/bin/wifi_schedule.sh cron") +end +-- END Map + +-- BEGIN Global Section +global_section = m:section(TypedSection, "global", "Global Settings") +global_section.optional = false +global_section.rmempty = false +global_section.anonymous = true +-- END Section + +-- BEGIN Global Enable Checkbox +global_enable = global_section:option(Flag, "enabled", translate("Enable Wifi Schedule")) +global_enable.optional=false; +global_enable.rmempty = false; + +function global_enable.validate(self, value, global_section) + if value == "1" then + if ( file_exists("/sbin/wifi") and + file_exists("/usr/bin/wifi_schedule.sh") )then + return value + else + return nil, translate("Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi") + end + else + return "0" + end +end +-- END Global Enable Checkbox + + +-- BEGIN Global Logging Checkbox +global_logging = global_section:option(Flag, "logging", translate("Enable logging")) +global_logging.optional=false; +global_logging.rmempty = false; +global_logging.default = 0 +-- END Global Enable Checkbox + +-- BEGIN Global Activate WiFi Button +enable_wifi = global_section:option(Button, "enable_wifi", translate("Activate wifi")) +function enable_wifi.write() + luci.sys.exec("/usr/bin/wifi_schedule.sh start manual") +end +-- END Global Activate Wifi Button + +-- BEGIN Global Disable WiFi Gracefully Button +disable_wifi_gracefully = global_section:option(Button, "disable_wifi_gracefully", translate("Disable wifi gracefully")) +function disable_wifi_gracefully.write() + luci.sys.exec("/usr/bin/wifi_schedule.sh stop manual") +end +-- END Global Disable Wifi Gracefully Button + +-- BEGIN Disable WiFi Forced Button +disable_wifi_forced = global_section:option(Button, "disable_wifi_forced", translate("Disabled wifi forced")) +function disable_wifi_forced.write() + luci.sys.exec("/usr/bin/wifi_schedule.sh forcestop manual") +end +-- END Global Disable WiFi Forced Button + +-- BEGIN Global Unload Modules Checkbox +global_unload_modules = global_section:option(Flag, "unload_modules", translate("Unload Modules (experimental; saves more power)")) +global_unload_modules.optional = false; +global_unload_modules.rmempty = false; +global_unload_modules.default = 0 +-- END Global Unload Modules Checkbox + + +-- BEGIN Modules +modules = global_section:option(TextValue, "modules", "") +modules:depends("unload_modules", global_unload_modules.enabled); +modules.wrap = "off" +modules.rows = 10 + +function modules.cfgvalue(self, section) + mod=uci.get("wifi_schedule", section, "modules") + if mod == nil then + mod="" + end + return mod:gsub(" ", "\r\n") +end + +function modules.write(self, section, value) + if value then + value_list = value:gsub("\r\n", " ") + ListValue.write(self, section, value_list) + uci.set("wifi_schedule", section, "modules", value_list) + end +end +-- END Modules + +-- BEGIN Determine Modules +determine_modules = global_section:option(Button, "determine_modules", translate("Determine Modules Automatically")) +determine_modules:depends("unload_modules", global_unload_modules.enabled); +function determine_modules.write(self, section) + output = luci.sys.exec("/usr/bin/wifi_schedule.sh getmodules") + modules:write(section, output) +end +-- END Determine Modules + + +-- BEGIN Section +d = m:section(TypedSection, "entry", "Schedule events") +d.addremove = true +--d.anonymous = true +-- END Section + +-- BEGIN Enable Checkbox +c = d:option(Flag, "enabled", translate("Enable")) +c.optional=false; c.rmempty = false; +-- END Enable Checkbox + + +-- BEGIN Day(s) of Week +dow = d:option(MultiValue, "daysofweek", translate("Day(s) of Week")) +dow.optional = false +dow.rmempty = false +dow:value("Monday") +dow:value("Tuesday") +dow:value("Wednesday") +dow:value("Thursday") +dow:value("Friday") +dow:value("Saturday") +dow:value("Sunday") +-- END Day(s) of Weel + +-- BEGIN Start Wifi Dropdown +starttime = d:option(Value, "starttime", translate("Start WiFi")) +starttime.optional=false; +starttime.rmempty = false; +starttime:value("00:00") +starttime:value("01:00") +starttime:value("02:00") +starttime:value("03:00") +starttime:value("04:00") +starttime:value("05:00") +starttime:value("06:00") +starttime:value("07:00") +starttime:value("08:00") +starttime:value("09:00") +starttime:value("10:00") +starttime:value("11:00") +starttime:value("12:00") +starttime:value("13:00") +starttime:value("14:00") +starttime:value("15:00") +starttime:value("16:00") +starttime:value("17:00") +starttime:value("18:00") +starttime:value("19:00") +starttime:value("20:00") +starttime:value("21:00") +starttime:value("22:00") +starttime:value("23:00") + +function starttime.validate(self, value, d) + return time_validator(self, value, translate("Start Time")) +end + +-- END Start Wifi Dropdown + + +-- BEGIN Stop Wifi Dropdown +stoptime = d:option(Value, "stoptime", translate("Stop WiFi")) +stoptime.optional=false; +stoptime.rmempty = false; +stoptime:value("00:00") +stoptime:value("01:00") +stoptime:value("02:00") +stoptime:value("03:00") +stoptime:value("04:00") +stoptime:value("05:00") +stoptime:value("06:00") +stoptime:value("07:00") +stoptime:value("08:00") +stoptime:value("09:00") +stoptime:value("10:00") +stoptime:value("11:00") +stoptime:value("12:00") +stoptime:value("13:00") +stoptime:value("14:00") +stoptime:value("15:00") +stoptime:value("16:00") +stoptime:value("17:00") +stoptime:value("18:00") +stoptime:value("19:00") +stoptime:value("20:00") +stoptime:value("21:00") +stoptime:value("22:00") +stoptime:value("23:00") + +function stoptime.validate(self, value, d) + return time_validator(self, value, translate("Stop Time")) +end +-- END Stop Wifi Dropdown + + +-- BEGIN Force Wifi Stop Checkbox +force_wifi = d:option(Flag, "forcewifidown", translate("Force disabling wifi even if stations associated")) +force_wifi.default = false +force_wifi.rmempty = false; + +function force_wifi.validate(self, value, d) + if value == "0" then + if file_exists("/usr/bin/iwinfo") then + return value + else + return nil, translate("Could not find required programm /usr/bin/iwinfo") + end + else + return "1" + end +end +-- END Force Wifi Checkbox + + +return m diff --git a/applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm b/applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm new file mode 100644 index 0000000000..f67a2bea99 --- /dev/null +++ b/applications/luci-app-wifischedule/luasrc/view/wifischedule/file_viewer.htm @@ -0,0 +1,22 @@ +<%# +Copyright (c) 2016, prpl Foundation + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without +fee is hereby granted, provided that the above copyright notice and this permission notice appear +in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Author: Nils Koenig <openwrt@newk.it> +-%> + +<%+header%> +<h2 name="title"><%=title%></h2> +<div id="content_fileviewer"> +<textarea style="width: 100%" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+1%>" id="content_id"><%=content:pcdata()%></textarea> +</div> +<%+footer%> diff --git a/documentation/i18n.md b/documentation/i18n.md index fdacb0853a..226a406c2a 100644 --- a/documentation/i18n.md +++ b/documentation/i18n.md @@ -1,17 +1,19 @@ # General -Translations are saved in the folder po/. You find the reference in po/templates/<package>.pot. The actual translation files can be found at po/<lang>/<package>.po . +Translations are saved in the folder po/ for each module and application. You find the reference in po/templates/<package>.pot. The actual translation files can be found at po/[lang]/[package].po . In order to use the commands below you need to have the _gettext'' utilities (''msgcat'', ''msgfmt'', ''msgmerge_) installed on your system. # Rebuild po files If you want to rebuild the translations after you made changes to a package this is an easy way: - - - ./build/i18n-scan.pl applications/[package] > po/templates/[application].pot - ./build/i18n-update.pl po [application].po -*Note:* Some packages share translation files, in this case you need to scan through all their folders. The first command from above should then be: + ./build/i18n-scan.pl applications/[application] > applications/[application]/po/templates/[application_basename].pot + ./build/i18n-update.pl applications/[application]/po + Example: + ./build/i18n-scan.pl applications/luci-app-firewall > applications/luci-app-firewall/po/templates/firewall.pot + ./build/i18n-update.pl applications/luci-app-firewall/po + (note that the directory argument can be omitted for i18n-update.pl to update all apps) - ./build/i18n-scan.pl applications/[package-1] applications/[package-2] applications/[package-n] > po/templates/[application].pot +*Note:* Some packages share translation files, in this case you need to scan through all their folders. The first command from above should then be: + ./build/i18n-scan.pl applications/[package-1] applications/[package-2] applications/[package-n] > [location of shared template]/[application].pot @@ -150,18 +150,26 @@ LUCI_LIBRARYDIR = $(LUA_LIBRARYDIR)/luci define SrcDiet $(FIND) $(1) -type f -name '*.lua' | while read src; do \ - if $(STAGING_DIR)/host/bin/lua $(STAGING_DIR)/host/bin/LuaSrcDiet \ - --noopt-binequiv -o "$$$$src.o" "$$$$src"; \ + if LuaSrcDiet --noopt-binequiv -o "$$$$src.o" "$$$$src"; \ then mv "$$$$src.o" "$$$$src"; fi; \ done endef +define SubstituteVersion + $(FIND) $(1) -type f -name '*.htm' | while read src; do \ + $(SED) 's/<%# *\([^ ]*\)PKG_VERSION *%>/\1$(PKG_VERSION)/g' \ + -e 's/"\(<%= *\(media\|resource\) *%>[^"]*\.\(js\|css\)\)"/"\1?v=$(PKG_VERSION)"/g' \ + "$$$$src"; \ + done +endef + define Package/$(PKG_NAME)/install if [ -d $(PKG_BUILD_DIR)/luasrc ]; then \ $(INSTALL_DIR) $(1)$(LUCI_LIBRARYDIR); \ cp -pR $(PKG_BUILD_DIR)/luasrc/* $(1)$(LUCI_LIBRARYDIR)/; \ $(FIND) $(1)$(LUCI_LIBRARYDIR)/ -type f -name '*.luadoc' | $(XARGS) rm; \ $(if $(CONFIG_LUCI_SRCDIET),$(call SrcDiet,$(1)$(LUCI_LIBRARYDIR)/),true); \ + $(call SubstituteVersion,$(1)$(LUCI_LIBRARYDIR)/); \ else true; fi if [ -d $(PKG_BUILD_DIR)/htdocs ]; then \ $(INSTALL_DIR) $(1)$(HTDOCS); \ diff --git a/modules/luci-base/Makefile b/modules/luci-base/Makefile index f0763cb1df..972a451c69 100644 --- a/modules/luci-base/Makefile +++ b/modules/luci-base/Makefile @@ -37,10 +37,9 @@ define Host/Compile endef define Host/Install - $(INSTALL_DIR) $(STAGING_DIR)/host/bin - $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin - $(INSTALL_BIN) src/po2lmo $(STAGING_DIR_HOST)/bin/po2lmo - $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/LuaSrcDiet.lua $(STAGING_DIR)/host/bin/LuaSrcDiet + $(INSTALL_DIR) $(1)/bin + $(INSTALL_BIN) src/po2lmo $(1)/bin/po2lmo + $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/LuaSrcDiet.lua $(1)/bin/LuaSrcDiet endef $(eval $(call HostBuild)) diff --git a/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua b/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua index c9a507eaa2..66136903a7 100644 --- a/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua +++ b/modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua @@ -87,7 +87,7 @@ TZ = { { 'America/Cambridge Bay', 'MST7MDT,M3.2.0,M11.1.0' }, { 'America/Campo Grande', 'AMT4AMST,M10.3.0/0,M2.3.0/0' }, { 'America/Cancun', 'EST5' }, - { 'America/Caracas', 'VET4:30' }, + { 'America/Caracas', 'VET4' }, { 'America/Cayenne', 'GFT3' }, { 'America/Cayman', 'EST5' }, { 'America/Chicago', 'CST6CDT,M3.2.0,M11.1.0' }, @@ -201,97 +201,99 @@ TZ = { { 'America/Winnipeg', 'CST6CDT,M3.2.0,M11.1.0' }, { 'America/Yakutat', 'AKST9AKDT,M3.2.0,M11.1.0' }, { 'America/Yellowknife', 'MST7MDT,M3.2.0,M11.1.0' }, - { 'Antarctica/Casey', 'AWST-8' }, - { 'Antarctica/Davis', 'DAVT-7' }, - { 'Antarctica/DumontDUrville', 'DDUT-10' }, + { 'Antarctica/Casey', '<+11>-11' }, + { 'Antarctica/Davis', '<+07>-7' }, + { 'Antarctica/DumontDUrville', '<+10>-10' }, { 'Antarctica/Macquarie', 'MIST-11' }, - { 'Antarctica/Mawson', 'MAWT-5' }, + { 'Antarctica/Mawson', '<+05>-5' }, { 'Antarctica/McMurdo', 'NZST-12NZDT,M9.5.0,M4.1.0/3' }, { 'Antarctica/Palmer', 'CLT4CLST,M8.2.6/24,M5.2.6/24' }, - { 'Antarctica/Rothera', 'ROTT3' }, - { 'Antarctica/Syowa', 'SYOT-3' }, - { 'Antarctica/Troll', 'UTC0CEST-2,M3.5.0/1,M10.5.0/3' }, - { 'Antarctica/Vostok', 'VOST-6' }, + { 'Antarctica/Rothera', '<-03>3' }, + { 'Antarctica/Syowa', '<+03>-3' }, + { 'Antarctica/Troll', '<+00>0<+02>-2,M3.5.0/1,M10.5.0/3' }, + { 'Antarctica/Vostok', '<+06>-6' }, { 'Arctic/Longyearbyen', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Asia/Aden', 'AST-3' }, - { 'Asia/Almaty', 'ALMT-6' }, + { 'Asia/Almaty', '<+06>-6' }, { 'Asia/Amman', 'EET-2EEST,M3.5.4/24,M10.5.5/1' }, - { 'Asia/Anadyr', 'ANAT-12' }, - { 'Asia/Aqtau', 'AQTT-5' }, - { 'Asia/Aqtobe', 'AQTT-5' }, - { 'Asia/Ashgabat', 'TMT-5' }, + { 'Asia/Anadyr', '<+12>-12' }, + { 'Asia/Aqtau', '<+05>-5' }, + { 'Asia/Aqtobe', '<+05>-5' }, + { 'Asia/Ashgabat', '<+05>-5' }, { 'Asia/Baghdad', 'AST-3' }, { 'Asia/Bahrain', 'AST-3' }, - { 'Asia/Baku', 'AZT-4' }, + { 'Asia/Baku', '<+04>-4' }, { 'Asia/Bangkok', 'ICT-7' }, { 'Asia/Barnaul', '<+07>-7' }, { 'Asia/Beirut', 'EET-2EEST,M3.5.0/0,M10.5.0/0' }, - { 'Asia/Bishkek', 'KGT-6' }, + { 'Asia/Bishkek', '<+06>-6' }, { 'Asia/Brunei', 'BNT-8' }, - { 'Asia/Chita', 'YAKT-9' }, + { 'Asia/Chita', '<+09>-9' }, { 'Asia/Choibalsan', 'CHOT-8CHOST,M3.5.6,M9.5.6/0' }, - { 'Asia/Colombo', 'IST-5:30' }, + { 'Asia/Colombo', '<+0530>-5:30' }, { 'Asia/Damascus', 'EET-2EEST,M3.5.5/0,M10.5.5/0' }, { 'Asia/Dhaka', 'BDT-6' }, { 'Asia/Dili', 'TLT-9' }, { 'Asia/Dubai', 'GST-4' }, - { 'Asia/Dushanbe', 'TJT-5' }, - { 'Asia/Gaza', 'EET-2EEST,M3.5.6/1,M10.3.6/144' }, - { 'Asia/Hebron', 'EET-2EEST,M3.5.6/1,M10.3.6/144' }, + { 'Asia/Dushanbe', '<+05>-5' }, + { 'Asia/Famagusta', '<+03>-3' }, + { 'Asia/Gaza', 'EET-2EEST,M3.5.6/1,M10.5.6/1' }, + { 'Asia/Hebron', 'EET-2EEST,M3.5.6/1,M10.5.6/1' }, { 'Asia/Ho Chi Minh', 'ICT-7' }, { 'Asia/Hong Kong', 'HKT-8' }, { 'Asia/Hovd', 'HOVT-7HOVST,M3.5.6,M9.5.6/0' }, - { 'Asia/Irkutsk', 'IRKT-8' }, + { 'Asia/Irkutsk', '<+08>-8' }, { 'Asia/Jakarta', 'WIB-7' }, { 'Asia/Jayapura', 'WIT-9' }, { 'Asia/Jerusalem', 'IST-2IDT,M3.4.4/26,M10.5.0' }, { 'Asia/Kabul', 'AFT-4:30' }, - { 'Asia/Kamchatka', 'PETT-12' }, + { 'Asia/Kamchatka', '<+12>-12' }, { 'Asia/Karachi', 'PKT-5' }, { 'Asia/Kathmandu', 'NPT-5:45' }, - { 'Asia/Khandyga', 'YAKT-9' }, + { 'Asia/Khandyga', '<+09>-9' }, { 'Asia/Kolkata', 'IST-5:30' }, - { 'Asia/Krasnoyarsk', 'KRAT-7' }, + { 'Asia/Krasnoyarsk', '<+07>-7' }, { 'Asia/Kuala Lumpur', 'MYT-8' }, { 'Asia/Kuching', 'MYT-8' }, { 'Asia/Kuwait', 'AST-3' }, { 'Asia/Macau', 'CST-8' }, - { 'Asia/Magadan', 'MAGT-10' }, + { 'Asia/Magadan', '<+11>-11' }, { 'Asia/Makassar', 'WITA-8' }, { 'Asia/Manila', 'PHT-8' }, { 'Asia/Muscat', 'GST-4' }, { 'Asia/Nicosia', 'EET-2EEST,M3.5.0/3,M10.5.0/4' }, - { 'Asia/Novokuznetsk', 'KRAT-7' }, - { 'Asia/Novosibirsk', 'NOVT-6' }, - { 'Asia/Omsk', 'OMST-6' }, - { 'Asia/Oral', 'ORAT-5' }, + { 'Asia/Novokuznetsk', '<+07>-7' }, + { 'Asia/Novosibirsk', '<+07>-7' }, + { 'Asia/Omsk', '<+06>-6' }, + { 'Asia/Oral', '<+05>-5' }, { 'Asia/Phnom Penh', 'ICT-7' }, { 'Asia/Pontianak', 'WIB-7' }, { 'Asia/Pyongyang', 'KST-8:30' }, { 'Asia/Qatar', 'AST-3' }, - { 'Asia/Qyzylorda', 'QYZT-6' }, - { 'Asia/Rangoon', 'MMT-6:30' }, + { 'Asia/Qyzylorda', '<+06>-6' }, { 'Asia/Riyadh', 'AST-3' }, - { 'Asia/Sakhalin', 'SAKT-11' }, - { 'Asia/Samarkand', 'UZT-5' }, + { 'Asia/Sakhalin', '<+11>-11' }, + { 'Asia/Samarkand', '<+05>-5' }, { 'Asia/Seoul', 'KST-9' }, { 'Asia/Shanghai', 'CST-8' }, { 'Asia/Singapore', 'SGT-8' }, - { 'Asia/Srednekolymsk', 'SRET-11' }, + { 'Asia/Srednekolymsk', '<+11>-11' }, { 'Asia/Taipei', 'CST-8' }, - { 'Asia/Tashkent', 'UZT-5' }, - { 'Asia/Tbilisi', 'GET-4' }, + { 'Asia/Tashkent', '<+05>-5' }, + { 'Asia/Tbilisi', '<+04>-4' }, { 'Asia/Tehran', 'IRST-3:30IRDT,J80/0,J264/0' }, { 'Asia/Thimphu', 'BTT-6' }, { 'Asia/Tokyo', 'JST-9' }, + { 'Asia/Tomsk', '<+07>-7' }, { 'Asia/Ulaanbaatar', 'ULAT-8ULAST,M3.5.6,M9.5.6/0' }, { 'Asia/Urumqi', 'XJT-6' }, - { 'Asia/Ust-Nera', 'VLAT-10' }, + { 'Asia/Ust-Nera', '<+10>-10' }, { 'Asia/Vientiane', 'ICT-7' }, - { 'Asia/Vladivostok', 'VLAT-10' }, - { 'Asia/Yakutsk', 'YAKT-9' }, - { 'Asia/Yekaterinburg', 'YEKT-5' }, - { 'Asia/Yerevan', 'AMT-4' }, + { 'Asia/Vladivostok', '<+10>-10' }, + { 'Asia/Yakutsk', '<+09>-9' }, + { 'Asia/Yangon', 'MMT-6:30' }, + { 'Asia/Yekaterinburg', '<+05>-5' }, + { 'Asia/Yerevan', '<+04>-4' }, { 'Atlantic/Azores', 'AZOT1AZOST,M3.5.0/0,M10.5.0/1' }, { 'Atlantic/Bermuda', 'AST4ADT,M3.2.0,M11.1.0' }, { 'Atlantic/Canary', 'WET0WEST,M3.5.0/1,M10.5.0' }, @@ -332,10 +334,11 @@ TZ = { { 'Europe/Guernsey', 'GMT0BST,M3.5.0/1,M10.5.0' }, { 'Europe/Helsinki', 'EET-2EEST,M3.5.0/3,M10.5.0/4' }, { 'Europe/Isle of Man', 'GMT0BST,M3.5.0/1,M10.5.0' }, - { 'Europe/Istanbul', 'EET-2EEST,M3.5.0/3,M10.5.0/4' }, + { 'Europe/Istanbul', '<+03>-3' }, { 'Europe/Jersey', 'GMT0BST,M3.5.0/1,M10.5.0' }, { 'Europe/Kaliningrad', 'EET-2' }, { 'Europe/Kiev', 'EET-2EEST,M3.5.0/3,M10.5.0/4' }, + { 'Europe/Kirov', '<+03>-3' }, { 'Europe/Lisbon', 'WET0WEST,M3.5.0/1,M10.5.0' }, { 'Europe/Ljubljana', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/London', 'GMT0BST,M3.5.0/1,M10.5.0' }, @@ -343,7 +346,7 @@ TZ = { { 'Europe/Madrid', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/Malta', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/Mariehamn', 'EET-2EEST,M3.5.0/3,M10.5.0/4' }, - { 'Europe/Minsk', 'MSK-3' }, + { 'Europe/Minsk', '<+03>-3' }, { 'Europe/Monaco', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/Moscow', 'MSK-3' }, { 'Europe/Oslo', 'CET-1CEST,M3.5.0,M10.5.0/3' }, @@ -352,7 +355,7 @@ TZ = { { 'Europe/Prague', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/Riga', 'EET-2EEST,M3.5.0/3,M10.5.0/4' }, { 'Europe/Rome', 'CET-1CEST,M3.5.0,M10.5.0/3' }, - { 'Europe/Samara', 'SAMT-4' }, + { 'Europe/Samara', '<+04>-4' }, { 'Europe/San Marino', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/Sarajevo', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/Simferopol', 'MSK-3' }, @@ -367,7 +370,7 @@ TZ = { { 'Europe/Vatican', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/Vienna', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/Vilnius', 'EET-2EEST,M3.5.0/3,M10.5.0/4' }, - { 'Europe/Volgograd', 'MSK-3' }, + { 'Europe/Volgograd', '<+03>-3' }, { 'Europe/Warsaw', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/Zagreb', 'CET-1CEST,M3.5.0,M10.5.0/3' }, { 'Europe/Zaporozhye', 'EET-2EEST,M3.5.0/3,M10.5.0/4' }, @@ -377,7 +380,7 @@ TZ = { { 'Indian/Christmas', 'CXT-7' }, { 'Indian/Cocos', 'CCT-6:30' }, { 'Indian/Comoro', 'EAT-3' }, - { 'Indian/Kerguelen', 'TFT-5' }, + { 'Indian/Kerguelen', '<+05>-5' }, { 'Indian/Mahe', 'SCT-4' }, { 'Indian/Maldives', 'MVT-5' }, { 'Indian/Mauritius', 'MUT-4' }, @@ -419,7 +422,7 @@ TZ = { { 'Pacific/Saipan', 'ChST-10' }, { 'Pacific/Tahiti', 'TAHT10' }, { 'Pacific/Tarawa', 'GILT-12' }, - { 'Pacific/Tongatapu', 'TOT-13' }, + { 'Pacific/Tongatapu', '<+13>-13<+14>,M11.1.0,M1.3.0/3' }, { 'Pacific/Wake', 'WAKT-12' }, { 'Pacific/Wallis', 'WFT-12' }, } diff --git a/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua b/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua index a8417e06c8..e5da7c6442 100644 --- a/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua +++ b/modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua @@ -27,7 +27,7 @@ OFFSET = { cot = -18000, -- COT mst = -25200, -- MST mdt = -21600, -- MDT - vet = -16200, -- VET + vet = -14400, -- VET gft = -10800, -- GFT pst = -28800, -- PST pdt = -25200, -- PDT @@ -49,59 +49,31 @@ OFFSET = { egst = 0, -- EGST nst = -12600, -- NST ndt = -9000, -- NDT - awst = 28800, -- AWST - davt = 25200, -- DAVT - ddut = 36000, -- DDUT mist = 39600, -- MIST - mawt = 18000, -- MAWT nzst = 43200, -- NZST nzdt = 46800, -- NZDT - rott = -10800, -- ROTT - syot = 10800, -- SYOT - utc = 0, -- UTC - vost = 21600, -- VOST - almt = 21600, -- ALMT - anat = 43200, -- ANAT - aqtt = 18000, -- AQTT - tmt = 18000, -- TMT - azt = 14400, -- AZT ict = 25200, -- ICT - kgt = 21600, -- KGT bnt = 28800, -- BNT - yakt = 32400, -- YAKT chot = 28800, -- CHOT chost = 32400, -- CHOST - ist = 19800, -- IST bdt = 21600, -- BDT tlt = 32400, -- TLT gst = 14400, -- GST - tjt = 18000, -- TJT hkt = 28800, -- HKT hovt = 25200, -- HOVT hovst = 28800, -- HOVST - irkt = 28800, -- IRKT wib = 25200, -- WIB wit = 32400, -- WIT + ist = 7200, -- IST + idt = 10800, -- IDT aft = 16200, -- AFT - pett = 43200, -- PETT pkt = 18000, -- PKT npt = 20700, -- NPT - krat = 25200, -- KRAT myt = 28800, -- MYT - magt = 36000, -- MAGT wita = 28800, -- WITA pht = 28800, -- PHT - novt = 21600, -- NOVT - omst = 21600, -- OMST - orat = 18000, -- ORAT kst = 30600, -- KST - qyzt = 21600, -- QYZT - mmt = 23400, -- MMT - sakt = 39600, -- SAKT - uzt = 18000, -- UZT sgt = 28800, -- SGT - sret = 39600, -- SRET - get = 14400, -- GET irst = 12600, -- IRST irdt = 16200, -- IRDT btt = 21600, -- BTT @@ -109,8 +81,7 @@ OFFSET = { ulat = 28800, -- ULAT ulast = 32400, -- ULAST xjt = 21600, -- XJT - vlat = 36000, -- VLAT - yekt = 18000, -- YEKT + mmt = 23400, -- MMT azot = -3600, -- AZOT azost = 0, -- AZOST cvt = -3600, -- CVT @@ -121,12 +92,11 @@ OFFSET = { acwst = 31500, -- ACWST lhst = 37800, -- LHST lhdt = 39600, -- LHDT + awst = 28800, -- AWST msk = 10800, -- MSK - samt = 14400, -- SAMT iot = 21600, -- IOT cxt = 25200, -- CXT cct = 23400, -- CCT - tft = 18000, -- TFT sct = 14400, -- SCT mvt = 18000, -- MVT mut = 14400, -- MUT @@ -163,7 +133,6 @@ OFFSET = { ckt = -36000, -- CKT taht = -36000, -- TAHT gilt = 43200, -- GILT - tot = 46800, -- TOT wakt = 43200, -- WAKT wft = 43200, -- WFT } diff --git a/modules/luci-base/po/ca/base.po b/modules/luci-base/po/ca/base.po index 1e44147752..3012e8ef08 100644 --- a/modules/luci-base/po/ca/base.po +++ b/modules/luci-base/po/ca/base.po @@ -289,8 +289,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Es crearà una xarxa addicional si deixes això sense marcar." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1539,12 +1539,12 @@ msgstr "Es requereix JavaScript!" msgid "Join Network" msgstr "Uneix-te a la xarxa" -msgid "Join Network: Settings" -msgstr "Unir-se a la xarxa: Ajusts" - msgid "Join Network: Wireless Scan" msgstr "" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "" @@ -2271,7 +2271,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3593,6 +3593,12 @@ msgstr "sí" msgid "« Back" msgstr "« Enrere" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Es crearà una xarxa addicional si deixes això sense marcar." + +#~ msgid "Join Network: Settings" +#~ msgstr "Unir-se a la xarxa: Ajusts" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/cs/base.po b/modules/luci-base/po/cs/base.po index b0ab326d00..082f0bb6ea 100644 --- a/modules/luci-base/po/cs/base.po +++ b/modules/luci-base/po/cs/base.po @@ -289,8 +289,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Pokud není zaškrtnuto, bude vytvořena dodatečná síť." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1552,12 +1552,12 @@ msgstr "Vyžadován JavaScript!" msgid "Join Network" msgstr "Připojit k síti" -msgid "Join Network: Settings" -msgstr "Připojit k síti: nastavení" - msgid "Join Network: Wireless Scan" msgstr "Připojit k síti: Vyhledání bezdrátových sítí" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Zachovat nastavení" @@ -2296,7 +2296,7 @@ msgstr "" "Po takovém množství LCP echo selhání předpokládám, že peer je mrtvý. " "Použijte 0 pro ignorování chyb" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3663,6 +3663,12 @@ msgstr "ano" msgid "« Back" msgstr "« Zpět" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Pokud není zaškrtnuto, bude vytvořena dodatečná síť." + +#~ msgid "Join Network: Settings" +#~ msgstr "Připojit k síti: nastavení" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/de/base.po b/modules/luci-base/po/de/base.po index 8d72612134..2fe3b80e49 100644 --- a/modules/luci-base/po/de/base.po +++ b/modules/luci-base/po/de/base.po @@ -288,9 +288,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." +msgid "An additional network will be created if you leave this checked." msgstr "" -"Erzeugt ein zusätzliches Netzwerk wenn diese Option nicht ausgewählt ist" msgid "Annex" msgstr "" @@ -1553,12 +1552,12 @@ msgstr "Java-Script benötigt!" msgid "Join Network" msgstr "Netzwerk beitreten" -msgid "Join Network: Settings" -msgstr "Netzwerk beitreten: Einstellungen" - msgid "Join Network: Wireless Scan" msgstr "Netzwerk beitreten: Suche nach Netzwerken" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Konfiguration behalten" @@ -2302,7 +2301,7 @@ msgstr "" "Deklariere den Client als tot nach der angegebenen Anzahl von LCP Echo " "Fehlschlägen, nutze den Wert 0 um Fehler zu ignorieren" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3688,6 +3687,13 @@ msgstr "ja" msgid "« Back" msgstr "« Zurück" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "" +#~ "Erzeugt ein zusätzliches Netzwerk wenn diese Option nicht ausgewählt ist" + +#~ msgid "Join Network: Settings" +#~ msgstr "Netzwerk beitreten: Einstellungen" + #~ msgid "CPU" #~ msgstr "Prozessor" diff --git a/modules/luci-base/po/el/base.po b/modules/luci-base/po/el/base.po index 7b716ada36..0d35022889 100644 --- a/modules/luci-base/po/el/base.po +++ b/modules/luci-base/po/el/base.po @@ -296,8 +296,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Ένα επιπλέον δίκτυο θα δημιουργηθεί εάν αυτό αφεθεί κενό" +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1567,10 +1567,10 @@ msgstr "Απαιτείται Javascript!" msgid "Join Network" msgstr "" -msgid "Join Network: Settings" +msgid "Join Network: Wireless Scan" msgstr "" -msgid "Join Network: Wireless Scan" +msgid "Joining Network: %q" msgstr "" msgid "Keep settings" @@ -2301,7 +2301,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" #, fuzzy @@ -3615,6 +3615,9 @@ msgstr "ναι" msgid "« Back" msgstr "« Πίσω" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Ένα επιπλέον δίκτυο θα δημιουργηθεί εάν αυτό αφεθεί κενό" + #~ msgid "Port %d" #~ msgstr "Θύρα %d" diff --git a/modules/luci-base/po/en/base.po b/modules/luci-base/po/en/base.po index 82a4e72542..b032f49709 100644 --- a/modules/luci-base/po/en/base.po +++ b/modules/luci-base/po/en/base.po @@ -287,8 +287,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "An additional network will be created if you leave this unchecked." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1536,10 +1536,10 @@ msgstr "" msgid "Join Network" msgstr "Join Network" -msgid "Join Network: Settings" +msgid "Join Network: Wireless Scan" msgstr "" -msgid "Join Network: Wireless Scan" +msgid "Joining Network: %q" msgstr "" msgid "Keep settings" @@ -2268,7 +2268,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3571,5 +3571,8 @@ msgstr "" msgid "« Back" msgstr "« Back" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "An additional network will be created if you leave this unchecked." + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/es/base.po b/modules/luci-base/po/es/base.po index de9a645324..f69add2f9b 100644 --- a/modules/luci-base/po/es/base.po +++ b/modules/luci-base/po/es/base.po @@ -293,8 +293,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Se creará una red adicional si deja esto desmarcado." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1566,12 +1566,12 @@ msgstr "¡Se necesita JavaScript!" msgid "Join Network" msgstr "Unirse a Red" -msgid "Join Network: Settings" -msgstr "Unirse a Red: Configuración" - msgid "Join Network: Wireless Scan" msgstr "Unirse a una red: Exploración inalámbrica" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Conservar la configuración del router" @@ -2310,7 +2310,7 @@ msgstr "" "Asumir que el otro estará muerto tras estos fallos de echo LCP, use 0 para " "ignorar fallos" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3691,6 +3691,12 @@ msgstr "sí" msgid "« Back" msgstr "« Volver" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Se creará una red adicional si deja esto desmarcado." + +#~ msgid "Join Network: Settings" +#~ msgstr "Unirse a Red: Configuración" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/fr/base.po b/modules/luci-base/po/fr/base.po index fcde931c79..b7d811962a 100644 --- a/modules/luci-base/po/fr/base.po +++ b/modules/luci-base/po/fr/base.po @@ -299,8 +299,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Un réseau supplémentaire sera créé si vous laissé ceci décoché." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1577,12 +1577,12 @@ msgstr "Nécessite un Script Java !" msgid "Join Network" msgstr "Rejoindre un réseau" -msgid "Join Network: Settings" -msgstr "Rejoindre un réseau : paramètres" - msgid "Join Network: Wireless Scan" msgstr "Rejoindre un réseau : recherche des réseaux sans-fil" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Garder le paramètrage" @@ -2323,7 +2323,7 @@ msgstr "" "Suppose que le distant a disparu une fois le nombre donné d'erreurs d'échos " "LCP ; utiliser 0 pour ignorer ces erreurs" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3709,6 +3709,12 @@ msgstr "oui" msgid "« Back" msgstr "« Retour" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Un réseau supplémentaire sera créé si vous laissé ceci décoché." + +#~ msgid "Join Network: Settings" +#~ msgstr "Rejoindre un réseau : paramètres" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/he/base.po b/modules/luci-base/po/he/base.po index 3c2d784707..71fe9ce7cd 100644 --- a/modules/luci-base/po/he/base.po +++ b/modules/luci-base/po/he/base.po @@ -286,9 +286,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -#, fuzzy -msgid "An additional network will be created if you leave this unchecked." -msgstr "רשת נוספת תווצר אם תשאיר את זה לא מסומן" +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1512,10 +1511,10 @@ msgstr "" msgid "Join Network" msgstr "" -msgid "Join Network: Settings" +msgid "Join Network: Wireless Scan" msgstr "" -msgid "Join Network: Wireless Scan" +msgid "Joining Network: %q" msgstr "" msgid "Keep settings" @@ -2236,7 +2235,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3524,5 +3523,9 @@ msgstr "כן" msgid "« Back" msgstr "<< אחורה" +#, fuzzy +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "רשת נוספת תווצר אם תשאיר את זה לא מסומן" + #~ msgid "CPU" #~ msgstr "מעבד" diff --git a/modules/luci-base/po/hu/base.po b/modules/luci-base/po/hu/base.po index d71bd6907a..4ce03515dc 100644 --- a/modules/luci-base/po/hu/base.po +++ b/modules/luci-base/po/hu/base.po @@ -292,8 +292,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Amennyiben ezt jelöletlenül hagyja, egy további hálózat jön létre" +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1566,12 +1566,12 @@ msgstr "Javascript szükséges!" msgid "Join Network" msgstr "Csatlakozás a hálózathoz" -msgid "Join Network: Settings" -msgstr "Csatlakozás a hálózathoz: Beállítások" - msgid "Join Network: Wireless Scan" msgstr "Csatlakozás a hálózathoz: vezetéknélküli hálózatok keresése" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Beállítások megtartása" @@ -2313,7 +2313,7 @@ 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." -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3698,6 +3698,12 @@ msgstr "igen" msgid "« Back" msgstr "« Vissza" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Amennyiben ezt jelöletlenül hagyja, egy további hálózat jön létre" + +#~ msgid "Join Network: Settings" +#~ msgstr "Csatlakozás a hálózathoz: Beállítások" + #~ msgid "CPU" #~ msgstr "Processzor" diff --git a/modules/luci-base/po/it/base.po b/modules/luci-base/po/it/base.po index 2bc5ddabf4..db7c4b4aa2 100644 --- a/modules/luci-base/po/it/base.po +++ b/modules/luci-base/po/it/base.po @@ -299,8 +299,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Sarà creata una rete aggiuntiva se lasci questo senza spunta." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1568,12 +1568,12 @@ msgstr "Richiesto Java Script!" msgid "Join Network" msgstr "Aggiungi Rete" -msgid "Join Network: Settings" -msgstr "Aggiunta Rete: Impostazioni" - msgid "Join Network: Wireless Scan" msgstr "Aggiunta Rete: Rilevamento Wireless" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Mantieni le Impostazioni" @@ -2307,7 +2307,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3651,6 +3651,12 @@ msgstr "Sì" msgid "« Back" msgstr "« Indietro" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Sarà creata una rete aggiuntiva se lasci questo senza spunta." + +#~ msgid "Join Network: Settings" +#~ msgstr "Aggiunta Rete: Impostazioni" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/ja/base.po b/modules/luci-base/po/ja/base.po index 740c676a8b..d2a953f0ae 100644 --- a/modules/luci-base/po/ja/base.po +++ b/modules/luci-base/po/ja/base.po @@ -286,8 +286,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "チェックボックスがオフの場合、追加のネットワークが作成されます。" +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1549,12 +1549,12 @@ msgstr "JavaScriptを有効にしてください!" msgid "Join Network" msgstr "ネットワークに接続する" -msgid "Join Network: Settings" -msgstr "ネットワークに接続する: 設定" - msgid "Join Network: Wireless Scan" msgstr "ネットワークに接続する: 無線LANスキャン" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "設定を保持する" @@ -2290,7 +2290,7 @@ msgstr "" "設定回数のLCP echo 確認失敗後、ピアノードがダウンしているものと見なします。0" "を設定した場合、失敗しても無視します" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3661,6 +3661,12 @@ msgstr "はい" msgid "« Back" msgstr "« 戻る" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "チェックボックスがオフの場合、追加のネットワークが作成されます。" + +#~ msgid "Join Network: Settings" +#~ msgstr "ネットワークに接続する: 設定" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/ms/base.po b/modules/luci-base/po/ms/base.po index 5e348d69fe..3aaf0c0185 100644 --- a/modules/luci-base/po/ms/base.po +++ b/modules/luci-base/po/ms/base.po @@ -276,7 +276,7 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." +msgid "An additional network will be created if you leave this checked." msgstr "" msgid "Annex" @@ -1507,10 +1507,10 @@ msgstr "" msgid "Join Network" msgstr "Gabung Rangkaian" -msgid "Join Network: Settings" +msgid "Join Network: Wireless Scan" msgstr "" -msgid "Join Network: Wireless Scan" +msgid "Joining Network: %q" msgstr "" msgid "Keep settings" @@ -2240,7 +2240,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" diff --git a/modules/luci-base/po/no/base.po b/modules/luci-base/po/no/base.po index 793d381c2e..579ea24669 100644 --- a/modules/luci-base/po/no/base.po +++ b/modules/luci-base/po/no/base.po @@ -285,8 +285,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Et nytt nettverk vil bli opprettet hvis du tar bort haken." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1544,12 +1544,12 @@ msgstr "Java Script kreves!" msgid "Join Network" msgstr "Koble til nettverket" -msgid "Join Network: Settings" -msgstr "Koble til nettverk: Innstilling" - msgid "Join Network: Wireless Scan" msgstr "Koble til nettverk: Trådløs Skanning" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Behold innstillinger" @@ -2288,7 +2288,7 @@ msgstr "" "Annta at peer er uten forbindelse om angitt LCP ekko feiler, bruk verdi 0 " "for å overse feil" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3663,6 +3663,12 @@ msgstr "ja" msgid "« Back" msgstr "« Tilbake" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Et nytt nettverk vil bli opprettet hvis du tar bort haken." + +#~ msgid "Join Network: Settings" +#~ msgstr "Koble til nettverk: Innstilling" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/pl/base.po b/modules/luci-base/po/pl/base.po index 4e6152c033..4619ad283f 100644 --- a/modules/luci-base/po/pl/base.po +++ b/modules/luci-base/po/pl/base.po @@ -300,9 +300,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." +msgid "An additional network will be created if you leave this checked." msgstr "" -"Zostanie utworzona dodatkowa sieć jeśli zostawisz tą opcję niezaznaczoną." msgid "Annex" msgstr "" @@ -1590,12 +1589,12 @@ msgstr "Java Script jest wymagany!" msgid "Join Network" msgstr "Połącz z siecią" -msgid "Join Network: Settings" -msgstr "Przyłącz do sieci: Ustawienia" - msgid "Join Network: Wireless Scan" msgstr "Przyłącz do sieci: Skanuj sieci WiFi" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Zachowaj ustawienia" @@ -2336,7 +2335,7 @@ msgstr "" "Zakładaj że klient jest martwy po danej ilości błedów odpowiedzi echa LCP, " "wpisz 0 aby zignorować błędy" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3730,6 +3729,13 @@ msgstr "tak" msgid "« Back" msgstr "« Wróć" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "" +#~ "Zostanie utworzona dodatkowa sieć jeśli zostawisz tą opcję niezaznaczoną." + +#~ msgid "Join Network: Settings" +#~ msgstr "Przyłącz do sieci: Ustawienia" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/pt-br/base.po b/modules/luci-base/po/pt-br/base.po index fda160503c..e61ad6c820 100644 --- a/modules/luci-base/po/pt-br/base.po +++ b/modules/luci-base/po/pt-br/base.po @@ -300,8 +300,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Uma rede adicional será criada se você deixar isto desmarcado." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1585,12 +1585,12 @@ msgstr "É necessário Java Script!" msgid "Join Network" msgstr "Conectar à Rede" -msgid "Join Network: Settings" -msgstr "Conectar à Rede: Configurações" - msgid "Join Network: Wireless Scan" msgstr "Conectar à Rede: Busca por Rede Sem Fio" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Manter configurações" @@ -2341,7 +2341,7 @@ msgstr "" "Assumir que o parceiro está morto depois de uma data quantidade de falhas de " "echo do LCP. Use 0 para ignorar as falhas" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3734,6 +3734,12 @@ msgstr "sim" msgid "« Back" msgstr "« Voltar" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Uma rede adicional será criada se você deixar isto desmarcado." + +#~ msgid "Join Network: Settings" +#~ msgstr "Conectar à Rede: Configurações" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/pt/base.po b/modules/luci-base/po/pt/base.po index 05bdb76ff9..126ce5372c 100644 --- a/modules/luci-base/po/pt/base.po +++ b/modules/luci-base/po/pt/base.po @@ -298,8 +298,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Uma rede adicional será criada se deixar isto desmarcado." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1568,12 +1568,12 @@ msgstr "É necessário Javascript!" msgid "Join Network" msgstr "Associar Rede" -msgid "Join Network: Settings" -msgstr "Associar Rede: Definições" - msgid "Join Network: Wireless Scan" msgstr "Associar Rede: Procurar Redes Wireless" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Manter definições" @@ -2308,7 +2308,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3659,6 +3659,12 @@ msgstr "sim" msgid "« Back" msgstr "« Voltar" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Uma rede adicional será criada se deixar isto desmarcado." + +#~ msgid "Join Network: Settings" +#~ msgstr "Associar Rede: Definições" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/ro/base.po b/modules/luci-base/po/ro/base.po index 73f9fb19f2..58a22c0d3b 100644 --- a/modules/luci-base/po/ro/base.po +++ b/modules/luci-base/po/ro/base.po @@ -284,9 +284,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." +msgid "An additional network will be created if you leave this checked." msgstr "" -"Daca lasati aceasta optiune neselectata va fi creata o retea aditionala" msgid "Annex" msgstr "" @@ -1509,10 +1508,10 @@ msgstr "Ai nevoie de Java Script !" msgid "Join Network" msgstr "" -msgid "Join Network: Settings" +msgid "Join Network: Wireless Scan" msgstr "" -msgid "Join Network: Wireless Scan" +msgid "Joining Network: %q" msgstr "" msgid "Keep settings" @@ -2233,7 +2232,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3516,6 +3515,10 @@ msgstr "da" msgid "« Back" msgstr "« Inapoi" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "" +#~ "Daca lasati aceasta optiune neselectata va fi creata o retea aditionala" + #~ msgid "CPU" #~ msgstr "Procesor" diff --git a/modules/luci-base/po/ru/base.po b/modules/luci-base/po/ru/base.po index 34dde6bb10..cb7bfc1ec5 100644 --- a/modules/luci-base/po/ru/base.po +++ b/modules/luci-base/po/ru/base.po @@ -297,8 +297,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Если вы не выберите эту опцию, то будет создана дополнительная сеть." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1572,12 +1572,12 @@ msgstr "Требуется Java Script!" msgid "Join Network" msgstr "Подключение к сети" -msgid "Join Network: Settings" -msgstr "Подключение к сети: настройки" - msgid "Join Network: Wireless Scan" msgstr "Подключение к сети: сканирование" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Сохранить настройки" @@ -2318,7 +2318,7 @@ msgstr "" "Предполагать, что узел недоступен после указанного количества ошибок " "получения эхо-пакета LCP, введите 0 для игнорирования ошибок" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3701,6 +3701,13 @@ msgstr "да" msgid "« Back" msgstr "« Назад" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "" +#~ "Если вы не выберите эту опцию, то будет создана дополнительная сеть." + +#~ msgid "Join Network: Settings" +#~ msgstr "Подключение к сети: настройки" + #~ msgid "CPU" #~ msgstr "ЦП" diff --git a/modules/luci-base/po/sk/base.po b/modules/luci-base/po/sk/base.po index 0d87051247..a715a59e10 100644 --- a/modules/luci-base/po/sk/base.po +++ b/modules/luci-base/po/sk/base.po @@ -270,7 +270,7 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." +msgid "An additional network will be created if you leave this checked." msgstr "" msgid "Annex" @@ -1483,10 +1483,10 @@ msgstr "" msgid "Join Network" msgstr "" -msgid "Join Network: Settings" +msgid "Join Network: Wireless Scan" msgstr "" -msgid "Join Network: Wireless Scan" +msgid "Joining Network: %q" msgstr "" msgid "Keep settings" @@ -2207,7 +2207,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" diff --git a/modules/luci-base/po/sv/base.po b/modules/luci-base/po/sv/base.po index 73a88b8616..4c08e4e1e8 100644 --- a/modules/luci-base/po/sv/base.po +++ b/modules/luci-base/po/sv/base.po @@ -276,7 +276,7 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." +msgid "An additional network will be created if you leave this checked." msgstr "" msgid "Annex" @@ -1489,10 +1489,10 @@ msgstr "" msgid "Join Network" msgstr "" -msgid "Join Network: Settings" +msgid "Join Network: Wireless Scan" msgstr "" -msgid "Join Network: Wireless Scan" +msgid "Joining Network: %q" msgstr "" msgid "Keep settings" @@ -2213,7 +2213,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" diff --git a/modules/luci-base/po/templates/base.pot b/modules/luci-base/po/templates/base.pot index df2892b88f..a10dbea5c9 100644 --- a/modules/luci-base/po/templates/base.pot +++ b/modules/luci-base/po/templates/base.pot @@ -263,7 +263,7 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." +msgid "An additional network will be created if you leave this checked." msgstr "" msgid "Annex" @@ -1476,10 +1476,10 @@ msgstr "" msgid "Join Network" msgstr "" -msgid "Join Network: Settings" +msgid "Join Network: Wireless Scan" msgstr "" -msgid "Join Network: Wireless Scan" +msgid "Joining Network: %q" msgstr "" msgid "Keep settings" @@ -2200,7 +2200,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" diff --git a/modules/luci-base/po/tr/base.po b/modules/luci-base/po/tr/base.po index a5a5338979..d674f5154c 100644 --- a/modules/luci-base/po/tr/base.po +++ b/modules/luci-base/po/tr/base.po @@ -283,7 +283,7 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." +msgid "An additional network will be created if you leave this checked." msgstr "" msgid "Annex" @@ -1496,10 +1496,10 @@ msgstr "" msgid "Join Network" msgstr "" -msgid "Join Network: Settings" +msgid "Join Network: Wireless Scan" msgstr "" -msgid "Join Network: Wireless Scan" +msgid "Joining Network: %q" msgstr "" msgid "Keep settings" @@ -2220,7 +2220,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" diff --git a/modules/luci-base/po/uk/base.po b/modules/luci-base/po/uk/base.po index 95c686e282..b1fe0e7937 100644 --- a/modules/luci-base/po/uk/base.po +++ b/modules/luci-base/po/uk/base.po @@ -307,8 +307,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "Якщо ви залишите це невибраним, буде створена додаткова мережа." +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1579,12 +1579,12 @@ msgstr "Потрібен Java Script!" msgid "Join Network" msgstr "Підключення до мережі" -msgid "Join Network: Settings" -msgstr "Підключення до мережі: Настройки" - msgid "Join Network: Wireless Scan" msgstr "Підключення до мережі: Сканування бездротових мереж" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "Зберегти настройки" @@ -2329,7 +2329,7 @@ msgstr "" "Вважати вузол недоступним після визначеної кількості невдач отримання ехо-" "пакета LCP, використовуйте 0, щоб ігнорувати невдачі" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3716,6 +3716,12 @@ msgstr "так" msgid "« Back" msgstr "« Назад" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "Якщо ви залишите це невибраним, буде створена додаткова мережа." + +#~ msgid "Join Network: Settings" +#~ msgstr "Підключення до мережі: Настройки" + #~ msgid "CPU" #~ msgstr "ЦП" diff --git a/modules/luci-base/po/vi/base.po b/modules/luci-base/po/vi/base.po index 0e378565ae..0160c97f36 100644 --- a/modules/luci-base/po/vi/base.po +++ b/modules/luci-base/po/vi/base.po @@ -277,7 +277,7 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." +msgid "An additional network will be created if you leave this checked." msgstr "" msgid "Annex" @@ -1511,10 +1511,10 @@ msgstr "" msgid "Join Network" msgstr "" -msgid "Join Network: Settings" +msgid "Join Network: Wireless Scan" msgstr "" -msgid "Join Network: Wireless Scan" +msgid "Joining Network: %q" msgstr "" msgid "Keep settings" @@ -2243,7 +2243,7 @@ msgid "" "ignore failures" msgstr "" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" diff --git a/modules/luci-base/po/zh-cn/base.po b/modules/luci-base/po/zh-cn/base.po index dbc4df8091..a2d1e47132 100644 --- a/modules/luci-base/po/zh-cn/base.po +++ b/modules/luci-base/po/zh-cn/base.po @@ -283,8 +283,8 @@ msgstr "" msgid "Always announce default router" msgstr "总是广播默认路由" -msgid "An additional network will be created if you leave this unchecked." -msgstr "取消选中将会另外创建一个新网络,而不会覆盖当前网络设置" +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1508,12 +1508,12 @@ msgstr "需要Java Script!" msgid "Join Network" msgstr "加入网络" -msgid "Join Network: Settings" -msgstr "加入网络:设置" - msgid "Join Network: Wireless Scan" msgstr "加入网络:搜索无线" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "保留配置" @@ -2233,7 +2233,7 @@ msgid "" "ignore failures" msgstr "在指定数量的LCP响应故障后假定链路已断开,0为忽略故障" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3556,6 +3556,12 @@ msgstr "是" msgid "« Back" msgstr "« 后退" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "取消选中将会另外创建一个新网络,而不会覆盖当前网络设置" + +#~ msgid "Join Network: Settings" +#~ msgstr "加入网络:设置" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/po/zh-tw/base.po b/modules/luci-base/po/zh-tw/base.po index d1d17ad916..2845c9999d 100644 --- a/modules/luci-base/po/zh-tw/base.po +++ b/modules/luci-base/po/zh-tw/base.po @@ -280,8 +280,8 @@ msgstr "" msgid "Always announce default router" msgstr "" -msgid "An additional network will be created if you leave this unchecked." -msgstr "取消選取將會另外建立一個新網路,而不會覆蓋目前的網路設定" +msgid "An additional network will be created if you leave this checked." +msgstr "" msgid "Annex" msgstr "" @@ -1519,12 +1519,12 @@ msgstr "需要Java腳本" msgid "Join Network" msgstr "加入網路" -msgid "Join Network: Settings" -msgstr "加入網路的設定" - msgid "Join Network: Wireless Scan" msgstr "加入網路:無線網路掃描" +msgid "Joining Network: %q" +msgstr "" + msgid "Keep settings" msgstr "保持設定值" @@ -2248,7 +2248,7 @@ msgid "" "ignore failures" msgstr "假若在給于多次的 LCP 呼叫失敗後終點將死, 使用0忽略失敗" -msgid "Prevent listening on thise interfaces." +msgid "Prevent listening on these interfaces." msgstr "" msgid "Prevents client-to-client communication" @@ -3582,6 +3582,12 @@ msgstr "是的" msgid "« Back" msgstr "« 倒退" +#~ msgid "An additional network will be created if you leave this unchecked." +#~ msgstr "取消選取將會另外建立一個新網路,而不會覆蓋目前的網路設定" + +#~ msgid "Join Network: Settings" +#~ msgstr "加入網路的設定" + #~ msgid "CPU" #~ msgstr "CPU" diff --git a/modules/luci-base/root/etc/config/luci b/modules/luci-base/root/etc/config/luci index a443742f93..baa3ac5d1e 100644 --- a/modules/luci-base/root/etc/config/luci +++ b/modules/luci-base/root/etc/config/luci @@ -22,8 +22,3 @@ config internal ccache option enable 1 config internal themes - -config internal 'diag' - option ping 'dev.openwrt.org' - option route 'dev.openwrt.org' - option dns 'dev.openwrt.org' diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua index aaf045ca2c..10636a491a 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua @@ -251,7 +251,7 @@ o:depends("nonwildcard", true) o = s:taboption("general", DynamicList, "notinterface", translate("Exclude interfaces"), - translate("Prevent listening on thise interfaces.")) + translate("Prevent listening on these interfaces.")) o.optional = true o:depends("nonwildcard", true) diff --git a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi_add.lua b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi_add.lua index 96b8b4d740..05b27a9f0c 100644 --- a/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi_add.lua +++ b/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi_add.lua @@ -16,7 +16,7 @@ if not iw then return end -m = SimpleForm("network", translate("Join Network: Settings")) +m = SimpleForm("network", translate("Joining Network: %q", http.formvalue("join"))) m.cancel = translate("Back to scan results") m.reset = false @@ -44,9 +44,9 @@ m.hidden = { if iw and iw.mbssid_support then replace = m:field(Flag, "replace", translate("Replace wireless configuration"), - translate("An additional network will be created if you leave this unchecked.")) + translate("An additional network will be created if you leave this checked.")) - function replace.cfgvalue() return "1" end + function replace.cfgvalue() return "0" end else replace = m:field(DummyValue, "replace", translate("Replace wireless configuration")) replace.default = translate("The hardware is not multi-SSID capable and the existing " .. diff --git a/modules/luci-mod-admin-full/root/etc/uci-defaults/50_luci-mod-admin-full b/modules/luci-mod-admin-full/root/etc/uci-defaults/50_luci-mod-admin-full new file mode 100755 index 0000000000..372eb15122 --- /dev/null +++ b/modules/luci-mod-admin-full/root/etc/uci-defaults/50_luci-mod-admin-full @@ -0,0 +1,22 @@ +#!/bin/sh + +if [ "$(uci -q get luci.diag)" != "internal" ]; then + host="" + + if [ -s /etc/os-release ]; then + . /etc/os-release + host="${HOME_URL:-${BUG_URL:-$LEDE_DEVICE_MANUFACTURER_URL}}" + host="${host#*://}" + host="${host%%/*}" + fi + + uci -q batch <<-EOF >/dev/null + set luci.diag=internal + set luci.diag.dns='${host:-openwrt.org}' + set luci.diag.ping='${host:-openwrt.org}' + set luci.diag.route='${host:-openwrt.org}' + commit luci + EOF +fi + +exit 0 diff --git a/protocols/luci-proto-wireguard/Makefile b/protocols/luci-proto-wireguard/Makefile new file mode 100644 index 0000000000..ed94a557b6 --- /dev/null +++ b/protocols/luci-proto-wireguard/Makefile @@ -0,0 +1,16 @@ +# +# Copyright (C) 2016 Dan Luedtke <mail@danrl.com> +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=Support for WireGuard VPN +LUCI_DEPENDS:=+kmod-wireguard +wireguard-tools + +PKG_MAINTAINER:=Dan Luedtke <mail@danrl.com> + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua b/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua new file mode 100644 index 0000000000..774c6db22b --- /dev/null +++ b/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua @@ -0,0 +1,148 @@ +-- Copyright 2016 Dan Luedtke <mail@danrl.com> +-- Licensed to the public under the Apache License 2.0. + + +local map, section, net = ... +local ifname = net:get_interface():name() +local private_key, listen_port +local metric, mtu, preshared_key +local peers, public_key, allowed_ips, endpoint, persistent_keepalive + + +-- general --------------------------------------------------------------------- + +private_key = section:taboption( + "general", + Value, + "private_key", + translate("Private Key"), + translate("Required. Base64-encoded private key for this interface.") +) +private_key.password = true +private_key.datatype = "rangelength(44, 44)" +private_key.optional = false + + +listen_port = section:taboption( + "general", + Value, + "listen_port", + translate("Listen Port"), + translate("Optional. UDP port used for outgoing and incoming packets.") +) +listen_port.datatype = "port" +listen_port.placeholder = "51820" +listen_port.optional = true + + +-- advanced -------------------------------------------------------------------- + +metric = section:taboption( + "advanced", + Value, + "metric", + translate("Metric"), + translate("Optional.") +) +metric.datatype = "uinteger" +metric.placeholder = "0" +metric.optional = true + + +mtu = section:taboption( + "advanced", + Value, + "mtu", + translate("MTU"), + translate("Optional. Maximum Transmission Unit of tunnel interface.") +) +mtu.datatype = "range(1280,1423)" +mtu.placeholder = "1423" +mtu.optional = true + + +preshared_key = section:taboption( + "advanced", + Value, + "preshared_key", + translate("Preshared Key"), + translate("Optional. Adds in an additional layer of symmetric-key " .. + "cryptography for post-quantum resistance.") +) +preshared_key.password = true +preshared_key.datatype = "rangelength(44, 44)" +preshared_key.optional = true + + +-- peers ----------------------------------------------------------------------- + +peers = map:section( + TypedSection, + "wireguard_" .. ifname, + translate("Peers"), + translate("Further information about WireGuard interfaces and peers " .. + "at <a href=\"http://wireguard.io\">wireguard.io</a>.") +) +peers.template = "cbi/tsection" +peers.anonymous = true +peers.addremove = true + + +public_key = peers:option( + Value, + "public_key", + translate("Public Key"), + translate("Required. Public key of peer.") +) +public_key.datatype = "rangelength(44, 44)" +public_key.optional = false + + +allowed_ips = peers:option( + DynamicList, + "allowed_ips", + translate("Allowed IPs"), + translate("Required. IP addresses and prefixes that this peer is allowed " .. + "to use inside the tunnel. Usually the peer's tunnel IP " .. + "addresses and the networks the peer routes through the tunnel.") +) +allowed_ips.datatype = "ipaddr" +allowed_ips.optional = false + + +route_allowed_ips = peers:option( + Flag, + "route_allowed_ips", + translate("Route Allowed IPs"), + translate("Optional. Create routes for Allowed IPs for this peer.") +) + + +endpoint_host = peers:option( + Value, + "endpoint_host", + translate("Endpoint Host"), + translate("Optional. Host of peer. Names are resolved " .. + "prior to bringing up the interface.")) +endpoint_host.placeholder = "vpn.example.com" +endpoint_host.datatype = "host" + + +endpoint_port = peers:option( + Value, + "endpoint_port", + translate("Endpoint Port"), + translate("Optional. Port of peer.")) +endpoint_port.placeholder = "51820" +endpoint_port.datatype = "port" + + +persistent_keepalive = peers:option( + Value, + "persistent_keepalive", + translate("Persistent Keep Alive"), + translate("Optional. Seconds between keep alive messages. " .. + "Default is 0 (disabled). Recommended value if " .. + "this device is behind a NAT is 25.")) +persistent_keepalive.datatype = "range(0, 65535)" +persistent_keepalive.placeholder = "0" diff --git a/protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua b/protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua new file mode 100644 index 0000000000..d6937618a7 --- /dev/null +++ b/protocols/luci-proto-wireguard/luasrc/model/network/proto_wireguard.lua @@ -0,0 +1,42 @@ +-- Copyright 2016 Dan Luedtke <mail@danrl.com> +-- Licensed to the public under the Apache License 2.0. + +local netmod = luci.model.network +local interface = luci.model.network.interface +local proto = netmod:register_protocol("wireguard") + +function proto.get_i18n(self) + return luci.i18n.translate("WireGuard VPN") +end + +function proto.ifname(self) + return self.sid +end + +function proto.get_interface(self) + return interface(self:ifname(), self) +end + +function proto.opkg_package(self) + return "wireguard-tools" +end + +function proto.is_installed(self) + return nixio.fs.access("/lib/netifd/proto/wireguard.sh") +end + +function proto.is_floating(self) + return true +end + +function proto.is_virtual(self) + return true +end + +function proto.get_interfaces(self) + return nil +end + +function proto.contains_interface(self, ifc) + return (netmod:ifnameof(ifc) == self:ifname()) +end |