luci-0.11: merge r9571 - r9622
authorJo-Philipp Wich <jow@openwrt.org>
Fri, 18 Jan 2013 14:08:37 +0000 (14:08 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Fri, 18 Jan 2013 14:08:37 +0000 (14:08 +0000)
65 files changed:
applications/luci-freifunk-diagnostics/Makefile [new file with mode: 0644]
applications/luci-freifunk-diagnostics/ipkg/postinst [new file with mode: 0644]
applications/luci-freifunk-diagnostics/luasrc/controller/freifunk/diag.lua [new file with mode: 0644]
applications/luci-freifunk-diagnostics/luasrc/view/freifunk/diagnostics.htm [new file with mode: 0644]
applications/luci-freifunk-diagnostics/root/etc/uci-defaults/luci-freifunk-diagnostics [new file with mode: 0644]
applications/luci-freifunk-widgets/root/etc/config/freifunk-widgets
applications/luci-meshwizard/luasrc/model/cbi/freifunk/meshwizard.lua
applications/luci-olsr/luasrc/view/status-olsr/overview.htm
applications/luci-statistics/luasrc/model/cbi/luci_statistics/olsrd.lua
applications/luci-upnp/luasrc/controller/upnp.lua
applications/luci-upnp/luasrc/model/cbi/upnp/upnpmini.lua [deleted file]
contrib/package/community-profiles/files/etc/config/profile_augsburg
contrib/package/luci/Makefile
contrib/package/meshwizard/Makefile
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/gen_bssid.sh
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_firewall_interface.sh
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh [new file with mode: 0755]
libs/core/luasrc/model/network.lua
libs/sys/luasrc/sys.lua
libs/web/src/template_lmo.h
modules/admin-full/luasrc/model/cbi/admin_network/dhcp.lua
modules/admin-full/luasrc/view/admin_network/diagnostics.htm
modules/admin-full/luasrc/view/admin_network/wifi_overview.htm
modules/freifunk/luasrc/model/cbi/freifunk/contact.lua
modules/freifunk/luasrc/view/freifunk/contact.htm
po/ca/base.po
po/cs/base.po
po/de/base.po
po/el/base.po
po/en/base.po
po/es/base.po
po/fr/base.po
po/he/base.po
po/hu/base.po
po/hu/mmc_over_gpio.po
po/hu/multiwan.po
po/hu/qos.po
po/it/base.po
po/ja/base.po
po/ms/base.po
po/no/base.po
po/pl/base.po
po/pl/commands.po
po/pl/ddns.po
po/pl/firewall.po
po/pl/p910nd.po
po/pl/polipo.po
po/pl/splash.po
po/pl/transmission.po
po/pt/base.po
po/pt_BR/base.po
po/ro/base.po
po/ru/base.po
po/templates/base.pot
po/tr/base.po
po/uk/base.po
po/uk/coovachilli.po
po/uk/ddns.po
po/uk/firewall.po
po/uk/mmc_over_gpio.po
po/uk/voice_core.po
po/vi/base.po
po/zh_CN/base.po
themes/bootstrap/htdocs/luci-static/bootstrap/cascade.css

diff --git a/applications/luci-freifunk-diagnostics/Makefile b/applications/luci-freifunk-diagnostics/Makefile
new file mode 100644 (file)
index 0000000..f7fac77
--- /dev/null
@@ -0,0 +1,2 @@
+include ../../build/config.mk
+include ../../build/module.mk
diff --git a/applications/luci-freifunk-diagnostics/ipkg/postinst b/applications/luci-freifunk-diagnostics/ipkg/postinst
new file mode 100644 (file)
index 0000000..cc814c3
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+[ -n "${IPKG_INSTROOT}" ] || {
+       ( . /etc/uci-defaults/luci-freifunk-diagnostics ) && rm -f /etc/uci-defaults/luci-freifunk-diagnostics
+}
diff --git a/applications/luci-freifunk-diagnostics/luasrc/controller/freifunk/diag.lua b/applications/luci-freifunk-diagnostics/luasrc/controller/freifunk/diag.lua
new file mode 100644 (file)
index 0000000..2a5db67
--- /dev/null
@@ -0,0 +1,82 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2011 Jo-Philipp Wich <xm@subsignal.org>
+Copyright 2013 Manuel Munz <freifunk@somakoma.de>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+]]--
+
+module("luci.controller.freifunk.diag", package.seeall)
+
+function index()
+       local uci = require("luci.model.uci").cursor()
+       local page
+       page = node("freifunk", "status", "diagnostics")
+       page.target = template("freifunk/diagnostics")
+       page.title  = _("Diagnostics")
+       page.order  = 60
+
+       page = entry({"freifunk", "status", "diag_ping"}, call("diag_ping"), nil)
+       page.leaf = true
+
+       page = entry({"freifunk", "status", "diag_nslookup"}, call("diag_nslookup"), nil)
+       page.leaf = true
+
+       page = entry({"freifunk", "status", "diag_traceroute"}, call("diag_traceroute"), nil)
+       page.leaf = true
+
+       page = entry({"freifunk", "status", "diag_ping6"}, call("diag_ping6"), nil)
+       page.leaf = true
+
+       page = entry({"freifunk", "status", "diag_traceroute6"}, call("diag_traceroute6"), nil)
+       page.leaf = true
+end
+
+function diag_command(cmd, addr)
+       if addr and addr:match("^[a-zA-Z0-9%-%.:_]+$") then
+               luci.http.prepare_content("text/plain")
+
+               local util = io.popen(cmd % addr)
+               if util then
+                       while true do
+                               local ln = util:read("*l")
+                               if not ln then break end
+                               luci.http.write(ln)
+                               luci.http.write("\n")
+                       end
+
+                       util:close()
+               end
+
+               return
+       end
+
+       luci.http.status(500, "Bad address")
+end
+
+function diag_ping(addr)
+       diag_command("ping -c 5 -W 1 %q 2>&1", addr)
+end
+
+function diag_traceroute(addr)
+       diag_command("traceroute -q 1 -w 1 -n %q 2>&1", addr)
+end
+
+function diag_nslookup(addr)
+       diag_command("nslookup %q 2>&1", addr)
+end
+
+function diag_ping6(addr)
+       diag_command("ping6 -c 5 %q 2>&1", addr)
+end
+
+function diag_traceroute6(addr)
+       diag_command("traceroute6 -q 1 -w 2 -n %q 2>&1", addr)
+end
diff --git a/applications/luci-freifunk-diagnostics/luasrc/view/freifunk/diagnostics.htm b/applications/luci-freifunk-diagnostics/luasrc/view/freifunk/diagnostics.htm
new file mode 100644 (file)
index 0000000..f35811f
--- /dev/null
@@ -0,0 +1,120 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2010 Jo-Philipp Wich <xm@subsignal.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+
+<%+header%>
+
+<%
+local fs   = require "nixio.fs"
+local has_ping6 = fs.access("/bin/ping6") or fs.access("/usr/bin/ping6")
+local has_traceroute6 = fs.access("/usr/bin/traceroute6")
+%>
+
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
+<script type="text/javascript">//<![CDATA[
+       var stxhr = new XHR();
+
+       function update_status(field, proto)
+       {
+               var tool = field.name;
+               var addr = field.value;
+               var protocol = proto ? "6" : "";
+
+               var legend = document.getElementById('diag-rc-legend');
+               var output = document.getElementById('diag-rc-output');
+
+               if (legend && output)
+               {
+                       output.innerHTML =
+                               '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> ' +
+                               '<%:Waiting for command to complete...%>'
+                       ;
+
+                       legend.parentNode.style.display = 'block';
+                       legend.style.display = 'inline';
+
+                       stxhr.get('<%=luci.dispatcher.build_url("freifunk", "status")%>/diag_' + tool + protocol + '/' + addr, null,
+                               function(x)
+                               {
+                                       if (x.responseText)
+                                       {
+                                               legend.style.display = 'none';
+                                               output.innerHTML = String.format('<pre>%h</pre>', x.responseText);
+                                       }
+                                       else
+                                       {
+                                               legend.style.display = 'none';
+                                               output.innerHTML = '<span class="error"><%:Bad address specified!%></span>';
+                                       }
+                               }
+                       );
+               }
+       }
+//]]></script>
+
+<form method="post" action="<%=pcdata(luci.http.getenv("REQUEST_URI"))%>">
+       <div class="cbi-map">
+               <h2><a id="content" name="content"><%:Diagnostics%></a></h2>
+
+               <fieldset class="cbi-section">
+                       <legend><%:Network Utilities%></legend>
+
+                       <br />
+
+                       <div style="width:30%; float:left">
+                               <input style="margin: 5px 0" type="text" value="openwrt.org" name="ping" /><br />
+                               <% if has_ping6 then %>
+                               <select name="ping_proto" style="width:auto">
+                                       <option value="" selected="selected"><%:IPv4%></option>
+                                       <option value="6"><%:IPv6%></option>
+                               </select>
+                               <input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping, this.form.ping_proto.selectedIndex)" />
+                               <% else %>
+                               <input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping)" />
+                               <% end %>
+                       </div>
+
+                       <div style="width:33%; float:left">
+                               <input style="margin: 5px 0" type="text" value="openwrt.org" name="traceroute" /><br />
+                               <% if has_traceroute6 then %>
+                               <select name="traceroute_proto" style="width:auto">
+                                       <option value="" selected="selected"><%:IPv4%></option>
+                                       <option value="6"><%:IPv6%></option>
+                               </select>
+                               <input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute, this.form.traceroute_proto.selectedIndex)" />
+                               <% else %>
+                               <input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute)" />
+                               <% end %>
+                               <% if not has_traceroute6 then %>
+                                       <p>&#160;</p>
+                                       <p><%:Install iputils-traceroute6 for IPv6 traceroute%></p>
+                               <% end %>
+                       </div>
+
+                       <div style="width:33%; float:left;">
+                               <input style="margin: 5px 0" type="text" value="openwrt.org" name="nslookup" /><br />
+                               <input type="button" value="<%:Nslookup%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.nslookup)" />
+                       </div>
+
+                       <br style="clear:both" /><br />
+
+               </fieldset>
+       </div>
+
+       <fieldset class="cbi-section" style="display:none">
+               <legend id="diag-rc-legend"><%:Collecting data...%></legend>
+               <span id="diag-rc-output"></span>
+       </fieldset>
+</form>
+
+<%+footer%>
diff --git a/applications/luci-freifunk-diagnostics/root/etc/uci-defaults/luci-freifunk-diagnostics b/applications/luci-freifunk-diagnostics/root/etc/uci-defaults/luci-freifunk-diagnostics
new file mode 100644 (file)
index 0000000..963d8a4
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+rm -f /tmp/luci-indexcache
index e5a20e7..5a9f325 100644 (file)
@@ -19,7 +19,7 @@ config widget 'example_search'
        option enabled '0'
        option title 'Search'
        list engine 'Google|http://www.google.de/search?q='
-       list engine 'Freifunk Wiki|http://wiki.freifunk.net/index.php?search='
+       list engine 'Freifunk&#160;Wiki|http://wiki.freifunk.net/index.php?search='
        option width '50%'
        option paddingright '8%'
 
index f4478f6..3a52419 100644 (file)
@@ -142,7 +142,11 @@ uci:foreach("wireless", "wifi-device", function(section)
        end
 
        -- Enable VAP
-       if hwtype == "atheros" then
+       local supports_vap = 0
+       if sys.call("/usr/bin/meshwizard/helpers/supports_vap.sh " .. device .. " " .. hwtype) == 0 then
+               supports_vap = 1
+       end
+       if supports_vap == 1 then
                local vap = n:taboption(device, Flag, device .. "_vap", translate("Virtual Access Point (VAP)"),
                        translate("This will setup a new virtual wireless interface in Access Point mode."))
                vap:depends(device .. "_dhcp", "1")
index d57da7c..294af7b 100644 (file)
@@ -168,7 +168,7 @@ XHR.poll(30, '<%=REQUEST_URI%>', { status: 1 },
                        </div>
                        <div class="cbi-value-field">
                                <div style="width: 6em; float:left;">
-                                       <a href="<%=luci.dispatcher.build_url("freifunk", "olsr", "interfaces")%>">
+                                       <a href="<%=REQUEST_URI%>/interfaces">
                                                <span id="nr_ifaces">
                                                        <%=nr_ifaces%>
                                                <span>
@@ -189,7 +189,7 @@ XHR.poll(30, '<%=REQUEST_URI%>', { status: 1 },
                        </div>
                        <div class="cbi-value-field">
                                <div style="width: 6em; float:left;">
-                                       <a href="<%=luci.dispatcher.build_url("freifunk", "olsr", "neighbors")%>">
+                                       <a href="<%=REQUEST_URI%>/neighbors">
                                                <span id="nr_neigh">
                                                        <%=nr_neigh%>
                                                </span>
@@ -210,7 +210,7 @@ XHR.poll(30, '<%=REQUEST_URI%>', { status: 1 },
                        </div>
                        <div class="cbi-value-field">
                                <div style="width: 6em; float:left;">
-                                       <a href="<%=luci.dispatcher.build_url("freifunk", "olsr", "topology")%>">
+                                       <a href="<%=REQUEST_URI%>/topology">
                                                <span id="nr_nodes">
                                                        <%=nr_nodes%>
                                                </span>
@@ -226,7 +226,7 @@ XHR.poll(30, '<%=REQUEST_URI%>', { status: 1 },
                        </div>
                        <div class="cbi-value-field">
                                <div style="width: 6em; float:left;">
-                                       <a href="<%=luci.dispatcher.build_url("freifunk", "olsr", "hna")%>">
+                                       <a href="<%=REQUEST_URI%>/hna">
                                                <span id="nr_hna">
                                                        <%=nr_hna%>
                                                </span>
@@ -242,7 +242,7 @@ XHR.poll(30, '<%=REQUEST_URI%>', { status: 1 },
                        </div>
                        <div class="cbi-value-field">
                                <div style="width: 6em; float:left;">
-                                       <a href="<%=luci.dispatcher.build_url("freifunk", "olsr", "topology")%>">
+                                       <a href="<%=REQUEST_URI%>/topology">
                                                <span id="nr_topo">
                                                        <%=nr_topo%>
                                                </span>
index 1bb1f83..e3eb7b2 100644 (file)
@@ -21,7 +21,7 @@ enable.default = 0
 
 host = s:option(Value, "Host", translate("Host"), translate("IP or hostname where to get the txtinfo output from"))
 host.placeholder = "127.0.0.1"
-host.datatype = "hostname"
+host.datatype = "host"
 host.rmempty = true
 
 port = s:option(Value, "Port", translate("Port"))
index 7acd029..83fa941 100644 (file)
@@ -10,7 +10,6 @@ You may obtain a copy of the License at
 
        http://www.apache.org/licenses/LICENSE-2.0
 
-$Id$
 ]]--
 
 module("luci.controller.upnp", package.seeall)
@@ -25,9 +24,6 @@ function index()
        page = entry({"admin", "services", "upnp"}, cbi("upnp/upnp"), _("UPNP"))
        page.dependent = true
 
-       page = entry({"mini", "network", "upnp"}, cbi("upnp/upnpmini", {autoapply=true}), _("UPNP"))
-       page.dependent = true
-
        entry({"admin", "services", "upnp", "status"}, call("act_status")).leaf = true
        entry({"admin", "services", "upnp", "delete"}, call("act_delete")).leaf = true
 end
@@ -67,11 +63,20 @@ function act_status()
        end
 end
 
-function act_delete(idx)
-       idx = tonumber(idx)
+function act_delete(num)
+       local idx = tonumber(num)
+       local uci = luci.model.uci.cursor()
+
        if idx and idx > 0 then
                luci.sys.call("iptables -t filter -D MINIUPNPD %d 2>/dev/null" % idx)
                luci.sys.call("iptables -t nat -D MINIUPNPD %d 2>/dev/null" % idx)
+
+               local lease_file = uci:get("upnpd", "config", "upnp_lease_file")
+               if lease_file and nixio.fs.access(lease_file) then
+                       luci.sys.call("sed -i -e '%dd' %q" %{ idx, lease_file })
+               end
+
+               luci.http.status(200, "OK")
                return
        end
 
diff --git a/applications/luci-upnp/luasrc/model/cbi/upnp/upnpmini.lua b/applications/luci-upnp/luasrc/model/cbi/upnp/upnpmini.lua
deleted file mode 100644 (file)
index 3f1ba30..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---[[
-LuCI - Lua Configuration Interface
-
-Copyright 2008 Steven Barth <steven@midlink.org>
-Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-$Id$
-]]--
-m = Map("upnpd", translate("Universal Plug & Play"), translate("UPNP allows clients in the local network to automatically configure the router."))
-
-s = m:section(NamedSection, "config", "upnpd", "")
-s.addremove = false
-
-e = s:option(Flag, "enabled", translate("enable"))
-e.rmempty = false
-
-s:option(Value, "download", translate("Downlink"), "kByte/s").rmempty = true
-s:option(Value, "upload", translate("Uplink"), "kByte/s").rmempty = true
-
-return m
index 46cf100..fdb73cc 100644 (file)
@@ -53,8 +53,8 @@ config widget 'search'
        option enabled '1'
        option width '50%'
        list engine 'Google|http://www.google.de/search?q=' 
-       list engine 'Freifunk Augsburg|http://www.google.de/search?q=site:augsburg.freifunk.net&'
-       list engine 'Freifunk Wiki|http://wiki.freifunk.net/index.php?search='
+       list engine 'Freifunk&#160;Augsburg|http://www.google.de/search?q=site:augsburg.freifunk.net+'
+       list engine 'Freifunk&#160;Wiki|http://wiki.freifunk.net/index.php?search='
 
 config widget 'clear1'
        option template 'clear'
index 33267b6..9fbc587 100644 (file)
@@ -344,6 +344,8 @@ $(eval $(call application,olsr,OLSR configuration and status module,\
 $(eval $(call application,olsr-viz,OLSR Visualisation,\
        luci-app-olsr +olsrd-mod-txtinfo))
 
+$(eval $(call application,freifunk-diagnostics,Tools for network diagnosis like traceroute and ping))
+
 $(eval $(call application,olsr-services,Show services announced with the nameservice plugin,\
        luci-app-olsr +olsrd-mod-nameservice))
 
index a9a1a0b..3aaddec 100644 (file)
@@ -4,7 +4,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=meshwizard
-PKG_RELEASE:=0.0.8-1
+PKG_RELEASE:=0.0.8-3
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
index 8c9155e..efe101f 100755 (executable)
@@ -24,10 +24,10 @@ if [ -z "$bssid" ]; then
                bssid="$(printf "%X\n" $channel)2:CA:FF:EE:BA:BE"
                ;;
        [3-9][0-9])
-               bssid="00:$channel:CA:FF:EE:EE"
+               bssid="02:$channel:CA:FF:EE:EE"
                ;;
        1[0-9][0-9])
-               bssid="${channel/1/01:}:CA:FF:EE:EE"
+               bssid="${channel/1/12:}:CA:FF:EE:EE"
                ;;
        *)      bssid="02:CA:FF:EE:BA:BE"
                ;;
index 7f40f87..fc66443 100755 (executable)
@@ -45,7 +45,11 @@ network=$(echo $network) # Removes leading and trailing whitespaces
 
 [ -n "$netrenamed" ] && [ -z "$(echo $network | grep $netrenamed)" ] && network="$network $netrenamed"
 
-if [ "$type" == "atheros" -a "$vap" == 1 ]; then
+# check if this hardware supports VAPs
+supports_vap="0"
+$dir/helpers/supports_vap.sh $net $type && supports_vap=1
+
+if [ "$supports_vap" == "1" -a "$vap" == 1 ]; then
         [ -n "$netrenamed" ] && [ "$network" == "${network/${netrenamed}dhcp/}" ] && network="$network ${netrenamed}dhcp"
 fi
 
index 84c5438..34bd0cb 100755 (executable)
@@ -79,7 +79,16 @@ uci_commitverbose "Setup wifi interface for $netrenamed" wireless
 
 ## VAP
 ip4addr="$(uci get meshwizard.netconfig.$net\_ip4addr)"
-if [ "$type" == "atheros" -a "$vap" == 1 ]; then
+
+# check if this hardware supports VAPs
+# the interface needs to be up before the check can happen
+
+/sbin/wifi
+
+supports_vap="0"
+$dir/helpers/supports_vap.sh $net $type && supports_vap=1
+
+if [ "$supports_vap" == "1" -a "$vap" == 1 ]; then
        uci batch <<- EOF
                set wireless.$net\_iface_dhcp="wifi-iface"
                set wireless.$net\_iface_dhcp.device="$net"
diff --git a/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh b/contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh
new file mode 100755 (executable)
index 0000000..045ea97
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+# checks if a given device can be used for a VAP interface (1 adhoc + 1 ap)
+dev="$1"
+type="$2"
+
+
+if [ -z "$dev" -o -z "$type" ]; then
+       exit 1
+fi
+
+if [ "$type" = "atheros" ]; then
+        exit 0
+elif [ "$type" = "mac80211" ]; then
+       # not hostapd[-mini], no VAP
+       if [ ! -x /usr/sbin/hostapd ]; then
+               echo "WARNING: hostapd[-mini] is required to be able to use VAP with mac80211."
+               exit 1
+       fi
+        # get driver in use
+        netindex="$(echo $dev |sed 's/[a-zA-z]*//')"
+       if [ -d /sys/class/net/wlan${netindex}/device/driver/module ]; then
+               driver="$(basename $(ls -l /sys/class/net/wlan${netindex}/device/driver/module | sed -ne 's/.* -> //p'))"
+               if [ "$driver" = "ath9k" -o  "$driver" = "ath5k" ]; then
+                       exit 0
+               else
+                       exit 1
+               fi
+       else
+               exit 1
+       fi
+else
+       exit 1
+fi
+
+
index 56f1751..09a58d7 100644 (file)
@@ -1164,31 +1164,24 @@ function interface.is_bridgeport(self)
        return self.dev and self.dev.bridge and true or false
 end
 
-local function uint(x)
-       if x then
-               return (x < 0) and ((2^32) + x) or x
-       end
-       return 0
-end
-
 function interface.tx_bytes(self)
        local stat = self:_ubus("statistics")
-       return stat and uint(stat.tx_bytes) or 0
+       return stat and stat.tx_bytes or 0
 end
 
 function interface.rx_bytes(self)
        local stat = self:_ubus("statistics")
-       return stat and uint(stat.rx_bytes) or 0
+       return stat and stat.rx_bytes or 0
 end
 
 function interface.tx_packets(self)
        local stat = self:_ubus("statistics")
-       return stat and uint(stat.tx_packets) or 0
+       return stat and stat.tx_packets or 0
 end
 
 function interface.rx_packets(self)
        local stat = self:_ubus("statistics")
-       return stat and uint(stat.rx_packets) or 0
+       return stat and stat.rx_packets or 0
 end
 
 function interface.get_network(self)
index 825092f..18622da 100644 (file)
@@ -695,38 +695,29 @@ end
 function process.list()
        local data = {}
        local k
-       local ps = luci.util.execi("top -bn1")
+       local ps = luci.util.execi("/bin/busybox top -bn1")
 
        if not ps then
                return
        end
 
-       while true do
-               local line = ps()
-               if not line then
-                       return
-               end
-
-               k = luci.util.split(luci.util.trim(line), "%s+", nil, true)
-               if k[6] == "%VSZ" then
-                       k[6] = "%MEM"
-               end
-               if k[1] == "PID" then
-                       break
-               end
-       end
-
        for line in ps do
-               local row = {}
-
-               line = luci.util.trim(line)
-               for i, value in ipairs(luci.util.split(line, "%s+", #k-1, true)) do
-                       row[k[i]] = value
-               end
+               local pid, ppid, user, stat, vsz, mem, cpu, cmd = line:match(
+                       "^ *(%d+) +(%d+) +(%S.-%S) +([RSDZTW][W ][<N ]) +(%d+) +(%d+%%) +(%d+%%) +(.+)"
+               )
 
-               local pid = tonumber(row[k[1]])
-               if pid then
-                       data[pid] = row
+               local idx = tonumber(pid)
+               if idx then
+                       data[idx] = {
+                               ['PID']     = pid,
+                               ['PPID']    = ppid,
+                               ['USER']    = user,
+                               ['STAT']    = stat,
+                               ['VSZ']     = vsz,
+                               ['%MEM']    = mem,
+                               ['%CPU']    = cpu,
+                               ['COMMAND'] = cmd
+                       }
                end
        end
 
index a40d758..57f59aa 100644 (file)
@@ -32,6 +32,7 @@
 #include <fnmatch.h>
 #include <dirent.h>
 #include <ctype.h>
+#include <limits.h>
 
 #if (defined(__GNUC__) && defined(__i386__))
 #define sfh_get16(d) (*((const uint16_t *) (d)))
index bf8418f..98f9d8e 100644 (file)
@@ -236,6 +236,7 @@ name.rmempty  = true
 
 mac = s:option(Value, "mac", translate("<abbr title=\"Media Access Control\">MAC</abbr>-Address"))
 mac.datatype = "list(macaddr)"
+mac.rmempty  = true
 
 ip = s:option(Value, "ip", translate("<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"))
 ip.datatype = "ip4addr"
@@ -248,5 +249,14 @@ sys.net.arptable(function(entry)
        )
 end)
 
+function ip.validate(self, value, section)
+       local m = mac:formvalue(section) or ""
+       local n = name:formvalue(section) or ""
+       if value and #n == 0 and #m == 0 then
+               return nil, translate("One of hostname or mac address must be specified!")
+       end
+       return Value.validate(self, value, section)
+end
+
 
 return m
index 6466688..d1bef2a 100644 (file)
@@ -24,23 +24,15 @@ local has_traceroute6 = fs.access("/usr/bin/traceroute6")
 <script type="text/javascript">//<![CDATA[
        var stxhr = new XHR();
 
-       function update_status(field,proto)
+       function update_status(field, proto)
        {
                var tool = field.name;
                var addr = field.value;
-               var protocol = ""
+               var protocol = proto ? "6" : "";
 
                var legend = document.getElementById('diag-rc-legend');
                var output = document.getElementById('diag-rc-output');
 
-               if (typeof proto != 'undefined') {
-                       for(var i = 0; i < proto.length; i++) {
-                               if(proto[i].checked) {
-                                       protocol = proto[i].value;
-                               }
-                       }
-               }
-
                if (legend && output)
                {
                        output.innerHTML =
@@ -80,29 +72,37 @@ local has_traceroute6 = fs.access("/usr/bin/traceroute6")
                        <br />
 
                        <div style="width:30%; float:left">
-                               <input style="width: 50%" type="text" value="openwrt.org" name="ping" />
-                               <input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping,this.form.proto)" />
+                               <input style="margin: 5px 0" type="text" value="openwrt.org" name="ping" /><br />
                                <% if has_ping6 then %>
-                               <div style="width:100%; margin-top: 10px;">
-                                       <input type="radio" name="proto" value="" checked="checked" /> <%:IPv4%>
-                                       <input type="radio" name="proto" value="6" /> <%:IPv6%>
-                               </div>
-                               <%end%>
+                               <select name="ping_proto" style="width:auto">
+                                       <option value="" selected="selected"><%:IPv4%></option>
+                                       <option value="6"><%:IPv6%></option>
+                               </select>
+                               <input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping, this.form.ping_proto.selectedIndex)" />
+                               <% else %>
+                               <input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping)" />
+                               <% end %>
                        </div>
 
                        <div style="width:33%; float:left">
-                               <input style="width: 50%" type="text" value="openwrt.org" name="traceroute" />
-                               <input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute,this.form.trproto)" />
+                               <input style="margin: 5px 0" type="text" value="openwrt.org" name="traceroute" /><br />
                                <% if has_traceroute6 then %>
-                               <div style="width:100%; margin-top: 10px;">
-                                       <input type="radio" name="trproto" value="" checked="checked" /> <%:IPv4%>
-                                       <input type="radio" name="trproto" value="6" /> <%:IPv6%>
-                               </div>
-                               <%end%>
+                               <select name="traceroute_proto" style="width:auto">
+                                       <option value="" selected="selected"><%:IPv4%></option>
+                                       <option value="6"><%:IPv6%></option>
+                               </select>
+                               <input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute, this.form.traceroute_proto.selectedIndex)" />
+                               <% else %>
+                               <input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute)" />
+                               <% end %>
+                               <% if not has_traceroute6 then %>
+                                       <p>&#160;</p>
+                                       <p><%:Install iputils-traceroute6 for IPv6 traceroute%></p>
+                               <% end %>
                        </div>
 
                        <div style="width:33%; float:left;">
-                               <input style="width: 50%" type="text" value="openwrt.org" name="nslookup" />
+                               <input style="margin: 5px 0" type="text" value="openwrt.org" name="nslookup" /><br />
                                <input type="button" value="<%:Nslookup%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.nslookup)" />
                        </div>
 
index ab5d7a2..97d900d 100644 (file)
@@ -1,7 +1,7 @@
 <%#
 LuCI - Lua Configuration Interface
 Copyright 2008-2009 Steven Barth <steven@midlink.org>
-Copyright 2008-2011 Jo-Philipp Wich <xm@subsignal.org>
+Copyright 2008-2013 Jo-Philipp Wich <xm@subsignal.org>
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -23,20 +23,25 @@ You may obtain a copy of the License at
 
        ntm.init(uci)
 
-       function guess_wifi_hw(ifname)
+       function guess_wifi_hw(dev)
                local bands = ""
+               local ifname = dev:name()
                local name, idx = ifname:match("^([a-z]+)(%d+)")
                idx = tonumber(idx)
 
                if has_iwinfo then
-                       local iw = luci.sys.wifi.getiwinfo(ifname)
-                       local bl = iw.hwmodelist
+                       local bl = dev.iwinfo.hwmodelist
                        if bl and next(bl) then
                                if bl.a then bands = bands .. "a" end
                                if bl.b then bands = bands .. "b" end
                                if bl.g then bands = bands .. "g" end
                                if bl.n then bands = bands .. "n" end
                        end
+
+                       local hw = dev.iwinfo.hardware_name
+                       if hw then
+                               return "%s 802.11%s" %{ hw, bands }
+                       end
                end
 
                -- wl.o
@@ -365,7 +370,7 @@ You may obtain a copy of the License at
                        <tr>
                                <td style="width:34px"><img src="<%=resource%>/icons/wifi_big_disabled.png" style="float:left; margin-right:10px" id="<%=dev:name()%>-iw-upstate" /></td>
                                <td colspan="2" style="text-align:left">
-                                       <big><strong><%=guess_wifi_hw(dev:name())%> (<%=dev:name()%>)</strong></big><br />
+                                       <big><strong><%=guess_wifi_hw(dev)%> (<%=dev:name()%>)</strong></big><br />
                                        <span id="<%=dev:name()%>-iw-devinfo"></span>
                                </td>
                                <td style="width:310px;text-align:right">
index f6cdec7..30e94a3 100644 (file)
@@ -17,6 +17,7 @@ c = m:section(NamedSection, "contact", "public", "")
 
 c:option(Value, "nickname", translate("Nickname"))
 c:option(Value, "name", translate("Realname"))
+c:option(DynamicList, "homepage", translate("Homepage"))
 c:option(Value, "mail", translate("E-Mail"))
 c:option(Value, "phone", translate("Phone"))
 c:option(TextValue, "note", translate("Notice")).rows = 10
index 23a5e7b..2d79ccd 100644 (file)
@@ -21,10 +21,11 @@ local lon = uci:get_first("system", "system", "longitude")
 local lat = uci:get_first("system", "system", "latitude")
 
 if not contact then
-       nickname, name, mail, phone, location, note = ""
+       nickname, name, homepage, mail, phone, location, note = ""
 else
        nickname = contact.nickname or ""
        name = contact.name or ""
+       homepage = contact.homepage or {}
        mail = contact.mail or ""
        phone = contact.phone or ""
        location = uci:get_first("system", "system", "location") or contact.location
@@ -39,6 +40,11 @@ end
        <table cellspacing="10" width="100%" style="text-align:left">
                <tr><th width="33%"><%:Nickname%>:</th><td><%=nickname%></td></tr>
                <tr><th width="33%"><%:Realname%>:</th><td><%=name%></td></tr>
+               <tr><th width="33%"><%:Homepage%>:</th><td>
+                       <% for k, v in ipairs(homepage) do %>
+                       <a href="<%=v%>"><%=v%></a><br />
+                       <% end %>
+               </td></tr>
                <tr><th width="33%"><%:E-Mail%>:</th><td><a href="mailto:<%=mail%>"><%=mail%></a></td></tr>
                <tr><th width="33%"><%:Phone%>:</th><td><%=phone%></td></tr>
        </table>
index 16d494d..91b63b5 100644 (file)
@@ -1576,6 +1576,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr ""
 
index 7544c90..73dfc43 100644 (file)
@@ -1589,6 +1589,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "Jedno nebo více polí obsahuje neplatné hodnoty!"
 
index ad4590c..7da9c0a 100644 (file)
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-05-26 17:57+0200\n"
-"PO-Revision-Date: 2012-11-21 20:47+0200\n"
+"PO-Revision-Date: 2013-01-04 16:11+0200\n"
 "Last-Translator: Jo-Philipp <xm@subsignal.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: de\n"
@@ -1617,6 +1617,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr "Verzögerung für Anschalt-Zustand"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr "Es muss entweder ein Hostname oder eine MAC-Adresse angegeben werden!"
+
 msgid "One or more fields contain invalid values!"
 msgstr "Ein oder mehrere Felder enthalten ungültige Werte!"
 
index e23d440..e887b4a 100644 (file)
@@ -1619,6 +1619,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "Ένα ή περισσότερα πεδία περιέχουν μη έγκυρες τιμές!"
 
index 5ce5b5d..65fe335 100644 (file)
@@ -1585,6 +1585,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr ""
 
index 2c134b6..2c4a640 100644 (file)
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2012-12-13 20:55+0200\n"
+"PO-Revision-Date: 2013-01-08 22:47+0200\n"
 "Last-Translator: José Vicente <josevteg@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: es\n"
@@ -1625,6 +1625,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr "Retraso de activación"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr "¡Debe especificar al menos un nombre de máquina o dirección mac!"
+
 msgid "One or more fields contain invalid values!"
 msgstr "¡Valores no válidos!"
 
index fcdc313..6a0ece9 100644 (file)
@@ -1636,6 +1636,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr "Durée allumée"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "Un ou plusieurs champs contiennent des valeurs incorrectes !"
 
index 484e04a..ffa5cef 100644 (file)
@@ -1556,6 +1556,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "ישנם שדות המכילים ערכים בלתי חוקיים!"
 
index bf8f216..0865f07 100644 (file)
@@ -1623,6 +1623,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr "Bekapcsolt állapot késleltetés"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "Egy vagy több mező érvénytelen adatot tartalmaz!"
 
index 7b74cf8..758c711 100644 (file)
@@ -3,8 +3,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-07-10 21:07+0200\n"
-"Last-Translator: Gyula <pro564@hotmail.com>\n"
+"PO-Revision-Date: 2012-12-30 19:09+0200\n"
+"Last-Translator: romboyco <romboyco@gmail.com>\n"
 "Language-Team: none\n"
 "Language: hu\n"
 "MIME-Version: 1.0\n"
@@ -14,16 +14,16 @@ msgstr ""
 "X-Generator: Pootle 2.0.6\n"
 
 msgid "CLK_pin"
-msgstr ""
+msgstr "CLK_pin"
 
 msgid "CS_pin"
-msgstr ""
+msgstr "CS_pin"
 
 msgid "DI_pin"
-msgstr ""
+msgstr "DI_pin"
 
 msgid "DO_pin"
-msgstr ""
+msgstr "DO_pin"
 
 msgid "Enable"
 msgstr "Bekapcsolás"
index 3dc774a..20ff8d6 100644 (file)
@@ -1,8 +1,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-07-10 21:06+0200\n"
-"Last-Translator: Gyula <pro564@hotmail.com>\n"
+"PO-Revision-Date: 2012-12-30 19:12+0200\n"
+"Last-Translator: romboyco <romboyco@gmail.com>\n"
 "Language-Team: none\n"
 "Language: hu\n"
 "MIME-Version: 1.0\n"
@@ -45,7 +45,7 @@ msgid "Enable"
 msgstr "Engedélyezés"
 
 msgid "Failing"
-msgstr ""
+msgstr "Csökkenő"
 
 msgid "Failover Traffic Destination"
 msgstr "Failover forgalom cél"
index e4c392c..446f73c 100644 (file)
@@ -5,8 +5,8 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-03-25 22:10+0100\n"
-"PO-Revision-Date: 2012-09-18 17:33+0200\n"
-"Last-Translator: Gyula <pro564@hotmail.com>\n"
+"PO-Revision-Date: 2012-12-30 19:18+0200\n"
+"Last-Translator: romboyco <romboyco@gmail.com>\n"
 "Language-Team: none\n"
 "Language: hu\n"
 "MIME-Version: 1.0\n"
@@ -28,7 +28,7 @@ msgid "Destination host"
 msgstr "Cél gép"
 
 msgid "Downlink"
-msgstr ""
+msgstr "Downlink"
 
 msgid "Download speed (kbit/s)"
 msgstr "Letöltési sebesség (kbit/s)"
@@ -70,7 +70,7 @@ msgid "Target"
 msgstr "Cél"
 
 msgid "Uplink"
-msgstr ""
+msgstr "Uplink"
 
 msgid "Upload speed (kbit/s)"
 msgstr "Feltöltési sebesség (kbit/s)"
@@ -87,7 +87,7 @@ msgid "all"
 msgstr "összes"
 
 msgid "allf"
-msgstr ""
+msgstr "allf"
 
 msgid "default"
 msgstr "alapértelmezett"
@@ -105,4 +105,4 @@ msgid "priority"
 msgstr "prioritás"
 
 msgid "qos_connbytes"
-msgstr ""
+msgstr "qos_connbytes"
index 9630fa5..4edc289 100644 (file)
@@ -1589,6 +1589,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "Uno o più campi contengono valori non validi!"
 
index 24a7be5..b948a7c 100644 (file)
@@ -1602,6 +1602,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr "点灯時間"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "1つ以上のフィールドに無効な値が設定されています!"
 
index d5b1f6f..b6d7807 100644 (file)
@@ -1557,6 +1557,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr ""
 
index c606fb7..730a1c1 100644 (file)
@@ -1591,6 +1591,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr "Forsinkelse ved tilstand -På-"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "Ett eller flere felt inneholder ugyldige verdier!"
 
index b64e496..6378a0d 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: LuCI\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-20 09:40+0200\n"
-"PO-Revision-Date: 2012-12-15 21:28+0200\n"
-"Last-Translator: razor07b7 <razor07b7@gmail.com>\n"
+"PO-Revision-Date: 2013-01-06 12:58+0200\n"
+"Last-Translator: obsy <cezary@eko.one.pl>\n"
 "Language-Team: Polish\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
@@ -432,7 +432,7 @@ msgid ""
 "fill out the <em>create</em> field to define a new zone and attach the "
 "interface to it."
 msgstr ""
-"Wybierz strefę firewall`a którą chcesz przypisać do tego interfejsu. Wybierz "
+"Wybierz strefę firewalla którą chcesz przypisać do tego interfejsu. Wybierz "
 "<em>unspecified</em> aby usunąć interfejs z przypisanej strefy lub wybierz "
 "pole <em>create</em> aby zdefiniować nową strefę i przypisać ją do "
 "interfejsu."
@@ -527,7 +527,7 @@ msgid "Cover the following interfaces"
 msgstr "Pokrywa następujące interfejsy"
 
 msgid "Create / Assign firewall-zone"
-msgstr "Utwórz / Przypisz strefę firewall`a"
+msgstr "Utwórz / Przypisz strefę firewalla"
 
 msgid "Create Interface"
 msgstr "Utwórz interfejs"
@@ -675,10 +675,10 @@ msgid ""
 "Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
 "firewalls"
 msgstr ""
-"Dnsmasq jest to serwer <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr> połączony z serwerem <abbr title=\"Domain Name System\">DNS</"
-"abbr>. Jest to serwer przekazujący (Fowarder) dla firewall`i <abbr title="
-"\"Network Address Translation\">NAT</abbr>"
+"Dnsmasq jest to serwer <abbr title=\"Dynamic Host Configuration "
+"Protocol\">DHCP</abbr> połączony z serwerem <abbr title=\"Domain Name "
+"System\">DNS</abbr>. Jest to serwer przekazujący (Fowarder) dla firewalli "
+"<abbr title=\"Network Address Translation\">NAT</abbr>"
 
 msgid "Do not cache negative replies, e.g. for not existing domains"
 msgstr "Nie cache`uj odpowiedzi negatywnych, np. nie dla bieżących domen"
@@ -866,11 +866,12 @@ msgstr "Zakończ"
 msgid "Firewall"
 msgstr "Firewall - zapora ogniowa"
 
+# Nie ma potrzeby pisania z dużej litery
 msgid "Firewall Settings"
-msgstr "Ustawienia Firewall `a"
+msgstr "Ustawienia firewalla"
 
 msgid "Firewall Status"
-msgstr "Stan Firewall `a"
+msgstr "Stan firewalla"
 
 msgid "Firmware Version"
 msgstr "Wersja firmware"
@@ -1138,8 +1139,8 @@ msgstr ""
 "Jeśli ilość twojej pamięci fizycznej jest niewystarczająca, nieużywane "
 "miejsce na dysku może być tymczasowo wykorzystane na urządzenie pliku "
 "wymiany. W rezultacie większa ilość pamięci <abbr title=\"Random Access "
-"Memory\">RAM</abbr> będzie dostępna.Uwaga plik wymiany jest dużo wolniejszy "
-"niż pamięć <abbr title=\"Random Access Memory\">RAM</abbr>."
+"Memory\">RAM</abbr> będzie dostępna. Uwaga - plik wymiany jest dużo "
+"wolniejszy niż pamięć <abbr title=\"Random Access Memory\">RAM</abbr>."
 
 msgid "Ignore Hosts files"
 msgstr "Ignoruj pliki Hosts"
@@ -1390,7 +1391,7 @@ msgid "Log output level"
 msgstr "Poziom logowania"
 
 msgid "Log queries"
-msgstr "Zapytania Loga"
+msgstr "Loguj zapytania"
 
 msgid "Logging"
 msgstr "Logowanie"
@@ -1526,7 +1527,7 @@ msgid "NAS ID"
 msgstr "NAS ID"
 
 msgid "NTP server candidates"
-msgstr "Kandydaci na serwer NTP"
+msgstr "Lista serwerów NTP"
 
 msgid "Name"
 msgstr "Nazwa"
@@ -1647,6 +1648,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr "Zwłoka włączenia"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr "Nazwa hosta lub adres MAC musu być podany!"
+
 msgid "One or more fields contain invalid values!"
 msgstr "Jedno lub więcej pól zawiera nieprawidłowe wartości!"
 
@@ -1846,8 +1850,9 @@ msgstr "Protokół nowego interfejsu"
 msgid "Protocol support is not installed"
 msgstr "Wsparcie dla protokołu nie jest zainstalowane"
 
+# Opcja dotyczy włączenia serwera czasu, więc "podaj" nie jest właściwym tłumaczeniem w tym miejscu - obsy
 msgid "Provide NTP server"
-msgstr "Podaj serwer NTP"
+msgstr "Włącz serwer NTP"
 
 msgid "Provide new network"
 msgstr "Utwórz nową sieć"
@@ -2027,7 +2032,7 @@ msgid "Restart"
 msgstr "Uruchom ponownie"
 
 msgid "Restart Firewall"
-msgstr "Uruchom ponownie Firewall`a"
+msgstr "Uruchom ponownie firewalla"
 
 msgid "Restore backup"
 msgstr "Przywróć kopię zapasową"
@@ -2530,8 +2535,8 @@ msgid ""
 "This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
 "abbr> in the local network"
 msgstr ""
-"To jest jedyny serwer <abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr> w sieci lokalnej"
+"To jest jedyny serwer <abbr title=\"Dynamic Host Configuration Protocol"
+"\">DHCP</abbr> w sieci lokalnej"
 
 msgid "This is the system crontab in which scheduled tasks can be defined."
 msgstr ""
@@ -2719,10 +2724,10 @@ msgid ""
 "address to use and the <em>Hostname</em> is assigned as symbolic name to the "
 "requesting host."
 msgstr ""
-"Użyj przycisku <em>Dodaj</ em>, aby dodać nowy wpis dzierżawy. <em>Adres "
-"MAC</ em> identyfikuje hosta, <em>Adres IPv4</ em> określa, którego stałego "
-"adresu użyć, natomiast <em>Nazwa hosta</ em> jest przypisana jako "
-"symboliczna nazwa do określonego hosta."
+"Użyj przycisku <em>Dodaj</em>, aby dodać nowy wpis dzierżawy. <em>Adres "
+"MAC</ em> identyfikuje hosta, <em>Adres IPv4</em> określa, którego stałego "
+"adresu użyć, natomiast <em>Nazwa hosta</em> jest przypisana jako symboliczna "
+"nazwa do określonego hosta."
 
 msgid "Use valid lifetime"
 msgstr "Użyj prawidłowego czasu życia"
@@ -2849,8 +2854,8 @@ msgid ""
 msgstr ""
 "Tutaj można włączyć lub wyłączyć zainstalowane skrypty. Zmiany zostaną "
 "zastosowane po ponownym uruchomieniu urządzenia.<br /><strong>Ostrzeżenie: "
-"Jeśli wyłączysz podstawowe skrypty typu \"networks\", urządzenie może stać "
-"się nieosiągalne!</ strong>"
+"Jeśli wyłączysz podstawowe skrypty typu \"networks\", urządzenie może stać się "
+"nieosiągalne!</strong>"
 
 msgid ""
 "You must enable Java Script in your browser or LuCI will not work properly."
index c9921fd..ed181ce 100644 (file)
@@ -1,13 +1,16 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2013-01-11 00:00+0200\n"
+"Last-Translator: farmer92 <sebastian.stolorz@gmail.com>\n"
 "Language-Team: none\n"
+"Language: pl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2);\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "A short textual description of the configured command"
 msgstr ""
@@ -24,7 +27,7 @@ msgid "Allow the user to provide additional command line arguments"
 msgstr ""
 
 msgid "Arguments:"
-msgstr ""
+msgstr "Argumenty:"
 
 msgid "Binary data not displayed, download instead."
 msgstr ""
@@ -33,13 +36,13 @@ msgid "Code:"
 msgstr ""
 
 msgid "Collecting data..."
-msgstr ""
+msgstr "Zbieram dane:"
 
 msgid "Command"
-msgstr ""
+msgstr "Komenda"
 
 msgid "Command failed"
-msgstr ""
+msgstr "Zła komenda"
 
 msgid "Command line to execute"
 msgstr ""
@@ -51,34 +54,34 @@ msgid "Command:"
 msgstr ""
 
 msgid "Configure"
-msgstr ""
+msgstr "Konfiguracja"
 
 msgid "Custom Commands"
-msgstr ""
+msgstr "Własne komendy"
 
 msgid "Custom arguments"
-msgstr ""
+msgstr "Własne argumenty"
 
 msgid "Dashboard"
 msgstr ""
 
 msgid "Description"
-msgstr ""
+msgstr "Opis"
 
 msgid "Download"
-msgstr ""
+msgstr "Download"
 
 msgid "Failed to execute command!"
-msgstr ""
+msgstr "Nie można wykonać komendy!"
 
 msgid "Link"
 msgstr ""
 
 msgid "Loading"
-msgstr ""
+msgstr "Ładowanie"
 
 msgid "Public access"
-msgstr ""
+msgstr "Publiczny dostęp"
 
 msgid "Run"
 msgstr ""
index 91485c2..5163918 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-02 13:44+0100\n"
-"PO-Revision-Date: 2011-06-03 16:05+0200\n"
-"Last-Translator: Staszek <fistaszek@tlen.pl>\n"
+"PO-Revision-Date: 2013-01-06 13:08+0200\n"
+"Last-Translator: obsy <cezary@eko.one.pl>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Check for changed IP every"
 msgstr "Sprawdzaj zmiany adresu IP co"
@@ -37,7 +37,7 @@ msgid "Enable"
 msgstr "Włącz"
 
 msgid "Event interface"
-msgstr ""
+msgstr "Interfejs"
 
 msgid "Force update every"
 msgstr "Wymuszaj aktualizację co"
@@ -55,7 +55,7 @@ msgid "Network"
 msgstr "Sieć"
 
 msgid "On which interface up should start the ddns script process."
-msgstr ""
+msgstr "Określa interfejs na którym zostanie uruchomiony skrypt ddns."
 
 msgid "Password"
 msgstr "Hasło"
index 4dfd6e7..41458c8 100644 (file)
@@ -3,8 +3,8 @@ 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-09-20 11:04+0200\n"
-"Last-Translator: emc <mplichta@gmail.com>\n"
+"PO-Revision-Date: 2013-01-06 12:43+0200\n"
+"Last-Translator: obsy <cezary@eko.one.pl>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
@@ -199,7 +199,7 @@ msgid "Limit log messages"
 msgstr "Ograniczenie logowania"
 
 msgid "MSS clamping"
-msgstr "Mocowania MSS"
+msgstr "Dostosuj MSS"
 
 msgid "Masquerading"
 msgstr "Maskarada"
index 7fcb4a2..54c634a 100644 (file)
@@ -3,8 +3,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-03-29 10:47+0200\n"
-"Last-Translator: Anonymous Pootle User\n"
+"PO-Revision-Date: 2013-01-06 12:57+0200\n"
+"Last-Translator: obsy <cezary@eko.one.pl>\n"
 "Language-Team: none\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Bidirectional mode"
 msgstr "Tryb dwukierunkowy"
@@ -37,10 +37,11 @@ msgid "TCP listener port."
 msgstr "Port nasłuchu TCP"
 
 msgid "enable"
-msgstr "włączony"
+msgstr "Włączony"
 
+# W sambie usługa też się nazywa "network shares", więc nie ma specjalnie potrzeby używania nazwy własnej demona "p910nd".
 msgid "p910nd - Printer server"
-msgstr "p910nd - Serwer wydruku"
+msgstr "Serwer wydruku"
 
 #~ msgid "port_help"
 #~ msgstr "port_help"
index 11eb62f..698edc9 100644 (file)
@@ -1,8 +1,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-08-25 18:30+0200\n"
-"Last-Translator: goodgod261 <goodgod261@wp.pl>\n"
+"PO-Revision-Date: 2013-01-06 22:57+0200\n"
+"Last-Translator: obsy <cezary@eko.one.pl>\n"
 "Language-Team: none\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
@@ -144,10 +144,11 @@ msgid "Query DNS by hostname"
 msgstr "Zapytanie DNS po nazwie hosta"
 
 msgid "Query DNS directly, fallback to system resolver"
-msgstr ""
+msgstr "Odpytuj DNS bezpośrednio, powracając do resolvera systemu"
 
 msgid "Query DNS directly, for unknown hosts fall back to system resolver"
 msgstr ""
+"Odpytuj DNS bezpośrednio, dla nieznanych hostów powróć do resolvera systemu"
 
 msgid "Query DNS for IPv6"
 msgstr "Zapytanie DNS dla IPv6"
@@ -165,54 +166,66 @@ msgid ""
 "Set the DNS server address to use, if you want Polipo to use different DNS "
 "server than the host system."
 msgstr ""
+"Ustaw adres serwera DNS do użycia, jeśli chcesz aby Polipo używał innego "
+"DNS`a niż system hosta."
 
 msgid "Shared cache"
-msgstr ""
+msgstr "Cache udostępniany"
 
 msgid ""
 "Size of the first PMM segment. If not defined, it defaults to twice the PMM "
 "segment size."
 msgstr ""
+"Rozmiar PIERWSZEGO segmentu PMM. Jeśli nie zdefiniowano, jego domyślny "
+"rozmiar to dwu-krotność rozmiaru segmentu PMM."
 
 msgid "Size to which cached files should be truncated"
-msgstr ""
+msgstr "Rozmiar do którego pliki cache`owane mają być przycięte"
 
 msgid "Status"
-msgstr ""
+msgstr "Status"
 
 msgid "Syslog facility"
-msgstr ""
+msgstr "Funkcja (facility) loga systemowego"
 
 msgid ""
 "The interface on which Polipo will listen. To listen on all interfaces use "
 "0.0.0.0 or :: (IPv6)."
 msgstr ""
+"Interfejs na którym słucha proxy Polipo. Aby słuchać na wszystkich "
+"interfejsach użyj 0.0.0.0 lub :: dla IPv6"
 
 msgid "Time after which cached files will be deleted"
-msgstr ""
+msgstr "Czas po którym pliki cache będą skasowane"
 
 msgid "Time after which cached files will be truncated"
-msgstr ""
+msgstr "Czas po którym pliki cache będą przycięte"
 
 msgid "To enable PMM, PMM segment size must be set to some positive value."
 msgstr ""
+"Aby włączyć PMM, rozmiar segmentu PMM musi mieć ustawioną wartość dodatnią."
 
 msgid "Truncate cache files size (in bytes)"
-msgstr ""
+msgstr "Rozmiar przycinanych plików w cache(w bajtach)"
 
 msgid "Truncate cache files time"
-msgstr ""
+msgstr "Czas przycinanych plików w cache"
 
 msgid ""
 "Use of external storage device is recommended, because the log file is "
 "written frequently and can grow considerably."
 msgstr ""
+"Użycie zewnętrznego nośnika danych wysoce zalecane, plik loga jest "
+"zapisywany okresowo i może urosnąć znacząco."
 
 msgid ""
 "When listen address is set to 0.0.0.0 or :: (IPv6), you must list clients "
 "that are allowed to connect. The format is IP address or network address "
 "(192.168.1.123, 192.168.1.0/24, 2001:660:116::/48 (IPv6))"
 msgstr ""
+"Jeśli adres nasłuchu ustawiony jest na 0.0.0.0 lub ::(IPv6), musisz "
+"wyszczególnić klientów mających pozwolenie na połączenie. Format to adres IP "
+"lub adres sieci (192.168.1.123, 192.168.1.0/24, 2001:660:116::/48 (IPv6))"
 
 msgid "enable"
 msgstr "włączone"
index 56bf3c2..1e1fa98 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2012-08-24 06:17+0200\n"
-"PO-Revision-Date: 2012-10-11 14:57+0200\n"
-"Last-Translator: mesiu84 <kmesek84@gmail.com>\n"
+"PO-Revision-Date: 2013-01-06 13:10+0200\n"
+"Last-Translator: obsy <cezary@eko.one.pl>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
@@ -65,11 +65,12 @@ msgstr "Czas wyzwalacza"
 msgid "Client-Splash"
 msgstr "Splash kliencki"
 
+# nie ma słowa "autentykacja" - to brzydka kalka z angielskiego. 
 msgid ""
 "Client-Splash is a hotspot authentification system for wireless mesh "
 "networks."
 msgstr ""
-"Klient Splash - sposób autentykowania użytkowników dla sieci WiFi oparty o "
+"Klient Splash - sposób uwierzytelniania użytkowników dla sieci WiFi oparty o "
 "wyświetlanie komunikatów."
 
 msgid "Clients download speed is limited to this value (kbyte/s)"
@@ -87,7 +88,7 @@ msgid "Contact"
 msgstr "Kontakt"
 
 msgid "Decline"
-msgstr ""
+msgstr "Odrzuć"
 
 msgid "Donate some money to help us keep this project alive."
 msgstr "Możesz zasposorować ten projekt aby utrzymać go przy życiu"
@@ -99,7 +100,7 @@ msgid "Edit Splash text"
 msgstr "Edytuj tekst Komunikatu (Splash)"
 
 msgid "Firewall zone"
-msgstr "Strefa Firewall"
+msgstr "Strefa firewall"
 
 msgid "General"
 msgstr "Ogólne"
@@ -138,6 +139,8 @@ msgid ""
 "KB/s (Download/Upload). You may be able to remove this limit by actively "
 "contributing to this project."
 msgstr ""
+"KB/s (Download/Upload). Będziesz w stanie usunąć ten limit jeśli aktywnie "
+"przyłączysz się do tego projektu."
 
 msgid "MAC Address"
 msgstr "Adres MAC"
@@ -255,12 +258,10 @@ msgid "unknown"
 msgstr "nieznane"
 
 # Zgaduję, że to jest wyświetlane tuż po komunikacie nr 2, więc tak powinno pasować.
-#, fuzzy
 msgid "use filesharing applications on this network"
 msgstr "używał programów do dzielenia się plikami w tej sieci"
 
 # j.w.
-#, fuzzy
 msgid "waste bandwidth with unneccesary downloads or streams"
 msgstr "marnował transfer na niepotrzebne pobieranie plików i strumieni"
 
index 99085ba..1634a69 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2012-04-19 21:20+0200\n"
-"PO-Revision-Date: 2012-10-15 22:58+0200\n"
-"Last-Translator: halinka1125 <halinka1125@op.pl>\n"
+"PO-Revision-Date: 2013-01-06 13:14+0200\n"
+"Last-Translator: obsy <cezary@eko.one.pl>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
@@ -256,15 +256,11 @@ msgstr "Harmonogramowanie"
 msgid "Scrape paused torrents enabled"
 msgstr "Zdzieranie wstrzymanych torentów włączone"
 
-#, fuzzy
 msgid "Script torrent done enabled"
-msgstr ""
-"skrypty <abbr title=\" torrent done\">wykonano torrenta</abbr> włączone"
+msgstr "Włączenie wykonywania skryptu po zakończeniu pobierania"
 
-#, fuzzy
 msgid "Script torrent done filename"
-msgstr ""
-"Nazwa pliku skryptu <abbr title=\" torrent done\">wykonano torrenta</abbr>"
+msgstr "Nazwa skryptu wykonywanego po zakończeniu pobierania"
 
 msgid "Seed queue enabled"
 msgstr "Kolejkowanie Seed'ów włączone"
index 559a85e..60c70fa 100644 (file)
@@ -1570,6 +1570,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr ""
 
index bb5d522..6c1a6fd 100644 (file)
@@ -1648,6 +1648,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr "Atraso no estado de conexões"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "Um ou mais campos contém valores inválidos!"
 
index b0768f5..42ee327 100644 (file)
@@ -1537,6 +1537,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "Unul sau mai multe campuri contin valori invalide !"
 
index 6eea0a9..c495a3f 100644 (file)
@@ -1628,6 +1628,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr "Задержка включенного состояния"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "Одно или несколько полей содержат недопустимые значения!"
 
index 833356f..0d85760 100644 (file)
@@ -1518,6 +1518,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr ""
 
index 1549e3b..cfc3caa 100644 (file)
@@ -1532,6 +1532,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr ""
 
index 979e5d4..961ca55 100644 (file)
@@ -1632,6 +1632,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr "Затримка On-State"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr "Одне або декілька полів містять неприпустимі значення!"
 
index d11d6b5..07ffc55 100644 (file)
@@ -3,22 +3,25 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2012-12-29 13:00+0200\n"
+"Last-Translator: Yurii <yuripet@gmail.com>\n"
 "Language-Team: none\n"
+"Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "CoovaChilli"
-msgstr ""
+msgstr "CoovaChilli"
 
 msgid "Network Configuration"
-msgstr ""
+msgstr "Конфігурація мережі"
 
 msgid "RADIUS configuration"
-msgstr ""
+msgstr "Конфігурація RADIUS"
 
 msgid "UAM and MAC Authentication"
-msgstr ""
+msgstr "Автентифікація через UAM і MAC"
index f8d57fb..ae0e29c 100644 (file)
@@ -5,8 +5,8 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-02 13:44+0100\n"
-"PO-Revision-Date: 2012-03-18 21:40+0200\n"
-"Last-Translator: YuriPet <yuripet@gmail.com>\n"
+"PO-Revision-Date: 2012-12-29 12:47+0200\n"
+"Last-Translator: Yurii <yuripet@gmail.com>\n"
 "Language-Team: none\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
@@ -14,7 +14,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
 "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Check for changed IP every"
 msgstr "Перевіряти, чи змінилася IP-адреса кожні"
@@ -39,7 +39,7 @@ msgid "Enable"
 msgstr "Увімкнути"
 
 msgid "Event interface"
-msgstr ""
+msgstr "Інтерфейс події"
 
 msgid "Force update every"
 msgstr "Примусово оновлювати кожні"
@@ -57,7 +57,7 @@ msgid "Network"
 msgstr "Мережа"
 
 msgid "On which interface up should start the ddns script process."
-msgstr ""
+msgstr "При вмиканні якого інтерфейсу має запускатися процес скрипта DDNS."
 
 msgid "Password"
 msgstr "Пароль"
index 5517571..170032d 100644 (file)
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-04-28 21:47+0200\n"
+"PO-Revision-Date: 2012-12-29 12:53+0200\n"
 "Last-Translator: Yurii <yuripet@gmail.com>\n"
 "Language-Team: none\n"
 "Language: uk\n"
@@ -13,13 +13,13 @@ msgstr ""
 "X-Generator: Pootle 2.0.6\n"
 
 msgid "%s in %s"
-msgstr ""
+msgstr "%s у %s"
 
 msgid "%s%s with %s"
 msgstr "%s%s із %s"
 
 msgid "%s, %s in %s"
-msgstr ""
+msgstr "%s, %s у %s"
 
 msgid "(Unnamed Entry)"
 msgstr "(Запис без імені)"
@@ -119,7 +119,7 @@ msgid "External port"
 msgstr "Зовнішній порт"
 
 msgid "External zone"
-msgstr ""
+msgstr "Зовнішня зона"
 
 msgid "Extra arguments"
 msgstr "Додаткові аргументи"
@@ -146,7 +146,7 @@ msgid "Forward"
 msgstr "Спрямовування"
 
 msgid "Forward to"
-msgstr ""
+msgstr "спрямовування до"
 
 msgid "From %s in %s"
 msgstr "%s у %s"
@@ -200,10 +200,10 @@ msgid "Masquerading"
 msgstr "Підміна"
 
 msgid "Match"
-msgstr ""
+msgstr "Зіставляти"
 
 msgid "Match ICMP type"
-msgstr "Ð\9eбиÑ\80аÑ\82и ICMP Ñ\82Ñ\80аÑ\84Ñ\96к"
+msgstr "Ð\97Ñ\96Ñ\81Ñ\82авлÑ\8fÑ\82и ICMP Ñ\82ипÑ\83"
 
 msgid "Match forwarded traffic to the given destination port or port range."
 msgstr ""
@@ -400,13 +400,13 @@ msgstr ""
 "визначає, які доступні мережі є членами цієї зони."
 
 msgid "To %s at %s on <var>this device</var>"
-msgstr "%s через %s на <var>цьому пристрої</var>"
+msgstr "%s на %s <var>цього пристрою</var>"
 
 msgid "To %s in %s"
 msgstr "%s у %s"
 
 msgid "To %s on <var>this device</var>"
-msgstr "%s Ð½Ð° <var>Ñ\86Ñ\8cомÑ\83 Ð¿Ñ\80иÑ\81Ñ\82Ñ\80оÑ\97</var>"
+msgstr "%s Ð½Ð° <var>Ñ\86Ñ\8cого Ð¿Ñ\80иÑ\81Ñ\82Ñ\80оÑ\8e</var>"
 
 msgid "To %s, %s in %s"
 msgstr "%s, %s у %s"
@@ -430,10 +430,10 @@ msgstr ""
 "порти WAN на маршрутизаторі."
 
 msgid "Via %s"
-msgstr ""
+msgstr "Через %s"
 
 msgid "Via %s at %s"
-msgstr ""
+msgstr "Через %s на %s"
 
 msgid ""
 "You may specify multiple by selecting \"-- custom --\" and then entering "
index b2da902..e9b37f2 100644 (file)
@@ -3,8 +3,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-03-18 20:47+0200\n"
-"Last-Translator: YuriPet <yuripet@gmail.com>\n"
+"PO-Revision-Date: 2012-12-29 13:06+0200\n"
+"Last-Translator: Yurii <yuripet@gmail.com>\n"
 "Language-Team: none\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
@@ -12,31 +12,31 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
 "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "CLK_pin"
-msgstr ""
+msgstr "Вивід ВCLK"
 
 msgid "CS_pin"
-msgstr ""
+msgstr "Вивід CS"
 
 msgid "DI_pin"
-msgstr ""
+msgstr "Вивід DI"
 
 msgid "DO_pin"
-msgstr ""
+msgstr "Вивід DO"
 
 msgid "Enable"
-msgstr ""
+msgstr "Увімкнути"
 
 msgid "MMC/SD driver configuration"
-msgstr ""
+msgstr "Конфігурація драйвера MMC/SD"
 
 msgid "Mode"
-msgstr ""
+msgstr "Режим"
 
 msgid "Name"
-msgstr ""
+msgstr "Ім'я"
 
 msgid "Settings"
 msgstr "Настройки"
index d88b9db..4886d72 100644 (file)
@@ -1,8 +1,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-03-08 12:11+0200\n"
-"Last-Translator: YuriPet <yuripet@gmail.com>\n"
+"PO-Revision-Date: 2012-12-29 12:56+0200\n"
+"Last-Translator: Yurii <yuripet@gmail.com>\n"
 "Language-Team: none\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
@@ -10,13 +10,13 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
 "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Phones"
 msgstr "Телефони"
 
 msgid "Voice"
-msgstr ""
+msgstr "Голос"
 
 #~ msgid "l_v_adminphones"
 #~ msgstr "l_v_adminphones"
index 692b0e1..afc0446 100644 (file)
@@ -1560,6 +1560,9 @@ msgstr ""
 msgid "On-State Delay"
 msgstr ""
 
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
 msgid "One or more fields contain invalid values!"
 msgstr ""
 
index 50af97c..c50b789 100644 (file)
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-12-21 23:08+0200\n"
-"PO-Revision-Date: 2012-11-23 11:54+0200\n"
+"PO-Revision-Date: 2013-01-07 15:00+0200\n"
 "Last-Translator: phantasm131 <phantasm131@gmail.com>\n"
 "Language-Team: QQ Group:75543259\n"
 "Language: zh_CN\n"
@@ -1542,6 +1542,9 @@ msgstr "配置网络接口信息。"
 msgid "On-State Delay"
 msgstr "通电时间"
 
+msgid "One of hostname or mac address must be specified!"
+msgstr "请指定主机名或MAC地址!"
+
 msgid "One or more fields contain invalid values!"
 msgstr "一个或多个选项值有误!"
 
index e529129..45bc6ec 100644 (file)
@@ -108,9 +108,13 @@ img {
 button,
 input,
 select,
+option,
 textarea {
        font-size: 100%;
        margin: 0;
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
        vertical-align: baseline;
        *vertical-align: middle;
 }
@@ -449,7 +453,7 @@ textarea {
 
 form .input,
 form .cbi-value-field {
-       margin-left: 150px;
+       margin-left: 200px;
 }
 
 form .cbi-value label.cbi-value-title {
@@ -457,7 +461,7 @@ form .cbi-value label.cbi-value-title {
        font-size: 13px;
        line-height: 18px;
        float: left;
-       width: 130px;
+       width: 180px;
        text-align: right;
        color: #404040;
 }
@@ -472,7 +476,7 @@ select,
 .uneditable-input {
        display: inline-block;
        width: 210px;
-       height: 18px;
+       height: 30px;
        padding: 4px;
        font-size: 13px;
        line-height: 18px;
@@ -507,6 +511,7 @@ input[type=file] {
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none;
+       width: auto !important;
 }
 
 input[type=button], input[type=reset], input[type=submit] {
@@ -515,9 +520,7 @@ input[type=button], input[type=reset], input[type=submit] {
 }
 
 select, input[type=file] {
-       height: 27px;
        *height: auto;
-       line-height: 27px;
        *margin-top: 4px;
        /* For IE7, add top margin to align select with labels */
 }
@@ -1760,6 +1763,10 @@ table.cbi-section-table td.cbi-section-table-cell {
        text-align: right;
 }
 
+table.cbi-section-table td.cbi-section-table-cell select {
+       width: inherit;
+}
+
 .cbi-value-description { display: inline; }
 
 .cbi-value-description img { vertical-align: middle; }
@@ -1833,8 +1840,8 @@ table.cbi-section-table td.cbi-section-table-cell {
        cursor: pointer;
 }
 
-.zonebadge em,
-.zonebadge strong {
+.zonebadge em,
+.zonebadge strong {
        margin: 5px;
        display: inline-block;
 }