--- /dev/null
+include ../../build/config.mk
+include ../../build/module.mk
--- /dev/null
+#!/bin/sh
+[ -n "${IPKG_INSTROOT}" ] || {
+ ( . /etc/uci-defaults/luci-freifunk-diagnostics ) && rm -f /etc/uci-defaults/luci-freifunk-diagnostics
+}
--- /dev/null
+--[[
+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
--- /dev/null
+<%#
+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> </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%>
--- /dev/null
+#!/bin/sh
+rm -f /tmp/luci-indexcache
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 Wiki|http://wiki.freifunk.net/index.php?search='
option width '50%'
option paddingright '8%'
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")
</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>
</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>
</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>
</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>
</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>
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"))
http://www.apache.org/licenses/LICENSE-2.0
-$Id$
]]--
module("luci.controller.upnp", package.seeall)
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
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
+++ /dev/null
---[[
-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
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 Augsburg|http://www.google.de/search?q=site:augsburg.freifunk.net+'
+ list engine 'Freifunk Wiki|http://wiki.freifunk.net/index.php?search='
config widget 'clear1'
option template 'clear'
$(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))
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)
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"
;;
[ -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
## 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"
--- /dev/null
+#!/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
+
+
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)
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
#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)))
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"
)
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
<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 =
<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> </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>
<%#
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.
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
<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">
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
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
<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>
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 ""
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!"
"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"
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!"
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 "Ένα ή περισσότερα πεδία περιέχουν μη έγκυρες τιμές!"
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 ""
"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"
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!"
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 !"
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 "ישנם שדות המכילים ערכים בלתי חוקיים!"
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!"
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"
"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"
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"
msgstr "Engedélyezés"
msgid "Failing"
-msgstr ""
+msgstr "Csökkenő"
msgid "Failover Traffic Destination"
msgstr "Failover forgalom cél"
"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"
msgstr "Cél gép"
msgid "Downlink"
-msgstr ""
+msgstr "Downlink"
msgid "Download speed (kbit/s)"
msgstr "Letöltési sebesség (kbit/s)"
msgstr "Cél"
msgid "Uplink"
-msgstr ""
+msgstr "Uplink"
msgid "Upload speed (kbit/s)"
msgstr "Feltöltési sebesség (kbit/s)"
msgstr "összes"
msgid "allf"
-msgstr ""
+msgstr "allf"
msgid "default"
msgstr "alapértelmezett"
msgstr "prioritás"
msgid "qos_connbytes"
-msgstr ""
+msgstr "qos_connbytes"
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!"
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つ以上のフィールドに無効な値が設定されています!"
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 ""
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!"
"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"
"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."
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"
"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"
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"
"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"
msgstr "Poziom logowania"
msgid "Log queries"
-msgstr "Zapytania Loga"
+msgstr "Loguj zapytania"
msgid "Logging"
msgstr "Logowanie"
msgstr "NAS ID"
msgid "NTP server candidates"
-msgstr "Kandydaci na serwer NTP"
+msgstr "Lista serwerów NTP"
msgid "Name"
msgstr "Nazwa"
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!"
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ć"
msgstr "Uruchom ponownie"
msgid "Restart Firewall"
-msgstr "Uruchom ponownie Firewall`a"
+msgstr "Uruchom ponownie firewalla"
msgid "Restore backup"
msgstr "Przywróć kopię zapasową"
"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 ""
"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"
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."
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 ""
msgstr ""
msgid "Arguments:"
-msgstr ""
+msgstr "Argumenty:"
msgid "Binary data not displayed, download instead."
msgstr ""
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 ""
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 ""
"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"
"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"
msgstr "Włącz"
msgid "Event interface"
-msgstr ""
+msgstr "Interfejs"
msgid "Force update every"
msgstr "Wymuszaj aktualizację co"
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"
"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"
msgstr "Ograniczenie logowania"
msgid "MSS clamping"
-msgstr "Mocowania MSS"
+msgstr "Dostosuj MSS"
msgid "Masquerading"
msgstr "Maskarada"
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"
"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"
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"
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"
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"
"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"
"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"
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)"
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"
msgstr "Edytuj tekst Komunikatu (Splash)"
msgid "Firewall zone"
-msgstr "Strefa Firewall"
+msgstr "Strefa firewall"
msgid "General"
msgstr "Ogólne"
"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"
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"
"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"
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"
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 ""
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!"
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 !"
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 "Одно или несколько полей содержат недопустимые значения!"
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 ""
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 ""
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 "Одне або декілька полів містять неприпустимі значення!"
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"
"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"
"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-адреса кожні"
msgstr "Увімкнути"
msgid "Event interface"
-msgstr ""
+msgstr "Інтерфейс події"
msgid "Force update every"
msgstr "Примусово оновлювати кожні"
msgstr "Мережа"
msgid "On which interface up should start the ddns script process."
-msgstr ""
+msgstr "При вмиканні якого інтерфейсу має запускатися процес скрипта DDNS."
msgid "Password"
msgstr "Пароль"
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"
"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 "(Запис без імені)"
msgstr "Зовнішній порт"
msgid "External zone"
-msgstr ""
+msgstr "Зовнішня зона"
msgid "Extra arguments"
msgstr "Додаткові аргументи"
msgstr "Спрямовування"
msgid "Forward to"
-msgstr ""
+msgstr "спрямовування до"
msgid "From %s in %s"
msgstr "%s у %s"
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 ""
"визначає, які доступні мережі є членами цієї зони."
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"
"порти 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 "
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"
"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 "Настройки"
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"
"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"
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 ""
"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"
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 "一个或多个选项值有误!"
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;
}
form .input,
form .cbi-value-field {
- margin-left: 150px;
+ margin-left: 200px;
}
form .cbi-value label.cbi-value-title {
font-size: 13px;
line-height: 18px;
float: left;
- width: 130px;
+ width: 180px;
text-align: right;
color: #404040;
}
.uneditable-input {
display: inline-block;
width: 210px;
- height: 18px;
+ height: 30px;
padding: 4px;
font-size: 13px;
line-height: 18px;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
+ width: auto !important;
}
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 */
}
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; }
cursor: pointer;
}
-.zonebadge em,
-.zonebadge strong {
+.zonebadge > em,
+.zonebadge > strong {
margin: 5px;
display: inline-block;
}