From: Daniel Dickinson Date: Mon, 16 Jan 2017 15:45:20 +0000 (-0500) Subject: Merge pull request #953 from musashino205/mount-fix-disp X-Git-Url: http://git.archive.openwrt.org/?a=commitdiff_plain;h=f00a1ac2d98e6063e8bc40f3a6b158a063f008a7;hp=bc8f58a2ef302f539852b69ac8fab1fd82446b7f;p=project%2Fluci.git Merge pull request #953 from musashino205/mount-fix-disp luci-mod-admin-full: Fix display problems of mount --- diff --git a/applications/luci-app-dynapoint/Makefile b/applications/luci-app-dynapoint/Makefile new file mode 100644 index 000000000..d16ef4a8f --- /dev/null +++ b/applications/luci-app-dynapoint/Makefile @@ -0,0 +1,20 @@ +# +# Copyright (C) 2016 The LuCI Team +# +# This is free software, licensed under the GNU General Public License v3. +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI Support for DynaPoint +LUCI_DEPENDS:=+dynapoint + +PKG_NAME:=luci-app-dynapoint +PKG_VERSION:=1.0 +PKG_RELEASE:=1 +PKG_LICENSE:=GPL-3.0+ +PKG_MAINTAINER:=Tobias Ilte +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature + diff --git a/applications/luci-app-dynapoint/luasrc/controller/dynapoint.lua b/applications/luci-app-dynapoint/luasrc/controller/dynapoint.lua new file mode 100644 index 000000000..65348632e --- /dev/null +++ b/applications/luci-app-dynapoint/luasrc/controller/dynapoint.lua @@ -0,0 +1,9 @@ +module("luci.controller.dynapoint", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/dynapoint") then + return + end + entry({"admin", "services", "dynapoint"}, cbi("dynapoint"), _("DynaPoint")) +end + diff --git a/applications/luci-app-dynapoint/luasrc/model/cbi/dynapoint.lua b/applications/luci-app-dynapoint/luasrc/model/cbi/dynapoint.lua new file mode 100644 index 000000000..e6871a5bc --- /dev/null +++ b/applications/luci-app-dynapoint/luasrc/model/cbi/dynapoint.lua @@ -0,0 +1,99 @@ +local uci = require "luci.model.uci".cursor() +local a = require "luci.model.ipkg" +local DISP = require "luci.dispatcher" + +local wlcursor = luci.model.uci.cursor_state() +local wireless = wlcursor:get_all("wireless") +local ifaces = {} + +for k, v in pairs(wireless) do + if v[".type"] == "wifi-iface" then + table.insert(ifaces, v) + end +end + +m = Map("dynapoint") +m:chain("wireless") + +s = m:section(NamedSection, "internet", "rule", translate("Configuration"), translate("Check Internet connectivity via HTTP header download")) + +hosts = s:option(DynamicList, "hosts", translate("List of host addresses"), translate("List of host addresses (url or IP) to track and request http headers from")) +hosts.datatype = "string" + +interval = s:option(Value, "interval", translate("Test-run interval"), translate("Time interval in seconds to re-start a new test run")) +interval.datatype = "uinteger" +interval.default = "30" + +offline_treshold = s:option(Value, "offline_threshold", translate("Switch_to_offline threshold"), translate("Failure counter after how many failed download attempts, the state is considered as offline")) +offline_treshold.datatype = "uinteger" +offline_treshold.default = "1" + +add_hostname_to_ssid = s:option(Flag, "add_hostname_to_ssid", translate("Append hostname to ssid"), translate("Append the router's hostname to the SSID when connectivity check fails")) +add_hostname_to_ssid.rmempty = false + + +if (a.installed("curl") == true) then + use_curl = s:option(Flag, "use_curl", translate("Use curl"), translate("Use curl instead of wget for testing the connectivity.")) + use_curl.rmempty = false + + curl_interface = s:option(Value, "curl_interface", translate("Used interface"), translate("Which interface should curl use. (Use ifconfig to find out)")) + curl_interface.datatype = "string" + curl_interface:depends("use_curl","1") + curl_interface.placeholder = "eth0" +else + use_curl = s:option(Flag, "use_curl", translate("Use curl instead of wget"), translate("Curl is currently not installed.") + .." Please install the package in the " + ..[[]] + .. "Software Section" .. [[]] + .. "." + ) + use_curl.rmempty = false + use_curl.template = "dynapoint/cbi_checkbox" +end + +m1 = Map("wireless", "DynaPoint", translate("Dynamic Access Point Manager")) + +aps = m1:section(TypedSection, "wifi-iface", translate("List of Wireless Virtual Interfaces (wVIF)")) +aps.addremove = false +aps.anonymous = true +aps.template = "cbi/tblsection" + +status = aps:option(DummyValue, "disabled", translate("WiFi Status")) +status.template = "dynapoint/cbi_color" + +function status.cfgvalue(self,section) + local val = m1:get(section, "disabled") + if val == "1" then return translate("Disabled") end + if (val == nil or val == "0") then return translate("Enabled") end + return val +end + +device = aps:option(DummyValue, "device", translate("Device")) +function device.cfgvalue(self,section) + local dev = m1:get(section, "device") + local val = m1:get(dev, "hwmode") + if val == "11a" then return dev .. " (5 GHz)" else + return dev .. " (2,4 GHz)" + end + return val +end + + + + + +mode = aps:option(DummyValue, "mode", translate("Mode")) + +ssid = aps:option(DummyValue, "ssid", translate("SSID")) + + +action = aps:option(ListValue, "dynapoint_rule", translate("Activate this wVIF if status is:")) +action.widget="select" +action:value("internet",translate("Online")) +action:value("!internet",translate("Offline")) +action:value("",translate("Not used by DynaPoint")) +action.default = "" + +return m1,m + diff --git a/applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_checkbox.htm b/applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_checkbox.htm new file mode 100644 index 000000000..5f8bcd5ee --- /dev/null +++ b/applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_checkbox.htm @@ -0,0 +1,6 @@ +<%+cbi/valueheader%> + + + + +<%+cbi/valuefooter%> diff --git a/applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_color.htm b/applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_color.htm new file mode 100644 index 000000000..bfc710e23 --- /dev/null +++ b/applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_color.htm @@ -0,0 +1,18 @@ +<%+cbi/valueheader%> + + +<% +if (self:cfgvalue(section) == translate("Disabled")) then +%> + +<%=self:cfgvalue(section)%> + +<% +else +%> +<%=self:cfgvalue(section)%> +<% +end +%> + +<%+cbi/valuefooter%> diff --git a/applications/luci-app-dynapoint/po/de/dynapoint.po b/applications/luci-app-dynapoint/po/de/dynapoint.po new file mode 100644 index 000000000..e2507e493 --- /dev/null +++ b/applications/luci-app-dynapoint/po/de/dynapoint.po @@ -0,0 +1,106 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2016-08-31 15:51+0200\n" +"Language-Team: German\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Activate this wVIF if status is:" +msgstr "Aktiviere diese drahtlose Schnittstelle wenn:" + +msgid "Append hostname to ssid" +msgstr "Anfügen des hostname zur SSID" + +msgid "Append the router's hostname to the SSID when connectivity check fails" +msgstr "" +"Fügt den hostname des routers zur SSID an, wenn die Verbindungsüberprüfung " +"fehl schlägt" + +msgid "Check Internet connectivity via HTTP header download" +msgstr "Testen der Internetverfügbarkeit via HTTP header download" + +msgid "Configuration" +msgstr "Konfiguration" + +msgid "Curl is currently not installed." +msgstr "Curl ist momentan nicht installiert." + +msgid "Device" +msgstr "Gerät" + +msgid "Disabled" +msgstr "Deaktiviert" + +msgid "DynaPoint" +msgstr "" + +msgid "Dynamic Access Point Manager" +msgstr "" + +msgid "Enabled" +msgstr "Aktiviert" + +msgid "" +"Failure counter after how many failed download attempts, the state is " +"considered as offline" +msgstr "" +"Anzahl der fehlgeschlagenen Downloadversuche, nach denen die Verbindung als offline angesehen wird" + +msgid "List of Wireless Virtual Interfaces (wVIF)" +msgstr "Liste der Drahtlosen virtuellen Schnittstellen" + +msgid "List of host addresses" +msgstr "Liste der Zieladressen" + +msgid "" +"List of host addresses (url or IP) to track and request http headers from" +msgstr "Liste der Zieladressen (URL oder IP) für den HTTP header download" + +msgid "Mode" +msgstr "Modus" + +msgid "Not used by DynaPoint" +msgstr "Nicht von DynaPoint benutzt" + +msgid "Offline" +msgstr "Offline" + +msgid "Online" +msgstr "Online" + +msgid "SSID" +msgstr "" + +msgid "Switch_to_offline threshold" +msgstr "Offline-Schwelle" + +msgid "Test-run interval" +msgstr "Testlaufintervall" + +msgid "Time interval in seconds to re-start a new test run" +msgstr "Zeitintervall in Sekunden für einen Testlauf" + +msgid "Use curl" +msgstr "Curl benutzen" + +msgid "Use curl instead of wget" +msgstr "Curl anstatt wget benutzen" + +msgid "Use curl instead of wget for testing the connectivity." +msgstr "Curl anstatt wget benutzen, um die Internetverbindung zu überprüfen." + +msgid "Used interface" +msgstr "Benutztes interface" + +msgid "Which interface should curl use. (Use ifconfig to find out)" +msgstr "" +"Welches Interface von curl benutzt werden soll. (ifconfig benutzen, um das " +"herauszufinden" + +msgid "WiFi Status" +msgstr "" + diff --git a/applications/luci-app-dynapoint/po/templates/dynapoint.pot b/applications/luci-app-dynapoint/po/templates/dynapoint.pot new file mode 100644 index 000000000..d72e0c941 --- /dev/null +++ b/applications/luci-app-dynapoint/po/templates/dynapoint.pot @@ -0,0 +1,93 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "Activate this wVIF if status is:" +msgstr "" + +msgid "Append hostname to ssid" +msgstr "" + +msgid "Append the router's hostname to the SSID when connectivity check fails" +msgstr "" + +msgid "Check Internet connectivity via HTTP header download" +msgstr "" + +msgid "Configuration" +msgstr "" + +msgid "Curl is currently not installed." +msgstr "" + +msgid "Device" +msgstr "" + +msgid "Disabled" +msgstr "" + +msgid "DynaPoint" +msgstr "" + +msgid "Dynamic Access Point Manager" +msgstr "" + +msgid "Enabled" +msgstr "" + +msgid "" +"Failure counter after how many failed download attempts, the state is " +"considered as offline" +msgstr "" + +msgid "List of Wireless Virtual Interfaces (wVIF)" +msgstr "" + +msgid "List of host addresses" +msgstr "" + +msgid "" +"List of host addresses (url or IP) to track and request http headers from" +msgstr "" + +msgid "Mode" +msgstr "" + +msgid "Not used by DynaPoint" +msgstr "" + +msgid "Offline" +msgstr "" + +msgid "Online" +msgstr "" + +msgid "SSID" +msgstr "" + +msgid "Switch_to_offline threshold" +msgstr "" + +msgid "Test-run interval" +msgstr "" + +msgid "Time interval in seconds to re-start a new test run" +msgstr "" + +msgid "Use curl" +msgstr "" + +msgid "Use curl instead of wget" +msgstr "" + +msgid "Use curl instead of wget for testing the connectivity." +msgstr "" + +msgid "Used interface" +msgstr "" + +msgid "Which interface should curl use. (Use ifconfig to find out)" +msgstr "" + +msgid "WiFi Status" +msgstr "" + diff --git a/applications/luci-app-dynapoint/root/etc/uci-defaults/40_luci-dynapoint b/applications/luci-app-dynapoint/root/etc/uci-defaults/40_luci-dynapoint new file mode 100644 index 000000000..7287ccd42 --- /dev/null +++ b/applications/luci-app-dynapoint/root/etc/uci-defaults/40_luci-dynapoint @@ -0,0 +1,13 @@ +#!/bin/sh + +# needed for "Save and Apply" to restart dynapoint +uci -q batch <<-EOF >/dev/null + delete ucitrack.@dynapoint[-1] + add ucitrack dynapoint + set ucitrack.@dynapoint[-1].init="dynapoint" + commit dynapoint +EOF + +rm -f /tmp/luci-indexcache +exit 0 + diff --git a/applications/luci-app-firewall/po/ko/firewall.po b/applications/luci-app-firewall/po/ko/firewall.po new file mode 100644 index 000000000..699af7b3b --- /dev/null +++ b/applications/luci-app-firewall/po/ko/firewall.po @@ -0,0 +1,504 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-03-30 17:00+0200\n" +"PO-Revision-Date: 2012-11-14 17:32+0200\n" +"Last-Translator: Weongyo Jeong \n" +"Language-Team: LANGUAGE \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Pootle 2.0.6\n" + +msgid "%s in %s" +msgstr "" + +msgid "%s%s with %s" +msgstr "%s%s ,%s" + +msgid "%s, %s in %s" +msgstr "" + +msgid "(Unnamed Entry)" +msgstr "" + +msgid "(Unnamed Rule)" +msgstr "" + +msgid "(Unnamed SNAT)" +msgstr "" + +msgid "%d pkts. per %s" +msgstr "" + +msgid "%d pkts. per %s, burst %d pkts." +msgstr "" + +msgid "%s and limit to %s" +msgstr "" + +msgid "Action" +msgstr "" + +msgid "Add" +msgstr "" + +msgid "Add and edit..." +msgstr "추가 후 수정..." + +msgid "Advanced Settings" +msgstr "" + +msgid "Allow forward from source zones:" +msgstr "Source zone 로부터의 forward 허용:" + +msgid "Allow forward to destination zones:" +msgstr "Destination zone 으로 forward 허용:" + +msgid "Any" +msgstr "" + +msgid "Covered networks" +msgstr "" + +msgid "Custom Rules" +msgstr "Custom Rule" + +msgid "" +"Custom rules allow you to execute arbritary iptables commands which are not " +"otherwise covered by the firewall framework. The commands are executed after " +"each firewall restart, right after the default ruleset has been loaded." +msgstr "" +"Custom rule 은 방화벽 UI 로 해결이 되지 않는 임의의 iptables 명령을 " +"실행할 수 있도록 합니다. 입력된 명령어들은 매 방화벽 재시작시 실행되는데 " +"default ruleset 이 load 된 후 시점입니다." + +msgid "Destination IP address" +msgstr "Destination IP 주소" + +msgid "Destination address" +msgstr "Destination 주소" + +msgid "Destination port" +msgstr "" + +msgid "Destination zone" +msgstr "" + +msgid "Do not rewrite" +msgstr "" + +msgid "Drop invalid packets" +msgstr "" + +msgid "Enable" +msgstr "활성화" + +msgid "Enable NAT Loopback" +msgstr "NAT Loopback 활성화" + +msgid "Enable SYN-flood protection" +msgstr "SYN-flood protection 활성화" + +msgid "Enable logging on this zone" +msgstr "zone 의 logging 활성화" + +msgid "External IP address" +msgstr "외부 IP 주소" + +msgid "External port" +msgstr "외부 port" + +msgid "External zone" +msgstr "외부 zone" + +msgid "Extra arguments" +msgstr "추가 argument" + +msgid "Firewall" +msgstr "방화벽" + +msgid "Firewall - Custom Rules" +msgstr "방화벽 - Custom Rules" + +msgid "Firewall - Port Forwards" +msgstr "방화벽 - Port Forwards" + +msgid "Firewall - Traffic Rules" +msgstr "방화벽 - Traffic Rules" + +msgid "Firewall - Zone Settings" +msgstr "방화벽 - Zone 설정" + +msgid "Force connection tracking" +msgstr "" + +msgid "Forward" +msgstr "" + +msgid "Forward to" +msgstr "" + +msgid "Friday" +msgstr "금요일" + +msgid "From %s in %s" +msgstr "" + +msgid "From %s in %s with source %s" +msgstr "" + +msgid "From %s in %s with source %s and %s" +msgstr "" + +msgid "General Settings" +msgstr "" + +msgid "IPv4" +msgstr "" + +msgid "IPv4 and IPv6" +msgstr "" + +msgid "IPv4 only" +msgstr "" + +msgid "IPv6" +msgstr "" + +msgid "IPv6 only" +msgstr "" + +msgid "Input" +msgstr "" + +msgid "Inter-Zone Forwarding" +msgstr "" + +msgid "Internal IP address" +msgstr "내부 IP 주소" + +msgid "Internal port" +msgstr "내부 port" + +msgid "Internal zone" +msgstr "내부 zone" + +msgid "Limit log messages" +msgstr "" + +msgid "MSS clamping" +msgstr "" + +msgid "Masquerading" +msgstr "" + +msgid "Match" +msgstr "" + +msgid "Match ICMP type" +msgstr "" + +msgid "Match forwarded traffic to the given destination port or port range." +msgstr "" + +msgid "" +"Match incoming traffic directed at the given destination port or port range " +"on this host" +msgstr "" + +msgid "" +"Match incoming traffic originating from the given source port or port range " +"on the client host." +msgstr "" + +msgid "Monday" +msgstr "월요일" + +msgid "Month Days" +msgstr "" + +msgid "Name" +msgstr "이름" + +msgid "New SNAT rule" +msgstr "새로운 SNAT rule" + +msgid "New forward rule" +msgstr "새로운 forward rule" + +msgid "New input rule" +msgstr "새로운 input rule" + +msgid "New port forward" +msgstr "새로운 port forward" + +msgid "New source NAT" +msgstr "새로운 source NAT" + +msgid "Only match incoming traffic directed at the given IP address." +msgstr "" + +msgid "Only match incoming traffic from these MACs." +msgstr "" + +msgid "Only match incoming traffic from this IP or range." +msgstr "" + +msgid "" +"Only match incoming traffic originating from the given source port or port " +"range on the client host" +msgstr "" + +msgid "Open ports on router" +msgstr "" + +msgid "Other..." +msgstr "" + +msgid "Output" +msgstr "" + +msgid "Passes additional arguments to iptables. Use with care!" +msgstr "iptables 명령에 추가 인자들을 더합니다. 조심해 사용하세요!" + +msgid "Port Forwards" +msgstr "Port Forward" + +msgid "" +"Port forwarding allows remote computers on the Internet to connect to a " +"specific computer or service within the private LAN." +msgstr "" +"Port forwarding 기능은 인터넷 상의 원격 컴퓨터가 내부 LAN 에 속한 " +"특정 컴퓨터나 서비스에 접속할 수 있도록 합니다." + +msgid "Protocol" +msgstr "" + +msgid "" +"Redirect matched incoming traffic to the given port on the internal host" +msgstr "" + +msgid "Redirect matched incoming traffic to the specified internal host" +msgstr "" + +msgid "Restrict Masquerading to given destination subnets" +msgstr "주어진 destination subnet 으로 Masquerading 제한" + +msgid "Restrict Masquerading to given source subnets" +msgstr "주어진 source subnet 으로 Masquerading 제한" + +msgid "Restrict to address family" +msgstr "Address family 제한" + +msgid "Rewrite matched traffic to the given address." +msgstr "" + +msgid "" +"Rewrite matched traffic to the given source port. May be left empty to only " +"rewrite the IP address." +msgstr "" + +msgid "Rewrite to source %s" +msgstr "" + +msgid "Rewrite to source %s, %s" +msgstr "" + +msgid "SNAT IP address" +msgstr "" + +msgid "SNAT port" +msgstr "" + +msgid "Saturday" +msgstr "토요일" + +msgid "Source IP address" +msgstr "Source IP 주소" + +msgid "Source MAC address" +msgstr "Source MAC 주소" + +msgid "Source NAT" +msgstr "" + +msgid "" +"Source NAT is a specific form of masquerading which allows fine grained " +"control over the source IP used for outgoing traffic, for example to map " +"multiple WAN addresses to internal subnets." +msgstr "" +"Source NAT 기능은 masquerading 의 한 형태로써 outgoing 트래픽이 사용할 " +"source IP 를 세밀하게 제어할 수 있습니다. 예를 들어 다수의 WAN 주소들을 " +"내부 subnet 에 매핑(mapping) 할 경우 사용됩니다." + +msgid "Source address" +msgstr "Source 주소" + +msgid "Source port" +msgstr "" + +msgid "Source zone" +msgstr "" + +msgid "Start Date (yyyy-mm-dd)" +msgstr "시작 날짜 (yyyy-mm-dd)" + +msgid "Start Time (hh:mm:ss)" +msgstr "시작 시간 (hh:mm:ss)" + +msgid "Stop Date (yyyy-mm-dd)" +msgstr "종료 날짜 (yyyy-mm-dd)" + +msgid "Stop Time (hh:mm:ss)" +msgstr "종료 시간 (hh:mm:ss)" + +msgid "Sunday" +msgstr "일요일" + +msgid "" +"The firewall creates zones over your network interfaces to control network " +"traffic flow." +msgstr "" +"방화벽 기능을 이용하여 네트워크 인터페이스와 연결된 zone 을 생성할 수 있고 " +"이를 이용하여 네트워크 traffic flow 를 제어할 수 있습니다." + +msgid "" +"The options below control the forwarding policies between this zone (%s) and " +"other zones. Destination zones cover forwarded traffic " +"originating from %q. Source zones match forwarded " +"traffic from other zones targeted at %q. The forwarding " +"rule is unidirectional, e.g. a forward from lan to wan does " +"not imply a permission to forward from wan to lan as well." +msgstr "" +"이 zone (%s) 과 다른 zone 들 사이의 forwarding 정책을 제어하는 옵션들입니다. " +"Destination zones 은 %q 에서 출발한 " +"forward traffic 을 뜻하고, Source zones 은 다른 zone 들에서 " +"%q 로 전달되는 forward traffic 을 뜻합니다. " +"Forwarding rule 은 unidirectional 인데, 예를 들어 LAN 에서 WAN " +"으로의 forward 규칙이 WAN 에서 LAN 으로의 forward 를 허락하는 것이 " +"아닙니다." + +msgid "" +"This page allows you to change advanced properties of the port forwarding " +"entry. In most cases there is no need to modify those settings." +msgstr "" +"이 메뉴에서는 port forwarding 의 고급 설정 정보를 변경할 수 있습니다. " +"대부분의 경우 이 설정을 수정할 일이 없습니다." + +msgid "" +"This page allows you to change advanced properties of the traffic rule " +"entry, such as matched source and destination hosts." +msgstr "" +"이 메뉴에서는 traffic rule 항목의 고급 설정, 예를 들어 source host 와 " +"destination host 매칭, 을 변경할 수 있습니다." + +#, fuzzy +msgid "" +"This section defines common properties of %q. The input and " +"output options set the default policies for traffic entering and " +"leaving this zone while the forward option describes the policy for " +"forwarded traffic between different networks within the zone. Covered " +"networks specifies which available networks are members of this zone." +msgstr "" +"이 섹션은 %q 의 공통 속성을 설정할 수 있습니다. input 과 " +"output 옵션은 이 zone 으로 전달되어 들오거나 나가는 트래픽에 대한 " +"기본 정책을 뜻합니다. forward 옵션은 zone 내에서 다른 네트워크들 " +"사이를 오가는 forward traffic 에 대한 정책을 뜻합니다. " +"Covered networks 에서는 zone 의 영향을 받을 네트워크들을 지정할 수 " +"있습니다." + +msgid "Thursday" +msgstr "목요일" + +msgid "Time in UTC" +msgstr "UTC 기준시" + +msgid "To %s at %s on this device" +msgstr "" + +msgid "To %s in %s" +msgstr "" + +msgid "To %s on this device" +msgstr "" + +msgid "To %s, %s in %s" +msgstr "" + +msgid "To source IP" +msgstr "" + +msgid "To source port" +msgstr "" + +msgid "Traffic Rules" +msgstr "Traffic Rule" + +msgid "" +"Traffic rules define policies for packets traveling between different zones, " +"for example to reject traffic between certain hosts or to open WAN ports on " +"the router." +msgstr "" +"Traffic rule 은 서로 다른 zone 사이를 오가는 패킷들에 대한 정책을 " +"정의합니다. 예를 들어 특정 host 들 사이의 트래픽을 차단하거나 " +"공유기의 WAN port 를 open 할때 사용됩니다." + +msgid "Tuesday" +msgstr "화요일" + +msgid "Via %s" +msgstr "" + +msgid "Via %s at %s" +msgstr "" + +msgid "Wednesday" +msgstr "수요일" + +msgid "Week Days" +msgstr "주일" + +msgid "" +"You may specify multiple by selecting \"-- custom --\" and then entering " +"protocols separated by space." +msgstr "" + +msgid "Zone %q" +msgstr "" + +msgid "Zone ⇒ Forwardings" +msgstr "" + +msgid "Zones" +msgstr "Zone 내역" + +msgid "accept" +msgstr "" + +msgid "any" +msgstr "" + +msgid "any host" +msgstr "" + +msgid "any router IP" +msgstr "" + +msgid "any zone" +msgstr "" + +msgid "don't track" +msgstr "" + +msgid "drop" +msgstr "" + +msgid "reject" +msgstr "" + +msgid "traffic" +msgstr "" diff --git a/modules/luci-base/htdocs/luci-static/resources/cbi.js b/modules/luci-base/htdocs/luci-static/resources/cbi.js index 5790e303d..0ca7e264a 100644 --- a/modules/luci-base/htdocs/luci-static/resources/cbi.js +++ b/modules/luci-base/htdocs/luci-static/resources/cbi.js @@ -523,13 +523,6 @@ function cbi_init() { } } - nodes = document.querySelectorAll('[data-type]'); - - for (var i = 0, node; (node = nodes[i]) !== undefined; i++) { - cbi_validate_field(node, node.getAttribute('data-optional') === 'true', - node.getAttribute('data-type')); - } - nodes = document.querySelectorAll('[data-choices]'); for (var i = 0, node; (node = nodes[i]) !== undefined; i++) { @@ -562,6 +555,13 @@ function cbi_init() { cbi_dynlist_init(node, choices[2], choices[3], options); } + nodes = document.querySelectorAll('[data-type]'); + + for (var i = 0, node; (node = nodes[i]) !== undefined; i++) { + cbi_validate_field(node, node.getAttribute('data-optional') === 'true', + node.getAttribute('data-type')); + } + cbi_d_update(); } diff --git a/modules/luci-base/po/ko/base.po b/modules/luci-base/po/ko/base.po index 59f566e70..c20444e10 100644 --- a/modules/luci-base/po/ko/base.po +++ b/modules/luci-base/po/ko/base.po @@ -1247,7 +1247,7 @@ msgid "Global network options" msgstr "" msgid "Go to password configuration..." -msgstr "" +msgstr "암호 설정 하기" msgid "Go to relevant configuration page" msgstr "" @@ -2003,7 +2003,7 @@ msgid "No package lists available" msgstr "" msgid "No password set!" -msgstr "" +msgstr "암호 설정을 해주세요!" msgid "No rules in this chain" msgstr "" @@ -2737,7 +2737,7 @@ msgid "Service Type" msgstr "" msgid "Services" -msgstr "Services" +msgstr "서비스" msgid "Set up Time Synchronization" msgstr "" @@ -3123,6 +3123,8 @@ msgid "" "There is no password set on this router. Please configure a root password to " "protect the web interface and enable SSH." msgstr "" +"이 공유기에 암호 설정이 되지 않았습니다. 웹 UI 와 SSH 부분을 보호하기 " +"위해서 꼭 root 암호를 설정해 주세요." msgid "This IPv4 address of the relay" msgstr "" diff --git a/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua b/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua index 24db1e4ff..ad575e0d2 100644 --- a/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua +++ b/modules/luci-mod-admin-full/luasrc/controller/admin/status.lua @@ -24,8 +24,10 @@ function index() entry({"admin", "status", "realtime", "bandwidth"}, template("admin_status/bandwidth"), _("Traffic"), 2).leaf = true entry({"admin", "status", "realtime", "bandwidth_status"}, call("action_bandwidth")).leaf = true - entry({"admin", "status", "realtime", "wireless"}, template("admin_status/wireless"), _("Wireless"), 3).leaf = true - entry({"admin", "status", "realtime", "wireless_status"}, call("action_wireless")).leaf = true + if nixio.fs.access("/etc/config/wireless") then + entry({"admin", "status", "realtime", "wireless"}, template("admin_status/wireless"), _("Wireless"), 3).leaf = true + entry({"admin", "status", "realtime", "wireless_status"}, call("action_wireless")).leaf = true + end entry({"admin", "status", "realtime", "connections"}, template("admin_status/connections"), _("Connections"), 4).leaf = true entry({"admin", "status", "realtime", "connections_status"}, call("action_connections")).leaf = true diff --git a/modules/luci-mod-admin-full/luasrc/controller/admin/system.lua b/modules/luci-mod-admin-full/luasrc/controller/admin/system.lua index cf8cfb5d2..5478afa3e 100644 --- a/modules/luci-mod-admin-full/luasrc/controller/admin/system.lua +++ b/modules/luci-mod-admin-full/luasrc/controller/admin/system.lua @@ -52,6 +52,7 @@ function action_clock_status() luci.sys.call("date -s '%04d-%02d-%02d %02d:%02d:%02d'" %{ date.year, date.month, date.day, date.hour, date.min, date.sec }) + luci.sys.call("/etc/init.d/sysfixtime restart") end end 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 index 774c6db22..e58532410 100644 --- 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 @@ -1,4 +1,4 @@ --- Copyright 2016 Dan Luedtke +-- Copyright 2016-2017 Dan Luedtke -- Licensed to the public under the Apache License 2.0. @@ -34,6 +34,16 @@ listen_port.datatype = "port" listen_port.placeholder = "51820" listen_port.optional = true +addresses = section:taboption( + "general", + DynamicList, + "addresses", + translate("IP Addresses"), + translate("Recommended. IP addresses of the WireGuard interface.") +) +addresses.datatype = "ipaddr" +addresses.optional = true + -- advanced --------------------------------------------------------------------