luci-0.11: merge outstanding trunk changes
authorJo-Philipp Wich <jow@openwrt.org>
Tue, 18 Dec 2012 13:58:22 +0000 (13:58 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Tue, 18 Dec 2012 13:58:22 +0000 (13:58 +0000)
390 files changed:
Makefile
applications/luci-ahcp/luasrc/controller/ahcp.lua
applications/luci-asterisk/luasrc/controller/asterisk.lua
applications/luci-commands/Makefile [new file with mode: 0644]
applications/luci-commands/luasrc/controller/commands.lua [new file with mode: 0644]
applications/luci-commands/luasrc/model/cbi/commands.lua [new file with mode: 0644]
applications/luci-commands/luasrc/view/commands.htm [new file with mode: 0644]
applications/luci-coovachilli/luasrc/controller/coovachilli.lua
applications/luci-ddns/luasrc/controller/ddns.lua
applications/luci-ddns/luasrc/model/cbi/ddns/ddns.lua
applications/luci-diag-core/luasrc/controller/luci_diag.lua
applications/luci-diag-devinfo/luasrc/controller/luci_diag/devinfo_common.lua
applications/luci-diag-devinfo/luasrc/controller/luci_diag/luci_diag_devinfo.lua
applications/luci-diag-devinfo/luasrc/controller/luci_diag/netdiscover_common.lua
applications/luci-diag-devinfo/luasrc/controller/luci_diag/smap_common.lua
applications/luci-firewall/luasrc/controller/firewall.lua
applications/luci-freifunk-policyrouting/luasrc/controller/freifunk/policy-routing.lua
applications/luci-freifunk-policyrouting/luasrc/model/cbi/freifunk/policyrouting.lua
applications/luci-hd-idle/luasrc/controller/hd_idle.lua
applications/luci-ltqtapi/luasrc/controller/ltqtapi.lua
applications/luci-minidlna/luasrc/controller/minidlna.lua
applications/luci-minidlna/luasrc/view/minidlna_status.htm
applications/luci-mmc-over-gpio/luasrc/controller/mmc_over_gpio.lua
applications/luci-multiwan/luasrc/controller/multiwan.lua
applications/luci-ntpc/luasrc/controller/ntpc.lua
applications/luci-ntpc/luasrc/model/cbi/ntpc/ntpc.lua
applications/luci-ntpc/luasrc/model/cbi/ntpc/ntpcmini.lua
applications/luci-olsr/luasrc/controller/olsr.lua
applications/luci-olsr/luasrc/tools/olsr.lua
applications/luci-olsr/luasrc/view/status-olsr/neighbors.htm
applications/luci-openvpn/luasrc/controller/openvpn.lua
applications/luci-p2pblock/luasrc/controller/ff_p2pblock.lua
applications/luci-p910nd/luasrc/controller/p910nd.lua
applications/luci-p910nd/luasrc/model/cbi/p910nd.lua
applications/luci-polipo/luasrc/controller/polipo.lua
applications/luci-qos/luasrc/controller/qos.lua
applications/luci-qos/luasrc/model/cbi/qos/qos.lua
applications/luci-qos/luasrc/model/cbi/qos/qosmini.lua
applications/luci-radvd/luasrc/controller/radvd.lua
applications/luci-samba/luasrc/controller/samba.lua
applications/luci-splash/luasrc/controller/splash/splash.lua
applications/luci-splash/luasrc/model/cbi/splash/splash.lua
applications/luci-splash/luasrc/model/cbi/splash/splashtext.lua
applications/luci-splash/luasrc/view/admin_status/splash.htm
applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
applications/luci-statistics/luasrc/model/cbi/luci_statistics/collectd.lua
applications/luci-statistics/luasrc/model/cbi/luci_statistics/nut.lua [new file with mode: 0644]
applications/luci-statistics/luasrc/statistics/i18n.lua
applications/luci-statistics/luasrc/statistics/rrdtool.lua
applications/luci-statistics/luasrc/statistics/rrdtool/definitions/cpu.lua
applications/luci-statistics/luasrc/statistics/rrdtool/definitions/load.lua
applications/luci-statistics/luasrc/statistics/rrdtool/definitions/nut.lua [new file with mode: 0644]
applications/luci-statistics/root/etc/config/luci_statistics
applications/luci-statistics/root/usr/bin/stat-genconfig
applications/luci-tinyproxy/luasrc/controller/tinyproxy.lua
applications/luci-transmission/luasrc/controller/transmission.lua
applications/luci-upnp/luasrc/controller/upnp.lua
applications/luci-upnp/luasrc/view/upnp_status.htm
applications/luci-ushare/luasrc/controller/ushare.lua
applications/luci-vnstat/luasrc/controller/vnstat.lua
applications/luci-voice-core/luasrc/controller/luci_voice.lua
applications/luci-voice-diag/luasrc/controller/luci_voice/luci_voice_diag.lua
applications/luci-wol/luasrc/controller/wol.lua
build/i18n-init.sh
contrib/package/community-profiles/files/etc/config/profile_hamburg [deleted file]
contrib/package/freifunk-p2pblock/Makefile
contrib/package/freifunk-p2pblock/files/freifunk-p2pblock.init
contrib/package/luci/Makefile
i18n/polish/root/etc/uci-defaults/luci-i18n-polish
libs/core/luasrc/model/firewall.lua
libs/core/luasrc/model/network.lua
libs/core/luasrc/util.lua
libs/ipkg/luasrc/model/ipkg.lua
libs/lmo/Makefile [deleted file]
libs/lmo/src/lmo.h [deleted file]
libs/lmo/src/lmo_core.c [deleted file]
libs/lmo/src/lmo_hash.c [deleted file]
libs/lmo/src/lmo_lookup.c [deleted file]
libs/lmo/src/lmo_lualib.c [deleted file]
libs/lmo/src/lmo_lualib.h [deleted file]
libs/lmo/src/lmo_po2lmo.c [deleted file]
libs/lmo/standalone.mk [deleted file]
libs/web/Makefile
libs/web/htdocs/luci-static/resources/cbi.js
libs/web/luasrc/cbi.lua
libs/web/luasrc/http.lua
libs/web/luasrc/i18n.lua
libs/web/luasrc/template.lua
libs/web/luasrc/view/cbi/apply_xhr.htm
libs/web/luasrc/view/cbi/footer.htm
libs/web/src/po2lmo.c [new file with mode: 0644]
libs/web/src/template_lmo.c [new file with mode: 0644]
libs/web/src/template_lmo.h [new file with mode: 0644]
libs/web/src/template_lualib.c
libs/web/src/template_lualib.h
libs/web/src/template_parser.c
libs/web/src/template_parser.h
libs/web/src/template_utils.c
libs/web/src/template_utils.h
libs/web/standalone.mk [new file with mode: 0644]
modules/admin-core/luasrc/controller/admin/servicectl.lua
modules/admin-core/luasrc/tools/status.lua
modules/admin-full/luasrc/controller/admin/network.lua
modules/admin-full/luasrc/controller/admin/status.lua
modules/admin-full/luasrc/model/cbi/admin_network/hosts.lua
modules/admin-full/luasrc/model/cbi/admin_network/vlan.lua
modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua
modules/admin-full/luasrc/view/admin_network/diagnostics.htm
modules/admin-full/luasrc/view/admin_network/switch_status.htm
modules/admin-full/luasrc/view/admin_network/wifi_overview.htm
modules/admin-full/luasrc/view/admin_status/connections.htm
modules/admin-full/luasrc/view/admin_status/index.htm
modules/admin-full/luasrc/view/admin_status/load.htm
modules/admin-full/luasrc/view/admin_status/wireless.htm
modules/admin-full/luasrc/view/admin_system/packages.htm
modules/admin-full/src/luci-bwc.c
modules/freifunk/luasrc/controller/freifunk/freifunk.lua
modules/freifunk/luasrc/model/cbi/freifunk/basics.lua
modules/freifunk/luasrc/model/cbi/freifunk/contact.lua
modules/freifunk/luasrc/model/cbi/freifunk/profile.lua
modules/freifunk/luasrc/model/cbi/freifunk/profile_expert.lua
modules/freifunk/luasrc/model/cbi/freifunk/user_index.lua
modules/freifunk/luasrc/view/freifunk-map/frame.htm
modules/freifunk/luasrc/view/freifunk-map/map.htm
modules/freifunk/luasrc/view/freifunk/adminindex.htm
po/ca/base.po
po/ca/commands.po [new file with mode: 0644]
po/ca/ddns.po
po/ca/diag_devinfo.po
po/ca/freifunk.po
po/ca/meshwizard.po
po/ca/statistics.po
po/cs/base.po
po/cs/commands.po [new file with mode: 0644]
po/cs/ddns.po
po/cs/diag_devinfo.po
po/cs/freifunk.po
po/cs/meshwizard.po
po/cs/statistics.po
po/de/base.po
po/de/commands.po [new file with mode: 0644]
po/de/ddns.po
po/de/diag_devinfo.po
po/de/freifunk-policyrouting.po
po/de/freifunk.po
po/de/meshwizard.po
po/de/mmc_over_gpio.po
po/de/olsr.po
po/de/openvpn.po
po/de/splash.po
po/de/statistics.po
po/de/tinyproxy.po
po/de/upnp.po
po/el/base.po
po/el/commands.po [new file with mode: 0644]
po/el/ddns.po
po/el/diag_devinfo.po
po/el/freifunk.po
po/el/meshwizard.po
po/el/statistics.po
po/en/base.po
po/en/commands.po [new file with mode: 0644]
po/en/ddns.po
po/en/diag_devinfo.po
po/en/freifunk.po
po/en/meshwizard.po
po/en/statistics.po
po/es/ahcp.po
po/es/base.po
po/es/commands.po [new file with mode: 0644]
po/es/ddns.po
po/es/diag_devinfo.po
po/es/freifunk.po
po/es/meshwizard.po
po/es/minidlna.po
po/es/ntpc.po
po/es/olsr.po
po/es/p2pblock.po
po/es/pbx.po
po/es/polipo.po
po/es/radvd.po
po/es/statistics.po
po/es/tinyproxy.po
po/fr/ahcp.po
po/fr/base.po
po/fr/commands.po [new file with mode: 0644]
po/fr/coovachilli.po
po/fr/ddns.po
po/fr/diag_core.po
po/fr/diag_devinfo.po
po/fr/freifunk.po
po/fr/hd_idle.po
po/fr/meshwizard.po
po/fr/mmc_over_gpio.po
po/fr/multiwan.po
po/fr/ntpc.po
po/fr/qos.po
po/fr/statistics.po
po/fr/tinyproxy.po
po/fr/upnp.po
po/fr/voice_core.po
po/he/base.po
po/he/commands.po [new file with mode: 0644]
po/he/ddns.po
po/he/diag_devinfo.po
po/he/freifunk.po
po/he/meshwizard.po
po/he/statistics.po
po/hu/base.po
po/hu/commands.po [new file with mode: 0644]
po/hu/ddns.po
po/hu/diag_devinfo.po
po/hu/freifunk.po
po/hu/meshwizard.po
po/hu/qos.po
po/hu/statistics.po
po/it/base.po
po/it/commands.po [new file with mode: 0644]
po/it/ddns.po
po/it/diag_devinfo.po
po/it/freifunk.po
po/it/meshwizard.po
po/it/minidlna.po
po/it/pbx.po
po/it/statistics.po
po/it/tinyproxy.po
po/ja/base.po
po/ja/commands.po [new file with mode: 0644]
po/ja/ddns.po
po/ja/diag_devinfo.po
po/ja/firewall.po
po/ja/freifunk.po
po/ja/hd_idle.po
po/ja/meshwizard.po
po/ja/ntpc.po
po/ja/olsr.po
po/ja/statistics.po
po/ja/watchcat.po
po/ms/base.po
po/ms/commands.po [new file with mode: 0644]
po/ms/ddns.po
po/ms/diag_devinfo.po
po/ms/freifunk.po
po/ms/meshwizard.po
po/ms/statistics.po
po/no/base.po
po/no/commands.po [new file with mode: 0644]
po/no/ddns.po
po/no/diag_devinfo.po
po/no/freifunk.po
po/no/meshwizard.po
po/no/statistics.po
po/pl/base.po
po/pl/commands.po [new file with mode: 0644]
po/pl/ddns.po
po/pl/diag_devinfo.po
po/pl/ffwizard.po
po/pl/freifunk.po
po/pl/meshwizard.po
po/pl/minidlna.po
po/pl/multiwan.po
po/pl/olsr.po
po/pl/pbx.po
po/pl/splash.po
po/pl/statistics.po
po/pl/tinyproxy.po
po/pl/transmission.po
po/pt/base.po
po/pt/commands.po [new file with mode: 0644]
po/pt/ddns.po
po/pt/diag_devinfo.po
po/pt/freifunk.po
po/pt/meshwizard.po
po/pt/statistics.po
po/pt_BR/base.po
po/pt_BR/commands.po [new file with mode: 0644]
po/pt_BR/ddns.po
po/pt_BR/diag_devinfo.po
po/pt_BR/freifunk.po
po/pt_BR/meshwizard.po
po/pt_BR/multiwan.po
po/pt_BR/olsr.po
po/pt_BR/pbx.po
po/pt_BR/statistics.po
po/pt_BR/transmission.po
po/ro/base.po
po/ro/commands.po [new file with mode: 0644]
po/ro/coovachilli.po
po/ro/ddns.po
po/ro/diag_devinfo.po
po/ro/freifunk.po
po/ro/meshwizard.po
po/ro/ntpc.po
po/ro/statistics.po
po/ru/ahcp.po
po/ru/base.po
po/ru/commands.po [new file with mode: 0644]
po/ru/coovachilli.po
po/ru/ddns.po
po/ru/diag_core.po
po/ru/diag_devinfo.po
po/ru/ffwizard.po
po/ru/freifunk-policyrouting.po
po/ru/freifunk.po
po/ru/hd_idle.po
po/ru/meshwizard.po
po/ru/minidlna.po
po/ru/mmc_over_gpio.po
po/ru/multiwan.po
po/ru/ntpc.po
po/ru/olsr.po
po/ru/openvpn.po
po/ru/p2pblock.po
po/ru/p910nd.po
po/ru/pbx-voicemail.po
po/ru/polipo.po
po/ru/qos.po
po/ru/radvd.po
po/ru/samba.po
po/ru/splash.po
po/ru/statistics.po
po/ru/tinyproxy.po
po/ru/transmission.po
po/ru/upnp.po
po/ru/ushare.po
po/ru/uvc_streamer.po
po/ru/vnstat.po
po/ru/voice_core.po
po/ru/voice_diag.po
po/ru/watchcat.po
po/ru/wol.po
po/ru/wshaper.po
po/templates/base.pot
po/templates/commands.pot [new file with mode: 0644]
po/templates/ddns.pot
po/templates/diag_devinfo.pot
po/templates/freifunk.pot
po/templates/meshwizard.pot
po/templates/olsr.pot
po/templates/statistics.pot
po/tr/base.po
po/tr/commands.po [new file with mode: 0644]
po/tr/ddns.po
po/tr/diag_devinfo.po
po/tr/freifunk.po
po/tr/meshwizard.po
po/tr/statistics.po
po/uk/base.po
po/uk/commands.po [new file with mode: 0644]
po/uk/ddns.po
po/uk/diag_devinfo.po
po/uk/freifunk.po
po/uk/meshwizard.po
po/uk/statistics.po
po/vi/base.po
po/vi/commands.po [new file with mode: 0644]
po/vi/ddns.po
po/vi/diag_devinfo.po
po/vi/freifunk.po
po/vi/meshwizard.po
po/vi/statistics.po
po/zh_CN/base.po
po/zh_CN/commands.po [new file with mode: 0644]
po/zh_CN/ddns.po
po/zh_CN/diag_devinfo.po
po/zh_CN/firewall.po
po/zh_CN/freifunk.po
po/zh_CN/meshwizard.po
po/zh_CN/minidlna.po
po/zh_CN/ntpc.po
po/zh_CN/p910nd.po
po/zh_CN/splash.po
po/zh_CN/statistics.po
po/zh_CN/tinyproxy.po
po/zh_CN/ushare.po
po/zh_CN/uvc_streamer.po
po/zh_CN/watchcat.po
po/zh_CN/wol.po
protocols/ppp/luasrc/model/network/proto_ppp.lua
themes/base/htdocs/luci-static/resources/Dropdowns.js [deleted file]
themes/base/htdocs/luci-static/resources/VarType.js [deleted file]
themes/base/htdocs/luci-static/resources/XHTML1.js [deleted file]
themes/bootstrap/htdocs/luci-static/bootstrap/cascade.css
themes/bootstrap/luasrc/view/themes/bootstrap/header.htm
themes/freifunk-bno/htdocs/luci-static/freifunk-bno/cascade.css
themes/freifunk-bno/luasrc/view/themes/freifunk-bno/header.htm
themes/freifunk-generic/htdocs/luci-static/freifunk-generic/cascade.css
themes/freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm
themes/openwrt/htdocs/luci-static/openwrt.org/cascade.css
themes/openwrt/luasrc/view/themes/openwrt.org/header.htm

index efccd79d09d67b69dfd8d659bd35483b4f88f51f..7dc9fa1e8ebe3d92a0e4d112687dc7e8b3554fd4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ all: build
 build: gccbuild luabuild
 
 gccbuild:
-       make -C libs/lmo CC="cc" CFLAGS="" LDFLAGS="" SDK="$(shell test -f .running-sdk && echo 1)" host-install
+       make -C libs/web CC="cc" CFLAGS="" LDFLAGS="" SDK="$(shell test -f .running-sdk && echo 1)" host-install
        for i in $(MODULES); do \
                make -C$$i SDK="$(shell test -f .running-sdk && echo 1)" compile || { \
                        echo "*** Compilation of $$i failed!"; \
index 5667bb532f9376b195a870079a505b866670e33c..704ec4f84adffd807cc8c0de70bd593309d252e5 100644 (file)
@@ -19,7 +19,7 @@ function index()
                return
        end
 
-       entry({"admin", "network", "ahcpd"}, cbi("ahcp"), _("AHCP Server"), 90).i18n = "ahcp"
+       entry({"admin", "network", "ahcpd"}, cbi("ahcp"), _("AHCP Server"), 90)
        entry({"admin", "network", "ahcpd", "status"}, call("ahcp_status"))
 end
 
index ab053397da7ce1cccae1df73135694aebb70de5d..54b9525e7bb768c59890a5dc0198f09a826bda39 100644 (file)
@@ -17,7 +17,7 @@ module("luci.controller.asterisk", package.seeall)
 
 function index()
 
-       entry({"admin", "services", "asterisk"},                                  cbi("asterisk"),                        "Asterisk",                           80).i18n = "asterisk"
+       entry({"admin", "services", "asterisk"},                                  cbi("asterisk"),                        "Asterisk",                           80)
 
        entry({"admin", "services", "asterisk", "voice"},         cbi("asterisk-voice"),      "Voice Functions",        1)
        entry({"admin", "services", "asterisk", "meetme"},        cbi("asterisk-meetme"),     "Meetme Conferences",     2)
diff --git a/applications/luci-commands/Makefile b/applications/luci-commands/Makefile
new file mode 100644 (file)
index 0000000..64801c2
--- /dev/null
@@ -0,0 +1,4 @@
+PO = commands
+
+include ../../build/config.mk
+include ../../build/module.mk
diff --git a/applications/luci-commands/luasrc/controller/commands.lua b/applications/luci-commands/luasrc/controller/commands.lua
new file mode 100644 (file)
index 0000000..b9f0ce8
--- /dev/null
@@ -0,0 +1,237 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2012 Jo-Philipp Wich <jow@openwrt.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
+
+]]--
+
+module("luci.controller.commands", package.seeall)
+
+function index()
+       entry({"admin", "system", "commands"}, firstchild(), _("Custom Commands"), 80)
+       entry({"admin", "system", "commands", "dashboard"}, template("commands"), _("Dashboard"), 1)
+       entry({"admin", "system", "commands", "config"}, cbi("commands"), _("Configure"), 2)
+       entry({"admin", "system", "commands", "run"}, call("action_run"), nil, 3).leaf = true
+       entry({"admin", "system", "commands", "download"}, call("action_download"), nil, 3).leaf = true
+
+       entry({"command"}, call("action_public"), nil, 1).leaf = true
+end
+
+--- Decode a given string into arguments following shell quoting rules
+--- [[abc \def "foo\"bar" abc'def']] -> [[abc def]] [[foo"bar]] [[abcdef]]
+local function parse_args(str)
+       local args = { }
+
+       local function isspace(c)
+               if c == 9 or c == 10 or c == 11 or c == 12 or c == 13 or c == 32 then
+                       return c
+               end
+       end
+
+       local function isquote(c)
+               if c == 34 or c == 39 or c == 96 then
+                       return c
+               end
+       end
+
+       local function isescape(c)
+               if c == 92 then
+                       return c
+               end
+       end
+
+       local function ismeta(c)
+               if c == 36 or c == 92 or c == 96 then
+                       return c
+               end
+       end
+
+       --- Convert given table of byte values into a Lua string and append it to
+       --- the "args" table. Segment byte value sequence into chunks of 256 values
+       --- to not trip over the parameter limit for string.char()
+       local function putstr(bytes)
+               local chunks = { }
+               local csz = 256
+               local upk = unpack
+               local chr = string.char
+               local min = math.min
+               local len = #bytes
+               local off
+
+               for off = 1, len, csz do
+                       chunks[#chunks+1] = chr(upk(bytes, off, min(off + csz - 1, len)))
+               end
+
+               args[#args+1] = table.concat(chunks)
+       end
+
+       --- Scan substring defined by the indexes [s, e] of the string "str",
+       --- perform unquoting and de-escaping on the fly and store the result in
+       --- a table of byte values which is passed to putstr()
+       local function unquote(s, e)
+               local off, esc, quote
+               local res = { }
+
+               for off = s, e do
+                       local byte = str:byte(off)
+                       local q = isquote(byte)
+                       local e = isescape(byte)
+                       local m = ismeta(byte)
+
+                       if e then
+                               esc = true
+                       elseif esc then
+                               if m then res[#res+1] = 92 end
+                               res[#res+1] = byte
+                               esc = false
+                       elseif q and quote and q == quote then
+                               quote = nil
+                       elseif q and not quote then
+                               quote = q
+                       else
+                               if m then res[#res+1] = 92 end
+                               res[#res+1] = byte
+                       end
+               end
+
+               putstr(res)
+       end
+
+       --- Find substring boundaries in "str". Ignore escaped or quoted
+       --- whitespace, pass found start- and end-index for each substring
+       --- to unquote()
+       local off, esc, start, quote
+       for off = 1, #str + 1 do
+               local byte = str:byte(off)
+               local q = isquote(byte)
+               local s = isspace(byte) or (off > #str)
+               local e = isescape(byte)
+
+               if esc then
+                       esc = false
+               elseif e then
+                       esc = true
+               elseif q and quote and q == quote then
+                       quote = nil
+               elseif q and not quote then
+                       start = start or off
+                       quote = q
+               elseif s and not quote then
+                       if start then
+                               unquote(start, off - 1)
+                               start = nil
+                       end
+               else
+                       start = start or off
+               end
+       end
+
+       --- If the "quote" is still set we encountered an unfinished string
+       if quote then
+               unquote(start, #str)
+       end
+
+       return args
+end
+
+local function parse_cmdline(cmdid, args)
+       local uci = require "luci.model.uci".cursor()
+       if uci:get("luci", cmdid) == "command" then
+               local cmd = uci:get_all("luci", cmdid)
+               local argv = parse_args(cmd.command)
+               local i, v
+
+               if cmd.param == "1" and args then
+                       for i, v in ipairs(parse_args(luci.http.urldecode(args))) do
+                               argv[#argv+1] = v
+                       end
+               end
+
+               for i, v in ipairs(argv) do
+                       if v:match("[^%w%.%-i/]") then
+                               argv[i] = '"%s"' % v:gsub('"', '\\"')
+                       end
+               end
+
+               return argv
+       end
+end
+
+function action_run(...)
+       local fs   = require "nixio.fs"
+       local argv = parse_cmdline(...)
+       if argv then
+               local outfile = os.tmpname()
+               local errfile = os.tmpname()
+
+               local rv = os.execute(table.concat(argv, " ") .. " >%s 2>%s" %{ outfile, errfile })
+               local stdout = fs.readfile(outfile, 1024 * 512) or ""
+               local stderr = fs.readfile(errfile, 1024 * 512) or ""
+
+               fs.unlink(outfile)
+               fs.unlink(errfile)
+
+               local binary = not not (stdout:match("[%z\1-\8\14-\31]"))
+
+               luci.http.prepare_content("application/json")
+               luci.http.write_json({
+                       command  = table.concat(argv, " "),
+                       stdout   = not binary and stdout,
+                       stderr   = stderr,
+                       exitcode = rv,
+                       binary   = binary
+               })
+       else
+               luci.http.status(404, "No such command")
+       end
+end
+
+function action_download(...)
+       local fs   = require "nixio.fs"
+       local argv = parse_cmdline(...)
+       if argv then
+               local fd = io.popen(table.concat(argv, " ") .. " 2>/dev/null")
+               if fd then
+                       local chunk = fd:read(4096) or ""
+                       local name
+                       if chunk:match("[%z\1-\8\14-\31]") then
+                               luci.http.header("Content-Disposition", "attachment; filename=%s"
+                                                % fs.basename(argv[1]):gsub("%W+", ".") .. ".bin")
+                               luci.http.prepare_content("application/octet-stream")
+                       else
+                               luci.http.header("Content-Disposition", "attachment; filename=%s"
+                                                % fs.basename(argv[1]):gsub("%W+", ".") .. ".txt")
+                               luci.http.prepare_content("text/plain")
+                       end
+
+                       while chunk do
+                               luci.http.write(chunk)
+                               chunk = fd:read(4096)
+                       end
+
+                       fd:close()
+               else
+                       luci.http.status(500, "Failed to execute command")
+               end
+       else
+               luci.http.status(404, "No such command")
+       end
+end
+
+function action_public(cmdid, args)
+       local uci = require "luci.model.uci".cursor()
+       if cmdid and
+          uci:get("luci", cmdid) == "command" and
+          uci:get("luci", cmdid, "public") == "1"
+       then
+               action_download(cmdid, args)
+       else
+               luci.http.status(403, "Access to command denied")
+       end
+end
diff --git a/applications/luci-commands/luasrc/model/cbi/commands.lua b/applications/luci-commands/luasrc/model/cbi/commands.lua
new file mode 100644 (file)
index 0000000..1359eb2
--- /dev/null
@@ -0,0 +1,37 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2012 Jo-Philipp Wich <jow@openwrt.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
+
+]]--
+
+local m, s
+
+m = Map("luci", translate("Custom Commands"),
+       translate("This page allows you to configure custom shell commands which can be easily invoked from the web interface."))
+
+s = m:section(TypedSection, "command", "")
+s.template = "cbi/tblsection"
+s.anonymous = true
+s.addremove = true
+
+
+s:option(Value, "name", translate("Description"),
+         translate("A short textual description of the configured command"))
+
+s:option(Value, "command", translate("Command"),
+         translate("Command line to execute"))
+
+s:option(Flag, "param", translate("Custom arguments"),
+         translate("Allow the user to provide additional command line arguments"))
+
+s:option(Flag, "public", translate("Public access"),
+         translate("Allow executing the command and downloading its output without prior authentication"))
+
+return m
diff --git a/applications/luci-commands/luasrc/view/commands.htm b/applications/luci-commands/luasrc/view/commands.htm
new file mode 100644 (file)
index 0000000..83792a9
--- /dev/null
@@ -0,0 +1,176 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2012 Jo-Philipp Wich <jow@openwrt.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
+
+-%>
+
+<% css = [[
+
+.commandbox {
+       height: 12em;
+       width: 30%;
+       float: left;
+       height: 12em;
+       margin: 5px;
+       position: relative;
+}
+
+.commandbox h3 {
+       font-size: 1.5em !important;
+       line-height: 2em !important;
+       margin: 0 !important;
+}
+
+.commandbox input[type="text"] {
+       width: 50% !important;
+}
+
+.commandbox div {
+       position: absolute;
+       left: 0;
+       bottom: 1.5em;
+}
+
+]] -%>
+
+<%+header%>
+
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
+<script type="text/javascript">//<![CDATA[
+       var stxhr = new XHR();
+
+       function command_run(id)
+       {
+               var args;
+               var field = document.getElementById(id);
+               if (field)
+                       args = encodeURIComponent(field.value);
+
+               var legend = document.getElementById('command-rc-legend');
+               var output = document.getElementById('command-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("admin", "system", "commands", "run")%>/' + id + (args ? '/' + args : ''), null,
+                               function(x, st)
+                               {
+                                       if (st)
+                                       {
+                                               if (st.binary)
+                                                       st.stdout = '[<%:Binary data not displayed, download instead.%>]';
+
+                                               legend.style.display = 'none';
+                                               output.innerHTML = String.format(
+                                                       '<pre><strong># %h\n</strong>%h<span style="color:red">%h</span></pre>' +
+                                                       '<div class="alert-message warning">%s (<%:Code:%> %d)</div>',
+                                                       st.command, st.stdout, st.stderr,
+                                                       (st.exitcode == 0) ? '<%:Command successful%>' : '<%:Command failed%>',
+                                                       st.exitcode);
+                                       }
+                                       else
+                                       {
+                                               legend.style.display = 'none';
+                                               output.innerHTML = '<span class="error"><%:Failed to execute command!%></span>';
+                                       }
+
+                                       location.hash = '#output';
+                               }
+                       );
+               }
+       }
+
+       function command_download(id)
+       {
+               var args;
+               var field = document.getElementById(id);
+               if (field)
+                       args = encodeURIComponent(field.value);
+
+               location.href = '<%=luci.dispatcher.build_url("admin", "system", "commands", "download")%>/' + id + (args ? '/' + args : '');
+       }
+
+       function command_link(id)
+       {
+               var legend = document.getElementById('command-rc-legend');
+               var output = document.getElementById('command-rc-output');
+
+               var args;
+               var field = document.getElementById(id);
+               if (field)
+                       args = encodeURIComponent(field.value);
+
+               if (legend && output)
+               {
+                       var link = location.protocol + '//' + location.hostname +
+                                  (location.port ? ':' + location.port : '') +
+                                          location.pathname.split(';')[0] + 'command/' +
+                                          id + (args ? '/' + args : '');
+
+                       legend.style.display = 'none';
+                       output.parentNode.style.display = 'block';
+                       output.innerHTML = String.format(
+                               '<div class="alert-message"><%:Access command with%> <a href="%s">%s</a></div>',
+                               link, link
+                       );
+
+                       location.hash = '#output';
+               }
+       }
+
+//]]></script>
+
+<%
+       local uci = require "luci.model.uci".cursor()
+       local commands = { }
+
+       uci:foreach("luci", "command", function(s) commands[#commands+1] = s end)
+%>
+
+<form method="get" action="<%=pcdata(luci.http.getenv("REQUEST_URI"))%>">
+       <div class="cbi-map">
+               <h2><a id="content" name="content"><%:Custom Commands%></a></h2>
+
+               <fieldset class="cbi-section">
+                       <% local _, command; for _, command in ipairs(commands) do %>
+                       <div class="commandbox">
+                               <h3><%=pcdata(command.name)%></h3>
+                               <p><%:Command:%> <code><%=pcdata(command.command)%></code></p>
+                               <% if command.param == "1" then %>
+                                       <p><%:Arguments:%> <input type="text" id="<%=command['.name']%>" /></p>
+                               <% end %>
+                               <div>
+                                       <input type="button" value="<%:Run%>" class="cbi-button cbi-button-apply" onclick="command_run('<%=command['.name']%>')" />
+                                       <input type="button" value="<%:Download%>" class="cbi-button cbi-button-download" onclick="command_download('<%=command['.name']%>')" />
+                                       <% if command.public == "1" then %>
+                                               <input type="button" value="<%:Link%>" class="cbi-button cbi-button-link" onclick="command_link('<%=command['.name']%>')" />
+                                       <% end %>
+                               </div>
+                       </div>
+                       <% end %>
+
+                       <br style="clear:both" /><br />
+                       <a name="output"></a>
+               </fieldset>
+       </div>
+
+       <fieldset class="cbi-section" style="display:none">
+               <legend id="command-rc-legend"><%:Collecting data...%></legend>
+               <span id="command-rc-output"></span>
+       </fieldset>
+</form>
+
+<%+footer%>
index 73a2c518a77fb904fd791ca026705af6745edbfe..aa0a5cc7306a0850be71836075d8bfb484e85759 100644 (file)
@@ -18,7 +18,6 @@ function index()
        local cc
 
        cc = entry( { "admin", "services", "coovachilli" },       cbi("coovachilli"),         _("CoovaChilli"),                90)
-       cc.i18n = "coovachilli"
        cc.subindex = true
 
        entry( { "admin", "services", "coovachilli", "network" }, cbi("coovachilli_network"), _("Network Configuration"),      10)
index e2f786b3249baaa3c2aec7f0dd283b7b87dacad4..0c7293d5af09c111024e1d3de1c256b47f6379aa 100644 (file)
@@ -23,10 +23,8 @@ function index()
        local page
 
        page = entry({"admin", "services", "ddns"}, cbi("ddns/ddns"), _("Dynamic DNS"), 60)
-       page.i18n = "ddns"
        page.dependent = true
 
        page = entry({"mini", "network", "ddns"}, cbi("ddns/ddns", {autoapply=true}), _("Dynamic DNS"), 60)
-       page.i18n = "ddns"
        page.dependent = true
 end
index 42fb4a61dc9807feef1a44c5b3dff77080835b06..e477a245ec00abbaa4df98686a5a0dab0c9b6bef 100644 (file)
@@ -112,14 +112,19 @@ else
 end
 
 
-s:option(Value, "check_interval",
-       translate("Check for changed IP every")).default = 10
+ci = s:option(Value, "check_interval", translate("Check for changed IP every"))
+ci.datatype = "and(uinteger,min(1))"
+ci.default = 10
+
 unit = s:option(ListValue, "check_unit", translate("Check-time unit"))
 unit.default = "minutes"
 unit:value("minutes", translate("min"))
 unit:value("hours", translate("h"))
 
-s:option(Value, "force_interval", translate("Force update every")).default = 72
+fi = s:option(Value, "force_interval", translate("Force update every"))
+fi.datatype = "and(uinteger,min(1))"
+fi.default = 72
+
 unit = s:option(ListValue, "force_unit", translate("Force-time unit"))
 unit.default = "hours"
 unit:value("minutes", translate("min"))
index c12399431e9029f3e9667c971bb9a2de89e6b7ae..4a8a0200317a88c4b36ad8f58a7ae04549cca61a 100644 (file)
@@ -11,8 +11,6 @@ You may obtain a copy of the License at
 
 ]]--
 
-require("luci.i18n")
-
 module("luci.controller.luci_diag", package.seeall)
 
 function index()
@@ -20,11 +18,9 @@ function index()
 
        e = entry({"admin", "network", "diag_config"}, template("diag/network_config_index") , _("Configure Diagnostics"), 120)
        e.index = true
-       e.i18n = "diag_core"
        e.dependent = true
 
        e = entry({"mini", "diag"}, template("diag/index"), _("Diagnostics"), 120)
        e.index = true
-       e.i18n = "diag_core"
        e.dependent = true
 end
index 009054a86059559f6ab78cbbdf8514790b584aaf..c124cd310139e945a053bec22ddb078df7e63b44 100644 (file)
@@ -38,8 +38,6 @@ end
 function parse_output(devmap, outnets, haslink, type, mini, debug)
    local curnet = next(outnets, nil)
 
-   luci.i18n.loadc("diag_devinfo")
-
    while (curnet) do
       local output = outnets[curnet]["output"]
       local subnet = outnets[curnet]["subnet"]
index e8a2f5043dc97027be1b6bc86714eb7079102171..7a2fbd91a397e47aaf948edeb08a90753f8703b2 100644 (file)
@@ -19,49 +19,38 @@ function index()
    e = entry({"admin", "voice", "diag", "phones"}, arcombine(cbi("luci_diag/smap_devinfo"), cbi("luci_diag/smap_devinfo_config")), _("Phones"), 10)
    e.leaf = true
    e.subindex = true
-   e.i18n = "diag_devinfo"
    e.dependent = true
 
    e = entry({"admin", "voice", "diag", "phones", "config"}, cbi("luci_diag/smap_devinfo_config"), _("Configure"), 10)
-   e.i18n = "diag_devinfo"
 
    e = entry({"admin", "status", "smap_devinfo"}, cbi("luci_diag/smap_devinfo"), _("SIP Devices on Network"), 120)
    e.leaf = true
-   e.i18n = "diag_devinfo"
    e.dependent = true
 
    e = entry({"admin", "network", "diag_config", "netdiscover_devinfo_config"}, cbi("luci_diag/netdiscover_devinfo_config"), _("Network Device Scan"), 100)
    e.leaf = true
-   e.i18n = "diag_devinfo"
    e.dependent = true
 
    e = entry({"admin", "network", "diag_config", "smap_devinfo_config"}, cbi("luci_diag/smap_devinfo_config"), _("SIP Device Scan"))
    e.leaf = true
-   e.i18n = "diag_devinfo"
    e.dependent = true
 
    e = entry({"admin", "status", "netdiscover_devinfo"}, cbi("luci_diag/netdiscover_devinfo"), _("Devices on Network"), 90)
-   e.i18n = "diag_devinfo"
    e.dependent = true
 
    e = entry({"admin", "network", "mactodevinfo"}, cbi("luci_diag/mactodevinfo"), _("MAC Device Info Overrides"), 190)
-   e.i18n = "diag_devinfo"
    e.dependent = true
 
    e = entry({"mini", "diag", "phone_scan"}, cbi("luci_diag/smap_devinfo_mini"), _("Phone Scan"), 100)
-   e.i18n = "diag_devinfo"
    e.dependent = true
 
    e = entry({"mini", "voice", "phones", "phone_scan_config"}, cbi("luci_diag/smap_devinfo_config_mini"), _("Config Phone Scan"), 90)
-   e.i18n = "diag_devinfo"
    e.dependent = true
 
    e = entry({"mini", "diag", "netdiscover_devinfo"}, cbi("luci_diag/netdiscover_devinfo_mini"), _("Network Device Scan"), 10)
-   e.i18n = "diag_devinfo"
    e.dependent = true
 
    e = entry({"mini", "network", "netdiscover_devinfo_config"}, cbi("luci_diag/netdiscover_devinfo_config_mini"), _("Device Scan Config"))
-   e.i18n = "diag_devinfo"
    e.dependent = true
 
 end
index 95859aeaf788168b2d6fc0d9134cc671c92d4025..592ca1eaa9352c28516ff9a7dd419919a59fc7f2 100644 (file)
@@ -83,7 +83,6 @@ function command_function(outnets, i)
 end
 
 function action_links(netdiscovermap, mini) 
-   luci.i18n.loadc("diag_devinfo")
    s = netdiscovermap:section(SimpleSection, "", translate("Actions")) 
    b = s:option(DummyValue, "_config", translate("Configure Scans"))
    b.value = ""
index 13ac91f93ec5ac4ba6e9bd3c0e313fd954c6aa54..e9aeaa621448533ce00a6158ede80a42eeb24361 100644 (file)
@@ -94,7 +94,6 @@ function command_function(outnets, i)
 end
 
 function action_links(smapmap, mini) 
-   luci.i18n.loadc("diag_devinfo")
    s = smapmap:section(SimpleSection, "", translate("Actions")) 
    b = s:option(DummyValue, "_config", translate("Configure Scans"))
    b.value = ""
index c0149f8cffb677c05d076e3f6e8e7b5ffc44e9b1..5a6ab0ad310b2cbc2db697297b512e317cd8430a 100644 (file)
@@ -3,7 +3,7 @@ module("luci.controller.firewall", package.seeall)
 function index()
        entry({"admin", "network", "firewall"},
                alias("admin", "network", "firewall", "zones"),
-               _("Firewall"), 60).i18n = "firewall"
+               _("Firewall"), 60)
 
        entry({"admin", "network", "firewall", "zones"},
                arcombine(cbi("firewall/zones"), cbi("firewall/zone-details")),
index e8aca9ce57538d4cca785904dadb932263bdcdaf..ec087d93a178d180728f2d223b242650bf8788d1 100644 (file)
@@ -14,5 +14,5 @@ module "luci.controller.freifunk.policy-routing"
 
 function index()
        entry({"admin", "freifunk", "policyrouting"}, cbi("freifunk/policyrouting"),
-               _("Policy Routing"), 60).i18n = "freifunk-policyrouting"
+               _("Policy Routing"), 60)
 end
index 4361eb782d4b1765c6c93450ca670c1b63c9f642..f7f0467719f5c0d736729966fc889ba7b0d675f6 100644 (file)
@@ -10,7 +10,6 @@ You may obtain a copy of the License at
        http://www.apache.org/licenses/LICENSE-2.0
 ]]--
 
-luci.i18n.loadc("freifunk")
 local uci = require "luci.model.uci".cursor()
 
 m = Map("freifunk-policyrouting", translate("Policy Routing"), translate("These pages can be used to setup policy routing for certain firewall zones. "..
index e28983f39006cc2712e0f57528394f8f5255e483..a6f4adc382f8400f2b7a8f76ed4af5ac9c4a927d 100644 (file)
@@ -23,6 +23,5 @@ function index()
        local page
 
        page = entry({"admin", "services", "hd_idle"}, cbi("hd_idle"), _("hd-idle"), 60)
-       page.i18n = "hd_idle"
        page.dependent = true
 end
index 81baf397dff17f2209913af7353a6182ad8a8b85..abce09cea86b3a8d29ccd66efeb476a8e4c9ba93 100644 (file)
@@ -22,7 +22,6 @@ function index()
        page.target = firstchild()
        page.title  = _("VoIP")
        page.order  = 90
-       page.i18n = "telephony"
 
        entry({"admin", "telephony", "account"}, cbi("luci_ltqtapi/account") , _("Account"), 10)
        entry({"admin", "telephony", "contact"}, cbi("luci_ltqtapi/contact") , _("Contacts"), 20)
index 1bd5617f6acb0bf17b1978ff3a08c9963bdd09c0..500c90aaaf4f8c239b2db3c80365029d0f742bec 100644 (file)
@@ -22,7 +22,6 @@ function index()
        local page
 
        page = entry({"admin", "services", "minidlna"}, cbi("minidlna"), _("miniDLNA"))
-       page.i18n = "minidlna"
        page.dependent = true
 
        entry({"admin", "services", "minidlna_status"}, call("minidlna_status"))
index a2336f76a744453c57680502afb40a96af928ee0..098a72a0732e0c63102eb85b65e12fbedb211664 100644 (file)
@@ -1,5 +1,3 @@
-<%- luci.i18n.loadc("minidlna") -%>
-
 <script type="text/javascript">//<![CDATA[
        XHR.poll(5, '<%=luci.dispatcher.build_url("admin/services/minidlna_status")%>', null,
                function(x, st)
index 5abceab7aacff7bee78c92238a8ccbc19f5ccda9..b9984cb89b14b472d83ec9a445b007bddce8e8a4 100644 (file)
@@ -23,6 +23,5 @@ function index()
        local page
 
        page = entry({"admin", "system", "mmc_over_gpio"}, cbi("mmc_over_gpio"), _("MMC/SD driver configuration"), 60)
-       page.i18n = "mmc_over_gpio"
        page.dependent = true
 end
index 6aa4cf454a1f49a2fc58243bd1d8225774bf5443..b596ef7e34213f3ee7f817dbf41f46eabb74363a 100644 (file)
@@ -9,13 +9,11 @@ function index()
        local page
 
        page = entry({"admin", "network", "multiwan"}, cbi("multiwan/multiwan"), _("Multi-WAN"))
-       page.i18n = "multiwan"
        page.dependent = true
        
        entry({"admin", "network", "multiwan", "status"}, call("multiwan_status"))
 
        page = entry({"mini", "network", "multiwan"}, cbi("multiwan/multiwanmini", {autoapply=true}), _("Multi-WAN"))
-       page.i18n = "multiwan"
        page.dependent = true
 end
 function multiwan_status()
index 782e216143f2748be1fc98f584c54f65ce8e490f..b7f4cdfc789bd3c0b576edef076739643e61f0d0 100644 (file)
@@ -23,10 +23,8 @@ function index()
        local page
 
        page = entry({"admin", "system", "ntpc"}, cbi("ntpc/ntpc"), _("Time Synchronisation"), 50)
-       page.i18n = "ntpc"
        page.dependent = true
 
        page = entry({"mini", "system", "ntpc"}, cbi("ntpc/ntpcmini", {autoapply=true}), _("Time Synchronisation"), 50)
-       page.i18n = "ntpc"
        page.dependent = true
 end
index ab7f73edb47ad60be1e2362024bd925d0d66252f..5265359c6a6c6d46042e95d8e625eec3201eff9f 100644 (file)
@@ -20,14 +20,21 @@ s.addremove = false
 
 s:option(DummyValue, "_time", translate("Current system time")).value = os.date("%c")
 
-s:option(Value, "interval", translate("Update interval (in seconds)")).rmempty = true
-s:option(Value, "count", translate("Count of time measurements"), translate("empty = infinite")).rmempty = true
+interval = s:option(Value, "interval", translate("Update interval (in seconds)"))
+interval.datatype = "and(uinteger,min(1))"
+interval.rmempty = true
 
+count = s:option(Value, "count", translate("Count of time measurements"), translate("empty = infinite"))
+count.datatype = "and(uinteger,min(1))"
+count.rmempty = true
 
 s2 = m:section(TypedSection, "ntpdrift", translate("Clock Adjustment"))
 s2.anonymous = true
 s2.addremove = false
-s2:option(Value, "freq", translate("Offset frequency")).rmempty = true
+
+freq = s2:option(Value, "freq", translate("Offset frequency"))
+freq.datatype = "integer"
+freq.rmempty = true
 
 s3 = m:section(TypedSection, "ntpserver", translate("Time Servers"))
 s3.anonymous = true
@@ -35,6 +42,8 @@ s3.addremove = true
 s3.template = "cbi/tblsection"
 
 s3:option(Value, "hostname", translate("Hostname"))
-s3:option(Value, "port", translate("Port")).rmempty = true
+port = s3:option(Value, "port", translate("Port"))
+port.datatype = "port"
+port.rmempty = true
 
 return m
index 9b5633762e2cce4e832eeb7aec1f52dcbb247ef7..2a6c415242b4dc73783bfe9ea844060e4917c768 100644 (file)
@@ -21,8 +21,9 @@ s.addremove = false
 
 s:option(DummyValue, "_time", translate("Current system time")).value = os.date("%c")
 
-s:option(Value, "interval", translate("Update interval (in seconds)")).rmempty = true
-
+interval = s:option(Value, "interval", translate("Update interval (in seconds)"))
+interval.datatype = "and(uinteger,min(1))"
+interval.rmempty = true
 
 s3 = m:section(TypedSection, "ntpserver", translate("Time Server"))
 s3.anonymous = true
@@ -30,6 +31,8 @@ s3.addremove = true
 s3.template = "cbi/tblsection"
 
 s3:option(Value, "hostname", translate("Hostname"))
-s3:option(Value, "port", translate("Port")).rmempty = true
+port = s3:option(Value, "port", translate("Port"))
+port.datatype = "port"
+port.rmempty = true
 
 return m
index 371bad870735e69b36ffe8e7add43b2b20b77f85..0342bde49b0479a2aaf9c82227cf8374293a2b5e 100644 (file)
@@ -8,7 +8,6 @@ function index()
        local page  = node("admin", "status", "olsr")
        page.target = template("status-olsr/overview")
        page.title  = _("OLSR")
-       page.i18n   = "olsr"
        page.subindex = true
 
        local page  = node("admin", "status", "olsr", "neighbors")
@@ -51,7 +50,6 @@ function index()
                {"admin", "services", "olsrd"},
                cbi("olsr/olsrd"), "OLSR"
        )
-       ol.i18n = "olsr"
        ol.subindex = true
 
        entry(
@@ -74,7 +72,6 @@ function index()
                cbi("olsr/olsrddisplay"), _("Display")
                )
 
-       oplg.i18n = "olsr"
        oplg.leaf = true
        oplg.subindex = true
 
index 45501020a3fddbaf3c57f6d8d031fb7dc450dd9a..425d09a31e13aa7712420d2cc20c7fe3d25ab859 100644 (file)
@@ -16,11 +16,11 @@ function etx_color(etx)
        local color = "#bb3333"
        if etx == 0 then
                color = "#bb3333"
-       elseif etx < 4 then
+       elseif etx < 2 then
                color = "#00cc00"
-       elseif etx < 10 then
+       elseif etx < 4 then
                color = "#ffcb05"
-       elseif etx < 100 then
+       elseif etx < 10 then
                color = "#ff6600"
        end
        return color
index 029f585473931752f078e87d95ba98c3ff4686f8..669ddc20cfd46d8b9d9822ed9df9140ff0c14aee 100644 (file)
@@ -147,6 +147,10 @@ end
        <li><strong>LQ: </strong><%:Success rate of packages received from the neighbour%></li>
        <li><strong>NLQ: </strong><%:Success rate of packages sent to the neighbour%></li>
        <li><strong>ETX: </strong><%:Expected retransmission count%></li>
+       <li><strong><span style="color:#00cc00"><%:Green%></span></strong>:<%:Very good (ETX < 2)%></li> 
+       <li><strong><span style="color:#ffcb05"><%:Yellow%></span></strong>:<%:Good (2 < ETX < 4)%></li> 
+       <li><strong><span style="color:#ff6600"><%:Orange%></span></strong>:<%:Still usable (4 < ETX < 10)%></li> 
+       <li><strong><span style="color:#bb3333"><%:Red%></span></strong>:<%:Bad (ETX > 10)%></li> 
 </ul>
 </fieldset>
 <%+footer%>
index 691ce178d549d485e7c0cebd45a3ba5d79e24faa..8695dae848ef89f0faea2a805dd9878d2af559d5 100644 (file)
@@ -16,7 +16,7 @@ $Id$
 module("luci.controller.openvpn", package.seeall)
 
 function index()
-       entry( {"admin", "services", "openvpn"}, cbi("openvpn"), _("OpenVPN") ).i18n = "openvpn"
+       entry( {"admin", "services", "openvpn"}, cbi("openvpn"), _("OpenVPN") )
        entry( {"admin", "services", "openvpn", "basic"},    cbi("openvpn-basic"),    nil ).leaf = true
        entry( {"admin", "services", "openvpn", "advanced"}, cbi("openvpn-advanced"), nil ).leaf = true
 end
index 50c9e7a1af408b719fe77da238cc861502e34e81..887f18756f88509d2b471f9a25cbc88bb4cb2b1d 100644 (file)
@@ -16,5 +16,5 @@ module("luci.controller.ff_p2pblock", package.seeall)
 
 function index()
        entry({"admin", "network", "firewall", "p2pblock"}, cbi("luci_fw/p2pblock"),
-               _("P2P-Block"), 40).i18n = "p2pblock"
+               _("P2P-Block"), 40)
 end
index bc38c2bb9a45835eb67e886171ff948d6534a098..4efaef8a181e024cdcb78efba5489e064a121e17 100644 (file)
@@ -23,6 +23,5 @@ function index()
        local page
 
        page = entry({"admin", "services", "p910nd"}, cbi("p910nd"), _("p910nd - Printer server"), 60)
-       page.i18n = "p910nd"
        page.dependent = true
 end
index e450a62755252593567ee7038e88a9726a06994d..7580a3e74ef9201bcb72ab72fbdbd6e486e91eb1 100644 (file)
@@ -2,6 +2,7 @@
 
 LuCI p910nd
 (c) 2008 Yanira <forum-2008@email.de>
+(c) 2012 Jo-Philipp Wich <jow@openwrt.org>
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -9,15 +10,17 @@ You may obtain a copy of the License at
 
         http://www.apache.org/licenses/LICENSE-2.0
 
-$Id$
-
 ]]--
 
 local uci = luci.model.uci.cursor_state()
+local net = require "luci.model.network"
+local m, s, p, b
 
 m = Map("p910nd", translate("p910nd - Printer server"),
         translatef("First you have to install the packages to get support for USB (kmod-usb-printer) or parallel port (kmod-lp)."))
 
+net = net.init(m.uci)
+
 s = m:section(TypedSection, "p910nd", translate("Settings"))
 s.addremove = true
 s.anonymous = true
@@ -26,6 +29,25 @@ s:option(Flag, "enabled", translate("enable"))
 
 s:option(Value, "device", translate("Device")).rmempty = true
 
+b = s:option(Value, "bind", translate("Interface"), translate("Specifies the interface to listen on."))
+b.template = "cbi/network_netlist"
+b.nocreate = true
+b.unspecified = true
+
+function b.cfgvalue(...)
+       local v = Value.cfgvalue(...)
+       if v then
+               return (net:get_status_by_address(v))
+       end
+end
+
+function b.write(self, section, value)
+       local n = net:get_network(value)
+       if n and n:ipaddr() then
+               Value.write(self, section, n:ipaddr())
+       end
+end
+
 p = s:option(ListValue, "port", translate("Port"), translate("TCP listener port."))
 p.rmempty = true
 for i=0,9 do
index d07eaebd450766d151aefe4d9a71f814dec8b6e7..1113f8f267d1fe7fdb4cf00db0db3e645db3503a 100644 (file)
@@ -19,7 +19,7 @@ function index()
                return
        end
 
-       entry({"admin", "services", "polipo"}, alias("admin", "services", "polipo", "config"), _("Polipo")).i18n = "polipo"
+       entry({"admin", "services", "polipo"}, alias("admin", "services", "polipo", "config"), _("Polipo"))
        entry({"admin", "services", "polipo", "status"}, template("polipo_status"), _("Status"))
        entry({"admin", "services", "polipo", "config"}, cbi("polipo"), _("Configuration"))
 end
index c9eb9e5d115f575348f3944615d2d737d9b555e6..e356599d8ad42493ae0d7f13c892e16694d1ceb6 100644 (file)
@@ -22,10 +22,8 @@ function index()
        local page
 
        page = entry({"admin", "network", "qos"}, cbi("qos/qos"), _("QoS"))
-       page.i18n = "qos"
        page.dependent = true
 
        page = entry({"mini", "network", "qos"}, cbi("qos/qosmini", {autoapply=true}), _("QoS"))
-       page.i18n = "qos"
        page.dependent = true
 end
index 98e9a250701ce08ed306af911170e3cafe55623e..1af3bdbbd3859c8dd8f4bba900aee23f455c3c37 100644 (file)
@@ -35,9 +35,11 @@ s:option(Flag, "overhead", translate("Calculate overhead"))
 
 s:option(Flag, "halfduplex", translate("Half-duplex"))
 
-s:option(Value, "download", translate("Download speed (kbit/s)"))
+dl = s:option(Value, "download", translate("Download speed (kbit/s)"))
+dl.datatype = "and(uinteger,min(1))"
 
-s:option(Value, "upload", translate("Upload speed (kbit/s)"))
+ul = s:option(Value, "upload", translate("Upload speed (kbit/s)"))
+ul.datatype = "and(uinteger,min(1))"
 
 s = m:section(TypedSection, "classify", translate("Classification Rules"))
 s.template = "cbi/tblsection"
index 9ffefec4f16b96d0f8d598507b0d2d9ac0306eb7..0c5766f342089869e2a3c188f4227beb7fa70699 100644 (file)
@@ -21,8 +21,12 @@ m = Map("qos")
 s = m:section(NamedSection, "wan", "interface", translate("Internet Connection"))
 
 s:option(Flag, "enabled", translate("Quality of Service"))
-s:option(Value, "download", translate("Downlink"), "kbit/s")
-s:option(Value, "upload", translate("Uplink"), "kbit/s")
+
+dl = s:option(Value, "download", translate("Downlink"), "kbit/s")
+dl.datatype = "and(uinteger,min(1))"
+
+ul = s:option(Value, "upload", translate("Uplink"), "kbit/s")
+ul.datatype = "and(uinteger,min(1))"
 
 s = m:section(TypedSection, "classify")
 s.template = "cbi/tblsection"
index 09e764659e71025aa9f416e3f415872715683195..58dcbb2eac643b8532a8a898f5cf0355ba9e58a9 100644 (file)
@@ -19,7 +19,7 @@ function index()
                return
        end
 
-       entry({"admin", "network", "radvd"}, cbi("radvd"), _("Radvd"), 61).i18n = "radvd"
+       entry({"admin", "network", "radvd"}, cbi("radvd"), _("Radvd"), 61)
        entry({"admin", "network", "radvd", "interface"}, cbi("radvd/interface"), nil).leaf = true
        entry({"admin", "network", "radvd", "prefix"}, cbi("radvd/prefix"), nil).leaf = true
        entry({"admin", "network", "radvd", "route"}, cbi("radvd/route"), nil).leaf = true
index 7d531330a7c712974dab89699ca3f009528918a2..ee7d44aa4dce8aacdf7151a9631c18e57c3e9d49 100644 (file)
@@ -23,6 +23,5 @@ function index()
        local page
 
        page = entry({"admin", "services", "samba"}, cbi("samba"), _("Network Shares"))
-       page.i18n = "samba"
        page.dependent = true
 end
index aceeb4a8c50e455fed4ddc65fb19aedce54d47e0..73584580d83d10b06f97e6ebd8fed19c031889c6 100644 (file)
@@ -1,28 +1,25 @@
 module("luci.controller.splash.splash", package.seeall)
-luci.i18n.loadc("splash")
 
 local uci = luci.model.uci.cursor()
 local util = require "luci.util"
 
 function index()
-       entry({"admin", "services", "splash"}, cbi("splash/splash"), _("Client-Splash"), 90).i18n = "freifunk"
+       entry({"admin", "services", "splash"}, cbi("splash/splash"), _("Client-Splash"), 90)
        entry({"admin", "services", "splash", "splashtext" }, form("splash/splashtext"), _("Splashtext"), 10)
 
        local e
        
        e = node("splash")
        e.target = call("action_dispatch")
-       e.i18n = "freifunk"
 
        node("splash", "activate").target = call("action_activate")
        node("splash", "splash").target   = template("splash_splash/splash")
        node("splash", "blocked").target  = template("splash/blocked")
 
-       entry({"admin", "status", "splash"}, call("action_status_admin"), _("Client-Splash")).i18n = "freifunk"
+       entry({"admin", "status", "splash"}, call("action_status_admin"), _("Client-Splash"))
 
        local page  = node("splash", "publicstatus")
        page.target = call("action_status_public")
-       page.i18n   = "freifunk"
        page.leaf   = true
 end
 
index c03cd459aed40277e6ad95a33eabdeb9cd61e074..47d7695d2c583d45106e910f34595df3f9edb92e 100644 (file)
@@ -9,7 +9,6 @@ You may obtain a copy of the License at
 ]]--
 
 require("luci.model.uci")
-luci.i18n.loadc("splash")
 
 m = Map("luci_splash", translate("Client-Splash"), translate("Client-Splash is a hotspot authentification system for wireless mesh networks."))
 
index 5b744e1ccc4c67a108bac6520dd3d970ca5cc596..8748a9319f5c448a1d5ba1f5ee9e08cdee3db2d8 100644 (file)
@@ -13,7 +13,6 @@ You may obtain a copy of the License at
 ]]--
 
 local fs = require "nixio.fs"
-luci.i18n.loadc("splash")
 
 local splashtextfile = "/usr/lib/luci-splash/splashtext.html" 
 
index d97921953ad9512d75653b3164e715423b03667b..56cbe01c274f3b8b899354881b34a792e5427556 100644 (file)
@@ -19,7 +19,6 @@ local ipt = require "luci.sys.iptparser".IptParser()
 local uci = require "luci.model.uci".cursor_state()
 local wat = require "luci.tools.webadmin"
 local fs  = require "nixio.fs"
-luci.i18n.loadc("splash")
 
 local clients = { }
 local leasetime = tonumber(uci:get("luci_splash", "general", "leasetime") or 1) * 60 * 60
index 2e25154123ef1739eab2e08e265e7f5b02226a14..869384c0a693a1fc87a6c8223c791d82d65e457a 100644 (file)
@@ -50,6 +50,7 @@ function index()
                memory          = _("Memory"),
                netlink         = _("Netlink"),
                network         = _("Network"),
+               nut                     = _("UPS"),
                olsrd           = _("OLSRd"),
                ping            = _("Ping"),
                processes       = _("Processes"),
@@ -61,13 +62,12 @@ function index()
        -- our collectd menu
        local collectd_menu = {
                output  = { "csv", "network", "rrdtool", "unixsock" },
-               system  = { "cpu", "df", "disk", "email", "exec", "irq", "load", "memory", "processes" },
+               system  = { "cpu", "df", "disk", "email", "exec", "irq", "load", "memory", "nut", "processes" },
                network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "ping", "tcpconns", "iwinfo" }
        }
 
        -- create toplevel menu nodes
        local st = entry({"admin", "statistics"}, template("admin_statistics/index"), _("Statistics"), 80)
-       st.i18n = "statistics"
        st.index = true
        
        entry({"admin", "statistics", "collectd"}, cbi("luci_statistics/collectd"), _("Collectd"), 10).subindex = true
@@ -82,7 +82,6 @@ function index()
                )
 
                e.index = true
-               e.i18n  = "rrdtool"
 
                for j, plugin in luci.util.vspairs( plugins ) do
                        _entry(
@@ -97,7 +96,6 @@ function index()
 
        -- output views
        local page = entry( { "admin", "statistics", "graph" }, template("admin_statistics/index"), _("Graphs"), 80)
-             page.i18n     = "statistics"
              page.setuser  = "nobody"
              page.setgroup = "nogroup"
 
index c1fd7a331af5562970db39ddf8a96269271c6c38..2343854f660d2f5ac0b2d45eba0976b2be7c6140 100644 (file)
@@ -19,7 +19,7 @@ require("luci.sys")
 m = Map("luci_statistics",
        translate("Collectd Settings"),
        translate(
-               "Collectd is a small daeomon for collecting data from " ..
+               "Collectd is a small daemon for collecting data from " ..
                "various sources through different plugins. On this page " ..
                "you can change general settings for the collectd daemon."
        ))
diff --git a/applications/luci-statistics/luasrc/model/cbi/luci_statistics/nut.lua b/applications/luci-statistics/luasrc/model/cbi/luci_statistics/nut.lua
new file mode 100644 (file)
index 0000000..ad03071
--- /dev/null
@@ -0,0 +1,28 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright © 2011 Manuel Munz <freifunk at somakoma dot de>
+Copyright © 2012 David Woodhouse <dwmw2@infradead.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
+]]--
+
+m = Map("luci_statistics",
+       translate("UPS Plugin Configuration"),
+       translate("The NUT plugin reads information about Uninterruptible Power Supplies."))
+
+s = m:section(NamedSection, "collectd_nut", "luci_statistics" )
+
+enable = s:option(Flag, "enable", translate("Enable this plugin"))
+enable.default = 0
+
+host = s:option(Value, "UPS", translate("UPS"), translate("UPS name in NUT ups@host format"))
+host.placeholder = "myupsname"
+host.datatype = "string"
+host.rmempty = true
+
+return m
index a279e91006bce58846c2de7a81647efb4b5d22fc..a1a2fa9de3a4ffc7c270b7054b04ed303aae44bd 100644 (file)
@@ -25,9 +25,6 @@ Instance = luci.util.class()
 function Instance.__init__( self, graph )
        self.i18n  = luci.i18n
        self.graph = graph
-
-       self.i18n.loadc("rrdtool")
-       self.i18n.loadc("statistics")
 end
 
 function Instance._subst( self, str, val )
index 844c157d15615823e6f42552523a1b3fe13df198..dbcae9dc6be42c79701c4a61662c0b6deac719f4 100644 (file)
@@ -156,11 +156,14 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
 
                if not ds or ds:len() == 0 then ds = "value" end
 
-               _tif( _args, "DEF:%s_avg=%s:%s:AVERAGE", inst, rrd, ds )
+               _tif( _args, "DEF:%s_avg_raw=%s:%s:AVERAGE", inst, rrd, ds )
+               _tif( _args, "CDEF:%s_avg=%s_avg_raw,%s", inst, inst, source.transform_rpn )
 
                if not self.opts.rrasingle then
-                       _tif( _args, "DEF:%s_min=%s:%s:MIN", inst, rrd, ds )
-                       _tif( _args, "DEF:%s_max=%s:%s:MAX", inst, rrd, ds )
+                       _tif( _args, "DEF:%s_min_raw=%s:%s:MIN", inst, rrd, ds )
+                       _tif( _args, "CDEF:%s_min=%s_min_raw,%s", inst, inst, source.transform_rpn )
+                       _tif( _args, "DEF:%s_max_raw=%s:%s:MAX", inst, rrd, ds )
+                       _tif( _args, "CDEF:%s_max=%s_max_raw,%s", inst, inst, source.transform_rpn )
                end
 
                _tif( _args, "CDEF:%s_nnl=%s_avg,UN,0,%s_avg,IF", inst, inst, inst )
@@ -180,20 +183,23 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
 
                -- is first source in stack or overlay source: source_stk = source_nnl
                if not prev or source.overlay then
-                       -- create cdef statement
+                       -- create cdef statement for cumulative stack (no NaNs) and also
+                        -- for display (preserving NaN where no points should be displayed)
                        _tif( _args, "CDEF:%s_stk=%s_nnl", source.sname, source.sname )
+                       _tif( _args, "CDEF:%s_plot=%s_avg", source.sname, source.sname )
 
                -- is subsequent source without overlay: source_stk = source_nnl + previous_stk
                else
                        -- create cdef statement
                        _tif( _args, "CDEF:%s_stk=%s_nnl,%s_stk,+", source.sname, source.sname, prev )
+                       _tif( _args, "CDEF:%s_plot=%s_avg,%s_stk,+", source.sname, source.sname, prev )
                end
 
                -- create multiply by minus one cdef if flip is enabled
                if source.flip then
 
                        -- create cdef statement: source_stk = source_stk * -1
-                       _tif( _args, "CDEF:%s_neg=%s_stk,-1,*", source.sname, source.sname )
+                       _tif( _args, "CDEF:%s_neg=%s_plot,-1,*", source.sname, source.sname )
 
                        -- push to negative stack if overlay is disabled
                        if not source.overlay then
@@ -253,11 +259,11 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
                -- derive area background color from line color
                area_color = self.colors:to_string( self.colors:faded( area_color ) )
 
-               -- choose source_stk or source_neg variable depending on flip state
+               -- choose source_plot or source_neg variable depending on flip state
                if source.flip then
                        var = "neg"
                else
-                       var = "stk"
+                       var = "plot"
                end
 
                -- create legend
@@ -400,6 +406,7 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
                                        flip     = dopts.flip    or false,
                                        total    = dopts.total   or false,
                                        overlay  = dopts.overlay or false,
+                                       transform_rpn = dopts.transform_rpn or "0,+",
                                        noarea   = dopts.noarea  or false,
                                        title    = dopts.title   or nil,
                                        ds       = dsource,
@@ -450,6 +457,18 @@ function Graph._generic( self, opts, plugin, plugin_instance, dtype, index )
                _ti( _args, self.i18n:title( plugin, plugin_instance, _sources[1].type, instance, opts.title ) )
                _ti( _args, "-v" )
                _ti( _args, self.i18n:label( plugin, plugin_instance, _sources[1].type, instance, opts.vlabel ) )
+               if opts.y_max then
+                       _ti ( _args, "-u" )
+                       _ti ( _args, opts.y_max )
+               end
+               if opts.y_min then
+                       _ti ( _args, "-l" )
+                       _ti ( _args, opts.y_min )
+               end
+               if opts.units_exponent then
+                       _ti ( _args, "-X" )
+                       _ti ( _args, opts.units_exponent )
+               end
 
                -- store additional rrd options
                if opts.rrdopts then
index adc3f284b2446de35eb5950393775f945365fbfb..c0e86245c093f52cabaea47369e23fe2ea033be1 100644 (file)
@@ -19,6 +19,7 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
 
        return {
                title = "%H: Processor usage on core #%pi",
+               y_min = "0",
                vlabel = "Percent",
                number_format = "%5.1lf%%",
                data = {
index 8052696fb503fa538e886aae1d818d2b68aeb895..4cb4795ef6465cef14eda3747cd721d8deadf83b 100644 (file)
@@ -19,6 +19,8 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
 
        return {
                title = "%H: Load", vlabel = "Load",
+               y_min = "0",
+               units_exponent = "0",
                number_format = "%5.2lf", data = {
                        sources = {
                                load = { "shortterm", "midterm", "longterm" }
diff --git a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/nut.lua b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
new file mode 100644 (file)
index 0000000..69f1ae3
--- /dev/null
@@ -0,0 +1,106 @@
+--[[
+
+Luci statistics - ups plugin diagram definition
+Copyright © 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
+Copyright © 2012 David Woodhouse <dwmw2@infradead.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
+
+]]--
+
+
+module("luci.statistics.rrdtool.definitions.nut",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+       local voltages = {
+               title = "%H: Voltages on UPS \"%pi\"",
+               vlabel = "V",
+               number_format = "%5.1lfV",
+               data = {
+                       instances = {
+                               voltage = { "battery", "input", "output" }
+                       },
+
+                       options = {
+                               voltage_output  = { color = "00e000", title = "Output voltage", noarea=true, overlay=true },
+                               voltage_battery = { color = "0000ff", title = "Battery voltage", noarea=true, overlay=true },
+                               voltage_input   = { color = "ffb000", title = "Input voltage", noarea=true, overlay=true }
+                       }
+               }
+       }
+
+       local currents = {
+               title = "%H: Current on UPS \"%pi\"",
+               vlabel = "A",
+               number_format = "%5.3lfA",
+               data = {
+                       instances = {
+                               current = { "battery", "output" }
+                       },
+
+                       options = {
+                               current_output  = { color = "00e000", title = "Output current", noarea=true, overlay=true },
+                               current_battery = { color = "0000ff", title = "Battery current", noarea=true, overlay=true },
+                       }
+               }
+       }
+
+       local percentage = {
+               title = "%H: Battery charge on UPS \"%pi\"",
+               vlabel = "Percent",
+               y_min = "0",
+               y_max = "100",
+               number_format = "%5.1lf%%",
+               data = {
+                       sources = {
+                               percent = { "percent" }
+                       },
+                       instances = {
+                               percent = "charge"
+                       },
+                       options = {
+                               percent_charge = { color = "00ff00", title = "Charge level"  }
+                       }
+               }
+       }
+
+       -- Note: This is in ISO8859-1 for rrdtool. Welcome to the 20th century.
+       local temperature = {
+               title = "%H: Battery temperature on UPS \"%pi\"",
+               vlabel = "\176C",
+               number_format = "%5.1lf\176C",
+               data = {
+                       instances = {
+                               temperature = "battery"
+                       },
+
+                       options = {
+                               temperature_battery = { color = "ffb000", title = "Battery temperature" }
+                       }
+               }
+       }
+
+       local timeleft = {
+               title = "%H: Time left on UPS \"%pi\"",
+               vlabel = "Minutes",
+               number_format = "%.1lfm",
+               data = {
+                       sources = {
+                               timeleft = { "timeleft" }
+                       },
+                       instances = {
+                               timeleft = { "battery" }
+                       },
+                       options = {
+                               timeleft_battery = { color = "0000ff", title = "Time left", transform_rpn = "60,/" }
+                       }
+               }
+       }
+
+       return { voltages, currents, percentage, temperature, timeleft }
+end
index a1e6a6b86b7212cccb8b581e531072e8db531aab..5267a02626b2f4bd966ffadad89f66c93e2d4bcc 100644 (file)
@@ -131,3 +131,7 @@ config 'statistics' 'collectd_olsrd'
 
 config 'statistics' 'collectd_iwinfo'
        option 'enable' '1'
+
+config 'statistics' 'collectd_nut'
+       option 'enable' '0'
+       option 'UPS' 'myupsname'
index 4cf39460efc5241aa57b41857acade3e5c59faac..0a9fa1ab33b5c082e9bbf10ccc7c57ae58f08253 100755 (executable)
@@ -357,6 +357,12 @@ plugins = {
 
        network = config_network,
 
+       nut = {
+               { "UPS" },
+               { },
+               { }
+       },
+
        olsrd = {
                { "Host", "Port", "CollectLinks","CollectRoutes","CollectTopology"},
                { },
index 1dcb20ce343357c9ad1e1238f43d422ff6e36b53..0b81b90865b36c801a8910ca0bdb313cbb95dc77 100644 (file)
@@ -20,7 +20,7 @@ function index()
                return
        end
 
-       entry({"admin", "services", "tinyproxy"}, alias("admin", "services", "tinyproxy", "config"), _("Tinyproxy")).i18n = "tinyproxy"
+       entry({"admin", "services", "tinyproxy"}, alias("admin", "services", "tinyproxy", "config"), _("Tinyproxy"))
        entry({"admin", "services", "tinyproxy", "status"}, template("tinyproxy_status"), _("Status"))
        entry({"admin", "services", "tinyproxy", "config"}, cbi("tinyproxy"), _("Configuration"))
 end
index a5bcd644fb31271524a775d335d55f00c1266475..2c4df46b7c5cfc0a9dceec0ead7406fa8422db82 100644 (file)
@@ -15,14 +15,11 @@ $Id$
 module("luci.controller.transmission", package.seeall)
 
 function index()
-       require("luci.i18n")
-       luci.i18n.loadc("transmission")
        if not nixio.fs.access("/etc/config/transmission") then
                return
        end
 
        local page = entry({"admin", "services", "transmission"}, cbi("transmission"), _("Transmission"))
-       page.i18n = "transmission"
        page.dependent = true
 
 end
index c40493dab6c3e06b2b220b1e0e6178040c098b22..7acd029a5f0b54ce43db5c5823605d259108f993 100644 (file)
@@ -23,11 +23,9 @@ function index()
        local page
 
        page = entry({"admin", "services", "upnp"}, cbi("upnp/upnp"), _("UPNP"))
-       page.i18n = "upnp"
        page.dependent = true
 
        page = entry({"mini", "network", "upnp"}, cbi("upnp/upnpmini", {autoapply=true}), _("UPNP"))
-       page.i18n = "upnp"
        page.dependent = true
 
        entry({"admin", "services", "upnp", "status"}, call("act_status")).leaf = true
@@ -69,10 +67,8 @@ function act_status()
        end
 end
 
-function act_delete()
-       local path = luci.dispatcher.context.requestpath
-       local idx = tonumber(path[#path])
-
+function act_delete(idx)
+       idx = tonumber(idx)
        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)
index 11c72a50a0143f655efb9696e7536d6b9010d9b9..d50ed0c4d702d100883292f76378fdc076a88741 100644 (file)
@@ -1,5 +1,3 @@
-<%- luci.i18n.loadc("upnp") -%>
-
 <script type="text/javascript">//<![CDATA[
        function upnp_delete_fwd(idx) {
                XHR.get('<%=luci.dispatcher.build_url("admin", "services", "upnp", "delete")%>/' + idx, null,
index 7bbd2ddde18d2eceb0668560ba72ea385cc9a712..eed853239baaad65a68db7a56a466230179c036f 100644 (file)
@@ -23,6 +23,5 @@ function index()
        local page
 
        page = entry({"admin", "services", "ushare"}, cbi("ushare"), _("uShare"), 60)
-       page.i18n = "ushare"
        page.dependent = true
 end
index 4c10e2ad30fe67c93a5ffc0da8c0b2c5c7783a8f..3871fa254cf97d707dbec61ba70bc9c38a99b55b 100644 (file)
@@ -1,11 +1,11 @@
 module("luci.controller.vnstat", package.seeall)
 
 function index()
-       entry({"admin", "status", "vnstat"}, alias("admin", "status", "vnstat", "graphs"), _("VnStat Traffic Monitor"), 90).i18n = "vnstat"
+       entry({"admin", "status", "vnstat"}, alias("admin", "status", "vnstat", "graphs"), _("VnStat Traffic Monitor"), 90)
        entry({"admin", "status", "vnstat", "graphs"}, template("vnstat"), _("Graphs"), 1)
        entry({"admin", "status", "vnstat", "config"}, cbi("vnstat"), _("Configuration"), 2)
 
-       entry({"mini", "network", "vnstat"}, alias("mini", "network", "vnstat", "graphs"), _("VnStat Traffic Monitor"), 90).i18n = "vnstat"
+       entry({"mini", "network", "vnstat"}, alias("mini", "network", "vnstat", "graphs"), _("VnStat Traffic Monitor"), 90)
        entry({"mini", "network", "vnstat", "graphs"}, template("vnstat"), _("Graphs"), 1)
        entry({"mini", "network", "vnstat", "config"}, cbi("vnstat"), _("Configuration"), 2)
 end
index dc1482e358909cca632c2a368eef4a3da44e87ef..728afb6a459840356e4a37bc18d47649f454ed98 100644 (file)
@@ -18,18 +18,14 @@ function index()
 
    e = entry({"admin", "voice"}, template("luci_voice/index") , _("Voice"), 90)
    e.index = true
-   e.i18n = "voice_core"
 
    e = entry({"mini", "voice"}, template("luci_voice/index"), _("Voice"), 90)
    e.index = true
-   e.i18n = "voice_core"
 
    e = entry({"mini", "voice", "phones"}, template("luci_voice/phone_index"), _("Phones"), 90)
    e.index = true
-   e.i18n = "voice_core"
 
    e = entry({"admin", "voice", "phones"}, template("luci_voice/phone_index"), _("Phones"), 90)
    e.index = true
-   e.i18n = "voice_core"
 
 end
index 8fba53b732d9c74801bdbed6124d0f599d2401f0..7c3f341ed095a472527a340d87cef57ce597b596 100644 (file)
@@ -18,6 +18,5 @@ function index()
 
        e = entry({"admin", "voice", "diag"}, template("luci_voice/diag_index"), _("Diagnostics"), 90)
        e.index = true
-       e.i18n = "voice_diag"
        e.dependent = true
 end
index bb98b6d89ab4ac22e015c96158b236db94a4827b..73a9594b2a8875b2e6fb679ef05017093ab89dd6 100644 (file)
@@ -1,6 +1,6 @@
 module("luci.controller.wol", package.seeall)
 
 function index()
-       entry({"admin", "network", "wol"}, cbi("wol"), _("Wake on LAN"), 90).i18n = "wol"
-       entry({"mini", "network", "wol"}, cbi("wol"), _("Wake on LAN"), 90).i18n = "wol"
+       entry({"admin", "network", "wol"}, cbi("wol"), _("Wake on LAN"), 90)
+       entry({"mini", "network", "wol"}, cbi("wol"), _("Wake on LAN"), 90)
 end
index 9a206bb2a769d38213975571a65facea9237dd42..b20fbc33474499a3c201994347b0fc983dbd8f85 100755 (executable)
@@ -4,7 +4,8 @@ PATTERN=$1
 SCM=
 
 [ -d .svn ] && SCM="svn"
-[ -d .git ] && SCM="git"
+git=$( which git 2>/dev/null )
+[ "$git" ] && "$git" status >/dev/null && SCM="git"
 
 [ -z "$SCM" ] && {
        echo "Unsupported SCM tool" >&2
diff --git a/contrib/package/community-profiles/files/etc/config/profile_hamburg b/contrib/package/community-profiles/files/etc/config/profile_hamburg
deleted file mode 100644 (file)
index ba1dd21..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-config 'community' 'profile'
-       option 'name' 'Freifunk Hamburg'
-       option 'homepage' 'http://hamburg.piratenpartei.de'
-       option 'ssid' 'hamburg.freifunk.net'
-       option 'mesh_network' '10.112.0.0/12'
-       option 'splash_network' '10.104.0.0/16'
-       option 'splash_prefix' '27'
-       option 'latitude' '53.56262'
-       option 'longitude' '10.01069'
-
-config 'defaults' 'interface'
-       option 'netmask' '255.240.0.0'
-
-config 'defaults' 'wifi_device'
-       option 'channel' '1'
index 2dbe1fa7cac065019bd7536a6e873225c49e6403..6bf3a9610412b3290036d7c0992786cc5351f04e 100644 (file)
@@ -1,5 +1,6 @@
 #
 # Copyright (C) 2009 Andreas Seidler <tetzlav@subsignal.org>
+# Copyright (C) 2012 Jo-Philipp Wich <xm@subsignal.org>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,7 +9,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freifunk-p2pblock
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
index aa8b1c8bcbf3d16b678d5d87634b79fcec03bc6f..5ca60c891696ea6c6c461c7eba3b475a07dc5050 100644 (file)
@@ -26,6 +26,7 @@ start() {
                        config_get ipp2p p2pblock ipp2p
                        config_get portrange p2pblock portrange
                        config_get blocktime p2pblock blocktime
+                       config_get whitelist p2pblock whitelist
 
                        # load modules
                        insmod ipt_ipp2p 2>&-
index 2b8bbfe32c2b6c23e5ec451e868703ee4aeff23a..33267b6c9c31dcd2f41c39d63efc3c8b52ff5fb9 100644 (file)
@@ -177,14 +177,13 @@ $(eval $(call library,fastindex,Fastindex indexing module,+PACKAGE_luci-lib-fast
 $(eval $(call library,httpclient,HTTP(S) client library,+luci-lib-web +luci-lib-nixio))
 $(eval $(call library,ipkg,LuCI IPKG/OPKG call abstraction library))
 $(eval $(call library,json,LuCI JSON library))
-$(eval $(call library,lmo,LuCI LMO I18N library))
 $(eval $(call library,lucid,LuCId Full-Stack Webserver,+luci-lib-nixio +luci-lib-web +luci-lib-px5g))
 $(eval $(call library,lucid-http,LuCId HTTP Backend,+luci-lib-lucid))
 $(eval $(call library,lucid-rpc,LuCId RPC Backend,+luci-lib-lucid))
 $(eval $(call library,nixio,NIXIO POSIX library,+PACKAGE_luci-lib-nixio_openssl:libopenssl +PACKAGE_luci-lib-nixio_cyassl:libcyassl))
 $(eval $(call library,px5g,RSA/X.509 Key Generator (required for LuCId SSL support),+luci-lib-nixio))
 $(eval $(call library,sys,LuCI Linux/POSIX system library))
-$(eval $(call library,web,MVC Webframework,+luci-lib-sys +luci-lib-nixio +luci-lib-core +luci-sgi-cgi +luci-lib-lmo))
+$(eval $(call library,web,MVC Webframework,+luci-lib-sys +luci-lib-nixio +luci-lib-core +luci-sgi-cgi))
 
 
 ### Protocols ###
@@ -327,7 +326,7 @@ endef
 $(eval $(call application,siitwizard,SIIT IPv4-over-IPv6 configuration wizard,\
        +PACKAGE_luci-app-siitwizard:kmod-siit))
 
-$(eval $(call application,firewall,Firmware and Portforwarding application,\
+$(eval $(call application,firewall,Firewall and Portforwarding application,\
        +PACKAGE_luci-app-firewall:firewall))
 
 $(eval $(call application,freifunk-policyrouting,Policy routing for mesh traffic,\
@@ -380,6 +379,8 @@ $(eval $(call application,voice-core,LuCI Voice Software (Core)))
 $(eval $(call application,voice-diag,LuCI Voice Software (Diagnostics),\
        luci-app-diag-devinfo))
 
+$(eval $(call application,commands,LuCI Shell Command Module))
+
 $(eval $(call application,upnp,Universal Plug & Play configuration module,\
        +PACKAGE_luci-app-upnp:miniupnpd))
 
index 785a16664054d1f7f67b0b3a9af45139740d75b3..0183c9e9a4084c12990b8e88900c9ead2f36d0a4 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
 uci batch <<-EOF
-       set luci.languages.pl='Język polski'
+       set luci.languages.pl='Polski'
        commit luci
 EOF
index 0c574e0f756b3b22ac23ba01984b5f44b05bf866..a9f6fdb7fc2c4b87d39657b6cd85bb17b89457d3 100644 (file)
@@ -20,7 +20,7 @@ limitations under the License.
 local type, pairs, ipairs, table, luci, math
        = type, pairs, ipairs, table, luci, math
 
-local lmo = require "lmo"
+local tpl = require "luci.template.parser"
 local utl = require "luci.util"
 local uci = require "luci.model.uci"
 
@@ -478,7 +478,7 @@ function zone.get_color(self)
        elseif self and self:name() == "wan" then
                return "#f09090"
        elseif self then
-               math.randomseed(lmo.hash(self:name()))
+               math.randomseed(tpl.hash(self:name()))
 
                local r   = math.random(128)
                local g   = math.random(128)
index cc572298c69b5262f02af232ab45040a528c0627..56f1751f8195732409936a50571e0259f53123bd 100644 (file)
@@ -623,6 +623,32 @@ function get_status_by_route(self, addr, mask)
        end
 end
 
+function get_status_by_address(self, addr)
+       local _, object
+       for _, object in ipairs(_ubus:objects()) do
+               local net = object:match("^network%.interface%.(.+)")
+               if net then
+                       local s = _ubus:call(object, "status", {})
+                       if s and s['ipv4-address'] then
+                               local a
+                               for _, a in ipairs(s['ipv4-address']) do
+                                       if a.address == addr then
+                                               return net, s
+                                       end
+                               end
+                       end
+                       if s and s['ipv6-address'] then
+                               local a
+                               for _, a in ipairs(s['ipv6-address']) do
+                                       if a.address == addr then
+                                               return net, s
+                                       end
+                               end
+                       end
+               end
+       end
+end
+
 function get_wannet(self)
        local net = self:get_status_by_route("0.0.0.0", 0)
        return net and network(net)
index bde803f710612ad09512b7da36d41327111bd71b..e285777c31960d383ece8fc64e9693963ad54020 100644 (file)
@@ -182,27 +182,18 @@ end
 -- String and data manipulation routines
 --
 
---- Escapes all occurrences of the given character in given string.
--- @param s    String value containing unescaped characters
--- @param c    String value with character to escape (optional, defaults to "\")
--- @return     String value with each occurrence of character escaped with "\"
-function escape(s, c)
-       c = c or "\\"
-       return s:gsub(c, "\\" .. c)
-end
-
 --- Create valid XML PCDATA from given string.
 -- @param value        String value containing the data to escape
 -- @return             String value containing the escaped data
 function pcdata(value)
-       return value and tparser.sanitize_pcdata(tostring(value))
+       return value and tparser.pcdata(tostring(value))
 end
 
 --- Strip HTML tags from given string.
 -- @param value        String containing the HTML text
 -- @return     String with HTML tags stripped of
-function striptags(s)
-       return pcdata(tostring(s):gsub("</?[A-Za-z][A-Za-z0-9:_%-]*[^>]*>", " "):gsub("%s+", " "))
+function striptags(value)
+       return value and tparser.striptags(tostring(value))
 end
 
 --- Splits given string on a defined separator sequence and return a table
@@ -356,7 +347,6 @@ function parse_units(ustr)
 end
 
 -- also register functions above in the central string class for convenience
-string.escape      = escape
 string.pcdata      = pcdata
 string.striptags   = striptags
 string.split       = split
index d0d9788fd8be6c861a74aaead8ec23a06026608c..c927e71163de7f891d8a3fea870374725abfd2f4 100644 (file)
@@ -10,7 +10,6 @@ You may obtain a copy of the License at
 
 http://www.apache.org/licenses/LICENSE-2.0
 
-$Id$
 ]]--
 
 local os   = require "os"
@@ -23,7 +22,7 @@ local pairs = pairs
 local error = error
 local table = table
 
-local ipkg = "opkg --force-removal-of-dependent-packages --force-overwrite"
+local ipkg = "opkg --force-removal-of-dependent-packages --force-overwrite --nocase"
 local icfg = "/etc/opkg.conf"
 
 --- LuCI OPKG call abstraction library
@@ -159,7 +158,7 @@ end
 -- List helper
 function _list(action, pat, cb)
        local fd = io.popen(ipkg .. " " .. action ..
-               (pat and (" '%s'" % pat:gsub("'", "")) or "")) -- .. " | grep -vE '^ '")
+               (pat and (" '%s'" % pat:gsub("'", "")) or ""))
 
        if fd then
                local name, version, desc
@@ -167,20 +166,18 @@ function _list(action, pat, cb)
                        local line = fd:read("*l")
                        if not line then break end
 
-                       if line:sub(1,1) ~= " " then
-                               name, version, desc = line:match("^(.-) %- (.-) %- (.+)")
+                       name, version, desc = line:match("^(.-) %- (.-) %- (.+)")
 
-                               if not name then
-                                       name, version = line:match("^(.-) %- (.+)")
-                                       desc = ""
-                               end
+                       if not name then
+                               name, version = line:match("^(.-) %- (.+)")
+                               desc = ""
+                       end
 
-                               cb(name, version, desc)
+                       cb(name, version, desc)
 
-                               name    = nil
-                               version = nil
-                               desc    = nil
-                       end
+                       name    = nil
+                       version = nil
+                       desc    = nil
                end
 
                fd:close()
@@ -203,6 +200,15 @@ function list_installed(pat, cb)
        _list("list_installed", pat, cb)
 end
 
+--- Find packages that match the given pattern.
+-- @param pat  Find packages whose names or descriptions match this pattern, nil results in zero results
+-- @param cb   Callback function invoked for each patckage, receives name, version and description as arguments
+-- @return     nothing
+function find(pat, cb)
+       _list("find", pat, cb)
+end
+
+
 --- Determines the overlay root used by opkg.
 -- @return             String containing the directory path of the overlay root.
 function overlay_root()
diff --git a/libs/lmo/Makefile b/libs/lmo/Makefile
deleted file mode 100644 (file)
index a15390c..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-ifneq (,$(wildcard ../../build/config.mk))
-include ../../build/config.mk
-include ../../build/module.mk
-include ../../build/gccconfig.mk
-else
-include standalone.mk
-endif
-
-LMO_LDFLAGS    =
-LMO_CFLAGS     =
-LMO_SO         = lmo.so
-LMO_PO2LMO     = po2lmo
-LMO_LOOKUP     = lookup
-LMO_COMMON_OBJ = src/lmo_core.o src/lmo_hash.o
-LMO_PO2LMO_OBJ = src/lmo_po2lmo.o
-LMO_LOOKUP_OBJ = src/lmo_lookup.o
-LMO_LUALIB_OBJ = src/lmo_lualib.o
-
-%.o: %.c
-       $(COMPILE) $(LMO_CFLAGS) $(LUA_CFLAGS) $(FPIC) -c -o $@ $< 
-
-compile: build-clean $(LMO_COMMON_OBJ) $(LMO_PO2LMO_OBJ) $(LMO_LOOKUP_OBJ) $(LMO_LUALIB_OBJ)
-       $(LINK) $(SHLIB_FLAGS) $(LMO_LDFLAGS) -o src/$(LMO_SO) \
-               $(LMO_COMMON_OBJ) $(LMO_LUALIB_OBJ)
-       $(LINK) $(LMO_LDFLAGS) -o src/$(LMO_PO2LMO) $(LMO_COMMON_OBJ) $(LMO_PO2LMO_OBJ)
-       $(LINK) $(LMO_LDFLAGS) -o src/$(LMO_LOOKUP) $(LMO_COMMON_OBJ) $(LMO_LOOKUP_OBJ)
-       mkdir -p dist$(LUA_LIBRARYDIR)
-       cp src/$(LMO_SO) dist$(LUA_LIBRARYDIR)/$(LMO_SO)
-
-install: build
-       cp -pR dist$(LUA_LIBRARYDIR)/* $(LUA_LIBRARYDIR)
-
-clean: build-clean
-
-build-clean:
-       rm -f src/*.o src/lookup src/po2lmo src/lmo.so
-
-host-compile: build-clean host-clean $(LMO_COMMON_OBJ) $(LMO_PO2LMO_OBJ)
-       $(LINK) $(LMO_LDFLAGS) -o src/$(LMO_PO2LMO) $(LMO_COMMON_OBJ) $(LMO_PO2LMO_OBJ)
-
-host-install: host-compile
-       cp src/$(LMO_PO2LMO) ../../build/$(LMO_PO2LMO)
-
-host-clean:
-       rm -f ../../build/$(LMO_PO2LMO)
-
diff --git a/libs/lmo/src/lmo.h b/libs/lmo/src/lmo.h
deleted file mode 100644 (file)
index ab17e87..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * lmo - Lua Machine Objects - General header
- *
- *   Copyright (C) 2009 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
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#ifndef _LMO_H_
-#define _LMO_H_
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <errno.h>
-
-
-#if (defined(__GNUC__) && defined(__i386__))
-#define sfh_get16(d) (*((const uint16_t *) (d)))
-#else
-#define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\
-                                          +(uint32_t)(((const uint8_t *)(d))[0]) )
-#endif
-
-
-struct lmo_entry {
-       uint32_t key_id;
-       uint32_t val_id;
-       uint32_t offset;
-       uint32_t length;
-       struct lmo_entry *next;
-} __attribute__((packed));
-
-typedef struct lmo_entry lmo_entry_t;
-
-
-struct lmo_archive {
-       int         fd;
-       uint32_t    length;
-       lmo_entry_t *index;
-       char        *mmap;
-};
-
-typedef struct lmo_archive lmo_archive_t;
-
-
-uint32_t sfh_hash(const char * data, int len);
-
-char _lmo_error[1024];
-const char * lmo_error(void);
-
-lmo_archive_t * lmo_open(const char *file);
-int lmo_lookup(lmo_archive_t *ar, const char *key, char *dest, int len);
-void lmo_close(lmo_archive_t *ar);
-
-#endif
diff --git a/libs/lmo/src/lmo_core.c b/libs/lmo/src/lmo_core.c
deleted file mode 100644 (file)
index 0814138..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * lmo - Lua Machine Objects - Base functions
- *
- *   Copyright (C) 2009-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
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "lmo.h"
-
-extern char _lmo_error[1024];
-
-static int lmo_read32( int fd, uint32_t *val )
-{
-       if( read(fd, val, 4) < 4 )
-               return -1;
-
-       *val = ntohl(*val);
-
-       return 4;
-}
-
-static char * error(const char *message, int add_errno)
-{
-       memset(_lmo_error, 0, sizeof(_lmo_error));
-
-       if( add_errno )
-               snprintf(_lmo_error, sizeof(_lmo_error),
-                       "%s: %s", message, strerror(errno));
-       else
-               snprintf(_lmo_error, sizeof(_lmo_error), "%s", message);
-
-       return NULL;
-}
-
-const char * lmo_error(void)
-{
-       return _lmo_error;
-}
-
-lmo_archive_t * lmo_open(const char *file)
-{
-       int in = -1;
-       uint32_t idx_offset = 0;
-       uint32_t i;
-       struct stat s;
-
-       lmo_archive_t *ar    = NULL;
-       lmo_entry_t   *head  = NULL;
-       lmo_entry_t   *entry = NULL;
-
-       if( stat(file, &s) == -1 )
-       {
-               error("Can not stat file", 1);
-               goto cleanup;
-       }
-
-       if( (in = open(file, O_RDONLY)) == -1 )
-       {
-               error("Can not open file", 1);
-               goto cleanup;
-       }
-
-       if( lseek(in, -sizeof(uint32_t), SEEK_END) == -1 )
-       {
-               error("Can not seek to eof", 1);
-               goto cleanup;
-       }
-
-       if( lmo_read32(in, &idx_offset) != 4 )
-       {
-               error("Unexpected EOF while reading index offset", 0);
-               goto cleanup;
-       }
-
-       if( lseek(in, (off_t)idx_offset, SEEK_SET) == -1 )
-       {
-               error("Can not seek to index offset", 1);
-               goto cleanup;
-       }
-
-       if( (ar = (lmo_archive_t *) malloc(sizeof(lmo_archive_t))) != NULL )
-       {
-               ar->fd     = in;
-               ar->length = idx_offset;
-
-               fcntl(ar->fd, F_SETFD, fcntl(ar->fd, F_GETFD) | FD_CLOEXEC);
-
-               for( i = idx_offset;
-                    i < (s.st_size - sizeof(uint32_t));
-                    i += (4 * sizeof(uint32_t))
-               ) {
-                       if( (entry = (lmo_entry_t *) malloc(sizeof(lmo_entry_t))) != NULL )
-                       {
-                               if( (lmo_read32(ar->fd, &entry->key_id) == 4) &&
-                                   (lmo_read32(ar->fd, &entry->val_id) == 4) &&
-                                   (lmo_read32(ar->fd, &entry->offset) == 4) &&
-                                   (lmo_read32(ar->fd, &entry->length) == 4)
-                               ) {
-                                       entry->next = head;
-                                       head = entry;
-                               }
-                               else
-                               {
-                                       error("Unexpected EOF while reading index entry", 0);
-                                       goto cleanup;
-                               }
-                       }
-                       else
-                       {
-                               error("Out of memory", 0);
-                               goto cleanup;
-                       }
-               }
-
-               ar->index = head;
-
-               if( lseek(ar->fd, 0, SEEK_SET) == -1 )
-               {
-                       error("Can not seek to start", 1);
-                       goto cleanup;
-               }
-
-               if( (ar->mmap = mmap(NULL, ar->length, PROT_READ, MAP_PRIVATE, ar->fd, 0)) == MAP_FAILED )
-               {
-                       error("Failed to memory map archive contents", 1);
-                       goto cleanup;
-               }
-
-               return ar;
-       }
-       else
-       {
-               error("Out of memory", 0);
-               goto cleanup;
-       }
-
-
-       cleanup:
-
-       if( in > -1 )
-               close(in);
-
-       if( head != NULL )
-       {
-               entry = head;
-
-               while( entry != NULL )
-               {
-                       head = entry->next;
-                       free(entry);
-                       entry = head;
-               }
-
-               head = entry = NULL;
-       }
-
-       if( ar != NULL )
-       {
-               if( (ar->mmap != NULL) && (ar->mmap != MAP_FAILED) )
-                       munmap(ar->mmap, ar->length);
-
-               free(ar);
-               ar = NULL;
-       }
-
-       return NULL;
-}
-
-void lmo_close(lmo_archive_t *ar)
-{
-       lmo_entry_t *head  = NULL;
-       lmo_entry_t *entry = NULL;
-
-       if( ar != NULL )
-       {
-               entry = ar->index;
-
-               while( entry != NULL )
-               {
-                       head = entry->next;
-                       free(entry);
-                       entry = head;
-               }
-
-               head = entry = NULL;
-
-               if( (ar->mmap != NULL) && (ar->mmap != MAP_FAILED) )
-                       munmap(ar->mmap, ar->length);
-
-               close(ar->fd);
-               free(ar);
-
-               ar = NULL;
-       }
-}
-
-int lmo_lookup(lmo_archive_t *ar, const char *key, char *dest, int len)
-{
-       uint32_t look_key = sfh_hash(key, strlen(key));
-       int copy_len = -1;
-       lmo_entry_t *entry;
-
-       if( !ar )
-               return copy_len;
-
-       entry = ar->index;
-
-       while( entry != NULL )
-       {
-               if( entry->key_id == look_key )
-               {
-                       copy_len = ((len - 1) > entry->length) ? entry->length : (len - 1);
-                       memcpy(dest, &ar->mmap[entry->offset], copy_len);
-                       dest[copy_len] = '\0';
-
-                       break;
-               }
-
-               entry = entry->next;
-       }
-
-       return copy_len;
-}
diff --git a/libs/lmo/src/lmo_hash.c b/libs/lmo/src/lmo_hash.c
deleted file mode 100644 (file)
index bc8e6fe..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Hash function from http://www.azillionmonkeys.com/qed/hash.html
- * Copyright (C) 2004-2008 by Paul Hsieh
- */
-
-#include "lmo.h"
-
-uint32_t sfh_hash(const char * data, int len)
-{
-       uint32_t hash = len, tmp;
-       int rem;
-
-       if (len <= 0 || data == NULL) return 0;
-
-       rem = len & 3;
-       len >>= 2;
-
-       /* Main loop */
-       for (;len > 0; len--) {
-               hash  += sfh_get16(data);
-               tmp    = (sfh_get16(data+2) << 11) ^ hash;
-               hash   = (hash << 16) ^ tmp;
-               data  += 2*sizeof(uint16_t);
-               hash  += hash >> 11;
-       }
-
-       /* Handle end cases */
-       switch (rem) {
-               case 3: hash += sfh_get16(data);
-                       hash ^= hash << 16;
-                       hash ^= data[sizeof(uint16_t)] << 18;
-                       hash += hash >> 11;
-                       break;
-               case 2: hash += sfh_get16(data);
-                       hash ^= hash << 11;
-                       hash += hash >> 17;
-                       break;
-               case 1: hash += *data;
-                       hash ^= hash << 10;
-                       hash += hash >> 1;
-       }
-
-       /* Force "avalanching" of final 127 bits */
-       hash ^= hash << 3;
-       hash += hash >> 5;
-       hash ^= hash << 4;
-       hash += hash >> 17;
-       hash ^= hash << 25;
-       hash += hash >> 6;
-
-       return hash;
-}
-
diff --git a/libs/lmo/src/lmo_lookup.c b/libs/lmo/src/lmo_lookup.c
deleted file mode 100644 (file)
index 8b48f7f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * lmo - Lua Machine Objects - Lookup utility
- *
- *   Copyright (C) 2009 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
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "lmo.h"
-
-extern char _lmo_error[1024];
-
-static void die(const char *msg)
-{
-       printf("Error: %s\n", msg);
-       exit(1);
-}
-
-static void usage(const char *name)
-{
-       printf("Usage: %s input.lmo key\n", name);
-       exit(1);
-}
-
-int main(int argc, char *argv[])
-{
-       char val[4096];
-       lmo_archive_t *ar = NULL;
-
-       if( argc != 3 )
-               usage(argv[0]);
-
-       if( (ar = (lmo_archive_t *) lmo_open(argv[1])) != NULL )
-       {
-               if( lmo_lookup(ar, argv[2], val, sizeof(val)) > -1 )
-               {
-                       printf("%s\n", val);
-               }
-
-               lmo_close(ar);
-       }
-       else
-       {
-               die(lmo_error());
-       }
-
-       return 0;
-}
diff --git a/libs/lmo/src/lmo_lualib.c b/libs/lmo/src/lmo_lualib.c
deleted file mode 100644 (file)
index 59d88a1..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * lmo - Lua Machine Objects - Lua binding
- *
- *   Copyright (C) 2009 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
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "lmo_lualib.h"
-
-extern char _lmo_error[1024];
-
-
-static int lmo_L_open(lua_State *L) {
-       const char *filename = luaL_checklstring(L, 1, NULL);
-       lmo_archive_t *ar, **udata;
-
-       if( (ar = lmo_open(filename)) != NULL )
-       {
-               if( (udata = lua_newuserdata(L, sizeof(lmo_archive_t *))) != NULL )
-               {
-                       *udata = ar;
-                       luaL_getmetatable(L, LMO_ARCHIVE_META);
-                       lua_setmetatable(L, -2);
-                       return 1;
-               }
-
-               lmo_close(ar);
-               lua_pushnil(L);
-               lua_pushstring(L, "out of memory");
-               return 2;
-       }
-
-       lua_pushnil(L);
-       lua_pushstring(L, lmo_error());
-       return 2;
-}
-
-static int lmo_L_hash(lua_State *L) {
-       const char *data = luaL_checkstring(L, 1);
-       uint32_t hash = sfh_hash(data, strlen(data));
-       lua_pushinteger(L, (lua_Integer)hash);
-       return 1;
-}
-
-static lmo_luaentry_t *_lmo_push_entry(lua_State *L) {
-       lmo_luaentry_t *le;
-
-       if( (le = lua_newuserdata(L, sizeof(lmo_luaentry_t))) != NULL )
-       {
-               luaL_getmetatable(L, LMO_ENTRY_META);
-               lua_setmetatable(L, -2);
-
-               return le;
-       }
-
-       return NULL;
-}
-
-static int _lmo_lookup(lua_State *L, lmo_archive_t *ar, uint32_t hash) {
-       lmo_entry_t *e = ar->index;
-       lmo_luaentry_t *le = NULL;
-
-       while( e != NULL )
-       {
-               if( e->key_id == hash )
-               {
-                       if( (le = _lmo_push_entry(L)) != NULL )
-                       {
-                               le->archive = ar;
-                               le->entry   = e;
-                               return 1;
-                       }
-                       else
-                       {
-                               lua_pushnil(L);
-                               lua_pushstring(L, "out of memory");
-                               return 2;
-                       }
-               }
-
-               e = e->next;
-       }
-
-       lua_pushnil(L);
-       return 1;
-}
-
-static int lmo_L_get(lua_State *L) {
-       lmo_archive_t **ar = luaL_checkudata(L, 1, LMO_ARCHIVE_META);
-       uint32_t hash = (uint32_t) luaL_checkinteger(L, 2);
-       return _lmo_lookup(L, *ar, hash);
-}
-
-static int lmo_L_lookup(lua_State *L) {
-       lmo_archive_t **ar = luaL_checkudata(L, 1, LMO_ARCHIVE_META);
-       const char *key = luaL_checkstring(L, 2);
-       uint32_t hash = sfh_hash(key, strlen(key));
-       return _lmo_lookup(L, *ar, hash);
-}
-
-static int lmo_L_foreach(lua_State *L) {
-       lmo_archive_t **ar = luaL_checkudata(L, 1, LMO_ARCHIVE_META);
-       lmo_entry_t *e = (*ar)->index;
-
-       if( lua_isfunction(L, 2) )
-       {
-               while( e != NULL )
-               {
-                       lua_pushvalue(L, 2);
-                       lua_pushinteger(L, e->key_id);
-                       lua_pushlstring(L, &(*ar)->mmap[e->offset], e->length);
-                       lua_pcall(L, 2, 0, 0);
-                       e = e->next;
-               }
-       }
-
-       return 0;
-}
-
-static int lmo_L__gc(lua_State *L) {
-       lmo_archive_t **ar = luaL_checkudata(L, 1, LMO_ARCHIVE_META);
-
-       if( (*ar) != NULL )
-               lmo_close(*ar);
-
-       *ar = NULL;
-
-       return 0;
-}
-
-static int lmo_L__tostring(lua_State *L) {
-       lmo_archive_t **ar = luaL_checkudata(L, 1, LMO_ARCHIVE_META);
-       lua_pushfstring(L, "LMO Archive (%d bytes)", (*ar)->length);
-       return 1;
-}
-
-
-static int _lmo_convert_entry(lua_State *L, int idx) {
-       lmo_luaentry_t *le = luaL_checkudata(L, idx, LMO_ENTRY_META);
-
-       lua_pushlstring(L,
-               &le->archive->mmap[le->entry->offset],
-               le->entry->length
-       );
-
-       return 1;
-}
-
-static int lmo_L_entry__tostring(lua_State *L) {
-       return _lmo_convert_entry(L, 1);
-}
-
-static int lmo_L_entry__concat(lua_State *L) {
-       if( lua_isuserdata(L, 1) )
-               _lmo_convert_entry(L, 1);
-       else
-               lua_pushstring(L, lua_tostring(L, 1));
-
-       if( lua_isuserdata(L, 2) )
-               _lmo_convert_entry(L, 2);
-       else
-               lua_pushstring(L, lua_tostring(L, 2));
-
-       lua_concat(L, 2);
-
-       return 1;
-}
-
-static int lmo_L_entry__len(lua_State *L) {
-       lmo_luaentry_t *le = luaL_checkudata(L, 1, LMO_ENTRY_META);
-       lua_pushinteger(L, le->entry->length);
-       return 1;
-}
-
-static int lmo_L_entry__gc(lua_State *L) {
-       lmo_luaentry_t *le = luaL_checkudata(L, 1, LMO_ENTRY_META);
-       le->archive = NULL;
-       le->entry   = NULL;
-       return 0;
-}
-
-
-/* lmo method table */
-static const luaL_reg M[] = {
-       {"close",               lmo_L__gc},
-       {"get",                 lmo_L_get},
-       {"lookup",              lmo_L_lookup},
-       {"foreach",             lmo_L_foreach},
-       {"__tostring",  lmo_L__tostring},
-       {"__gc",                lmo_L__gc},
-       {NULL,                  NULL}
-};
-
-/* lmo.entry method table */
-static const luaL_reg E[] = {
-       {"__tostring",  lmo_L_entry__tostring},
-       {"__concat",    lmo_L_entry__concat},
-       {"__len",               lmo_L_entry__len},
-       {"__gc",                lmo_L_entry__gc},
-       {NULL,                  NULL}
-};
-
-/* module table */
-static const luaL_reg R[] = {
-       {"open",        lmo_L_open},
-       {"hash",        lmo_L_hash},
-       {NULL,          NULL}
-};
-
-LUALIB_API int luaopen_lmo(lua_State *L) {
-       luaL_newmetatable(L, LMO_ARCHIVE_META);
-       luaL_register(L, NULL, M);
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -2, "__index");
-       lua_setglobal(L, LMO_ARCHIVE_META);
-
-       luaL_newmetatable(L, LMO_ENTRY_META);
-       luaL_register(L, NULL, E);
-       lua_pushvalue(L, -1);
-       lua_setfield(L, -2, "__index");
-       lua_setglobal(L, LMO_ENTRY_META);       
-
-       luaL_register(L, LMO_LUALIB_META, R);
-
-       return 1;
-}
diff --git a/libs/lmo/src/lmo_lualib.h b/libs/lmo/src/lmo_lualib.h
deleted file mode 100644 (file)
index 6435117..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * lmo - Lua Machine Objects - Lua library header
- *
- *   Copyright (C) 2009 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
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#ifndef _LMO_LUALIB_H_
-#define _LMO_LUALIB_H_
-
-#include <lua.h>
-#include <lualib.h>
-#include <lauxlib.h>
-
-#include "lmo.h"
-
-#define LMO_LUALIB_META  "lmo"
-#define LMO_ARCHIVE_META "lmo.archive"
-#define LMO_ENTRY_META   "lmo.entry"
-
-struct lmo_luaentry {
-       lmo_archive_t *archive;  
-       lmo_entry_t   *entry;
-};
-
-typedef struct lmo_luaentry lmo_luaentry_t;
-
-
-LUALIB_API int luaopen_lmo(lua_State *L);
-
-#endif
diff --git a/libs/lmo/src/lmo_po2lmo.c b/libs/lmo/src/lmo_po2lmo.c
deleted file mode 100644 (file)
index 380f18d..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * lmo - Lua Machine Objects - PO to LMO conversion tool
- *
- *   Copyright (C) 2009-2011 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
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "lmo.h"
-
-static void die(const char *msg)
-{
-       fprintf(stderr, "Error: %s\n", msg);
-       exit(1);
-}
-
-static void usage(const char *name)
-{
-       fprintf(stderr, "Usage: %s input.po output.lmo\n", name);
-       exit(1);
-}
-
-static void print(const void *ptr, size_t size, size_t nmemb, FILE *stream)
-{
-       if( fwrite(ptr, size, nmemb, stream) == 0 )
-               die("Failed to write stdout");
-}
-
-static int extract_string(const char *src, char *dest, int len)
-{
-       int pos = 0;
-       int esc = 0;
-       int off = -1;
-
-       for( pos = 0; (pos < strlen(src)) && (pos < len); pos++ )
-       {
-               if( (off == -1) && (src[pos] == '"') )
-               {
-                       off = pos + 1;
-               }
-               else if( off >= 0 )
-               {
-                       if( esc == 1 )
-                       {
-                               dest[pos-off] = src[pos];
-                               esc = 0;
-                       }
-                       else if( src[pos] == '\\' )
-                       {
-                               off++;
-                               esc = 1;
-                       }
-                       else if( src[pos] != '"' )
-                       {
-                               dest[pos-off] = src[pos];
-                       }
-                       else
-                       {
-                               dest[pos-off] = '\0';
-                               break;
-                       }
-               }
-       }
-
-       return (off > -1) ? strlen(dest) : -1;
-}
-
-int main(int argc, char *argv[])
-{
-       char line[4096];
-       char key[4096];
-       char val[4096];
-       char tmp[4096];
-       int state  = 0;
-       int offset = 0;
-       int length = 0;
-       uint32_t key_id, val_id;
-
-       FILE *in;
-       FILE *out;
-
-       lmo_entry_t *head  = NULL;
-       lmo_entry_t *entry = NULL;
-
-       if( (argc != 3) || ((in = fopen(argv[1], "r")) == NULL) || ((out = fopen(argv[2], "w")) == NULL) )
-               usage(argv[0]);
-
-       memset(line, 0, sizeof(key));
-       memset(key, 0, sizeof(val));
-       memset(val, 0, sizeof(val));
-
-       while( (NULL != fgets(line, sizeof(line), in)) || (state >= 2 && feof(in)) )
-       {
-               if( state == 0 && strstr(line, "msgid \"") == line )
-               {
-                       switch(extract_string(line, key, sizeof(key)))
-                       {
-                               case -1:
-                                       die("Syntax error in msgid");
-                               case 0:
-                                       state = 1;
-                                       break;
-                               default:
-                                       state = 2;
-                       }
-               }
-               else if( state == 1 || state == 2 )
-               {
-                       if( strstr(line, "msgstr \"") == line || state == 2 )
-                       {
-                               switch(extract_string(line, val, sizeof(val)))
-                               {
-                                       case -1:
-                                               state = 4;
-                                               break;
-                                       default:
-                                               state = 3;
-                               }
-                       }
-                       else
-                       {
-                               switch(extract_string(line, tmp, sizeof(tmp)))
-                               {
-                                       case -1:
-                                               state = 2;
-                                               break;
-                                       default:
-                                               strcat(key, tmp);
-                               }
-                       }
-               }
-               else if( state == 3 )
-               {
-                       switch(extract_string(line, tmp, sizeof(tmp)))
-                       {
-                               case -1:
-                                       state = 4;
-                                       break;
-                               default:
-                                       strcat(val, tmp);
-                       }
-               }
-
-               if( state == 4 )
-               {
-                       if( strlen(key) > 0 && strlen(val) > 0 )
-                       {
-                               key_id = sfh_hash(key, strlen(key));
-                               val_id = sfh_hash(val, strlen(val));
-
-                               if( key_id != val_id )
-                               {
-                                       if( (entry = (lmo_entry_t *) malloc(sizeof(lmo_entry_t))) != NULL )
-                                       {
-                                               memset(entry, 0, sizeof(entry));
-                                               length = strlen(val) + ((4 - (strlen(val) % 4)) % 4);
-
-                                               entry->key_id = htonl(key_id);
-                                               entry->val_id = htonl(val_id);
-                                               entry->offset = htonl(offset);
-                                               entry->length = htonl(strlen(val));
-
-                                               print(val, length, 1, out);
-                                               offset += length;
-
-                                               entry->next = head;
-                                               head = entry;
-                                       }
-                                       else
-                                       {
-                                               die("Out of memory");
-                                       }
-                               }
-                       }
-
-                       state = 0;
-                       memset(key, 0, sizeof(key));
-                       memset(val, 0, sizeof(val));
-               }
-
-               memset(line, 0, sizeof(line));
-       }
-
-       entry = head;
-       while( entry != NULL )
-       {
-               print(&entry->key_id, sizeof(uint32_t), 1, out);
-               print(&entry->val_id, sizeof(uint32_t), 1, out);
-               print(&entry->offset, sizeof(uint32_t), 1, out);
-               print(&entry->length, sizeof(uint32_t), 1, out);
-               entry = entry->next;
-       }
-
-       if( offset > 0 )
-       {
-               offset = htonl(offset);
-               print(&offset, sizeof(uint32_t), 1, out);
-               fsync(fileno(out));
-               fclose(out);
-       }
-       else
-       {
-               fclose(out);
-               unlink(argv[2]);
-       }
-
-       fclose(in);
-       return(0);
-}
diff --git a/libs/lmo/standalone.mk b/libs/lmo/standalone.mk
deleted file mode 100644 (file)
index 66a0e5a..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-LUAC = luac
-LUAC_OPTIONS = -s
-LUA_TARGET ?= source
-
-LUA_MODULEDIR = /usr/local/share/lua/5.1
-LUA_LIBRARYDIR = /usr/local/lib/lua/5.1
-
-OS ?= $(shell uname)
-
-LUA_SHLIBS = $(shell pkg-config --silence-errors --libs lua5.1 || pkg-config --silence-errors --libs lua-5.1 || pkg-config --silence-errors --libs lua)
-LUA_LIBS = $(if $(LUA_SHLIBS),$(LUA_SHLIBS),$(firstword $(wildcard /usr/lib/liblua.a /usr/local/lib/liblua.a /opt/local/lib/liblua.a)))
-LUA_CFLAGS = $(shell pkg-config --silence-errors --cflags lua5.1 || pkg-config --silence-errors --cflags lua-5.1 || pkg-config --silence-errors --cflags lua)
-
-CC = gcc
-AR = ar
-RANLIB = ranlib
-CFLAGS = -O2
-FPIC = -fPIC
-EXTRA_CFLAGS = --std=gnu99
-WFLAGS = -Wall -Werror -pedantic
-CPPFLAGS =
-COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) $(WFLAGS)
-ifeq ($(OS),Darwin)
-  SHLIB_FLAGS = -bundle -undefined dynamic_lookup
-else
-  SHLIB_FLAGS = -shared
-endif
-LINK = $(CC) $(LDFLAGS)
-
-.PHONY: all build compile luacompile luasource clean luaclean
-
-all: build
-
-build: luabuild gccbuild
-
-luabuild: lua$(LUA_TARGET)
-
-gccbuild: compile
-compile:
-
-clean: luaclean
-
-luasource:
-       mkdir -p dist$(LUA_MODULEDIR)
-       cp -pR root/* dist 2>/dev/null || true
-       cp -pR lua/* dist$(LUA_MODULEDIR) 2>/dev/null || true
-       for i in $$(find dist -name .svn); do rm -rf $$i || true; done
-
-luastrip: luasource
-       for i in $$(find dist -type f -name '*.lua'); do perl -e 'undef $$/; open( F, "< $$ARGV[0]" ) || die $$!; $$src = <F>; close F; $$src =~ s/--\[\[.*?\]\](--)?//gs; $$src =~ s/^\s*--.*?\n//gm; open( F, "> $$ARGV[0]" ) || die $$!; print F $$src; close F' $$i; done
-
-luacompile: luasource
-       for i in $$(find dist -name *.lua -not -name debug.lua); do $(LUAC) $(LUAC_OPTIONS) -o $$i $$i; done
-
-luaclean:
-       rm -rf dist
index d9f9700c1caea2c0f96678c39432bae02b84ecb2..1d28a3a4ce8b1492e6681a59fce7d36161949f3e 100644 (file)
@@ -1,19 +1,28 @@
+ifneq (,$(wildcard ../../build/config.mk))
 include ../../build/config.mk
 include ../../build/module.mk
 include ../../build/gccconfig.mk
+else
+include standalone.mk
+endif
 
 TPL_LDFLAGS    =
 TPL_CFLAGS     =
 TPL_SO         = parser.so
+TPL_PO2LMO     = po2lmo
+TPL_PO2LMO_OBJ = src/po2lmo.o
+TPL_LMO_OBJ    = src/template_lmo.o
 TPL_COMMON_OBJ = src/template_parser.o src/template_utils.o
 TPL_LUALIB_OBJ = src/template_lualib.o
 
 %.o: %.c
        $(COMPILE) $(TPL_CFLAGS) $(LUA_CFLAGS) $(FPIC) -c -o $@ $<
 
-compile: build-clean $(TPL_COMMON_OBJ) $(TPL_LUALIB_OBJ)
+compile: build-clean $(TPL_COMMON_OBJ) $(TPL_LUALIB_OBJ) $(TPL_LMO_OBJ) $(TPL_PO2LMO_OBJ)
        $(LINK) $(SHLIB_FLAGS) $(TPL_LDFLAGS) -o src/$(TPL_SO) \
-               $(TPL_COMMON_OBJ) $(TPL_LUALIB_OBJ)
+               $(TPL_COMMON_OBJ) $(TPL_LMO_OBJ) $(TPL_LUALIB_OBJ)
+       $(LINK) -o src/$(TPL_PO2LMO) \
+               $(TPL_LMO_OBJ) $(TPL_PO2LMO_OBJ)
        mkdir -p dist$(LUCI_LIBRARYDIR)/template
        cp src/$(TPL_SO) dist$(LUCI_LIBRARYDIR)/template/$(TPL_SO)
 
@@ -24,3 +33,12 @@ clean: build-clean
 
 build-clean:
        rm -f src/*.o src/$(TPL_SO)
+
+host-compile: build-clean host-clean $(TPL_LMO_OBJ) $(TPL_PO2LMO_OBJ)
+       $(LINK) -o src/$(TPL_PO2LMO) $(TPL_LMO_OBJ) $(TPL_PO2LMO_OBJ)
+
+host-install: host-compile
+       cp src/$(TPL_PO2LMO) ../../build/$(TPL_PO2LMO)
+
+host-clean:
+       rm -f ../../build/$(TPL_PO2LMO)
index d8719c4b91fbc44e16a4b8aa5f47f635c4547eed..a30533bda7bb2c11cb7247f9ad7a36691f1ecb01 100644 (file)
@@ -1097,216 +1097,243 @@ function cbi_tag_last(container)
        }
 }
 
-if( ! String.serialize )
-       String.serialize = function(o)
+String.prototype.serialize = function()
+{
+       var o = this;
+       switch(typeof(o))
        {
-               switch(typeof(o))
-               {
-                       case 'object':
-                               // null
-                               if( o == null )
-                               {
-                                       return 'null';
-                               }
+               case 'object':
+                       // null
+                       if( o == null )
+                       {
+                               return 'null';
+                       }
 
-                               // array
-                               else if( o.length )
-                               {
-                                       var i, s = '';
+                       // array
+                       else if( o.length )
+                       {
+                               var i, s = '';
 
-                                       for( var i = 0; i < o.length; i++ )
-                                               s += (s ? ', ' : '') + String.serialize(o[i]);
+                               for( var i = 0; i < o.length; i++ )
+                                       s += (s ? ', ' : '') + String.serialize(o[i]);
 
-                                       return '[ ' + s + ' ]';
-                               }
+                               return '[ ' + s + ' ]';
+                       }
 
-                               // object
-                               else
-                               {
-                                       var k, s = '';
+                       // object
+                       else
+                       {
+                               var k, s = '';
 
-                                       for( k in o )
-                                               s += (s ? ', ' : '') + k + ': ' + String.serialize(o[k]);
+                               for( k in o )
+                                       s += (s ? ', ' : '') + k + ': ' + String.serialize(o[k]);
 
-                                       return '{ ' + s + ' }';
-                               }
+                               return '{ ' + s + ' }';
+                       }
 
-                               break;
+                       break;
 
-                       case 'string':
-                               // complex string
-                               if( o.match(/[^a-zA-Z0-9_,.: -]/) )
-                                       return 'decodeURIComponent("' + encodeURIComponent(o) + '")';
+               case 'string':
+                       // complex string
+                       if( o.match(/[^a-zA-Z0-9_,.: -]/) )
+                               return 'decodeURIComponent("' + encodeURIComponent(o) + '")';
 
-                               // simple string
-                               else
-                                       return '"' + o + '"';
+                       // simple string
+                       else
+                               return '"' + o + '"';
 
-                               break;
+                       break;
 
-                       default:
-                               return o.toString();
-               }
+               default:
+                       return o.toString();
        }
+}
 
+String.prototype.format = function()
+{
+       if (!RegExp)
+               return;
 
-if( ! String.format )
-       String.format = function()
-       {
-               if (!arguments || arguments.length < 1 || !RegExp)
-                       return;
-
-               var html_esc = [/&/g, '&#38;', /"/g, '&#34;', /'/g, '&#39;', /</g, '&#60;', />/g, '&#62;'];
-               var quot_esc = [/"/g, '&#34;', /'/g, '&#39;'];
+       var html_esc = [/&/g, '&#38;', /"/g, '&#34;', /'/g, '&#39;', /</g, '&#60;', />/g, '&#62;'];
+       var quot_esc = [/"/g, '&#34;', /'/g, '&#39;'];
 
-               function esc(s, r) {
-                       for( var i = 0; i < r.length; i += 2 )
-                               s = s.replace(r[i], r[i+1]);
-                       return s;
-               }
+       function esc(s, r) {
+               for( var i = 0; i < r.length; i += 2 )
+                       s = s.replace(r[i], r[i+1]);
+               return s;
+       }
 
-               var str = arguments[0];
-               var out = '';
-               var re = /^(([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X|q|h|j|t|m))/;
-               var a = b = [], numSubstitutions = 0, numMatches = 0;
+       var str = this;
+       var out = '';
+       var re = /^(([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X|q|h|j|t|m))/;
+       var a = b = [], numSubstitutions = 0, numMatches = 0;
 
-               while( a = re.exec(str) )
-               {
-                       var m = a[1];
-                       var leftpart = a[2], pPad = a[3], pJustify = a[4], pMinLength = a[5];
-                       var pPrecision = a[6], pType = a[7];
+       while( a = re.exec(str) )
+       {
+               var m = a[1];
+               var leftpart = a[2], pPad = a[3], pJustify = a[4], pMinLength = a[5];
+               var pPrecision = a[6], pType = a[7];
 
-                       numMatches++;
+               numMatches++;
 
-                       if (pType == '%')
-                       {
-                               subst = '%';
-                       }
-                       else
+               if (pType == '%')
+               {
+                       subst = '%';
+               }
+               else
+               {
+                       if (numSubstitutions < arguments.length)
                        {
-                               if (numSubstitutions++ < arguments.length)
-                               {
-                                       var param = arguments[numSubstitutions];
+                               var param = arguments[numSubstitutions++];
 
-                                       var pad = '';
-                                       if (pPad && pPad.substr(0,1) == "'")
-                                               pad = leftpart.substr(1,1);
-                                       else if (pPad)
-                                               pad = pPad;
+                               var pad = '';
+                               if (pPad && pPad.substr(0,1) == "'")
+                                       pad = leftpart.substr(1,1);
+                               else if (pPad)
+                                       pad = pPad;
 
-                                       var justifyRight = true;
-                                       if (pJustify && pJustify === "-")
-                                               justifyRight = false;
+                               var justifyRight = true;
+                               if (pJustify && pJustify === "-")
+                                       justifyRight = false;
 
-                                       var minLength = -1;
-                                       if (pMinLength)
-                                               minLength = parseInt(pMinLength);
+                               var minLength = -1;
+                               if (pMinLength)
+                                       minLength = parseInt(pMinLength);
 
-                                       var precision = -1;
-                                       if (pPrecision && pType == 'f')
-                                               precision = parseInt(pPrecision.substring(1));
+                               var precision = -1;
+                               if (pPrecision && pType == 'f')
+                                       precision = parseInt(pPrecision.substring(1));
 
-                                       var subst = param;
+                               var subst = param;
 
-                                       switch(pType)
-                                       {
-                                               case 'b':
-                                                       subst = (parseInt(param) || 0).toString(2);
-                                                       break;
-
-                                               case 'c':
-                                                       subst = String.fromCharCode(parseInt(param) || 0);
-                                                       break;
-
-                                               case 'd':
-                                                       subst = (parseInt(param) || 0);
-                                                       break;
-
-                                               case 'u':
-                                                       subst = Math.abs(parseInt(param) || 0);
-                                                       break;
-
-                                               case 'f':
-                                                       subst = (precision > -1)
-                                                               ? ((parseFloat(param) || 0.0)).toFixed(precision)
-                                                               : (parseFloat(param) || 0.0);
-                                                       break;
-
-                                               case 'o':
-                                                       subst = (parseInt(param) || 0).toString(8);
-                                                       break;
-
-                                               case 's':
-                                                       subst = param;
-                                                       break;
-
-                                               case 'x':
-                                                       subst = ('' + (parseInt(param) || 0).toString(16)).toLowerCase();
-                                                       break;
-
-                                               case 'X':
-                                                       subst = ('' + (parseInt(param) || 0).toString(16)).toUpperCase();
-                                                       break;
-
-                                               case 'h':
-                                                       subst = esc(param, html_esc);
-                                                       break;
-
-                                               case 'q':
-                                                       subst = esc(param, quot_esc);
-                                                       break;
-
-                                               case 'j':
-                                                       subst = String.serialize(param);
-                                                       break;
-
-                                               case 't':
-                                                       var td = 0;
-                                                       var th = 0;
-                                                       var tm = 0;
-                                                       var ts = (param || 0);
-
-                                                       if (ts > 60) {
-                                                               tm = Math.floor(ts / 60);
-                                                               ts = (ts % 60);
-                                                       }
-
-                                                       if (tm > 60) {
-                                                               th = Math.floor(tm / 60);
-                                                               tm = (tm % 60);
-                                                       }
-
-                                                       if (th > 24) {
-                                                               td = Math.floor(th / 24);
-                                                               th = (th % 24);
-                                                       }
-
-                                                       subst = (td > 0)
-                                                               ? String.format('%dd %dh %dm %ds', td, th, tm, ts)
-                                                               : String.format('%dh %dm %ds', th, tm, ts);
-
-                                                       break;
-
-                                               case 'm':
-                                                       var mf = pMinLength ? parseInt(pMinLength) : 1000;
-                                                       var pr = pPrecision ? Math.floor(10*parseFloat('0'+pPrecision)) : 2;
-
-                                                       var i = 0;
-                                                       var val = parseFloat(param || 0);
-                                                       var units = [ '', 'K', 'M', 'G', 'T', 'P', 'E' ];
-
-                                                       for (i = 0; (i < units.length) && (val > mf); i++)
-                                                               val /= mf;
-
-                                                       subst = val.toFixed(pr) + ' ' + units[i];
-                                                       break;
-                                       }
+                               switch(pType)
+                               {
+                                       case 'b':
+                                               subst = (parseInt(param) || 0).toString(2);
+                                               break;
+
+                                       case 'c':
+                                               subst = String.fromCharCode(parseInt(param) || 0);
+                                               break;
+
+                                       case 'd':
+                                               subst = (parseInt(param) || 0);
+                                               break;
+
+                                       case 'u':
+                                               subst = Math.abs(parseInt(param) || 0);
+                                               break;
+
+                                       case 'f':
+                                               subst = (precision > -1)
+                                                       ? ((parseFloat(param) || 0.0)).toFixed(precision)
+                                                       : (parseFloat(param) || 0.0);
+                                               break;
+
+                                       case 'o':
+                                               subst = (parseInt(param) || 0).toString(8);
+                                               break;
+
+                                       case 's':
+                                               subst = param;
+                                               break;
+
+                                       case 'x':
+                                               subst = ('' + (parseInt(param) || 0).toString(16)).toLowerCase();
+                                               break;
+
+                                       case 'X':
+                                               subst = ('' + (parseInt(param) || 0).toString(16)).toUpperCase();
+                                               break;
+
+                                       case 'h':
+                                               subst = esc(param, html_esc);
+                                               break;
+
+                                       case 'q':
+                                               subst = esc(param, quot_esc);
+                                               break;
+
+                                       case 'j':
+                                               subst = String.serialize(param);
+                                               break;
+
+                                       case 't':
+                                               var td = 0;
+                                               var th = 0;
+                                               var tm = 0;
+                                               var ts = (param || 0);
+
+                                               if (ts > 60) {
+                                                       tm = Math.floor(ts / 60);
+                                                       ts = (ts % 60);
+                                               }
+
+                                               if (tm > 60) {
+                                                       th = Math.floor(tm / 60);
+                                                       tm = (tm % 60);
+                                               }
+
+                                               if (th > 24) {
+                                                       td = Math.floor(th / 24);
+                                                       th = (th % 24);
+                                               }
+
+                                               subst = (td > 0)
+                                                       ? String.format('%dd %dh %dm %ds', td, th, tm, ts)
+                                                       : String.format('%dh %dm %ds', th, tm, ts);
+
+                                               break;
+
+                                       case 'm':
+                                               var mf = pMinLength ? parseInt(pMinLength) : 1000;
+                                               var pr = pPrecision ? Math.floor(10*parseFloat('0'+pPrecision)) : 2;
+
+                                               var i = 0;
+                                               var val = parseFloat(param || 0);
+                                               var units = [ '', 'K', 'M', 'G', 'T', 'P', 'E' ];
+
+                                               for (i = 0; (i < units.length) && (val > mf); i++)
+                                                       val /= mf;
+
+                                               subst = val.toFixed(pr) + ' ' + units[i];
+                                               break;
                                }
                        }
-
-                       out += leftpart + subst;
-                       str = str.substr(m.length);
                }
 
-               return out + str;
+               out += leftpart + subst;
+               str = str.substr(m.length);
        }
+
+       return out + str;
+}
+
+String.prototype.nobr = function()
+{
+       return this.replace(/[\s\n]+/g, '&#160;');
+}
+
+String.serialize = function()
+{
+       var a = [ ];
+       for (var i = 1; i < arguments.length; i++)
+               a.push(arguments[i]);
+       return ''.serialize.apply(arguments[0], a);
+}
+
+String.format = function()
+{
+       var a = [ ];
+       for (var i = 1; i < arguments.length; i++)
+               a.push(arguments[i]);
+       return ''.format.apply(arguments[0], a);
+}
+
+String.nobr = function()
+{
+       var a = [ ];
+       for (var i = 1; i < arguments.length; i++)
+               a.push(arguments[i]);
+       return ''.nobr.apply(arguments[0], a);
+}
index ef45a89563e38a1921c765407da412063bb46295..ae570b1556bbaaf2ee43be598fc9899673def048 100644 (file)
@@ -74,8 +74,6 @@ function load(cbimap, ...)
 
        assert(func, err)
 
-       luci.i18n.loadc("base")
-
        local env = {
                translate=i18n.translate,
                translatef=i18n.translatef,
index 18112507ce3565b6e7643ab8060fa61636282203..c53307a5a1eb4e2b3d72fabc6f2e0379c833eabd 100644 (file)
@@ -4,9 +4,6 @@ LuCI - HTTP-Interaction
 Description:
 HTTP-Header manipulator and form variable preprocessor
 
-FileId:
-$Id$
-
 License:
 Copyright 2008 Steven Barth <steven@midlink.org>
 
@@ -334,12 +331,14 @@ function write_json(x)
                end
        elseif type(x) == "number" or type(x) == "boolean" then
                if (x ~= x) then
-                       -- NaN is the only value that doesn't equal to itself.   
+                       -- NaN is the only value that doesn't equal to itself.
                        write("Number.NaN")
                else
                        write(tostring(x))
                end
        else
-               write("%q" % tostring(x))
+               write('"%s"' % tostring(x):gsub('["%z\1-\31]', function(c)
+                       return '\\u%04x' % c:byte(1)
+               end))
        end
 end
index 816d90310af692298b830b6cbbd8be47ebc1eaae..545a8aed939bfd13880b4adaeeb921a28660f73a 100644 (file)
@@ -27,7 +27,8 @@ limitations under the License.
 --- LuCI translation library.
 module("luci.i18n", package.seeall)
 require("luci.util")
-require("lmo")
+
+local tparser = require "luci.template.parser"
 
 table   = {}
 i18ndir = luci.util.libpath() .. "/i18n/"
@@ -37,7 +38,6 @@ default = "en"
 
 --- Clear the translation table.
 function clear()
-       table = {}
 end
 
 --- Load a translation and copy its data into the translation table.
@@ -46,33 +46,6 @@ end
 -- @param force        Force reload even if already loaded (optional)
 -- @return             Success status
 function load(file, lang, force)
-       lang = lang and lang:gsub("_", "-") or ""
-       if force or not loaded[lang] or not loaded[lang][file] then
-               local f = lmo.open(i18ndir .. file .. "." .. lang .. ".lmo")
-               if f then
-                       if not table[lang] then
-                               table[lang] = { f }
-                               setmetatable(table[lang], {
-                                       __index = function(tbl, key)
-                                               for i = 1, #tbl do
-                                                       local s = rawget(tbl, i):lookup(key)
-                                                       if s then return s end
-                                               end
-                                       end
-                               })
-                       else
-                               table[lang][#table[lang]+1] = f
-                       end
-
-                       loaded[lang] = loaded[lang] or {}
-                       loaded[lang][file] = true
-                       return true
-               else
-                       return false
-               end
-       else
-               return true
-       end
 end
 
 --- Load a translation file using the default translation language.
@@ -80,9 +53,6 @@ end
 -- @param file Language file
 -- @param force        Force reload even if already loaded (optional)
 function loadc(file, force)
-       load(file, default, force)
-       if context.parent then load(file, context.parent, force) end
-       return load(file, context.lang, force)
 end
 
 --- Set the context default translation language.
@@ -90,16 +60,20 @@ end
 function setlanguage(lang)
        context.lang   = lang:gsub("_", "-")
        context.parent = (context.lang:match("^([a-z][a-z])_"))
+       if not tparser.load_catalog(context.lang, i18ndir) then
+               if context.parent then
+                       tparser.load_catalog(context.parent, i18ndir)
+                       return context.parent
+               end
+       end
+       return context.lang
 end
 
 --- Return the translated value for a specific translation key.
 -- @param key  Default translation text
 -- @return             Translated string
 function translate(key)
-       return (table[context.lang] and table[context.lang][key])
-               or (table[context.parent] and table[context.parent][key])
-               or (table[default] and table[default][key])
-               or key
+       return tparser.translate(key) or key
 end
 
 --- Return the translated value for a specific translation key and use it as sprintf pattern.
index 962c2ea8863809ebe688006d3f451880e73e8ada..72127d1df1839b05ac4a0db54d1b9ee229ae7ec7 100644 (file)
@@ -79,9 +79,8 @@ function Template.__init__(self, name)
                -- If we have no valid template throw error, otherwise cache the template
                if not self.template then
                        error("Failed to load template '" .. name .. "'.\n" ..
-                             "Error while parsing template '" .. sourcefile .. "'.\n" ..
-                             "A syntax error occured near '" ..
-                             (err or "(nil)"):gsub("\t", "\\t"):gsub("\n", "\\n") .. "'.")
+                             "Error while parsing template '" .. sourcefile .. "':\n" ..
+                             (err or "Unknown syntax error"))
                else
                        self.cache[name] = self.template
                end
index 78df97e9381bdb53f35d5a16fa971f7b03de0f23..1814c9393b8cba50bbc0732dae8ed9e636789f10 100644 (file)
@@ -38,6 +38,6 @@
        //]]></script>
 
        <img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" />
-       <span id="cbi-apply-<%=id%>-status"><%:Waiting for router...%></span>
+       <span id="cbi-apply-<%=id%>-status"><%:Waiting for changes to be applied...%></span>
 </fieldset>
 <%-    end) %>
index ef6776114bd1a0ea090660a620a16950ff4a3056..2c34028e58aae1aaafdfa19a807551f61af7c77a 100644 (file)
@@ -9,11 +9,15 @@
                <% if flow.skip then %>
                        <input class="cbi-button cbi-button-skip" type="submit" name="cbi.skip" value="<%:Skip%>" />
                <% end %>
-               <% if not autoapply then %>
+               <% if not autoapply and not flow.hideapplybtn then %>
                        <input class="cbi-button cbi-button-apply" type="submit" name="cbi.apply" value="<%:Save & Apply%>" />
                <% end %>
-               <input class="cbi-button cbi-button-save" type="submit" value="<%:Save%>" />
-               <input class="cbi-button cbi-button-reset" type="reset" value="<%:Reset%>" />
+               <% if not flow.hidesavebtn then %>
+                       <input class="cbi-button cbi-button-save" type="submit" value="<%:Save%>" />
+               <% end %>
+               <% if not flow.hideresetbtn then %>
+                       <input class="cbi-button cbi-button-reset" type="reset" value="<%:Reset%>" />
+               <% end %>
 
                <script type="text/javascript">cbi_d_update();</script>
        </div>
diff --git a/libs/web/src/po2lmo.c b/libs/web/src/po2lmo.c
new file mode 100644 (file)
index 0000000..fb607a4
--- /dev/null
@@ -0,0 +1,242 @@
+/*
+ * lmo - Lua Machine Objects - PO to LMO conversion tool
+ *
+ *   Copyright (C) 2009-2012 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
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#include "template_lmo.h"
+
+static void die(const char *msg)
+{
+       fprintf(stderr, "Error: %s\n", msg);
+       exit(1);
+}
+
+static void usage(const char *name)
+{
+       fprintf(stderr, "Usage: %s input.po output.lmo\n", name);
+       exit(1);
+}
+
+static void print(const void *ptr, size_t size, size_t nmemb, FILE *stream)
+{
+       if( fwrite(ptr, size, nmemb, stream) == 0 )
+               die("Failed to write stdout");
+}
+
+static int extract_string(const char *src, char *dest, int len)
+{
+       int pos = 0;
+       int esc = 0;
+       int off = -1;
+
+       for( pos = 0; (pos < strlen(src)) && (pos < len); pos++ )
+       {
+               if( (off == -1) && (src[pos] == '"') )
+               {
+                       off = pos + 1;
+               }
+               else if( off >= 0 )
+               {
+                       if( esc == 1 )
+                       {
+                               switch (src[pos])
+                               {
+                               case '"':
+                               case '\\':
+                                       off++;
+                                       break;
+                               }
+                               dest[pos-off] = src[pos];
+                               esc = 0;
+                       }
+                       else if( src[pos] == '\\' )
+                       {
+                               dest[pos-off] = src[pos];
+                               esc = 1;
+                       }
+                       else if( src[pos] != '"' )
+                       {
+                               dest[pos-off] = src[pos];
+                       }
+                       else
+                       {
+                               dest[pos-off] = '\0';
+                               break;
+                       }
+               }
+       }
+
+       return (off > -1) ? strlen(dest) : -1;
+}
+
+static int cmp_index(const void *a, const void *b)
+{
+       uint32_t x = ntohl(((const lmo_entry_t *)a)->key_id);
+       uint32_t y = ntohl(((const lmo_entry_t *)b)->key_id);
+
+       if (x < y)
+               return -1;
+       else if (x > y)
+               return 1;
+
+       return 0;
+}
+
+static void print_index(void *array, int n, FILE *out)
+{
+       lmo_entry_t *e;
+
+       qsort(array, n, sizeof(*e), cmp_index);
+
+       for (e = array; n > 0; n--, e++)
+       {
+               print(&e->key_id, sizeof(uint32_t), 1, out);
+               print(&e->val_id, sizeof(uint32_t), 1, out);
+               print(&e->offset, sizeof(uint32_t), 1, out);
+               print(&e->length, sizeof(uint32_t), 1, out);
+       }
+}
+
+int main(int argc, char *argv[])
+{
+       char line[4096];
+       char key[4096];
+       char val[4096];
+       char tmp[4096];
+       int state  = 0;
+       int offset = 0;
+       int length = 0;
+       int n_entries = 0;
+       void *array = NULL;
+       lmo_entry_t *entry = NULL;
+       uint32_t key_id, val_id;
+
+       FILE *in;
+       FILE *out;
+
+       if( (argc != 3) || ((in = fopen(argv[1], "r")) == NULL) || ((out = fopen(argv[2], "w")) == NULL) )
+               usage(argv[0]);
+
+       memset(line, 0, sizeof(key));
+       memset(key, 0, sizeof(val));
+       memset(val, 0, sizeof(val));
+
+       while( (NULL != fgets(line, sizeof(line), in)) || (state >= 2 && feof(in)) )
+       {
+               if( state == 0 && strstr(line, "msgid \"") == line )
+               {
+                       switch(extract_string(line, key, sizeof(key)))
+                       {
+                               case -1:
+                                       die("Syntax error in msgid");
+                               case 0:
+                                       state = 1;
+                                       break;
+                               default:
+                                       state = 2;
+                       }
+               }
+               else if( state == 1 || state == 2 )
+               {
+                       if( strstr(line, "msgstr \"") == line || state == 2 )
+                       {
+                               switch(extract_string(line, val, sizeof(val)))
+                               {
+                                       case -1:
+                                               state = 4;
+                                               break;
+                                       default:
+                                               state = 3;
+                               }
+                       }
+                       else
+                       {
+                               switch(extract_string(line, tmp, sizeof(tmp)))
+                               {
+                                       case -1:
+                                               state = 2;
+                                               break;
+                                       default:
+                                               strcat(key, tmp);
+                               }
+                       }
+               }
+               else if( state == 3 )
+               {
+                       switch(extract_string(line, tmp, sizeof(tmp)))
+                       {
+                               case -1:
+                                       state = 4;
+                                       break;
+                               default:
+                                       strcat(val, tmp);
+                       }
+               }
+
+               if( state == 4 )
+               {
+                       if( strlen(key) > 0 && strlen(val) > 0 )
+                       {
+                               key_id = sfh_hash(key, strlen(key));
+                               val_id = sfh_hash(val, strlen(val));
+
+                               if( key_id != val_id )
+                               {
+                                       n_entries++;
+                                       array = realloc(array, n_entries * sizeof(lmo_entry_t));
+                                       entry = (lmo_entry_t *)array + n_entries - 1;
+
+                                       if (!array)
+                                               die("Out of memory");
+
+                                       entry->key_id = htonl(key_id);
+                                       entry->val_id = htonl(val_id);
+                                       entry->offset = htonl(offset);
+                                       entry->length = htonl(strlen(val));
+
+                                       length = strlen(val) + ((4 - (strlen(val) % 4)) % 4);
+
+                                       print(val, length, 1, out);
+                                       offset += length;
+                               }
+                       }
+
+                       state = 0;
+                       memset(key, 0, sizeof(key));
+                       memset(val, 0, sizeof(val));
+               }
+
+               memset(line, 0, sizeof(line));
+       }
+
+       print_index(array, n_entries, out);
+
+       if( offset > 0 )
+       {
+               offset = htonl(offset);
+               print(&offset, sizeof(uint32_t), 1, out);
+               fsync(fileno(out));
+               fclose(out);
+       }
+       else
+       {
+               fclose(out);
+               unlink(argv[2]);
+       }
+
+       fclose(in);
+       return(0);
+}
diff --git a/libs/web/src/template_lmo.c b/libs/web/src/template_lmo.c
new file mode 100644 (file)
index 0000000..7fcd2cd
--- /dev/null
@@ -0,0 +1,325 @@
+/*
+ * lmo - Lua Machine Objects - Base functions
+ *
+ *   Copyright (C) 2009-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
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#include "template_lmo.h"
+
+/*
+ * Hash function from http://www.azillionmonkeys.com/qed/hash.html
+ * Copyright (C) 2004-2008 by Paul Hsieh
+ */
+
+uint32_t sfh_hash(const char *data, int len)
+{
+       uint32_t hash = len, tmp;
+       int rem;
+
+       if (len <= 0 || data == NULL) return 0;
+
+       rem = len & 3;
+       len >>= 2;
+
+       /* Main loop */
+       for (;len > 0; len--) {
+               hash  += sfh_get16(data);
+               tmp    = (sfh_get16(data+2) << 11) ^ hash;
+               hash   = (hash << 16) ^ tmp;
+               data  += 2*sizeof(uint16_t);
+               hash  += hash >> 11;
+       }
+
+       /* Handle end cases */
+       switch (rem) {
+               case 3: hash += sfh_get16(data);
+                       hash ^= hash << 16;
+                       hash ^= data[sizeof(uint16_t)] << 18;
+                       hash += hash >> 11;
+                       break;
+               case 2: hash += sfh_get16(data);
+                       hash ^= hash << 11;
+                       hash += hash >> 17;
+                       break;
+               case 1: hash += *data;
+                       hash ^= hash << 10;
+                       hash += hash >> 1;
+       }
+
+       /* Force "avalanching" of final 127 bits */
+       hash ^= hash << 3;
+       hash += hash >> 5;
+       hash ^= hash << 4;
+       hash += hash >> 17;
+       hash ^= hash << 25;
+       hash += hash >> 6;
+
+       return hash;
+}
+
+uint32_t lmo_canon_hash(const char *str, int len)
+{
+       char res[4096];
+       char *ptr, prev;
+       int off;
+
+       if (!str || len >= sizeof(res))
+               return 0;
+
+       for (prev = ' ', ptr = res, off = 0; off < len; prev = *str, off++, str++)
+       {
+               if (isspace(*str))
+               {
+                       if (!isspace(prev))
+                               *ptr++ = ' ';
+               }
+               else
+               {
+                       *ptr++ = *str;
+               }
+       }
+
+       if ((ptr > res) && isspace(*(ptr-1)))
+               ptr--;
+
+       return sfh_hash(res, ptr - res);
+}
+
+lmo_archive_t * lmo_open(const char *file)
+{
+       int in = -1;
+       uint32_t idx_offset = 0;
+       struct stat s;
+
+       lmo_archive_t *ar = NULL;
+
+       if (stat(file, &s) == -1)
+               goto err;
+
+       if ((in = open(file, O_RDONLY)) == -1)
+               goto err;
+
+       if ((ar = (lmo_archive_t *)malloc(sizeof(*ar))) != NULL)
+       {
+               memset(ar, 0, sizeof(*ar));
+
+               ar->fd     = in;
+               ar->size = s.st_size;
+
+               fcntl(ar->fd, F_SETFD, fcntl(ar->fd, F_GETFD) | FD_CLOEXEC);
+
+               if ((ar->mmap = mmap(NULL, ar->size, PROT_READ, MAP_SHARED, ar->fd, 0)) == MAP_FAILED)
+                       goto err;
+
+               idx_offset = *((const uint32_t *)
+                                          (ar->mmap + ar->size - sizeof(uint32_t)));
+
+               if (idx_offset >= ar->size)
+                       goto err;
+
+               ar->index  = (lmo_entry_t *)(ar->mmap + idx_offset);
+               ar->length = (ar->size - idx_offset - sizeof(uint32_t)) / sizeof(lmo_entry_t);
+               ar->end    = ar->mmap + ar->size;
+
+               return ar;
+       }
+
+err:
+       if (in > -1)
+               close(in);
+
+       if (ar != NULL)
+       {
+               if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED))
+                       munmap(ar->mmap, ar->size);
+
+               free(ar);
+       }
+
+       return NULL;
+}
+
+void lmo_close(lmo_archive_t *ar)
+{
+       if (ar != NULL)
+       {
+               if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED))
+                       munmap(ar->mmap, ar->size);
+
+               close(ar->fd);
+               free(ar);
+
+               ar = NULL;
+       }
+}
+
+
+lmo_catalog_t *_lmo_catalogs = NULL;
+lmo_catalog_t *_lmo_active_catalog = NULL;
+
+int lmo_load_catalog(const char *lang, const char *dir)
+{
+       DIR *dh = NULL;
+       char pattern[16];
+       char path[PATH_MAX];
+       struct dirent *de = NULL;
+
+       lmo_archive_t *ar = NULL;
+       lmo_catalog_t *cat = NULL;
+
+       if (!lmo_change_catalog(lang))
+               return 0;
+
+       if (!dir || !(dh = opendir(dir)))
+               goto err;
+
+       if (!(cat = malloc(sizeof(*cat))))
+               goto err;
+
+       memset(cat, 0, sizeof(*cat));
+
+       snprintf(cat->lang, sizeof(cat->lang), "%s", lang);
+       snprintf(pattern, sizeof(pattern), "*.%s.lmo", lang);
+
+       while ((de = readdir(dh)) != NULL)
+       {
+               if (!fnmatch(pattern, de->d_name, 0))
+               {
+                       snprintf(path, sizeof(path), "%s/%s", dir, de->d_name);
+                       ar = lmo_open(path);
+
+                       if (ar)
+                       {
+                               ar->next = cat->archives;
+                               cat->archives = ar;
+                       }
+               }
+       }
+
+       closedir(dh);
+
+       cat->next = _lmo_catalogs;
+       _lmo_catalogs = cat;
+
+       if (!_lmo_active_catalog)
+               _lmo_active_catalog = cat;
+
+       return 0;
+
+err:
+       if (dh) closedir(dh);
+       if (cat) free(cat);
+
+       return -1;
+}
+
+int lmo_change_catalog(const char *lang)
+{
+       lmo_catalog_t *cat;
+
+       for (cat = _lmo_catalogs; cat; cat = cat->next)
+       {
+               if (!strncmp(cat->lang, lang, sizeof(cat->lang)))
+               {
+                       _lmo_active_catalog = cat;
+                       return 0;
+               }
+       }
+
+       return -1;
+}
+
+static lmo_entry_t * lmo_find_entry(lmo_archive_t *ar, uint32_t hash)
+{
+       unsigned int m, l, r;
+
+       l = 0;
+       r = ar->length - 1;
+
+       while (1)
+       {
+               m = l + ((r - l) / 2);
+
+               if (r < l)
+                       break;
+
+               if (ar->index[m].key_id == hash)
+                       return &ar->index[m];
+
+               if (ar->index[m].key_id > hash)
+               {
+                       if (!m)
+                               break;
+
+                       r = m - 1;
+               }
+               else
+               {
+                       l = m + 1;
+               }
+       }
+
+       return NULL;
+}
+
+int lmo_translate(const char *key, int keylen, char **out, int *outlen)
+{
+       uint32_t hash;
+       lmo_entry_t *e;
+       lmo_archive_t *ar;
+
+       if (!key || !_lmo_active_catalog)
+               return -2;
+
+       hash = htonl(lmo_canon_hash(key, keylen));
+
+       for (ar = _lmo_active_catalog->archives; ar; ar = ar->next)
+       {
+               if ((e = lmo_find_entry(ar, hash)) != NULL)
+               {
+                       *out = ar->mmap + e->offset;
+                       *outlen = e->length;
+                       return 0;
+               }
+       }
+
+       return -1;
+}
+
+void lmo_close_catalog(const char *lang)
+{
+       lmo_archive_t *ar, *next;
+       lmo_catalog_t *cat, *prev;
+
+       for (prev = NULL, cat = _lmo_catalogs; cat; prev = cat, cat = cat->next)
+       {
+               if (!strncmp(cat->lang, lang, sizeof(cat->lang)))
+               {
+                       if (prev)
+                               prev->next = cat->next;
+                       else
+                               _lmo_catalogs = cat->next;
+
+                       for (ar = cat->archives; ar; ar = next)
+                       {
+                               next = ar->next;
+                               lmo_close(ar);
+                       }
+
+                       free(cat);
+                       break;
+               }
+       }
+}
diff --git a/libs/web/src/template_lmo.h b/libs/web/src/template_lmo.h
new file mode 100644 (file)
index 0000000..a40d758
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * lmo - Lua Machine Objects - General header
+ *
+ *   Copyright (C) 2009-2012 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
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#ifndef _TEMPLATE_LMO_H_
+#define _TEMPLATE_LMO_H_
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <errno.h>
+#include <fnmatch.h>
+#include <dirent.h>
+#include <ctype.h>
+
+#if (defined(__GNUC__) && defined(__i386__))
+#define sfh_get16(d) (*((const uint16_t *) (d)))
+#else
+#define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\
+                                          +(uint32_t)(((const uint8_t *)(d))[0]) )
+#endif
+
+
+struct lmo_entry {
+       uint32_t key_id;
+       uint32_t val_id;
+       uint32_t offset;
+       uint32_t length;
+} __attribute__((packed));
+
+typedef struct lmo_entry lmo_entry_t;
+
+
+struct lmo_archive {
+       int         fd;
+       int             length;
+       uint32_t    size;
+       lmo_entry_t *index;
+       char        *mmap;
+       char            *end;
+       struct lmo_archive *next;
+};
+
+typedef struct lmo_archive lmo_archive_t;
+
+
+struct lmo_catalog {
+       char lang[6];
+       struct lmo_archive *archives;
+       struct lmo_catalog *next;
+};
+
+typedef struct lmo_catalog lmo_catalog_t;
+
+
+uint32_t sfh_hash(const char *data, int len);
+uint32_t lmo_canon_hash(const char *data, int len);
+
+lmo_archive_t * lmo_open(const char *file);
+void lmo_close(lmo_archive_t *ar);
+
+
+extern lmo_catalog_t *_lmo_catalogs;
+extern lmo_catalog_t *_lmo_active_catalog;
+
+int lmo_load_catalog(const char *lang, const char *dir);
+int lmo_change_catalog(const char *lang);
+int lmo_translate(const char *key, int keylen, char **out, int *outlen);
+void lmo_close_catalog(const char *lang);
+
+#endif
index d3a5f89bbd5da892419c588e3f05bca0c06676e0..0d43641041091cdd68d82c0000da23e5fa40ac6d 100644 (file)
 int template_L_parse(lua_State *L)
 {
        const char *file = luaL_checkstring(L, 1);
-       struct template_parser parser;
-       int lua_status;
+       struct template_parser *parser = template_open(file);
+       int lua_status, rv;
 
-       if( (parser.fd = open(file, O_RDONLY)) > 0 )
+       if (!parser)
        {
-               parser.flags   = 0;
-               parser.bufsize = 0;
-               parser.state   = T_STATE_TEXT_NEXT;
+               lua_pushnil(L);
+               lua_pushinteger(L, errno);
+               lua_pushstring(L, strerror(errno));
+               return 3;
+       }
 
-               lua_status = lua_load(L, template_reader, &parser, file);
+       lua_status = lua_load(L, template_reader, parser, file);
 
-               (void) close(parser.fd);
+       if (lua_status == 0)
+               rv = 1;
+       else
+               rv = template_error(L, parser);
 
+       template_close(parser);
 
-               if( lua_status == 0 )
-               {
-                       return 1;
-               }
-               else
-               {
-                       lua_pushnil(L);
-                       lua_pushinteger(L, lua_status);
-                       lua_pushlstring(L, parser.out, parser.outsize);
-                       return 3;
-               }
+       return rv;
+}
+
+int template_L_utf8(lua_State *L)
+{
+       size_t len = 0;
+       const char *str = luaL_checklstring(L, 1, &len);
+       char *res = utf8(str, len);
+
+       if (res != NULL)
+       {
+               lua_pushstring(L, res);
+               free(res);
+
+               return 1;
        }
 
-       lua_pushnil(L);
-       lua_pushinteger(L, 255);
-       lua_pushstring(L, "No such file or directory");
-       return 3;
+       return 0;
 }
 
-int template_L_sanitize_utf8(lua_State *L)
+int template_L_pcdata(lua_State *L)
 {
        size_t len = 0;
        const char *str = luaL_checklstring(L, 1, &len);
-       char *res = sanitize_utf8(str, len);
+       char *res = pcdata(str, len);
 
        if (res != NULL)
        {
@@ -71,11 +78,11 @@ int template_L_sanitize_utf8(lua_State *L)
        return 0;
 }
 
-int template_L_sanitize_pcdata(lua_State *L)
+int template_L_striptags(lua_State *L)
 {
        size_t len = 0;
        const char *str = luaL_checklstring(L, 1, &len);
-       char *res = sanitize_pcdata(str, len);
+       char *res = striptags(str, len);
 
        if (res != NULL)
        {
@@ -88,12 +95,65 @@ int template_L_sanitize_pcdata(lua_State *L)
        return 0;
 }
 
+static int template_L_load_catalog(lua_State *L) {
+       const char *lang = luaL_optstring(L, 1, "en");
+       const char *dir  = luaL_optstring(L, 2, NULL);
+       lua_pushboolean(L, !lmo_load_catalog(lang, dir));
+       return 1;
+}
+
+static int template_L_close_catalog(lua_State *L) {
+       const char *lang = luaL_optstring(L, 1, "en");
+       lmo_close_catalog(lang);
+       return 0;
+}
+
+static int template_L_change_catalog(lua_State *L) {
+       const char *lang = luaL_optstring(L, 1, "en");
+       lua_pushboolean(L, !lmo_change_catalog(lang));
+       return 1;
+}
+
+static int template_L_translate(lua_State *L) {
+       size_t len;
+       char *tr;
+       int trlen;
+       const char *key = luaL_checklstring(L, 1, &len);
+
+       switch (lmo_translate(key, len, &tr, &trlen))
+       {
+               case 0:
+                       lua_pushlstring(L, tr, trlen);
+                       return 1;
+
+               case -1:
+                       return 0;
+       }
+
+       lua_pushnil(L);
+       lua_pushstring(L, "no catalog loaded");
+       return 2;
+}
+
+static int template_L_hash(lua_State *L) {
+       size_t len;
+       const char *key = luaL_checklstring(L, 1, &len);
+       lua_pushinteger(L, sfh_hash(key, len));
+       return 1;
+}
+
 
 /* module table */
 static const luaL_reg R[] = {
        { "parse",                              template_L_parse },
-       { "sanitize_utf8",              template_L_sanitize_utf8 },
-       { "sanitize_pcdata",    template_L_sanitize_pcdata },
+       { "utf8",                               template_L_utf8 },
+       { "pcdata",                             template_L_pcdata },
+       { "striptags",                  template_L_striptags },
+       { "load_catalog",               template_L_load_catalog },
+       { "close_catalog",              template_L_close_catalog },
+       { "change_catalog",             template_L_change_catalog },
+       { "translate",                  template_L_translate },
+       { "hash",                               template_L_hash },
        { NULL,                                 NULL }
 };
 
index d628b9dce06bce400386e93f31715144861b695c..1b659be126c008bff69cc65df6bb98d7326f09e8 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "template_parser.h"
 #include "template_utils.h"
+#include "template_lmo.h"
 
 #define TEMPLATE_LUALIB_META  "template.parser"
 
index a0a400bdf72558c8b5bfd06b8ca5426de678b79a..60544513151320d0df50c474abcbfc1040704d83 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * LuCI Template - Parser implementation
  *
- *   Copyright (C) 2009 Jo-Philipp Wich <xm@subsignal.org>
+ *   Copyright (C) 2009-2012 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.
  */
 
 #include "template_parser.h"
+#include "template_utils.h"
+#include "template_lmo.h"
 
 
 /* leading and trailing code for different types */
-const char * gen_code[7][2] = {
+const char *gen_code[9][2] = {
+       { NULL,                                 NULL                    },
        { "write(\"",                   "\")"                   },
        { NULL,                                 NULL                    },
        { "write(tostring(",    " or \"\"))"    },
        { "include(\"",                 "\")"                   },
-       { "write(pcdata(translate(\"",  "\")))" },
-       { "write(translate(\"", "\"))"                  },
-       { NULL,                                 " "                             }
+       { "write(\"",                   "\")"                   },
+       { "write(\"",                   "\")"                   },
+       { NULL,                                 " "                             },
+       { NULL,                                 NULL                    },
 };
 
 /* Simple strstr() like function that takes len arguments for both haystack and needle. */
@@ -59,407 +63,324 @@ static char *strfind(char *haystack, int hslen, const char *needle, int ndlen)
        return NULL;
 }
 
-/*
- * Inspect current read buffer and find the number of "vague" characters at the end
- * which could indicate an opening token. Returns the number of "vague" chars.
- * The last continuous sequence of whitespace, optionally followed by a "<" is
- * treated as "vague" because whitespace may be discarded if the upcoming opening
- * token indicates pre-whitespace-removal ("<%-"). A single remaining "<" char
- * can't be differentiated from an opening token ("<%"), so it's kept to be processed
- * in the next cycle.
- */
-static int stokscan(struct template_parser *data, int off, int no_whitespace)
+struct template_parser * template_open(const char *file)
 {
-       int i;
-       int skip = 0;
-       int tokoff = data->bufsize - 1;
+       struct stat s;
+       static struct template_parser *parser;
 
-       for( i = tokoff; i >= off; i-- )
-       {
-               if( data->buf[i] == T_TOK_START[0] )
-               {
-                       skip = tokoff - i + 1;
-                       tokoff = i - 1;
-                       break;
-               }
-       }
+       if (!(parser = malloc(sizeof(*parser))))
+               goto err;
+
+       memset(parser, 0, sizeof(*parser));
+       parser->fd = -1;
+       parser->file = file;
+
+       if (stat(file, &s))
+               goto err;
+
+       if ((parser->fd = open(file, O_RDONLY)) < 0)
+               goto err;
 
-       if( !no_whitespace )
+       parser->size = s.st_size;
+       parser->mmap = mmap(NULL, parser->size, PROT_READ, MAP_PRIVATE,
+                                               parser->fd, 0);
+
+       if (parser->mmap != MAP_FAILED)
        {
-               for( i = tokoff; i >= off; i-- )
-               {
-                       if( isspace(data->buf[i]) )
-                               skip++;
-                       else
-                               break;
-               }
+               parser->off = parser->mmap;
+               parser->cur_chunk.type = T_TYPE_INIT;
+               parser->cur_chunk.s    = parser->mmap;
+               parser->cur_chunk.e    = parser->mmap;
+
+               return parser;
        }
 
-       return skip;
+err:
+       template_close(parser);
+       return NULL;
 }
 
-/*
- * Similar to stokscan() but looking for closing token indicators.
- * Matches "-", optionally followed by a "%" char.
- */
-static int etokscan(struct template_parser *data)
+void template_close(struct template_parser *parser)
 {
-       int skip = 0;
+       if (!parser)
+               return;
+
+       if (parser->gc != NULL)
+               free(parser->gc);
 
-       if( (data->bufsize > 0) && (data->buf[data->bufsize-1] == T_TOK_END[0]) )
-               skip++;
+       if ((parser->mmap != NULL) && (parser->mmap != MAP_FAILED))
+               munmap(parser->mmap, parser->size);
 
-       if( (data->bufsize > skip) && (data->buf[data->bufsize-skip-1] == T_TOK_SKIPWS[0]) )
-               skip++;
+       if (parser->fd >= 0)
+               close(parser->fd);
 
-       return skip;
+       free(parser);
 }
 
-/*
- * Generate Lua expressions from the given raw code, write it into the
- * output buffer and set the lua_Reader specific size pointer.
- * Takes parser-state, lua_Reader's size pointer and generator flags
- * as parameter. The given flags indicate whether leading or trailing
- * code should be added. Returns a pointer to the output buffer.
- */
-static const char * generate_expression(struct template_parser *data, size_t *sz, int what)
+void template_text(struct template_parser *parser, const char *e)
 {
-       char tmp[T_OUTBUFSZ];
-       int i;
-       int size = 0;
-       int start = 0;
-       int whitespace = 0;
+       const char *s = parser->off;
 
-       memset(tmp, 0, T_OUTBUFSZ);
-
-       /* Inject leading expression code (if any) */
-       if( (what & T_GEN_START) && (gen_code[data->type][0] != NULL) )
+       if (s < (parser->mmap + parser->size))
        {
-               memcpy(tmp, gen_code[data->type][0], strlen(gen_code[data->type][0]));
-               size += strlen(gen_code[data->type][0]);
-       }
-
-       /* Parse source buffer */
-       for( i = 0; i < data->outsize; i++ )
-       {
-               /* Skip leading whitespace for non-raw and non-expr chunks */
-               if( !start && isspace(data->out[i]) && (data->type == T_TYPE_I18N ||
-           data->type == T_TYPE_I18N_RAW || data->type == T_TYPE_INCLUDE) )
-                       continue;
-               else if( !start )
-                       start = 1;
-
-               /* Found whitespace after i18n key */
-               if( data->type == T_TYPE_I18N || data->type == T_TYPE_I18N_RAW )
+               if (parser->strip_after)
                {
-                       /* Is initial whitespace, insert space */
-                       if( !whitespace && isspace(data->out[i]) )
-                       {
-                               tmp[size++] = ' ';
-                               whitespace = 1;
-                       }
-
-                       /* Suppress subsequent whitespace, escape special chars */
-                       else if( !isspace(data->out[i]) )
-                       {
-                               if( data->out[i] == '\\' || data->out[i] == '"' )
-                                       tmp[size++] = '\\';
-
-                               tmp[size++] = data->out[i];
-                               whitespace = 0;
-                       }
+                       while ((s <= e) && isspace(*s))
+                               s++;
                }
 
-               /* Escape quotes, backslashes and newlines for plain and include expressions */
-               else if( (data->type == T_TYPE_TEXT || data->type == T_TYPE_INCLUDE) &&
-                   (data->out[i] == '\\' || data->out[i] == '"' || data->out[i] == '\n' || data->out[i] == '\t') )
-               {
-                       tmp[size++] = '\\';
+               parser->cur_chunk.type = T_TYPE_TEXT;
+       }
+       else
+       {
+               parser->cur_chunk.type = T_TYPE_EOF;
+       }
 
-                       switch(data->out[i])
-                       {
-                               case '\n':
-                                       tmp[size++] = 'n';
-                                       break;
+       parser->cur_chunk.line = parser->line;
+       parser->cur_chunk.s = s;
+       parser->cur_chunk.e = e;
+}
 
-                               case '\t':
-                                       tmp[size++] = 't';
-                                       break;
+void template_code(struct template_parser *parser, const char *e)
+{
+       const char *s = parser->off;
 
-                               default:
-                                       tmp[size++] = data->out[i];
-                       }
-               }
+       parser->strip_before = 0;
+       parser->strip_after = 0;
 
-               /* Normal char */
-               else
-               {
-                       tmp[size++] = data->out[i];
-               }
+       if (*s == '-')
+       {
+               parser->strip_before = 1;
+               for (s++; (s <= e) && (*s == ' ' || *s == '\t'); s++);
        }
 
-       /* Inject trailing expression code (if any) */
-       if( (what & T_GEN_END) && (gen_code[data->type][1] != NULL) )
+       if (*(e-1) == '-')
        {
-               /* Strip trailing space for i18n expressions */
-               if( data->type == T_TYPE_I18N || data->type == T_TYPE_I18N_RAW )
-                       if( (size > 0) && (tmp[size-1] == ' ') )
-                               size--;
-
-               memcpy(&tmp[size], gen_code[data->type][1], strlen(gen_code[data->type][1]));
-               size += strlen(gen_code[data->type][1]);
+               parser->strip_after = 1;
+               for (e--; (e >= s) && (*e == ' ' || *e == '\t'); e--);
        }
 
-       *sz = data->outsize = size;
-       memset(data->out, 0, T_OUTBUFSZ);
-       memcpy(data->out, tmp, size);
+       switch (*s)
+       {
+               /* comment */
+               case '#':
+                       s++;
+                       parser->cur_chunk.type = T_TYPE_COMMENT;
+                       break;
 
-       //printf("<<<%i|%i|%i|%s>>>\n", what, data->type, *sz, data->out);
+               /* include */
+               case '+':
+                       s++;
+                       parser->cur_chunk.type = T_TYPE_INCLUDE;
+                       break;
 
-       return data->out;
-}
+               /* translate */
+               case ':':
+                       s++;
+                       parser->cur_chunk.type = T_TYPE_I18N;
+                       break;
 
-/*
- * Move the number of bytes specified in data->bufsize from the
- * given source pointer to the beginning of the read buffer.
- */
-static void bufmove(struct template_parser *data, const char *src)
-{
-       if( data->bufsize > 0 )
-               memmove(data->buf, src, data->bufsize);
-       else if( data->bufsize < 0 )
-               data->bufsize = 0;
+               /* translate raw */
+               case '_':
+                       s++;
+                       parser->cur_chunk.type = T_TYPE_I18N_RAW;
+                       break;
 
-       data->buf[data->bufsize] = 0;
+               /* expr */
+               case '=':
+                       s++;
+                       parser->cur_chunk.type = T_TYPE_EXPR;
+                       break;
+
+               /* code */
+               default:
+                       parser->cur_chunk.type = T_TYPE_CODE;
+                       break;
+       }
+
+       parser->cur_chunk.line = parser->line;
+       parser->cur_chunk.s = s;
+       parser->cur_chunk.e = e;
 }
 
-/*
- * Move the given amount of bytes from the given source pointer
- * to the output buffer and set data->outputsize.
- */
-static void bufout(struct template_parser *data, const char *src, int len)
+static const char *
+template_format_chunk(struct template_parser *parser, size_t *sz)
 {
-       if( len >= 0 )
-       {
-               memset(data->out, 0, T_OUTBUFSZ);
-               memcpy(data->out, src, len);
-               data->outsize = len;
-       }
-       else
+       const char *s, *p;
+       const char *head, *tail;
+       struct template_chunk *c = &parser->prv_chunk;
+       struct template_buffer *buf;
+
+       *sz = 0;
+       s = parser->gc = NULL;
+
+       if (parser->strip_before && c->type == T_TYPE_TEXT)
        {
-               data->outsize = 0;
+               while ((c->e > c->s) && isspace(*(c->e - 1)))
+                       c->e--;
        }
-}
 
-/*
- * lua_Reader compatible function that parses template code on demand from
- * the given file handle.
- */
-const char *template_reader(lua_State *L, void *ud, size_t *sz)
-{
-       struct template_parser *data = ud;
-       char *match = NULL;
-       int off = 0;
-       int ignore = 0;
-       int genflags = 0;
-       int readlen = 0;
-       int vague = 0;
-
-       while( !(data->flags & T_FLAG_EOF) || (data->bufsize > 0) )
+       /* empty chunk */
+       if (c->s == c->e)
        {
-               /* Fill buffer */
-               if( !(data->flags & T_FLAG_EOF) && (data->bufsize < T_READBUFSZ) )
+               if (c->type == T_TYPE_EOF)
                {
-                       if( (readlen = read(data->fd, &data->buf[data->bufsize], T_READBUFSZ - data->bufsize)) > 0 )
-                               data->bufsize += readlen;
-                       else if( readlen == 0 )
-                               data->flags |= T_FLAG_EOF;
-                       else
-                               return NULL;
+                       *sz = 0;
+                       s = NULL;
                }
+               else
+               {
+                       *sz = 1;
+                       s = " ";
+               }
+       }
 
-               /* Evaluate state */
-               switch(data->state)
+       /* format chunk */
+       else if ((buf = buf_init(c->e - c->s)) != NULL)
+       {
+               if ((head = gen_code[c->type][0]) != NULL)
+                       buf_append(buf, head, strlen(head));
+
+               switch (c->type)
                {
-                       /* Plain text chunk (before "<%") */
-                       case T_STATE_TEXT_INIT:
-                       case T_STATE_TEXT_NEXT:
-                               off = 0; ignore = 0; *sz = 0;
-                               data->type = T_TYPE_TEXT;
-
-                               /* Skip leading whitespace if requested */
-                               if( data->flags & T_FLAG_SKIPWS )
-                               {
-                                       data->flags &= ~T_FLAG_SKIPWS;
-                                       while( (off < data->bufsize) && isspace(data->buf[off]) )
-                                               off++;
-                               }
+                       case T_TYPE_TEXT:
+                               luastr_escape(buf, c->s, c->e - c->s, 0);
+                               break;
 
-                               /* Found "<%" */
-                               if( (match = strfind(&data->buf[off], data->bufsize - off - 1, T_TOK_START, strlen(T_TOK_START))) != NULL )
-                               {
-                                       readlen = (int)(match - &data->buf[off]);
-                                       data->bufsize -= (readlen + strlen(T_TOK_START) + off);
-                                       match += strlen(T_TOK_START);
-
-                                       /* Check for leading '-' */
-                                       if( match[0] == T_TOK_SKIPWS[0] )
-                                       {
-                                               data->bufsize--;
-                                               match++;
-
-                                               while( (readlen > 1) && isspace(data->buf[off+readlen-1]) )
-                                               {
-                                                       readlen--;
-                                               }
-                                       }
-
-                                       bufout(data, &data->buf[off], readlen);
-                                       bufmove(data, match);
-                                       data->state = T_STATE_CODE_INIT;
-                               }
+                       case T_TYPE_EXPR:
+                               buf_append(buf, c->s, c->e - c->s);
+                               for (p = c->s; p < c->e; p++)
+                                       parser->line += (*p == '\n');
+                               break;
 
-                               /* Maybe plain chunk */
-                               else
-                               {
-                                       /* Preserve trailing "<" or white space, maybe a start token */
-                                       vague = stokscan(data, off, 0);
-
-                                       /* We can process some bytes ... */
-                                       if( vague < data->bufsize )
-                                       {
-                                               readlen = data->bufsize - vague - off;
-                                       }
-
-                                       /* No bytes to process, so try to remove at least whitespace ... */
-                                       else
-                                       {
-                                               /* ... but try to preserve trailing "<" ... */
-                                               vague = stokscan(data, off, 1);
-
-                                               if( vague < data->bufsize )
-                                               {
-                                                       readlen = data->bufsize - vague - off;
-                                               }
-
-                                               /* ... no chance, push out buffer */
-                                               else
-                                               {
-                                                       readlen = vague - off;
-                                                       vague   = 0;
-                                               }
-                                       }
-
-                                       bufout(data, &data->buf[off], readlen);
-
-                                       data->state   = T_STATE_TEXT_NEXT;
-                                       data->bufsize = vague;
-                                       bufmove(data, &data->buf[off+readlen]);
-                               }
+                       case T_TYPE_INCLUDE:
+                               luastr_escape(buf, c->s, c->e - c->s, 0);
+                               break;
 
-                               if( ignore || data->outsize == 0 )
-                                       continue;
-                               else
-                                       return generate_expression(data, sz, T_GEN_START | T_GEN_END);
+                       case T_TYPE_I18N:
+                               luastr_translate(buf, c->s, c->e - c->s, 1);
+                               break;
 
+                       case T_TYPE_I18N_RAW:
+                               luastr_translate(buf, c->s, c->e - c->s, 0);
                                break;
 
-                       /* Ignored chunk (inside "<%# ... %>") */
-                       case T_STATE_SKIP:
-                               ignore = 1;
+                       case T_TYPE_CODE:
+                               buf_append(buf, c->s, c->e - c->s);
+                               for (p = c->s; p < c->e; p++)
+                                       parser->line += (*p == '\n');
+                               break;
+               }
 
-                       /* Initial code chunk ("<% ...") */
-                       case T_STATE_CODE_INIT:
-                               off = 0;
+               if ((tail = gen_code[c->type][1]) != NULL)
+                       buf_append(buf, tail, strlen(tail));
 
-                               /* Check for leading '-' */
-                               if( data->buf[off] == T_TOK_SKIPWS[0] )
-                                       off++;
+               *sz = buf_length(buf);
+               s = parser->gc = buf_destroy(buf);
 
-                               /* Determine code type */
-                               switch(data->buf[off])
-                               {
-                                       case '#':
-                                               ignore = 1;
-                                               off++;
-                                               data->type = T_TYPE_COMMENT;
-                                               break;
-
-                                       case '=':
-                                               off++;
-                                               data->type = T_TYPE_EXPR;
-                                               break;
-
-                                       case '+':
-                                               off++;
-                                               data->type = T_TYPE_INCLUDE;
-                                               break;
-
-                                       case ':':
-                                               off++;
-                                               data->type = T_TYPE_I18N;
-                                               break;
-
-                                       case '_':
-                                               off++;
-                                               data->type = T_TYPE_I18N_RAW;
-                                               break;
-
-                                       default:
-                                               data->type = T_TYPE_CODE;
-                                               break;
-                               }
+               if (!*sz)
+               {
+                       *sz = 1;
+                       s = " ";
+               }
+       }
 
-                       /* Subsequent code chunk ("..." or "... %>") */ 
-                       case T_STATE_CODE_NEXT:
-                               /* Found "%>" */
-                               if( (match = strfind(&data->buf[off], data->bufsize - off, T_TOK_END, strlen(T_TOK_END))) != NULL )
-                               {
-                                       genflags = ( data->state == T_STATE_CODE_INIT )
-                                               ? (T_GEN_START | T_GEN_END) : T_GEN_END;
+       return s;
+}
 
-                                       readlen = (int)(match - &data->buf[off]);
+const char *template_reader(lua_State *L, void *ud, size_t *sz)
+{
+       struct template_parser *parser = ud;
+       int rem = parser->size - (parser->off - parser->mmap);
+       char *tag;
 
-                                       /* Check for trailing '-' */
-                                       if( (match > data->buf) && (*(match-1) == T_TOK_SKIPWS[0]) )
-                                       {
-                                               readlen--;
-                                               data->flags |= T_FLAG_SKIPWS;
-                                       }
+       parser->prv_chunk = parser->cur_chunk;
 
-                                       bufout(data, &data->buf[off], readlen);
+       /* free previous string */
+       if (parser->gc)
+       {
+               free(parser->gc);
+               parser->gc = NULL;
+       }
 
-                                       data->state = T_STATE_TEXT_INIT;
-                                       data->bufsize -= ((int)(match - &data->buf[off]) + strlen(T_TOK_END) + off);
-                                       bufmove(data, &match[strlen(T_TOK_END)]);
-                               }
+       /* before tag */
+       if (!parser->in_expr)
+       {
+               if ((tag = strfind(parser->off, rem, "<%", 2)) != NULL)
+               {
+                       template_text(parser, tag);
+                       parser->off = tag + 2;
+                       parser->in_expr = 1;
+               }
+               else
+               {
+                       template_text(parser, parser->mmap + parser->size);
+                       parser->off = parser->mmap + parser->size;
+               }
+       }
 
-                               /* Code chunk */
-                               else
-                               {
-                                       genflags = ( data->state == T_STATE_CODE_INIT ) ? T_GEN_START : 0;
+       /* inside tag */
+       else
+       {
+               if ((tag = strfind(parser->off, rem, "%>", 2)) != NULL)
+               {
+                       template_code(parser, tag);
+                       parser->off = tag + 2;
+                       parser->in_expr = 0;
+               }
+               else
+               {
+                       /* unexpected EOF */
+                       template_code(parser, parser->mmap + parser->size);
 
-                                       /* Preserve trailing "%" and "-", maybe an end token */
-                                       vague   = etokscan(data);
-                                       readlen = data->bufsize - off - vague;
-                                       bufout(data, &data->buf[off], readlen);
+                       *sz = 1;
+                       return "\033";
+               }
+       }
 
-                                       data->state   = T_STATE_CODE_NEXT;
-                                       data->bufsize = vague;
-                                       bufmove(data, &data->buf[readlen+off]);
-                               }
+       return template_format_chunk(parser, sz);
+}
 
-                               if( ignore || (data->outsize == 0 && !genflags) )
-                                       continue;
-                               else
-                                       return generate_expression(data, sz, genflags);
+int template_error(lua_State *L, struct template_parser *parser)
+{
+       const char *err = luaL_checkstring(L, -1);
+       const char *off = parser->prv_chunk.s;
+       const char *ptr;
+       char msg[1024];
+       int line = 0;
+       int chunkline = 0;
+
+       if ((ptr = strfind((char *)err, strlen(err), "]:", 2)) != NULL)
+       {
+               chunkline = atoi(ptr + 2) - parser->prv_chunk.line;
 
+               while (*ptr)
+               {
+                       if (*ptr++ == ' ')
+                       {
+                               err = ptr;
                                break;
+                       }
                }
        }
 
-       *sz = 0;
-       return NULL;
-}
+       if (strfind((char *)err, strlen(err), "'char(27)'", 10) != NULL)
+       {
+               off = parser->mmap + parser->size;
+               err = "'%>' expected before end of file";
+               chunkline = 0;
+       }
+
+       for (ptr = parser->mmap; ptr < off; ptr++)
+               if (*ptr == '\n')
+                       line++;
 
+       snprintf(msg, sizeof(msg), "Syntax error in %s:%d: %s",
+                        parser->file, line + chunkline, err ? err : "(unknown error)");
 
+       lua_pushnil(L);
+       lua_pushinteger(L, line + chunkline);
+       lua_pushstring(L, msg);
+
+       return 3;
+}
index 24933f0c979c54fdb8206ed4617cefab3a6a7c44..d1c606272eb4a80331dee48df5ce2169bce3e72a 100644 (file)
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <stdint.h>
 #include <unistd.h>
 #include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
 #include <string.h>
 #include <ctype.h>
+#include <errno.h>
 
 #include <lua.h>
 #include <lualib.h>
 #include <lauxlib.h>
 
 
-#define T_READBUFSZ                    1024
-#define T_OUTBUFSZ                     T_READBUFSZ * 3
-
-/* parser states */
-#define T_STATE_TEXT_INIT      0
-#define T_STATE_TEXT_NEXT      1
-#define T_STATE_CODE_INIT      2
-#define T_STATE_CODE_NEXT      3
-#define T_STATE_SKIP           4
-
-/* parser flags */
-#define T_FLAG_EOF                     0x01
-#define T_FLAG_SKIPWS          0x02
-
-/* tokens used in matching and expression generation */
-#define T_TOK_START                    "<%"
-#define T_TOK_END                      "%>"
-#define T_TOK_SKIPWS           "-"
+/* code types */
+#define T_TYPE_INIT                    0
+#define T_TYPE_TEXT                    1
+#define T_TYPE_COMMENT         2
+#define T_TYPE_EXPR                    3
+#define T_TYPE_INCLUDE                 4
+#define T_TYPE_I18N                    5
+#define T_TYPE_I18N_RAW                6
+#define T_TYPE_CODE                    7
+#define T_TYPE_EOF                     8
 
-/* generator flags */
-#define T_GEN_START                    0x01
-#define T_GEN_END                      0x02
 
-/* code types */
-#define T_TYPE_TEXT                    0
-#define T_TYPE_COMMENT         1
-#define T_TYPE_EXPR                    2
-#define T_TYPE_INCLUDE                 3
-#define T_TYPE_I18N                    4
-#define T_TYPE_I18N_RAW                5
-#define T_TYPE_CODE                    6
+struct template_chunk {
+       const char *s;
+       const char *e;
+       int type;
+       int line;
+};
 
 /* parser state */
 struct template_parser {
        int fd;
-       int bufsize;
-       int outsize;
-       int state;
-       int flags;
-       int type;
-       char buf[T_READBUFSZ];
-       char out[T_OUTBUFSZ];
+       uint32_t size;
+       char *mmap;
+       char *off;
+       char *gc;
+       int line;
+       int in_expr;
+       int strip_before;
+       int strip_after;
+       struct template_chunk prv_chunk;
+       struct template_chunk cur_chunk;
+       const char *file;
 };
 
+struct template_parser * template_open(const char *file);
+void template_close(struct template_parser *parser);
 
 const char *template_reader(lua_State *L, void *ud, size_t *sz);
+int template_error(lua_State *L, struct template_parser *parser);
 
 #endif
index 36f08aa2291eba2600a564643f4fa2e03f5472b8..80542bd4f331d612c9071dfcbab8a58b14020f8e 100644 (file)
  */
 
 #include "template_utils.h"
+#include "template_lmo.h"
 
 /* initialize a buffer object */
-static struct template_buffer * buf_init(void)
+struct template_buffer * buf_init(int size)
 {
        struct template_buffer *buf;
 
+       if (size <= 0)
+               size = 1024;
+
        buf = (struct template_buffer *)malloc(sizeof(struct template_buffer));
 
        if (buf != NULL)
        {
                buf->fill = 0;
-               buf->size = 1024;
-               buf->data = (unsigned char *)malloc(buf->size);
+               buf->size = size;
+               buf->data = malloc(buf->size);
 
                if (buf->data != NULL)
                {
@@ -46,17 +50,21 @@ static struct template_buffer * buf_init(void)
 }
 
 /* grow buffer */
-static int buf_grow(struct template_buffer *buf)
+int buf_grow(struct template_buffer *buf, int size)
 {
        unsigned int off = (buf->dptr - buf->data);
-       unsigned char *data =
-               (unsigned char *)realloc(buf->data, buf->size + 1024);
+       char *data;
+
+       if (size <= 0)
+               size = 1024;
+
+       data = realloc(buf->data, buf->size + size);
 
        if (data != NULL)
        {
                buf->data  = data;
                buf->dptr  = data + off;
-               buf->size += 1024;
+               buf->size += size;
 
                return buf->size;
        }
@@ -65,9 +73,9 @@ static int buf_grow(struct template_buffer *buf)
 }
 
 /* put one char into buffer object */
-static int buf_putchar(struct template_buffer *buf, unsigned char c)
+int buf_putchar(struct template_buffer *buf, char c)
 {
-       if( ((buf->fill + 1) >= buf->size) && !buf_grow(buf) )
+       if( ((buf->fill + 1) >= buf->size) && !buf_grow(buf, 0) )
                return 0;
 
        *(buf->dptr++) = c;
@@ -78,11 +86,11 @@ static int buf_putchar(struct template_buffer *buf, unsigned char c)
 }
 
 /* append data to buffer */
-static int buf_append(struct template_buffer *buf, unsigned char *s, int len)
+int buf_append(struct template_buffer *buf, const char *s, int len)
 {
-       while ((buf->fill + len + 1) >= buf->size)
+       if ((buf->fill + len + 1) >= buf->size)
        {
-               if (!buf_grow(buf))
+               if (!buf_grow(buf, len + 1))
                        return 0;
        }
 
@@ -95,13 +103,19 @@ static int buf_append(struct template_buffer *buf, unsigned char *s, int len)
        return len;
 }
 
+/* read buffer length */
+int buf_length(struct template_buffer *buf)
+{
+       return buf->fill;
+}
+
 /* destroy buffer object and return pointer to data */
-static char * buf_destroy(struct template_buffer *buf)
+char * buf_destroy(struct template_buffer *buf)
 {
-       unsigned char *data = buf->data;
+       char *data = buf->data;
 
        free(buf);
-       return (char *)data;
+       return data;
 }
 
 
@@ -229,7 +243,7 @@ static int _validate_utf8(unsigned char **s, int l, struct template_buffer *buf)
                                        !mb_is_surrogate(ptr, n) && !mb_is_illegal(ptr, n))
                                {
                                        /* copy sequence */
-                                       if (!buf_append(buf, ptr, n))
+                                       if (!buf_append(buf, (char *)ptr, n))
                                                return 0;
                                }
 
@@ -264,9 +278,9 @@ static int _validate_utf8(unsigned char **s, int l, struct template_buffer *buf)
 }
 
 /* sanitize given string and replace all invalid UTF-8 sequences with "?" */
-char * sanitize_utf8(const char *s, unsigned int l)
+char * utf8(const char *s, unsigned int l)
 {
-       struct template_buffer *buf = buf_init();
+       struct template_buffer *buf = buf_init(l);
        unsigned char *ptr = (unsigned char *)s;
        unsigned int v, o;
 
@@ -278,7 +292,7 @@ char * sanitize_utf8(const char *s, unsigned int l)
                /* ascii char */
                if ((*ptr >= 0x01) && (*ptr <= 0x7F))
                {
-                       if (!buf_putchar(buf, *ptr++))
+                       if (!buf_putchar(buf, (char)*ptr++))
                                break;
                }
 
@@ -298,9 +312,9 @@ char * sanitize_utf8(const char *s, unsigned int l)
 /* Sanitize given string and strip all invalid XML bytes
  * Validate UTF-8 sequences
  * Escape XML control chars */
-char * sanitize_pcdata(const char *s, unsigned int l)
+char * pcdata(const char *s, unsigned int l)
 {
-       struct template_buffer *buf = buf_init();
+       struct template_buffer *buf = buf_init(l);
        unsigned char *ptr = (unsigned char *)s;
        unsigned int o, v;
        char esq[8];
@@ -329,7 +343,7 @@ char * sanitize_pcdata(const char *s, unsigned int l)
                {
                        esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);
 
-                       if (!buf_append(buf, (unsigned char *)esq, esl))
+                       if (!buf_append(buf, esq, esl))
                                break;
 
                        ptr++;
@@ -338,7 +352,7 @@ char * sanitize_pcdata(const char *s, unsigned int l)
                /* ascii char */
                else if (*ptr <= 0x7F)
                {
-                       buf_putchar(buf, *ptr++);
+                       buf_putchar(buf, (char)*ptr++);
                }
 
                /* multi byte sequence */
@@ -353,3 +367,128 @@ char * sanitize_pcdata(const char *s, unsigned int l)
 
        return buf_destroy(buf);
 }
+
+char * striptags(const char *s, unsigned int l)
+{
+       struct template_buffer *buf = buf_init(l);
+       unsigned char *ptr = (unsigned char *)s;
+       unsigned char *end = ptr + l;
+       unsigned char *tag;
+       unsigned char prev;
+       char esq[8];
+       int esl;
+
+       for (prev = ' '; ptr < end; ptr++)
+       {
+               if ((*ptr == '<') && ((ptr + 2) < end) &&
+                       ((*(ptr + 1) == '/') || isalpha(*(ptr + 1))))
+               {
+                       for (tag = ptr; tag < end; tag++)
+                       {
+                               if (*tag == '>')
+                               {
+                                       if (!isspace(prev))
+                                               buf_putchar(buf, ' ');
+
+                                       ptr = tag;
+                                       prev = ' ';
+                                       break;
+                               }
+                       }
+               }
+               else if (isspace(*ptr))
+               {
+                       if (!isspace(prev))
+                               buf_putchar(buf, *ptr);
+
+                       prev = *ptr;
+               }
+               else
+               {
+                       switch(*ptr)
+                       {
+                               case '"':
+                               case '\'':
+                               case '<':
+                               case '>':
+                               case '&':
+                                       esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);
+                                       buf_append(buf, esq, esl);
+                                       break;
+
+                               default:
+                                       buf_putchar(buf, *ptr);
+                                       break;
+                       }
+
+                       prev = *ptr;
+               }
+       }
+
+       return buf_destroy(buf);
+}
+
+void luastr_escape(struct template_buffer *out, const char *s, unsigned int l,
+                                  int escape_xml)
+{
+       int esl;
+       char esq[8];
+       char *ptr;
+
+       for (ptr = (char *)s; ptr < (s + l); ptr++)
+       {
+               switch (*ptr)
+               {
+               case '\\':
+                       buf_append(out, "\\\\", 2);
+                       break;
+
+               case '"':
+                       if (escape_xml)
+                               buf_append(out, "&#34;", 5);
+                       else
+                               buf_append(out, "\\\"", 2);
+                       break;
+
+               case '\n':
+                       buf_append(out, "\\n", 2);
+                       break;
+
+               case '\'':
+               case '&':
+               case '<':
+               case '>':
+                       if (escape_xml)
+                       {
+                               esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);
+                               buf_append(out, esq, esl);
+                               break;
+                       }
+
+               default:
+                       buf_putchar(out, *ptr);
+               }
+       }
+}
+
+void luastr_translate(struct template_buffer *out, const char *s, unsigned int l,
+                                         int escape_xml)
+{
+       char *tr;
+       int trlen;
+
+       switch (lmo_translate(s, l, &tr, &trlen))
+       {
+               case 0:
+                       luastr_escape(out, tr, trlen, escape_xml);
+                       break;
+
+               case -1:
+                       luastr_escape(out, s, l, escape_xml);
+                       break;
+
+               default:
+                       /* no catalog loaded */
+                       break;
+       }
+}
index 1f7d438c61b50550e641c3c96a166d225b150264..c54af757c507e0f54f0b72caef6521c251466665 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * LuCI Template - Utility header
  *
- *   Copyright (C) 2010 Jo-Philipp Wich <xm@subsignal.org>
+ *   Copyright (C) 2010-2012 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.
 
 /* buffer object */
 struct template_buffer {
-       unsigned char *data;
-       unsigned char *dptr;
+       char *data;
+       char *dptr;
        unsigned int size;
        unsigned int fill;
 };
 
-char * sanitize_utf8(const char *s, unsigned int l);
-char * sanitize_pcdata(const char *s, unsigned int l);
+struct template_buffer * buf_init(int size);
+int buf_grow(struct template_buffer *buf, int size);
+int buf_putchar(struct template_buffer *buf, char c);
+int buf_append(struct template_buffer *buf, const char *s, int len);
+int buf_length(struct template_buffer *buf);
+char * buf_destroy(struct template_buffer *buf);
+
+char * utf8(const char *s, unsigned int l);
+char * pcdata(const char *s, unsigned int l);
+char * striptags(const char *s, unsigned int l);
+
+void luastr_escape(struct template_buffer *out, const char *s, unsigned int l, int escape_xml);
+void luastr_translate(struct template_buffer *out, const char *s, unsigned int l, int escape_xml);
 
 #endif
diff --git a/libs/web/standalone.mk b/libs/web/standalone.mk
new file mode 100644 (file)
index 0000000..66a0e5a
--- /dev/null
@@ -0,0 +1,56 @@
+LUAC = luac
+LUAC_OPTIONS = -s
+LUA_TARGET ?= source
+
+LUA_MODULEDIR = /usr/local/share/lua/5.1
+LUA_LIBRARYDIR = /usr/local/lib/lua/5.1
+
+OS ?= $(shell uname)
+
+LUA_SHLIBS = $(shell pkg-config --silence-errors --libs lua5.1 || pkg-config --silence-errors --libs lua-5.1 || pkg-config --silence-errors --libs lua)
+LUA_LIBS = $(if $(LUA_SHLIBS),$(LUA_SHLIBS),$(firstword $(wildcard /usr/lib/liblua.a /usr/local/lib/liblua.a /opt/local/lib/liblua.a)))
+LUA_CFLAGS = $(shell pkg-config --silence-errors --cflags lua5.1 || pkg-config --silence-errors --cflags lua-5.1 || pkg-config --silence-errors --cflags lua)
+
+CC = gcc
+AR = ar
+RANLIB = ranlib
+CFLAGS = -O2
+FPIC = -fPIC
+EXTRA_CFLAGS = --std=gnu99
+WFLAGS = -Wall -Werror -pedantic
+CPPFLAGS =
+COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) $(WFLAGS)
+ifeq ($(OS),Darwin)
+  SHLIB_FLAGS = -bundle -undefined dynamic_lookup
+else
+  SHLIB_FLAGS = -shared
+endif
+LINK = $(CC) $(LDFLAGS)
+
+.PHONY: all build compile luacompile luasource clean luaclean
+
+all: build
+
+build: luabuild gccbuild
+
+luabuild: lua$(LUA_TARGET)
+
+gccbuild: compile
+compile:
+
+clean: luaclean
+
+luasource:
+       mkdir -p dist$(LUA_MODULEDIR)
+       cp -pR root/* dist 2>/dev/null || true
+       cp -pR lua/* dist$(LUA_MODULEDIR) 2>/dev/null || true
+       for i in $$(find dist -name .svn); do rm -rf $$i || true; done
+
+luastrip: luasource
+       for i in $$(find dist -type f -name '*.lua'); do perl -e 'undef $$/; open( F, "< $$ARGV[0]" ) || die $$!; $$src = <F>; close F; $$src =~ s/--\[\[.*?\]\](--)?//gs; $$src =~ s/^\s*--.*?\n//gm; open( F, "> $$ARGV[0]" ) || die $$!; print F $$src; close F' $$i; done
+
+luacompile: luasource
+       for i in $$(find dist -name *.lua -not -name debug.lua); do $(LUAC) $(LUAC_OPTIONS) -o $$i $$i; done
+
+luaclean:
+       rm -rf dist
index 68a59364c2861373a2eb08e907149eae40842366..753d2c77f15a5554f8088da6eb8da552c677860e 100644 (file)
@@ -30,15 +30,13 @@ function action_status()
        end
 end
 
-function action_restart()
+function action_restart(args)
        local uci = require "luci.model.uci".cursor()
-       local rqp = luci.dispatcher.context.requestpath
-
-       if rqp[3] then
+       if args then
                local service
                local services = { }
 
-               for service in rqp[3]:gmatch("[%w_-]+") do
+               for service in args:gmatch("[%w_-]+") do
                        services[#services+1] = service
                end
 
index e5c517f23840f9b36f73703f237f492212d62890..3ececa8f1340b4b04865a0161bca20f9f23afe83 100644 (file)
@@ -153,35 +153,40 @@ function wifi_network(id)
        return { }
 end
 
-function switch_status(dev)
-       local ports = { }
-       local swc = io.popen("swconfig dev %q show" % dev, "r")
-       if swc then
-               local l
-               repeat
-                       l = swc:read("*l")
-                       if l then
-                               local port, up = l:match("port:(%d+) link:(%w+)")
-                               if port then
-                                       local speed  = l:match(" speed:(%d+)")
-                                       local duplex = l:match(" (%w+)-duplex")
-                                       local txflow = l:match(" (txflow)")
-                                       local rxflow = l:match(" (rxflow)")
-                                       local auto   = l:match(" (auto)")
-
-                                       ports[#ports+1] = {
-                                               port   = tonumber(port) or 0,
-                                               speed  = tonumber(speed) or 0,
-                                               link   = (up == "up"),
-                                               duplex = (duplex == "full"),
-                                               rxflow = (not not rxflow),
-                                               txflow = (not not txflow),
-                                               auto   = (not not auto)
-                                       }
+function switch_status(devs)
+       local dev
+       local switches = { }
+       for dev in devs:gmatch("[^%s,]+") do
+               local ports = { }
+               local swc = io.popen("swconfig dev %q show" % dev, "r")
+               if swc then
+                       local l
+                       repeat
+                               l = swc:read("*l")
+                               if l then
+                                       local port, up = l:match("port:(%d+) link:(%w+)")
+                                       if port then
+                                               local speed  = l:match(" speed:(%d+)")
+                                               local duplex = l:match(" (%w+)-duplex")
+                                               local txflow = l:match(" (txflow)")
+                                               local rxflow = l:match(" (rxflow)")
+                                               local auto   = l:match(" (auto)")
+
+                                               ports[#ports+1] = {
+                                                       port   = tonumber(port) or 0,
+                                                       speed  = tonumber(speed) or 0,
+                                                       link   = (up == "up"),
+                                                       duplex = (duplex == "full"),
+                                                       rxflow = (not not rxflow),
+                                                       txflow = (not not txflow),
+                                                       auto   = (not not auto)
+                                               }
+                                       end
                                end
-                       end
-               until not l
-               swc:close()
+                       until not l
+                       swc:close()
+               end
+               switches[dev] = ports
        end
-       return ports
+       return switches
 end
index 85dc68fff0128b5c16396a4da85c7569f106ced4..f401ecd185151560a2585c77c3353b570b9e9cfc 100644 (file)
@@ -68,7 +68,7 @@ function index()
                        page = entry({"admin", "network", "wireless_reconnect"}, call("wifi_reconnect"), nil)
                        page.leaf = true
 
-                       page = entry({"admin", "network", "wireless_shutdown"}, call("wifi_reconnect"), nil)
+                       page = entry({"admin", "network", "wireless_shutdown"}, call("wifi_shutdown"), nil)
                        page.leaf = true
 
                        page = entry({"admin", "network", "wireless"}, arcombine(template("admin_network/wifi_overview"), cbi("admin_network/wifi")), _("Wifi"), 15)
@@ -156,6 +156,12 @@ function index()
 
                page = entry({"admin", "network", "diag_traceroute"}, call("diag_traceroute"), nil)
                page.leaf = true
+
+               page = entry({"admin", "network", "diag_ping6"}, call("diag_ping6"), nil)
+               page.leaf = true
+
+               page = entry({"admin", "network", "diag_traceroute6"}, call("diag_traceroute6"), nil)
+               page.leaf = true
 --     end
 end
 
@@ -235,13 +241,12 @@ function wifi_delete(network)
        luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless"))
 end
 
-function iface_status()
-       local path = luci.dispatcher.context.requestpath
+function iface_status(ifaces)
        local netm = require "luci.model.network".init()
        local rv   = { }
 
        local iface
-       for iface in path[#path]:gmatch("[%w%.%-_]+") do
+       for iface in ifaces:gmatch("[%w%.%-_]+") do
                local net = netm:get_network(iface)
                local device = net and net:get_interface()
                if device then
@@ -318,11 +323,8 @@ function iface_status()
        luci.http.status(404, "No such device")
 end
 
-function iface_reconnect()
-       local path  = luci.dispatcher.context.requestpath
-       local iface = path[#path]
+function iface_reconnect(iface)
        local netmd = require "luci.model.network".init()
-
        local net = netmd:get_network(iface)
        if net then
                luci.sys.call("env -i /sbin/ifup %q >/dev/null 2>/dev/null" % iface)
@@ -333,11 +335,8 @@ function iface_reconnect()
        luci.http.status(404, "No such interface")
 end
 
-function iface_shutdown()
-       local path  = luci.dispatcher.context.requestpath
-       local iface = path[#path]
+function iface_shutdown(iface)
        local netmd = require "luci.model.network".init()
-
        local net = netmd:get_network(iface)
        if net then
                luci.sys.call("env -i /sbin/ifdown %q >/dev/null 2>/dev/null" % iface)
@@ -348,11 +347,8 @@ function iface_shutdown()
        luci.http.status(404, "No such interface")
 end
 
-function iface_delete()
-       local path  = luci.dispatcher.context.requestpath
-       local iface = path[#path]
+function iface_delete(iface)
        local netmd = require "luci.model.network".init()
-
        local net = netmd:del_network(iface)
        if net then
                luci.sys.call("env -i /sbin/ifdown %q >/dev/null 2>/dev/null" % iface)
@@ -365,13 +361,12 @@ function iface_delete()
        luci.http.status(404, "No such interface")
 end
 
-function wifi_status()
-       local path = luci.dispatcher.context.requestpath
+function wifi_status(devs)
        local s    = require "luci.tools.status"
        local rv   = { }
 
        local dev
-       for dev in path[#path]:gmatch("[%w%.%-]+") do
+       for dev in devs:gmatch("[%w%.%-]+") do
                rv[#rv+1] = s.wifi_network(dev)
        end
 
@@ -384,23 +379,19 @@ function wifi_status()
        luci.http.status(404, "No such device")
 end
 
-function wifi_reconnect()
-       local path  = luci.dispatcher.context.requestpath
-       local mode  = path[#path-1]
-       local wnet  = path[#path]
+local function wifi_reconnect_shutdown(shutdown, wnet)
        local netmd = require "luci.model.network".init()
-
        local net = netmd:get_wifinet(wnet)
        local dev = net:get_device()
        if dev and net then
                luci.sys.call("env -i /sbin/wifi down >/dev/null 2>/dev/null")
 
                dev:set("disabled", nil)
-               net:set("disabled", (mode == "wireless_shutdown") and 1 or nil)
+               net:set("disabled", shutdown and 1 or nil)
                netmd:commit("wireless")
 
                luci.sys.call("env -i /sbin/wifi up >/dev/null 2>/dev/null")
-               luci.http.status(200, (mode == "wireless_shutdown") and "Shutdown" or "Reconnected")
+               luci.http.status(200, shutdown and "Shutdown" or "Reconnected")
 
                return
        end
@@ -408,6 +399,14 @@ function wifi_reconnect()
        luci.http.status(404, "No such radio")
 end
 
+function wifi_reconnect(wnet)
+       wifi_reconnect_shutdown(false, wnet)
+end
+
+function wifi_shutdown(wnet)
+       wifi_reconnect_shutdown(true, wnet)
+end
+
 function lease_status()
        local s = require "luci.tools.status"
 
@@ -419,18 +418,14 @@ function lease_status()
        luci.http.write(']')
 end
 
-function switch_status()
-       local path = luci.dispatcher.context.requestpath
+function switch_status(switches)
        local s = require "luci.tools.status"
 
        luci.http.prepare_content("application/json")
-       luci.http.write_json(s.switch_status(path[#path]))
+       luci.http.write_json(s.switch_status(switches))
 end
 
-function diag_command(cmd)
-       local path = luci.dispatcher.context.requestpath
-       local addr = path[#path]
-
+function diag_command(cmd, addr)
        if addr and addr:match("^[a-zA-Z0-9%-%.:_]+$") then
                luci.http.prepare_content("text/plain")
 
@@ -452,14 +447,22 @@ function diag_command(cmd)
        luci.http.status(500, "Bad address")
 end
 
-function diag_ping()
-       diag_command("ping -c 5 -W 1 %q 2>&1")
+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_traceroute()
-       diag_command("traceroute -q 1 -w 1 -n %q 2>&1")
+function diag_ping6(addr)
+       diag_command("ping6 -c 5 %q 2>&1", addr)
 end
 
-function diag_nslookup()
-       diag_command("nslookup %q 2>&1")
+function diag_traceroute6(addr)
+       diag_command("traceroute6 -q 1 -w 2 -n %q 2>&1", addr)
 end
index d7d301c542e11722a8108be99d14f4b240fce9f8..a9e37c7995ef4de44fb0ca86c6ec9c5f0db31d36 100644 (file)
@@ -71,10 +71,7 @@ function action_iptables()
        end
 end
 
-function action_bandwidth()
-       local path  = luci.dispatcher.context.requestpath
-       local iface = path[#path]
-
+function action_bandwidth(iface)
        luci.http.prepare_content("application/json")
 
        local bwc = io.popen("luci-bwc -i %q 2>/dev/null" % iface)
@@ -92,10 +89,7 @@ function action_bandwidth()
        end
 end
 
-function action_wireless()
-       local path  = luci.dispatcher.context.requestpath
-       local iface = path[#path]
-
+function action_wireless(iface)
        luci.http.prepare_content("application/json")
 
        local bwc = io.popen("luci-bwc -r %q 2>/dev/null" % iface)
index c791a57d0f6d5bb071a02d6ffb5e55727a55c2d0..b4fee8cf07bf3fa0d4537de54e34d074d4cf1eaf 100644 (file)
@@ -30,7 +30,8 @@ ip = s:option(Value, "ip", translate("IP address"))
 ip.datatype = "ipaddr"
 ip.rmempty  = true
 
-for i, dataset in ipairs(luci.sys.net.arptable()) do
+local arptable = luci.sys.net.arptable() or {}
+for i, dataset in ipairs(arptable) do
        ip:value(
                dataset["IP address"],
                "%s (%s)" %{ dataset["IP address"], dataset["HW address"] }
index 9dc3f2f636de7fbdde767fac1d35521c9fb17d76..0fa2696e8a0f7352afa868aa8acdb67b5ab29134 100644 (file)
@@ -14,6 +14,8 @@ You may obtain a copy of the License at
 
 m = Map("network", translate("Switch"), translate("The network ports on this device can be combined to several <abbr title=\"Virtual Local Area Network\">VLAN</abbr>s in which computers can communicate directly with each other. <abbr title=\"Virtual Local Area Network\">VLAN</abbr>s are often used to separate different network segments. Often there is by default one Uplink port for a connection to the next greater network like the internet and other ports for a local network."))
 
+local switches = { }
+
 m.uci:foreach("network", "switch",
        function(x)
                local sid         = x['.name']
@@ -199,11 +201,13 @@ m.uci:foreach("network", "switch",
                end
 
 
-               local vid = s:option(Value, has_vlan4k or "vlan", "VLAN ID")
+               local vid = s:option(Value, has_vlan4k or "vlan", "VLAN ID", "<div id='portstatus-%s'></div>" % switch_name)
+               local mx_vid = has_vlan4k and 4094 or (num_vlans - 1) 
 
                vid.rmempty = false
                vid.forcewrite = true
                vid.vlan_used = { }
+               vid.datatype = "and(uinteger,range("..min_vid..","..mx_vid.."))"
 
                -- Validate user provided VLAN ID, make sure its within the bounds
                -- allowed by the switch.
@@ -276,12 +280,13 @@ m.uci:foreach("network", "switch",
                        port_opts[#port_opts+1] = po
                end
 
-
-        -- Switch status template
-        s = m:section(SimpleSection)
-        s.template = "admin_network/switch_status"
-        s.switch = switch_name
+               switches[#switches+1] = switch_name
        end
 )
 
+-- Switch status template
+s = m:section(SimpleSection)
+s.template = "admin_network/switch_status"
+s.switches = switches
+
 return m
index f645493a61d17c6cb17df308f33df1b0b33e6b57..6c06b21b4ab8aca1c63777a85650f4746c842f91 100644 (file)
@@ -208,6 +208,12 @@ if hwtype == "mac80211" then
                htmode:value("HT40-", translate("40MHz 2nd channel below"))
                htmode:value("HT40+", translate("40MHz 2nd channel above"))
 
+               noscan = s:taboption("advanced", Flag, "noscan", translate("Force 40MHz mode"),
+                       translate("Always use 40MHz channels even if the secondary channel overlaps. Using this option does not comply with IEEE 802.11n-2009!"))
+               noscan:depends("htmode", "HT40+")
+               noscan:depends("htmode", "HT40-")
+               noscan.default = noscan.disabled
+
                --htcapab = s:taboption("advanced", DynamicList, "ht_capab", translate("HT capabilities"))
                --htcapab:depends("hwmode", "11na")
                --htcapab:depends("hwmode", "11ng")
index a991f9a48fd14895d814758eb9af3eec007d08ba..64666880da180889fbbdab69dbf4e5da5e4211ab 100644 (file)
@@ -14,18 +14,33 @@ $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)
+       function update_status(field,proto)
        {
                var tool = field.name;
                var addr = field.value;
+               var protocol = ""
 
                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 =
@@ -36,7 +51,7 @@ $Id$
                        legend.parentNode.style.display = 'block';
                        legend.style.display = 'inline';
 
-                       stxhr.get('<%=luci.dispatcher.build_url("admin", "network")%>/diag_' + tool + '/' + addr, null,
+                       stxhr.get('<%=luci.dispatcher.build_url("admin", "network")%>/diag_' + tool + protocol + '/' + addr, null,
                                function(x)
                                {
                                        if (x.responseText)
@@ -64,17 +79,29 @@ $Id$
 
                        <br />
 
-                       <div style="width:30%; float:left; text-align:center">
+                       <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)" />
+                               <input type="button" value="<%:Ping%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.ping,this.form.proto)" />
+                               <% 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%>
                        </div>
 
-                       <div style="width:30%; float:left; text-align:center">
+                       <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)" />
+                               <input type="button" value="<%:Traceroute%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.traceroute,this.form.trproto)" />
+                               <% 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%>
                        </div>
 
-                       <div style="width:30%; float:left; text-align:center">
+                       <div style="width:33%; float:left;">
                                <input style="width: 50%" type="text" value="openwrt.org" name="nslookup" />
                                <input type="button" value="<%:Nslookup%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.nslookup)" />
                        </div>
index 0b284833e777837f820dd11695d5d00138ef3ac0..b299575e2f2ad9d51fb803e0ba1260772391c00b 100644 (file)
@@ -1,31 +1,28 @@
 <script type="text/javascript">//<![CDATA[
-       var tb;
-       var ths = document.getElementsByTagName('th');
-       for (var i = 0; i < ths.length; i++)
-               if (ths[i].className = 'cbi-section-table-cell' && !ths[i].innerHTML)
+       var switches = [ '<%=table.concat(self.switches, "', '")%>' ];
+       XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "switch_status")%>/' + switches.join(','), null,
+               function(x, st)
                {
-                       ths[i].innerHTML = '<%:Port status:%>';
-                       tb = ths[i].parentNode;
-                       break;
-               }
-
-       if (tb)
-       {
-               XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "switch_status", self.switch)%>', null,
-                       function(x, st)
+                       for (var i = 0; i < switches.length; i++)
                        {
-                               if (st && st.length)
+                               var ports = st[switches[i]];
+                               var th0 = document.getElementById('portstatus-' + switches[i]);
+
+                               if (th0 && ports && ports.length)
                                {
-                                       for (var i = 0; i < st.length; i++)
+                                       if (!th0.innerHTML)
+                                               th0.innerHTML = '<%:Port status:%>';
+
+                                       for (var j = 0; j < ports.length; j++)
                                        {
-                                               var th = tb.childNodes[i+1];
+                                               var th = th0.parentNode.parentNode.childNodes[j+1];
 
-                                               if (st[i].link)
+                                               if (ports[j].link)
                                                {
                                                        th.innerHTML = String.format(
                                                                '<small><img src="<%=resource%>/icons/port_up.png" />' +
                                                                '<br />%d<%:baseT%><br />%s</small>',
-                                                               st[i].speed, st[i].duplex
+                                                               ports[j].speed, ports[j].duplex
                                                                        ? '<%:full-duplex%>' : '<%:half-duplex%>'
                                                        );
                                                }
@@ -39,6 +36,6 @@
                                        }
                                }
                        }
-               );
-       }
+               }
+       );
 //]]></script>
index 1f59a1830d4eaa10ade0915b4108d68ae2a7bab7..ab5d7a21348b05c6f8cc30c4d7a970786638b56f 100644 (file)
@@ -9,8 +9,6 @@ You may obtain a copy of the License at
 
        http://www.apache.org/licenses/LICENSE-2.0
 
-$Id$
-
 -%>
 
 <%-
@@ -124,6 +122,10 @@ $Id$
 
        var is_reconnecting = false;
 
+       function nowrap(s) {
+               return s.replace(/ /g, '&#160;');
+       }
+
        function wifi_shutdown(id, toggle) {
                var reconnect = (toggle.getAttribute('active') == 'false');
 
@@ -300,24 +302,24 @@ $Id$
                                                                icon, assoclist[j].signal, assoclist[j].noise
                                                        );
 
-                                                       tr.insertCell(-1).innerHTML = String.format('%h', iw.ssid ? iw.ssid : '?');
+                                                       tr.insertCell(-1).innerHTML = nowrap(String.format('%h', iw.ssid ? iw.ssid : '?'));
                                                        tr.insertCell(-1).innerHTML = assoclist[j].bssid;
 
                                                        tr.insertCell(-1).innerHTML = arptable[assoclist[j].bssid]
                                                                ? arptable[assoclist[j].bssid] : '?';
 
-                                                       tr.insertCell(-1).innerHTML = String.format('%d <%:dBm%>', assoclist[j].signal);
-                                                       tr.insertCell(-1).innerHTML = String.format('%d <%:dBm%>', assoclist[j].noise);
+                                                       tr.insertCell(-1).innerHTML = nowrap(String.format('%d <%:dBm%>', assoclist[j].signal));
+                                                       tr.insertCell(-1).innerHTML = nowrap(String.format('%d <%:dBm%>', assoclist[j].noise));
 
-                                                       tr.insertCell(-1).innerHTML = (assoclist[j].rx_mcs > -1)
+                                                       tr.insertCell(-1).innerHTML = nowrap((assoclist[j].rx_mcs > -1)
                                                                ? String.format('%.1f <%:Mbit/s%>, MCS %d, %d<%:MHz%>', assoclist[j].rx_rate / 1000, assoclist[j].rx_mcs, assoclist[j].rx_40mhz ? 40 : 20)
                                                                : String.format('%.1f <%:Mbit/s%>', assoclist[j].rx_rate / 1000)
-                                                       ;
+                                                       );
 
-                                                       tr.insertCell(-1).innerHTML = (assoclist[j].tx_mcs > -1)
+                                                       tr.insertCell(-1).innerHTML = nowrap((assoclist[j].tx_mcs > -1)
                                                                ? String.format('%.1f <%:Mbit/s%>, MCS %d, %d<%:MHz%>', assoclist[j].tx_rate / 1000, assoclist[j].tx_mcs, assoclist[j].tx_40mhz ? 40 : 20)
                                                                : String.format('%.1f <%:Mbit/s%>', assoclist[j].tx_rate / 1000)
-                                                       ;
+                                                       );
 
                                                        rowstyle = (rowstyle == 1) ? 2 : 1;
                                                }
index 9c9eb01c966408682693eee45b5ed1caa9a4f992..6525391aad97fbc6f5d52f777a9290652b7f5009 100644 (file)
@@ -8,8 +8,6 @@ You may obtain a copy of the License at
 
        http://www.apache.org/licenses/LICENSE-2.0
 
-$Id$
-
 -%>
 
 <%+header%>
@@ -161,6 +159,10 @@ $Id$
                                                for (var i = 0; i < conn.length; i++)
                                                {
                                                        var c  = conn[i];
+
+                                                       if (c.src == '127.0.0.1' && c.dst == '127.0.0.1')
+                                                               continue;
+
                                                        var tr = conn_table.rows[0].parentNode.insertRow(-1);
                                                            tr.className = 'cbi-section-table-row cbi-rowstyle-' + (1 + (i % 2));
 
index 003ec31031b91fb8253a183158d3dd9a32e35525..f8707c05dd6783a59c95fd53bd8a39b3d08950ce 100644 (file)
@@ -9,8 +9,6 @@ You may obtain a copy of the License at
 
        http://www.apache.org/licenses/LICENSE-2.0
 
-$Id$
-
 -%>
 
 <%
@@ -432,22 +430,22 @@ $Id$
                                        tr.insertCell(-1).innerHTML = assoclist[i].bssid;
 
                                        tr.insertCell(-1).innerHTML = String.format(
-                                               '<a href="%s">%h</a>',
+                                               '<a href="%s">%s</a>',
                                                        assoclist[i].link,
-                                                       assoclist[i].name
+                                                       '%h'.format(assoclist[i].name).nobr()
                                        );
 
-                                       tr.insertCell(-1).innerHTML = String.format('%d <%:dBm%>', assoclist[i].signal);
-                                       tr.insertCell(-1).innerHTML = String.format('%d <%:dBm%>', assoclist[i].noise);
+                                       tr.insertCell(-1).innerHTML = String.format('%d <%:dBm%>', assoclist[i].signal).nobr();
+                                       tr.insertCell(-1).innerHTML = String.format('%d <%:dBm%>', assoclist[i].noise).nobr();
 
                                        tr.insertCell(-1).innerHTML = (assoclist[i].rx_mcs > -1)
-                                               ? String.format('%.1f <%:Mbit/s%>, MCS %d, %d<%:MHz%>', assoclist[i].rx_rate / 1000, assoclist[i].rx_mcs, assoclist[i].rx_40mhz ? 40 : 20)
-                                               : String.format('%.1f <%:Mbit/s%>', assoclist[i].rx_rate / 1000)
+                                               ? String.format('%.1f <%:Mbit/s%>, MCS %d, %d<%:MHz%>', assoclist[i].rx_rate / 1000, assoclist[i].rx_mcs, assoclist[i].rx_40mhz ? 40 : 20).nobr()
+                                               : String.format('%.1f <%:Mbit/s%>', assoclist[i].rx_rate / 1000).nobr()
                                        ;
 
                                        tr.insertCell(-1).innerHTML = (assoclist[i].tx_mcs > -1)
-                                               ? String.format('%.1f <%:Mbit/s%>, MCS %d, %d<%:MHz%>', assoclist[i].tx_rate / 1000, assoclist[i].tx_mcs, assoclist[i].tx_40mhz ? 40 : 20)
-                                               : String.format('%.1f <%:Mbit/s%>', assoclist[i].tx_rate / 1000)
+                                               ? String.format('%.1f <%:Mbit/s%>, MCS %d, %d<%:MHz%>', assoclist[i].tx_rate / 1000, assoclist[i].tx_mcs, assoclist[i].tx_40mhz ? 40 : 20).nobr()
+                                               : String.format('%.1f <%:Mbit/s%>', assoclist[i].tx_rate / 1000).nobr()
                                        ;
                                }
 
index 64d2f3fb681a5a1a74f9a5d719887eca19c508fc..a002715ec8f72ea9141fc15cbb0961ca72053fb7 100644 (file)
@@ -8,8 +8,6 @@ You may obtain a copy of the License at
 
        http://www.apache.org/licenses/LICENSE-2.0
 
-$Id$
-
 -%>
 
 <%+header%>
@@ -235,7 +233,7 @@ $Id$
 
                                                label_01_cur.innerHTML = (data_01[data_01.length-1] / 100).toFixed(2);
                                                label_05_cur.innerHTML = (data_05[data_05.length-1] / 100).toFixed(2);
-                                               label_15_cur.innerHTML = (data_01[data_15.length-1] / 100).toFixed(2);
+                                               label_15_cur.innerHTML = (data_15[data_15.length-1] / 100).toFixed(2);
 
                                                label_01_avg.innerHTML = (data_01_avg / 100).toFixed(2);
                                                label_05_avg.innerHTML = (data_05_avg / 100).toFixed(2);
@@ -244,9 +242,6 @@ $Id$
                                                label_01_peak.innerHTML = (data_01_peak / 100).toFixed(2);
                                                label_05_peak.innerHTML = (data_05_peak / 100).toFixed(2);
                                                label_15_peak.innerHTML = (data_15_peak / 100).toFixed(2);
-
-                                               /* reset timer */
-                                               window.setTimeout(update_graph, 1000);
                                        }
                                );
                        }
@@ -262,7 +257,7 @@ $Id$
 
 <table style="width:100%; table-layout:fixed" cellspacing="5">
        <tr>
-               <td style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid #ff0000"><%:1 Minute Load:%></strong></td>
+               <td style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid #ff0000; white-space:nowrap"><%:1 Minute Load:%></strong></td>
                <td id="lb_load01_cur">0</td>
 
                <td style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></td>
@@ -272,7 +267,7 @@ $Id$
                <td id="lb_load01_peak">0</td>
        </tr>
        <tr>
-               <td style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid #ff6600"><%:5 Minute Load:%></strong></td>
+               <td style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid #ff6600; white-space:nowrap"><%:5 Minute Load:%></strong></td>
                <td id="lb_load05_cur">0</td>
 
                <td style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></td>
@@ -282,7 +277,7 @@ $Id$
                <td id="lb_load05_peak">0</td>
        </tr>
        <tr>
-               <td style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid #ffaa00"><%:15 Minute Load:%></strong></td>
+               <td style="text-align:right; vertical-align:top"><strong style="border-bottom:2px solid #ffaa00; white-space:nowrap"><%:15 Minute Load:%></strong></td>
                <td id="lb_load15_cur">0</td>
 
                <td style="text-align:right; vertical-align:top"><strong><%:Average:%></strong></td>
index ff8382bf0b97202a33b16fd8bee6c91bb2ef95ad..465143ebce5e631be2c07756eea094188e7845a9 100644 (file)
@@ -8,8 +8,6 @@ You may obtain a copy of the License at
 
        http://www.apache.org/licenses/LICENSE-2.0
 
-$Id$
-
 -%>
 
 <%-
@@ -304,14 +302,14 @@ $Id$
                                                label_50_2.firstChild.data = rate_label(1.1 * 0.50 * data_max_2);
                                                label_75_2.firstChild.data = rate_label(1.1 * 0.75 * data_max_2);
 
-                                               label_rssi_cur.innerHTML = wireless_label(data_rssi[data_rssi.length-1], data_noise[data_noise.length-1]);
-                                               label_noise_cur.innerHTML = wireless_label(data_noise[data_noise.length-1]);
+                                               label_rssi_cur.innerHTML = wireless_label(data_rssi[data_rssi.length-1], data_noise[data_noise.length-1]).nobr();
+                                               label_noise_cur.innerHTML = wireless_label(data_noise[data_noise.length-1]).nobr();
 
-                                               label_rssi_avg.innerHTML = wireless_label(data_rssi_avg, data_noise_avg);
-                                               label_noise_avg.innerHTML = wireless_label(data_noise_avg);
+                                               label_rssi_avg.innerHTML = wireless_label(data_rssi_avg, data_noise_avg).nobr();
+                                               label_noise_avg.innerHTML = wireless_label(data_noise_avg).nobr();
 
-                                               label_rssi_peak.innerHTML = wireless_label(data_rssi_peak, data_noise_peak);
-                                               label_noise_peak.innerHTML = wireless_label(data_noise_peak);
+                                               label_rssi_peak.innerHTML = wireless_label(data_rssi_peak, data_noise_peak).nobr();
+                                               label_noise_peak.innerHTML = wireless_label(data_noise_peak).nobr();
 
                                                label_rate_cur.innerHTML = rate_label(data_rate[data_rate.length-1]);
                                                label_rate_avg.innerHTML = rate_label(data_rate_avg);
index 73a35bec98ef201cfb07febe7ad2ebc130afb66f..00b4be4868afc3cb354ca56992266a8e7f47e77c 100644 (file)
@@ -9,8 +9,6 @@ You may obtain a copy of the License at
 
        http://www.apache.org/licenses/LICENSE-2.0
 
-$Id$
-
 -%>
 <%-
 local bit = require "bit"
@@ -35,16 +33,18 @@ local free_byte = space_free * fstat.frsize
 local filter = { }
 
 
+local opkg_list = luci.model.ipkg.list_all
 local querypat
 if query and #query > 0 then
-       querypat = "*%s*" % query
+       querypat = '*%s*' % query
+       opkg_list = luci.model.ipkg.find
 end
 
 local letterpat
 if letter == 35 then
-       letterpat = "[^a-zA-Z]*"
+       letterpat = "[^a-z]*"
 else
-       letterpat = string.char(91, letter, letter + 32, 93, 42) -- '[' 'A' 'a' ']' '*'
+       letterpat = string.char(letter, 42) -- 'A' '*'
 end
 
 -%>
@@ -173,7 +173,7 @@ end
                                                <th class="cbi-section-table-cell" style="text-align:left"><%:Version%></th>
                                                <th class="cbi-section-table-cell" style="text-align:left"><%:Description%></th>
                                        </tr>
-                                       <% local empty = true; luci.model.ipkg.list_all(querypat or letterpat, function(n, v, d) if filter[n] then return end; empty = false %>
+                                       <% local empty = true; opkg_list(querypat or letterpat, function(n, v, d) if filter[n] then return end; empty = false %>
                                        <tr class="cbi-section-table-row cbi-rowstyle-<%=rowstyle()%>">
                                                <td style="text-align:left; width:10%"><a onclick="return window.confirm('<%:Install%> &quot;<%=luci.util.pcdata(n)%>&quot; ?')" href="<%=REQUEST_URI%>?submit=1&amp;install=<%=luci.util.pcdata(n)%>"><%:Install%></a></td>
                                                <td style="text-align:left"><%=luci.util.pcdata(n)%></td>
index 52e25e6f7884048fc872b3c76e9b199f103cad6e..1a4f510d7812162a2f2e8bf0ab9a25db1e9ecbb1 100644 (file)
@@ -536,6 +536,10 @@ static int run_daemon(void)
                                if (strstr(line, "TIME_WAIT"))
                                        continue;
 
+                               if (strstr(line, "src=127.0.0.1 ") &&
+                                   strstr(line, "dst=127.0.0.1 "))
+                                       continue;
+
                                if (sscanf(line, "%*s %*d %s", ifname) || sscanf(line, "%s %*d", ifname))
                                {
                                        if (!strcmp(ifname, "tcp"))
index 666f0864b3f5844062bb418c5eaa0ea91bb03212..e81e07c94e1f9040c507ba10af5b66efb18d3d7b 100644 (file)
@@ -251,15 +251,14 @@ function jsonstatus()
        ltn12.pump.all(json.Encoder(root):source(), http.write)
 end
 
-function public_status_json()
+function public_status_json(devs)
        local twa       = require "luci.tools.webadmin"
        local sys       = require "luci.sys"
        local i18n      = require "luci.i18n"
-       local path      = luci.dispatcher.context.requestpath
        local rv        = { }
 
        local dev
-       for dev in path[#path]:gmatch("[%w%.%-]+") do
+       for dev in devs:gmatch("[%w%.%-]+") do
                local j = { id = dev }
                local iw = luci.sys.wifi.getiwinfo(dev)
                if iw then
index bbf7c56ce0a92f392970d1d4be5ddcbd140c9ce8..8987b1cb46f636a3eb3b2c61be1cad898356f39b 100644 (file)
@@ -15,7 +15,6 @@ local fs = require "luci.fs"
 local util = require "luci.util"
 local uci = require "luci.model.uci".cursor()
 local profiles = "/etc/config/profile_"
-luci.i18n.loadc("freifunk")
 
 m = Map("freifunk", translate ("Community"))
 c = m:section(NamedSection, "community", "public", nil, translate("These are the basic settings for your local wireless community. These settings define the default values for the wizard and DO NOT affect the actual configuration of the router."))
index 6f998819a3b2eb4533b4a1f2defbf96586da613a..f6cdec7fe128a8fb06dd728cb04df07ac726373b 100644 (file)
@@ -11,8 +11,6 @@ You may obtain a copy of the License at
        http://www.apache.org/licenses/LICENSE-2.0
 ]]--
 
-luci.i18n.loadc("freifunk")
-
 m = Map("freifunk", translate("Contact"), translate("Please fill in your contact details below."))
 
 c = m:section(NamedSection, "contact", "public", "")
index 933efb45f41aaa5b41813d61c006107afb087251..a8beef846899f4c79b2d17cc750b1e23c5ae1cc9 100644 (file)
@@ -13,7 +13,6 @@ You may obtain a copy of the License at
 local uci = require "luci.model.uci".cursor()
 local ipkg = require "luci.model.ipkg"
 local community = uci:get("freifunk", "community", "name")
-luci.i18n.loadc("freifunk")
 
 if community == nil then
        luci.http.redirect(luci.dispatcher.build_url("admin", "freifunk", "profile_error"))
index b08c0f024940f37110fa2b9fe94920ad3ee0e4e2..a0b8f34bc9ea6ad27bb31658773313e0c1080e28 100644 (file)
@@ -13,7 +13,6 @@ You may obtain a copy of the License at
 local fs = require "nixio.fs"
 local uci = require "luci.model.uci".cursor()
 local community = uci:get("freifunk", "community", "name")
-luci.i18n.loadc("freifunk")
 
 if community == nil then
         luci.http.redirect(luci.dispatcher.build_url("admin", "freifunk", "profile_error"))
index e23ea901ab76c5a47fc49fdd883d43a99554f98b..fe1d8fe7ed630b1af988a987e2f1c8d57b87eed2 100644 (file)
@@ -1,6 +1,5 @@
 local fs = require "nixio.fs"
 local file = "/www/luci-static/index_user.html"
-luci.i18n.loadc("freifunk")
 
 m = Map("freifunk", translate("Edit index page"), translate("You can display additional content on the public index page by inserting valid XHTML in the form below.<br />Headlines should be enclosed between &lt;h2&gt; and &lt;/h2&gt;."))
 
index 909b27065b738544aac1d4adc45bb0d16bc7c316..b2e168363ff194b000bae4ccb23fe4ad92e85dca 100644 (file)
 
 <% if has_latlon then %>
        <iframe style="width:100%; height:640px; border:none" src="<%=luci.dispatcher.build_url("freifunk/map/content")%>"></iframe>
+       <h3><%:Legend%>:</h3>
+       <ul>
+               <li><strong><span style="color:#00cc00"><%:Green%></span></strong>:<%:Very good (ETX < 2)%></li>
+               <li><strong><span style="color:#ffcb05"><%:Yellow%></span></strong>:<%:Good (2 < ETX < 4)%></li>
+               <li><strong><span style="color:#ff6600"><%:Orange%></span></strong>:<%:Still usable (4 < ETX < 10)%></li>
+               <li><strong><span style="color:#bb3333"><%:Red%></span></strong>:<%:Bad (ETX > 10)%></li>
+       </ul>
+
 <% else %>
        <h2><%:Map Error%></h2>
        <p><%_The OLSRd service is not configured to capture position data from the network.<br />
                Please make sure that the nameservice plugin is properly configured and that the <em>latlon_file</em> option is enabled.%></p>
 <% end %>
-
 <%+footer%>
+
index f373a7a6b7006cb48f77795e9b6e622f7e98f16f..02b1afdab0bd65fd4f6aae5c6f048251c260593b 100644 (file)
                                if (null != alias[fromip]) fromip = alias[fromip];
                                if (null != points[fromip] && null != points[toip])
                                {
-                                       var w = 1;
-                                       if (etx < 4) w++;
-                                       if (etx < 2) w++;
+                                       var color;
+                                       var red = 240;
+                                       var green = 0;
+                                       var blue = 0;
+                                       var w = 1
+
+                                       if (etx < 100) {red=252;green=102;blue=0;w=2};
+                                       if (etx < 10) {red=255;green=203;blue=5;w=3};
+                                       if (etx < 4) {red=240;green=255;blue=0;w=4};
+                                       if (etx < 2) {red=0;green=204;blue=0;w=5};
+                                       if (etx < 1) {red=80;green=0;blue=0;w=1};
+
                                        map.AddPolyline(new VEPolyline('id'+lineid, [points[fromip], points[toip]],
-                                       new VEColor(102,Math.floor(lq*255.0),Math.floor(nlq*255.0),1.0), w));
+                                       new VEColor(red, green, blue, 0.5), w));
+
+
                                }
                                else
                                {
index 92169a80da92c65c9a0df5a124299f3feaff4406..e0252ba8919cfc5ca234d9d9eaa7a6aa8f25c39e 100644 (file)
@@ -17,7 +17,6 @@ else
        mail = contact.mail
 end
 
-luci.i18n.loadc("freifunk")
 %>
 
 <h2><%:Freifunk Overview%></h2>
index 74c52effbec96a5e1c477cb1f5d62e65dd02a77f..16d494d0b9e4f9d10411145ccfbf2e7dbf8606c6 100644 (file)
@@ -245,6 +245,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "El rang permès és entre 1 i 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Es crearà una xarxa addicional si deixes això sense marcar."
 
@@ -841,6 +846,9 @@ msgstr ""
 msgid "Force"
 msgstr "Força"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2631,9 +2639,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr "Esperant un encaminador..."
-
 msgid "Warning"
 msgstr "Alerta"
 
@@ -2815,6 +2820,9 @@ msgstr "Sí"
 msgid "« Back"
 msgstr "« Endarrere"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Esperant un encaminador..."
+
 #~ msgid "Active Leases"
 #~ msgstr "Leases Actius"
 
diff --git a/po/ca/commands.po b/po/ca/commands.po
new file mode 100644 (file)
index 0000000..6fbb983
--- /dev/null
@@ -0,0 +1,90 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 4bc17886cb38803cf9ed977fa873f4b640e5abaa..72c0263182beb4e8aaa259d729e87c02e0f81f51 100644 (file)
@@ -39,6 +39,9 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "Força actualització cada"
 
@@ -55,6 +58,9 @@ msgstr ""
 msgid "Network"
 msgstr ""
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr ""
 
@@ -87,9 +93,3 @@ msgstr ""
 
 msgid "network"
 msgstr ""
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index fb3216df5dc3eb0b39f01a3c7599d40cedd861db..27d2b46170384a1506e1794c9895c4ff7bf87e95 100644 (file)
@@ -177,6 +177,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -200,6 +203,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index de8657c489e3cd5f4d65d27692e2d7c7748d3472..261c08abf9009352c217b753a16d04e9e34e0774 100644 (file)
@@ -15,6 +15,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -81,6 +84,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -102,6 +108,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Hola i benvingut a la xarxa de"
 
@@ -114,6 +126,15 @@ msgstr ""
 msgid "Hostname"
 msgstr "Nom de màquina"
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -144,6 +165,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -195,6 +219,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -225,6 +252,9 @@ msgstr ""
 msgid "Realname"
 msgstr "Nom real"
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -254,6 +284,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -303,6 +336,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -312,6 +348,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index f035cf46d9281104740ef156f202766ba86cfb97..180d771c8bd90c54e78fcfe71776430835a9622a 100644 (file)
@@ -1,3 +1,6 @@
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -19,9 +22,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -32,9 +44,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -42,6 +62,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -55,6 +78,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index a63deabbfc4b611f2c0957855ae15abedf160f95..11cac08cbb57997d74fab4702373473bfe49f217 100644 (file)
@@ -8,6 +8,7 @@ msgstr ""
 "PO-Revision-Date: 2009-05-27 11:15+0200\n"
 "Last-Translator: Eduard Duran <iopahopa@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -68,7 +69,7 @@ msgid "Collectd Settings"
 msgstr "Configuració Collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -115,6 +116,9 @@ msgstr "Ús d'espai en disc"
 msgid "Disk Usage"
 msgstr "Ús de disc"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Mostra l'hora"
 
@@ -192,12 +196,6 @@ msgstr "Ignora adreces origen"
 msgid "Incoming interface"
 msgstr "Interfície entrant"
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr "Configuració de connector d'interfície"
 
@@ -291,11 +289,6 @@ msgstr "Configuració del connector de xarxa"
 msgid "Network plugins"
 msgstr "Connectors de xarxa"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr "Protocol de xarxa"
 
@@ -320,13 +313,6 @@ msgstr "Interfície sortint"
 msgid "Output plugins"
 msgstr "Connectors de sortida"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -428,11 +414,6 @@ msgstr "Càrrega de sistema"
 msgid "System plugins"
 msgstr "Connectors de sistema"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr "Connexions TCP"
 
@@ -448,6 +429,9 @@ msgstr "TTL per paquets ping"
 msgid "Table"
 msgstr "Taula"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -610,13 +594,6 @@ msgstr ""
 "El connector unixsock crea un socket Unix que es pot fer servir per llegir "
 "dades recollides d'una instància collectd."
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"El connector Wireless recull estadístiques sobre la potència del senyal "
-"sense fils, el soroll i la qualitat."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -633,6 +610,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr "Intenta resoldre el nom de màquina (fqdn)"
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "Sock Unix"
 
@@ -651,9 +637,6 @@ msgstr "Monitoreig detallat"
 msgid "Wireless"
 msgstr "Wireless"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Configuració del connector Wireless"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
@@ -677,3 +660,13 @@ msgstr "segons; múltiples separats per espais"
 
 msgid "server interfaces"
 msgstr "interfícies de servidor"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "El connector Wireless recull estadístiques sobre la potència del senyal "
+#~ "sense fils, el soroll i la qualitat."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Configuració del connector Wireless"
index 0743ad9267e449ffd4b755786124db67cca28a72..7544c90d5b94adf39f8dcf604dab95a83f0f5fb5 100644 (file)
@@ -1,8 +1,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-08-26 23:10+0200\n"
-"Last-Translator: jhenner <jhenner@redhat.com>\n"
+"PO-Revision-Date: 2012-11-04 22:51+0200\n"
+"Last-Translator: luki555 <luki555@centrum.sk>\n"
 "Language-Team: none\n"
 "Language: cs\n"
 "MIME-Version: 1.0\n"
@@ -243,6 +243,11 @@ msgstr "Povolit upstream odpovědi na 127.0.0.0/8 rozsah, např. pro RBL služby
 msgid "Allowed range is 1 to 65535"
 msgstr "Hodnota musí ležet v intervalu 1 až 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Pokud není zaškrtnuto, bude vytvořena dodatečná síť"
 
@@ -855,6 +860,9 @@ msgstr "Nahrávám..."
 msgid "Force"
 msgstr "Vynutit"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr "Vynutit CCMP (AES)"
 
@@ -2290,8 +2298,8 @@ msgid ""
 "samp>)"
 msgstr ""
 "Souborový systém, který byl použit pro formátování paměti (<abbr title="
-"\"například\">napři.</abbr> <samp><abbr title=\"Souborový systém Ext3"
-"\">ext3</abbr></samp>)"
+"\"například\">napři.</abbr> <samp><abbr title=\"Souborový systém "
+"Ext3\">ext3</abbr></samp>)"
 
 msgid ""
 "The flash image was uploaded. Below is the checksum and file size listed, "
@@ -2674,9 +2682,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr "Čekám na router.."
-
 msgid "Warning"
 msgstr "Varování"
 
@@ -2854,6 +2859,9 @@ msgstr "ano"
 msgid "« Back"
 msgstr "« Zpět"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Čekám na router.."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "Povolit zabudovaný NTP server"
 
diff --git a/po/cs/commands.po b/po/cs/commands.po
new file mode 100644 (file)
index 0000000..e40381b
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\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>=2 && n<=4) ? 1 : 2;\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index bc524eab7add09f3db0cd458e7ce3bb5500c5a98..ba1c9ec8b2e8e8da80050eaf9ecf9a69318ac35d 100644 (file)
@@ -33,6 +33,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Povolit"
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "Vynutit aktualizaci každých"
 
@@ -48,6 +51,9 @@ msgstr "Rozhraní"
 msgid "Network"
 msgstr "Síť"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr "Heslo"
 
@@ -81,9 +87,3 @@ msgstr "min"
 
 msgid "network"
 msgstr ""
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 15f9a85e4198e1ff510063416de9c850f06ed673..88460613a4d8633a2a7b1ce2a4685cdada7c8279 100644 (file)
@@ -177,6 +177,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr "Uspat mezi jednotlivými požadavky"
 
@@ -200,6 +203,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr "zkontrolovat ostatní sítě"
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index ad1f362e3c1c3df57afde7dad2f6000bf8436165..867d501e8d0ea55ea04c797b7d0c372559c7c737 100644 (file)
@@ -14,6 +14,9 @@ msgstr ""
 msgid "BSSID"
 msgstr "BSSID"
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr "Základní nastavení"
 
@@ -85,6 +88,9 @@ msgstr "ESSID"
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr "Chyba"
 
@@ -106,6 +112,12 @@ msgstr "Brána"
 msgid "Go to"
 msgstr "Jít na"
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Dobrý den, vítejte v síti"
 
@@ -118,6 +130,15 @@ msgstr "Domovská stránka"
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -146,6 +167,9 @@ msgstr "Uchovat nastavení"
 msgid "Latitude"
 msgstr "Zeměpisná šířka"
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -197,6 +221,9 @@ msgstr "OLSR"
 msgid "Operator"
 msgstr "Operátor"
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr "Přehled"
 
@@ -227,6 +254,9 @@ msgstr "Profil (Expert)"
 msgid "Realname"
 msgstr "Skutečné jméno"
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr "SSID"
 
@@ -258,6 +288,9 @@ msgstr "Statistiky"
 msgid "Status"
 msgstr "Stav"
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr "Systém"
 
@@ -307,6 +340,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -315,6 +351,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 16ed00563976672b56b8489e56cb398e8199cddb..2c84cb44dfe898b41dfeb00ecb18befe472c67ed 100644 (file)
@@ -7,6 +7,9 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -28,9 +31,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -41,9 +53,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -51,6 +71,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -64,6 +87,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index f5a8b3dfdc53555e63aa8cfd019ddd906666e007..cb6087939c4fb5f32ebae351cdf634559f0b1b6a 100644 (file)
@@ -3,6 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -62,7 +63,7 @@ msgid "Collectd Settings"
 msgstr "Nastavení Collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -109,6 +110,9 @@ msgstr "Využití místa na disku"
 msgid "Disk Usage"
 msgstr "Využití disku"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr ""
 
@@ -184,12 +188,6 @@ msgstr "Ignorovat zdrojové adresy"
 msgid "Incoming interface"
 msgstr "Příchozí rozhraní"
 
-msgid "Installed network plugins:"
-msgstr "Instalované síťové pluginy:"
-
-msgid "Installed output plugins:"
-msgstr "Instalované výstupní pluginy:"
-
 msgid "Interface Plugin Configuration"
 msgstr "Nastavení Interface pluginu"
 
@@ -284,13 +282,6 @@ msgstr "Nastavení pluginu Síť"
 msgid "Network plugins"
 msgstr "Síťové pluginy"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-"Síťové pluginy jsou používány pro shromažďování informací o otevřených tcp "
-"spojeních, provozu na rozhraní, pravidel iptables atd."
-
 msgid "Network protocol"
 msgstr "Síťový protokol"
 
@@ -315,16 +306,6 @@ msgstr "Odchozí rozhraní"
 msgid "Output plugins"
 msgstr "Výstupní pluginy"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-"Výstupní pluginy poskytují různé možnosti ukládání sesbíraných dat. Plugin "
-"je možné v jeden okamžik povolit vícekrát , například pro ukládání dat do "
-"rrd databází a předávání dat po síti jiným instancím daemonu collectd."
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -424,13 +405,6 @@ msgstr "Zatížení systému"
 msgid "System plugins"
 msgstr "Systémové pluginy"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-"Systémové pluginy, shromažďující hodnoty o systémovém stavu a zdrojích, "
-"používaných zařízením:"
-
 msgid "TCP Connections"
 msgstr "TCP spojení"
 
@@ -446,6 +420,9 @@ msgstr "TTL pro pakety pingu"
 msgid "Table"
 msgstr ""
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -601,13 +578,6 @@ msgstr ""
 "Plugin Unixsock vytváří unixový socket, které může být využit pro čtení dat "
 "z běžící instance collectd."
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"Plugin Wireless shromažďuje statistiky o síle, šumu a kvalitě bezdrátového "
-"signálu."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -622,6 +592,15 @@ msgstr "Tato sekce určuje, na které servery budou odeslána shromážděná da
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -640,9 +619,6 @@ msgstr "Podrobný monitoring"
 msgid "Wireless"
 msgstr "Wireless"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Nastavení pluginu Wireless"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr "Nastavení pluginu Wireless Iwinfo"
 
@@ -666,3 +642,43 @@ msgstr "sekundy, více hodnot oddělených mezerou"
 
 msgid "server interfaces"
 msgstr "rozhraní serveru"
+
+#~ msgid "Installed network plugins:"
+#~ msgstr "Instalované síťové pluginy:"
+
+#~ msgid "Installed output plugins:"
+#~ msgstr "Instalované výstupní pluginy:"
+
+#~ msgid ""
+#~ "Network plugins are used to collect information about open tcp "
+#~ "connections, interface traffic, iptables rules etc."
+#~ msgstr ""
+#~ "Síťové pluginy jsou používány pro shromažďování informací o otevřených tcp "
+#~ "spojeních, provozu na rozhraní, pravidel iptables atd."
+
+#~ msgid ""
+#~ "Output plugins provide different possibilities to store collected data. "
+#~ "It is possible to enable multiple plugin at one, for example to store "
+#~ "collected data in rrd databases and to transmit the data over the network "
+#~ "to other collectd instances."
+#~ msgstr ""
+#~ "Výstupní pluginy poskytují různé možnosti ukládání sesbíraných dat. Plugin "
+#~ "je možné v jeden okamžik povolit vícekrát , například pro ukládání dat do "
+#~ "rrd databází a předávání dat po síti jiným instancím daemonu collectd."
+
+#~ msgid ""
+#~ "System plugins collecting values about system state and ressource usage "
+#~ "on the device.:"
+#~ msgstr ""
+#~ "Systémové pluginy, shromažďující hodnoty o systémovém stavu a zdrojích, "
+#~ "používaných zařízením:"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "Plugin Wireless shromažďuje statistiky o síle, šumu a kvalitě bezdrátového "
+#~ "signálu."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Nastavení pluginu Wireless"
index f7350cbdfcb3bfbe7a9cb5c32cc4d2344872e3c6..ad4590c627fbdbf377f5ae37b97a1ad1bc5cc36f 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-09-29 11:11+0200\n"
+"PO-Revision-Date: 2012-11-21 20:47+0200\n"
 "Last-Translator: Jo-Philipp <xm@subsignal.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: de\n"
@@ -245,6 +245,14 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "Erlaubter Bereich 1 bis 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+"Immer 40MHz Kanalbreite nutzen, auch wenn der sekundäre Kanal andere "
+"Netzwerke überschneidet. Die Benutzung dieser Option verletzt den IEEE "
+"802.11n-2009 Standard!"
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr ""
 "Erzeugt ein zusätzliches Netzwerk wenn diese Option nicht ausgewählt ist"
@@ -863,6 +871,9 @@ msgstr "Firmware wird installiert..."
 msgid "Force"
 msgstr "Start erzwingen"
 
+msgid "Force 40MHz mode"
+msgstr "40MHz-Modus erzwingen"
+
 msgid "Force CCMP (AES)"
 msgstr "CCMP (AES) erzwingen"
 
@@ -2746,9 +2757,6 @@ msgstr "Änderungen werden angewandt..."
 msgid "Waiting for command to complete..."
 msgstr "Der Befehl wird ausgeführt..."
 
-msgid "Waiting for router..."
-msgstr "Warte auf den Router..."
-
 msgid "Warning"
 msgstr "Warnung"
 
@@ -2928,6 +2936,9 @@ msgstr "ja"
 msgid "« Back"
 msgstr "« Zurück"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Warte auf den Router..."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "NTP Server aktivieren"
 
diff --git a/po/de/commands.po b/po/de/commands.po
new file mode 100644 (file)
index 0000000..09c56b3
--- /dev/null
@@ -0,0 +1,98 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"PO-Revision-Date: 2012-11-21 18:45+0200\n"
+"Last-Translator: Jo-Philipp <xm@subsignal.org>\n"
+"Language-Team: none\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.0.6\n"
+
+msgid "A short textual description of the configured command"
+msgstr "Kurze Beschreibung des abgespeicherten Kommandos"
+
+msgid "Access command with"
+msgstr "Kommando aufrufen mit"
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+"Ausführen des Kommandos und Herunterladen der Ausgabe ohne vorherige "
+"Authentifizierung ermöglichen"
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr "Erlaube dem Nutzer zusätzliche Kommandozeilenargumente zu übergeben"
+
+msgid "Arguments:"
+msgstr "Argumente:"
+
+msgid "Binary data not displayed, download instead."
+msgstr "Binärdaten ausgeblendet, laden Sie die Ausgaben stattdessen herunter"
+
+msgid "Code:"
+msgstr "Rückgabewert:"
+
+msgid "Collecting data..."
+msgstr "Sammle Daten..."
+
+msgid "Command"
+msgstr "Kommando"
+
+msgid "Command failed"
+msgstr "Kommando fehlgeschlagen"
+
+msgid "Command line to execute"
+msgstr "Auszuführende Kommandozeile"
+
+msgid "Command successful"
+msgstr "Kommando erfolgreich"
+
+msgid "Command:"
+msgstr "Kommando:"
+
+msgid "Configure"
+msgstr "Konfigurieren"
+
+msgid "Custom Commands"
+msgstr "Benutzerdefinierte Kommandos"
+
+msgid "Custom arguments"
+msgstr "Benutzerdefinierte Argumente"
+
+msgid "Dashboard"
+msgstr "Übersicht"
+
+msgid "Description"
+msgstr "Beschreibung"
+
+msgid "Download"
+msgstr "Herunterladen"
+
+msgid "Failed to execute command!"
+msgstr "Kommando konnte nicht ausgeführt werden!"
+
+msgid "Link"
+msgstr "Link"
+
+msgid "Loading"
+msgstr "Lade"
+
+msgid "Public access"
+msgstr "Öffentlicher Zugriff"
+
+msgid "Run"
+msgstr "Ausführen"
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+"Diese Seite ermöglicht die Konfiguration eigener Shell-Kommandos um diese "
+"einfach über das Webinterface ausführen zu können."
+
+msgid "Waiting for command to complete..."
+msgstr "Warte auf die Ausführung des Kommandos..."
index 3791e47c2ddabe3269d0c66d0b49ef2054abd892..4fc45306e593c0b0e741e4e1bff33f3c5ce44815 100644 (file)
@@ -3,7 +3,7 @@ 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-05-13 09:09+0200\n"
+"PO-Revision-Date: 2012-11-21 20:48+0200\n"
 "Last-Translator: Jo-Philipp <xm@subsignal.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: de\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Check for changed IP every"
 msgstr "Teste auf neue IP alle"
@@ -35,6 +35,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Aktivieren"
 
+msgid "Event interface"
+msgstr "Ereignis-Schnittstelle"
+
 msgid "Force update every"
 msgstr "Erzwinge Aktualisierung alle"
 
@@ -50,6 +53,10 @@ msgstr "Schnittstelle"
 msgid "Network"
 msgstr "Netzwerk"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+"Spezifiziert die durch den DDNS-Prozess überwachte Netzwerkschnittstelle"
+
 msgid "Password"
 msgstr "Passwort"
 
@@ -81,9 +88,3 @@ msgstr "Minuten"
 
 msgid "network"
 msgstr "Netzwerk"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 4f8e965719656e6aacdd29c3251bd10c035d1284..606358aa00d9bf83a64fc85c7c746a4b2c698014 100644 (file)
@@ -139,8 +139,8 @@ msgid ""
 "Override the information returned by the MAC to Device Info Script (mac-to-"
 "devinfo) for a specified range of MAC Addresses"
 msgstr ""
-"Überschreibt die Informationen die durch das MAC-zu-Gerätename-Programm "
-"(mac-to-devinfo) für einen bestimmten MAC-Adressbereich zurückgegeben werden"
+"Überschreibt die Informationen die durch das MAC-zu-Gerätename-Programm (mac-"
+"to-devinfo) für einen bestimmten MAC-Adressbereich zurückgegeben werden"
 
 msgid "Perform Scans (this can take a few minutes)"
 msgstr "Führe Suche aus (Dies kann einige Minuten dauern)"
@@ -193,6 +193,9 @@ msgstr "Suche nach SIP-unterstützenden Geräten im spezifizierten Netzwerk"
 msgid "Scanning Configuration"
 msgstr "Such-Konfiguration"
 
+msgid "Scans for devices on specified networks."
+msgstr "Scans for devices on specified networks."
+
 msgid "Sleep Between Requests"
 msgstr "Wartezeit zwischen den Versuchen"
 
@@ -216,6 +219,3 @@ msgstr "Hersteller"
 
 msgid "check other networks"
 msgstr "Prüfe andere Netzwerke"
-
-msgid "Scans for devices on specified networks."
-msgstr "Scans for devices on specified networks."
index f62cb82a72dd1a427cab99b46882d16c8895193b..79c22953b70b69d191163bcf86cfb94097f99cd9 100644 (file)
@@ -2,13 +2,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: Manuel Munz <freifunk@somakoma.de>\n"
+"PO-Revision-Date: 2012-11-21 20:53+0200\n"
+"Last-Translator: Jo-Philipp <xm@subsignal.org>\n"
 "Language-Team: \n"
-"Language: \n"
+"Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid ""
 "All traffic from interfaces belonging to these zones will be sent via a "
@@ -21,7 +23,7 @@ msgid "Enable Policy Routing"
 msgstr "Policy Routing aktivieren"
 
 msgid "Fallback to mesh"
-msgstr ""
+msgstr "Auf Mesh zurückfallen"
 
 msgid "Firewall zones"
 msgstr "Firewallzonen"
@@ -41,6 +43,8 @@ msgid ""
 "If your own gateway is not available then fallback to the mesh default "
 "gateway."
 msgstr ""
+"Wenn das eigene lokale Gateway nicht verfügbar ist, dann nutze das aktuelle "
+"Mesh-Default-Gateway."
 
 msgid "Policy Routing"
 msgstr "Policy Routing"
index 0fc5989922f89f1886689ca695a4bf0dfb67a26e..3c4dd158dd6cee89d8f92111a71ccdfe988824bd 100644 (file)
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2011-05-12 17:58+0200\n"
-"PO-Revision-Date: 2012-08-10 01:55+0200\n"
+"PO-Revision-Date: 2012-11-21 20:52+0200\n"
 "Last-Translator: Jo-Philipp <xm@subsignal.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: de\n"
@@ -16,6 +16,9 @@ msgstr ""
 msgid "BSSID"
 msgstr "BSSID"
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr "Grundeinstellungen"
 
@@ -84,6 +87,9 @@ msgstr "ESSID"
 msgid "Edit index page"
 msgstr "Indexseite bearbeiten"
 
+msgid "Enable IPv6"
+msgstr "IPv6 aktivieren"
+
 msgid "Error"
 msgstr "Fehler"
 
@@ -105,6 +111,12 @@ msgstr "Gateway"
 msgid "Go to"
 msgstr "Gehe zu"
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Hallo und willkommen im Netz von"
 
@@ -117,6 +129,15 @@ msgstr "Homepage"
 msgid "Hostname"
 msgstr "Hostname"
 
+msgid "IPv6 Config"
+msgstr "IPv6 Konfiguration"
+
+msgid "IPv6 Prefix"
+msgstr "IPv6 Prefix"
+
+msgid "IPv6 network in CIDR notation."
+msgstr "IPv6 Subnetz in CIDR-Notation"
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 "Wird diese Option gewählt dann wird das standardmässige Inhaltselement nicht "
@@ -150,6 +171,9 @@ msgstr "Konfigurationsdateien wiederherstellen"
 msgid "Latitude"
 msgstr "Breite"
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr "Load"
 
@@ -201,6 +225,9 @@ msgstr "OLSR"
 msgid "Operator"
 msgstr "Betreiber"
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr "Übersicht"
 
@@ -231,6 +258,9 @@ msgstr "Profil (Expertenmodus)"
 msgid "Realname"
 msgstr "Name"
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr "SSID"
 
@@ -262,6 +292,9 @@ msgstr "Statistiken"
 msgid "Status"
 msgstr "Status"
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr "System"
 
@@ -321,6 +354,9 @@ msgstr "Uptime"
 msgid "Verify downloaded images"
 msgstr "Heruntergeladene Images verifizieren"
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -331,6 +367,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr "WLAN Übersicht"
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 4d4df05ea1ca8ad88a1d25b1e9aafe083bf31cc6..478a4727bcf8daf5edd213d36bcd177d864a9436 100644 (file)
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2011-06-26 15:36+0200\n"
-"PO-Revision-Date: 2011-06-26 15:48+0200\n"
+"PO-Revision-Date: 2012-11-21 20:51+0200\n"
 "Last-Translator: Jo-Philipp <xm@subsignal.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: de\n"
@@ -11,7 +11,10 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
+
+msgid "Activate or deactivate IPv6 config globally."
+msgstr "IPv6 global aktivieren oder deaktivieren"
 
 msgid "Channel"
 msgstr "Kanal"
@@ -36,9 +39,18 @@ msgstr "DHCP vergibt automatisch IP-Adressen an Clients"
 msgid "Enable DHCP"
 msgstr "DHCP aktivieren"
 
+msgid "Enable RA"
+msgstr "RAs aktivieren"
+
+msgid "Enabled"
+msgstr "Aktiviert"
+
 msgid "General Settings"
 msgstr "Allgemeine Einstellungen"
 
+msgid "IPv6 Settings"
+msgstr "IPv6 Einstellungen"
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -51,9 +63,19 @@ msgstr "Schnittstellen"
 msgid "Mesh IP address"
 msgstr "Mesh-IP-Adresse"
 
+msgid "Mesh IPv6 address"
+msgstr "Mesh-IPv6-Adresse"
+
 msgid "Mesh Wizard"
 msgstr "Mesh-Assistent"
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+"Hinweis: Dies konfiguriert die Schnittstelle für den Mesh-Betrieb, d.h. sie "
+"wird zur Freifunk-Zone hinzugefügt und OLSR eingerichtet."
+
 msgid "Protect LAN"
 msgstr "LAN schützen"
 
@@ -63,6 +85,9 @@ msgstr ""
 "Diese Option aktivieren um anderen den Zugriff auf die lokale "
 "Internetverbindung zu gestatten"
 
+msgid "Send router advertisements on this device."
+msgstr "Router-Advertisements auf dieser Schnittstelle senden"
+
 msgid "Share your internet connection"
 msgstr "Internetverbindung freigeben"
 
@@ -80,6 +105,13 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr "Die angegebene IP-Adresse ist nicht Teil des Mesh-Adressbereiches"
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+"Diese ist eine eindeutige IPv6-Adresse in CIDR-Notation (z.B. "
+"2001:1:2:3::1/64) welche bei der lokalen Community registriert werden muss."
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 579cceed55980e2b5d1b9d1bd3463f9f91e28a97..3b21417138ea8e84d4efe23eef1dc0a97b325d02 100644 (file)
@@ -1,40 +1,42 @@
-#, fuzzy
 msgid ""
 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: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2012-11-28 10:44+0200\n"
+"Last-Translator: dunkelschunkel <dunkelschunkel@googlemail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.0.6\n"
 
+# Das wäre der Pin für Clock, also Takt, eventuell kann das auch rein. Halte obige Variante aber für hinreichend
 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 ""
+msgstr "Aktivieren"
 
 msgid "MMC/SD driver configuration"
-msgstr ""
+msgstr "MMC/SD Treibereinstellungen"
 
 msgid "Mode"
-msgstr ""
+msgstr "Modus"
 
 msgid "Name"
-msgstr ""
+msgstr "Name"
 
 msgid "Settings"
 msgstr "Einstellungen"
index d64a98ad90a776fd61421567d39dc7f917265d9f..70824bbdf0735d6ed5660bc7091cf5d29b4bafb7 100644 (file)
@@ -3,15 +3,15 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2011-10-18 12:28+0200\n"
-"Last-Translator: Manuel <freifunk@somakoma.de>\n"
+"PO-Revision-Date: 2012-11-21 20:54+0200\n"
+"Last-Translator: Jo-Philipp <xm@subsignal.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Active MID announcements"
 msgstr "Aktive MID-Ankündigungen"
@@ -146,6 +146,13 @@ msgstr "Sprünge"
 msgid "Hostname"
 msgstr "Hostname"
 
+msgid ""
+"Hosts in a OLSR routed network can announce connecitivity to external "
+"networks using HNA messages."
+msgstr ""
+"Rechner in einem OLSR-geroutetem Netzwerk können Konnektivität zu externen "
+"Netzwerken mittels HNA-Nachrichten ankündigen."
+
 msgid ""
 "Hysteresis for link sensing (only for hopcount metric). Hysteresis adds more "
 "robustness to the link sensing but delays neighbor registration. Defaults is "
@@ -276,6 +283,9 @@ msgstr ""
 msgid "Known OLSR routes"
 msgstr "Bekannte OLSR-Routen"
 
+msgid "LQ"
+msgstr "LQ"
+
 msgid "LQ aging"
 msgstr "LQ-Alterung"
 
@@ -388,6 +398,9 @@ msgstr ""
 msgid "NAT threshold"
 msgstr "NAT-Schwellenwert"
 
+msgid "NLQ"
+msgstr "NLQ"
+
 msgid "Neighbors"
 msgstr "Nachbarn"
 
@@ -665,20 +678,3 @@ msgstr ""
 
 msgid "Willingness"
 msgstr "Bereitschaft"
-
-#~ msgid ""
-#~ "Link quality algorithm (only for lq level 2).<br /><b>etx_float</b>: "
-#~ "floating point ETX with exponential aging<br /><b>etx_fpm</b> : same as "
-#~ "etx_float, but with integer arithmetic<br /><b>etx_ff</b> : ETX freifunk, "
-#~ "an etx variant which use all OLSR traffic (instead of only hellos) for "
-#~ "ETX calculation<br /><b>etx_ffeth</b>: incompatible variant of etx_ff "
-#~ "that allows ethernet links with ETX 0.1.<br />Defaults to \"etx_ff\""
-#~ msgstr ""
-#~ "Algorithmus zur Bestimmung der Linkqualität, kann nur zusammen mit "
-#~ "Linkquality Level 2 verwendet werden.<br /><b>etx_float</b>: floating "
-#~ "point ETX mit exponentieller Alterung<br /><b>etx_fpm</b> : wie "
-#~ "etx_float, rechnet aber mit integeren Zahlen.<br /><b>etx_ff</b> : ETX "
-#~ "freifunk, eine ETX-Variante die den kompletten OLSR Traffic (statt nur "
-#~ "Hellos) zur ETX-Berechnung verwendet.<br /><b>etx_ffeth</b>: Inkompatible "
-#~ "Variante von etx_ff, die ETX 0.1 für kabelgebundene Links erlaubt.<br /"
-#~ ">Der Defaultwert ist \"etx_ff\"."
index 93b6fe816296c5e8998ad543852bd069095898ab..1dc8f9ad0abd72c5fbacb421ac137dff8b30660b 100644 (file)
@@ -3,18 +3,18 @@ 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-03-22 14:44+0200\n"
-"Last-Translator: Anonymous Pootle User\n"
+"PO-Revision-Date: 2012-11-28 10:52+0200\n"
+"Last-Translator: dunkelschunkel <dunkelschunkel@googlemail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "%s"
-msgstr ""
+msgstr "%s"
 
 msgid "'net30', 'p2p', or 'subnet'"
 msgstr "Topologietyp"
index 05dbf7fd276bb71ca43268967da6fc4bdbe0273f..999bdc598e43d0a1e3f02fcf580ba038b992911f 100644 (file)
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2012-09-02 21:44+0200\n"
+"PO-Revision-Date: 2012-12-01 15:14+0200\n"
 "Last-Translator: Manuel <freifunk@somakoma.de>\n"
 "Language-Team: \n"
 "Language: de\n"
@@ -87,7 +87,7 @@ msgstr ""
 "Uploadgeschwindigkeit von Clients auf diesen Wert limitieren (kbyte/s) "
 
 msgid "Contact"
-msgstr "Kontaktiere"
+msgstr "Kontakt"
 
 msgid "Decline"
 msgstr "Ablehnen"
index 126a65e6b2a709d6578e731a9984e4e321dc39f9..75eb8929b575d3fa25a7f1949405c770b0056917 100644 (file)
@@ -68,7 +68,7 @@ msgid "Collectd Settings"
 msgstr "Collectd Einstellungen"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -115,6 +115,9 @@ msgstr "Plattenspeicher"
 msgid "Disk Usage"
 msgstr "Plattenauslastung"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Zeitspanne zeigen »"
 
@@ -194,12 +197,6 @@ msgstr "Quelladressen ignorieren"
 msgid "Incoming interface"
 msgstr "eingehende Schnittstelle"
 
-msgid "Installed network plugins:"
-msgstr "Installierte Netzwerk-Plugins:"
-
-msgid "Installed output plugins:"
-msgstr "Installierte Ausgabe-Plugins:"
-
 msgid "Interface Plugin Configuration"
 msgstr "Interface Plugin Konfiguration"
 
@@ -295,13 +292,6 @@ msgstr "Network Plugin Konfiguration"
 msgid "Network plugins"
 msgstr "Netzwerkplugins"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-"Netzwerkplugins werden benutzt um Informationen über offene TCP-"
-"Verbindungen, Datenverkehr/Volumen, Iptables/Firewall Regeln etc. zu sammeln"
-
 msgid "Network protocol"
 msgstr "Netzwerkprotokoll"
 
@@ -326,17 +316,6 @@ msgstr "ausgehende Schnittstelle"
 msgid "Output plugins"
 msgstr "Ausgabeplugins"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-"Ausgabeplugins ermöglichen es gesammelte Daten zu speichern. Mehrere Plugins "
-"können gleichzeitig aktiviert werden, z.B. um Daten in RRD-Datenbanken zu "
-"speichern und gleichzeitig über das Netzwerk an andere Collectd-Instanzen zu "
-"versenden."
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -436,13 +415,6 @@ msgstr "Systemlast"
 msgid "System plugins"
 msgstr "Systemplugins"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-"Systemplugins sammeln Daten zum Systemzustand und den Ressoursenbedarf des "
-"Gerätes"
-
 msgid "TCP Connections"
 msgstr "TCP-Verbindungen"
 
@@ -458,6 +430,9 @@ msgstr "TTL für Ping Pakete"
 msgid "Table"
 msgstr "Tabelle"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -625,13 +600,6 @@ msgstr ""
 "Das Unixsock-Plugin erstellt einen Unix-Socket über welchen gesammelte Werte "
 "aus der laufenden Collectd-Instanz ausgelesen werden können."
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"Das Wireless-Plugin sammelt Statistiken über die drahtlose Signalstärke, den "
-"Störpegel und die Signalqualität."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -648,6 +616,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr "automatisch vollen Hostnamen herausfinden"
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -666,9 +643,6 @@ msgstr "Schnittstellen detailliert überwachen"
 msgid "Wireless"
 msgstr "Drahtlos"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Wireless Plugin Konfiguration"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr "Wireless-iwinfo Plugin Konfiguration"
 
@@ -692,3 +666,44 @@ msgstr "mehrere mit Leerzeichen trennen"
 
 msgid "server interfaces"
 msgstr "Server-Schnittstellen"
+
+#~ msgid "Installed network plugins:"
+#~ msgstr "Installierte Netzwerk-Plugins:"
+
+#~ msgid "Installed output plugins:"
+#~ msgstr "Installierte Ausgabe-Plugins:"
+
+#~ msgid ""
+#~ "Network plugins are used to collect information about open tcp "
+#~ "connections, interface traffic, iptables rules etc."
+#~ msgstr ""
+#~ "Netzwerkplugins werden benutzt um Informationen über offene TCP-"
+#~ "Verbindungen, Datenverkehr/Volumen, Iptables/Firewall Regeln etc. zu sammeln"
+
+#~ msgid ""
+#~ "Output plugins provide different possibilities to store collected data. "
+#~ "It is possible to enable multiple plugin at one, for example to store "
+#~ "collected data in rrd databases and to transmit the data over the network "
+#~ "to other collectd instances."
+#~ msgstr ""
+#~ "Ausgabeplugins ermöglichen es gesammelte Daten zu speichern. Mehrere Plugins "
+#~ "können gleichzeitig aktiviert werden, z.B. um Daten in RRD-Datenbanken zu "
+#~ "speichern und gleichzeitig über das Netzwerk an andere Collectd-Instanzen zu "
+#~ "versenden."
+
+#~ msgid ""
+#~ "System plugins collecting values about system state and ressource usage "
+#~ "on the device.:"
+#~ msgstr ""
+#~ "Systemplugins sammeln Daten zum Systemzustand und den Ressoursenbedarf des "
+#~ "Gerätes"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "Das Wireless-Plugin sammelt Statistiken über die drahtlose Signalstärke, den "
+#~ "Störpegel und die Signalqualität."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Wireless Plugin Konfiguration"
index f6f17938b00bf402e1e9f1af54d6b18c9025b6d7..d444872437858772fb62b1b71a418c419d91f48d 100644 (file)
@@ -3,15 +3,15 @@ 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: 2011-05-13 09:41+0200\n"
-"Last-Translator: Jo-Philipp <xm@subsignal.org>\n"
+"PO-Revision-Date: 2012-11-28 10:52+0200\n"
+"Last-Translator: dunkelschunkel <dunkelschunkel@googlemail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid ""
 "<em>Via proxy</em> routes requests to the given target via the specifed "
@@ -75,7 +75,7 @@ msgstr ""
 "sein"
 
 msgid "Configuration"
-msgstr ""
+msgstr "Konfiguration"
 
 msgid "Connection timeout"
 msgstr "Verbindungstimeout"
@@ -90,7 +90,7 @@ msgid "Error page"
 msgstr "Fehlerseite"
 
 msgid "Failed to retrieve statistics from url:"
-msgstr ""
+msgstr "Empfangen der Statiken von URL fehlgeschlagen"
 
 msgid "Filter by RegExp"
 msgstr "Filtern nach RegExp"
@@ -255,7 +255,7 @@ msgid "Statistics page"
 msgstr "Statistikseite"
 
 msgid "Status"
-msgstr ""
+msgstr "Status"
 
 msgid "Target host"
 msgstr "Zielhost"
@@ -264,7 +264,7 @@ msgid "Tinyproxy"
 msgstr "Tinyproxy"
 
 msgid "Tinyproxy Status"
-msgstr ""
+msgstr "Status Tinyproxy"
 
 msgid "Tinyproxy is a small and fast non-caching HTTP(S)-Proxy"
 msgstr ""
index b2f70efbff9a466a465900cdba7db3dcce1c39e3..acfdb65fb14cbee4b36ce2f26171ffb2e93dac4d 100644 (file)
@@ -3,13 +3,15 @@ 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: 2011-05-10 02:06+0100\n"
-"Last-Translator: Jo-Philipp Wich <xm@subsignal.org>\n"
+"PO-Revision-Date: 2012-11-28 10:45+0200\n"
+"Last-Translator: dunkelschunkel <dunkelschunkel@googlemail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid ""
 "ACLs specify which external ports may be redirected to which internal "
@@ -121,13 +123,13 @@ msgid "There are no active redirects."
 msgstr "Es gibt keine aktiven Weiterleitungen."
 
 msgid "UPNP"
-msgstr ""
+msgstr "UPnP"
 
 msgid ""
 "UPNP allows clients in the local network to automatically configure the "
 "router."
 msgstr ""
-"UPNP ermöglicht die automatische Konfiguration des Routers durch Clients im "
+"UPnP ermöglicht die automatische Konfiguration des Routers durch Clients im "
 "lokalen Netzwerk."
 
 msgid ""
index 7dd50217fe79e52325b4ae28f5e031c5140241d0..e23d440612e5a6f0ef5a59263d941351d77e4f77 100644 (file)
@@ -253,6 +253,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "Το επιτρεπόμενο εύρος είναι από 1 έως 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Ένα επιπλέον δίκτυο θα δημιουργηθεί εάν αυτό αφεθεί κενό"
 
@@ -879,6 +884,9 @@ msgstr "Φλασάρεται..."
 msgid "Force"
 msgstr "Επιβολή"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr "Επιβολή CCMP (AES)"
 
@@ -2676,9 +2684,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr "Αναμονή για δρομολογητή..."
-
 msgid "Warning"
 msgstr "Προειδοποίηση"
 
@@ -2859,6 +2864,9 @@ msgstr "ναι"
 msgid "« Back"
 msgstr "« Πίσω"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Αναμονή για δρομολογητή..."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "Ενεργοποίηση ενσωματωμένου εξυπηρετητή NTP"
 
diff --git a/po/el/commands.po b/po/el/commands.po
new file mode 100644 (file)
index 0000000..0e9e65d
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 2922747a5464049382d61a6247edfc3a2ca241bc..9512ab9d57d3fcebc5faa8feeba300191b25a828 100644 (file)
@@ -36,6 +36,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Ενεργοποίηση"
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "Εξαναγκασμός ενημέρωσης κάθε"
 
@@ -52,6 +55,9 @@ msgstr "Διεπαφή"
 msgid "Network"
 msgstr "Δίκτυο"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr "Κωδικός πρόσβασης"
 
@@ -85,12 +91,6 @@ msgstr "λεπτά"
 msgid "network"
 msgstr "δίκτυο"
 
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
-
 #, fuzzy
 #~ msgid "ddns_service_updateurl"
 #~ msgstr "Προσαρμογή URL ενημέρωσης"
index aa8dc3591bd392f4423f2f155a76e52b6ad75090..7a247cbd92f9646ab06898a783539d58bb14b87b 100644 (file)
@@ -181,6 +181,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr "Scans for devices on specified networks."
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -204,6 +207,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr "έλεγχος άλλων δικτύων"
-
-msgid "Scans for devices on specified networks."
-msgstr "Scans for devices on specified networks."
index ce969be3fffcc8c74b39853f965a74079ff23784..8bb449041681855e3161fea640b087a8bef536c8 100644 (file)
@@ -16,6 +16,9 @@ msgstr ""
 msgid "BSSID"
 msgstr "BSSID"
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr "Βασικές Ρυθμίσεις"
 
@@ -82,6 +85,9 @@ msgstr "ESSID"
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr "Σφάλμα"
 
@@ -103,6 +109,12 @@ msgstr "Πύλη"
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Γεια σας και καλώς ήλθατε στο δίκτυο"
 
@@ -115,6 +127,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -143,6 +164,9 @@ msgstr ""
 msgid "Latitude"
 msgstr "Γεωγραφικό πλάτος"
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -194,6 +218,9 @@ msgstr "OLSR"
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -224,6 +251,9 @@ msgstr ""
 msgid "Realname"
 msgstr "Ονοματεπώνυμο"
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr "SSID"
 
@@ -253,6 +283,9 @@ msgstr "Στατιστικά"
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr "Σύστημα"
 
@@ -304,6 +337,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -314,6 +350,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 66297ca001d7d77f91f8823c98387c20854c5ea3..b531eed2e3a32616da445b69e1a1b39b958a24af 100644 (file)
@@ -13,6 +13,9 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Pootle 2.0.4\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr "Κανάλι"
 
@@ -34,9 +37,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr "Ενεργοποίηση DHCP"
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr "Γενικές Ρυθμίσεις"
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -47,9 +59,17 @@ msgstr "Διεπαφές"
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -57,6 +77,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -70,6 +93,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 0b5d899d53bbb26bb27c5290a377a7c4bd0fdac7..c55afdf51e38d263bbcb9a4fd3739992e4eb6b55 100644 (file)
@@ -69,7 +69,7 @@ msgid "Collectd Settings"
 msgstr "Ρυθμίσεις Collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -117,6 +117,9 @@ msgstr "Χρήση Χώρου στον δίσκο"
 msgid "Disk Usage"
 msgstr "Χρήση Δίσκου"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Εμφάνιση χρονικού εύρους »"
 
@@ -187,12 +190,6 @@ msgstr ""
 msgid "Incoming interface"
 msgstr ""
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr ""
 
@@ -286,11 +283,6 @@ msgstr ""
 msgid "Network plugins"
 msgstr "Πρόσθετα δικτύου"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr ""
 
@@ -315,13 +307,6 @@ msgstr ""
 msgid "Output plugins"
 msgstr "Πρόσθετα εξόδου"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -421,11 +406,6 @@ msgstr "Φόρτος Συστήματος"
 msgid "System plugins"
 msgstr "Πρόσθετα συστήματος"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr "Συνδέσεις TCP"
 
@@ -441,6 +421,9 @@ msgstr ""
 msgid "Table"
 msgstr "Πίνακας"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -559,11 +542,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -576,6 +554,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -594,9 +581,6 @@ msgstr ""
 msgid "Wireless"
 msgstr "Ασύρματο"
 
-msgid "Wireless Plugin Configuration"
-msgstr ""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
index cb987995e4a371b323e25cd4d345043969eb6a22..5ce5b5de2cbee1649c78befc01efe2dfddc67dae 100644 (file)
@@ -244,6 +244,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "Allowed range is 1 to 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "An additional network will be created if you leave this unchecked."
 
@@ -854,6 +859,9 @@ msgstr ""
 msgid "Force"
 msgstr "Force"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2634,9 +2642,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr ""
-
 msgid "Warning"
 msgstr ""
 
diff --git a/po/en/commands.po b/po/en/commands.po
new file mode 100644 (file)
index 0000000..754a229
--- /dev/null
@@ -0,0 +1,95 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "A short textual description of the configured command"
+msgstr "A short textual description of the configured command"
+
+msgid "Access command with"
+msgstr "Access command with"
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr "Allow the user to provide additional command line arguments"
+
+msgid "Arguments:"
+msgstr "Arguments:"
+
+msgid "Binary data not displayed, download instead."
+msgstr "Binary data not displayed, download instead."
+
+msgid "Code:"
+msgstr "Code:"
+
+msgid "Collecting data..."
+msgstr "Collecting data..."
+
+msgid "Command"
+msgstr "Command"
+
+msgid "Command failed"
+msgstr "Command failed"
+
+msgid "Command line to execute"
+msgstr "Command line to execute"
+
+msgid "Command successful"
+msgstr "Command successful"
+
+msgid "Command:"
+msgstr "Command:"
+
+msgid "Configure"
+msgstr "Configure"
+
+msgid "Custom Commands"
+msgstr "Custom Commands"
+
+msgid "Custom arguments"
+msgstr "Custom arguments"
+
+msgid "Dashboard"
+msgstr "Dashboard"
+
+msgid "Description"
+msgstr "Description"
+
+msgid "Download"
+msgstr "Download"
+
+msgid "Failed to execute command!"
+msgstr "Failed to execute command!"
+
+msgid "Link"
+msgstr "Link"
+
+msgid "Loading"
+msgstr "Loading"
+
+msgid "Public access"
+msgstr "Public access"
+
+msgid "Run"
+msgstr "Run"
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+
+msgid "Waiting for command to complete..."
+msgstr "Waiting for command to complete..."
index f451163adc9d2d10d31a83bd005c7988968bfad2..13d9560ea57ee5099c7a4bb852a8fa86452cb8b4 100644 (file)
@@ -34,6 +34,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Enable"
 
+msgid "Event interface"
+msgstr "Event interface"
+
 msgid "Force update every"
 msgstr "Force update every"
 
@@ -49,6 +52,9 @@ msgstr "Interface"
 msgid "Network"
 msgstr "Network"
 
+msgid "On which interface up should start the ddns script process."
+msgstr "On which interface up should start the ddns script process."
+
 msgid "Password"
 msgstr "Password"
 
@@ -80,9 +86,3 @@ msgstr "min"
 
 msgid "network"
 msgstr "network"
-
-msgid "Event interface"
-msgstr "Event interface"
-
-msgid "On which interface up should start the ddns script process."
-msgstr "On which interface up should start the ddns script process."
index fe42da6a32527378baf8a6a2ead9de027735274e..7adbbeaaf2a1f9044d492320746629464a9ec1c2 100644 (file)
@@ -185,6 +185,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr "Scans for devices on specified networks."
+
 msgid "Sleep Between Requests"
 msgstr "Sleep Between Requests"
 
@@ -208,6 +211,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr "check other networks"
-
-msgid "Scans for devices on specified networks."
-msgstr "Scans for devices on specified networks."
index dfb25867d3c92c83ce5c3973f4267fc80c6e6bdc..6532da15b04e031822973bd15481da043d32a045 100644 (file)
@@ -15,6 +15,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -81,6 +84,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -102,6 +108,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Hello and welcome in the network of"
 
@@ -114,6 +126,15 @@ msgstr ""
 msgid "Hostname"
 msgstr "Hostname"
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -142,6 +163,9 @@ msgstr "Keep configuration"
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -193,6 +217,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -223,6 +250,9 @@ msgstr ""
 msgid "Realname"
 msgstr "Realname"
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -252,6 +282,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -301,6 +334,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr "Verify downloaded images"
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -311,6 +347,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index f035cf46d9281104740ef156f202766ba86cfb97..180d771c8bd90c54e78fcfe71776430835a9622a 100644 (file)
@@ -1,3 +1,6 @@
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -19,9 +22,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -32,9 +44,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -42,6 +62,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -55,6 +78,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 896c087b2e7c45d3a987149c16f9ca6001247f06..5de07640c0db9c463e2ed3bd35447a1d255870d3 100644 (file)
@@ -7,6 +7,7 @@ msgstr ""
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -67,11 +68,11 @@ msgid "Collectd Settings"
 msgstr "Collectd Settings"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 
@@ -114,6 +115,9 @@ msgstr "Disk Space Usage"
 msgid "Disk Usage"
 msgstr "Disk Usage"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Display timespan »"
 
@@ -191,12 +195,6 @@ msgstr "Ignore source addresses"
 msgid "Incoming interface"
 msgstr "Incoming interface"
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr "Interface Plugin Configuration"
 
@@ -290,11 +288,6 @@ msgstr "Network Plugin Configuration"
 msgid "Network plugins"
 msgstr "Network plugins"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr "Network protocol"
 
@@ -319,13 +312,6 @@ msgstr "Outgoing interface"
 msgid "Output plugins"
 msgstr "Output plugins"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -425,11 +411,6 @@ msgstr "System Load"
 msgid "System plugins"
 msgstr "System plugins"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr "TCP Connections"
 
@@ -445,6 +426,9 @@ msgstr "TTL for ping packets"
 msgid "Table"
 msgstr "Table"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -600,13 +584,6 @@ msgstr ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -622,6 +599,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr "Try to lookup fully qualified hostname"
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -640,9 +626,6 @@ msgstr "Verbose monitoring"
 msgid "Wireless"
 msgstr "Wireless"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Wireless Plugin Configuration"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
@@ -666,3 +649,13 @@ msgstr "seconds; multiple separated by space"
 
 msgid "server interfaces"
 msgstr "server interfaces"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Wireless Plugin Configuration"
index d466f850113c3c70e6273519d3ba7a406cc56097..b86d3574df8d0a21444d8809cd464f19981737bf 100644 (file)
@@ -20,10 +20,10 @@ msgid ""
 "networks where it is difficult or impossible to configure a server within "
 "every link-layer broadcast domain, for example mobile ad-hoc networks."
 msgstr ""
-"AHCP es un protocolo de autoconfiguración para redes con IPv6 o duales "
-"IPv6/IPv4 diseñado para ser usado en lugar de router discovery o DHCP en "
-"redes en las que es difícil o imposible configurar un servidor en cada capa "
-"de enlace del dominio de propagación como las redes móviles ad-hoc."
+"AHCP es un protocolo de autoconfiguración para redes con IPv6 o duales IPv6/"
+"IPv4 diseñado para ser usado en lugar de router discovery o DHCP en redes en "
+"las que es difícil o imposible configurar un servidor en cada capa de enlace "
+"del dominio de propagación como las redes móviles ad-hoc."
 
 # "Lease" en el sentido usado en DHCP no tiene una traducción clara en español y se puede usar la misma palabra en que en inglés.
 msgid "Active AHCP Leases"
index 59c5c7783bef8d14cbe857dcff6959be67acc030..2c134b6415494179da60d2939a35bf2cad1e8daf 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-10-11 16:09+0200\n"
+"PO-Revision-Date: 2012-12-13 20:55+0200\n"
 "Last-Translator: José Vicente <josevteg@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: es\n"
@@ -104,8 +104,8 @@ msgid ""
 "<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
 "Protocol\">DHCP</abbr> leases"
 msgstr ""
-"Máximo número de cesiones <abbr title=\"Dynamic Host Configuration Protocol"
-"\">DHCP</abbr>"
+"Máximas cesiones <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
+"abbr>"
 
 msgid ""
 "<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
@@ -250,6 +250,13 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "El rango permitido es desde 1 hasta 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+"Usar canales de 40MHz aunque el canal secundario solape con otro. ¡El "
+"estándar IEEE 802.11n-2009 indica que no es correcto hacer esto!"
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Se creará una red adicional si deja esto desmarcado."
 
@@ -873,6 +880,9 @@ msgstr "Grabando..."
 msgid "Force"
 msgstr "Forzar"
 
+msgid "Force 40MHz mode"
+msgstr "Forzar modo 40MHz"
+
 msgid "Force CCMP (AES)"
 msgstr "Forzar CCMP (AES)"
 
@@ -2247,13 +2257,13 @@ msgid "Swap Entry"
 msgstr "Entrada de intercambio"
 
 msgid "Switch"
-msgstr "Conmutador"
+msgstr "Switch"
 
 msgid "Switch %q"
-msgstr "Conmutador %q"
+msgstr "Switch %q"
 
 msgid "Switch %q (%s)"
-msgstr "Conmutador %q (%s)"
+msgstr "Switch %q (%s)"
 
 msgid "Switch protocol"
 msgstr "Intercambiar protocolo"
@@ -2296,7 +2306,7 @@ msgstr "Tabla"
 
 # Target = Meta --> Objetivo --> Destino?
 msgid "Target"
-msgstr "Destino"
+msgstr "Objetivo"
 
 msgid "Terminate"
 msgstr "Terminar"
@@ -2331,8 +2341,8 @@ msgid ""
 "The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
 "code> and <code>_</code>"
 msgstr ""
-"Los caracteres permitidos son: <code>A-Z</code>, <code>a-z</code>, <code>0-"
-"9</code> y <code>_</code>"
+"Los caracteres permitidos son: <code>A-Z</code>, <code>a-z</code>, "
+"<code>0-9</code> y <code>_</code>"
 
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
@@ -2619,8 +2629,8 @@ msgid ""
 "OpenWrt compatible firmware image)."
 msgstr ""
 "Suba una imagen compatible con sysupgrade para reemplazar el firmware "
-"actual. Puede marcar \"Conservar la configuración\" si lo desea (es necesario "
-"que la imagen de OpenWrt sea compatible)."
+"actual. Puede marcar \"Conservar la configuración\" si lo desea (es "
+"necesario que la imagen de OpenWrt sea compatible)."
 
 msgid "Upload archive..."
 msgstr "Subir archivo..."
@@ -2748,9 +2758,6 @@ msgstr "Esperando a que se realicen los cambios..."
 msgid "Waiting for command to complete..."
 msgstr "Esperando a que termine el comando..."
 
-msgid "Waiting for router..."
-msgstr "Esperando al router..."
-
 msgid "Warning"
 msgstr "Aviso"
 
@@ -2931,6 +2938,9 @@ msgstr "sí"
 msgid "« Back"
 msgstr "« Volver"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Esperando al router..."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "Activar el servidor integrado NTP"
 
diff --git a/po/es/commands.po b/po/es/commands.po
new file mode 100644 (file)
index 0000000..8052452
--- /dev/null
@@ -0,0 +1,97 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"PO-Revision-Date: 2012-11-24 10:16+0200\n"
+"Last-Translator: José Vicente <josevteg@gmail.com>\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.0.6\n"
+
+msgid "A short textual description of the configured command"
+msgstr "Descripción breve del comando a configurar"
+
+msgid "Access command with"
+msgstr "Acceder al comando con"
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+"Permitir ejecutar el comando y descargar su salida sin más autentificación"
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr "Permitir al usuario añadir parámetros de línea de comandos"
+
+msgid "Arguments:"
+msgstr "Parámetros:"
+
+msgid "Binary data not displayed, download instead."
+msgstr "No se pueden mostrar datos binarios, descárguelos."
+
+msgid "Code:"
+msgstr "Código:"
+
+msgid "Collecting data..."
+msgstr "Recuperando datos..."
+
+msgid "Command"
+msgstr "Comando"
+
+msgid "Command failed"
+msgstr "Falló"
+
+msgid "Command line to execute"
+msgstr "Comando a ejecutar"
+
+msgid "Command successful"
+msgstr "OK"
+
+msgid "Command:"
+msgstr "Comando:"
+
+msgid "Configure"
+msgstr "Configurar"
+
+msgid "Custom Commands"
+msgstr "Comandos propios"
+
+msgid "Custom arguments"
+msgstr "Parámetros propios"
+
+msgid "Dashboard"
+msgstr "Panel"
+
+msgid "Description"
+msgstr "Descripción"
+
+msgid "Download"
+msgstr "Descarga"
+
+msgid "Failed to execute command!"
+msgstr "¡Error al ejecutar el comando!"
+
+msgid "Link"
+msgstr "Enlace"
+
+msgid "Loading"
+msgstr "Cargando"
+
+msgid "Public access"
+msgstr "Acceso público"
+
+msgid "Run"
+msgstr "Ejecutar"
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+"Aquí puede configurar sus propios comandos shell para lanzarlos fácilmente "
+"desde el interfaz web."
+
+msgid "Waiting for command to complete..."
+msgstr "Esperando a que termine el comando..."
index 96f065c0f766ef09a1b0d60cabefaa333c0c0640..c77f8b19585755fb6edee0efe608905ea483a922 100644 (file)
@@ -3,7 +3,7 @@ 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-09-15 21:46+0200\n"
+"PO-Revision-Date: 2012-11-01 23:37+0200\n"
 "Last-Translator: José Vicente <josevteg@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: es\n"
@@ -14,7 +14,7 @@ msgstr ""
 "X-Generator: Pootle 2.0.6\n"
 
 msgid "Check for changed IP every"
-msgstr "Verificar cambios en dirección IP cada"
+msgstr "Verificar cambios de IP cada"
 
 msgid "Check-time unit"
 msgstr "Unidad de tiempo"
@@ -29,11 +29,14 @@ msgid ""
 "Dynamic DNS allows that your router can be reached with a fixed hostname "
 "while having a dynamically changing IP address."
 msgstr ""
-"DNS Dinámico le permite conectar a su router usando un nombre aunque su "
-"dirección IP cambie en forma dinámica."
+"DNS Dinámico le permite conectar a su router con un nombre concreto aunque "
+"su dirección IP cambie dinámicamente."
 
 msgid "Enable"
-msgstr "Activa"
+msgstr "Activar"
+
+msgid "Event interface"
+msgstr "Interfaz de eventos"
 
 msgid "Force update every"
 msgstr "Forzar actualización cada"
@@ -50,6 +53,9 @@ msgstr "Interfaz"
 msgid "Network"
 msgstr "Red"
 
+msgid "On which interface up should start the ddns script process."
+msgstr "Tras qué interfaz debe arrancar ddns."
+
 msgid "Password"
 msgstr "Contraseña"
 
@@ -77,13 +83,7 @@ msgstr "interfaz"
 
 # Minutes (not minimum)
 msgid "min"
-msgstr "mín"
+msgstr "min"
 
 msgid "network"
 msgstr "red"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index eecba02cf4aff720c0a54d6b0df73624b2f13526..0b44ff3eb72025bda6f36b1252979b5afb7f0f01 100644 (file)
@@ -194,6 +194,9 @@ msgstr "Explorar dispositivos SIP soportados en las redes especificadas."
 msgid "Scanning Configuration"
 msgstr "Configuración de la exploración"
 
+msgid "Scans for devices on specified networks."
+msgstr "Explora dispositivos en las redes especificadas."
+
 msgid "Sleep Between Requests"
 msgstr "Detenerse entre peticiones"
 
@@ -217,6 +220,3 @@ msgstr "Vendedor"
 
 msgid "check other networks"
 msgstr "comprueba otras redes"
-
-msgid "Scans for devices on specified networks."
-msgstr "Explora dispositivos en las redes especificadas."
index cec4f6b305ea5c65d61881707965b0b377ae85c5..019b92bac759ca4d66a3d7200e38091b731c8efc 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-09-15 21:34+0200\n"
+"PO-Revision-Date: 2012-12-02 20:36+0200\n"
 "Last-Translator: José Vicente <josevteg@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: es\n"
@@ -16,6 +16,9 @@ msgstr ""
 msgid "BSSID"
 msgstr "BSSID"
 
+msgid "Bad (ETX > 10)"
+msgstr "Malo (ETX > 10)"
+
 msgid "Basic Settings"
 msgstr "Configuración básica"
 
@@ -84,6 +87,9 @@ msgstr "ESSID"
 msgid "Edit index page"
 msgstr "Editar índice"
 
+msgid "Enable IPv6"
+msgstr "Activar IPv6"
+
 msgid "Error"
 msgstr "Error"
 
@@ -105,6 +111,12 @@ msgstr "Pasarela"
 msgid "Go to"
 msgstr "Ir a"
 
+msgid "Good (2 < ETX < 4)"
+msgstr "Bueno  (2 < ETX < 4)"
+
+msgid "Green"
+msgstr "Verde"
+
 msgid "Hello and welcome in the network of"
 msgstr "Hola y bienvenido a la red de"
 
@@ -117,6 +129,15 @@ msgstr "Página inicial"
 msgid "Hostname"
 msgstr "Nombre de máquina"
 
+msgid "IPv6 Config"
+msgstr "Configuración de IPv6"
+
+msgid "IPv6 Prefix"
+msgstr "Prefijo IPv6"
+
+msgid "IPv6 network in CIDR notation."
+msgstr "Red IPv6 en notación CIDR."
+
 msgid "If selected then the default content element is not shown."
 msgstr "No mostrar el contenido por defecto."
 
@@ -147,6 +168,9 @@ msgstr "Mantener configuración"
 msgid "Latitude"
 msgstr "Latitud"
 
+msgid "Legend"
+msgstr "Leyenda"
+
 msgid "Load"
 msgstr "Carga"
 
@@ -198,6 +222,9 @@ msgstr "OLSR"
 msgid "Operator"
 msgstr "Administrador"
 
+msgid "Orange"
+msgstr "Naranja"
+
 msgid "Overview"
 msgstr "Repaso"
 
@@ -228,6 +255,9 @@ msgstr "Perfil (experto)"
 msgid "Realname"
 msgstr "Nombre real"
 
+msgid "Red"
+msgstr "Rojo"
+
 msgid "SSID"
 msgstr "SSID"
 
@@ -259,6 +289,9 @@ msgstr "Estadísticas"
 msgid "Status"
 msgstr "Estado"
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr "Aún utilizable (4 < ETX < 10)"
+
 msgid "System"
 msgstr "Sistema"
 
@@ -278,8 +311,8 @@ msgid ""
 "configured and that the <em>latlon_file</em> option is enabled."
 msgstr ""
 "El servicio OLSRd no está configurado para tomar los datos de posición desde "
-"la red.<br />Asegúrese de que el plugin \"nameservice\" está bien configurado "
-"y que la opción <em>latlon_file</em> está marcada."
+"la red.<br />Asegúrese de que el plugin \"nameservice\" está bien "
+"configurado y que la opción <em>latlon_file</em> está marcada."
 
 msgid "The installed firmware is the most recent version."
 msgstr "El firmare instalado está en la versión más reciente."
@@ -317,6 +350,9 @@ msgstr "Tiempo activo"
 msgid "Verify downloaded images"
 msgstr "Verificar las descargas"
 
+msgid "Very good (ETX < 2)"
+msgstr "Muy bueno (ETX < 2)"
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -327,6 +363,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr "Resumen de red inalámbrica"
 
+msgid "Yellow"
+msgstr "Amarillo"
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index cb9d09fea0c47329fbe0cdae9888773be57456ab..ff2bc91fa0376b5e5231abe9cac62e2a6df79866 100644 (file)
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2012-08-23 22:25+0200\n"
-"PO-Revision-Date: 2012-08-23 23:06+0200\n"
+"PO-Revision-Date: 2012-11-24 10:22+0200\n"
 "Last-Translator: José Vicente <josevteg@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: es\n"
@@ -13,6 +13,9 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Pootle 2.0.6\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr "Activar o desactivar la configuración IPv6 globalmente."
+
 msgid "Channel"
 msgstr "Canal"
 
@@ -34,9 +37,18 @@ msgstr "DHCP asignará direcciones IP automáticamente a los clientes"
 msgid "Enable DHCP"
 msgstr "Activar DHCP"
 
+msgid "Enable RA"
+msgstr "Activar RA"
+
+msgid "Enabled"
+msgstr "Activado"
+
 msgid "General Settings"
 msgstr "Configuración general"
 
+msgid "IPv6 Settings"
+msgstr "Configuración IPv6"
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr "Borrar la configuración antes de establecer una nueva."
@@ -47,9 +59,19 @@ msgstr "Interfaces"
 msgid "Mesh IP address"
 msgstr "Dirección IP del mesh"
 
+msgid "Mesh IPv6 address"
+msgstr "Dirección IPv6 del mesh"
+
 msgid "Mesh Wizard"
 msgstr "Asistente del mesh"
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+"Nota: esto configurará esta interfaz para uso mesh, es decir: la añadirá a "
+"la zona \"freifunk\" y activará OSLR."
+
 msgid "Protect LAN"
 msgstr "Proteger LAN"
 
@@ -57,6 +79,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr "Permitir a otros usar su conexión para acceder a internet."
 
+msgid "Send router advertisements on this device."
+msgstr "Envía publicaciones de routers por este dispositivo."
+
 msgid "Share your internet connection"
 msgstr "Compartir su conexión a internet"
 
@@ -73,6 +98,13 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr "Este rango IP no está dentro del de la red mesh"
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+"Dirección única IPv6 en notación CIDR (p.e.: 2001:1:2:3::1/64) y que tiene "
+"que estar registrada en su comunidad local."
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index e6bd925330a0bd98cc1f86d476b9551509d9ba2c..33ebb8f8d0af96c16a357a70b5b0b7a6f251913c 100644 (file)
@@ -146,8 +146,8 @@ msgid ""
 msgstr ""
 "Directorio a explorar. Si quiere restringir el directorio a un contenido "
 "específico puede añadir el tipo ('A' par audio, 'V' para vídeo o 'P' para "
-"imágenes), seguido por una coma al nombre del directorio (ej. "
-"media_dir=A,/mnt/media/Music). Se puede establecer varios directorios."
+"imágenes), seguido por una coma al nombre del directorio (ej. media_dir=A,/"
+"mnt/media/Music). Se puede establecer varios directorios."
 
 msgid "Specify the path to the MiniSSDPd socket."
 msgstr "Camino al socket de MiniSSDPd."
index 80605331a9e63077e396f0c12fc0d2d1a694ac4c..40edf249bb2da99ffd584bd691ce42f92472eb77 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-14 13:24+0200\n"
-"PO-Revision-Date: 2012-07-28 23:21+0200\n"
-"Last-Translator: Daniel <danips@gmail.com>\n"
+"PO-Revision-Date: 2012-11-25 11:14+0200\n"
+"Last-Translator: José Vicente <josevteg@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
@@ -44,7 +44,7 @@ msgid "Time Servers"
 msgstr "Servidores de hora"
 
 msgid "Time Synchronisation"
-msgstr "Sincronización Horaria"
+msgstr "Sincronización horaria"
 
 msgid "Update interval (in seconds)"
 msgstr "Intervalo de actualización (en segundos)"
index fe311ce2f1cb3464d8bb7d7931ec4c8ffee05caf..5cc285dd4638e39ae875ec0c64f35d6ddf34a497 100644 (file)
@@ -93,8 +93,8 @@ msgid ""
 msgstr ""
 "FIBMetric controla el valor métrico de los conjuntos OLSRd. \"Plano\" "
 "significa que la métrica es siempre 2. Este es el valor preferido porque "
-"ayuda al enrutador del kernel de linux a limpiar valores antiguos. \"Correct\" "
-"usa como métrica el número de saltos. \"Approx\" usa la cuenta de saltos "
+"ayuda al enrutador del kernel de linux a limpiar valores antiguos. \"Correct"
+"\" usa como métrica el número de saltos. \"Approx\" usa la cuenta de saltos "
 "también, pero solo la actualiza si cambia el siguiente salto también. Por "
 "defecto \"flat\"."
 
@@ -181,8 +181,8 @@ msgid ""
 "interface broadcast IP."
 msgstr ""
 "Dirección de propagación IPv4 para paquetes salientes OLSR. Por ejemplo "
-"\"255.255.255.255\". Por defecto es \"0.0.0.0\" que hace que se use la interfaz "
-"de propagación IP."
+"\"255.255.255.255\". Por defecto es \"0.0.0.0\" que hace que se use la "
+"interfaz de propagación IP."
 
 msgid "IPv4 source"
 msgstr "IPv4 origen"
@@ -191,8 +191,8 @@ msgid ""
 "IPv4 src address for outgoing OLSR packages. Default is \"0.0.0.0\", which "
 "triggers usage of the interface IP."
 msgstr ""
-"Dirección origen IPv4 para paquetes OLSR. Por defecto es \"0.0.0.0\" que hace "
-"que se use la interfaz de propagación IP."
+"Dirección origen IPv4 para paquetes OLSR. Por defecto es \"0.0.0.0\" que "
+"hace que se use la interfaz de propagación IP."
 
 msgid "IPv6"
 msgstr "IPv6"
@@ -204,8 +204,8 @@ msgid ""
 "IPv6 multicast address. Default is \"FF02::6D\", the manet-router linklocal "
 "multicast."
 msgstr ""
-"Dirección IPv6 de multidifusión. Por defecto es \"FF02::6D\", la dirección de "
-"multidifusión local en routers MANET."
+"Dirección IPv6 de multidifusión. Por defecto es \"FF02::6D\", la dirección "
+"de multidifusión local en routers MANET."
 
 msgid ""
 "IPv6 network must be given in full notation, prefix must be in CIDR notation."
@@ -222,8 +222,8 @@ msgid ""
 "of a not-linklocal interface IP."
 msgstr ""
 "Prefijo origen IPv6. OLSRd elegirá un interfaz IP que encaje con el prefijo "
-"de este parámetro. Por defecto es \"0::/0\" que provoca el uso de un interfaz "
-"IP no local."
+"de este parámetro. Por defecto es \"0::/0\" que provoca el uso de un "
+"interfaz IP no local."
 
 msgid "IPv6-Prefix of the uplink"
 msgstr "Prefijo IPv6 para el enlace de subida"
@@ -253,8 +253,8 @@ msgid ""
 "\"mesh\"."
 msgstr ""
 "El modo de interfaz se usar para evitar traspaso innecesario de paquetes en "
-"interfaces de red conmutados. Los modos válidos son \"mesh\" y \"ether\". Por "
-"defecto es \"mesh\"."
+"interfaces de red conmutados. Los modos válidos son \"mesh\" y \"ether\". "
+"Por defecto es \"mesh\"."
 
 msgid "Interfaces"
 msgstr "Interfaces"
@@ -320,13 +320,13 @@ msgid ""
 "calculation<br /><b>etx_ffeth</b>: incompatible variant of etx_ff that "
 "allows ethernet links with ETX 0.1.<br />Defaults to \"etx_ff\""
 msgstr ""
-"Algoritmo de calidad de enlace (solo para CE nivel 2).<br "
-"/><b>etx_float</b>: ETX en punto flotante con envejecimiento exponencial<br "
-"/><b>etx_fpm</b> : igual que etx_float, pero con aritmética entera<br "
-"/><b>etx_ff</b> : ETX freifunk, variante etx que usar todo el tráfico OLSR "
-"(en vez de sólo \"hellos\") para los cálculos ETX<br /><b>etx_ffeth</b>: "
-"variante incompatible de etx_ff que permite enlaces ethernet con ETX 0.1.<br "
-"/>Por defecto \"etx_ff\""
+"Algoritmo de calidad de enlace (solo para CE nivel 2).<br /><b>etx_float</"
+"b>: ETX en punto flotante con envejecimiento exponencial<br /><b>etx_fpm</"
+"b> : igual que etx_float, pero con aritmética entera<br /><b>etx_ff</b> : "
+"ETX freifunk, variante etx que usar todo el tráfico OLSR (en vez de sólo "
+"\"hellos\") para los cálculos ETX<br /><b>etx_ffeth</b>: variante "
+"incompatible de etx_ff que permite enlaces ethernet con ETX 0.1.<br />Por "
+"defecto \"etx_ff\""
 
 msgid ""
 "Link quality level switch between hopcount and cost-based (mostly ETX) "
@@ -513,8 +513,8 @@ msgid ""
 "IP of the first interface."
 msgstr ""
 "Configura la dirección IP principal (IP originadora) del router. NUNCA debe "
-"cambiar mientras OLSRd esté activa. Por defecto es \"0.0.0.0\" que provoca el "
-"uso de la IP del primer interfaz."
+"cambiar mientras OLSRd esté activa. Por defecto es \"0.0.0.0\" que provoca "
+"el uso de la IP del primer interfaz."
 
 msgid "SmartGW"
 msgstr "SmartGW"
@@ -638,8 +638,7 @@ msgid ""
 "Warning: kmod-ipip is not installed. Without kmod-ipip SmartGateway will not "
 "work, please install it."
 msgstr ""
-"Aviso: kmod-ipip no está instalado. Sin kmod-ipip SmartGateway no "
-"funcionará."
+"Aviso: kmod-ipip no está instalado. Sin kmod-ipip SmartGateway no funcionará."
 
 msgid "Weight"
 msgstr "Peso"
index ac5a8e3782f196e8611bc7a2de016bec44212a98..1edc53304f4a1db7ef4f837721a619a976fb76c9 100644 (file)
@@ -29,8 +29,8 @@ msgid "P2P-Block"
 msgstr "Bloqueo de P2P"
 
 msgid ""
-"P2P-Block is a greylisting mechanism to block various peer-to-peer "
-"protocols for non-whitelisted clients."
+"P2P-Block is a greylisting mechanism to block various peer-to-peer protocols "
+"for non-whitelisted clients."
 msgstr ""
 "El bloqueo de P2P es un mecanismo de lista gris para bloquear varios "
 "protocolos punto a punto a clientes que no están en lista blanca."
index 4d93ff8927c8917168cfbc3b7bbf11e970901fe0..12ff3783bcfa1b6b32c9816f09ed6478c11cd52e 100644 (file)
@@ -85,8 +85,7 @@ msgid ""
 "you will use ONLY locally and never from a remote location."
 msgstr ""
 "Ponga esta IP (o IP:puerto) en el parámetro Servidor/Registrador de los "
-"dispositivos SIP que usará SOLO localmente y nunca desde una posición "
-"remota."
+"dispositivos SIP que usará SOLO localmente y nunca desde una posición remota."
 
 msgid ""
 "Enter this hostname (or hostname:port) in the Server/Registrar setting of "
@@ -133,8 +132,8 @@ msgstr ""
 "proveedores usar. Por defecto todos los usuarios pueden usar a todos los "
 "proveedores. Para mostrarse en la lista el usuario debe poder hacer llamadas "
 "salientes (ver página \"Cuentas de usuario\"). Ponga los proveedores en "
-"formato username@some.host.name igual que se listan en \"Llamadas salientes\" "
-"arriba. Los nombres no válidos se rechazarán sin aviso.Puede separar los "
+"formato username@some.host.name igual que se listan en \"Llamadas salientes"
+"\" arriba. Los nombres no válidos se rechazarán sin aviso.Puede separar los "
 "nombres con espacios o poniéndolos en líneas diferentes."
 
 msgid "Full Name"
@@ -165,8 +164,8 @@ msgid ""
 msgstr ""
 "Configure una cuenta SIP que usará para conectar con este servicio. Úsela "
 "tanpo en un adaptador de telefonía analógico (ATA) o en un programa SIP como "
-"CSipSimple, Linphone, o Sipdroid para smartphones, o Ekiga, Linphone, o "
-"X-Lite para ordenadores. Por defecto, todas las cuentas SIP sonarán a la vez "
+"CSipSimple, Linphone, o Sipdroid para smartphones, o Ekiga, Linphone, o X-"
+"Lite para ordenadores. Por defecto, todas las cuentas SIP sonarán a la vez "
 "si se hace una llamada desde una de las cuentas de su proveedor de VoIP o "
 "números GV."
 
@@ -221,15 +220,15 @@ msgid ""
 msgstr ""
 "Si tiene más de una cuenta para hacer llamadas salientes, debe introducir "
 "una lista de números de teléfono y/o prefijos para cada proveedor. Los "
-"prefijos no válidos se rechazarán sin aviso y solo son caracteres válidos "
-"0-9, X, Z, N, #, *, y +. La letra X equivale a 0-9, Z a 1-9 y N a 2-9. Por "
+"prefijos no válidos se rechazarán sin aviso y solo son caracteres válidos 0-"
+"9, X, Z, N, #, *, y +. La letra X equivale a 0-9, Z a 1-9 y N a 2-9. Por "
 "ejemplo para hacer llamadas a Alemania con su proveedor debe introducir 49. "
 "Para hacer llamadas a Estados Unidos 1NXXNXXXXXX. Si uno de sus proveedores "
 "puede hacer llamadas locales a un código de área como el 646 de Nueva York "
 "debe introducir 646NXXXXXX para ese proveedor. Debería dehar una cuenta con "
 "una lista vacía para que haga las llamadas por defecto en caso de que ningún "
-"prefijo encaje. El sistema reemplazará automáticamente la lista vacía con "
-"el mensaje de que el proveedor marca todos los números que no estén en los "
+"prefijo encaje. El sistema reemplazará automáticamente la lista vacía con el "
+"mensaje de que el proveedor marca todos los números que no estén en los "
 "prefijos de otros proveedores. Sea todo lo específico que pueda (ej. "
 "1NXXNXXXXXX es mejor que 1). Todos los códigos internaciones de marcado se "
 "descartan (ej. 00, 011, 010, 0011). Las entradas pueden ser una lista "
@@ -301,9 +300,9 @@ msgid ""
 msgstr ""
 "Puerto aleatorio entre 6500 y 9500 en el que escuche el servicio. No elija "
 "el estándar 5060 porque es susceptible de ataques por fuerza bruta. Cuando "
-"termine (1) pulsa \"Salvar y aplicar\" y (2) pulse \"Rearrancar servicio VoIP\". "
-"Finalmente (3) busque en la sección \"Dispositivo SIP/Cuentas softphone\" la "
-"configuración del puerto."
+"termine (1) pulsa \"Salvar y aplicar\" y (2) pulse \"Rearrancar servicio VoIP"
+"\". Finalmente (3) busque en la sección \"Dispositivo SIP/Cuentas softphone"
+"\" la configuración del puerto."
 
 msgid "Port Setting for SIP Devices"
 msgstr "Configuración de puerto para dispositivos SIP"
@@ -416,8 +415,8 @@ msgstr ""
 "permitirá hacer llamadas gratuitas entre los usuarios y compartir las "
 "cuentas Google/SIP configuradas. Si tiene más de una cuenta Google/SIP "
 "configurada tendrá que configurar cómo se enrutan en la página \"Enrutado de "
-"llamadas\". Si está interesado en usar su PBX desde cualquier sitio del mundo "
-"puede visitar la sección \"Uso remoto\" en la página \"Configuración "
+"llamadas\". Si está interesado en usar su PBX desde cualquier sitio del "
+"mundo puede visitar la sección \"Uso remoto\" en la página \"Configuración "
 "avanzada\"."
 
 msgid ""
@@ -435,10 +434,10 @@ msgid ""
 "incoming calls are routed, what numbers can get into this PBX with a "
 "password, and what numbers are blacklisted."
 msgstr ""
-"Indique las cuentas Google/SIP que usará para llamar a qué códigos de "
-"país/zona, qué usuarios pueden usuarios pueden usar qué cuentas SIP/Google y "
-"cómo se enrutan las llamadas entrantes, qué números pueden entrar en esta "
-"PBX con una contraseña y qué números están en lista negra."
+"Indique las cuentas Google/SIP que usará para llamar a qué códigos de país/"
+"zona, qué usuarios pueden usuarios pueden usar qué cuentas SIP/Google y cómo "
+"se enrutan las llamadas entrantes, qué números pueden entrar en esta PBX con "
+"una contraseña y qué números están en lista negra."
 
 msgid ""
 "This is where you set up your Google (Talk and Voice) Accounts, in order to "
@@ -467,8 +466,8 @@ msgid ""
 "number) associated with this SIP account or want to receive SIP uri calls "
 "through this provider."
 msgstr ""
-"Debería ser \"Sí\" si tiene un DID (teléfono real) asociado a esta cuenta SIP "
-"o quiere recibir llamads uri SIP de este proveedor."
+"Debería ser \"Sí\" si tiene un DID (teléfono real) asociado a esta cuenta "
+"SIP o quiere recibir llamads uri SIP de este proveedor."
 
 msgid ""
 "This section contains settings that do not need to be changed under normal "
@@ -527,10 +526,10 @@ msgstr ""
 "softphone) y se le permitirá recibir la llamada. Si tiene Google Voice debe "
 "ir a la configuración de GVoice y traspasar las llamadas a Google chat para "
 "recibir las hechas a si número de GVoice. Si tiene problemas recibiendo "
-"llamadas de GVoice pruebe con la opción \"Call Screening\" en la configuración "
-"de GVoice. Asegúrese de que ningún otro cliente esté conectado con esta "
-"cuenta (navegador en gmail, o una aplicación para móvil o escritorio) ya que "
-"podría interferir."
+"llamadas de GVoice pruebe con la opción \"Call Screening\" en la "
+"configuración de GVoice. Asegúrese de que ningún otro cliente esté conectado "
+"con esta cuenta (navegador en gmail, o una aplicación para móvil o "
+"escritorio) ya que podría interferir."
 
 msgid ""
 "When your password is saved, it disappears from this field and is not "
@@ -578,8 +577,7 @@ msgstr ""
 "debe configurar en sus dispositivos SIP remotos. Tenga en cuenta que si este "
 "PBX no funciona en su router/pasarela, tendrá que configurar el traspaso de "
 "puertos (NAT) en su router/pasarela. Traspase los puertos indicados (Puerto "
-"SIP y rango RTP) hacia la dirección IP del dispositivo en que corre esta "
-"PBX."
+"SIP y rango RTP) hacia la dirección IP del dispositivo en que corre esta PBX."
 
 msgid ""
 "Your PIN disappears when saved for your protection. It will be changed only "
index bee9923178db712e83782d29771540728dafacde..84ba24ec9b72e93f02b8fd83390366062fb4ade0 100644 (file)
@@ -75,8 +75,7 @@ msgid ""
 msgstr ""
 "Ubicación en la que Polipo creará archivos permanentemente. Se recomienda el "
 "uso de dispositivos de almacenamiento externo, ya que la caché puede "
-"aumentar considerablemente. Deje en blanco para desactivar la caché en "
-"disco."
+"aumentar considerablemente. Deje en blanco para desactivar la caché en disco."
 
 msgid "Log file location"
 msgstr "Ubicación del archivo de registro"
index 85152e02c85770ce9df9ec71fdbafae1fd60b776..86561920bf9a4d4064e924f203fee253ba7ea83c 100644 (file)
@@ -80,8 +80,7 @@ msgid ""
 "prefix via stateless address autoconfiguration remain preferred."
 msgstr ""
 "Publica el tiempo de vida en segundos que se prefieren las direcciones "
-"generadas desde el prefijo vía una dirección de autoconfiguración sin "
-"estado."
+"generadas desde el prefijo vía una dirección de autoconfiguración sin estado."
 
 msgid ""
 "Advertises the length of time in seconds that the prefix is valid for the "
index a77a4fa90629048636df506fe776428184a08361..3571a53d34900081d6fbcd31bb97788a099119f6 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-09-15 21:44+0200\n"
+"PO-Revision-Date: 2012-12-12 20:19+0200\n"
 "Last-Translator: José Vicente <josevteg@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: es\n"
@@ -68,7 +68,7 @@ msgid "Collectd Settings"
 msgstr "Configuración de Collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -115,6 +115,9 @@ msgstr "Espacio en disco ocupado"
 msgid "Disk Usage"
 msgstr "Disco ocupado"
 
+msgid "Display Host »"
+msgstr "Mostrar máquina »"
+
 msgid "Display timespan »"
 msgstr "Mostrar lapso de tiempo »"
 
@@ -137,7 +140,7 @@ msgid "Filter class monitoring"
 msgstr "Monitorización del filtro de clases"
 
 msgid "Firewall"
-msgstr "Cortafuego"
+msgstr "Cortafuegos"
 
 msgid "Flush cache after"
 msgstr "Vaciar caché tras"
@@ -191,12 +194,6 @@ msgstr "Ignorar direcciones de origen"
 msgid "Incoming interface"
 msgstr "Interfaz de entrada"
 
-msgid "Installed network plugins:"
-msgstr "Plugins de red instalados:"
-
-msgid "Installed output plugins:"
-msgstr "Plugins de salida instalados:"
-
 msgid "Interface Plugin Configuration"
 msgstr "Configuración del interfaz de plugins"
 
@@ -290,13 +287,6 @@ msgstr "Configuración del plugin \"Red\""
 msgid "Network plugins"
 msgstr "Plugins de red"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-"Los plugins de red se usan para recolectar información sobre conexiones TCP, "
-"tráfico en los interfaces, reglas de iptables, etc."
-
 msgid "Network protocol"
 msgstr "Protocolo de red"
 
@@ -321,17 +311,6 @@ msgstr "Interfaz de salida"
 msgid "Output plugins"
 msgstr "Plugins de salida"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-"Los plugins de salida ofrecen varias posibilidades para almacenar los datos. "
-"Es posible activar varios plugins a la vez, por ejemplo para almacenar datos "
-"recolectados en bases de datos RRD y para transmitir los datos sobre la red "
-"a otras instancias de collectd."
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -431,13 +410,6 @@ msgstr "Carga del sistema"
 msgid "System plugins"
 msgstr "Plugins del sistema"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-"Los plugins del sistema recolectan valores sobre el estado y el uso de "
-"recursos del dispositivo.:"
-
 msgid "TCP Connections"
 msgstr "Conexiones TCP"
 
@@ -453,6 +425,11 @@ msgstr "TTL para paquetes de ping"
 msgid "Table"
 msgstr "Tabla"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+"El plugin NUT obtiene información sobre Sistemas de Alimentación "
+"Ininterrumpida."
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -583,8 +560,8 @@ msgid ""
 "The processes plugin collects informations like cpu time, page faults and "
 "memory usage of selected processes."
 msgstr ""
-"El plugin \"procesos\" recoge información como tiempo de CPU, fallos de página "
-"y uso de memoria de los procesos elegidos."
+"El plugin \"procesos\" recoge información como tiempo de CPU, fallos de "
+"página y uso de memoria de los procesos elegidos."
 
 msgid ""
 "The rrdtool plugin stores the collected data in rrd database files, the "
@@ -592,20 +569,19 @@ msgid ""
 "values will result in a very high memory consumption in the temporary "
 "directory. This can render the device unusable!</strong>"
 msgstr ""
-"El plugin \"rrdtool\" almacena datos en ficheros de bb.dd. RRD que son la base "
-"para los diagramas.<br /><br /><strong>¡Ojo: Configurar valores incorrectos "
-"puede hacer que se use mucho espacio en el directorio temporal y puede "
-"hacer que el dispositivo funcione mal!</strong>"
+"El plugin \"rrdtool\" almacena datos en ficheros de bb.dd. RRD que son la "
+"base para los diagramas.<br /><br /><strong>¡Ojo: Configurar valores "
+"incorrectos puede hacer que se use mucho espacio en el directorio temporal y "
+"puede hacer que el dispositivo funcione mal!</strong>"
 
 msgid ""
 "The statistics package is based on <a href=\"http://collectd.org/index.shtml"
 "\">Collectd</a> and uses <a href=\"http://oss.oetiker.ch/rrdtool/\">RRD "
 "Tool</a> to render diagram images from collected data."
 msgstr ""
-"El paquete \"estadísticas\" está basado en <a "
-"href=\"http://collectd.org/index.shtml\">Collectd</a> y utiliza <a "
-"href=\"http://oss.oetiker.ch/rrdtool/\">RRD Tool</a> para dibujar gráficos con "
-"los datos recogidos."
+"El paquete \"estadísticas\" está basado en <a href=\"http://collectd.org/"
+"index.shtml\">Collectd</a> y utiliza <a href=\"http://oss.oetiker.ch/rrdtool/"
+"\">RRD Tool</a> para dibujar gráficos con los datos recogidos."
 
 msgid ""
 "The tcpconns plugin collects informations about open tcp connections on "
@@ -621,13 +597,6 @@ msgstr ""
 "El plugin \"unixsock\" crea un socket UNIX que se puede usar para leer los "
 "datos recogidos por una instancia collectd."
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"El plugin \"inalámbrico\" recoge estadísticas sobre fuerza de la señal, ruido "
-"y calidad."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -644,6 +613,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr "Intenta resolver el nombre de máquina cualificado"
 
+msgid "UPS"
+msgstr "SAI"
+
+msgid "UPS Plugin Configuration"
+msgstr "Configuración del plugin SAI"
+
+msgid "UPS name in NUT ups@host format"
+msgstr "Nombre del SAI en el formato de NUT sai@máquina"
+
 msgid "UnixSock"
 msgstr "Socket UNIX"
 
@@ -662,9 +640,6 @@ msgstr "Monitorización detallada"
 msgid "Wireless"
 msgstr "Red inalámbrica"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Configuración del plugin \"Wireless\""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr "Configuración plugin \"Wireless iwinfo\""
 
@@ -689,6 +664,47 @@ msgstr "segundos (varios separados por espacio)"
 msgid "server interfaces"
 msgstr "interfaces servidores"
 
+#~ msgid "Installed network plugins:"
+#~ msgstr "Plugins de red instalados:"
+
+#~ msgid "Installed output plugins:"
+#~ msgstr "Plugins de salida instalados:"
+
+#~ msgid ""
+#~ "Network plugins are used to collect information about open tcp "
+#~ "connections, interface traffic, iptables rules etc."
+#~ msgstr ""
+#~ "Los plugins de red se usan para recolectar información sobre conexiones TCP, "
+#~ "tráfico en los interfaces, reglas de iptables, etc."
+
+#~ msgid ""
+#~ "Output plugins provide different possibilities to store collected data. "
+#~ "It is possible to enable multiple plugin at one, for example to store "
+#~ "collected data in rrd databases and to transmit the data over the network "
+#~ "to other collectd instances."
+#~ msgstr ""
+#~ "Los plugins de salida ofrecen varias posibilidades para almacenar los datos. "
+#~ "Es posible activar varios plugins a la vez, por ejemplo para almacenar "
+#~ "datos recolectados en bases de datos RRD y para transmitir los datos sobre "
+#~ "la red a otras instancias de collectd."
+
+#~ msgid ""
+#~ "System plugins collecting values about system state and ressource usage "
+#~ "on the device.:"
+#~ msgstr ""
+#~ "Los plugins del sistema recolectan valores sobre el estado y el uso de "
+#~ "recursos del dispositivo.:"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "El plugin \"inalámbrico\" recoge estadísticas sobre fuerza de la señal, ruido "
+#~ "y calidad."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Configuración del plugin \"Wireless\""
+
 #~ msgid "Filepath of the unix socket"
 #~ msgstr "Ruta de archivo para el socket de unix"
 
index b0a47a0719af16ad24ce7b0f8c81037836f44b39..c9faff194aab556f49b39a589801c68993bb7a2e 100644 (file)
@@ -26,8 +26,8 @@ msgid ""
 "Adds an \"X-Tinyproxy\" HTTP header with the client IP address to forwarded "
 "requests"
 msgstr ""
-"Añade una cabecera HTTP con \"X-Tinyproxy\" con la dirección IP del cliente "
-"las peticiones retransmitidas"
+"Añade una cabecera HTTP con \"X-Tinyproxy\" con la dirección IP del cliente "
+"las peticiones retransmitidas"
 
 msgid "Allowed clients"
 msgstr "Clientes permitidos"
@@ -66,8 +66,8 @@ msgid ""
 "Can be either an IP address or range, a domain name or \".\" for any host "
 "without domain"
 msgstr ""
-"Puede ser un rango de IPs, un nombre de dominio o \".\" para cualquier máquina "
-"sin dominio"
+"Puede ser un rango de IPs, un nombre de dominio o \".\" para cualquier "
+"máquina sin dominio"
 
 msgid "Configuration"
 msgstr "Configuración"
index 2df28151e7272f23da1c84e90ba1dfa4779fe627..6e3b28192325b837648c0ad7dd996fbd57f9cd68 100644 (file)
@@ -1,15 +1,15 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-01-15 05:32+0200\n"
-"Last-Translator: desillu <ledesillusionniste@hotmail.com>\n"
+"PO-Revision-Date: 2012-11-06 13:06+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: none\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "AHCP Server"
 msgstr "Serveur AHCP"
@@ -102,10 +102,10 @@ msgid "Specifies the announced IPv4 and IPv6 network prefixes in CIDR notation"
 msgstr "Décrit les préfixes réseaux IPv4 et IPv6 publiés en notation CIDR"
 
 msgid "The AHCP Service is not running."
-msgstr ""
+msgstr "Le service AHCP n'est pas en fonctionnement."
 
 msgid "The AHCP Service is running with ID %s."
-msgstr ""
+msgstr "Le service AHCP est en fonctionnement avec l'ID s."
 
 msgid "There are no active leases."
 msgstr "Il n'y a aucun bail actif."
index 5b99fb85b6cb7638fa1e3188d803049e5ae101eb..fcdc313acdf45a38c7b9de57c981dfc99736ac35 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2012-07-02 08:42+0200\n"
-"Last-Translator: dgolle <dgolle@allnet.de>\n"
+"PO-Revision-Date: 2012-11-06 16:16+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
@@ -115,7 +115,7 @@ msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
 msgstr "Maximum de requêtes concurrentes"
 
 msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
-msgstr ""
+msgstr "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
 
 msgid "APN"
 msgstr "APN"
@@ -179,10 +179,10 @@ msgid "Active Connections"
 msgstr "Connexions actives"
 
 msgid "Active DHCP Leases"
-msgstr ""
+msgstr "Bails DHCP actifs"
 
 msgid "Active DHCPv6 Leases"
-msgstr ""
+msgstr "Bails DHCPv6 actifs"
 
 msgid "Ad-Hoc"
 msgstr "Ad-hoc"
@@ -256,6 +256,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "La gamme autorisée va de 1 à 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Un réseau supplémentaire sera créé si vous laissé ceci décoché."
 
@@ -266,7 +271,7 @@ msgid "Antenna 2"
 msgstr "Antenne 2"
 
 msgid "Antenna Configuration"
-msgstr ""
+msgstr "Configuration de l'antenne"
 
 msgid "Any zone"
 msgstr "N'importe quelle zone"
@@ -284,7 +289,7 @@ msgid "Associated Stations"
 msgstr "Équipements associés"
 
 msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
+msgstr "Contrôleur sans fil Atheros 802.11%s "
 
 msgid "Authentication"
 msgstr "Authentification"
@@ -368,10 +373,10 @@ msgid "Bring up on boot"
 msgstr "L'activer au démarrage"
 
 msgid "Broadcom 802.11%s Wireless Controller"
-msgstr ""
+msgstr "Contrôleur sans fil Broadcom 802.11%s"
 
 msgid "Broadcom BCM%04x 802.11 Wireless Controller"
-msgstr ""
+msgstr "Contrôleur sans fil Broadcom BCM%04x 802.11"
 
 msgid "Buffered"
 msgstr "Temporisé"
@@ -427,6 +432,9 @@ msgid ""
 "Choose the network(s) you want to attach to this wireless interface or fill "
 "out the <em>create</em> field to define a new network."
 msgstr ""
+"Choisissez le(s) réseau(x)  que vous souhaitez attachez a cette interface "
+"sans-fil ou remplissez le <em>créer</em>  champ pour définir un nouveau "
+"réseau. "
 
 msgid "Cipher"
 msgstr "Code de chiffrement"
@@ -551,7 +559,7 @@ msgid "DHCP-Options"
 msgstr "Options DHCP"
 
 msgid "DHCPv6 Leases"
-msgstr ""
+msgstr "Bails DHCPv6"
 
 msgid "DNS"
 msgstr "DNS"
@@ -560,7 +568,7 @@ msgid "DNS forwardings"
 msgstr "transmissions DNS"
 
 msgid "DUID"
-msgstr ""
+msgstr "DUID"
 
 msgid "Debug"
 msgstr "Deboguage"
@@ -752,7 +760,7 @@ msgid "Enable Jumbo Frame passthrough"
 msgstr "Activer la circulation de très grandes trames (Jumbo)"
 
 msgid "Enable NTP client"
-msgstr ""
+msgstr "Activer client NTP"
 
 msgid "Enable TFTP server"
 msgstr "Activer le serveur TFTP"
@@ -882,6 +890,9 @@ msgstr "Écriture…"
 msgid "Force"
 msgstr "Forcer"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr "Forcer CCMP (AES)"
 
@@ -919,10 +930,10 @@ msgid "Frequency Hopping"
 msgstr "Sauts en fréquence"
 
 msgid "GHz"
-msgstr ""
+msgstr "Ghz"
 
 msgid "GPRS only"
-msgstr ""
+msgstr "seulement GPRS"
 
 msgid "Gateway"
 msgstr "Passerelle"
@@ -940,7 +951,7 @@ msgid "Generate archive"
 msgstr "Construire l'archive"
 
 msgid "Generic 802.11%s Wireless Controller"
-msgstr ""
+msgstr "Contrôleur sans fil générique 802.11%s"
 
 msgid "Given password confirmation did not match, password not changed!"
 msgstr ""
@@ -986,7 +997,7 @@ msgstr ""
 "authentification SSH sur clés publiques."
 
 msgid "Hermes 802.11b Wireless Controller"
-msgstr ""
+msgstr "Contrôleur sans fil Hermes 802.11b"
 
 msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
 msgstr "Cacher le ESSID"
@@ -1040,7 +1051,7 @@ msgid "IPv4 only"
 msgstr "IPv4 seulement"
 
 msgid "IPv4 prefix length"
-msgstr ""
+msgstr "longueur du préfixe IPv4"
 
 msgid "IPv4-Address"
 msgstr "Adresse IPv4"
@@ -1064,22 +1075,22 @@ msgid "IPv6 only"
 msgstr "IPv6 seulement"
 
 msgid "IPv6 prefix"
-msgstr ""
+msgstr "Préfixe IPv6"
 
 msgid "IPv6 prefix length"
-msgstr ""
+msgstr "longueur du préfixe IPv6"
 
 msgid "IPv6-Address"
-msgstr ""
+msgstr "Adresse IPv6"
 
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6 dans IPv4 (RFC 4213)"
 
 msgid "IPv6-over-IPv4 (6rd)"
-msgstr ""
+msgstr "IPv6 sur IPv4 (6ème)"
 
 msgid "IPv6-over-IPv4 (6to4)"
-msgstr ""
+msgstr "IPv6 sur IPv4 (6 vers 4)"
 
 msgid "Identity"
 msgstr "Identité"
@@ -1185,7 +1196,7 @@ msgid "Interfaces"
 msgstr "Interfaces"
 
 msgid "Internal Server Error"
-msgstr ""
+msgstr "Erreur Serveur Interne"
 
 msgid "Invalid"
 msgstr "Erreur : donnée entrée invalide"
@@ -1241,10 +1252,10 @@ msgid "Kill"
 msgstr "Tuer"
 
 msgid "L2TP"
-msgstr ""
+msgstr "L2TP"
 
 msgid "L2TP Server"
-msgstr ""
+msgstr "Serveur L2TP"
 
 msgid "LCP echo failure threshold"
 msgstr "Seuil d'erreur des échos LCP"
@@ -1396,10 +1407,10 @@ msgid "MAC-List"
 msgstr "Liste des adresses MAC"
 
 msgid "MB/s"
-msgstr ""
+msgstr "MB/s"
 
 msgid "MHz"
-msgstr ""
+msgstr "MHz"
 
 msgid "MTU"
 msgstr "MTU"
@@ -1426,7 +1437,7 @@ msgid "Maximum number of leased addresses."
 msgstr "Nombre maximum d'adresses allouées."
 
 msgid "Mbit/s"
-msgstr ""
+msgstr "Mbit/s"
 
 msgid "Memory"
 msgstr "Mémoire"
@@ -1583,7 +1594,7 @@ msgid "Normal"
 msgstr "Normal"
 
 msgid "Not Found"
-msgstr ""
+msgstr "Pas trouvé"
 
 msgid "Not associated"
 msgstr "Pas associé"
@@ -1598,7 +1609,7 @@ msgid "Notice"
 msgstr "Note"
 
 msgid "Nslookup"
-msgstr ""
+msgstr "Nslookup"
 
 msgid "OK"
 msgstr "OK"
@@ -1762,7 +1773,7 @@ msgid "Physical Settings"
 msgstr "Paramètres physiques"
 
 msgid "Ping"
-msgstr ""
+msgstr "Ping"
 
 msgid "Pkts."
 msgstr "Pqts."
@@ -1786,7 +1797,7 @@ msgid "Port %d is untagged in multiple VLANs!"
 msgstr "Le port %d n'est pas marqué dans plusieurs VLANs !"
 
 msgid "Port status:"
-msgstr ""
+msgstr "Statut du port :"
 
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
@@ -1799,7 +1810,7 @@ msgid "Prevents client-to-client communication"
 msgstr "Empêche la communication directe entre clients"
 
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
-msgstr ""
+msgstr "Contrôleur sans fil Prism2/2.5/3 802.11b"
 
 msgid "Proceed"
 msgstr "Continuer"
@@ -1823,7 +1834,7 @@ msgid "Protocol support is not installed"
 msgstr "La gestion du protocole n'est pas installée"
 
 msgid "Provide NTP server"
-msgstr ""
+msgstr "Fournir serveur NTP"
 
 msgid "Provide new network"
 msgstr "Donner un nouveau réseau"
@@ -1832,7 +1843,7 @@ msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
 msgid "Quality"
-msgstr ""
+msgstr "Qualitée"
 
 msgid "RTS/CTS Threshold"
 msgstr "Seuil RTS/CTS"
@@ -1844,7 +1855,7 @@ msgid "RX Rate"
 msgstr "Débit en réception"
 
 msgid "RaLink 802.11%s Wireless Controller"
-msgstr ""
+msgstr "Contrôleur sans fil RaLink 802.11%s"
 
 msgid "Radius-Accounting-Port"
 msgstr "Port de la comptabilisation Radius"
@@ -2151,10 +2162,10 @@ msgid "Some fields are invalid, cannot save values!"
 msgstr "Certains champs sont invalides, ne peut sauvegarder les valeurs !"
 
 msgid "Sorry, the object you requested was not found."
-msgstr ""
+msgstr "Désolé, l'objet que vous avez demandé n'as pas été trouvé."
 
 msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
+msgstr "Désolé, le serveur à rencontré une erreur inattendue."
 
 msgid ""
 "Sorry, there is no sysupgrade support present, a new firmware image must be "
@@ -2332,13 +2343,15 @@ msgstr ""
 msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
+"Le préfixe IPv6 attribué par le fournisseur, se termine généralement par "
+"<code>::</code>"
 
 msgid ""
 "The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
 "code> and <code>_</code>"
 msgstr ""
-"Les caractères autorisés sont : <code>A-Z</code>, <code>a-z</code>, <code>0-"
-"9</code> et <code>_</code>"
+"Les caractères autorisés sont : <code>A-Z</code>, <code>a-z</code>, "
+"<code>0-9</code> et <code>_</code>"
 
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
@@ -2386,9 +2399,11 @@ msgid ""
 "The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
 "addresses."
 msgstr ""
+"La longueur du préfixe IPv4 en bits, le reste est utilisé dans les adresses "
+"IPv6"
 
 msgid "The length of the IPv6 prefix in bits"
-msgstr ""
+msgstr "La longueur du préfixe IPv6 en bits"
 
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
@@ -2462,7 +2477,7 @@ msgstr ""
 "et activer l'accès par SSH."
 
 msgid "This IPv4 address of the relay"
-msgstr ""
+msgstr "L'adresse IPv4 du relais"
 
 msgid ""
 "This is a list of shell glob patterns for matching files and directories to "
@@ -2546,7 +2561,7 @@ msgid "Total Available"
 msgstr "Total disponible"
 
 msgid "Traceroute"
-msgstr ""
+msgstr "Traceroute"
 
 msgid "Traffic"
 msgstr "Trafic"
@@ -2591,7 +2606,7 @@ msgid "UDP:"
 msgstr "UDP :"
 
 msgid "UMTS only"
-msgstr ""
+msgstr "seulement UMTS"
 
 msgid "UMTS/GPRS/EV-DO"
 msgstr "UMTS/GPRS/EV-DO"
@@ -2603,7 +2618,7 @@ msgid "UUID"
 msgstr "UUID"
 
 msgid "Unable to dispatch"
-msgstr ""
+msgstr "Impossible d'envoyer"
 
 msgid "Unknown"
 msgstr "Inconnu"
@@ -2754,13 +2769,10 @@ msgstr ""
 "client) ou hostapd (en mode Point d'accès ou Ad-hoc)."
 
 msgid "Waiting for changes to be applied..."
-msgstr ""
+msgstr "En attente de l'application des changements..."
 
 msgid "Waiting for command to complete..."
-msgstr ""
-
-msgid "Waiting for router..."
-msgstr "Attente du routeur…"
+msgstr "En attente de la fin de la commande..."
 
 msgid "Warning"
 msgstr "Attention"
@@ -2835,22 +2847,22 @@ msgid "auto"
 msgstr "auto"
 
 msgid "baseT"
-msgstr ""
+msgstr "baseT"
 
 msgid "bridged"
 msgstr "ponté"
 
 msgid "create:"
-msgstr ""
+msgstr "créer:"
 
 msgid "creates a bridge over specified interface(s)"
 msgstr "créer un bridge entre plusieurs interfaces"
 
 msgid "dB"
-msgstr ""
+msgstr "dB"
 
 msgid "dBm"
-msgstr ""
+msgstr "dBm"
 
 msgid "disable"
 msgstr "désactiver"
@@ -2867,16 +2879,16 @@ msgid "forward"
 msgstr "transfert"
 
 msgid "full-duplex"
-msgstr ""
+msgstr "full-duplex"
 
 msgid "half-duplex"
-msgstr ""
+msgstr "half-duplex"
 
 msgid "help"
 msgstr "aide"
 
 msgid "hidden"
-msgstr ""
+msgstr "cacher"
 
 msgid "if target is a network"
 msgstr "si la destination est un réseau"
@@ -2885,13 +2897,13 @@ msgid "input"
 msgstr "entrée"
 
 msgid "kB"
-msgstr ""
+msgstr "kB"
 
 msgid "kB/s"
-msgstr ""
+msgstr "kB/s"
 
 msgid "kbit/s"
-msgstr ""
+msgstr "kbit/s"
 
 msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
 msgstr "fichier de résolution local"
@@ -2900,7 +2912,7 @@ msgid "no"
 msgstr "non"
 
 msgid "no link"
-msgstr ""
+msgstr "pas de lien"
 
 msgid "none"
 msgstr "aucun"
@@ -2912,7 +2924,7 @@ msgid "on"
 msgstr "Actif"
 
 msgid "open"
-msgstr ""
+msgstr "ouvrir"
 
 msgid "routed"
 msgstr "routé"
@@ -2921,7 +2933,7 @@ msgid "tagged"
 msgstr "marqué"
 
 msgid "unknown"
-msgstr ""
+msgstr "inconnu"
 
 msgid "unlimited"
 msgstr "non limité"
@@ -2941,6 +2953,9 @@ msgstr "oui"
 msgid "« Back"
 msgstr "« Retour"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Attente du routeur…"
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "Activer le serveur NTP intégré"
 
diff --git a/po/fr/commands.po b/po/fr/commands.po
new file mode 100644 (file)
index 0000000..08b3d37
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 941571256faaa91ecc3ecdc3a4abb04f19c028a9..b95bb4491bae313ac6649c25686bffcd7df3bca0 100644 (file)
@@ -1,25 +1,26 @@
-#, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2012-11-06 13:16+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "CoovaChilli"
-msgstr ""
+msgstr "CoovaChilli"
 
 msgid "Network Configuration"
-msgstr ""
+msgstr "Configuration Réseau"
 
 msgid "RADIUS configuration"
-msgstr ""
+msgstr "Configuration RADIUS"
 
 msgid "UAM and MAC Authentication"
-msgstr ""
+msgstr "Authentification UAM et MAC"
index f7db18f9d57a71638159f19148796d758bc471f9..189e8fa31c8d2e49166b778f94dde9ef4d140f90 100644 (file)
@@ -1,17 +1,17 @@
-#, fuzzy
 msgid ""
 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: 2010-04-02 17:15+0100\n"
-"Last-Translator: Benoît Knecht <benoit.knecht@gmail.com>\n"
+"PO-Revision-Date: 2012-11-06 13:19+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
+"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Check for changed IP every"
 msgstr "Vérifier si l'adresse IP a changé toutes les"
@@ -35,6 +35,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Activer"
 
+msgid "Event interface"
+msgstr "Événement sur l'interface"
+
 msgid "Force update every"
 msgstr "Vérification forcée toutes les"
 
@@ -50,6 +53,9 @@ msgstr "Interface"
 msgid "Network"
 msgstr "Réseau"
 
+msgid "On which interface up should start the ddns script process."
+msgstr "Sur quelle interface devrait démarrer le processus du script ddns."
+
 msgid "Password"
 msgstr "Mot de passe"
 
@@ -81,9 +87,3 @@ msgstr "min"
 
 msgid "network"
 msgstr "réseau"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 51a320d1172b79c31bee13669f8d1975afcbe727..a5b4e6adc1b8d904469656dffc06fec940a97597 100644 (file)
@@ -1,26 +1,28 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2011-11-23 22:32+0200\n"
-"Last-Translator: fredb <fblistes+luci@free.fr>\n"
+"PO-Revision-Date: 2012-11-06 13:21+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: none\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Configure Diagnostics"
 msgstr "Configuration des diagnostics"
 
 msgid "Diagnostics"
-msgstr ""
+msgstr "Diagnostiques"
 
 msgid ""
 "The diagnostics available under this menu depend on what modules you have "
 "installed on your device."
 msgstr ""
+"Les diagnostics disponible ci-dessous dépendent des modules que vous avez "
+"installé sur votre appareil. "
 
 msgid ""
 "The entries in the menu allow you to perform diagnostic tests on your system "
index b86052dce391753ea8cca55189dfc4221446757a..3c359e660297abba232bcfb80594057c753b3186 100644 (file)
@@ -1,18 +1,18 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-01-15 07:15+0200\n"
-"Last-Translator: desillu <ledesillusionniste@hotmail.com>\n"
+"PO-Revision-Date: 2012-11-06 16:25+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: none\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Actions"
-msgstr ""
+msgstr "Actions"
 
 msgid "Add"
 msgstr "Ajouter"
@@ -27,19 +27,26 @@ msgid "Configure"
 msgstr "Configurer"
 
 msgid "Configure Scans"
-msgstr ""
+msgstr "Configurer la recherche"
 
 msgid ""
 "Configure scanning for devices on specified networks. Decreasing 'Timeout', "
 "'Repeat Count', and/or 'Sleep Between Requests' may speed up scans, but also "
 "may fail to find some devices."
 msgstr ""
+"Configurer la recherche d'appareils sur un réseau spécifié. Réduire le "
+"'Timeout', 'Repeat Count', et/ou  'Sleep Between Requests' peut augmenter la "
+"vitesse des scans, mais peut aussi ne pas trouver certains appareils."
 
 msgid ""
 "Configure scanning for supported SIP devices on specified networks. "
 "Decreasing 'Timeout', 'Repeat Count', and/or 'Sleep Between Requests' may "
 "speed up scans, but also may fail to find some devices."
 msgstr ""
+"Configurer la recherche d'appareils SIP supporté sur un réseau spécifié. "
+"Réduire le 'Timeout', 'Repeat Count', et/ou 'Sleep Between Requests' peut "
+"augmenter la vitesse des scans, mais peut aussi ne pas trouver certains "
+"appareils."
 
 msgid "Delete"
 msgstr "Supprimer"
@@ -48,7 +55,7 @@ msgid "Device Scan Config"
 msgstr "Configuration de la recherche de périphériques"
 
 msgid "Device Type"
-msgstr ""
+msgstr "Type d'appareil"
 
 msgid "Devices discovered for"
 msgstr "Devices discovered for"
@@ -98,22 +105,22 @@ msgid "Milliseconds to sleep between requests (default 100)"
 msgstr "Durée d'attente en millisecondes entre les requêtes (par défaut 100)"
 
 msgid "Model"
-msgstr ""
+msgstr "Modèle"
 
 msgid "Name"
 msgstr "Nom"
 
 msgid "Network Device Scan"
-msgstr ""
+msgstr "Analyse des périphériques réseau"
 
 msgid "Network Device Scanning Configuration"
-msgstr ""
+msgstr "Configuration de l'analyse des périphériques réseau"
 
 msgid "Networks to scan for devices"
-msgstr ""
+msgstr "Réseaux à scanner pour les périphériques "
 
 msgid "Networks to scan for supported devices"
-msgstr ""
+msgstr "Réseaux à scanner pour les périphériques supporté"
 
 msgid "No SIP devices"
 msgstr "Pas de périphérique SIP"
@@ -135,7 +142,7 @@ msgstr ""
 "Périphérique » (mac-to-devinfo) pour une gamme donnée d'adresses MAC"
 
 msgid "Perform Scans (this can take a few minutes)"
-msgstr ""
+msgstr "Faire un scan ( Cela peut prendre quelques minutes)"
 
 msgid "Phone Information"
 msgstr "Informations concernant le téléphone"
@@ -150,7 +157,7 @@ msgid "Phones"
 msgstr "Téléphones"
 
 msgid "Ports"
-msgstr ""
+msgstr "Ports"
 
 msgid "Raw"
 msgstr "Brut"
@@ -159,7 +166,7 @@ msgid "Repeat Count"
 msgstr "Nombre de tentatives"
 
 msgid "Repeat Scans (this can take a few minutes)"
-msgstr ""
+msgstr "Refaire scans (cela peut prendre quelques minutes )"
 
 msgid "SIP Device Information"
 msgstr "Informations concernant le périphérique SIP"
@@ -174,7 +181,7 @@ msgid "SIP Devices on Network"
 msgstr "Périphériques SIP sur le réseau"
 
 msgid "SIP devices discovered for"
-msgstr ""
+msgstr "Périphériques SIP  découvert pour"
 
 msgid "Scan for devices on specified networks."
 msgstr "Rechercher des périphériques sur les réseaux spécifiés."
@@ -185,6 +192,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr "Scans for devices on specified networks."
+
 msgid "Sleep Between Requests"
 msgstr "Attente entre les requêtes"
 
@@ -208,6 +218,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr "Explorer d'autres réseaux"
-
-msgid "Scans for devices on specified networks."
-msgstr "Scans for devices on specified networks."
index 785d861b38aeb276a25637ff4d2ea4a29636cd76..d69b1f17647c8b2dc95df95ff0a0d9c62059a406 100644 (file)
@@ -15,6 +15,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -81,6 +84,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -102,6 +108,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr ""
 
@@ -114,6 +126,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -140,6 +161,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -191,6 +215,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -221,6 +248,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -250,6 +280,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -299,6 +332,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -307,6 +343,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 827ccd6b961b8e3a9085251cb34fd6254cacbc4c..4b54e27c4cb4b4009409ccb7a79645b1bb42d586 100644 (file)
@@ -3,15 +3,15 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-14 10:33+0200\n"
-"PO-Revision-Date: 2011-06-22 21:31+0200\n"
-"Last-Translator: fredb <fblistes+luci@free.fr>\n"
+"PO-Revision-Date: 2012-11-06 15:20+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Disk"
 msgstr "Disque"
@@ -36,7 +36,7 @@ msgid "h"
 msgstr "h"
 
 msgid "hd-idle"
-msgstr ""
+msgstr "hd-idle"
 
 msgid ""
 "hd-idle is a utility program for spinning-down external disks after a period "
index b4d177c5ca7f1b2b4332d441b8ab2ec9bdcc1f5f..2c2f3129488dcc385aa5a8835aec733df4ac6dfc 100644 (file)
@@ -13,6 +13,9 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Pootle 2.0.4\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr "Canal"
 
@@ -34,9 +37,18 @@ msgstr "Le serveur DHCP donnera automatiquement des adresses IP aux clients"
 msgid "Enable DHCP"
 msgstr "Activer le serveur DHCP"
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr "Paramètres généraux"
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -49,9 +61,17 @@ msgstr "Interfaces"
 msgid "Mesh IP address"
 msgstr "Adresse IP maillée"
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr "Assistant de Maillage"
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr "Protéger le LAN"
 
@@ -61,6 +81,9 @@ msgstr ""
 "Sélectionnez ceci pour permettre aux autres d'utiliser votre connexion pour "
 "accéder à Internet."
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr "Partager votre connexion Internet"
 
@@ -79,6 +102,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr "L'adresse IP donnée n'est pas dans le réseau maillé"
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index b6f02d2531a9bdc26da5aca02174f1c9008f40ed..64dc89927016361796b99677002717d906025103 100644 (file)
@@ -3,39 +3,39 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2011-06-22 21:31+0200\n"
-"Last-Translator: fredb <fblistes+luci@free.fr>\n"
+"PO-Revision-Date: 2012-11-06 16:06+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\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 ""
+msgstr "Activer"
 
 msgid "MMC/SD driver configuration"
-msgstr ""
+msgstr "Configuration driver MMC/SD"
 
 msgid "Mode"
-msgstr ""
+msgstr "Mode"
 
 msgid "Name"
-msgstr ""
+msgstr "Nom"
 
 msgid "Settings"
 msgstr "Configuration"
index ac0b9e3363aae3774401c1ca4a516d6aa7673d47..39b1421737f55d0c07a3cb970b94e71cea4d780d 100644 (file)
@@ -1,15 +1,15 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2011-11-23 22:26+0200\n"
-"Last-Translator: fredb <fblistes+luci@free.fr>\n"
+"PO-Revision-Date: 2012-11-06 16:07+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: none\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Attempts Before WAN Failover"
 msgstr "Essais avant de déclarer un WAN défaillant"
@@ -21,7 +21,7 @@ msgid "Auto"
 msgstr "Auto"
 
 msgid "Collecting data..."
-msgstr ""
+msgstr "Collection de données..."
 
 msgid ""
 "Configure rules for directing outbound traffic through specified WAN Uplinks."
@@ -45,7 +45,7 @@ msgid "Enable"
 msgstr "Activer"
 
 msgid "Failing"
-msgstr ""
+msgstr "Défaillance"
 
 msgid "Failover Traffic Destination"
 msgstr "Destination du trafic en cas de défaillance"
@@ -66,7 +66,7 @@ msgstr ""
 "connexions défaillantes."
 
 msgid "KO"
-msgstr ""
+msgstr "KO"
 
 msgid "Load Balancer Distribution"
 msgstr "Distribution d'équilibrage de charge"
@@ -81,7 +81,7 @@ msgid "Multi-WAN"
 msgstr "Multi-WAN"
 
 msgid "Multi-WAN Status"
-msgstr ""
+msgstr "Statut Multi-WAN"
 
 msgid "Multi-WAN Traffic Rules"
 msgstr "Règles de trafic avec des liens sortants multiples"
@@ -98,7 +98,7 @@ msgid "None"
 msgstr "Aucun"
 
 msgid "OK"
-msgstr ""
+msgstr "OK"
 
 msgid "Ports"
 msgstr "Ports"
@@ -107,13 +107,13 @@ msgid "Protocol"
 msgstr "Protocole"
 
 msgid "Recovering"
-msgstr ""
+msgstr "Récupération"
 
 msgid "Source Address"
 msgstr "Adresse source"
 
 msgid "Unknown"
-msgstr ""
+msgstr "Inconnu"
 
 msgid "WAN Interfaces"
 msgstr "Interfaces WAN"
index 781356b08ad9fcc994390b237e5a9398242e561d..d417e15e474659282cfbf4e819b4bfc1efd3491c 100644 (file)
@@ -3,15 +3,15 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-14 13:24+0200\n"
-"PO-Revision-Date: 2011-06-13 21:23+0200\n"
-"Last-Translator: fredb <fblistes+luci@free.fr>\n"
+"PO-Revision-Date: 2012-11-06 16:08+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Clock Adjustment"
 msgstr "Ajustement de l'horloge"
@@ -38,7 +38,7 @@ msgid "Synchronizes the system time"
 msgstr "Synchronise le temps système"
 
 msgid "Time Server"
-msgstr ""
+msgstr "Serveur temps "
 
 msgid "Time Servers"
 msgstr "Serveurs de temps"
index cc11b15ef8d24f1036530b130004dc0d4cf3f6ad..ae901a0c5e4b787eee1df421315e90190aedc71a 100644 (file)
@@ -1,16 +1,17 @@
-#, fuzzy
 msgid ""
 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: 2010-03-26 09:06+0100\n"
-"Last-Translator: Benoît Knecht <benoit.knecht@gmail.com>\n"
+"PO-Revision-Date: 2012-11-06 16:08+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Calculate overhead"
 msgstr "Calculer la surcharge"
@@ -102,4 +103,4 @@ msgid "priority"
 msgstr "prioritaire"
 
 msgid "qos_connbytes"
-msgstr ""
+msgstr "qos_connbytes"
index f627657e7fa8f1bc14959bfa96a696dcdbc45c56..f1fec699daa9cacf0b4d570e948ed6ac3b9df2c0 100644 (file)
@@ -68,7 +68,7 @@ msgid "Collectd Settings"
 msgstr "Paramètres Collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -115,6 +115,9 @@ msgstr "Utilisation de l'espace-disque"
 msgid "Disk Usage"
 msgstr "Espace-disque"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Période affichée »"
 
@@ -193,12 +196,6 @@ msgstr "Ignorer les adresses-source"
 msgid "Incoming interface"
 msgstr "Interface entrante"
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr "Configuration du greffon des Interfaces"
 
@@ -292,11 +289,6 @@ msgstr "Configuration du greffon réseau"
 msgid "Network plugins"
 msgstr "Greffons liés au réseau"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr "Protocole réseau"
 
@@ -321,13 +313,6 @@ msgstr "Interface sortante"
 msgid "Output plugins"
 msgstr "Greffons liés aux résultats"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -427,11 +412,6 @@ msgstr "Charge-système"
 msgid "System plugins"
 msgstr "Greffons liés au système"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr "Connexions TCP"
 
@@ -447,6 +427,9 @@ msgstr "TTL des paquets ping"
 msgid "Table"
 msgstr "Table"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -608,13 +591,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"Le greffon sans-fil récupère des informations sur la puissance du signal "
-"wifi, sa qualité et sur le bruit."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -631,6 +607,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr "Tente de récupérer des noms d'hôtes complètement qualifiés"
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "Socket Unix"
 
@@ -649,9 +634,6 @@ msgstr "Surveillance verbeuse"
 msgid "Wireless"
 msgstr "Sans-fil"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Configuration du greffon sans-fil"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
@@ -675,3 +657,13 @@ msgstr "En secondes ; séparer différentes valeurs par des espaces"
 
 msgid "server interfaces"
 msgstr "Interfaces du serveur"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "Le greffon sans-fil récupère des informations sur la puissance du signal "
+#~ "wifi, sa qualité et sur le bruit."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Configuration du greffon sans-fil"
index e927a01dd23d7b8fc77c814493fe3e5a22351a51..ca78ca42f49fe1b53b4153a51a4527733328c2d1 100644 (file)
@@ -3,15 +3,15 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2011-11-23 22:30+0200\n"
-"Last-Translator: fredb <fblistes+luci@free.fr>\n"
+"PO-Revision-Date: 2012-11-06 16:09+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid ""
 "<em>Via proxy</em> routes requests to the given target via the specifed "
@@ -76,7 +76,7 @@ msgstr ""
 "ou \".\" pour n'importe quel nom d'hôte sans domaine"
 
 msgid "Configuration"
-msgstr ""
+msgstr "Configuration"
 
 msgid "Connection timeout"
 msgstr "Délai de connexion"
@@ -257,7 +257,7 @@ msgid "Statistics page"
 msgstr "Page de statistiques"
 
 msgid "Status"
-msgstr ""
+msgstr "Statut"
 
 msgid "Target host"
 msgstr "Hôte de destination"
@@ -266,7 +266,7 @@ msgid "Tinyproxy"
 msgstr "Tinyproxy"
 
 msgid "Tinyproxy Status"
-msgstr ""
+msgstr "Statut Tinyproxy"
 
 msgid "Tinyproxy is a small and fast non-caching HTTP(S)-Proxy"
 msgstr "Tinyproxy is a small and fast non-caching HTTP(S)-Proxy"
index d0ca31245fccc0c769e7c5a530f04c4c7bb39310..0fbb2fc69d7759f7e9b7adfa7bf5e551da88f6d6 100644 (file)
@@ -1,16 +1,17 @@
-#, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2012-11-06 16:09+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid ""
 "ACLs specify which external ports may be redirected to which internal "
@@ -125,7 +126,7 @@ msgid "There are no active redirects."
 msgstr "Il n'y a pas de redirections actives."
 
 msgid "UPNP"
-msgstr ""
+msgstr "UPNP"
 
 msgid ""
 "UPNP allows clients in the local network to automatically configure the "
index 2363852d23c5ed5df0806edd688d746bd671e67d..71ef06285ad6696321e55144a7346816813bec84 100644 (file)
@@ -1,21 +1,21 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-01-15 07:10+0200\n"
-"Last-Translator: desillu <ledesillusionniste@hotmail.com>\n"
+"PO-Revision-Date: 2012-11-06 16:09+0200\n"
+"Last-Translator: hogsim <hogsim@gmail.com>\n"
 "Language-Team: none\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Phones"
 msgstr "Téléphones"
 
 msgid "Voice"
-msgstr ""
+msgstr "Voix"
 
 #~ msgid "l_v_adminphones"
 #~ msgstr "Téléphones"
index 5d93da5eb38c711bc477c680483293c8aff1cf16..484e04a38a394afc50e54f22d2c8b8118bda15a3 100644 (file)
@@ -245,6 +245,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "הטווח המורשה הוא 1 עד 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 #, fuzzy
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "רשת נוספת תווצר אם תשאיר את זה לא מסומן"
@@ -842,6 +847,9 @@ msgstr ""
 msgid "Force"
 msgstr ""
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2584,9 +2592,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr ""
-
 msgid "Warning"
 msgstr "אזהרה"
 
diff --git a/po/he/commands.po b/po/he/commands.po
new file mode 100644 (file)
index 0000000..0e9e65d
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index e9637f091d2fdce8ccbb496ab8e70a39933c9682..1e66f7f00c3caa53aa9aed125d4bb20cff1abe26 100644 (file)
@@ -38,6 +38,9 @@ msgstr ""
 msgid "Enable"
 msgstr "אפשר"
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "אלץ עדכון כל"
 
@@ -54,6 +57,9 @@ msgstr "ממשק"
 msgid "Network"
 msgstr "רשת"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr "סיסמא"
 
@@ -85,9 +91,3 @@ msgstr "דק'"
 
 msgid "network"
 msgstr "רשת"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 5ff7d3bb32f03dd83f73fe6bbea79f4a946d7048..7161955d816a1adae9d1ff6dcc4a646e418d52c7 100644 (file)
@@ -178,6 +178,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -201,6 +204,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index c126cc601fd15a67a79e9f15148aa8a5002ce455..5d9e8a772ce6d93b24ab1e94b4015ccc886d5079 100644 (file)
@@ -14,6 +14,9 @@ msgstr ""
 msgid "BSSID"
 msgstr "BSSID"
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr "הגדרות בסיס"
 
@@ -80,6 +83,9 @@ msgstr "ESSID"
 msgid "Edit index page"
 msgstr "ערוך דף אינדקס"
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr "שגיאה"
 
@@ -101,6 +107,12 @@ msgstr "שער"
 msgid "Go to"
 msgstr "עבור אל"
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "שלום וברוך הבא לרשת של"
 
@@ -113,6 +125,15 @@ msgstr "דף הבית"
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr "אם מסומן, תוכן ברירת המחדל לא יופיע"
 
@@ -139,6 +160,9 @@ msgstr "שמור הגדרות"
 msgid "Latitude"
 msgstr "רוחב"
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -190,6 +214,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr "סקירה"
 
@@ -220,6 +247,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -249,6 +279,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -298,6 +331,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -306,6 +342,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index d4cfc501f5b5ee881522f023f5e75a32bed4b082..f887a891d11b42e0d7fd4683cc4feb1db03f1a6d 100644 (file)
@@ -8,6 +8,9 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -29,9 +32,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -42,9 +54,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -52,6 +72,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -65,6 +88,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 4e72ebd7b940ac21b69de3ea90a7e1e06ac9fb99..6ad747565c7b54c721ba7ab177e7600efe1a0dd8 100644 (file)
@@ -68,7 +68,7 @@ msgid "Collectd Settings"
 msgstr ""
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -112,6 +112,9 @@ msgstr ""
 msgid "Disk Usage"
 msgstr ""
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr ""
 
@@ -182,12 +185,6 @@ msgstr ""
 msgid "Incoming interface"
 msgstr ""
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr ""
 
@@ -281,11 +278,6 @@ msgstr ""
 msgid "Network plugins"
 msgstr ""
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr ""
 
@@ -310,13 +302,6 @@ msgstr ""
 msgid "Output plugins"
 msgstr ""
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr ""
 
@@ -416,11 +401,6 @@ msgstr ""
 msgid "System plugins"
 msgstr ""
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr ""
 
@@ -436,6 +416,9 @@ msgstr ""
 msgid "Table"
 msgstr ""
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -551,11 +534,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -568,6 +546,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr ""
 
@@ -586,9 +573,6 @@ msgstr ""
 msgid "Wireless"
 msgstr ""
 
-msgid "Wireless Plugin Configuration"
-msgstr ""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
index 5ebaf7d328cc1c6843f4d685c6f07a51cb3fcb12..bf8f2169ab298b2c8ef4fa4036c1e44c557cf0bf 100644 (file)
@@ -1,8 +1,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-09-13 18:30+0200\n"
-"Last-Translator: Gábor <vargalex@freemail.hu>\n"
+"PO-Revision-Date: 2012-11-20 18:52+0200\n"
+"Last-Translator: juhosg <juhosg@openwrt.org>\n"
 "Language-Team: none\n"
 "Language: hu\n"
 "MIME-Version: 1.0\n"
@@ -174,10 +174,10 @@ msgid "Active Connections"
 msgstr "Aktív kapcsolatok"
 
 msgid "Active DHCP Leases"
-msgstr ""
+msgstr "Aktív DHCP bérletek"
 
 msgid "Active DHCPv6 Leases"
-msgstr ""
+msgstr "Aktív DHCPv6 bérletek"
 
 msgid "Ad-Hoc"
 msgstr "Ad-Hoc"
@@ -249,6 +249,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "Engedélyezett tartomány 1-től 65535-ig"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Amennyiben ezt jelöletlenül hagyja, egy további hálózat jön létre"
 
@@ -422,6 +427,9 @@ msgid ""
 "Choose the network(s) you want to attach to this wireless interface or fill "
 "out the <em>create</em> field to define a new network."
 msgstr ""
+"Válassza ki azokat a hálózatokat, amelyeket csatlakoztatni akar ehhez a "
+"vezetéknélküli interfészhez, vagy töltse ki az <em>új</em> mezőt egy új "
+"hálózat definiálásához."
 
 msgid "Cipher"
 msgstr "Titkosító"
@@ -744,7 +752,7 @@ msgid "Enable Jumbo Frame passthrough"
 msgstr "Óriás keretek átengedésének engedélyezése"
 
 msgid "Enable NTP client"
-msgstr ""
+msgstr "NTP-kliens engedélyezése"
 
 msgid "Enable TFTP server"
 msgstr "TFTP kiszolgáló engedélyezése"
@@ -870,6 +878,9 @@ msgstr "Flash-elés..."
 msgid "Force"
 msgstr "Kényszerítés"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr "CCMP (AES) kényszerítése"
 
@@ -912,7 +923,7 @@ msgid "GHz"
 msgstr ""
 
 msgid "GPRS only"
-msgstr ""
+msgstr "Csak GPRS"
 
 msgid "Gateway"
 msgstr "Átjáró"
@@ -1016,7 +1027,7 @@ msgid "IPv4 and IPv6"
 msgstr "IPv4 és IPv6"
 
 msgid "IPv4 broadcast"
-msgstr "IPv4 broagcast"
+msgstr "IPv4 broadcast"
 
 msgid "IPv4 gateway"
 msgstr "IPv4 átjáró"
@@ -1028,7 +1039,7 @@ msgid "IPv4 only"
 msgstr "csak IPv4"
 
 msgid "IPv4 prefix length"
-msgstr ""
+msgstr "IPv4 prefix hossza"
 
 msgid "IPv4-Address"
 msgstr "IPv4-cím"
@@ -1055,10 +1066,10 @@ msgid "IPv6 prefix"
 msgstr ""
 
 msgid "IPv6 prefix length"
-msgstr ""
+msgstr "IPv6 prefix hossz"
 
 msgid "IPv6-Address"
-msgstr ""
+msgstr "IPv6-cím"
 
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6 IPv4-ben (RFC4213)"
@@ -1349,7 +1360,7 @@ msgid "Localise queries"
 msgstr ""
 
 msgid "Locked to channel %d used by %s"
-msgstr "Zárolt a %s által használt %d csatornára"
+msgstr "Zárolt a %d csatornára az %s által."
 
 msgid "Log output level"
 msgstr "Napló kimeneti szintje"
@@ -1569,7 +1580,7 @@ msgid "Normal"
 msgstr "Normál"
 
 msgid "Not Found"
-msgstr ""
+msgstr "Nem található"
 
 msgid "Not associated"
 msgstr "Nincs hozzárendelve"
@@ -1810,7 +1821,7 @@ msgid "Protocol support is not installed"
 msgstr "Protokoll támogatás nincs telepítve"
 
 msgid "Provide NTP server"
-msgstr ""
+msgstr "NTP kiszolgáló"
 
 msgid "Provide new network"
 msgstr "Új hálózat nyújtása"
@@ -1819,7 +1830,7 @@ msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Ál Ad-hoc (ahdemo)"
 
 msgid "Quality"
-msgstr ""
+msgstr "Minőség"
 
 msgid "RTS/CTS Threshold"
 msgstr "RTS/CTS küszöbérték"
@@ -1862,11 +1873,17 @@ msgid ""
 "Really delete this interface? The deletion cannot be undone!\\nYou might "
 "lose access to this device if you are connected via this interface."
 msgstr ""
+"Biztosan törli az interfészt? A törlés nem visszavonható!\n"
+" Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen az "
+"interfészen keresztül kapcsolódik."
 
 msgid ""
 "Really delete this wireless network? The deletion cannot be undone!\\nYou "
 "might lose access to this device if you are connected via this network."
 msgstr ""
+"Biztosan törli ezt a vezetéknélküli hálózatot? A törlés nem visszavonható!\n"
+"Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen a hálózaton "
+"keresztül kapcsolódik."
 
 msgid "Really reset all changes?"
 msgstr "Biztos, hogy visszavonja az összes módosítást?"
@@ -1875,11 +1892,17 @@ msgid ""
 "Really shutdown interface \"%s\" ?\\nYou might lose access to this device if "
 "you are connected via this interface."
 msgstr ""
+"Biztos, hogy leállítja a \"%s\" interfészt?\n"
+" Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen az "
+"interfészen keresztül kapcsolódik."
 
 msgid ""
 "Really shutdown network ?\\nYou might lose access to this device if you are "
 "connected via this interface."
 msgstr ""
+"Biztos, hogy leállítja a hálózatot?!\n"
+" Lehet, hogy elveszti a hozzáférést az eszközhöz, amennyiben ezen a "
+"hálózaton keresztül kapcsolódik."
 
 msgid "Really switch protocol?"
 msgstr "Biztos, hogy cserélni szeretné a protokollt?"
@@ -2019,10 +2042,10 @@ msgid "Rule #"
 msgstr "Szabály #"
 
 msgid "Run a filesystem check before mounting the device"
-msgstr "Fájlrendszer elleőrzés futtatása az eszköz csatolása előtt"
+msgstr "Fájlrendszer ellenőrzés futtatása az eszköz csatolása előtt"
 
 msgid "Run filesystem check"
-msgstr "Fájlrendszer elleőrzés futtatása"
+msgstr "Fájlrendszer ellenőrzés futtatása"
 
 msgid "SSH Access"
 msgstr "SSH hozzáférés"
@@ -2128,10 +2151,10 @@ msgid "Some fields are invalid, cannot save values!"
 msgstr "Néhán mező érvénytelen, az értékek nem menthetők!"
 
 msgid "Sorry, the object you requested was not found."
-msgstr ""
+msgstr "Sajnálom, a kért objektum nem található."
 
 msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
+msgstr "Sajnálom, a szerver váratlan hibát észlelt."
 
 msgid ""
 "Sorry, there is no sysupgrade support present, a new firmware image must be "
@@ -2719,9 +2742,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr "Várakozás a routerre..."
-
 msgid "Warning"
 msgstr "Figyelmeztetés"
 
@@ -2801,7 +2821,7 @@ msgid "bridged"
 msgstr "áthidalt"
 
 msgid "create:"
-msgstr ""
+msgstr "új:"
 
 msgid "creates a bridge over specified interface(s)"
 msgstr "híd létrehozása a megadott interfész(ek) között"
@@ -2903,6 +2923,9 @@ msgstr "igen"
 msgid "« Back"
 msgstr "« Vissza"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Várakozás a routerre..."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "Beépített NTP kiszolgáló engedélyezése"
 
diff --git a/po/hu/commands.po b/po/hu/commands.po
new file mode 100644 (file)
index 0000000..0e9e65d
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index ecb5700e801f2ec459eff8f9d61ac97c1d631027..648f0cfc760f0f59f1f20bd252be309199691a58 100644 (file)
@@ -37,6 +37,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Engedélyezés"
 
+msgid "Event interface"
+msgstr "Esemány interfész"
+
 msgid "Force update every"
 msgstr "Frissítés erőltetése minden"
 
@@ -52,6 +55,9 @@ msgstr "Interfész"
 msgid "Network"
 msgstr "Hálózat"
 
+msgid "On which interface up should start the ddns script process."
+msgstr "Melyik interfész indulása váltsa ki a ddns script indítását."
+
 msgid "Password"
 msgstr "Jelszó"
 
@@ -83,9 +89,3 @@ msgstr "perc"
 
 msgid "network"
 msgstr "hálózat"
-
-msgid "Event interface"
-msgstr "Esemány interfész"
-
-msgid "On which interface up should start the ddns script process."
-msgstr "Melyik interfész indulása váltsa ki a ddns script indítását."
index 33b068df5a0a6fd63642b993d247218ccd7352b8..e2acfdd3d03ae0e1ffa634517077e4160b569658 100644 (file)
@@ -187,6 +187,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr "Scans for devices on specified networks."
+
 msgid "Sleep Between Requests"
 msgstr "Kérések közötti szünet"
 
@@ -210,6 +213,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr "egyéb hálózatok ellenőrzése"
-
-msgid "Scans for devices on specified networks."
-msgstr "Scans for devices on specified networks."
index 8df7f6a8668aa6fe39fdb32a8046a54470cac7cc..a14be134a1cb11dd8894935e032a7e3e5c85b6d7 100644 (file)
@@ -3,6 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -11,6 +12,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -77,6 +81,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -98,6 +105,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr ""
 
@@ -110,6 +123,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -136,6 +158,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -187,6 +212,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -217,6 +245,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -246,6 +277,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -295,6 +329,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -303,6 +340,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index d4cfc501f5b5ee881522f023f5e75a32bed4b082..f887a891d11b42e0d7fd4683cc4feb1db03f1a6d 100644 (file)
@@ -8,6 +8,9 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -29,9 +32,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -42,9 +54,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -52,6 +72,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -65,6 +88,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 9cfdf700fc2ee1e7b9b82f0b1e6b57ae6bf3f6b2..e4c392ce75bb275fa7a07b7fa60803c30b8653d9 100644 (file)
@@ -79,8 +79,8 @@ msgid ""
 "With <abbr title=\"Quality of Service\">QoS</abbr> you can prioritize "
 "network traffic selected by addresses, ports or services."
 msgstr ""
-"A <abbr title=\"Quality of Service\">QoS</abbr> segítségével beállítható cím, "
-"portok vagy szolgáltatások alapján kiválasztott hálózati forgalom "
+"A <abbr title=\"Quality of Service\">QoS</abbr> segítségével beállítható "
+"cím, portok vagy szolgáltatások alapján kiválasztott hálózati forgalom "
 "prioritása."
 
 msgid "all"
index f2888c4016c8d90e6ff48872153672272a7dd5b2..8777a4911d6d7cd458c1484bc57becd92c32c8e2 100644 (file)
@@ -66,7 +66,7 @@ msgid "Collectd Settings"
 msgstr "Collectd beállítások"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -113,6 +113,9 @@ msgstr "Felhasznált lemezterület"
 msgid "Disk Usage"
 msgstr "Lemezhasználat"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Időszak megjelenítése »"
 
@@ -192,12 +195,6 @@ msgstr "Forrás címek figyelmen kívül hagyása"
 msgid "Incoming interface"
 msgstr "Bejövő interfész"
 
-msgid "Installed network plugins:"
-msgstr "Telepített hálózati bővítmények:"
-
-msgid "Installed output plugins:"
-msgstr "Telepített kimeneti bővítmények:"
-
 msgid "Interface Plugin Configuration"
 msgstr "Interfész bővítmény beállítása"
 
@@ -293,13 +290,6 @@ msgstr "Hálózat bővítmény beállítása"
 msgid "Network plugins"
 msgstr "Hálózati bővítmények"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-"A hálózati bővítmények nyitott TCP kapcsolatok, interfész forgalom, iptables "
-"szabályok és ehhez hasonló információk gyűjtésére használhatók."
-
 msgid "Network protocol"
 msgstr "Hálózati protokoll"
 
@@ -324,18 +314,6 @@ msgstr "Kimenő interfész"
 msgid "Output plugins"
 msgstr "Kimeneti bővítmények"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-"A kimeneti bővítmények különféle lehetőségeket biztosítanak az összegyűjtött "
-"adatok tárolásához. Lehetőség van többféle bővítmény egyidejű "
-"engedélyezésére, például az összegyűjtött adatok RRD adatbázisban történő "
-"tárolására és egyidejűleg hálózaton keresztül másik collectd példányhoz való "
-"továbbítására."
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -439,13 +417,6 @@ msgstr "Rendszerterhelés"
 msgid "System plugins"
 msgstr "Rendszer bővítmények"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-"A rendszer bővítmények a rendszer állapotáról és az erőforrások "
-"használatáról gyűjtenek adatokat az eszközön."
-
 msgid "TCP Connections"
 msgstr "TCP kapcsolatok"
 
@@ -461,6 +432,9 @@ msgstr "TTL a ping csomagokhoz"
 msgid "Table"
 msgstr "Táblázat"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -602,13 +576,6 @@ msgstr ""
 "A unixsock bővítmény létrehoz egy unix socket-et melyen keresztül "
 "kiolvashatók az összegyűjtött adatok egy futó collectd-ből. "
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"A vezetéknélküli bővítmény vezetéknélküli jelerősségről, zajról és "
-"minőségről gyűjt információkat."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -623,6 +590,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -641,9 +617,6 @@ msgstr ""
 msgid "Wireless"
 msgstr "Vezeték nélküli"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Vezetéknélküli bővítmény beállítása"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr "iwinfo vezeték nélküli bővítmény beállítása"
 
@@ -667,3 +640,45 @@ msgstr "másodpercek; több szóközzel elválasztott érték is megadható"
 
 msgid "server interfaces"
 msgstr "kiszolgáló interfész"
+
+#~ msgid "Installed network plugins:"
+#~ msgstr "Telepített hálózati bővítmények:"
+
+#~ msgid "Installed output plugins:"
+#~ msgstr "Telepített kimeneti bővítmények:"
+
+#~ msgid ""
+#~ "Network plugins are used to collect information about open tcp "
+#~ "connections, interface traffic, iptables rules etc."
+#~ msgstr ""
+#~ "A hálózati bővítmények nyitott TCP kapcsolatok, interfész forgalom, iptables "
+#~ "szabályok és ehhez hasonló információk gyűjtésére használhatók."
+
+#~ msgid ""
+#~ "Output plugins provide different possibilities to store collected data. "
+#~ "It is possible to enable multiple plugin at one, for example to store "
+#~ "collected data in rrd databases and to transmit the data over the network "
+#~ "to other collectd instances."
+#~ msgstr ""
+#~ "A kimeneti bővítmények különféle lehetőségeket biztosítanak az összegyűjtött "
+#~ "adatok tárolásához. Lehetőség van többféle bővítmény egyidejű "
+#~ "engedélyezésére, például az összegyűjtött adatok RRD adatbázisban történő "
+#~ "tárolására és egyidejűleg hálózaton keresztül másik collectd példányhoz való "
+#~ "továbbítására."
+
+#~ msgid ""
+#~ "System plugins collecting values about system state and ressource usage "
+#~ "on the device.:"
+#~ msgstr ""
+#~ "A rendszer bővítmények a rendszer állapotáról és az erőforrások "
+#~ "használatáról gyűjtenek adatokat az eszközön."
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "A vezetéknélküli bővítmény vezetéknélküli jelerősségről, zajról és "
+#~ "minőségről gyűjt információkat."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Vezetéknélküli bővítmény beállítása"
index 34e68bdc8c975d8c84339fad78bdaf7d4d3a4fb7..9630fa5697c61fe5ecf47aeb2c6882a9e7408e82 100644 (file)
@@ -3,27 +3,27 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2011-06-26 16:20+0200\n"
-"Last-Translator: Massimo <coatto87@gmail.com>\n"
+"PO-Revision-Date: 2012-12-15 19:35+0200\n"
+"Last-Translator: claudyus <claudyus84@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "(%d minute window, %d second interval)"
 msgstr "(%d finestra in minuti , %d secondi intervallo)"
 
 msgid "(%s available)"
-msgstr "(%s available)"
+msgstr "(%s disponibile)"
 
 msgid "(empty)"
 msgstr "(vuoto)"
 
 msgid "(no interfaces attached)"
-msgstr "(vuoto)"
+msgstr "(nessuna interfaccia collegata)"
 
 msgid "-- Additional Field --"
 msgstr "-- Campo aggiuntivo --"
@@ -35,10 +35,10 @@ msgid "-- custom --"
 msgstr "-- personalizzato --"
 
 msgid "1 Minute Load:"
-msgstr "1 minuto carico:"
+msgstr "Carico in 1 minuto:"
 
 msgid "15 Minute Load:"
-msgstr "15 minuti carico::"
+msgstr "Carico in 15 minut:"
 
 msgid "40MHz 2nd channel above"
 msgstr "40MHz superiore"
@@ -250,6 +250,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "Range permesso 1-65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Sarà creata una rete aggiuntiva se lasci questo senza spunta."
 
@@ -857,6 +862,9 @@ msgstr ""
 msgid "Force"
 msgstr "Forza"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2637,9 +2645,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr ""
-
 msgid "Warning"
 msgstr ""
 
diff --git a/po/it/commands.po b/po/it/commands.po
new file mode 100644 (file)
index 0000000..0e9e65d
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 754e919979597d54fbb1886927aa9bf7f1322dd2..4121613fb33444bdb8340ed61d032fc2d0872091 100644 (file)
@@ -35,6 +35,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Abilita"
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "Forza aggiornamento ogni"
 
@@ -50,6 +53,9 @@ msgstr "Interfaccia"
 msgid "Network"
 msgstr "Rete"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr "Password"
 
@@ -81,9 +87,3 @@ msgstr "min"
 
 msgid "network"
 msgstr "rete"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 5ff7d3bb32f03dd83f73fe6bbea79f4a946d7048..7161955d816a1adae9d1ff6dcc4a646e418d52c7 100644 (file)
@@ -178,6 +178,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -201,6 +204,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index 3294c9a22b87bcda4b368209cbaaf62bc6538e52..68e96188f11f7c662ad2d12a0cf7216c5de24b63 100644 (file)
@@ -15,6 +15,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -81,6 +84,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -102,6 +108,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr ""
 
@@ -114,6 +126,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -140,6 +161,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -191,6 +215,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -221,6 +248,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -250,6 +280,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -299,6 +332,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -307,6 +343,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 3a6dfc030e4037adfdbde3d6e67c9334d405dc44..114547a7909de532406ac2e848baf4576f6d9e4c 100644 (file)
@@ -13,6 +13,9 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Pootle 2.0.4\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr "Canale"
 
@@ -34,9 +37,18 @@ msgstr "DHCP assegnerà indirizzi ip ai client"
 msgid "Enable DHCP"
 msgstr "Abilità DHCP"
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr "Impostazioni generali"
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -47,9 +59,17 @@ msgstr "Interfacce"
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr "Proteggi LAN"
 
@@ -59,6 +79,9 @@ msgstr ""
 "Selezionare per permettere ad altri di usare la tua connessione per accedere "
 "a internet."
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr "Condividi la tua connessione internet"
 
@@ -76,6 +99,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr "L'IP dato non è all'interno del range degli indirizzi di rete mesh"
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 48c6188390b1363379a33672a5b71a7fc2f72696..2949f4a149c5c6295ec000f1a7a10f143c3ab0c7 100644 (file)
@@ -1,54 +1,57 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2012-12-15 19:42+0200\n"
+"Last-Translator: claudyus <claudyus84@gmail.com>\n"
 "Language-Team: none\n"
+"Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Advanced Settings"
-msgstr ""
+msgstr "Opzioni avanzate"
 
 msgid "Album art names:"
 msgstr ""
 
 msgid "Announced model number:"
-msgstr ""
+msgstr "Numero modello annunciato:"
 
 msgid "Announced serial number:"
-msgstr ""
+msgstr "Numero seriale annunciato:"
 
 msgid "Browse directory"
-msgstr ""
+msgstr "Esplora directory"
 
 msgid "Collecting data..."
-msgstr ""
+msgstr "Recuperando i dati..."
 
 msgid "Database directory:"
-msgstr ""
+msgstr "Directory database:"
 
 msgid "Enable TIVO:"
-msgstr ""
+msgstr "Abilita TIVO:"
 
 msgid "Enable inotify:"
-msgstr ""
+msgstr "Abilita inotify:"
 
 msgid "Enable:"
-msgstr ""
+msgstr "Abilita:"
 
 msgid "Friendly name:"
 msgstr ""
 
 msgid "General Settings"
-msgstr ""
+msgstr "Impostazioni generali"
 
 msgid "Interfaces:"
-msgstr ""
+msgstr "Interfaccie:"
 
 msgid "Log directory:"
-msgstr ""
+msgstr "Directory di log:"
 
 msgid "Media directories:"
 msgstr ""
@@ -57,6 +60,8 @@ msgid ""
 "MiniDLNA is server software with the aim of being fully compliant with DLNA/"
 "UPnP-AV clients."
 msgstr ""
+"MiniDLNA è un server il cui intento è di essere completamente compatibile "
+"con i DLNA/UPnP-AV client disponibili."
 
 msgid ""
 "Model number the miniDLNA daemon will report to clients in its XML "
@@ -64,25 +69,25 @@ msgid ""
 msgstr ""
 
 msgid "Music"
-msgstr ""
+msgstr "Musica"
 
 msgid "Network interfaces to serve."
-msgstr ""
+msgstr "Interfaccia di rete usata."
 
 msgid "Notify interval in seconds."
-msgstr ""
+msgstr "Intervallo di notifica in secondi."
 
 msgid "Notify interval:"
-msgstr ""
+msgstr "Intervallo di notifica:"
 
 msgid "Pictures"
-msgstr ""
+msgstr "Immagini"
 
 msgid "Port for HTTP (descriptions, SOAP, media transfer) traffic."
 msgstr ""
 
 msgid "Port:"
-msgstr ""
+msgstr "Porta:"
 
 msgid "Presentation URL:"
 msgstr ""
@@ -94,6 +99,8 @@ msgid ""
 "Serial number the miniDLNA daemon will report to clients in its XML "
 "description."
 msgstr ""
+"Serial number che il server miniDLNA invierà ai client nella descrizione "
+"XML."
 
 msgid ""
 "Set this if you want to customize the name that shows up on your clients."
index de74ec9ceee24435d707f073ece1a905d5599845..3c9a1906b5fcc8e90478a661be87915909da4fef 100644 (file)
@@ -1,15 +1,18 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2012-12-15 19:31+0200\n"
+"Last-Translator: claudyus <claudyus84@gmail.com>\n"
 "Language-Team: none\n"
+"Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Advanced Settings"
-msgstr ""
+msgstr "Opzioni avanzate"
 
 msgid "Available"
 msgstr ""
index ab3fd9ec90c71c05706b37fab86877d2cc3ec64f..f89723e89d0936fb3eb1c51c19e1236923f55e3f 100644 (file)
@@ -68,7 +68,7 @@ msgid "Collectd Settings"
 msgstr ""
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -115,6 +115,9 @@ msgstr ""
 msgid "Disk Usage"
 msgstr ""
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr ""
 
@@ -190,12 +193,6 @@ msgstr ""
 msgid "Incoming interface"
 msgstr ""
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr ""
 
@@ -291,11 +288,6 @@ msgstr ""
 msgid "Network plugins"
 msgstr ""
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr ""
 
@@ -320,13 +312,6 @@ msgstr ""
 msgid "Output plugins"
 msgstr ""
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr ""
 
@@ -426,11 +411,6 @@ msgstr ""
 msgid "System plugins"
 msgstr ""
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr ""
 
@@ -446,6 +426,9 @@ msgstr ""
 msgid "Table"
 msgstr "Tabella"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -561,11 +544,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -578,6 +556,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr ""
 
@@ -596,9 +583,6 @@ msgstr ""
 msgid "Wireless"
 msgstr ""
 
-msgid "Wireless Plugin Configuration"
-msgstr ""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
index 1e78aec9d448d3af7965969bd7ce43b8095d7188..34528c1139987934ff4b42701c794800c11217bf 100644 (file)
@@ -3,15 +3,15 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2011-05-22 11:03+0200\n"
-"Last-Translator: Massimo <coatto87@gmail.com>\n"
+"PO-Revision-Date: 2012-12-15 19:29+0200\n"
+"Last-Translator: claudyus <claudyus84@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid ""
 "<em>Via proxy</em> routes requests to the given target via the specifed "
@@ -23,15 +23,17 @@ msgid ""
 "Adds an \"X-Tinyproxy\" HTTP header with the client IP address to forwarded "
 "requests"
 msgstr ""
+"Aggiungi una intestazione http \"X-Tinyproxy\" contenente l'IP del client a "
+"cui forwardare la richiesta"
 
 msgid "Allowed clients"
-msgstr ""
+msgstr "Client permessi"
 
 msgid "Allowed connect ports"
-msgstr ""
+msgstr "Porte di connessione permesse"
 
 msgid "Bind address"
-msgstr ""
+msgstr "Bind Address"
 
 msgid ""
 "By default, basic POSIX expressions are used for filtering. Enable this to "
@@ -47,6 +49,8 @@ msgid ""
 "By default, filtering is done based on domain names. Enable this to match "
 "against URLs instead"
 msgstr ""
+"Di default, il filto è basato sul nome di dominio. Abilita questa opzione "
+"per effettuare il match con URL"
 
 msgid ""
 "By default, the filter rules act as blacklist. Enable this option to only "
@@ -59,7 +63,7 @@ msgid ""
 msgstr ""
 
 msgid "Configuration"
-msgstr ""
+msgstr "Configurazione"
 
 msgid "Connection timeout"
 msgstr ""
@@ -74,7 +78,7 @@ msgid "Error page"
 msgstr ""
 
 msgid "Failed to retrieve statistics from url:"
-msgstr ""
+msgstr "Impossibile recuperare le statistiche dall'url:"
 
 msgid "Filter by RegExp"
 msgstr ""
@@ -109,6 +113,7 @@ msgstr ""
 msgid ""
 "List of IP addresses or ranges which are allowed to use the proxy server"
 msgstr ""
+"Lista di indirizzi IP o range di indirizzi a cui è permesso l'uso del proxy"
 
 msgid ""
 "List of allowed ports for the CONNECT method. A single value \"0\" allows "
@@ -143,7 +148,7 @@ msgid "Max. spare servers"
 msgstr ""
 
 msgid "Maximum allowed number of concurrently connected clients"
-msgstr ""
+msgstr "Numero massimo di client simultanei permessi"
 
 msgid ""
 "Maximum allowed number of requests per process. If it is exeeded, the "
index 539b9b05e2e25e2ac9c58eac8f3e3f2ba42b91d0..24a7be5a41d4abdd49450654f1397ff570c88123 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:40+0200\n"
-"PO-Revision-Date: 2012-08-30 16:46+0200\n"
+"PO-Revision-Date: 2012-11-17 16:43+0200\n"
 "Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: ja\n"
@@ -173,10 +173,10 @@ msgid "Active Connections"
 msgstr "アクティブコネクション"
 
 msgid "Active DHCP Leases"
-msgstr ""
+msgstr "現在アクティブなDHCPリース"
 
 msgid "Active DHCPv6 Leases"
-msgstr ""
+msgstr "現在アクティブなDHCPv6リース"
 
 msgid "Ad-Hoc"
 msgstr "アドホック"
@@ -243,6 +243,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "設定可能な範囲は1から65535です"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "チェックボックスがオフの場合、追加のネットワークが作成されます。"
 
@@ -414,6 +419,8 @@ msgid ""
 "Choose the network(s) you want to attach to this wireless interface or fill "
 "out the <em>create</em> field to define a new network."
 msgstr ""
+"無線インターフェースをアタッチするネットワークを選択してください。または、"
+"<em>作成</em>欄を選択すると新しいネットワークを作成します。"
 
 msgid "Cipher"
 msgstr "暗号化方式"
@@ -733,7 +740,7 @@ msgid "Enable Jumbo Frame passthrough"
 msgstr "ジャンボフレーム・パススルーを有効にする"
 
 msgid "Enable NTP client"
-msgstr ""
+msgstr "NTPクライアント機能を有効にする"
 
 msgid "Enable TFTP server"
 msgstr "TFTPサーバーを有効にする"
@@ -861,6 +868,9 @@ msgstr "更新中..."
 msgid "Force"
 msgstr "強制"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr "CCMP (AES) を使用"
 
@@ -899,10 +909,10 @@ msgid "Frequency Hopping"
 msgstr "周波数ホッピング"
 
 msgid "GHz"
-msgstr ""
+msgstr "GHz"
 
 msgid "GPRS only"
-msgstr ""
+msgstr "GPRSのみ"
 
 msgid "Gateway"
 msgstr "ゲートウェイ"
@@ -1016,7 +1026,7 @@ msgid "IPv4 only"
 msgstr "IPv4のみ"
 
 msgid "IPv4 prefix length"
-msgstr ""
+msgstr "IPv4 プレフィクス長"
 
 msgid "IPv4-Address"
 msgstr "IPv4-アドレス"
@@ -1352,7 +1362,7 @@ msgid "MAC-Address"
 msgstr "MAC-アドレス"
 
 msgid "MAC-Address Filter"
-msgstr "MACアドレスフィルタ"
+msgstr "MAC-アドレスフィルタ"
 
 msgid "MAC-Filter"
 msgstr "MAC-フィルタ"
@@ -1753,7 +1763,7 @@ msgid "Port %d is untagged in multiple VLANs!"
 msgstr ""
 
 msgid "Port status:"
-msgstr ""
+msgstr "ポート ステータス:"
 
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
@@ -1790,7 +1800,7 @@ msgid "Protocol support is not installed"
 msgstr "プロトコルサポートがインストールされていません"
 
 msgid "Provide NTP server"
-msgstr ""
+msgstr "NTPサーバー機能を有効にする"
 
 msgid "Provide new network"
 msgstr "新しいネットワークを設定する"
@@ -1799,7 +1809,7 @@ msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "擬似アドホック (ahdemo)"
 
 msgid "Quality"
-msgstr ""
+msgstr "クオリティ"
 
 msgid "RTS/CTS Threshold"
 msgstr "RTS/CTS閾値"
@@ -1842,11 +1852,19 @@ msgid ""
 "Really delete this interface? The deletion cannot be undone!\\nYou might "
 "lose access to this device if you are connected via this interface."
 msgstr ""
+"本当にこのインターフェースを削除しますか?一度削除すると、元に戻すことはできま"
+"せん!\n"
+"このインターフェースを経由して接続している場合、デバイスにアクセスできなくな"
+"る場合があります。"
 
 msgid ""
 "Really delete this wireless network? The deletion cannot be undone!\\nYou "
 "might lose access to this device if you are connected via this network."
 msgstr ""
+"本当にこの無線ネットワークを削除しますか?一度削除すると、元に戻すことはできま"
+"せん!\n"
+"このネットワークを経由して接続している場合、デバイスにアクセスできなくなる場"
+"合があります。"
 
 msgid "Really reset all changes?"
 msgstr "本当に全ての変更をリセットしますか?"
@@ -1855,11 +1873,17 @@ msgid ""
 "Really shutdown interface \"%s\" ?\\nYou might lose access to this device if "
 "you are connected via this interface."
 msgstr ""
+"本当にインターフェース \"%s\" を停止しますか?\n"
+"このインターフェースを経由して接続している場合、デバイスにアクセスできなくな"
+"る場合があります。"
 
 msgid ""
 "Really shutdown network ?\\nYou might lose access to this device if you are "
 "connected via this interface."
 msgstr ""
+"本当にネットワークを停止しますか?\n"
+"このネットワークを経由して接続している場合、デバイスにアクセスできなくなる場"
+"合があります。"
 
 msgid "Really switch protocol?"
 msgstr "本当にプロトコルを切り替えますか?"
@@ -2110,7 +2134,7 @@ msgid "Sorry, the object you requested was not found."
 msgstr ""
 
 msgid "Sorry, the server encountered an unexpected error."
-msgstr ""
+msgstr "申し訳ありません。サーバーに予期せぬエラーが発生しました。"
 
 msgid ""
 "Sorry, there is no sysupgrade support present, a new firmware image must be "
@@ -2128,10 +2152,10 @@ msgid "Source"
 msgstr "送信元"
 
 msgid "Specifies the advertised preferred prefix lifetime in seconds"
-msgstr ""
+msgstr "通知する推奨有効時間を設定してください。(秒単位)"
 
 msgid "Specifies the advertised valid prefix lifetime in seconds"
-msgstr ""
+msgstr "通知する最終有効時間を設定してください。(秒単位)"
 
 msgid "Specifies the button state to handle"
 msgstr ""
@@ -2288,8 +2312,8 @@ msgid ""
 "The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
 "code> and <code>_</code>"
 msgstr ""
-"使用可能な文字は右記の通りです: <code>A-Z</code>, <code>a-z</code>, <code>0-"
-"9</code>, <code>_</code>"
+"使用可能な文字は右記の通りです: <code>A-Z</code>, <code>a-z</code>, "
+"<code>0-9</code>, <code>_</code>"
 
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
@@ -2533,7 +2557,7 @@ msgid "UDP:"
 msgstr "UDP:"
 
 msgid "UMTS only"
-msgstr ""
+msgstr "UMTSのみ"
 
 msgid "UMTS/GPRS/EV-DO"
 msgstr "UMTS/GPRS/EV-DO"
@@ -2618,7 +2642,7 @@ msgid "Use gateway metric"
 msgstr "ゲートウェイ・メトリックを使用する"
 
 msgid "Use preferred lifetime"
-msgstr ""
+msgstr "推奨有効時間"
 
 msgid "Use routing table"
 msgstr ""
@@ -2635,7 +2659,7 @@ msgstr ""
 "ト名をアサインします。"
 
 msgid "Use valid lifetime"
-msgstr ""
+msgstr "最終有効時間"
 
 msgid "Used"
 msgstr "使用"
@@ -2702,9 +2726,6 @@ msgstr "変更を適用中です..."
 msgid "Waiting for command to complete..."
 msgstr "コマンド実行中です..."
 
-msgid "Waiting for router..."
-msgstr "ルーターに接続中..."
-
 msgid "Warning"
 msgstr "警告"
 
@@ -2774,13 +2795,13 @@ msgid "auto"
 msgstr "自動"
 
 msgid "baseT"
-msgstr ""
+msgstr "baseT"
 
 msgid "bridged"
 msgstr "ブリッジ"
 
 msgid "create:"
-msgstr ""
+msgstr "作成:"
 
 msgid "creates a bridge over specified interface(s)"
 msgstr "指定したインターフェースでブリッジを作成します"
@@ -2808,10 +2829,10 @@ msgid "forward"
 msgstr ""
 
 msgid "full-duplex"
-msgstr ""
+msgstr "全二重"
 
 msgid "half-duplex"
-msgstr ""
+msgstr "半二重"
 
 msgid "help"
 msgstr "ヘルプ"
@@ -2841,7 +2862,7 @@ msgid "no"
 msgstr "いいえ"
 
 msgid "no link"
-msgstr ""
+msgstr "リンクなし"
 
 msgid "none"
 msgstr "なし"
@@ -2882,6 +2903,9 @@ msgstr "はい"
 msgid "« Back"
 msgstr "« 戻る"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "ルーターに接続中..."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "内蔵のNTPサーバーを有効にする"
 
diff --git a/po/ja/commands.po b/po/ja/commands.po
new file mode 100644 (file)
index 0000000..4132274
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 841b4749daa1989197ec765da21d8344bc9c774f..68b539224d5e18d04ee2721f0e493e679b08890d 100644 (file)
@@ -35,6 +35,9 @@ msgstr ""
 msgid "Enable"
 msgstr "有効"
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "強制的にアップデートを行う間隔"
 
@@ -50,6 +53,9 @@ msgstr "インターフェース"
 msgid "Network"
 msgstr "ネットワーク"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr "パスワード"
 
@@ -81,9 +87,3 @@ msgstr "分"
 
 msgid "network"
 msgstr "ネットワーク"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index eef39d840286ebaf14385912e7f7d931b2bcfa26..1ef3dadc23ee0ff3a2b7158e7b1cef19ea849bcd 100644 (file)
@@ -181,6 +181,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr "リクエスト間のスリープ時間"
 
@@ -204,6 +207,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index fb2d2120d0213b415ef082ea085513e680338985..0739c2f9ece54780eb5993efd21281b6be10fe91 100644 (file)
@@ -3,7 +3,7 @@ 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-04-19 07:55+0200\n"
+"PO-Revision-Date: 2012-11-14 17:32+0200\n"
 "Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: ja\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "%s in %s"
 msgstr ""
@@ -121,7 +121,7 @@ msgid "External port"
 msgstr "外部ポート"
 
 msgid "External zone"
-msgstr ""
+msgstr "外部ゾーン"
 
 msgid "Extra arguments"
 msgstr "追加設定"
index 785d861b38aeb276a25637ff4d2ea4a29636cd76..d69b1f17647c8b2dc95df95ff0a0d9c62059a406 100644 (file)
@@ -15,6 +15,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -81,6 +84,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -102,6 +108,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr ""
 
@@ -114,6 +126,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -140,6 +161,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -191,6 +215,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -221,6 +248,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -250,6 +280,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -299,6 +332,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -307,6 +343,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index d74ee8c507d518b30a382cdb549b4ef9d89d70f3..0ec9d68528445a4f3a3bdfa536d79acc57cf282d 100644 (file)
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-14 10:33+0200\n"
-"PO-Revision-Date: 2011-08-19 05:37+0200\n"
+"PO-Revision-Date: 2012-11-14 14:40+0200\n"
 "Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: ja\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Disk"
 msgstr "ディスク"
@@ -36,7 +36,7 @@ msgid "h"
 msgstr "時"
 
 msgid "hd-idle"
-msgstr ""
+msgstr "hd-idle"
 
 msgid ""
 "hd-idle is a utility program for spinning-down external disks after a period "
index f035cf46d9281104740ef156f202766ba86cfb97..180d771c8bd90c54e78fcfe71776430835a9622a 100644 (file)
@@ -1,3 +1,6 @@
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -19,9 +22,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -32,9 +44,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -42,6 +62,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -55,6 +78,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index e7b062031cfb9df7c0555d35b1f605988844258e..bb6135cc2dcae62124c3413e8c858cf8e6a931d1 100644 (file)
@@ -1,16 +1,17 @@
-#, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-14 13:24+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2012-11-14 14:41+0200\n"
+"Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Clock Adjustment"
 msgstr "時刻調整"
@@ -37,7 +38,7 @@ msgid "Synchronizes the system time"
 msgstr "システムの時間を同期します。"
 
 msgid "Time Server"
-msgstr ""
+msgstr "時刻サーバー"
 
 msgid "Time Servers"
 msgstr "時刻サーバー"
index 6c991a7b9233dd255374584209cfa59eb993c6df..3c36225ad3abc14039ec830359215046ae23ae77 100644 (file)
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2012-03-18 07:10+0200\n"
+"PO-Revision-Date: 2012-11-14 14:40+0200\n"
 "Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: ja\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Active MID announcements"
 msgstr "アクティブなMID(Multi Interface Declaration) 通知"
@@ -394,7 +394,7 @@ msgid "NAT threshold"
 msgstr "NAT しきい値"
 
 msgid "NLQ"
-msgstr ""
+msgstr "NLQ"
 
 msgid "Neighbors"
 msgstr "隣接ノード"
index 962581eb5af39494fce66983d2ec16ab794c78ba..99c5e1bcfd64bdfc28c68ab6e510f40314f960eb 100644 (file)
@@ -68,7 +68,7 @@ msgid "Collectd Settings"
 msgstr "Collectd 設定"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -112,6 +112,9 @@ msgstr ""
 msgid "Disk Usage"
 msgstr ""
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "時間帯表示 »"
 
@@ -182,12 +185,6 @@ msgstr ""
 msgid "Incoming interface"
 msgstr ""
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr ""
 
@@ -281,11 +278,6 @@ msgstr "ネットワークプラグイン設定"
 msgid "Network plugins"
 msgstr "ネットワークプラグイン"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr "ネットワークプロトコル"
 
@@ -310,13 +302,6 @@ msgstr ""
 msgid "Output plugins"
 msgstr "出力プラグイン"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -416,11 +401,6 @@ msgstr ""
 msgid "System plugins"
 msgstr "システムプラグイン"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr ""
 
@@ -436,6 +416,9 @@ msgstr ""
 msgid "Table"
 msgstr ""
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -554,11 +537,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -571,6 +549,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr ""
 
@@ -589,9 +576,6 @@ msgstr ""
 msgid "Wireless"
 msgstr ""
 
-msgid "Wireless Plugin Configuration"
-msgstr ""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr "無線LAN iwinfo プラグイン設定"
 
index 60210681bad2a821dfd22536b373bcbee1071772..c4acb2612f467735123f37d6cd26df2c8e48a2c5 100644 (file)
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-04-19 08:06+0200\n"
+"PO-Revision-Date: 2012-11-17 16:19+0200\n"
 "Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
 "Language-Team: none\n"
 "Language: ja\n"
@@ -9,10 +9,10 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Forced reboot delay"
-msgstr ""
+msgstr "強制再起動ディレイ時間"
 
 msgid "Host address to ping"
 msgstr "ping を実行する宛先を設定してください。"
@@ -36,7 +36,7 @@ msgid "Operating mode"
 msgstr "動作モード"
 
 msgid "Period"
-msgstr ""
+msgstr "周期"
 
 msgid "Ping host"
 msgstr "Ping 宛先ホスト"
index b72f3fd570aa318ed89e088f3f1c6af4ed7d68d2..d5b1f6f5306298e5108060b8e56e18649908ff09 100644 (file)
@@ -7,6 +7,7 @@ msgstr ""
 "PO-Revision-Date: 2010-05-07 17:57+1000\n"
 "Last-Translator: Wai Chet Teow <waichet@hotmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -232,6 +233,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr ""
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr ""
 
@@ -823,6 +829,9 @@ msgstr ""
 msgid "Force"
 msgstr "Paksa"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2226,8 +2235,8 @@ msgid ""
 "The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
 "code> and <code>_</code>"
 msgstr ""
-"Karakter yang diizinkan adalah: <code>A-Z</code>, <code>a-z</code>, <code>0-"
-"9</code> dan <code>_</code>"
+"Karakter yang diizinkan adalah: <code>A-Z</code>, <code>a-z</code>, "
+"<code>0-9</code> dan <code>_</code>"
 
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
@@ -2609,9 +2618,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr ""
-
 msgid "Warning"
 msgstr ""
 
diff --git a/po/ms/commands.po b/po/ms/commands.po
new file mode 100644 (file)
index 0000000..6fbb983
--- /dev/null
@@ -0,0 +1,90 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 07a89c5caf61c05966c01bab725288a00c5123bb..5c584fbbc7bafc5088ea15df196e9e1c37aa42a6 100644 (file)
@@ -33,6 +33,9 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr ""
 
@@ -48,6 +51,9 @@ msgstr ""
 msgid "Network"
 msgstr ""
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr ""
 
@@ -79,9 +85,3 @@ msgstr ""
 
 msgid "network"
 msgstr ""
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index fb3216df5dc3eb0b39f01a3c7599d40cedd861db..27d2b46170384a1506e1794c9895c4ff7bf87e95 100644 (file)
@@ -177,6 +177,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -200,6 +203,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index 77e41b9c98ac6988e70c321e749a6a5d853d44ff..f3e9e9446b97d15cd8a2ab2c69c0dfe8946d71dd 100644 (file)
@@ -11,6 +11,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -77,6 +80,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -98,6 +104,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr ""
 
@@ -110,6 +122,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -136,6 +157,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -187,6 +211,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -217,6 +244,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -246,6 +276,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -295,6 +328,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -303,6 +339,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index f035cf46d9281104740ef156f202766ba86cfb97..180d771c8bd90c54e78fcfe71776430835a9622a 100644 (file)
@@ -1,3 +1,6 @@
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -19,9 +22,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -32,9 +44,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -42,6 +62,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -55,6 +78,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 51cc75bc5a970d045cf6ba69da7aebf9fee005d9..e8280534e2051b8b9cd9d6699a6fd1fbb6178822 100644 (file)
@@ -5,6 +5,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -64,7 +65,7 @@ msgid "Collectd Settings"
 msgstr ""
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -108,6 +109,9 @@ msgstr ""
 msgid "Disk Usage"
 msgstr ""
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr ""
 
@@ -178,12 +182,6 @@ msgstr ""
 msgid "Incoming interface"
 msgstr ""
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr ""
 
@@ -277,11 +275,6 @@ msgstr ""
 msgid "Network plugins"
 msgstr ""
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr ""
 
@@ -306,13 +299,6 @@ msgstr ""
 msgid "Output plugins"
 msgstr ""
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr ""
 
@@ -412,11 +398,6 @@ msgstr ""
 msgid "System plugins"
 msgstr ""
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr ""
 
@@ -432,6 +413,9 @@ msgstr ""
 msgid "Table"
 msgstr ""
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -547,11 +531,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -564,6 +543,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr ""
 
@@ -582,9 +570,6 @@ msgstr ""
 msgid "Wireless"
 msgstr ""
 
-msgid "Wireless Plugin Configuration"
-msgstr ""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
index e0dad9bf616f2034ae7280e3be4cf784d48be7d5..c606fb7f3e8b0e8bbfbe3f968e503503af332aa7 100644 (file)
@@ -2,9 +2,9 @@ msgid ""
 msgstr ""
 "PO-Revision-Date: 2011-06-14 15:40+0200\n"
 "Last-Translator: protx <lars.hardy@gmail.com>\n"
+"Language: no\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: no\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Pootle 2.0.4\n"
 
@@ -242,6 +242,11 @@ msgstr "Tillat oppstrøms svar i 127.0.0.0/8 nettet, f.eks for RBL tjenester"
 msgid "Allowed range is 1 to 65535"
 msgstr ""
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Et nytt nettverk vil bli opprettet hvis du tar bort haken."
 
@@ -851,6 +856,9 @@ msgstr ""
 msgid "Force"
 msgstr "Tving"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2667,9 +2675,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr "Venter på ruter..."
-
 msgid "Warning"
 msgstr "Advarsel"
 
@@ -2849,6 +2854,9 @@ msgstr "ja"
 msgid "« Back"
 msgstr "« Tilbake"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Venter på ruter..."
+
 #~ msgid "Active Leases"
 #~ msgstr "Aktive Leier"
 
diff --git a/po/no/commands.po b/po/no/commands.po
new file mode 100644 (file)
index 0000000..0e9e65d
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index d3a53b8d85c6cdd1aab4b82347c9edb6ffc20bff..97448557fdc8f8dac91f4e00fedc9d4f82e9bbac 100644 (file)
@@ -26,6 +26,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Aktiver"
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "Tving oppdatering hver"
 
@@ -41,6 +44,9 @@ msgstr "Grensesnitt"
 msgid "Network"
 msgstr "Nettverk"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr "Passord"
 
@@ -70,9 +76,3 @@ msgstr "minutter"
 
 msgid "network"
 msgstr "nettverk"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 090cc4671b9fd22f2eed4e2f0c43dd64444f4938..4ada96badb2574052b75b631a6801fe7f6cff170 100644 (file)
@@ -27,20 +27,20 @@ msgid ""
 "'Repeat Count', and/or 'Sleep Between Requests' may speed up scans, but also "
 "may fail to find some devices."
 msgstr ""
-"Konfigurer skanning etter enheter på angitte nettverk. Ved å minske "
-"verdiene til 'Tidsavbrudd', 'Gjentagelser' og/eller Tid mellom forespørsler "
-"blir skanningen utført raskere, men det kan også medføre at noen enheter "
-"ikke blir funnet."
+"Konfigurer skanning etter enheter på angitte nettverk. Ved å minske verdiene "
+"til 'Tidsavbrudd', 'Gjentagelser' og/eller Tid mellom forespørsler blir "
+"skanningen utført raskere, men det kan også medføre at noen enheter ikke "
+"blir funnet."
 
 msgid ""
 "Configure scanning for supported SIP devices on specified networks. "
 "Decreasing 'Timeout', 'Repeat Count', and/or 'Sleep Between Requests' may "
 "speed up scans, but also may fail to find some devices."
 msgstr ""
-"Konfigurer skanning etter støttede SIP enheter på angitte nettverk. Ved å minske "
-"verdiene til 'Tidsavbrudd', 'Gjentagelser' og/eller tid mellom forespørsler "
-"blir skanningen utført raskere, men det kan også medføre at noen enheter "
-"ikke blir funnet."
+"Konfigurer skanning etter støttede SIP enheter på angitte nettverk. Ved å "
+"minske verdiene til 'Tidsavbrudd', 'Gjentagelser' og/eller tid mellom "
+"forespørsler blir skanningen utført raskere, men det kan også medføre at "
+"noen enheter ikke blir funnet."
 
 msgid "Delete"
 msgstr "Slett"
@@ -92,8 +92,7 @@ msgstr "MAC Enhets Overstyring"
 
 msgid "MAC range and information used to override system and IEEE databases"
 msgstr ""
-"MAC område og informasjon brukt til å overstyre system og IEEE "
-"databaser"
+"MAC område og informasjon brukt til å overstyre system og IEEE databaser"
 
 msgid "Milliseconds to sleep between requests (default 100)"
 msgstr "Antall millisekunder ventetid mellom forespørsler (standard 100)"
@@ -132,8 +131,8 @@ msgid ""
 "Override the information returned by the MAC to Device Info Script (mac-to-"
 "devinfo) for a specified range of MAC Addresses"
 msgstr ""
-"Overstyr informasjonen hentet fra MAC til enhets info skriptet "
-"(mac-til-devinfo) for et gitt område med MAC adresser"
+"Overstyr informasjonen hentet fra MAC til enhets info skriptet (mac-til-"
+"devinfo) for et gitt område med MAC adresser"
 
 msgid "Perform Scans (this can take a few minutes)"
 msgstr "Utfør Skanning (dette kan ta noen minutter)"
@@ -186,6 +185,9 @@ msgstr "Skann etter SIP enheter på spesifiserte nettverk"
 msgid "Scanning Configuration"
 msgstr "Skanning Konfigurasjon"
 
+msgid "Scans for devices on specified networks."
+msgstr "Nettverks Skanning Informasjon"
+
 msgid "Sleep Between Requests"
 msgstr "Tid mellom forespørsler"
 
@@ -209,6 +211,3 @@ msgstr "Leverandør"
 
 msgid "check other networks"
 msgstr "skjekk andre nettverk"
-
-msgid "Scans for devices on specified networks."
-msgstr "Nettverks Skanning Informasjon"
index 24ab6e1b6afec233911c322ee8be2906a59ca015..e251b396f4ffcb0cd7efd17108423c484ee85e42 100644 (file)
@@ -7,6 +7,9 @@ msgstr ""
 msgid "BSSID"
 msgstr "BSSID"
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr "Grunnleggende Innstillinger"
 
@@ -73,6 +76,9 @@ msgstr "ESSID"
 msgid "Edit index page"
 msgstr "Rediger indeks side"
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr "Feil"
 
@@ -94,6 +100,12 @@ msgstr "Gateway"
 msgid "Go to"
 msgstr "Gå til"
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Hei og velkommen til nettverket av"
 
@@ -106,6 +118,15 @@ msgstr "Hjemmeside"
 msgid "Hostname"
 msgstr "Vertsnavn"
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr "Om valgt vises ikke det vanlige innholdselementet"
 
@@ -136,6 +157,9 @@ msgstr "Behold konfigurasjonen"
 msgid "Latitude"
 msgstr "Breddegrad"
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr "Last"
 
@@ -187,6 +211,9 @@ msgstr "OLSR"
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr "Oversikt"
 
@@ -217,6 +244,9 @@ msgstr "Profil (Ekspert)"
 msgid "Realname"
 msgstr "Virkelig Navn"
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr "SSID"
 
@@ -248,6 +278,9 @@ msgstr "Statistikk"
 msgid "Status"
 msgstr "Status"
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr "System"
 
@@ -305,6 +338,9 @@ msgstr "Oppetid"
 msgid "Verify downloaded images"
 msgstr "Verifiser nedlastede filer"
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -315,6 +351,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr "Trådløs Oversikt"
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index f035cf46d9281104740ef156f202766ba86cfb97..180d771c8bd90c54e78fcfe71776430835a9622a 100644 (file)
@@ -1,3 +1,6 @@
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -19,9 +22,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -32,9 +44,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -42,6 +62,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -55,6 +78,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 221fa5bdea6d219d3a79b3fa9e8ebbfb1f726dea..a4706b77de6ab2b1b5e874631cf72f3723e39085 100644 (file)
@@ -59,7 +59,7 @@ msgid "Collectd Settings"
 msgstr "Collectd Innstillinger"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -106,6 +106,9 @@ msgstr "Disk Forbruk"
 msgid "Disk Usage"
 msgstr "Disk Anvendelse"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Vis tidsperiode »"
 
@@ -181,12 +184,6 @@ msgstr "Ignorer kilde adresser"
 msgid "Incoming interface"
 msgstr "Innkommende grensesnitt"
 
-msgid "Installed network plugins:"
-msgstr "Installerte nettverks plugin:"
-
-msgid "Installed output plugins:"
-msgstr "Installerte utdata plugin:"
-
 msgid "Interface Plugin Configuration"
 msgstr "Grensesnitt plugin konfigurasjon"
 
@@ -280,13 +277,6 @@ msgstr "Nettverks plugin konfigurasjon"
 msgid "Network plugins"
 msgstr "Nettverks plugin"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-"Nettverks plugin er brukt til å samle inn informasjon om åpne tcp koblinger, "
-"trafikk over grensesnitt, iptables regler osv."
-
 msgid "Network protocol"
 msgstr "Nettverks protokoll"
 
@@ -311,17 +301,6 @@ msgstr "Utgående grensesnitt"
 msgid "Output plugins"
 msgstr "Utdata Plugin"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-"Utdata plugins gir ulike muligheter til å lagre innsamlede data. Det er "
-"mulig å aktivere flere pluginer på en, for eksempel for å lagre innsamlede "
-"data i RRD databaser og å overføre data over nettverket til andre collectd "
-"forekomster."
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -421,11 +400,6 @@ msgstr "System Belastning"
 msgid "System plugins"
 msgstr "System plugins"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr "System plugins samler verdier om systemets tilstand og ressurs-bruk.:"
-
 msgid "TCP Connections"
 msgstr "TCP Forbindelser"
 
@@ -441,6 +415,9 @@ msgstr "TTL for ping pakker"
 msgid "Table"
 msgstr "Tabell"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -595,12 +572,6 @@ msgstr ""
 "Unixsock plugin skaper en unix socket som kan brukes til å lese innsamlet "
 "data fra collectd prosess."
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"Trådløs plugin samler statistikk om trådløs signalstyrke, støy og kvalitet."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -617,6 +588,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr "Prøv å søk etter fullstendig vertsnavn"
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -635,9 +615,6 @@ msgstr "Detaljert overvåking"
 msgid "Wireless"
 msgstr "Trådløs"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Trådløs plugin konfigurasjon"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
@@ -661,3 +638,41 @@ msgstr "sekunder; flere adskilt med mellomrom"
 
 msgid "server interfaces"
 msgstr "Server grensesnitt"
+
+#~ msgid "Installed network plugins:"
+#~ msgstr "Installerte nettverks plugin:"
+
+#~ msgid "Installed output plugins:"
+#~ msgstr "Installerte utdata plugin:"
+
+#~ msgid ""
+#~ "Network plugins are used to collect information about open tcp "
+#~ "connections, interface traffic, iptables rules etc."
+#~ msgstr ""
+#~ "Nettverks plugin er brukt til å samle inn informasjon om åpne tcp koblinger, "
+#~ "trafikk over grensesnitt, iptables regler osv."
+
+#~ msgid ""
+#~ "Output plugins provide different possibilities to store collected data. "
+#~ "It is possible to enable multiple plugin at one, for example to store "
+#~ "collected data in rrd databases and to transmit the data over the network "
+#~ "to other collectd instances."
+#~ msgstr ""
+#~ "Utdata plugins gir ulike muligheter til å lagre innsamlede data. Det er "
+#~ "mulig å aktivere flere pluginer på en, for eksempel for å lagre innsamlede "
+#~ "data i RRD databaser og å overføre data over nettverket til andre collectd "
+#~ "forekomster."
+
+#~ msgid ""
+#~ "System plugins collecting values about system state and ressource usage "
+#~ "on the device.:"
+#~ msgstr "System plugins samler verdier om systemets tilstand og ressurs-bruk.:"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "Trådløs plugin samler statistikk om trådløs signalstyrke, støy og kvalitet."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Trådløs plugin konfigurasjon"
index 03baec4895fa577a6210ac7434a393c40209c8f5..b64e49635c34cb5d9f76c4f6da77c5770f5055c5 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-10-11 13:46+0200\n"
-"Last-Translator: mesiu84 <kmesek84@gmail.com>\n"
+"PO-Revision-Date: 2012-12-15 21:28+0200\n"
+"Last-Translator: razor07b7 <razor07b7@gmail.com>\n"
 "Language-Team: Polish\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
@@ -258,6 +258,13 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "Dopuszczony zakres: 1 do 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+"Zawsze używaj kanał 40MHz nawet jeśli drugi kanał pokrywa się. Użycie tej "
+"opcji nie jest zgodne ze standardem IEEE 802.11n-2009!"
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr ""
 "Zostanie utworzona dodatkowa sieć jeśli zostawisz tą opcję niezaznaczoną."
@@ -892,6 +899,9 @@ msgstr "Aktualizuję !!!"
 msgid "Force"
 msgstr "Wymuś"
 
+msgid "Force 40MHz mode"
+msgstr "Wymuś tryb 40MHz"
+
 msgid "Force CCMP (AES)"
 msgstr "Wymuś CCMP (AES)"
 
@@ -2515,12 +2525,13 @@ msgstr ""
 "To jest lokalny adres końcowy przypisany przez tunnel broker'a, zwykle "
 "kończący się z <code>:2</code>"
 
+# w tłumaczeniu pojawiła się spacja po DHCP</ abbr> co powoduje niepoprawne wyświetlanie się strony z lang PL
 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 ""
@@ -2781,9 +2792,6 @@ msgstr "Czekanie na wprowadzenie zmian..."
 msgid "Waiting for command to complete..."
 msgstr "Czekanie na wykonanie komendy..."
 
-msgid "Waiting for router..."
-msgstr "Czekanie na router..."
-
 msgid "Warning"
 msgstr "Ostrzeżenie"
 
@@ -2966,6 +2974,9 @@ msgstr "tak"
 msgid "« Back"
 msgstr "« Wróć"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Czekanie na router..."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "Włącz wbudowany serwer NTP"
 
diff --git a/po/pl/commands.po b/po/pl/commands.po
new file mode 100644 (file)
index 0000000..c9921fd
--- /dev/null
@@ -0,0 +1,92 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\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"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 1f099e436e1ce235ed471cfb4297c7736335b69c..91485c2d54ef0dfa071ce275a710bce68460d546 100644 (file)
@@ -36,6 +36,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Włącz"
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "Wymuszaj aktualizację co"
 
@@ -51,6 +54,9 @@ msgstr "Interfejs"
 msgid "Network"
 msgstr "Sieć"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr "Hasło"
 
@@ -82,9 +88,3 @@ msgstr "min"
 
 msgid "network"
 msgstr "sieć"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 5e00cab4a67fd1d34138a9df07dd0675bf0c76bd..32ccdce516612fe9cb57315456df353597bef2d5 100644 (file)
@@ -36,8 +36,9 @@ msgid ""
 "may fail to find some devices."
 msgstr ""
 "Konfiguruj skanowanie dla urządzeń w wybranych sieciach. Zmniejszanie "
-"\"Limitu czasu\", \"Liczby powtórzeń\" i/lub \"Oczekiwania między żądaniami\" może "
-"przyspieszyć skany, ale może też uniemożliwić wykrycie niektórych urządzeń."
+"\"Limitu czasu\", \"Liczby powtórzeń\" i/lub \"Oczekiwania między żądaniami"
+"\" może przyspieszyć skany, ale może też uniemożliwić wykrycie niektórych "
+"urządzeń."
 
 msgid ""
 "Configure scanning for supported SIP devices on specified networks. "
@@ -45,9 +46,9 @@ msgid ""
 "speed up scans, but also may fail to find some devices."
 msgstr ""
 "Konfiguruj skanowanie dla wspieranych urządzeń SIP w wybranych sieciach. "
-"Zmniejszanie \"Limitu czasu\", \"Liczby powtórzeń\" i/lub \"Oczekiwania między "
-"żądaniami\" może przyspieszyć skany, ale może też uniemożliwić wykrycie "
-"niektórych urządzeń."
+"Zmniejszanie \"Limitu czasu\", \"Liczby powtórzeń\" i/lub \"Oczekiwania "
+"między żądaniami\" może przyspieszyć skany, ale może też uniemożliwić "
+"wykrycie niektórych urządzeń."
 
 msgid "Delete"
 msgstr "Usuń"
@@ -193,6 +194,9 @@ msgstr "Skanuj w poszukiwaniu wspieranych urządzeń SIP w wybranych sieciach."
 msgid "Scanning Configuration"
 msgstr "Ustawienia skanowania"
 
+msgid "Scans for devices on specified networks."
+msgstr "Scans for devices on specified networks."
+
 msgid "Sleep Between Requests"
 msgstr "Pauza pomiędzy zapytaniami"
 
@@ -216,6 +220,3 @@ msgstr "Sprzedawca"
 
 msgid "check other networks"
 msgstr "sprawdź inne sieci"
-
-msgid "Scans for devices on specified networks."
-msgstr "Scans for devices on specified networks."
index 5a6fe62fb3406b021ca47b50f57b9c0b90b3d5e8..a944149e6ff0de31f11307cec337558a649ec972 100644 (file)
@@ -19,7 +19,8 @@ msgid "Channel"
 msgstr "Kanał"
 
 msgid "Check this to protect your LAN from other nodes or clients"
-msgstr "Zaznacz to, aby chronić Twoją sieć LAN przed innymi węzłami i klientami"
+msgstr ""
+"Zaznacz to, aby chronić Twoją sieć LAN przed innymi węzłami i klientami"
 
 msgid "Configure network"
 msgstr "Skonfiguruj sieć"
index 60183e640d7ee3b06cbf8dbf04fd9a8ccaa92de9..3f8ab07afa9a1b9449b462398fbc8b1d5dcfd4ea 100644 (file)
@@ -15,6 +15,9 @@ msgstr ""
 msgid "BSSID"
 msgstr "BSSID"
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr "Ustawienia Podstawowe"
 
@@ -82,6 +85,9 @@ msgstr "Nazwa sieci (ESSID)"
 msgid "Edit index page"
 msgstr "Edytuj stronę główną"
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr "Błąd"
 
@@ -103,6 +109,12 @@ msgstr "Brama"
 msgid "Go to"
 msgstr "Przejdź do"
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Cześć ! Witamy w sieci "
 
@@ -115,6 +127,15 @@ msgstr "Strona domowa"
 msgid "Hostname"
 msgstr "Nazwa hosta"
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr "Jeśli zaznaczone domyślna zawartość nie jest widoczna"
 
@@ -145,6 +166,9 @@ msgstr "Zachowaj konfigurację"
 msgid "Latitude"
 msgstr "Szerokość"
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr "Obciążenie"
 
@@ -198,6 +222,9 @@ msgstr "OLSR"
 msgid "Operator"
 msgstr "Zarządca"
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr "Przegląd"
 
@@ -228,6 +255,9 @@ msgstr "Profil (tryb eksperta)"
 msgid "Realname"
 msgstr "Imię i Nazwisko (prawdziwe)"
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr "SSID"
 
@@ -259,6 +289,9 @@ msgstr "Statystyki"
 msgid "Status"
 msgstr "Status"
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr "System"
 
@@ -318,6 +351,9 @@ msgstr "Aktualizacja"
 msgid "Verify downloaded images"
 msgstr "Sprawdź pobrane obrazy"
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -328,6 +364,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr "Przegląd Ustawień WiFi"
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 410ce6374e69eec8870511e8b0610658ea459d6e..c0937c04264a77d2a5b60c08adf02af6e61500e9 100644 (file)
@@ -14,6 +14,9 @@ msgstr ""
 "|| n%100>=20) ? 1 : 2);\n"
 "X-Generator: Pootle 2.0.6\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr "Kanał"
 
@@ -37,9 +40,18 @@ msgstr "DHCP automatycznie przypisze adresy IP klientom"
 msgid "Enable DHCP"
 msgstr "Włącz DHCP"
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr "Ustawienia ogólne"
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -52,9 +64,17 @@ msgstr "Interfejsy"
 msgid "Mesh IP address"
 msgstr "Adres Mesh IP"
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr "Kreator Mesh"
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr "Chroń LAN"
 
@@ -64,6 +84,9 @@ msgstr ""
 "Zaznacz tę opcję aby inni użytkownicy mogli używać twojego połączenia do "
 "korzystania z internetu"
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr "Współdziel swoje połączenie internetowe"
 
@@ -81,6 +104,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr "Podany adres IP nie należy do zakresu sieci mesh"
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index f07fb497b3b87648f6c66d6d9011317973d0a1d4..b4a8a6f676b30b79ac52d106fc7b23167fbcde63 100644 (file)
@@ -99,7 +99,8 @@ msgstr "Kontener główny (root):"
 msgid ""
 "Serial number the miniDLNA daemon will report to clients in its XML "
 "description."
-msgstr "Numer seryjny, który demon miniDLNA zgłosi klientom w swoim opisie XML."
+msgstr ""
+"Numer seryjny, który demon miniDLNA zgłosi klientom w swoim opisie XML."
 
 msgid ""
 "Set this if you want to customize the name that shows up on your clients."
@@ -148,9 +149,9 @@ msgid ""
 "(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
 msgstr ""
 "Ustaw tu folder, który chcesz skanować. Jeśli chcesz ograniczyć folder do "
-"konkretnego typu zawartości, możesz poprzedzić ścieżkę typem (\"A\" dla audio, "
-"\"V\" dla wideo, \"P\" dla obrazów) i przecinkiem (np "
-"media_dir=A,/mnt/media/Muzyka). Możesz podać kilka folderów."
+"konkretnego typu zawartości, możesz poprzedzić ścieżkę typem (\"A\" dla "
+"audio, \"V\" dla wideo, \"P\" dla obrazów) i przecinkiem (np media_dir=A,/"
+"mnt/media/Muzyka). Możesz podać kilka folderów."
 
 msgid "Specify the path to the MiniSSDPd socket."
 msgstr "Podaj ścieżkę do gniazda (socketu) miniSSDPd."
@@ -173,8 +174,7 @@ msgstr "Usługa miniDLNA nie jest włączona."
 
 msgid "This is a list of file names to check for when searching for album art."
 msgstr ""
-"To jest lista nazw plików do sprawdzenia podczas wyszukiwania okładki "
-"albumu."
+"To jest lista nazw plików do sprawdzenia podczas wyszukiwania okładki albumu."
 
 msgid "Video"
 msgstr "Wideo"
index e826842446335eeb526f25a088bb11b0bb2bfee8..5904aed2e6a40068a993b99ae8caf28f521db529 100644 (file)
@@ -63,7 +63,8 @@ msgstr "Odstęp pomiędzy próbami monitoringu"
 
 msgid ""
 "Health Monitor detects and corrects network changes and failed connections."
-msgstr "Monitor stanu wykrywa i koryguje zmiany sieci oraz nieudane połączenia."
+msgstr ""
+"Monitor stanu wykrywa i koryguje zmiany sieci oraz nieudane połączenia."
 
 msgid "KO"
 msgstr "KO"
index 1b894dcfa88453c9a6c450e668e8312dc8495e6e..362ebd25c749f7eec62d2d030797f2d0f6914147 100644 (file)
@@ -177,8 +177,8 @@ msgid ""
 "interface broadcast IP."
 msgstr ""
 "Adres rozgłoszeniowy (broadcast) IPv4 dla wychodzących pakietów OLSR. "
-"Przydatnym przykładem byłoby 255.255.255.255. Domyślna wartość to \"0.0.0.0\" "
-"- jest wtedy używany adres rozgłoszeniowy interfejsu."
+"Przydatnym przykładem byłoby 255.255.255.255. Domyślna wartość to \"0.0.0.0"
+"\" - jest wtedy używany adres rozgłoszeniowy interfejsu."
 
 msgid "IPv4 source"
 msgstr "Źródło IPv4"
@@ -187,8 +187,8 @@ msgid ""
 "IPv4 src address for outgoing OLSR packages. Default is \"0.0.0.0\", which "
 "triggers usage of the interface IP."
 msgstr ""
-"Adres źródłowy IPv4 dla wychodzących pakietów. Domyślna wartość to \"0.0.0.0\" "
-"- jest wtedy używany adres IP interfejsu."
+"Adres źródłowy IPv4 dla wychodzących pakietów. Domyślna wartość to \"0.0.0.0"
+"\" - jest wtedy używany adres IP interfejsu."
 
 msgid "IPv6"
 msgstr "IPv6"
@@ -245,7 +245,8 @@ msgid ""
 "\"mesh\"."
 msgstr ""
 "Tryb interfejsu jest używany, aby zapobiec niepotrzebnemu przekazywaniu "
-"pakietów. Prawidłowe tryby to \"mesh\" i \"ether\". Domyślna wartość to \"mesh\"."
+"pakietów. Prawidłowe tryby to \"mesh\" i \"ether\". Domyślna wartość to "
+"\"mesh\"."
 
 msgid "Interfaces"
 msgstr "Interfejsy"
@@ -565,8 +566,8 @@ msgid "Topology"
 msgstr "Topologia"
 
 msgid ""
-"Type of service value for the IP header of control traffic. Default is "
-"\"16\"."
+"Type of service value for the IP header of control traffic. Default is \"16"
+"\"."
 msgstr ""
 
 msgid "Unable to connect to the OLSR daemon!"
index 1faa5c3eca499de61d2e3b1fb7987f79e6c0a89e..f84173e595397d2c78165c7ffad368122841eb3b 100644 (file)
@@ -92,9 +92,9 @@ msgid ""
 "Enter this hostname (or hostname:port) in the Server/Registrar setting of "
 "SIP devices you will use from a remote location (they will work locally too)."
 msgstr ""
-"Podaj tę nazwę hosta (lub parę nazwa hosta:port) w ustawieniach "
-"serwera/rejestratora urządzeń SIP których będziesz używać z zewnątrz (będą "
-"też działać lokalnie)."
+"Podaj tę nazwę hosta (lub parę nazwa hosta:port) w ustawieniach serwera/"
+"rejestratora urządzeń SIP których będziesz używać z zewnątrz (będą też "
+"działać lokalnie)."
 
 msgid "External SIP Port"
 msgstr "Zewnętrzny port SIP"
@@ -124,8 +124,8 @@ msgstr ""
 "Dla każdego użytkownika z prawem wykonywania połączeń wychodzących możesz "
 "ograniczyć których operatorów mogą używać do tych połączeń. Domyślnie każdy "
 "użytkownik może używać dowolnego operatora. Użytkownik musi mieć prawo "
-"wykonywania połączeń wychodzących ustawione na stronie \"Konta użytkowników\", "
-"aby pojawić się na poniższej liście. Podaj operatorów VoIP w formacie "
+"wykonywania połączeń wychodzących ustawione na stronie \"Konta użytkowników"
+"\", aby pojawić się na poniższej liście. Podaj operatorów VoIP w formacie "
 "nazwa.użytkownika@jakaś.nazwa.hosta, tak jak są wypisani w \"Połączeniach "
 "wychodzących\" powyżej. Łatwiej jest skopiować powyższych operatorów. "
 "Nieprawidłowe wpisy, włącznie z operatorami bez prawa do połączeń "
index bb73a1a12531f4a7a1b016aefac51277f8257649..56bf3c26cafd31a7d2c979814bd0410d63f04299 100644 (file)
@@ -176,8 +176,7 @@ msgstr "Zachowaj"
 
 msgid "Splash rules are integrated in this firewall zone"
 msgstr ""
-"Reguły komunikatu (Splash) są integrowane z ustawieniami firewalla tej "
-"strefy"
+"Reguły komunikatu (Splash) są integrowane z ustawieniami firewalla tej strefy"
 
 msgid "Splashtext"
 msgstr "Tekst komunikatu (Splash)"
index 1868b7521563a34abc4926baf3a5b65308558643..65c383c564978c0051c0495cd546b67dda16fc6d 100644 (file)
@@ -70,7 +70,7 @@ msgid "Collectd Settings"
 msgstr "Ustawienia Collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -117,6 +117,9 @@ msgstr "Zużycie przestrzeni dyskowej"
 msgid "Disk Usage"
 msgstr "Użycie dysku"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Przedział czasu wyświetlania »"
 
@@ -194,12 +197,6 @@ msgstr "Ignoruj adresy źródłowe"
 msgid "Incoming interface"
 msgstr "Interfejs przychodzący"
 
-msgid "Installed network plugins:"
-msgstr "Zainstalowane wtyczki sieciowe:"
-
-msgid "Installed output plugins:"
-msgstr "Zainstalowane wtyczki wyjścia:"
-
 msgid "Interface Plugin Configuration"
 msgstr "Konfiguracja wtyczki Interfejs"
 
@@ -295,13 +292,6 @@ msgstr "Konfiguracja wtyczki Sieć"
 msgid "Network plugins"
 msgstr "Wtyczki sieciowe"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-"Wtyczki sieciowe służą do zbierania informacji o otwartych połączeniach TCP, "
-"ruchu sieciowym na danym interfejsie, regułach iptables itp."
-
 msgid "Network protocol"
 msgstr "Protokoły sieciowe"
 
@@ -326,16 +316,6 @@ msgstr "Interfejs wychodzący"
 msgid "Output plugins"
 msgstr "Pluginy wyjścia"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-"Pluginy wyjścia dostarczają różnych możliwości przechowywania zgromadzonych "
-"danych. Można włączyć wiele pluginów naraz, na przykład przechowywać dane w "
-"bazach danych RRD i wysyłać je do innych instancji collectd w sieci."
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -436,13 +416,6 @@ msgstr "Obciążenie systemu"
 msgid "System plugins"
 msgstr "Wtyczki systemowe"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-"Wtyczki systemowe zbierają wartości o stanie systemu i użyciu zasobów "
-"urządzenia.:"
-
 msgid "TCP Connections"
 msgstr "Połączenia TCP"
 
@@ -458,6 +431,9 @@ msgstr "TTL dla pakietów ping"
 msgid "Table"
 msgstr "Tabela"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -521,8 +497,8 @@ msgid ""
 "The iptables plugin will monitor selected firewall rules and collect "
 "informations about processed bytes and packets per rule."
 msgstr ""
-"Wtyczka \"iptables\" monitoruje wybrane reguły firewalla i zbiera statystyki "
-"procesach, bajtach i pakietach przypadających na daną regułę."
+"Wtyczka \"iptables\" monitoruje wybrane reguły firewalla i zbiera statystyki "
+"procesach, bajtach i pakietach przypadających na daną regułę."
 
 msgid ""
 "The irq plugin will monitor the rate of issues per second for each selected "
@@ -540,7 +516,8 @@ msgid "The load plugin collects statistics about the general system load."
 msgstr "Wtyczka \"load\" zbiera statystyki o ogólnych obciążeniu systemu."
 
 msgid "The memory plugin collects statistics about the memory usage."
-msgstr "\"wtyczka \"memory\" zbiera statystyki dotyczące wykorzystania pamięci."
+msgstr ""
+"\"wtyczka \"memory\" zbiera statystyki dotyczące wykorzystania pamięci."
 
 msgid ""
 "The netlink plugin collects extended informations like qdisc-, class- and "
@@ -578,9 +555,9 @@ msgid ""
 "\">Collectd</a> and uses <a href=\"http://oss.oetiker.ch/rrdtool/\">RRD "
 "Tool</a> to render diagram images from collected data."
 msgstr ""
-"Statystyki bazuja na <a href=\"http://collectd.org/index.shtml\">Collectd</a> "
-"oraz wykorzystują <a href=\"http://oss.oetiker.ch/rrdtool/\">RRD Tool</a> do "
-"generowania diagramów i wykresów z zebranych danych."
+"Statystyki bazuja na <a href=\"http://collectd.org/index.shtml\">Collectd</"
+"a> oraz wykorzystują <a href=\"http://oss.oetiker.ch/rrdtool/\">RRD Tool</a> "
+"do generowania diagramów i wykresów z zebranych danych."
 
 msgid ""
 "The tcpconns plugin collects informations about open tcp connections on "
@@ -594,12 +571,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"Wtyczka \"wireless\" zbiera dane o sile sygnału, zakłóceniach i jakości WiFi."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -612,6 +583,15 @@ msgstr "Ta sekcja określa do jakich serwerów zebrane dane zostaną wysłane."
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -630,9 +610,6 @@ msgstr ""
 msgid "Wireless"
 msgstr "WiFi"
 
-msgid "Wireless Plugin Configuration"
-msgstr "konfiguracja wtyczki WiFi"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
@@ -656,3 +633,42 @@ msgstr ""
 
 msgid "server interfaces"
 msgstr ""
+
+#~ msgid "Installed network plugins:"
+#~ msgstr "Zainstalowane wtyczki sieciowe:"
+
+#~ msgid "Installed output plugins:"
+#~ msgstr "Zainstalowane wtyczki wyjścia:"
+
+#~ msgid ""
+#~ "Network plugins are used to collect information about open tcp "
+#~ "connections, interface traffic, iptables rules etc."
+#~ msgstr ""
+#~ "Wtyczki sieciowe służą do zbierania informacji o otwartych połączeniach TCP, "
+#~ "ruchu sieciowym na danym interfejsie, regułach iptables itp."
+
+#~ msgid ""
+#~ "Output plugins provide different possibilities to store collected data. "
+#~ "It is possible to enable multiple plugin at one, for example to store "
+#~ "collected data in rrd databases and to transmit the data over the network "
+#~ "to other collectd instances."
+#~ msgstr ""
+#~ "Pluginy wyjścia dostarczają różnych możliwości przechowywania zgromadzonych "
+#~ "danych. Można włączyć wiele pluginów naraz, na przykład przechowywać dane w "
+#~ "bazach danych RRD i wysyłać je do innych instancji collectd w sieci."
+
+#~ msgid ""
+#~ "System plugins collecting values about system state and ressource usage "
+#~ "on the device.:"
+#~ msgstr ""
+#~ "Wtyczki systemowe zbierają wartości o stanie systemu i użyciu zasobów "
+#~ "urządzenia.:"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "Wtyczka \"wireless\" zbiera dane o sile sygnału, zakłóceniach i jakości WiFi."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "konfiguracja wtyczki WiFi"
index 924b8d736d44e1ef58b26345d567c020e05c2cfc..8e3bfc7f75a74ee82be5e36b3f1d60c94cece725 100644 (file)
@@ -69,8 +69,8 @@ msgid ""
 "Can be either an IP address or range, a domain name or \".\" for any host "
 "without domain"
 msgstr ""
-"Może być adresem lub zakresem adresów IP, nazwą domeny lub \".\" dla dowolnego "
-"hosta bez domeny."
+"Może być adresem lub zakresem adresów IP, nazwą domeny lub \".\" dla "
+"dowolnego hosta bez domeny."
 
 msgid "Configuration"
 msgstr "Konfiguracja"
@@ -185,7 +185,8 @@ msgid "Minimum number of prepared idle processes"
 msgstr "Minimalna liczba przygotowanych bezczynnych procesów"
 
 msgid "Number of idle processes to start when launching Tinyproxy"
-msgstr "Liczba bezczynnych procesów do włączenia podczas uruchamiania Tinyproxy"
+msgstr ""
+"Liczba bezczynnych procesów do włączenia podczas uruchamiania Tinyproxy"
 
 msgid "Plaintext file with URLs or domains to filter. One entry per line"
 msgstr ""
index f06162b571e11ebb7db2bb1e05999583623b8bf0..99085bacfe318ea77626bcca64da3dbe7fb77495 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-11 14:23+0200\n"
-"Last-Translator: mesiu84 <kmesek84@gmail.com>\n"
+"PO-Revision-Date: 2012-10-15 22:58+0200\n"
+"Last-Translator: halinka1125 <halinka1125@op.pl>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
@@ -110,8 +110,9 @@ msgstr "Ustawienia globalne"
 msgid "Idle seeding limit"
 msgstr ""
 
+#, fuzzy
 msgid "Idle seeding limit enabled"
-msgstr ""
+msgstr "Włączony limit transferu podczas bezczynności"
 
 msgid "Incomplete directory"
 msgstr "Niekompletny katalog"
@@ -169,20 +170,23 @@ msgstr "Limit peer'a dla torrenta"
 msgid "Peer port"
 msgstr "Port peer"
 
+#, fuzzy
 msgid "Peer port random high"
-msgstr ""
+msgstr "Maksymalny losowany port peer`a"
 
+#, fuzzy
 msgid "Peer port random low"
-msgstr ""
+msgstr "Minimalny losowany port peer`a"
 
+#, fuzzy
 msgid "Peer port random on start"
-msgstr ""
+msgstr "Losowy port peer`a przy starcie"
 
 msgid "Peer settings"
 msgstr "Ustawienia peer"
 
 msgid "Peer socket tos"
-msgstr ""
+msgstr "Typ gniazda <abbr title=\"Type-Of-Service w TCP\">TOS</abbr> peer`a"
 
 msgid "Port forwarding enabled"
 msgstr "Przekazywanie portów włączone"
@@ -194,10 +198,10 @@ msgid "Prefetch enabled"
 msgstr "Pobieranie wstępne włączone"
 
 msgid "Queue stalled enabled"
-msgstr ""
+msgstr "Blokada kolejki włączona"
 
 msgid "Queue stalled minutes"
-msgstr ""
+msgstr "Blokada kolejki w min."
 
 msgid "Queueing"
 msgstr "Kolejkowanie"
@@ -208,8 +212,9 @@ msgstr "Adres URL RPC"
 msgid "RPC authentication required"
 msgstr "Wymagana autoryzacja RPC"
 
+#, fuzzy
 msgid "RPC bind address"
-msgstr ""
+msgstr "Adres węzła RPC"
 
 msgid "RPC enabled"
 msgstr "RPC włączone"
@@ -247,14 +252,19 @@ msgstr "Włączaj demona jako użytkownik"
 msgid "Scheduling"
 msgstr "Harmonogramowanie"
 
+#, fuzzy
 msgid "Scrape paused torrents enabled"
-msgstr ""
+msgstr "Zdzieranie wstrzymanych torentów włączone"
 
+#, fuzzy
 msgid "Script torrent done enabled"
 msgstr ""
+"skrypty <abbr title=\" torrent done\">wykonano torrenta</abbr> włączone"
 
+#, fuzzy
 msgid "Script torrent done filename"
 msgstr ""
+"Nazwa pliku skryptu <abbr title=\" torrent done\">wykonano torrenta</abbr>"
 
 msgid "Seed queue enabled"
 msgstr "Kolejkowanie Seed'ów włączone"
@@ -287,7 +297,6 @@ msgstr ""
 msgid "Trash original torrent files"
 msgstr "Usuń oryginalne pliki torrent"
 
-#, fuzzy
 msgid "Upload slots per torrent"
 msgstr "Liczba połączeń na plik torrent - wysyłanie"
 
index 9a4cd79c0be5f19f1b513c6f1f5b9b1a76ef6a01..559a85e7fcfb20d0f6dc70066f6d6e6bf99cb162 100644 (file)
@@ -6,6 +6,7 @@ msgstr ""
 "PO-Revision-Date: 2009-05-19 17:20+0200\n"
 "Last-Translator: Jose Monteiro <jm@unimos.net>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -238,6 +239,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr ""
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr ""
 
@@ -834,6 +840,9 @@ msgstr ""
 msgid "Force"
 msgstr "Forçar"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2615,9 +2624,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr ""
-
 msgid "Warning"
 msgstr ""
 
diff --git a/po/pt/commands.po b/po/pt/commands.po
new file mode 100644 (file)
index 0000000..0e9e65d
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index ce1b52c12063ad311c3e0ad2e3d6311e0210c391..01e88cbdd960ff64481fe48d8acf482b81b45c0b 100644 (file)
@@ -37,6 +37,9 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "Forçar actualização a cada"
 
@@ -53,6 +56,9 @@ msgstr ""
 msgid "Network"
 msgstr ""
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr ""
 
@@ -85,9 +91,3 @@ msgstr ""
 
 msgid "network"
 msgstr ""
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 5ff7d3bb32f03dd83f73fe6bbea79f4a946d7048..7161955d816a1adae9d1ff6dcc4a646e418d52c7 100644 (file)
@@ -178,6 +178,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -201,6 +204,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index 31f57db7cc9035d1a221a7d268f24fb1a9188080..495d11112badd4c81118f49245d3ebb97b1cd1f1 100644 (file)
@@ -15,6 +15,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -81,6 +84,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -102,6 +108,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Olá e benvindo à rede "
 
@@ -114,6 +126,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -144,6 +165,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -195,6 +219,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -225,6 +252,9 @@ msgstr ""
 msgid "Realname"
 msgstr "Nome"
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -254,6 +284,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -303,6 +336,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -313,6 +349,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index f035cf46d9281104740ef156f202766ba86cfb97..180d771c8bd90c54e78fcfe71776430835a9622a 100644 (file)
@@ -1,3 +1,6 @@
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -19,9 +22,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -32,9 +44,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -42,6 +62,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -55,6 +78,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index c507f4a0a0c14074d14bcbb1766da597f886c5fc..45564fdd6fadd0c61fb2a8377228236a49c89ca1 100644 (file)
@@ -7,6 +7,7 @@ msgstr ""
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -67,7 +68,7 @@ msgid "Collectd Settings"
 msgstr "Configurações do Collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -114,6 +115,9 @@ msgstr "Utilização de espaço em disco"
 msgid "Disk Usage"
 msgstr "Utilização do Disco"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Mostrar intervalo »"
 
@@ -191,12 +195,6 @@ msgstr "Ignorar endereços de origem"
 msgid "Incoming interface"
 msgstr "Interface de entrada"
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr "Configuração do plugin Interface"
 
@@ -290,11 +288,6 @@ msgstr "Configuração do plugin Rede"
 msgid "Network plugins"
 msgstr "Plugins de rede"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr "Protocolo de rede"
 
@@ -319,13 +312,6 @@ msgstr "Interface de saída"
 msgid "Output plugins"
 msgstr "Plugins de saída"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -425,11 +411,6 @@ msgstr "Carga do Sistema"
 msgid "System plugins"
 msgstr "Plugis de Sistema"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr "Conexões TCP"
 
@@ -445,6 +426,9 @@ msgstr "TTL para os pacotes do ping"
 msgid "Table"
 msgstr "Tabela"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -604,13 +588,6 @@ msgstr ""
 "O plugin unixsock cria um socket unix, que pode ser usado para ler os dados "
 "coletados a partir de uma instância do collectd."
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"O plugin wireless coleta estatísticas sobre o nível de sinal wireless, o "
-"ruído e qualidade."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -627,6 +604,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr "Tentar encontrar o nome do host completo (FQDN)"
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -645,9 +631,6 @@ msgstr "Monitoramento no modo verbose"
 msgid "Wireless"
 msgstr "Wireless"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Configuração do plugin Wireless"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
@@ -671,3 +654,13 @@ msgstr "segundos; vários valores, separar com espaço"
 
 msgid "server interfaces"
 msgstr "Interfaces do servidor"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "O plugin wireless coleta estatísticas sobre o nível de sinal wireless, o "
+#~ "ruído e qualidade."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Configuração do plugin Wireless"
index 75e27fa3a3117c148f8e68b453c6490694f71f3e..bb5d522da108d02effcbb053b657d7fbc5fcfbf8 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-09-27 01:06+0200\n"
+"PO-Revision-Date: 2012-11-11 03:56+0200\n"
 "Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: pt_BR\n"
@@ -172,10 +172,12 @@ msgid "Activate this network"
 msgstr "Ativar esta rede"
 
 msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "Rotas <abbr title=\"Protocolo de Internet Versão 4\">IPv4</abbr> ativas"
+msgstr ""
+"Rotas <abbr title=\"Protocolo de Internet Versão 4\">IPv4</abbr> ativas"
 
 msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "Rotas <abbr title=\"Protocolo de Internet Versão 6\">IPv6</abbr> ativas"
+msgstr ""
+"Rotas <abbr title=\"Protocolo de Internet Versão 6\">IPv6</abbr> ativas"
 
 msgid "Active Connections"
 msgstr "Conexões Ativas"
@@ -255,6 +257,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "Faixa permitida de 1 a 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Uma rede adicional será criada se você deixar isto desmarcado."
 
@@ -427,7 +434,7 @@ msgid ""
 "out the <em>create</em> field to define a new network."
 msgstr ""
 "Escolha a rede (s) que deseja anexar a este interface wireless ou preencha o "
-"<em> criar </ em> campo para definir uma nova rede."
+"<em> criar </em> campo para definir uma nova rede."
 
 msgid "Cipher"
 msgstr "Cifra"
@@ -688,9 +695,9 @@ msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
 msgstr ""
-"Não encaminhar consultas <abbr title=\"Sistema de Nomes de "
-"Domínios\">DNS</abbr> sem o nome completo do <abbr title=\"Sistema de Nomes de "
-"Domínios\">DNS</abbr>"
+"Não encaminhar consultas <abbr title=\"Sistema de Nomes de Domínios\">DNS</"
+"abbr> sem o nome completo do <abbr title=\"Sistema de Nomes de Domínios"
+"\">DNS</abbr>"
 
 msgid "Download and install package"
 msgstr "Baixe e instale o pacote"
@@ -754,7 +761,7 @@ msgid "Enable Jumbo Frame passthrough"
 msgstr "Ativar o encaminhamento de quadros jumbos (Jumbo Frames)"
 
 msgid "Enable NTP client"
-msgstr ""
+msgstr "Ativar o cliente <abbr title=\"Network Time Protocol\">NTP</abbr>"
 
 msgid "Enable TFTP server"
 msgstr "Ativar servidor TFTP"
@@ -882,6 +889,9 @@ msgstr "Gravando na flash..."
 msgid "Force"
 msgstr "Forçar"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr "Forçar CCMP (AES)"
 
@@ -974,7 +984,7 @@ msgid ""
 "Here you can configure the basic aspects of your device like its hostname or "
 "the timezone."
 msgstr ""
-"Aqui você pode configurar os aspectos básicos do seu equipamento,  como o "
+"Aqui você pode configurar os aspectos básicos do seu equipamento, como o "
 "nome do equipamento ou o fuso horário."
 
 msgid ""
@@ -1312,8 +1322,8 @@ msgstr ""
 
 msgid "List of hosts that supply bogus NX domain results"
 msgstr ""
-"Lista de servidores <abbr title=\"Domain Name System\">DNS</abbr> que fornecem "
-"resultados errados para consultas a domínios inexistentes (NX)"
+"Lista de servidores <abbr title=\"Domain Name System\">DNS</abbr> que "
+"fornecem resultados errados para consultas a domínios inexistentes (NX)"
 
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
@@ -1631,8 +1641,8 @@ msgstr ""
 "Nesta página pode configurar as interfaces de rede. Esta interface pode "
 "formar uma ponte juntando várias interfaces. Para isto, marque o campo "
 "\"Juntar interfaces em uma ponte\" e informar as várias interfaces de rede. "
-"Pode também usar a notação para <abbr title=\"Rede Local Virtual\">VLAN</abbr> "
-"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"por exemplo\">ex.</abbr>: "
+"Pode também usar a notação para <abbr title=\"Rede Local Virtual\">VLAN</"
+"abbr> <samp>INTERFACE.VLANNR</samp> (<abbr title=\"por exemplo\">ex.</abbr>: "
 "<samp>eth0.1</samp>)."
 
 msgid "On-State Delay"
@@ -1837,7 +1847,7 @@ msgid "Protocol support is not installed"
 msgstr "O suporte ao protocolo não está instalado"
 
 msgid "Provide NTP server"
-msgstr ""
+msgstr "Fornecer servidor <abbr title=\"Network Time Protocol\">NTP</abbr>"
 
 msgid "Provide new network"
 msgstr "Prover nova rede"
@@ -2422,13 +2432,13 @@ msgid ""
 "segments. Often there is by default one Uplink port for a connection to the "
 "next greater network like the internet and other ports for a local network."
 msgstr ""
-"As portas de rede sobre este dispositivo pode ser combinadas com diversas "
-"<abbr Área title=\"Virtual local Network\"> VLAN </ abbr> s em que os "
-"computadores podem se comunicar diretamente uns com os outros. <abbr title="
-"\"Virtual local Network\"> VLAN </ abbr> s são muitas vezes utilizados para "
-"separar diferentes segmentos de rede. Muitas vezes é padrão uma porta Uplink "
-"para a conexão com a próxima maior rede como a Internet e outras portas para "
-"uma rede local."
+"As portas de rede neste dispositivo podem ser configuradas em diversas <abbr "
+"title=\"Virtual local Network\">VLAN</abbr>s nas quais computadores em uma "
+"mesma <abbr title=\"Virtual local Network\">VLAN</abbr> podem se comunicar "
+"diretamente. <abbr title=\"Virtual local Network\">VLAN</abbr>s são muitas "
+"vezes utilizadas para separar diferentes segmentos de rede. Em geral, existe "
+"uma porta para o enlace superior (uplink) e as demais portas são utilizadas "
+"para a rede local."
 
 msgid "The selected protocol needs a device assigned"
 msgstr "O protocolo selecionado necessita estar associado a um dispositivo"
@@ -2446,7 +2456,7 @@ msgid ""
 "address of your computer to reach the device again, depending on your "
 "settings."
 msgstr ""
-"O sistema está  gravando o firmware para a flash.<br /> NÃO DESLIGUE O "
+"O sistema está gravando o firmware para a flash.<br /> NÃO DESLIGUE O "
 "EQUIPAMENTO!<br /> Espere alguns minutos até tentar reconectar. Dependendo "
 "da sua configuração, pode ser necessário renovar o endereço do seu "
 "computador para poder conectar novamente ao roteador."
@@ -2776,13 +2786,10 @@ msgstr ""
 "do hostapd (para modo AP ou ad-hoc)."
 
 msgid "Waiting for changes to be applied..."
-msgstr "À espera de mudanças a serem aplicadas ..."
+msgstr "Esperando a aplicação das mudanças..."
 
 msgid "Waiting for command to complete..."
-msgstr "À espera pelos comandos  serem completados ..."
-
-msgid "Waiting for router..."
-msgstr "Esperando pelo roteador..."
+msgstr "Esperando o término do comando..."
 
 msgid "Warning"
 msgstr "Atenção"
@@ -2968,6 +2975,9 @@ msgstr "sim"
 msgid "« Back"
 msgstr "« Voltar"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Esperando pelo roteador..."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "Ativar o servidor NTP embutido"
 
diff --git a/po/pt_BR/commands.po b/po/pt_BR/commands.po
new file mode 100644 (file)
index 0000000..08b3d37
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 1964bbcc6ba66cc5eb648768808150e7f1c3c300..1921b93f268d13a01115f9afdc848b8daf9e8071 100644 (file)
@@ -3,15 +3,15 @@ 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-10-08 03:45+0200\n"
-"Last-Translator: luizluca <luizluca@gmail.com>\n"
+"PO-Revision-Date: 2012-11-03 07:02+0200\n"
+"Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Check for changed IP every"
 msgstr "Verifique por alterações no endereço IP a cada"
@@ -35,6 +35,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Habilitar"
 
+msgid "Event interface"
+msgstr "Interface de eventos"
+
 msgid "Force update every"
 msgstr "Forçar atualização a cada"
 
@@ -50,6 +53,10 @@ msgstr "Interface"
 msgid "Network"
 msgstr "Rede"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+"Na subida de qual interface que o processo do script ddns deve ser iniciado"
+
 msgid "Password"
 msgstr "Senha"
 
@@ -81,9 +88,3 @@ msgstr "min"
 
 msgid "network"
 msgstr "rede"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 837d8301fd2047e9660a8946bab5431eeb24b1f7..53face0d5d5563b79e1d78e4cb4763245e14c1b1 100644 (file)
@@ -192,6 +192,9 @@ msgstr "Busca por dispositivos com suporte a SIP em redes especificadas."
 msgid "Scanning Configuration"
 msgstr "Configuração de busca"
 
+msgid "Scans for devices on specified networks."
+msgstr "Busca por dispositivos nas redes especificadas."
+
 msgid "Sleep Between Requests"
 msgstr "Espera Entre Requisições"
 
@@ -215,6 +218,3 @@ msgstr "Fabricante"
 
 msgid "check other networks"
 msgstr "verifique outras redes"
-
-msgid "Scans for devices on specified networks."
-msgstr "Busca por dispositivos nas redes especificadas."
index 0d463d0c2cd8a7764752122ef0bd7ce9894fcc70..00d43bc6573ad45ce99757f15b7f2dc2ef22bc19 100644 (file)
@@ -16,6 +16,9 @@ msgstr ""
 msgid "BSSID"
 msgstr "BSSID"
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr "Configurações Básicas"
 
@@ -84,6 +87,9 @@ msgstr "ESSID"
 msgid "Edit index page"
 msgstr "Edita a página índice"
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr "Erro"
 
@@ -105,6 +111,12 @@ msgstr "Roteador"
 msgid "Go to"
 msgstr "Vá para"
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Olá e seja bem-vindo à rede do"
 
@@ -117,6 +129,15 @@ msgstr "Página"
 msgid "Hostname"
 msgstr "Nome do equipamento"
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr "Se selecionado, o conteúdo padrão não é mostrado."
 
@@ -147,6 +168,9 @@ msgstr "Manter a configuração"
 msgid "Latitude"
 msgstr "Latitude"
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr "Carregar"
 
@@ -198,6 +222,9 @@ msgstr "OLSR"
 msgid "Operator"
 msgstr "Operador"
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr "Visão Geral"
 
@@ -228,6 +255,9 @@ msgstr "Perfil (Especialista)"
 msgid "Realname"
 msgstr "Nome Real"
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr "SSID"
 
@@ -259,6 +289,9 @@ msgstr "Estatística"
 msgid "Status"
 msgstr "Estado"
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr "Sistema"
 
@@ -318,6 +351,9 @@ msgstr "Tempo de atividade"
 msgid "Verify downloaded images"
 msgstr "Verifique as imagens baixadas"
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -328,6 +364,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr "Visão Geral da Rede Sem Fio"
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 720e148b8384dce0c9b2b8ea4427bf03ac5a471c..e6a4952b939a77542bb3b34e10c427570c75cce7 100644 (file)
@@ -13,6 +13,9 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Pootle 2.0.4\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr "Canal"
 
@@ -35,9 +38,18 @@ msgstr "O DHCP irá atribuir automaticamente endereços IP para os clientes"
 msgid "Enable DHCP"
 msgstr "Habilitar DHCP"
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr "Configurações Gerais"
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -50,9 +62,17 @@ msgstr "Interfaces"
 msgid "Mesh IP address"
 msgstr "Endereço IP da rede em malha"
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr "Assistente de Configuração da Rede em Malha"
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr "Proteget Rede Local (LAN)"
 
@@ -62,6 +82,9 @@ msgstr ""
 "Selecione isto para permitir que outros usem sua conexão para acessar a "
 "internet."
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr "Compartilhar sua conexão com a internet"
 
@@ -81,6 +104,11 @@ msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 "O endereço IP informado não está na faixa de endereços da rede em malha"
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 7c3b51cd0498c23f34aa90fc445002b1086cb475..ba72b820c5bf6175d3fcca5c69c193f3013ca008 100644 (file)
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2011-10-18 20:39+0200\n"
+"PO-Revision-Date: 2012-11-11 04:01+0200\n"
 "Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
 "Language-Team: none\n"
 "Language: pt_BR\n"
@@ -9,10 +9,10 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Attempts Before WAN Failover"
-msgstr "Tentativas Antes do Contorno à Falha na WAN"
+msgstr "Tentativas Antes da Solução de Contorno da WAN"
 
 msgid "Attempts Before WAN Recovery"
 msgstr "Tentativas Antes da Recuperação da WAN"
index 1ec1cdb260dfa96fdcac915aa5a8bc281eb68a19..03cf8e6b58936d62f9d59d3982c4eeb491506641 100644 (file)
@@ -341,11 +341,10 @@ msgstr ""
 "Algoritmo de qualidade do enlace (somente para <abbr title=\"Link Quality, "
 "Qualidade do Enlace\">LQ</abbr> nível 2). <br /><b>etx_float</b>: ETX ponto "
 "flutuante com o envelhecimento exponencial<br /><b>etx_fpm</b> : o mesmo que "
-"etx_float, mas com aritmética inteira<br /><b>etx_ff</b> : ETX freifunk, "
-"uma variante do etx que usa todo tráfego OLSE (ao invés de somente as "
-"saudações) para o cálculo do ETX<br /><b>etx_ffeth</b>: variação "
-"incompatível do etx_ff que permite enlaces ethernet com ETX 0.1.<br />O "
-"padrão é \"etx_ff\""
+"etx_float, mas com aritmética inteira<br /><b>etx_ff</b> : ETX freifunk, uma "
+"variante do etx que usa todo tráfego OLSE (ao invés de somente as saudações) "
+"para o cálculo do ETX<br /><b>etx_ffeth</b>: variação incompatível do etx_ff "
+"que permite enlaces ethernet com ETX 0.1.<br />O padrão é \"etx_ff\""
 
 msgid ""
 "Link quality level switch between hopcount and cost-based (mostly ETX) "
@@ -422,8 +421,8 @@ msgstr "Limiar do NAT"
 
 msgid "NLQ"
 msgstr ""
-"<abbr title=\"Neighbor Link Quality, Qualidade do Enlace do "
-"Vizinho\">NLQ</abbr>"
+"<abbr title=\"Neighbor Link Quality, Qualidade do Enlace do Vizinho\">NLQ</"
+"abbr>"
 
 msgid "Neighbors"
 msgstr "Vizinhos"
@@ -637,10 +636,9 @@ msgid ""
 "length is 64 bits. Default is \"::/0\" (no prefix)."
 msgstr ""
 "Isto pode ser usado para sinalizar o prefixo IPv6 externo do enlace superior "
-"(uplink) para os clientes. Isto pode permitir que um cliente mude o "
-"endereço IPv6 local para usar o roteador IPv6 sem qualquer tradução de "
-"endereços. O tamanho máximo do prefixo é 64 bits. O padrão é \"::/0\" (nenhum "
-"prefixo)."
+"(uplink) para os clientes. Isto pode permitir que um cliente mude o endereço "
+"IPv6 local para usar o roteador IPv6 sem qualquer tradução de endereços. O "
+"tamanho máximo do prefixo é 64 bits. O padrão é \"::/0\" (nenhum prefixo)."
 
 msgid "Timing and Validity"
 msgstr "Temporização e Validade"
index 1f69903574ab69e87721551211ae1484b9a8eefe..ab77743ea97091ee7bb2383081ac48a7e6506083 100644 (file)
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-09-27 00:39+0200\n"
+"PO-Revision-Date: 2012-11-11 04:03+0200\n"
 "Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
 "Language-Team: none\n"
 "Language: pt_BR\n"
@@ -88,14 +88,14 @@ msgid ""
 "you will use ONLY locally and never from a remote location."
 msgstr ""
 "Entre este endereço IP (ou IP:porta) na configuração de servidor/registrador "
-"dos seus dispositivos SIP que você irá usar SOMENTE localmente e nunca de "
-"um local remoto."
+"dos seus dispositivos SIP que você irá usar SOMENTE localmente e nunca de um "
+"local remoto."
 
 msgid ""
 "Enter this hostname (or hostname:port) in the Server/Registrar setting of "
 "SIP devices you will use from a remote location (they will work locally too)."
 msgstr ""
-"Entre com o nome do equipamento (or equipamento:porta)  na configuração de "
+"Entre com o nome do equipamento (ou equipamento:porta) na configuração de "
 "servidor/Registrar do seus dispositivos SIP que você irá usar de um local "
 "remoto (eles também funcionarão localmente)."
 
@@ -210,10 +210,10 @@ msgstr ""
 "IP e portas específicas, resultando em melhor latência e redimento de som. "
 "Se ativado, será configurada automaticamente pelo PABX uma regra de <abbr "
 "title=\"Quality of Service, Qualidade de serviço\">QoS</abbr> para este "
-"serviço, mas você deve visitar a página de configuração de <abbr "
-"title=\"Quality of Service, Qualidade de serviço\">QoS</abbr> (Rede -> QoS) "
-"para configurar outras configurações críticas de QoS como as velocidades da "
-"sua conexão."
+"serviço, mas você deve visitar a página de configuração de <abbr title="
+"\"Quality of Service, Qualidade de serviço\">QoS</abbr> (Rede -> QoS) para "
+"configurar outras configurações críticas de QoS como as velocidades da sua "
+"conexão."
 
 msgid ""
 "If you have more than one account that can make outgoing calls, you should "
@@ -240,16 +240,16 @@ msgstr ""
 "exemplo, para fazer chamadas para a Alemanha através de um provedor, você "
 "pode digitar 49. Para fazer chamadas para a América do Norte, você pode "
 "entrar 1NXXNXXXXXX. Se um de seus provedores pode fazer chamadas locais para "
-"um código de área como Nova York (646), você pode entrar com 646NXXXXXX "
-"para esse provedor. Você deve deixar uma conta com uma lista vazia para "
-"fazer chamadas com ele por padrão para o caso do prefixo não casar com "
-"nenhum outro fornecedor. O sistema irá substituir automaticamente uma lista "
-"vazia com uma mensagem que os este provedor será utilizado caso nenhuma das "
-"regras dos demais provedores casem. Seja tão específico quanto possível "
-"(isto é 1NXXNXXXXXX é melhor do que 1). Por favor, note que todos os códigos "
-"de discagem internacionais são descartados (por exemplo 00, 011, 010, "
-"0011). As entradas podem ser feitas em uma lista separada por espaços ou por "
-"nova linha."
+"um código de área como Nova York (646), você pode entrar com 646NXXXXXX para "
+"esse provedor. Você deve deixar uma conta com uma lista vazia para fazer "
+"chamadas com ele por padrão para o caso do prefixo não casar com nenhum "
+"outro fornecedor. O sistema irá substituir automaticamente uma lista vazia "
+"com uma mensagem que os este provedor será utilizado caso nenhuma das regras "
+"dos demais provedores casem. Seja tão específico quanto possível (isto é "
+"1NXXNXXXXXX é melhor do que 1). Por favor, note que todos os códigos de "
+"discagem internacionais são descartados (por exemplo 00, 011, 010, 0011). As "
+"entradas podem ser feitas em uma lista separada por espaços ou por nova "
+"linha."
 
 msgid "Incoming Calls"
 msgstr "Chamadas Recebidas"
@@ -320,9 +320,8 @@ msgstr ""
 "escutar. Não escolher o padrão 5060, porque é frequentemente alvo de ataques "
 "de força bruta. Quando terminar, (1) clique em \"Salvar e Aplicar\", e (2) "
 "clique no \"Reiniciar o serviço VoIP\" acima. Finalmente, (3) olhe na seção "
-"\"Contas de Dispositivos SIP/Telefones em Software\"  para atualizar o "
-"endereço e porta do servidor para seu Dispositivos SIP/Telefones em "
-"Software."
+"\"Contas de Dispositivos SIP/Telefones em Software\" para atualizar o "
+"endereço e porta do servidor para seu Dispositivos SIP/Telefones em Software."
 
 msgid "Port Setting for SIP Devices"
 msgstr "Configuração da Porta para Dispositivos SIP"
@@ -436,14 +435,14 @@ msgstr ""
 "SIP, e contas de usuários locais são configurados em \"Contas do Google\", "
 "\"Contas SIP\" e \"Contas de Usuário\" sub-seções. Você deve adicionar pelo "
 "menos uma conta de usuário para este PABX e configurar um dispositivo SIP ou "
-"softphone para usar a conta, a fim de fazer e receber chamadas com o Google "
-"/ SIP contas. Configurando vários usuários permitem que você faça chamadas "
-"gratuitas entre todos os usuários, e partilhar o Google configurado e contas "
-"SIP. Se você tem mais de um Google e contas SIP configurado, você "
+"softphone para usar a conta, a fim de fazer e receber chamadas com o "
+"Google / SIP contas. Configurando vários usuários permitem que você faça "
+"chamadas gratuitas entre todos os usuários, e partilhar o Google configurado "
+"e contas SIP. Se você tem mais de um Google e contas SIP configurado, você "
 "provavelmente deve configurar como as chamadas de e para eles são "
-"encaminhados para a \"Call Routing\" página. Se você está interessado em usar "
-"o seu próprio PABX de qualquer lugar do mundo, então, visitar o \"Remote Uso\" "
-"na seção \"Advanced Settings\" página."
+"encaminhados para a \"Call Routing\" página. Se você está interessado em "
+"usar o seu próprio PABX de qualquer lugar do mundo, então, visitar o "
+"\"Remote Uso\" na seção \"Advanced Settings\" página."
 
 msgid ""
 "This is the name that the VoIP server will use to identify itself when "
@@ -475,10 +474,10 @@ msgid ""
 msgstr ""
 "Este é o local onde você configura suas contas Google (Talk e Voice) para "
 "poder usá-las para realizar ou receber chamadas (conversa por voz e chamadas "
-"para telefones reais). Por favor, realize ao menos uma chamada de voz "
-"usando o plugin do Google Talk, instalável na interface do GMail. Após esta "
-"chamada, saia da sua conta em todos os serviços. Clique em \"Adicionar\" para "
-"adicionar quantas contas você desejar."
+"para telefones reais). Por favor, realize ao menos uma chamada de voz usando "
+"o plugin do Google Talk, instalável na interface do GMail. Após esta "
+"chamada, saia da sua conta em todos os serviços. Clique em \"Adicionar\" "
+"para adicionar quantas contas você desejar."
 
 msgid ""
 "This is where you set up your SIP (VoIP) accounts ts like Sipgate, "
index c367747533cbf88582a022d88d46326917bfd506..1932c9c5b263a092f5de5ee8ab3300bedefead77 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-09-27 01:07+0200\n"
+"PO-Revision-Date: 2012-11-11 04:02+0200\n"
 "Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: pt_BR\n"
@@ -68,7 +68,7 @@ msgid "Collectd Settings"
 msgstr "Configurações do Collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -115,6 +115,9 @@ msgstr "Utilização de espaço em disco"
 msgid "Disk Usage"
 msgstr "Utilização do Disco"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Mostrar intervalo »"
 
@@ -193,12 +196,6 @@ msgstr "Ignorar endereços de origem"
 msgid "Incoming interface"
 msgstr "Interface de entrada"
 
-msgid "Installed network plugins:"
-msgstr "Plugins de rede instalados:"
-
-msgid "Installed output plugins:"
-msgstr "Plugins de saída instalados:"
-
 msgid "Interface Plugin Configuration"
 msgstr "Configuração do plugin Interface"
 
@@ -294,13 +291,6 @@ msgstr "Configuração do plugin Rede"
 msgid "Network plugins"
 msgstr "Plugins de rede"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-"Os plugins de rede são utilizados para coletar informações sobre conexões "
-"tcp abertas, tráfego da interface, regras do iptables, etc."
-
 msgid "Network protocol"
 msgstr "Protocolo de rede"
 
@@ -325,17 +315,6 @@ msgstr "Interface de saída"
 msgid "Output plugins"
 msgstr "Plugins de saída"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-"Os plugins de saída proveem diferentes possibilidades para armazenar os "
-"dados coletados. É possível habilitar diversos plugin para, por exemplo, "
-"coletar dados em bancos de dados rrd e transmitir os dados através da rede "
-"para outro serviço collectd."
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -435,13 +414,6 @@ msgstr "Carga do Sistema"
 msgid "System plugins"
 msgstr "Plugins de sistema"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-"Plugins do sistema coletando valores sobre o estado do sistema e uso dos "
-"recursos neste dispositivo.:"
-
 msgid "TCP Connections"
 msgstr "Conexões TCP"
 
@@ -457,6 +429,9 @@ msgstr "TTL para os pacotes do ping"
 msgid "Table"
 msgstr "Tabela"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -606,7 +581,7 @@ msgid ""
 msgstr ""
 "As estatísticas são baseadas no <a href=\"http://collectd.org/index.shtml"
 "\">Collectd</a> e é utilizado o <a href=\"http://oss.oetiker.ch/rrdtool/"
-"\">RRD Tool</a> para renderização das imagens à partir dos dados coletados."
+"\">RRD Tool</a> para renderização das imagens a partir dos dados coletados."
 
 msgid ""
 "The tcpconns plugin collects informations about open tcp connections on "
@@ -622,13 +597,6 @@ msgstr ""
 "O plugin unixsock cria um socket unix, que pode ser usado para ler os dados "
 "coletados a partir de uma collectd em execução."
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"O plugin wireless coleta estatísticas sobre o nível de sinal wireless, o "
-"ruído e qualidade."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -645,6 +613,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr "Tentar encontrar o nome do host completo (FQDN)"
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -663,9 +640,6 @@ msgstr "Monitoramento no modo detalhado"
 msgid "Wireless"
 msgstr "Rede Sem Fio (Wireless)"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Configuração do Plugin da Rede Sem Fio (Wireless)"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr "Configuração do Plugin iwinfo da Rede Sem Fio (Wireless)"
 
@@ -689,3 +663,44 @@ msgstr "segundos; vários valores, separar com espaço"
 
 msgid "server interfaces"
 msgstr "interfaces do servidor"
+
+#~ msgid "Installed network plugins:"
+#~ msgstr "Plugins de rede instalados:"
+
+#~ msgid "Installed output plugins:"
+#~ msgstr "Plugins de saída instalados:"
+
+#~ msgid ""
+#~ "Network plugins are used to collect information about open tcp "
+#~ "connections, interface traffic, iptables rules etc."
+#~ msgstr ""
+#~ "Os plugins de rede são utilizados para coletar informações sobre conexões "
+#~ "tcp abertas, tráfego da interface, regras do iptables, etc."
+
+#~ msgid ""
+#~ "Output plugins provide different possibilities to store collected data. "
+#~ "It is possible to enable multiple plugin at one, for example to store "
+#~ "collected data in rrd databases and to transmit the data over the network "
+#~ "to other collectd instances."
+#~ msgstr ""
+#~ "Os plugins de saída proveem diferentes possibilidades para armazenar os "
+#~ "dados coletados. É possível habilitar diversos plugin para, por exemplo, "
+#~ "coletar dados em bancos de dados rrd e transmitir os dados através da rede "
+#~ "para outro serviço collectd."
+
+#~ msgid ""
+#~ "System plugins collecting values about system state and ressource usage "
+#~ "on the device.:"
+#~ msgstr ""
+#~ "Plugins do sistema coletando valores sobre o estado do sistema e uso dos "
+#~ "recursos neste dispositivo.:"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "O plugin wireless coleta estatísticas sobre o nível de sinal wireless, o "
+#~ "ruído e qualidade."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Configuração do Plugin da Rede Sem Fio (Wireless)"
index 08519149a2f97955e8a68452185bf6c1f0f1c121..e9e530d6e1b9b343f5e39bace1032433c2709c53 100644 (file)
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2012-07-06 16:27+0200\n"
-"PO-Revision-Date: 2012-07-06 16:28+0200\n"
+"PO-Revision-Date: 2012-11-11 04:37+0200\n"
 "Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: pt_BR\n"
@@ -14,43 +14,43 @@ msgstr ""
 "X-Generator: Pootle 2.0.6\n"
 
 msgid "Alternative download speed"
-msgstr "Velocidade de download alternativo"
+msgstr "Velocidade alternativa para baixar"
 
 msgid "Alternative speed enabled"
-msgstr "Velocidade de download ativado"
+msgstr "Velocidade alternativa ativada"
 
 msgid "Alternative speed time begin"
-msgstr "Tempo de velocidade alternativo começar"
+msgstr "Hora de início da velocidade alternativa"
 
 msgid "Alternative speed time day"
-msgstr "Velocidade alternativa por dia"
+msgstr "Dia da velocidade alternativa"
 
 msgid "Alternative speed time end"
-msgstr "Velocidade alternativa final"
+msgstr "Hora final da velocidade alternativa"
 
 msgid "Alternative speed timing enabled"
-msgstr "Velocidade alternativa tempo ativo"
+msgstr "Temporização da velocidade alternativa habilitada"
 
 msgid "Alternative upload speed"
-msgstr "Alternativo velocidade de upload"
+msgstr "Velocidade de subida alternativa"
 
 msgid "Automatically start added torrents"
-msgstr "Iniciar automaticamente torrents adicionados "
+msgstr "Iniciar automaticamente os torrents adicionados "
 
 msgid "Bandwidth settings"
-msgstr "configurações de largura de banda"
+msgstr "Configurações da velocidade do enlace"
 
 msgid "Binding address IPv4"
-msgstr "Endereço IPv4 Binding"
+msgstr "Endereço de escuta IPv4"
 
 msgid "Binding address IPv6"
-msgstr "Endereço IPv6 Binding"
+msgstr "Endereço de escuta IPv6"
 
 msgid "Block list enabled"
-msgstr "Lista de Bloqueios habilitado"
+msgstr "Lista de Bloqueios habilitada"
 
 msgid "Blocklist URL"
-msgstr "Lista de bloqueio de URL"
+msgstr "URL da lista de bloqueio"
 
 msgid "Blocklists"
 msgstr "Lista de Bloqueio"
@@ -59,31 +59,31 @@ msgid "Cache size in MB"
 msgstr "Tamanho em MB do cache"
 
 msgid "Config file directory"
-msgstr "Configuração de diretório de arquivos"
+msgstr "Diretório dos arquivos de configuração"
 
 msgid "DHT enabled"
-msgstr "DHT Ativado"
+msgstr "DHT habilitado"
 
 msgid "Debug"
-msgstr "Debug"
+msgstr "Depuração"
 
 msgid "Download directory"
-msgstr "Diretório de download "
+msgstr "Diretório de arquivos baixados "
 
 msgid "Download queue enabled"
-msgstr "Fila Download ativado"
+msgstr "Fila para baixar habilitada"
 
 msgid "Download queue size"
-msgstr "Tamanho da fila de Download "
+msgstr "Tamanho da fila para baixar "
 
 msgid "Enable watch directory"
-msgstr "Ativar diretório assistido"
+msgstr "Habilitar monitoramento de diretório"
 
 msgid "Enabled"
-msgstr "Ativar"
+msgstr "Habilitar"
 
 msgid "Encryption"
-msgstr "Criptografar"
+msgstr "Cifragem"
 
 msgid "Error"
 msgstr "Erro"
@@ -101,37 +101,37 @@ msgid "Full"
 msgstr "Cheio"
 
 msgid "Global peer limit"
-msgstr "Limite global de pontos conectados"
+msgstr "Limite global de parceiros conectados"
 
 msgid "Global settings"
-msgstr "Configuração Global "
+msgstr "Configurações Globais"
 
 msgid "Idle seeding limit"
-msgstr "Limite de seeding ocioso"
+msgstr "Limite para parar de semear se ocioso"
 
 msgid "Idle seeding limit enabled"
-msgstr "Limite de seeding ocioso habilitado"
+msgstr "Habilitar limite para parar de semear se ocioso"
 
 msgid "Incomplete directory"
-msgstr "Diretório incompleto"
+msgstr "Diretório de incompletos"
 
 msgid "Incomplete directory enabled"
-msgstr "Diretório incompleto ativado"
+msgstr "Diretório de incompletos habilitado"
 
 msgid "Info"
 msgstr "informação"
 
 msgid "LPD enabled"
-msgstr "LPD ativado"
+msgstr "LPD habilitado"
 
 msgid "Lazy bitfield enabled"
-msgstr "Lazy bitfield ativado"
+msgstr "Envio de campo de bits incompletos habilitado"
 
 msgid "Message level"
-msgstr "nível de mensagem"
+msgstr "Nível de mensagens"
 
 msgid "Miscellaneous"
-msgstr "diverso"
+msgstr "Diversos"
 
 msgid "None"
 msgstr "Nada"
@@ -141,8 +141,8 @@ msgid ""
 "enabled, add a value. For Sunday - 1, Monday - 2, Tuesday - 4, Wednesday - "
 "8, Thursday - 16, Friday - 32, Saturday - 64"
 msgstr ""
-"Número / bitfield. Comece com 0, então para cada dia você quer que o "
-"programador habilitado, adicione um valor. Para domingo - 1, segunda-feira - "
+"Número/Campo de bits. Comece com 0 e, então, para cada dia você quer o "
+"agendador habilitado, adicione um valor. Para domingo - 1, segunda-feira - "
 "2, terça-feira - 4, quarta-feira - 8, quinta-feira - 16, sexta-feira - 32, "
 "Sábado - 64"
 
@@ -153,49 +153,49 @@ msgid "Open Web Interface"
 msgstr "Abrir interface Web"
 
 msgid "PEX enabled"
-msgstr "PEX ativado"
+msgstr "PEX habilitado"
 
 msgid "Peer Port settings"
-msgstr "Configuração de porta de  peer "
+msgstr "Configuração de porta do parceiro"
 
 msgid "Peer congestion algorithm"
-msgstr "Algoritmo de congestionamento por peer"
+msgstr "Algoritmo de congestionamento dos parceiro"
 
 msgid "Peer limit per torrent"
-msgstr "Limite de torrents por Peer"
+msgstr "Limite de torrents por parceiro"
 
 msgid "Peer port"
-msgstr "Porta de peer"
+msgstr "Porta do parceiro"
 
 msgid "Peer port random high"
-msgstr "Porta  alta randômica do peer "
+msgstr "Limite superior da porta aleatória do parceiro"
 
 msgid "Peer port random low"
-msgstr "Porta baixa randômica do peer"
+msgstr "Limite inferior da porta aleatória do parceiro"
 
 msgid "Peer port random on start"
-msgstr "Porta inicial randômica  do peer"
+msgstr "Porta aleatória inicial do parceiro"
 
 msgid "Peer settings"
-msgstr "Configuração do peer"
+msgstr "Configuração do parceiro"
 
 msgid "Peer socket tos"
-msgstr "Peer socket tos"
+msgstr "TOS da conexão do parceiro"
 
 msgid "Port forwarding enabled"
-msgstr "Porta encaminhando (forwarding) ativada"
+msgstr "Encaminhamento de porta ativado"
 
 msgid "Preferred"
-msgstr "preferido"
+msgstr "Preferencial"
 
 msgid "Prefetch enabled"
-msgstr "prefetch ativado"
+msgstr "Adiantamento de leitura de disco habilitado"
 
 msgid "Queue stalled enabled"
-msgstr "Fila parada ativada"
+msgstr "Parada de fila habilitada"
 
 msgid "Queue stalled minutes"
-msgstr "Fila parado minutos"
+msgstr "Parada de fila em minutos"
 
 msgid "Queueing"
 msgstr "Filas"
@@ -204,92 +204,91 @@ msgid "RPC URL"
 msgstr "RPC URL"
 
 msgid "RPC authentication required"
-msgstr "RPC autenticação requerida "
+msgstr "RPC requer autenticação "
 
 msgid "RPC bind address"
-msgstr "RPC endereço de ligação"
+msgstr "Endereço de escuta do RPC"
 
 msgid "RPC enabled"
-msgstr "RPC Ativado"
+msgstr "RPC habilitado"
 
 msgid "RPC password"
-msgstr "RPC Senha"
+msgstr "Senha do RPC"
 
 msgid "RPC port"
-msgstr "RPC porta"
+msgstr "Porta do RPC"
 
 msgid "RPC settings"
-msgstr "RPC configuração"
+msgstr "Configuração do RPC"
 
 msgid "RPC username"
-msgstr "RPC nome de usuario (login)"
+msgstr "Nome do usuario do RPC"
 
 msgid "RPC whitelist"
-msgstr "RPC lista permitida"
+msgstr "Lista branca do RPC"
 
 msgid "RPC whitelist enabled"
-msgstr "RPC lista permitida ativado"
+msgstr "Lista branca do RPC habilitada"
 
 msgid "Ratio limit"
-msgstr "limite Relação"
+msgstr "Limite da relação"
 
 msgid "Ratio limit enabled"
-msgstr "limite Relação ativado"
+msgstr "Limite da relação habilitado"
 
 msgid "Rename partial files"
-msgstr "Renomear arquivo parcialmente"
+msgstr "Renomear arquivos parciais"
 
 msgid "Run daemon as user"
-msgstr "Executar daemon como usuário"
+msgstr "Executar serviço como usuário"
 
 msgid "Scheduling"
-msgstr "agendamento"
+msgstr "Agendamento"
 
 msgid "Scrape paused torrents enabled"
-msgstr "Scrape torrents pausados ​​habilitado"
+msgstr "Busca de informações de torrents pausados ​​habilitada"
 
 msgid "Script torrent done enabled"
-msgstr "Torrente Script feito habilitado"
+msgstr "Script de conclusão de torrent habilitado"
 
 msgid "Script torrent done filename"
-msgstr "Torrente Script feito nome do arquivo"
+msgstr "Nome do arquivo do script de conclusão de torrent"
 
 msgid "Seed queue enabled"
-msgstr "Fila de Sementes habilitado"
+msgstr "Fila de semeadura habilitada"
 
 msgid "Seed queue size"
-msgstr "Tamanho da fila de Sementes"
+msgstr "Tamanho da fila de semeadura"
 
 msgid "Speed limit down"
-msgstr "Limite de velocidade down"
+msgstr "Limite inferior de velocidade"
 
 msgid "Speed limit down enabled"
-msgstr "Limite de velocidade down ativado"
+msgstr "Limite inferior de velocidade habilitado"
 
 msgid "Speed limit up"
-msgstr "Limite de velocidade up"
+msgstr "Limite superior de velocidade"
 
 msgid "Speed limit up enabled"
-msgstr "Limite de velocidade up ativado"
+msgstr "Limite superior de velocidade habilitado"
 
 msgid "Transmission"
-msgstr "transmissão"
+msgstr "Transmission"
 
 msgid ""
 "Transmission daemon is a simple bittorrent client, here you can configure "
 "the settings."
 msgstr ""
-"Daemon de transmissão é um cliente BitTorrent simples, aqui você pode "
-"configurar as definições."
+"O Transmission é um cliente BitTorrent simples, aqui você pode configurá-lo."
 
 msgid "Trash original torrent files"
-msgstr "Lixo arquivos torrent originais"
+msgstr "Apague os arquivos torrent originais"
 
 msgid "Upload slots per torrent"
-msgstr "Slots para upload por torrent"
+msgstr "Vagas para conexão de envio por torrent"
 
 msgid "Watch directory"
-msgstr "Assista diretório"
+msgstr "Monitorar diretório"
 
 msgid "in minutes from midnight"
 msgstr "em minutos a partir da meia-noite"
index 6a7406fc53ea0b5930ce1a1b67677cecdb2e8093..b0768f5abcbcbaf0b13bc14fc93bcbea2446eeb4 100644 (file)
@@ -1,8 +1,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2011-10-07 00:21+0200\n"
-"Last-Translator: Daniel <daniel.petre@pitesti.rcs-rds.ro>\n"
+"PO-Revision-Date: 2012-12-01 16:10+0200\n"
+"Last-Translator: cgherman <cgherman@mandrivausers.ro>\n"
 "Language-Team: none\n"
 "Language: ro\n"
 "MIME-Version: 1.0\n"
@@ -10,7 +10,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
 "20)) ? 1 : 2);;\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "(%d minute window, %d second interval)"
 msgstr ""
@@ -40,7 +40,7 @@ msgid "15 Minute Load:"
 msgstr "Incarcarea in ultimele 15 minute"
 
 msgid "40MHz 2nd channel above"
-msgstr ""
+msgstr "40MHz 2 canale de mai jos"
 
 msgid "40MHz 2nd channel below"
 msgstr ""
@@ -49,10 +49,10 @@ msgid "5 Minute Load:"
 msgstr "Incarcarea in ultimele 5 minute"
 
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
-msgstr ""
+msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
 msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr ""
+msgstr "<abbr title=\"Domain Name System\">DNS</abbr>port de apelare"
 
 msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
 msgstr ""
@@ -63,7 +63,7 @@ msgid ""
 msgstr ""
 
 msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr ""
+msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
 
 msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
 msgstr "Adresa <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>"
@@ -232,6 +232,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr ""
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr ""
 
@@ -818,6 +823,9 @@ msgstr ""
 msgid "Force"
 msgstr "Forteaza"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2571,9 +2579,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr "Asteptam dupa router.."
-
 msgid "Warning"
 msgstr "Avertizare"
 
@@ -2745,6 +2750,9 @@ msgstr "da"
 msgid "« Back"
 msgstr "« Inapoi"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Asteptam dupa router.."
+
 #~ msgid "Active Leases"
 #~ msgstr "Conexiuni dhcp active"
 
diff --git a/po/ro/commands.po b/po/ro/commands.po
new file mode 100644 (file)
index 0000000..2b3a72b
--- /dev/null
@@ -0,0 +1,99 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"PO-Revision-Date: 2012-12-01 16:07+0200\n"
+"Last-Translator: cgherman <cgherman@mandrivausers.ro>\n"
+"Language-Team: none\n"
+"Language: ro\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==0 || (n%100 > 0 && n%100 < "
+"20)) ? 1 : 2);;\n"
+"X-Generator: Pootle 2.0.6\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+"Permite executarea comenzii si descarcarea rezultatului fara o autentificare "
+"anterioara"
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr "Permite utilizatorului sa adauge parametrii in linia de comanda"
+
+msgid "Arguments:"
+msgstr "Parametrii:"
+
+msgid "Binary data not displayed, download instead."
+msgstr "Datele binare nu sunt afisate, descarcale in schimb"
+
+msgid "Code:"
+msgstr "Cod:"
+
+msgid "Collecting data..."
+msgstr "Aduna date..."
+
+msgid "Command"
+msgstr "Comanda"
+
+msgid "Command failed"
+msgstr "Comanda esuata"
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr "Comanda reusita"
+
+msgid "Command:"
+msgstr "Comanda:"
+
+msgid "Configure"
+msgstr "Configureaza"
+
+msgid "Custom Commands"
+msgstr "Comenzi particulare"
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr "Dashboard"
+
+msgid "Description"
+msgstr "Descriere"
+
+msgid "Download"
+msgstr "Descarca"
+
+msgid "Failed to execute command!"
+msgstr "S-a esuat executarea comenzii!!"
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr "Se incarca"
+
+msgid "Public access"
+msgstr "Access public"
+
+msgid "Run"
+msgstr "Ruleaza"
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+"Aceasta pagina permite configurarea de comenzi personale ce pot fi usor "
+"apelate din interfata grafica"
+
+msgid "Waiting for command to complete..."
+msgstr "Astept finalizarea comenzii..."
index 7769f243b8be337e4fcc10f57d0450571c88499a..03104c33023c0ae4eaa9eb668c6c5ad9bb29fb30 100644 (file)
@@ -3,22 +3,25 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2012-12-01 15:57+0200\n"
+"Last-Translator: cgherman <cgherman@mandrivausers.ro>\n"
 "Language-Team: none\n"
+"Language: ro\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==0 || (n%100 > 0 && n%100 < "
-"20)) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
+"20)) ? 1 : 2);;\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "CoovaChilli"
-msgstr ""
+msgstr "CoovaChilli"
 
 msgid "Network Configuration"
-msgstr ""
+msgstr "Configurare retea"
 
 msgid "RADIUS configuration"
-msgstr ""
+msgstr "Configurare RADIUS"
 
 msgid "UAM and MAC Authentication"
-msgstr ""
+msgstr "Autentificare UAM si MAC"
index 6af34ffce5dd9b867577eb0b81d29e17e479ec5b..cade2fbd3ef1822aa5b73c4b26ea71f213dde83b 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: 2011-10-07 00:42+0200\n"
-"Last-Translator: Daniel <daniel.petre@pitesti.rcs-rds.ro>\n"
+"PO-Revision-Date: 2012-12-01 15:59+0200\n"
+"Last-Translator: cgherman <cgherman@mandrivausers.ro>\n"
 "Language-Team: none\n"
 "Language: ro\n"
 "MIME-Version: 1.0\n"
@@ -14,7 +14,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && 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 "Verifica pentru adresa IP schimbata la fiecare"
@@ -38,6 +38,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Activeaza"
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "Forteaza actualizarea la fiecare"
 
@@ -45,7 +48,7 @@ msgid "Force-time unit"
 msgstr "Unitatea de timp la fortare actualizare"
 
 msgid "Hostname"
-msgstr "nume dns"
+msgstr "Nume host"
 
 msgid "Interface"
 msgstr "Interfata"
@@ -53,6 +56,9 @@ msgstr "Interfata"
 msgid "Network"
 msgstr "Retea"
 
+msgid "On which interface up should start the ddns script process."
+msgstr "Pe care interfata trebuie sa porneasca scriptul ddns"
+
 msgid "Password"
 msgstr "Parola"
 
@@ -84,9 +90,3 @@ msgstr "minut(e)"
 
 msgid "network"
 msgstr "retea"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 39f50d886581ed372b1c0c57a0aa966423a9976b..a1cf113d0743b89b4f0c2c8c7306d7c6675a32ce 100644 (file)
@@ -182,6 +182,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr "Pauza dintre cereri"
 
@@ -205,6 +208,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr "verifica alte retele"
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index 821f2d95083eef5528824e9300b5cb370cb936ab..2e7e3119a412fabeb7d500dd156e7c8abc2ec66b 100644 (file)
@@ -13,6 +13,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -79,6 +82,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -100,6 +106,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr ""
 
@@ -112,6 +124,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -138,6 +159,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -189,6 +213,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -219,6 +246,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -248,6 +278,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -297,6 +330,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -305,6 +341,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 0ec7bd5a8345d5fef92f1446b6f4fa9b4750683b..1a6d15f5f131d0bffd3b407b26fd82307f69b39e 100644 (file)
@@ -12,6 +12,9 @@ msgstr ""
 "20)) ? 1 : 2);;\n"
 "X-Generator: Pootle 2.0.4\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr "Canal"
 
@@ -34,9 +37,18 @@ msgstr "DHCP va aloca automat adrese IP la clienti"
 msgid "Enable DHCP"
 msgstr "Activeaza DHCP"
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr "Setari generale"
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -47,9 +59,17 @@ msgstr "Interfete"
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr "Protejeaza reteaua locala LAN"
 
@@ -59,6 +79,9 @@ msgstr ""
 "Selecteaza aici ca sa permiti si altora sa-ti foloseasca si ei conexiunea ta "
 "de Internet."
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr "Partajeaza cu altii conexiunea ta de Internet"
 
@@ -72,6 +95,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 411ac1348b135fc5cf2fa51795aec4fa8788bd75..893419f20d991f0ba23675fd9ca99a8d3e499eed 100644 (file)
@@ -5,8 +5,8 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-14 13:24+0200\n"
-"PO-Revision-Date: 2011-10-07 17:07+0200\n"
-"Last-Translator: Daniel <daniel.petre@pitesti.rcs-rds.ro>\n"
+"PO-Revision-Date: 2012-12-01 16:08+0200\n"
+"Last-Translator: cgherman <cgherman@mandrivausers.ro>\n"
 "Language-Team: none\n"
 "Language: ro\n"
 "MIME-Version: 1.0\n"
@@ -14,7 +14,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
 "20)) ? 1 : 2);;\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Clock Adjustment"
 msgstr "Ajustarea ceasului"
@@ -41,7 +41,7 @@ msgid "Synchronizes the system time"
 msgstr "Sincronizeaza timpul sistemului"
 
 msgid "Time Server"
-msgstr ""
+msgstr "Server de timp"
 
 msgid "Time Servers"
 msgstr "Serverele de timp"
index 6798be77e0c7847e6104fae3bfc779fc7992bcd4..ff5d56427218dca3189c8ae97c2ff118abda19f4 100644 (file)
@@ -69,7 +69,7 @@ msgid "Collectd Settings"
 msgstr "Setarile Collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -116,6 +116,9 @@ msgstr "Utilizarea spatiului pe disc"
 msgid "Disk Usage"
 msgstr "Utilizarea discului"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr ""
 
@@ -186,12 +189,6 @@ msgstr ""
 msgid "Incoming interface"
 msgstr ""
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr ""
 
@@ -285,11 +282,6 @@ msgstr ""
 msgid "Network plugins"
 msgstr "Pluginuri de retea"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr ""
 
@@ -314,13 +306,6 @@ msgstr ""
 msgid "Output plugins"
 msgstr "Pluginuri de iesire"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -420,11 +405,6 @@ msgstr "Incarcarea de sistem"
 msgid "System plugins"
 msgstr "Pluginuri de sistem"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr "Conexiuni TCP"
 
@@ -440,6 +420,9 @@ msgstr ""
 msgid "Table"
 msgstr ""
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -557,11 +540,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -574,6 +552,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr "Incearca sa rezolvi numele de domeniu complet"
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -592,9 +579,6 @@ msgstr ""
 msgid "Wireless"
 msgstr "Wireless"
 
-msgid "Wireless Plugin Configuration"
-msgstr ""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
index dbe3f94e1ef69c33e72092b19da78271f711d021..e8fb86bb1d62de95b373aae4c603491a8a59f98d 100644 (file)
@@ -1,6 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: ahcp\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-15 15:30+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -8,10 +9,9 @@ msgstr ""
 "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"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 # Ad-Hoc Configuration Protocol - протокол автоматической конфигурации IPv6 и сетей IPv6/IPv4 двойного стека
index 2b155675285dc7889aeb410d284761aaf692962a..6eea0a9998ae0b74759cd623c61c0c279316a7a1 100644 (file)
@@ -254,6 +254,11 @@ msgstr "Разрешить ответы в диапазоне 127.0.0.0/8, на
 msgid "Allowed range is 1 to 65535"
 msgstr "Допустимый диапазон от 1 до 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Если вы не выберите эту опцию, то будет создана дополнительная сеть."
 
@@ -878,6 +883,9 @@ msgstr "Прошивка..."
 msgid "Force"
 msgstr "Принудительно"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr "Требовать CCMP (AES)"
 
@@ -2752,9 +2760,6 @@ msgstr "Ожидание применения изменений..."
 msgid "Waiting for command to complete..."
 msgstr "Ожидание завершения выполнения команды..."
 
-msgid "Waiting for router..."
-msgstr "Ожидание маршрутизатора..."
-
 msgid "Warning"
 msgstr "Внимание"
 
@@ -2936,6 +2941,9 @@ msgstr "да"
 msgid "« Back"
 msgstr "« Назад"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Ожидание маршрутизатора..."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "Включить встроенный NTP-сервер"
 
diff --git a/po/ru/commands.po b/po/ru/commands.po
new file mode 100644 (file)
index 0000000..ad2d1e9
--- /dev/null
@@ -0,0 +1,92 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\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"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 00ab3d223339db896d420aa536113a23371afeee..379ff7eaa6234a1e3aac60c4d802a9045d4b96a5 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index d24c3746517e0d2c3e6eaacd6c7233d688e308ce..558a2a8f503b9b0d51679372bc7cfa7d212c8188 100644 (file)
@@ -3,15 +3,15 @@ msgstr ""
 "Project-Id-Version: LuCI: ddns\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-02 13:44+0100\n"
-"PO-Revision-Date: 2012-08-14 22:36+0300\n"
+"PO-Revision-Date: 2012-11-01 21:54+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
 "Language: ru\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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
@@ -37,6 +37,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Включить"
 
+msgid "Event interface"
+msgstr "Интерфейс события"
+
 msgid "Force update every"
 msgstr "Принудительно обновлять каждые"
 
@@ -52,6 +55,10 @@ msgstr "Интерфейс"
 msgid "Network"
 msgstr "Сеть"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+"При включении какого интерфейса должен запускаться процесс скрипта DDNS."
+
 msgid "Password"
 msgstr "Пароль"
 
@@ -83,9 +90,3 @@ msgstr "мин"
 
 msgid "network"
 msgstr "сеть"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index b249490d522c97297a1680fdac4f4fc251d54048..1abaa8c6c86b76c88449e64c68a46c6bc57226a2 100644 (file)
@@ -1,6 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: diag_core\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-15 11:44+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -8,10 +9,9 @@ msgstr ""
 "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"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Configure Diagnostics"
index 3d48d98fd4058d83e95ff713152d237b7e2354e2..13d85e82ab6129a4c75d90c46c266d75cbadc817 100644 (file)
@@ -1,6 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: diag_devinfo\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-15 18:27+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -8,10 +9,9 @@ msgstr ""
 "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.4\n"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Actions"
@@ -196,6 +196,9 @@ msgstr "Сканировать поддерживаемые SIP-устройст
 msgid "Scanning Configuration"
 msgstr "Конфигурация сканирования"
 
+msgid "Scans for devices on specified networks."
+msgstr "Сканирует устройства в заданных сетях."
+
 msgid "Sleep Between Requests"
 msgstr "Пауза между запросами"
 
@@ -219,6 +222,3 @@ msgstr "Производитель"
 
 msgid "check other networks"
 msgstr "проверить другие сети"
-
-msgid "Scans for devices on specified networks."
-msgstr "Сканирует устройства в заданных сетях."
index 7a3d93f8d14d6599d605927dd71dc0000e5db7f9..afc10b96e14f91c3acc2d924dab75728e8dda2bb 100644 (file)
@@ -1,6 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: ffwizard\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-15 17:17+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -8,10 +9,9 @@ msgstr ""
 "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"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Allow to transfer anonymous statistics about this node"
index 7cd29568067cc3c97792bbb3088e277a78a19fcc..a4ba704f71b8fd4c6cd0af633550435c8a2adc7e 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index b3e4b130b33402d581de10e246292ea18aa089cd..c0dd5ab87c70e829c01a86009fccdc7020d2d100 100644 (file)
@@ -18,6 +18,9 @@ msgstr ""
 msgid "BSSID"
 msgstr "BSSID"
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr "Базовые настройки"
 
@@ -86,6 +89,9 @@ msgstr "ESSID"
 msgid "Edit index page"
 msgstr "Редактировать главную страницу"
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr "Ошибка"
 
@@ -107,6 +113,12 @@ msgstr "Шлюз"
 msgid "Go to"
 msgstr "Перейти"
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Здравствуйте и добро пожаловать в сеть"
 
@@ -119,6 +131,15 @@ msgstr "Домашняя страница"
 msgid "Hostname"
 msgstr "Имя хоста"
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr "Если выбрано, содержимое по умолчанию не будет показано."
 
@@ -149,6 +170,9 @@ msgstr "Сохранить конфигурацию"
 msgid "Latitude"
 msgstr "Широта"
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr "Загрузка"
 
@@ -200,6 +224,9 @@ msgstr "OLSR"
 msgid "Operator"
 msgstr "Оператор"
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr "Обзор"
 
@@ -230,6 +257,9 @@ msgstr "Профиль (эксперт)"
 msgid "Realname"
 msgstr "Имя"
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr "SSID"
 
@@ -261,6 +291,9 @@ msgstr "Статистика"
 msgid "Status"
 msgstr "Статус"
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr "Система"
 
@@ -320,6 +353,9 @@ msgstr "Время работы"
 msgid "Verify downloaded images"
 msgstr "Проверять загруженные образы"
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -330,6 +366,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr "Обзор беспроводных сетей"
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 79e3d842a9968b3545df12ac59aa5f46d8c663aa..51f1f6cd390512115d9b7b863aae3956d9a82a16 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index 32a5e65819243b32b17b5d383da916a108687250..8b080651b75fd314a7af4cef1ca135d67081a585 100644 (file)
@@ -10,11 +10,14 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr "Канал"
 
@@ -38,9 +41,18 @@ msgstr "DHCP автоматически назначит IP-адреса кли
 msgid "Enable DHCP"
 msgstr "Включить DHCP"
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr "Общие настройки"
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -53,9 +65,17 @@ msgstr "Интерфейсы"
 msgid "Mesh IP address"
 msgstr "IP-адрес ячейки"
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr "Мастер настройки ячеистой сети"
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr "Защитить LAN"
 
@@ -65,6 +85,9 @@ msgstr ""
 "Включите эту опцию, чтобы позволить другим клиентам использовать ваше "
 "подключение к интернету."
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr "Сделать интернет-подключение общедоступным"
 
@@ -83,6 +106,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr "Заданный IP-адрес не находится внутри ячеистой сети"
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index d1e52b8c29355c16c3721826c4c9f0e91c37b1c1..62ffaca8b361cb3fd4fa9fee9df7a67f51e14bd8 100644 (file)
@@ -1,16 +1,16 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: minidlna\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
+"Language: ru\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"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Language: ru\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-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Advanced Settings"
index f421383c026e28b0cab04096255d1cb8ecd2f865..dcc2e93d74e7f6d78b72b7f180b633a64c20bdd4 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index d3dde7f7c7e6b7ad5a6b3582f1e5321e540dd3bb..c12d9204eee14b67290f5267e4bdd142d09b8fd0 100644 (file)
@@ -1,6 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: multiwan\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-15 14:05+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -8,10 +9,9 @@ msgstr ""
 "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.4\n"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Attempts Before WAN Failover"
index bfdbed3ebd54fc742a6e4660fe6856955be5382d..229b6101ba5c91c9e75844e34365b4c5af22e2e2 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index 37a86817ae79a5367f6327dd5042e6c69544af50..5c0f66e9b791ea9b1373d01091cd327c174bd8c4 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
@@ -618,8 +618,8 @@ msgid "Topology"
 msgstr "Топология"
 
 msgid ""
-"Type of service value for the IP header of control traffic. Default is "
-"\"16\"."
+"Type of service value for the IP header of control traffic. Default is \"16"
+"\"."
 msgstr ""
 "Значение поля ToS IP -аголовка управляющего трафика. По умолчанию \"16\"."
 
index 6212fbf1efa9e2e8a3bdd6728d2f6d2a879a897d..7f8afc1c881a86c3d06b3c598cbbc30104c22c86 100644 (file)
@@ -3,15 +3,15 @@ msgstr ""
 "Project-Id-Version: LuCI: openvpn\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2012-08-16 20:01+0300\n"
+"PO-Revision-Date: 2012-11-01 21:58+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
 "Language: ru\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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
@@ -19,7 +19,7 @@ msgid "%s"
 msgstr "%s"
 
 msgid "'net30', 'p2p', or 'subnet'"
-msgstr "'net30', 'p2p', или 'subnet'"
+msgstr "'net30', 'p2p' или 'subnet'"
 
 msgid "Accept options pushed from server"
 msgstr "Принимать опции, отправленные с сервера"
@@ -382,7 +382,7 @@ msgstr "Пересогласовать ключ канала данных пос
 
 #, fuzzy
 msgid "Replay protection sliding window size"
-msgstr "Ð\97аÑ\89иÑ\82а Ð¾Ñ\82 Ð¿Ð¾Ð²Ñ\82оÑ\80а Ñ\81колÑ\8cзÑ\8fÑ\89его Ñ\80азмеÑ\80а Ð¾ÐºÐ½Ð°"
+msgstr "РазмеÑ\80 Ñ\81колÑ\8cзÑ\8fÑ\89его Ð¾ÐºÐ½Ð° Ð·Ð°Ñ\89иÑ\82Ñ\8b Ð¾Ñ\82 Ð¿Ð¾Ð²Ñ\82оÑ\80ов"
 
 msgid "Require explicit designation on certificate"
 msgstr "Требовать явного указания в сертификате"
index fcc402526535a98c382c97c844952dccff494265..71f30e9d5dff2bd154abc8095ba55bc777e44165 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index b40470f260fd5c85d1daabaac4b82ef7f7bb5f09..68a345f9ec294285ff91ce9f21d5579f11403a19 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index 151dca2ba5fe1ff60864150f700a88d64b9c2b9f..ae49c6dd8ff1dabd67ed6909ef3bbf30894905fe 100644 (file)
@@ -1,6 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: pbx-voicemail\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-15 17:42+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -8,10 +9,9 @@ msgstr ""
 "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.4\n"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Email Addresses that Receive Voicemail"
index 78e08abfa0d7db8b8a41e818511c680cd9f300c1..f1d49688a653c8c0e8ce24c30bd0a77854966e58 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index 7a6aa29b8ace990a8fd9374bf0529b4decad9464..ba0592a15c37d29074814363892421d0f201038c 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index 80cf47174cba311e30d58c61e2492bb5a6be80c2..37cc9428dd2491b3756278b3be8e0e5145132cc6 100644 (file)
@@ -1,6 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: radvd\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-16 11:37+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -8,10 +9,9 @@ msgstr ""
 "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.4\n"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "6to4 interface"
index 6dcc5472f921439828d21fd536f0f7bc5b5b9a6e..82906e36edc26490fe2f2747f608eedf0a18861a 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index d7ccb0cacc81308aed2d86de9583726705024fe4..14fa6b586c7553efa45c3a1edaecbb0b2d8ac299 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index ac2358106a1901693c51704b075bc7dd39911acb..e0ec9d976b2123845a31eed752c2cd5114887b3b 100644 (file)
@@ -70,7 +70,7 @@ msgid "Collectd Settings"
 msgstr "Настройки Collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -116,6 +116,9 @@ msgstr "Использование диска"
 msgid "Disk Usage"
 msgstr "Использование диска"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Показать за промежуток »"
 
@@ -194,12 +197,6 @@ msgstr "Игнорировать адреса-источники"
 msgid "Incoming interface"
 msgstr "Входящий интерфейс"
 
-msgid "Installed network plugins:"
-msgstr "Установленные сетевые модули:"
-
-msgid "Installed output plugins:"
-msgstr "Установленные модули вывода:"
-
 msgid "Interface Plugin Configuration"
 msgstr "Конфигурация модуля Interface"
 
@@ -295,13 +292,6 @@ msgstr "Конфигурация модуля Network"
 msgid "Network plugins"
 msgstr "Сетевые модули"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-"Сетевые модули используются для сбора информации об открытых TCP-"
-"соединениях, трафике, правилах iptables и т.п."
-
 msgid "Network protocol"
 msgstr "Сетевой протокол"
 
@@ -326,16 +316,6 @@ msgstr "Исходящий интерфейс"
 msgid "Output plugins"
 msgstr "Модули вывода"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-"Модули вывода обеспечивают различные варианты сохранения собранных данных. "
-"Можно включить несколько модулей, например, чтобы сохранить собранные данные "
-"в базе данных RRD и передать их по сети другим инстанциям collectd."
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -437,13 +417,6 @@ msgstr "Загрузка системы"
 msgid "System plugins"
 msgstr "Системные модули"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-"Системные модули, собирающие данные о состоянии системы и использовании "
-"ресурсов устройства:"
-
 msgid "TCP Connections"
 msgstr "TCPConns"
 
@@ -459,6 +432,9 @@ msgstr "TTL для ping-пакетов"
 msgid "Table"
 msgstr "Таблица"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -612,11 +588,6 @@ msgstr ""
 "Модуль UnixSock создает Unix-сокет, который может быть использован для "
 "получения статистики от работающего сервиса collectd."
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr "Модуль Wireless собирает статистику о силе, шуме и качестве сигнала."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -633,6 +604,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr "Пытаться определять имя хоста"
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -651,9 +631,6 @@ msgstr "Расширенная статистика"
 msgid "Wireless"
 msgstr "Wireless"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Конфигурация модуля Wireless"
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr "Конфигурация модуля Iwinfo"
 
@@ -678,3 +655,41 @@ msgstr "секунды; разделяются пробелом"
 
 msgid "server interfaces"
 msgstr "интерфейсы сервера"
+
+#~ msgid "Installed network plugins:"
+#~ msgstr "Установленные сетевые модули:"
+
+#~ msgid "Installed output plugins:"
+#~ msgstr "Установленные модули вывода:"
+
+#~ msgid ""
+#~ "Network plugins are used to collect information about open tcp "
+#~ "connections, interface traffic, iptables rules etc."
+#~ msgstr ""
+#~ "Сетевые модули используются для сбора информации об открытых "
+#~ "TCP-соединениях, трафике, правилах iptables и т.п."
+
+#~ msgid ""
+#~ "Output plugins provide different possibilities to store collected data. "
+#~ "It is possible to enable multiple plugin at one, for example to store "
+#~ "collected data in rrd databases and to transmit the data over the network "
+#~ "to other collectd instances."
+#~ msgstr ""
+#~ "Модули вывода обеспечивают различные варианты сохранения собранных данных. "
+#~ "Можно включить несколько модулей, например, чтобы сохранить собранные данные "
+#~ "в базе данных RRD и передать их по сети другим инстанциям collectd."
+
+#~ msgid ""
+#~ "System plugins collecting values about system state and ressource usage "
+#~ "on the device.:"
+#~ msgstr ""
+#~ "Системные модули, собирающие данные о состоянии системы и использовании "
+#~ "ресурсов устройства:"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr "Модуль Wireless собирает статистику о силе, шуме и качестве сигнала."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Конфигурация модуля Wireless"
index fc8b2bed3078f3ca4d8e383e68f7720564861cfc..f9a3c23d1677db7f735971964f6fe46a0e3a87f3 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index 862c638509f7c0dbdb62a45d5fa67c4a0f9ed387..fac9510a5918b1b9662e6bfad525af72cf487957 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index 4449ff2ca9737b08e3c1446093a1be52d7b09f83..6174930389aec1dcc2632769aae5fd6964a4e3f7 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index 43a24d46167ead9cb9e2915255f4c2b4c676fd3b..ac08e946d5b86951c5bf4146c5fb0a1b1b10c4d9 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index c6678119fdf3a94f1061821ad7b178c9c50d2f5e..c9e859c6de06b01760aa546d637540ff02ab864f 100644 (file)
@@ -3,6 +3,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: uvc_streamer\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-15 11:46+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -10,10 +11,9 @@ msgstr ""
 "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.4\n"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 #. Frames per second
index d41bc166e332ba28b8673cfc81781ae38fc26e2f..5254ca1ee1c0f226d2f8ad6481fcf5770b33b233 100644 (file)
@@ -1,6 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: vnstat\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-15 11:48+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -8,10 +9,9 @@ msgstr ""
 "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.4\n"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Configuration"
index cab6db7a1e5ac7903eb973fbc1d286c5592032cc..b6631dfc05614afaf219994309985a4e6c209435 100644 (file)
@@ -1,6 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: voice_core\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-15 11:23+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -8,10 +9,9 @@ msgstr ""
 "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"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Phones"
index b5fd769e44da01a67e45be3d253b0eff8d879052..5c98de0157d8d322308bfefdef766736b64f24a9 100644 (file)
@@ -1,6 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: voice_diag\n"
+"POT-Creation-Date: \n"
 "PO-Revision-Date: 2012-08-15 11:22+0300\n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
@@ -8,10 +9,9 @@ msgstr ""
 "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.4\n"
-"POT-Creation-Date: \n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Diagnostics"
index 0d5442c66b2fa519a7f51aa4e1784fa6ec7452ef..828f65d66a19449222412b41b483d3a8c65ab9a7 100644 (file)
@@ -1,16 +1,16 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: LuCI: watchcat\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
 "Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n"
 "Language-Team: Russian <x12ozmouse@ya.ru>\n"
+"Language: ru\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"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Language: ru\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-Poedit-SourceCharset: UTF-8\n"
 
 msgid "Forced reboot delay"
index 88122eb4b2ca5f05eaa98901da1e43cf2305e35a..69219971f9b0f79ca19f7f27127472c7bfbf7c9c 100644 (file)
@@ -12,8 +12,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index ba78908945b974ffb3e978a9c17ac9dde650008f..ac6b6591842e0143aee3e5b1e1b7db780fb32596 100644 (file)
@@ -10,8 +10,8 @@ msgstr ""
 "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.4\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
index ca644fc06901859cb065a39d93080b25f038390d..833356fc37f2eea32597a4574a5328e8e499f957 100644 (file)
@@ -220,6 +220,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr ""
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr ""
 
@@ -804,6 +809,9 @@ msgstr ""
 msgid "Force"
 msgstr ""
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2546,9 +2554,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr ""
-
 msgid "Warning"
 msgstr ""
 
diff --git a/po/templates/commands.pot b/po/templates/commands.pot
new file mode 100644 (file)
index 0000000..5d2ffae
--- /dev/null
@@ -0,0 +1,84 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index d967c9965bf99731ac1b23b042cecf8b6e9e6225..a213d4b49a3c7b7167236211294e0bc4e76b363f 100644 (file)
@@ -21,6 +21,9 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr ""
 
@@ -36,6 +39,9 @@ msgstr ""
 msgid "Network"
 msgstr ""
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr ""
 
@@ -65,9 +71,3 @@ msgstr ""
 
 msgid "network"
 msgstr ""
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 907fdd33ec32ee1dcbf8de71d4246c69b5f0bb5a..350466c0d27c989c8261e4b2254a05c4b5234a4b 100644 (file)
@@ -171,6 +171,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -194,6 +197,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index 820104a424c9ac0c5b1008e048d120cd61a9196b..270c94b99c6c8d3c617fda2e86dc200cc4f2d2dc 100644 (file)
@@ -4,6 +4,9 @@ msgstr "Content-Type: text/plain; charset=UTF-8"
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -70,6 +73,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -91,6 +97,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr ""
 
@@ -103,6 +115,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -129,6 +150,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -180,6 +204,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -210,6 +237,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -239,6 +269,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -288,6 +321,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -296,6 +332,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index fe7464e65a89ada0f9bb3686a5c3585e25324f7d..63a656317c21f11fa7eb6e3e3ea5941cad884af6 100644 (file)
@@ -1,6 +1,9 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=UTF-8"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -22,9 +25,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -35,9 +47,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -45,6 +65,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -58,6 +81,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 400aa425e40fc3b457f3cded4df7b9335d1fc90c..c15325c753cdea96df00a3a38e1f1c710ec84091 100644 (file)
@@ -519,8 +519,8 @@ msgid "Topology"
 msgstr ""
 
 msgid ""
-"Type of service value for the IP header of control traffic. Default is "
-"\"16\"."
+"Type of service value for the IP header of control traffic. Default is \"16"
+"\"."
 msgstr ""
 
 msgid "Unable to connect to the OLSR daemon!"
index 43cef28aaa0393803ecab3c2e1a127ec979e9288..5f2e9dd2c5e92dc5d79f9e7ea395cfada21e7c15 100644 (file)
@@ -56,7 +56,7 @@ msgid "Collectd Settings"
 msgstr ""
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -100,6 +100,9 @@ msgstr ""
 msgid "Disk Usage"
 msgstr ""
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr ""
 
@@ -170,12 +173,6 @@ msgstr ""
 msgid "Incoming interface"
 msgstr ""
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr ""
 
@@ -269,11 +266,6 @@ msgstr ""
 msgid "Network plugins"
 msgstr ""
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr ""
 
@@ -298,13 +290,6 @@ msgstr ""
 msgid "Output plugins"
 msgstr ""
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr ""
 
@@ -404,11 +389,6 @@ msgstr ""
 msgid "System plugins"
 msgstr ""
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr ""
 
@@ -424,6 +404,9 @@ msgstr ""
 msgid "Table"
 msgstr ""
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -539,11 +522,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -556,6 +534,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr ""
 
@@ -574,9 +561,6 @@ msgstr ""
 msgid "Wireless"
 msgstr ""
 
-msgid "Wireless Plugin Configuration"
-msgstr ""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
index 834f75be7d0134ccc2d244d317c5b6fbdc9117c8..1549e3bc46c87ca6e8620d47e14d86f09e3739df 100644 (file)
@@ -3,6 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -233,6 +234,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr ""
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr ""
 
@@ -817,6 +823,9 @@ msgstr ""
 msgid "Force"
 msgstr ""
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2559,9 +2568,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr ""
-
 msgid "Warning"
 msgstr ""
 
diff --git a/po/tr/commands.po b/po/tr/commands.po
new file mode 100644 (file)
index 0000000..4132274
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index d649a6992ae3e85f0b9cb4d8658fafb1b9cb2584..cfe9d72c23e1197972deffffe8705a87022a4695 100644 (file)
@@ -34,6 +34,9 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr ""
 
@@ -49,6 +52,9 @@ msgstr ""
 msgid "Network"
 msgstr ""
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr ""
 
@@ -80,9 +86,3 @@ msgstr ""
 
 msgid "network"
 msgstr ""
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index a828dfcb7ebc2b56b9594f5c74acba8f44b9a1f1..32516758bc8674a01d6ba40a847827c8b5a61383 100644 (file)
@@ -178,6 +178,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -201,6 +204,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index a2a1c53ac6b5f6bbe4474b5d3dc3f74becaccdcd..1fc8b22c0e72ac68f208a17e9bf0dd48a0e6358d 100644 (file)
@@ -3,6 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -11,6 +12,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -77,6 +81,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -98,6 +105,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr ""
 
@@ -110,6 +123,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -136,6 +158,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -187,6 +212,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -217,6 +245,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -246,6 +277,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -295,6 +329,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -303,6 +340,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 3af98f81c11bae607c2f5f090d61e79f5e1debac..b0fcb64d27fd48d28314225fbf4e170e5c556268 100644 (file)
@@ -8,6 +8,9 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -29,9 +32,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -42,9 +54,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -52,6 +72,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -65,6 +88,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 26a258507ca0856c6d6e6fffa2a1f50b45321dee..d963dd89d8759e1a5b2b049130534c26d24fbbc5 100644 (file)
@@ -3,6 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -63,7 +64,7 @@ msgid "Collectd Settings"
 msgstr ""
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -107,6 +108,9 @@ msgstr ""
 msgid "Disk Usage"
 msgstr ""
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr ""
 
@@ -177,12 +181,6 @@ msgstr ""
 msgid "Incoming interface"
 msgstr ""
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr ""
 
@@ -276,11 +274,6 @@ msgstr ""
 msgid "Network plugins"
 msgstr ""
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr ""
 
@@ -305,13 +298,6 @@ msgstr ""
 msgid "Output plugins"
 msgstr ""
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr ""
 
@@ -411,11 +397,6 @@ msgstr ""
 msgid "System plugins"
 msgstr ""
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr ""
 
@@ -431,6 +412,9 @@ msgstr ""
 msgid "Table"
 msgstr ""
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -546,11 +530,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -563,6 +542,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr ""
 
@@ -581,9 +569,6 @@ msgstr ""
 msgid "Wireless"
 msgstr ""
 
-msgid "Wireless Plugin Configuration"
-msgstr ""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
index 78869a5248841937952aa3eadc737d4a359cf114..979e5d4ef1b7660339ed6b3c61057f84d520631c 100644 (file)
@@ -8,8 +8,8 @@ msgstr ""
 "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.4\n"
 
 msgid "(%d minute window, %d second interval)"
@@ -261,6 +261,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr "Допустимий діапазон — від 1 до 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "Якщо ви залишите це невибраним, буде створена додаткова мережа."
 
@@ -881,6 +886,9 @@ msgstr "Заливаємо..."
 msgid "Force"
 msgstr "Примусово"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr "Примусово CCMP (AES)"
 
@@ -2729,9 +2737,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr "Очікування маршрутизатора..."
-
 msgid "Warning"
 msgstr "Застереження"
 
@@ -2913,6 +2918,9 @@ msgstr "так"
 msgid "« Back"
 msgstr "« Назад"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "Очікування маршрутизатора..."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "Увімкнути вбудований NTP-сервер"
 
diff --git a/po/uk/commands.po b/po/uk/commands.po
new file mode 100644 (file)
index 0000000..ad2d1e9
--- /dev/null
@@ -0,0 +1,92 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\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"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index dc1676183f998ff26296638408419c0263782ce0..f8d57fb0e0063f0ec0f221121446aca9d0d41a27 100644 (file)
@@ -12,8 +12,8 @@ msgstr ""
 "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.4\n"
 
 msgid "Check for changed IP every"
@@ -38,6 +38,9 @@ msgstr ""
 msgid "Enable"
 msgstr "Увімкнути"
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "Примусово оновлювати кожні"
 
@@ -53,6 +56,9 @@ msgstr "Інтерфейс"
 msgid "Network"
 msgstr "Мережа"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr "Пароль"
 
@@ -84,9 +90,3 @@ msgstr "хв"
 
 msgid "network"
 msgstr "мережа"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index 3dce9c92cc95f67de98ead1dd989fed33461e7bc..9fa5e3cc17761ad92addb812ba64c511aa30ed5b 100644 (file)
@@ -6,8 +6,8 @@ msgstr ""
 "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"
 
 msgid "Actions"
 msgstr ""
@@ -179,6 +179,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -202,6 +205,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index 5cd3d47fbddc2fabd39fb2358bdd006d3ea7a072..83421867fe3f1f36d48bfba980dcc164ab5b8805 100644 (file)
@@ -3,6 +3,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -12,6 +13,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -78,6 +82,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -99,6 +106,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr ""
 
@@ -111,6 +124,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -137,6 +159,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -188,6 +213,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -218,6 +246,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -247,6 +278,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -296,6 +330,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -304,6 +341,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index 21f6b385806286591699e156763db829e7e23079..9722dd068c512aeb059e45b2421b7a89e2eb962b 100644 (file)
@@ -6,8 +6,11 @@ msgstr ""
 "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"
+
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
 
 msgid "Channel"
 msgstr ""
@@ -30,9 +33,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -43,9 +55,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -53,6 +73,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -66,6 +89,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 17b0dcb28f8d7d770a5729e173508162f981ba94..38d08f2278a1872d6126d72a9f327c282e9409d6 100644 (file)
@@ -5,6 +5,7 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -66,7 +67,7 @@ msgid "Collectd Settings"
 msgstr ""
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -110,6 +111,9 @@ msgstr ""
 msgid "Disk Usage"
 msgstr ""
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr ""
 
@@ -180,12 +184,6 @@ msgstr ""
 msgid "Incoming interface"
 msgstr ""
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr ""
 
@@ -279,11 +277,6 @@ msgstr ""
 msgid "Network plugins"
 msgstr ""
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr ""
 
@@ -308,13 +301,6 @@ msgstr ""
 msgid "Output plugins"
 msgstr ""
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr ""
 
@@ -414,11 +400,6 @@ msgstr ""
 msgid "System plugins"
 msgstr ""
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr ""
 
@@ -434,6 +415,9 @@ msgstr ""
 msgid "Table"
 msgstr ""
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -549,11 +533,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -566,6 +545,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr ""
 
@@ -584,9 +572,6 @@ msgstr ""
 msgid "Wireless"
 msgstr ""
 
-msgid "Wireless Plugin Configuration"
-msgstr ""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
index 157587b797ef652941a83a91ec71b454e50123cb..692b0e1e787d6c5276d4f1507e43a4267beae4e4 100644 (file)
@@ -6,6 +6,7 @@ msgstr ""
 "PO-Revision-Date: 2009-08-14 12:23+0200\n"
 "Last-Translator: Hong Phuc Dang <dhppat@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -233,6 +234,11 @@ msgstr ""
 msgid "Allowed range is 1 to 65535"
 msgstr ""
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr ""
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr ""
 
@@ -828,6 +834,9 @@ msgstr ""
 msgid "Force"
 msgstr "Force"
 
+msgid "Force 40MHz mode"
+msgstr ""
+
 msgid "Force CCMP (AES)"
 msgstr ""
 
@@ -2605,9 +2614,6 @@ msgstr ""
 msgid "Waiting for command to complete..."
 msgstr ""
 
-msgid "Waiting for router..."
-msgstr ""
-
 msgid "Warning"
 msgstr ""
 
diff --git a/po/vi/commands.po b/po/vi/commands.po
new file mode 100644 (file)
index 0000000..4132274
--- /dev/null
@@ -0,0 +1,91 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 856faf8a364086a34f58ca22452c5a6df4f4ad3c..6a3ecd5b1ec6c99db1131eae93cae215df97fbac 100644 (file)
@@ -39,6 +39,9 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "Buộc cập nhật mỗi"
 
@@ -55,6 +58,9 @@ msgstr ""
 msgid "Network"
 msgstr ""
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr ""
 
@@ -87,9 +93,3 @@ msgstr ""
 
 msgid "network"
 msgstr ""
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index a828dfcb7ebc2b56b9594f5c74acba8f44b9a1f1..32516758bc8674a01d6ba40a847827c8b5a61383 100644 (file)
@@ -178,6 +178,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -201,6 +204,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index 621d9bc2156cb1424fc84de76e597eae96d22328..a66828770d58cb993a0c1d196209bb3474a80e1a 100644 (file)
@@ -15,6 +15,9 @@ msgstr ""
 msgid "BSSID"
 msgstr ""
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr ""
 
@@ -81,6 +84,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -102,6 +108,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr "Xin chào và chào mừng gia nhập mạng lưới của"
 
@@ -114,6 +126,15 @@ msgstr ""
 msgid "Hostname"
 msgstr "Hostname"
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -143,6 +164,9 @@ msgstr "Giữ cấu hình"
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -194,6 +218,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -224,6 +251,9 @@ msgstr ""
 msgid "Realname"
 msgstr "Tên thật "
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -253,6 +283,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -302,6 +335,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr "Xác minh hình ảnh đã tải"
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -310,6 +346,9 @@ msgstr "Chúng tôi là phát triển mạng lưới nguồn mở không dây đ
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index f035cf46d9281104740ef156f202766ba86cfb97..180d771c8bd90c54e78fcfe71776430835a9622a 100644 (file)
@@ -1,3 +1,6 @@
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr ""
 
@@ -19,9 +22,18 @@ msgstr ""
 msgid "Enable DHCP"
 msgstr ""
 
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
 msgid "General Settings"
 msgstr ""
 
+msgid "IPv6 Settings"
+msgstr ""
+
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
 msgstr ""
@@ -32,9 +44,17 @@ msgstr ""
 msgid "Mesh IP address"
 msgstr ""
 
+msgid "Mesh IPv6 address"
+msgstr ""
+
 msgid "Mesh Wizard"
 msgstr ""
 
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
+msgstr ""
+
 msgid "Protect LAN"
 msgstr ""
 
@@ -42,6 +62,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -55,6 +78,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 0c3f77621e1f941ba51d2d697d90094033d73881..c853c8a3f0a05aa93d6f2d3fb8d8dc47c56b0325 100644 (file)
@@ -8,6 +8,7 @@ msgstr ""
 "PO-Revision-Date: 2009-08-16 05:50+0200\n"
 "Last-Translator: Hong Phuc Dang <dhppat@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -68,11 +69,11 @@ msgid "Collectd Settings"
 msgstr "Những cài đặt collectd"
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
-"Collectd là một daeomon nhỏ để thu thập dữ liệu từ nhiều nguồn thông qua các "
+"Collectd là một daemon nhỏ để thu thập dữ liệu từ nhiều nguồn thông qua các "
 "plugins khác nhau. Trên trang này, bạn có thể thay đổi cài đặt tổng quát cho "
 "cai collectd daemon. "
 
@@ -115,6 +116,9 @@ msgstr "Khoảng trống trên đĩa"
 msgid "Disk Usage"
 msgstr "Disk Usage"
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr "Display timespan"
 
@@ -192,12 +196,6 @@ msgstr "Lờ đi những địa chỉ nguồn"
 msgid "Incoming interface"
 msgstr "Giao diện đang tới"
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr "Cấu hình giao diện plugin"
 
@@ -291,11 +289,6 @@ msgstr "Cấu hình network plugin"
 msgid "Network plugins"
 msgstr "Network plugins"
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr "Network protocol"
 
@@ -320,13 +313,6 @@ msgstr "Giao diện ra ngoài"
 msgid "Output plugins"
 msgstr "Output plugins"
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr "Ping"
 
@@ -426,11 +412,6 @@ msgstr "System Load"
 msgid "System plugins"
 msgstr "System plugins"
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr "Kết nối TCP"
 
@@ -446,6 +427,9 @@ msgstr "TTl cho gói ping"
 msgid "Table"
 msgstr "Table"
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -606,13 +590,6 @@ msgstr ""
 "Unixsock plugin tạo một unix socket mà có thể dùng để đọc dữ liệu thu thập "
 "từ một collectd instance đang vận hành. "
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-"Cấu hình wireless plugin thu thập thống kê về độ mạnh của tín hiệu wireless, "
-"noise và chất lượng."
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -626,6 +603,15 @@ msgstr "Section này định nghĩa servers thu thập dữ liệu địa phươ
 msgid "Try to lookup fully qualified hostname"
 msgstr "Thử tra cứu những tên host đủ điều kiện"
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr "UnixSock"
 
@@ -644,9 +630,6 @@ msgstr "Verbose monitoring"
 msgid "Wireless"
 msgstr "Mạng không dây"
 
-msgid "Wireless Plugin Configuration"
-msgstr "Cấu hình Wireless Plugin "
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
@@ -670,3 +653,13 @@ msgstr "giây; nhiều phân tách bởi khoảng trống"
 
 msgid "server interfaces"
 msgstr "giao diện server"
+
+#~ msgid ""
+#~ "The wireless plugin collects statistics about wireless signal strength, "
+#~ "noise and quality."
+#~ msgstr ""
+#~ "Cấu hình wireless plugin thu thập thống kê về độ mạnh của tín hiệu wireless, "
+#~ "noise và chất lượng."
+
+#~ msgid "Wireless Plugin Configuration"
+#~ msgstr "Cấu hình Wireless Plugin "
index 4dad89eeeed94408f13781c495bc6c26ecf3a147..50af97cd125268ecd5f8d7f142c86a59ce1d81ed 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-10-06 11:33+0200\n"
+"PO-Revision-Date: 2012-11-23 11:54+0200\n"
 "Last-Translator: phantasm131 <phantasm131@gmail.com>\n"
 "Language-Team: QQ Group:75543259\n"
 "Language: zh_CN\n"
@@ -237,6 +237,11 @@ msgstr "允许127.0.0.0/8回环范围内的上行响应,例如:RBL服务"
 msgid "Allowed range is 1 to 65535"
 msgstr "允许的范围:1 到 65535"
 
+msgid ""
+"Always use 40MHz channels even if the secondary channel overlaps. Using this "
+"option does not comply with IEEE 802.11n-2009!"
+msgstr "强制启用40MHz频宽并忽略辅助信道重叠。此选项不兼容IEEE 802.11n-2009!"
+
 msgid "An additional network will be created if you leave this unchecked."
 msgstr "取消选中将会另外创建一个新网络,而不会覆盖当前网络设置"
 
@@ -828,6 +833,9 @@ msgstr "刷写中..."
 msgid "Force"
 msgstr "强制开启DHCP"
 
+msgid "Force 40MHz mode"
+msgstr "强制40MHz频宽"
+
 msgid "Force CCMP (AES)"
 msgstr "强制使用CCMP(AES)加密"
 
@@ -2240,8 +2248,8 @@ msgid ""
 "\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
 "samp>)"
 msgstr ""
-"用于格式化存储器的文件系统,(<abbr title=\"for example\">例如</abbr> <samp><abbr title=\"Third "
-"Extended Filesystem\">ext4</abbr></samp>)"
+"用于格式化存储器的文件系统,(<abbr title=\"for example\">例如</abbr> "
+"<samp><abbr title=\"Third Extended Filesystem\">ext4</abbr></samp>)"
 
 msgid ""
 "The flash image was uploaded. Below is the checksum and file size listed, "
@@ -2608,9 +2616,6 @@ msgstr "正在应用更改..."
 msgid "Waiting for command to complete..."
 msgstr "正在执行命令..."
 
-msgid "Waiting for router..."
-msgstr "等待路由器..."
-
 msgid "Warning"
 msgstr "警告"
 
@@ -2785,29 +2790,32 @@ msgstr "是"
 msgid "« Back"
 msgstr "« 后退"
 
+#~ msgid "Waiting for router..."
+#~ msgstr "等待路由器..."
+
 #~ msgid "Enable builtin NTP server"
 #~ msgstr "开启内置NTP服务器"
 
 #~ msgid "Active Leases"
-#~ msgstr "活动客户端"
+#~ msgstr "活动的租约"
 
 #~ msgid "Open"
-#~ msgstr "开启"
+#~ msgstr "打开"
 
 #~ msgid "KB"
 #~ msgstr "KB"
 
 #~ msgid "Bit Rate"
-#~ msgstr "传输速率"
+#~ msgstr "比特率"
 
 #~ msgid "Configuration / Apply"
-#~ msgstr "Configuration / Apply"
+#~ msgstr "设置 /应用"
 
 #~ msgid "Configuration / Changes"
-#~ msgstr "Configuration / Changes"
+#~ msgstr "设置 / 修改"
 
 #~ msgid "Configuration / Revert"
-#~ msgstr "Configuration / Revert"
+#~ msgstr "设置 / 重置"
 
 #~ msgid "MAC"
 #~ msgstr "MAC"
@@ -2819,16 +2827,18 @@ msgstr "« 后退"
 #~ msgstr "<abbr title=\"Encrypted\">加密</abbr>"
 
 #~ msgid "<abbr title=\"Wireless Local Area Network\">WLAN</abbr>-Scan"
-#~ msgstr "<abbr title=\"Wireless Local Area Network\">WLAN</abbr>-搜索"
+#~ msgstr "搜索<abbr title=\"Wireless Local Area Network\">WLAN</abbr>"
 
 #~ msgid ""
 #~ "Choose the network you want to attach to this wireless interface. Select "
 #~ "<em>unspecified</em> to not attach any network or fill out the "
 #~ "<em>create</em> field to define a new network."
-#~ msgstr "此无线接口的网络。填写<em>创建</em>栏可新建网络。"
+#~ msgstr ""
+#~ "请选择你需要链接到无线网络接口的网络. 如果不链接到任何网络请选择 <em>未指"
+#~ "定</em>,如果需要创建新网络请点<em>创建</em>."
 
 #~ msgid "Create Network"
-#~ msgstr "Create Network"
+#~ msgstr "创建一个网络"
 
 #~ msgid "Link"
 #~ msgstr "链接"
@@ -2840,16 +2850,17 @@ msgstr "« 后退"
 #~ msgstr "Power"
 
 #~ msgid "Wifi networks in your local environment"
-#~ msgstr "Wifi networks in your local environment"
+#~ msgstr "扫描到的无线热点"
 
 #~ msgid ""
 #~ "<abbr title=\"Classless Inter-Domain Routing\">CIDR</abbr>-Notation: "
 #~ "address/prefix"
 #~ msgstr ""
-#~ "<abbr title=\"Classless Inter-Domain Routing\">CIDR</abbr>-标识:地址/前缀"
+#~ "<abbr title=\"Classless Inter-Domain Routing\">CIDR</abbr>-Notation: "
+#~ "address/prefix"
 
 #~ msgid "<abbr title=\"Domain Name System\">DNS</abbr>-Server"
-#~ msgstr "<abbr title=\"Domain Name System\">DNS</abbr>-Server"
+#~ msgstr "<abbr title=\"Domain Name System\">DNS</abbr>-服务器"
 
 #~ msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Broadcast"
 #~ msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-广播"
@@ -2861,14 +2872,13 @@ msgstr "« 后退"
 #~ msgstr "IP-Aliases"
 
 #~ msgid "IPv6 Setup"
-#~ msgstr "IPv6设置"
+#~ msgstr "IPv6 设置"
 
 #~ msgid ""
 #~ "Note: If you choose an interface here which is part of another network, "
 #~ "it will be moved into this network."
 #~ msgstr ""
-#~ "Note: If you choose an interface here which is part of another network, "
-#~ "it will be moved into this network."
+#~ "注意:当你选择一个已经存在与一个网络中的接口时,它将会被移除那个网络。"
 
 #~ msgid ""
 #~ "Really delete this interface? The deletion cannot be undone!\\nYou might "
@@ -2911,13 +2921,10 @@ msgstr "« 后退"
 #~ "the next greater network like the internet and other ports for a local "
 #~ "network."
 #~ msgstr ""
-#~ "The network ports on your router can be combined to several <abbr title="
-#~ "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
-#~ "communicate directly with each other. <abbr title=\"Virtual Local Area "
-#~ "Network\">VLAN</abbr>s are often used to separate different network "
-#~ "segments. Often there is by default one Uplink port for a connection to "
-#~ "the next greater network like the internet and other ports for a local "
-#~ "network."
+#~ "本设备可以划分为多个<abbr title=\"Virtual Local Area Network\">VLAN</"
+#~ "abbr>,并支持电脑间的直接通讯;<abbr title=\"Virtual Local Area Network"
+#~ "\">VLAN</abbr>也常用于分割不同网段;默认通常是一条上传端口连接ISP,其余端"
+#~ "口为本地子网。"
 
 #~ msgid "Enable buffering"
 #~ msgstr "开启缓冲"
@@ -3226,7 +3233,7 @@ msgstr "« 后退"
 #~ msgstr "空闲"
 
 #~ msgid "static"
-#~ msgstr "静态IP"
+#~ msgstr "静态"
 
 #~ msgid ""
 #~ "<abbr title=\"Lua Configuration Interface\">LuCI</abbr> is a collection "
@@ -3702,4 +3709,4 @@ msgstr "« 后退"
 #~ msgstr "服务"
 
 #~ msgid "Statistics"
-#~ msgstr "统计"
+#~ msgstr "统计信息"
diff --git a/po/zh_CN/commands.po b/po/zh_CN/commands.po
new file mode 100644 (file)
index 0000000..6fbb983
--- /dev/null
@@ -0,0 +1,90 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "A short textual description of the configured command"
+msgstr ""
+
+msgid "Access command with"
+msgstr ""
+
+msgid ""
+"Allow executing the command and downloading its output without prior "
+"authentication"
+msgstr ""
+
+msgid "Allow the user to provide additional command line arguments"
+msgstr ""
+
+msgid "Arguments:"
+msgstr ""
+
+msgid "Binary data not displayed, download instead."
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Command"
+msgstr ""
+
+msgid "Command failed"
+msgstr ""
+
+msgid "Command line to execute"
+msgstr ""
+
+msgid "Command successful"
+msgstr ""
+
+msgid "Command:"
+msgstr ""
+
+msgid "Configure"
+msgstr ""
+
+msgid "Custom Commands"
+msgstr ""
+
+msgid "Custom arguments"
+msgstr ""
+
+msgid "Dashboard"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Download"
+msgstr ""
+
+msgid "Failed to execute command!"
+msgstr ""
+
+msgid "Link"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Public access"
+msgstr ""
+
+msgid "Run"
+msgstr ""
+
+msgid ""
+"This page allows you to configure custom shell commands which can be easily "
+"invoked from the web interface."
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
index 5b96eeb6992c90fd267bebac2545c56c1fcdd4ee..6dbf5a234ed0098bde123e2cf1544aa6af73700c 100644 (file)
@@ -34,6 +34,9 @@ msgstr ""
 msgid "Enable"
 msgstr "启用"
 
+msgid "Event interface"
+msgstr ""
+
 msgid "Force update every"
 msgstr "强制更新间隔"
 
@@ -49,6 +52,9 @@ msgstr "接口"
 msgid "Network"
 msgstr "网络"
 
+msgid "On which interface up should start the ddns script process."
+msgstr ""
+
 msgid "Password"
 msgstr "密码"
 
@@ -80,9 +86,3 @@ msgstr "分"
 
 msgid "network"
 msgstr "网络"
-
-msgid "Event interface"
-msgstr ""
-
-msgid "On which interface up should start the ddns script process."
-msgstr ""
index d75c89748624978712b0d6fd8bbbc53ab423c467..7346ef98ca4fa46e54c334f6342ebc6565e778cf 100644 (file)
@@ -181,6 +181,9 @@ msgstr ""
 msgid "Scanning Configuration"
 msgstr ""
 
+msgid "Scans for devices on specified networks."
+msgstr ""
+
 msgid "Sleep Between Requests"
 msgstr ""
 
@@ -204,6 +207,3 @@ msgstr ""
 
 msgid "check other networks"
 msgstr ""
-
-msgid "Scans for devices on specified networks."
-msgstr ""
index ef0c77d217b481f45d083163b0282114d9ff79db..0174bf13ec8e2c1d2ef311b148b1a2aab73ace87 100644 (file)
@@ -399,8 +399,10 @@ msgid ""
 "forwarded traffic between different networks within the zone. <em>Covered "
 "networks</em> specifies which available networks are member of this zone."
 msgstr ""
-"本节定义 %q 的通用属性, <em>入站数据</em> 和 <em>出站数据</em>规则用于设置数据包“进”和“出”路由器(某个接口)默认的转发原则"
-",<em>转发</em>规则用于特定(一个或多个)区域的不同子网之间的数据包转发。<em>覆盖网络</em>选择从属于这个区域的网络。"
+"本节定义 %q 的通用属性, <em>入站数据</em> 和 <em>出站数据</em>规则用于设置数"
+"据包“进”和“出”路由器(某个接口)默认的转发原则,<em>转发</em>规则用于特定(一"
+"个或多个)区域的不同子网之间的数据包转发。<em>覆盖网络</em>选择从属于这个区域"
+"的网络。"
 
 msgid "To %s at %s on <var>this device</var>"
 msgstr "到 %s at %s 位于<var>本设备</var>"
index fc3d68f909c7449453fc2570eb17db09ebf1c7a8..0850bbe39480e54732e330fefdb72396d1cc0f46 100644 (file)
@@ -16,6 +16,9 @@ msgstr ""
 msgid "BSSID"
 msgstr "BSSID"
 
+msgid "Bad (ETX > 10)"
+msgstr ""
+
 msgid "Basic Settings"
 msgstr "基础设置"
 
@@ -82,6 +85,9 @@ msgstr ""
 msgid "Edit index page"
 msgstr ""
 
+msgid "Enable IPv6"
+msgstr ""
+
 msgid "Error"
 msgstr ""
 
@@ -103,6 +109,12 @@ msgstr ""
 msgid "Go to"
 msgstr ""
 
+msgid "Good (2 < ETX < 4)"
+msgstr ""
+
+msgid "Green"
+msgstr ""
+
 msgid "Hello and welcome in the network of"
 msgstr ""
 
@@ -115,6 +127,15 @@ msgstr ""
 msgid "Hostname"
 msgstr ""
 
+msgid "IPv6 Config"
+msgstr ""
+
+msgid "IPv6 Prefix"
+msgstr ""
+
+msgid "IPv6 network in CIDR notation."
+msgstr ""
+
 msgid "If selected then the default content element is not shown."
 msgstr ""
 
@@ -141,6 +162,9 @@ msgstr ""
 msgid "Latitude"
 msgstr ""
 
+msgid "Legend"
+msgstr ""
+
 msgid "Load"
 msgstr ""
 
@@ -192,6 +216,9 @@ msgstr ""
 msgid "Operator"
 msgstr ""
 
+msgid "Orange"
+msgstr ""
+
 msgid "Overview"
 msgstr ""
 
@@ -222,6 +249,9 @@ msgstr ""
 msgid "Realname"
 msgstr ""
 
+msgid "Red"
+msgstr ""
+
 msgid "SSID"
 msgstr ""
 
@@ -251,6 +281,9 @@ msgstr ""
 msgid "Status"
 msgstr ""
 
+msgid "Still usable (4 < ETX < 10)"
+msgstr ""
+
 msgid "System"
 msgstr ""
 
@@ -300,6 +333,9 @@ msgstr ""
 msgid "Verify downloaded images"
 msgstr ""
 
+msgid "Very good (ETX < 2)"
+msgstr ""
+
 msgid ""
 "We are an initiative to establish a free, independent and open wireless mesh "
 "network."
@@ -308,6 +344,9 @@ msgstr ""
 msgid "Wireless Overview"
 msgstr ""
 
+msgid "Yellow"
+msgstr ""
+
 msgid ""
 "You can display additional content on the public index page by inserting "
 "valid XHTML in the form below.<br />Headlines should be enclosed between &lt;"
index f965b6d0a1a9b28256c59bb9a4cc7d91cdfdd4f9..cf9926c0da8313a7ee92ec3884940670963c1416 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2012-09-24 18:01+0200\n"
-"PO-Revision-Date: 2012-09-24 18:01+0200\n"
-"Last-Translator: shanliren <shanliren.net@gmail.com>\n"
+"PO-Revision-Date: 2012-10-30 04:28+0200\n"
+"Last-Translator: yingrui <easygodg@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
@@ -13,41 +13,61 @@ msgstr ""
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Pootle 2.0.6\n"
 
+msgid "Activate or deactivate IPv6 config globally."
+msgstr ""
+
 msgid "Channel"
 msgstr "频道"
 
 msgid "Check this to protect your LAN from other nodes or clients"
-msgstr ""
+msgstr "选择此项,隔离其他节点或客户端的攻击来保护你的局域网"
 
 msgid "Cleanup config"
-msgstr ""
+msgstr "清空配置"
 
 msgid "Configure this interface"
-msgstr ""
+msgstr "配置当前界面"
 
 msgid "DHCP IP range"
-msgstr ""
+msgstr "DHCP IP 范围"
 
 msgid "DHCP will automatically assign ip addresses to clients"
-msgstr ""
+msgstr "DHCP将自动给客户端分配IP地址"
 
 msgid "Enable DHCP"
+msgstr "启动DHCP"
+
+msgid "Enable RA"
+msgstr ""
+
+msgid "Enabled"
 msgstr ""
 
 msgid "General Settings"
+msgstr "总体设置"
+
+msgid "IPv6 Settings"
 msgstr ""
 
 msgid ""
 "If this is selected then config is cleaned before setting new config options."
-msgstr ""
+msgstr "如果此项被选中,在设置新选项之前,配置将被清空。"
 
 msgid "Interfaces"
-msgstr ""
+msgstr "界面"
 
 msgid "Mesh IP address"
+msgstr "Mesh IP 地址"
+
+msgid "Mesh IPv6 address"
 msgstr ""
 
 msgid "Mesh Wizard"
+msgstr "Mesh 导引"
+
+msgid ""
+"Note: this will setup this interface for mesh operation, i.e. add to zone "
+"'freifunk' and enable olsr."
 msgstr ""
 
 msgid "Protect LAN"
@@ -57,6 +77,9 @@ msgid ""
 "Select this to allow others to use your connection to access the internet."
 msgstr ""
 
+msgid "Send router advertisements on this device."
+msgstr ""
+
 msgid "Share your internet connection"
 msgstr ""
 
@@ -70,6 +93,11 @@ msgstr ""
 msgid "The given IP address is not inside the mesh network range"
 msgstr ""
 
+msgid ""
+"This is a unique IPv6 address in CIDR notation (e.g. 2001:1:2:3::1/64) and "
+"has to be registered at your local community."
+msgstr ""
+
 msgid ""
 "This is a unique address in the mesh (e.g. 10.1.1.1) and has to be "
 "registered at your local community."
index 8df98a821fe99a017f8c03a66832da6c5d5f65bd..e699392de3d1c9bf4973aee2e590cb4f3cf3b23b 100644 (file)
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2012-11-16 06:26+0200\n"
+"Last-Translator: Rui <shenrui01@gmail.com>\n"
 "Language-Team: none\n"
+"Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Pootle 2.0.6\n"
 
 msgid "Advanced Settings"
-msgstr ""
+msgstr "高级设置"
 
 msgid "Album art names:"
-msgstr ""
+msgstr "专辑封面名称:"
 
 msgid "Announced model number:"
-msgstr ""
+msgstr "通告型号:"
 
 msgid "Announced serial number:"
-msgstr ""
+msgstr "通告编号:"
 
 msgid "Browse directory"
-msgstr ""
+msgstr "浏览目录"
 
 msgid "Collecting data..."
-msgstr ""
+msgstr "收集数据..."
 
 msgid "Database directory:"
-msgstr ""
+msgstr "数据库目录:"
 
 msgid "Enable TIVO:"
-msgstr ""
+msgstr "启用TIVO:"
 
 msgid "Enable inotify:"
-msgstr ""
+msgstr "启用inotify:"
 
 msgid "Enable:"
-msgstr ""
+msgstr "启用:"
 
 msgid "Friendly name:"
-msgstr ""
+msgstr "友好名称:"
 
 msgid "General Settings"
-msgstr ""
+msgstr "基本设置"
 
 msgid "Interfaces:"
-msgstr ""
+msgstr "接口:"
 
 msgid "Log directory:"
-msgstr ""
+msgstr "日志目录:"
 
 msgid "Media directories:"
-msgstr ""
+msgstr "媒体目录:"
 
 msgid ""
 "MiniDLNA is server software with the aim of being fully compliant with DLNA/"
 "UPnP-AV clients."
-msgstr ""
+msgstr "MiniDLNA是DLNA / UPnP-AV媒体服务器。"
 
 msgid ""
 "Model number the miniDLNA daemon will report to clients in its XML "
 "description."
-msgstr ""
+msgstr "miniDLNA守护程序将在其XML描述中向客户端通告型号。"
 
 msgid "Music"
-msgstr ""
+msgstr "音乐"
 
 msgid "Network interfaces to serve."
-msgstr ""
+msgstr "服务的网络接口。"
 
 msgid "Notify interval in seconds."
-msgstr ""
+msgstr "通知的时间间隔,以秒为单位。"
 
 msgid "Notify interval:"
-msgstr ""
+msgstr "通知的时间间隔:"
 
 msgid "Pictures"
-msgstr ""
+msgstr "图片"
 
 msgid "Port for HTTP (descriptions, SOAP, media transfer) traffic."
-msgstr ""
+msgstr "Port for HTTP (descriptions, SOAP, media transfer) traffic."
 
 msgid "Port:"
-msgstr ""
+msgstr "端口:"
 
 msgid "Presentation URL:"
-msgstr ""
+msgstr "服务网址"
 
 msgid "Root container:"
-msgstr ""
+msgstr "根目录:"
 
 msgid ""
 "Serial number the miniDLNA daemon will report to clients in its XML "
 "description."
-msgstr ""
+msgstr "miniDLNA守护程序将在其XML描述中向客户端通告编号。"
 
 msgid ""
 "Set this if you want to customize the name that shows up on your clients."
-msgstr ""
+msgstr "设置自定义名称。"
 
 msgid ""
 "Set this if you would like to specify the directory where you want MiniDLNA "
 "to store its database and album art cache."
-msgstr ""
+msgstr "设置miniDLNA缓存目录"
 
 msgid ""
 "Set this if you would like to specify the directory where you want MiniDLNA "
 "to store its log file."
-msgstr ""
+msgstr "设置miniDLNA日志目录"
 
 msgid ""
 "Set this to enable inotify monitoring to automatically discover new files."
-msgstr ""
+msgstr "设定启用inotify监控,自动发现新的文件。"
 
 msgid ""
 "Set this to enable support for streaming .jpg and .mp3 files to a TiVo "
 "supporting HMO."
-msgstr ""
+msgstr "为HMO TiVo启用JPG和MP3流媒体支持。"
 
 msgid ""
 "Set this to strictly adhere to DLNA standards. This will allow server-side "
 "downscaling of very large JPEG images, which may hurt JPEG serving "
 "performance on (at least) Sony DLNA products."
 msgstr ""
+"设定严格遵守DLNA标准。这将允许服务器端降小大尺寸JPEG图像,在(至少)索尼DLNA"
+"的产品这可能会降低JPEG服务性能。"
 
 msgid ""
 "Set this to the directory you want scanned. If you want to restrict the "
@@ -129,35 +135,38 @@ msgid ""
 "audio, 'V' for video, 'P' for images), followed by a comma, to the directory "
 "(eg. media_dir=A,/mnt/media/Music). Multiple directories can be specified."
 msgstr ""
+"设置要扫描的目录。如果你想限制特定内容类型的目录,你可以在前面加上类型(用于"
+"音频'A','V'视频,'P'图片),其次是用逗号分隔的目录(如media_dir = A,/ mnt/"
+"媒体/音乐)。可以指定多个目录。"
 
 msgid "Specify the path to the MiniSSDPd socket."
-msgstr ""
+msgstr "指定MiniSSDPd socket的路径。"
 
 msgid "Standard container"
-msgstr ""
+msgstr "基本目录"
 
 msgid "Strict to DLNA standard:"
-msgstr ""
+msgstr "严格的DLNA标准:"
 
 msgid ""
 "The miniDLNA service is active, serving %d audio, %d video and %d image "
 "files."
-msgstr ""
+msgstr "miniDLNA服务已启用,提供 %d 音频, %d 视频 和 %d 图片."
 
 msgid "The miniDLNA service is not running."
-msgstr ""
+msgstr "miniDLNA服务未启用"
 
 msgid "This is a list of file names to check for when searching for album art."
-msgstr ""
+msgstr "这是一个文件名列表,为搜索专辑封面。"
 
 msgid "Video"
-msgstr ""
+msgstr "视频"
 
 msgid "miniDLNA"
-msgstr ""
+msgstr "miniDLNA"
 
 msgid "miniDLNA Status"
-msgstr ""
+msgstr "miniDLNA 状态"
 
 msgid "miniSSDP socket:"
-msgstr ""
+msgstr "miniSSDP socket:"
index 28172b3187c8a693f2338b56b7ed5deda7847614..0821c3f46f78435e2c2803b91da11beec4476b44 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: LuCi Chinese Translation\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-14 13:24+0200\n"
-"PO-Revision-Date: 2012-06-28 08:58+0200\n"
-"Last-Translator: phantasm131 <phantasm131@gmail.com>\n"
+"PO-Revision-Date: 2012-11-15 21:39+0200\n"
+"Last-Translator: Rui <shenrui01@gmail.com>\n"
 "Language-Team: QQ Group 75543259\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
@@ -14,40 +14,40 @@ msgstr ""
 "X-Generator: Pootle 2.0.6\n"
 
 msgid "Clock Adjustment"
-msgstr ""
+msgstr "时钟校对"
 
 msgid "Count of time measurements"
-msgstr ""
+msgstr "单位时间数"
 
 msgid "Current system time"
-msgstr ""
+msgstr "当前系统时间"
 
 msgid "General"
-msgstr ""
+msgstr "基本设置"
 
 msgid "Hostname"
-msgstr ""
+msgstr "主机名"
 
 msgid "Offset frequency"
-msgstr ""
+msgstr "偏移量"
 
 msgid "Port"
-msgstr ""
+msgstr "端口"
 
 msgid "Synchronizes the system time"
-msgstr ""
+msgstr "同步系统时间"
 
 msgid "Time Server"
-msgstr ""
+msgstr "时间服务器"
 
 msgid "Time Servers"
-msgstr ""
+msgstr "时间服务器"
 
 msgid "Time Synchronisation"
-msgstr ""
+msgstr "时间同步"
 
 msgid "Update interval (in seconds)"
-msgstr ""
+msgstr "更新间隔(秒)"
 
 msgid "empty = infinite"
-msgstr ""
+msgstr "空值为无限长度"
index 9e7dea72d32d0efa10fe1612830ac3280fb3e859..748aca15577c58a0f221d6b96ae6d6efe09d3159 100644 (file)
@@ -3,8 +3,8 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-05-19 19:35+0200\n"
-"PO-Revision-Date: 2012-06-21 18:36+0200\n"
-"Last-Translator: phantasm131 <phantasm131@gmail.com>\n"
+"PO-Revision-Date: 2012-11-22 18:17+0200\n"
+"Last-Translator: Rui <shenrui01@gmail.com>\n"
 "Language-Team: QQ Group 75543259 <axishero@foxmail.com>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
@@ -14,30 +14,30 @@ msgstr ""
 "X-Generator: Pootle 2.0.6\n"
 
 msgid "Bidirectional mode"
-msgstr ""
+msgstr "双向模式"
 
 msgid "Device"
-msgstr ""
+msgstr "设备"
 
 msgid ""
 "First you have to install the packages to get support for USB (kmod-usb-"
 "printer) or parallel port (kmod-lp)."
-msgstr ""
+msgstr "首先你必须安装支持USB打印机的驱动(kmod-usb-printer)或者并行端口驱动(kmod-lp)"
 
 msgid "Port"
-msgstr ""
+msgstr "端口"
 
 msgid "Settings"
-msgstr ""
+msgstr "设置"
 
 msgid "TCP listener port."
-msgstr ""
+msgstr "监听端口"
 
 msgid "enable"
-msgstr ""
+msgstr "启用"
 
 msgid "p910nd - Printer server"
-msgstr ""
+msgstr "打印服务器"
 
 #~ msgid "p910nd listens on port 910+N. E.g. 9100 for the first printer."
 #~ msgstr "p910nd 的监听端口是910+N,举例:9100用于监听第一台打印机"
index b4c84bba041aab00c3e156ef7279f112e08e8d49..34b6a78b4c51d85b4cea4880bf2b34a4b19a3522 100644 (file)
@@ -33,7 +33,9 @@ msgid ""
 "Bandwidth limit for clients is only activated when both up- and download "
 "limit are set. Use a value of 0 here to completely disable this limitation. "
 "Whitelisted clients are not limited."
-msgstr "只有当 上传和下载的限制都设置的时候对客户端的带宽限制才会生效。在这里使用0 可以完全禁用此限制。白名单客户端不受限制。"
+msgstr ""
+"只有当 上传和下载的限制都设置的时候对客户端的带宽限制才会生效。在这里使用0 可"
+"以完全禁用此限制。白名单客户端不受限制。"
 
 # Something wwrong?
 msgid ""
index b024c5423637c15ccee11b953190dceb720348f1..dfc1abc34cce1dead4ef50ed28e25a401cd2f31e 100644 (file)
@@ -68,7 +68,7 @@ msgid "Collectd Settings"
 msgstr ""
 
 msgid ""
-"Collectd is a small daeomon for collecting data from various sources through "
+"Collectd is a small daemon for collecting data from various sources through "
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
@@ -112,6 +112,9 @@ msgstr ""
 msgid "Disk Usage"
 msgstr ""
 
+msgid "Display Host »"
+msgstr ""
+
 msgid "Display timespan »"
 msgstr ""
 
@@ -182,12 +185,6 @@ msgstr ""
 msgid "Incoming interface"
 msgstr ""
 
-msgid "Installed network plugins:"
-msgstr ""
-
-msgid "Installed output plugins:"
-msgstr ""
-
 msgid "Interface Plugin Configuration"
 msgstr ""
 
@@ -281,11 +278,6 @@ msgstr ""
 msgid "Network plugins"
 msgstr ""
 
-msgid ""
-"Network plugins are used to collect information about open tcp connections, "
-"interface traffic, iptables rules etc."
-msgstr ""
-
 msgid "Network protocol"
 msgstr ""
 
@@ -310,13 +302,6 @@ msgstr ""
 msgid "Output plugins"
 msgstr ""
 
-msgid ""
-"Output plugins provide different possibilities to store collected data. It "
-"is possible to enable multiple plugin at one, for example to store collected "
-"data in rrd databases and to transmit the data over the network to other "
-"collectd instances."
-msgstr ""
-
 msgid "Ping"
 msgstr ""
 
@@ -416,11 +401,6 @@ msgstr ""
 msgid "System plugins"
 msgstr ""
 
-msgid ""
-"System plugins collecting values about system state and ressource usage on "
-"the device.:"
-msgstr ""
-
 msgid "TCP Connections"
 msgstr ""
 
@@ -436,6 +416,9 @@ msgstr ""
 msgid "Table"
 msgstr ""
 
+msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
+msgstr ""
+
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
 "plugin of OLSRd."
@@ -551,11 +534,6 @@ msgid ""
 "collected data from a running collectd instance."
 msgstr ""
 
-msgid ""
-"The wireless plugin collects statistics about wireless signal strength, "
-"noise and quality."
-msgstr ""
-
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -568,6 +546,15 @@ msgstr ""
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
+msgid "UPS"
+msgstr ""
+
+msgid "UPS Plugin Configuration"
+msgstr ""
+
+msgid "UPS name in NUT ups@host format"
+msgstr ""
+
 msgid "UnixSock"
 msgstr ""
 
@@ -586,9 +573,6 @@ msgstr ""
 msgid "Wireless"
 msgstr ""
 
-msgid "Wireless Plugin Configuration"
-msgstr ""
-
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr ""
 
index 121642c5470c3411239b54de96b677284e25dda0..af7d3652fe62dd677ce4b0caf60fc53c904d9ea5 100644 (file)
@@ -16,6 +16,8 @@ msgid ""
 "upstream proxy, <em>Reject access</em> disables any upstream proxy for the "
 "target"
 msgstr ""
+"<em>通过代理</em>允许给定的对象经过指定的上行代理的路由请求。<em>拒绝代理</"
+"em> 禁用对象的任何上行代理。"
 
 msgid ""
 "Adds an \"X-Tinyproxy\" HTTP header with the client IP address to forwarded "
@@ -23,163 +25,165 @@ msgid ""
 msgstr ""
 
 msgid "Allowed clients"
-msgstr ""
+msgstr "授权客户端"
 
 msgid "Allowed connect ports"
-msgstr ""
+msgstr "允许的连接端口"
 
 msgid "Bind address"
-msgstr ""
+msgstr "绑定地址"
 
 msgid ""
 "By default, basic POSIX expressions are used for filtering. Enable this to "
 "activate extended regular expressions"
 msgstr ""
+"默认情况下,使用基本的POSIX表达式作为滤规则。启用这个以使用正规表达式代替之。"
 
 msgid ""
 "By default, filter strings are treated as case-insensitive. Enable this to "
 "make the matching case-sensitive"
-msgstr ""
+msgstr "默认情况下,过滤规则是不区分大小写的。启用它则转为区分大小写。"
 
 msgid ""
 "By default, filtering is done based on domain names. Enable this to match "
 "against URLs instead"
-msgstr ""
+msgstr "默认情况下,过滤器只匹配域名。启用它以匹配URL。"
 
 msgid ""
 "By default, the filter rules act as blacklist. Enable this option to only "
 "allow matched URLs or domain names"
 msgstr ""
+"默认情况下,过滤规则将以黑名单形式匹配。启用它将仅允许过滤规则里的URL或域名。"
 
 msgid ""
 "Can be either an IP address or range, a domain name or \".\" for any host "
 "without domain"
-msgstr ""
+msgstr "可以是IP地址或者范围,也可以是域名或者以\".\"代表任意主机"
 
 msgid "Configuration"
 msgstr ""
 
 msgid "Connection timeout"
-msgstr ""
+msgstr "连接超时时间"
 
 msgid "Default deny"
-msgstr ""
+msgstr "默认拒绝"
 
 msgid "Enable Tinyproxy server"
-msgstr ""
+msgstr "启用Tinyproxy"
 
 msgid "Error page"
-msgstr ""
+msgstr "错误页面"
 
 msgid "Failed to retrieve statistics from url:"
 msgstr ""
 
 msgid "Filter by RegExp"
-msgstr ""
+msgstr "正则表达式过滤器"
 
 msgid "Filter by URLs"
-msgstr ""
+msgstr "基于URL的过滤器"
 
 msgid "Filter case-sensitive"
-msgstr ""
+msgstr "过滤器大小写敏感"
 
 msgid "Filter file"
-msgstr ""
+msgstr "过滤器文件"
 
 msgid "Filtering and ACLs"
-msgstr ""
+msgstr "过滤规则和访问控制列表"
 
 msgid "General settings"
-msgstr ""
+msgstr "基本设置"
 
 msgid "Group"
-msgstr ""
+msgstr "运行组"
 
 msgid "HTML template file to serve for stat host requests"
 msgstr ""
 
 msgid "HTML template file to serve when HTTP errors occur"
-msgstr ""
+msgstr "HTTP出错页面HTML模板"
 
 msgid "Header whitelist"
 msgstr ""
 
 msgid ""
 "List of IP addresses or ranges which are allowed to use the proxy server"
-msgstr ""
+msgstr "允许访问代理服务器的IP或IP段列表"
 
 msgid ""
 "List of allowed ports for the CONNECT method. A single value \"0\" allows "
 "all ports"
-msgstr ""
+msgstr "允许CONNECT方法连接的端口列表,0代表所有端口。"
 
 msgid "Listen address"
-msgstr ""
+msgstr "服务地址"
 
 msgid "Listen port"
-msgstr ""
+msgstr "服务端口"
 
 msgid "Log file"
-msgstr ""
+msgstr "日志文件"
 
 msgid "Log file to use for dumping messages"
 msgstr ""
 
 msgid "Log level"
-msgstr ""
+msgstr "记录等级"
 
 msgid "Logging verbosity of the Tinyproxy process"
 msgstr ""
 
 msgid "Max. clients"
-msgstr ""
+msgstr "最大客户端数"
 
 msgid "Max. requests per server"
-msgstr ""
+msgstr "单进程最大请求数"
 
 msgid "Max. spare servers"
-msgstr ""
+msgstr "最多备用服务器"
 
 msgid "Maximum allowed number of concurrently connected clients"
-msgstr ""
+msgstr "允许同时连接的最大客户端数量"
 
 msgid ""
 "Maximum allowed number of requests per process. If it is exeeded, the "
 "process is restarted. Zero means unlimited."
-msgstr ""
+msgstr "单个进程允许的最多请求数,超过这个值,进程将重启。0表示不限制。"
 
 msgid "Maximum number of prepared idle processes"
-msgstr ""
+msgstr "备用进程数的最大值"
 
 msgid "Maximum number of seconds an inactive connection is held open"
 msgstr ""
 
 msgid "Min. spare servers"
-msgstr ""
+msgstr "最少备用服务器"
 
 msgid "Minimum number of prepared idle processes"
-msgstr ""
+msgstr "备用进程数的最小值"
 
 msgid "Number of idle processes to start when launching Tinyproxy"
-msgstr ""
+msgstr "启动Tinyproxy时开启的进程数"
 
 msgid "Plaintext file with URLs or domains to filter. One entry per line"
-msgstr ""
+msgstr "用于过滤器的文本,包含URL或者域名,每行一条。"
 
 msgid "Policy"
-msgstr ""
+msgstr "策略"
 
 msgid "Privacy settings"
-msgstr ""
+msgstr "策略设置"
 
 msgid "Reject access"
-msgstr ""
+msgstr "拒绝访问"
 
 msgid "Server Settings"
-msgstr ""
+msgstr "服务器设置"
 
 msgid "Server limits"
-msgstr ""
+msgstr "服务器限制"
 
 msgid ""
 "Specifies HTTP header names which are allowed to pass-through, all others "
@@ -194,45 +198,45 @@ msgstr ""
 
 msgid ""
 "Specifies the address Tinyproxy binds to for outbound forwarded requests"
-msgstr ""
+msgstr "指定服务器向外转发请求时所使用的地址"
 
 msgid "Specifies the addresses Tinyproxy is listening on for requests"
-msgstr ""
+msgstr "指定服务器接收代理请求所使用的地址"
 
 msgid "Specifies the group name the Tinyproxy process is running as"
-msgstr ""
+msgstr "指定Tinyproxy进程所属组"
 
 msgid ""
 "Specifies the upstream proxy to use for accessing the target host. Format is "
 "<code>address:port</code>"
-msgstr ""
+msgstr "指定上级代理. 格式 <code>IP地址:端口</code>"
 
 msgid "Specifies the user name the Tinyproxy process is running as"
-msgstr ""
+msgstr "指定Tinyproxy进程所属用户"
 
 msgid "Start spare servers"
 msgstr ""
 
 msgid "Statistics page"
-msgstr ""
+msgstr "统计页面"
 
 msgid "Status"
 msgstr ""
 
 msgid "Target host"
-msgstr ""
+msgstr "目标主机"
 
 msgid "Tinyproxy"
-msgstr ""
+msgstr "Tinyproxy"
 
 msgid "Tinyproxy Status"
 msgstr ""
 
 msgid "Tinyproxy is a small and fast non-caching HTTP(S)-Proxy"
-msgstr ""
+msgstr "Tinyproxy是一个轻量级无缓存机制的高速HTTP(S)代理服务器"
 
 msgid "Upstream Proxies"
-msgstr ""
+msgstr "上级代理"
 
 msgid ""
 "Upstream proxy rules define proxy servers to use when accessing certain IP "
@@ -240,19 +244,19 @@ msgid ""
 msgstr ""
 
 msgid "Use syslog"
-msgstr ""
+msgstr "使用系统日志服务"
 
 msgid "User"
-msgstr ""
+msgstr "运行用户"
 
 msgid "Via hostname"
 msgstr ""
 
 msgid "Via proxy"
-msgstr ""
+msgstr "通过代理"
 
 msgid "Writes log messages to syslog instead of a log file"
-msgstr ""
+msgstr "将日志写入系统日志以代替指定的日志文件"
 
 msgid "X-Tinyproxy header"
 msgstr ""
index 1a22a2e79786a16cfd4dddadd24918a40c5aaf8c..f426526e69f0b85de343b0b2735b06bb939c33bf 100644 (file)
@@ -47,4 +47,6 @@ msgid ""
 "uShare is a UPnP (TM) A/V & DLNA Media Server. It implements the server "
 "component that provides UPnP media devices with information on available "
 "multimedia files."
-msgstr "uShare是一个UPnP(TM) A/V和DLNA媒体服务器。可以将多媒体文件共享到支持UPnP的设备上。"
+msgstr ""
+"uShare是一个UPnP(TM) A/V和DLNA媒体服务器。可以将多媒体文件共享到支持UPnP的设"
+"备上。"
index 501c8681063beae700b0100e5637a505c5cc49b1..3e4bb0ae0d5b86818891283007d5d534470f9bf3 100644 (file)
@@ -38,4 +38,5 @@ msgstr "网络相机流"
 msgid ""
 "Configure your Linux-UVC compatible webcam. Point your browser to e.g. <a "
 "href=\"http://%s:%i/\">http://%s:%i/</a>"
-msgstr "配置兼容的网络相机。用浏览器访问<a href=\"http://%s:%i/\">http://%s:%i/</a>"
+msgstr ""
+"配置兼容的网络相机。用浏览器访问<a href=\"http://%s:%i/\">http://%s:%i/</a>"
index ee9d7b1f1b2a8f2e2264a61bf7fa41216feabce1..0482e95d2fb535ce4b9646ed1692a0a9bfd3664d 100644 (file)
@@ -20,7 +20,9 @@ msgstr "ping主机地址"
 msgid ""
 "How often to check internet connection. Default unit is seconds, you can you "
 "use the suffix 'm' for minutes, 'h' for hours or 'd' for days"
-msgstr "检测网络连接的频率。默认单位为秒,你可以使用'm'作为后缀表示分钟,‘h’表示小时‘d’表示天。"
+msgstr ""
+"检测网络连接的频率。默认单位为秒,你可以使用'm'作为后缀表示分钟,‘h’表示小"
+"时‘d’表示天。"
 
 msgid ""
 "In periodic mode, it defines the reboot period. In internet mode, it defines "
@@ -28,8 +30,9 @@ msgid ""
 "engaged.Default unit is seconds, you can use the suffix 'm' for minutes, 'h' "
 "for hours or 'd' for days"
 msgstr ""
-"在周期模式,此处定义了重启的周期。在联网模式,这个表示没有网络连接情况下到执行重启的最长时间间隔。默认单位为秒,你可以使用'm'作为后缀表示分钟,‘h’"
-"表示小时‘d’表示天。"
+"在周期模式,此处定义了重启的周期。在联网模式,这个表示没有网络连接情况下到执"
+"行重启的最长时间间隔。默认单位为秒,你可以使用'm'作为后缀表示分钟,‘h’表示小"
+"时‘d’表示天。"
 
 msgid "Operating mode"
 msgstr "操作模式"
@@ -56,4 +59,5 @@ msgid ""
 "a non zero value here, will trigger a delayed hard reboot if the soft reboot "
 "fails. Enter a number of seconds to enable, use 0 to disable"
 msgstr ""
-"当重启系统的时候WatchCat将会触发一个软重启,在这里输入一个非0的值,如果软重启失败将会触发一个延迟的硬重启。输入秒数启用,输入0禁止功能。"
+"当重启系统的时候WatchCat将会触发一个软重启,在这里输入一个非0的值,如果软重启"
+"失败将会触发一个延迟的硬重启。输入秒数启用,输入0禁止功能。"
index cd6394ed63d84edd5933f3c5bb8ceccfe8019b54..c44f0886ebe012f25cb8b9e97de8fc5a2712cedf 100644 (file)
@@ -14,36 +14,36 @@ msgstr ""
 "X-Generator: Pootle 2.0.6\n"
 
 msgid "Broadcast on all interfaces"
-msgstr ""
+msgstr "向所有接口广播"
 
 msgid "Choose the host to wake up or enter a custom MAC address to use"
-msgstr ""
+msgstr "选择要唤醒的主机或者输入自定义mac地址"
 
 msgid "Host to wake up"
-msgstr ""
+msgstr "选择要唤醒的主机"
 
 msgid "Network interface to use"
-msgstr ""
+msgstr "选择使用的网络接口"
 
 msgid ""
 "Sometimes only one of both tools work. If one of fails, try the other one"
-msgstr ""
+msgstr "有时只有一个工具生效。如果其中一个失效,请尝试另一个"
 
 msgid "Specifies the interface the WoL packet is sent on"
-msgstr ""
+msgstr "限定网络唤醒数据包将被发送到的接口"
 
 msgid "Starting WoL utility:"
-msgstr ""
+msgstr "正在启动网络唤醒工具"
 
 msgid "Wake on LAN"
-msgstr ""
+msgstr "网络唤醒"
 
 msgid ""
 "Wake on LAN is a mechanism to remotely boot computers in the local network."
-msgstr ""
+msgstr "网络唤醒提供了从远程启动本地网络内计算机的机制。"
 
 msgid "Wake up host"
-msgstr ""
+msgstr "唤醒主机"
 
 msgid "WoL program"
-msgstr ""
+msgstr "网络唤醒程序"
index 049525d34730402fc301464be2a18c7fc00328e9..dfd545f3534bc1f32f17a7204d59d50c494849ae 100644 (file)
@@ -69,6 +69,8 @@ for _, p in ipairs({"ppp", "pptp", "pppoe", "pppoa", "3g", "l2tp"}) do
                        return (nixio.fs.glob("/usr/lib/pppd/*/pptp.so")() ~= nil)
                elseif p == "3g" then
                        return nixio.fs.access("/lib/netifd/proto/3g.sh")
+               elseif p == "l2tp" then
+                       return nixio.fs.access("/lib/netifd/proto/l2tp.sh")
                else
                        return nixio.fs.access("/lib/netifd/proto/ppp.sh")
                end
diff --git a/themes/base/htdocs/luci-static/resources/Dropdowns.js b/themes/base/htdocs/luci-static/resources/Dropdowns.js
deleted file mode 100644 (file)
index a8d12b9..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-Copyright (C) 2008  Alina Friedrichsen <x-alina@gmx.net>
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-*/
-
-function initDropdowns() {
-       var aSelects = XHTML1.getElementsByTagName("select");
-       var isIE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
-
-       function showPlaceholder(sel) {
-               if( ! sel._ph ) {
-                       var box = sel.getBoundingClientRect();
-                       sel._dm = sel.currentStyle.display;
-                       sel._ph = document.createElement('input');
-                       sel.parentNode.insertBefore(sel._ph, sel);
-                       sel._ph.style.width  = ( box.right - box.left ) + 'px';
-                       sel._ph.style.height = ( box.bottom - box.top ) + 'px';
-                       sel._ph.style.margin = sel.currentStyle.margin;
-               }
-
-               sel._ph.value = sel.options[sel.selectedIndex].text;
-               sel._ph.style.display = sel._dm;
-               sel.style.display = 'none';
-       }
-
-       function hidePlaceholder(sel) {
-               if( sel._ph ) sel._ph.style.display = 'none';
-               sel.style.display = sel._dm;
-       }
-
-       function hideSelects() {
-               for(var i = 0; i < aSelects.length; i++) {
-                       showPlaceholder(aSelects[i]);
-               }
-       }
-
-       function showSelects() {
-               for(var i = 0; i < aSelects.length; i++) {
-                       hidePlaceholder(aSelects[i]);
-               }
-       }
-
-       function isEmptyObject(obj) {
-               for(var i in obj) {
-                       return false;
-               }
-               return true;
-       }
-
-       var nextUniqueID = 1;
-       var elementsNeeded = {};
-       var menusShown = {};
-       var menusToHide = {};
-       var delayHideTimerId;
-       var delayHideAllTime = 1000;
-       var delayHideTime = 400;
-       function delayHide() {
-               for(var i in menusToHide) {
-                       XHTML1.removeClass(menusToHide[i], "focus");
-               }
-               delayHideTimerId = null;
-       }
-
-       function updatePopup() {
-               if(isIE6) {
-                       if(isEmptyObject(elementsNeeded)) {
-                               showSelects();
-                       }
-                       else{
-                               hideSelects();
-                       }
-               }
-
-               var menusShownOld = menusShown;
-               menusShown = {};
-               for(var id in elementsNeeded) {
-                       var element = elementsNeeded[id];
-                       for(element = findLi(element); element; element = findLi(element.parentNode)) {
-                               XHTML1.addClass(element, "focus");
-                               if(!element.uniqueID) {
-                                       element.uniqueID = nextUniqueID++;
-                               }
-                               element.style.zIndex = 1000;
-                               menusShown[element.uniqueID] = element;
-                               delete menusToHide[element.uniqueID];
-                       }
-               }
-               for(var id in menusShownOld) {
-                       if(!menusShown[id]) {
-                               if(delayHideTimerId) {
-                                       clearTimeout(delayHideTimerId);
-                                       delayHideTimerId = 0;
-                                       delayHide();
-                               }
-                               menusToHide[id] = menusShownOld[id];
-                               menusToHide[id].style.zIndex = 999;
-                       }
-               }
-               if(menusToHide || isEmptyObject(elementsNeeded)) {
-                       if(delayHideTimerId) {
-                               clearTimeout(delayHideTimerId);
-                       }
-                       delayHideTimerId = setTimeout(delayHide, isEmptyObject(elementsNeeded) ? delayHideAllTime : delayHideTime);
-               }
-       }
-
-       function findLi(element) {
-               for(; element; element = element.parentNode) {
-                       if(XHTML1.isElement(element, "li")) {
-                               return element;
-                       }
-               }
-       }
-
-       function onmouseover(evt) {
-               var li = findLi(evt.currentTarget);
-               if(li && !li.focused) {
-                       if(!li.uniqueID) {
-                               li.uniqueID = nextUniqueID++;
-                       }
-                       elementsNeeded[li.uniqueID] = li;
-               }
-               XHTML1.addClass(evt.currentTarget, "over");
-               updatePopup();
-       }
-
-       function onmouseout(evt) {
-               var li = findLi(evt.currentTarget);
-               if(li && !li.focused && li.uniqueID) {
-                       delete elementsNeeded[li.uniqueID];
-               }
-               XHTML1.removeClass(evt.currentTarget, "over");
-               updatePopup();
-       }
-
-       function onfocus(evt) {
-               var li = findLi(evt.currentTarget);
-               if(li) {
-                       li.focused = true;
-                       if(!li.uniqueID) {
-                               li.uniqueID = nextUniqueID++;
-                       }
-                       elementsNeeded[li.uniqueID] = li;
-               }
-               updatePopup();
-       }
-
-       function onblur(evt) {
-               var li = findLi(evt.currentTarget);
-               if(li) {
-                       li.focused = false;
-                       delete elementsNeeded[li.uniqueID];
-               }
-               updatePopup();
-       }
-
-       var aElements = XHTML1.getElementsByTagName("a");
-       for(var i = 0; i < aElements.length; i++) {
-               var a = aElements[i];
-               for(var element = a.parentNode; element; element = element.parentNode) {
-                       if(XHTML1.isElement(element, "ul") && XHTML1.containsClass(element, "dropdowns")) {
-                               XHTML1.addEventListener(a, "focus", onfocus);
-                               XHTML1.addEventListener(a, "blur", onblur);
-                               XHTML1.addEventListener(a, "mouseover", onmouseover);
-                               XHTML1.addEventListener(a, "mouseout", onmouseout);
-                               break;
-                       }
-               }
-       }
-
-       XHTML1.addEventListener(document, "click", function() {
-               if (delayHideTimerId) {
-                       clearTimeout(delayHideTimerId);
-                       delayHideTimerId = 0;
-                       delayHide();
-               }
-       });
-}
-
-if(XHTML1.isDOMSupported()) {
-       XHTML1.addEventListener(window, "load", initDropdowns);
-}
diff --git a/themes/base/htdocs/luci-static/resources/VarType.js b/themes/base/htdocs/luci-static/resources/VarType.js
deleted file mode 100644 (file)
index d466810..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-Copyright (C) 2008  Alina Friedrichsen <x-alina@gmx.net>
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-*/
-
-function VarType() {
-}
-
-VarType.isNull = function(obj) {
-       if(typeof obj == "undefined") return true;
-       if(typeof obj == "object" && (!obj)) return true;
-       return false;
-};
-
-VarType.toFloat = function(value) {
-       value = Number(value);
-       return value;
-};
-
-VarType.toDecimal = function(value) {
-       value = Number(value);
-       if(!isFinite(value)) value = 0.0;
-       return value;
-};
-
-VarType.toInt = function(value) {
-       value = Number(value);
-       if(!isFinite(value)) value = 0.0;
-       value = Math.floor(value);
-       return value;
-};
-
-VarType.toUInt = function(value) {
-       value = Number(value);
-       if(!isFinite(value)) value = 0.0;
-       else if(value < 0.0) value = 0.0;
-       value = Math.floor(value);
-       return value;
-};
-
-VarType.toStr = function(value) {
-       if(VarType.isNull(value)) value = "";
-       value = String(value);
-       return value;
-};
-
-VarType.toBool = function(value) {
-       value = Boolean(value);
-       return value;
-};
-
-VarType.needObject = function(obj) {
-       if(typeof obj != "object" || (!obj)) throw new TypeError();
-};
-
-VarType.needInstanceOf = function(obj, type) {
-       if(!(obj instanceof type)) throw new TypeError();
-};
-
-VarType.needFunction = function(obj) {
-       if(typeof obj != "function") throw new TypeError();
-};
-
-VarType.needNode = function(obj, type) {
-       VarType.needObject(obj);
-       if(VarType.isNull(obj.nodeType)) throw new TypeError();
-       if(!VarType.isNull(type)) {
-               type = VarType.toInt(type);
-               if(obj.nodeType != type) throw new TypeError();
-       }
-};
diff --git a/themes/base/htdocs/luci-static/resources/XHTML1.js b/themes/base/htdocs/luci-static/resources/XHTML1.js
deleted file mode 100644 (file)
index a7d4f7d..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
-Copyright (C) 2007, 2008  Alina Friedrichsen <x-alina@gmx.net>
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
-*/
-
-var XMLNS_XMLNS = "http://www.w3.org/2000/xmlns/";
-var XMLNS_XML = "http://www.w3.org/XML/1998/namespace";
-var XMLNS_XHTML = "http://www.w3.org/1999/xhtml";
-
-function W3CDOM_Event(currentTarget) {
-       VarType.needObject(currentTarget);
-       this.currentTarget = currentTarget;
-       this.preventDefault = function() { window.event.returnValue = false; };
-       return this;
-}
-
-function XHTML1() {
-}
-
-XHTML1.isDOMSupported = function() {
-       if(!document.getElementById) return false;
-       if(!(window.addEventListener || window.attachEvent)) return false;
-       return true;
-};
-
-XHTML1.isXHTML = function() {
-       if(document.documentElement.nodeName == "HTML") return false;
-       return true;
-};
-
-XHTML1.addEventListener = function(target, type, listener) {
-       VarType.needObject(target);
-       type = VarType.toStr(type);
-       VarType.needFunction(listener);
-
-       if(target.addEventListener) {
-               target.addEventListener(type, listener, false);
-       }
-       else if(target.attachEvent) {
-               target.attachEvent("on" + type, function() { listener(new W3CDOM_Event(target)); } );
-       }
-};
-
-XHTML1.createElement = function(tagName) {
-       tagName = VarType.toStr(tagName);
-
-       if(XHTML1.isXHTML()) {
-               return document.createElementNS(XMLNS_XHTML, tagName.toLowerCase());
-       }
-
-       return document.createElement(tagName.toUpperCase());
-};
-
-XHTML1.getElementsByTagName = function(tagName) {
-       tagName = VarType.toStr(tagName);
-
-       if(XHTML1.isXHTML()) {
-               return document.getElementsByTagNameNS(XMLNS_XHTML, tagName.toLowerCase());
-       }
-
-       return document.getElementsByTagName(tagName.toUpperCase());
-};
-
-XHTML1.isElement = function(node, tagName) {
-       VarType.needNode(node);
-       tagName = VarType.toStr(tagName);
-
-       if(node.nodeType == 1) {
-               if(XHTML1.isXHTML()) {
-                       if(node.namespaceURI == XMLNS_XHTML) {
-                               if(node.localName == tagName.toLowerCase()) return true;
-                       }
-               } else {
-                       if(node.nodeName == tagName.toUpperCase()) return true;
-               }
-       }
-
-       return false;
-};
-
-XHTML1.getAttribute = function(element, name) {
-       VarType.needNode(element, 1);
-       name = VarType.toStr(name);
-
-       name = name.toLowerCase();
-
-       if(XHTML1.isXHTML()) {
-               return element.getAttributeNS(null, name);
-       }
-
-       if(name == "class") {
-               return element.className;
-       }
-
-       return element.getAttribute(name);
-};
-
-XHTML1.setAttribute = function(element, name, value) {
-       VarType.needNode(element, 1);
-       name = VarType.toStr(name);
-       value = VarType.toStr(value);
-
-       name = name.toLowerCase();
-
-       if(XHTML1.isXHTML()) {
-               element.setAttributeNS(null, name, value);
-               return;
-       }
-
-       if(name == "class") {
-               element.className = value;
-               return;
-       }
-
-       element.setAttribute(name, value);
-};
-
-XHTML1.removeAttribute = function(element, name) {
-       VarType.needNode(element, 1);
-       name = VarType.toStr(name);
-
-       name = name.toLowerCase();
-
-       if(XHTML1.isXHTML()) {
-               element.removeAttributeNS(null, name);
-               return;
-       }
-
-       if(name == "class") {
-               element.className = "";
-               return;
-       }
-
-       element.removeAttribute(name);
-};
-
-XHTML1.containsClass = function(element, className) {
-       VarType.needNode(element, 1);
-       className = VarType.toStr(className).replace(/^\s+/g, "").replace(/\s+$/g, "");
-
-       var classString = XHTML1.getAttribute(element, "class").replace(/\s+/g, " ").replace(/^\s+/g, "").replace(/\s+$/g, "");
-       var classArray = classString.split(" ");
-       for(var i = 0; i < classArray.length; i++) {
-               if(classArray[i] == className) return true;
-       }
-
-       return false;
-};
-
-XHTML1.addClass = function(element, className) {
-       VarType.needNode(element, 1);
-       className = VarType.toStr(className).replace(/^\s+/g, "").replace(/\s+$/g, "");
-
-       var classString = XHTML1.getAttribute(element, "class").replace(/\s+/g, " ").replace(/^\s+/g, "").replace(/\s+$/g, "");
-       var classArray = classString.split(" ");
-       classString = "";
-       for(var i = 0; i < classArray.length; i++) {
-               if(classArray[i] != className) {
-                       if(classString == "") classString = classArray[i];
-                       else classString += " " + classArray[i];
-               }
-       }
-
-       if(classString == "") classString = className;
-       else classString += " " + className;
-
-       XHTML1.setAttribute(element, "class", classString);
-};
-
-XHTML1.removeClass = function(element, className) {
-       VarType.needNode(element, 1);
-       className = VarType.toStr(className).replace(/^\s+/g, "").replace(/\s+$/g, "");
-
-       var classString = XHTML1.getAttribute(element, "class").replace(/\s+/g, " ").replace(/^\s+/g, "").replace(/\s+$/g, "");
-       var classArray = classString.split(" ");
-       classString = "";
-       for(var i = 0; i < classArray.length; i++) {
-               if(classArray[i] != className) {
-                       if(classString == "") classString = classArray[i];
-                       else classString += " " + classArray[i];
-               }
-       }
-
-       XHTML1.setAttribute(element, "class", classString);
-};
-
-XHTML1.removeAllChildren = function(node) {
-       VarType.needNode(node);
-
-       while(node.lastChild) {
-               node.removeChild(node.lastChild);
-       }
-};
-
-XHTML1.getTextContent = function(node) {
-       VarType.needNode(node);
-
-       if(typeof node.textContent != "undefined") {
-               return node.textContent;
-       }
-
-       switch(node.nodeType) {
-               case 1:
-               case 2:
-               case 5:
-               case 6:
-               case 11:
-                       var textContent = "";
-                       for(node = node.firstChild; node; node = node.nextSibling) {
-                               if(node.nodeType == 7) continue;
-                               if(node.nodeType == 8) continue;
-                               textContent += VarType.toStr(XHTML1.getTextContent(node));
-                       }
-                       return textContent;
-               case 3:
-               case 4:
-               case 7:
-               case 8:
-                       return node.nodeValue;
-       }
-
-       return null;
-};
-
-XHTML1.setTextContent = function(node, value) {
-       VarType.needNode(node);
-       value = VarType.toStr(value);
-
-       if(typeof node.textContent != "undefined") {
-               node.textContent = value;
-       }
-
-       switch(node.nodeType) {
-               case 1:
-               case 2:
-               case 5:
-               case 6:
-               case 11:
-                       XHTML1.removeAllChildren(node);
-                       if(value != "") {
-                               node.appendChild(document.createTextNode(value));
-                       }
-                       break;
-               case 3:
-               case 4:
-               case 7:
-               case 8:
-                       node.nodeValue = value;
-                       break;
-       }
-};
index 286ed25e77886e9547e23578d7a131c39c00c5f4..26f2bbb2e1d1a00116ccffc8b241d38a426c11c1 100644 (file)
 /* Reset.less
  * Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here      that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc).
  * ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
-html, body {
+html {
        margin: 0;
        padding: 0;
 }
 
+body {
+       margin: 0;
+       padding: 5px;
+}
+
 h1, h2, h3, h4, h5, h6, p, pre, a, abbr, acronym, code, del, em, img, q, s,
 small, strike, strong, sub, sup, tt, var, dd, dl, dt, li, ol, ul, fieldset,
 form, label, legend, button, table, caption, tbody, tfoot, thead, tr, th, td {
@@ -789,6 +794,7 @@ header .fill {
        -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
        -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
+       padding: 0 5px;
 }
 
 header div > ul, .nav {
@@ -1451,6 +1457,18 @@ footer {
        background-image: url('../resources/cbi/link.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
 }
 
+.cbi-button-download,
+.cbi-input-download {
+       background-position: 6px center, left top;
+       padding-left: 28px;
+       background-image: url('../resources/cbi/download.gif'), -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));
+       background-image: url('../resources/cbi/download.gif'), -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
+       background-image: url('../resources/cbi/download.gif'), -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);
+       background-image: url('../resources/cbi/download.gif'), -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
+       background-image: url('../resources/cbi/download.gif'), -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
+       background-image: url('../resources/cbi/download.gif'), linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);
+}
+
 .btn.active, .btn:active {
        -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
        -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
index 33e2e48d29ec2dfbb8308229eb17028e4a643d1f..c79c152ba98b1bfc976d4016cb75991819d5a36f 100644 (file)
@@ -79,7 +79,7 @@ You may obtain a copy of the License at
                                end
                 if level > 2 then
                %>
-                       <li class="tabmenu-item-<%=v%><%- if nnode._menu_selected or (node.leaf and v == leaf) then -%> active<% end %>">
+                       <li class="tabmenu-item-<%=v%><%- if nnode._menu_selected or (node.leaf and v == leaf) then %> active<% end %>">
                            <a href="<%=nodeurl(prefix, v, nnode.query)%>"><%=striptags(translate(nnode.title))%></a>
                        </li>
                <%      end
@@ -106,6 +106,10 @@ You may obtain a copy of the License at
   <link rel="shortcut icon" href="<%=media%>/favicon.ico">
   <% if node and node.css then %><link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
   <% end -%>
+  <% if css then %><style title="text/css">
+  <%-= css %>
+  </style>
+  <% end -%>
   <script src="<%=resource%>/xhr.js"></script>
  </head>
 
index 5e5d75cd14497aec98e8bc3af7ebc83f4060addb..4f89b2d3af257002498025eb26f664089be49480 100644 (file)
@@ -8,16 +8,16 @@ body {
        color: #ffffff;
        font-family: Verdana, Arial, sans-serif;
        font-size: 100%;
-       line-height: 100%; 
+       line-height: 100%;
        background-image: url(images/main-back.png);
        background-repeat: repeat-x;
        background-position: left bottom;
        }
-#all {  
+#all {
         margin: 0px;
        padding: 0px;
         min-height: 800px;
-}      
+}
 
 code {
        font-family: monospace;
@@ -27,7 +27,7 @@ code {
 a:link, a:visited {
        color:#000000;
        font-weight:bold;
-       text-decoration:none;   
+       text-decoration:none;
        }
 a:hover {
        color:#333333;
@@ -201,7 +201,7 @@ div#maincontent ul {
        color: #000000;
        text-decoration: none;
        font-size: 70%;
-       font-weight: bold; 
+       font-weight: bold;
 }
 
 
@@ -211,7 +211,7 @@ div#maincontent ul {
        border-top:0.3em solid #FFCB05;
        margin-top:  -0.2em;
 }
-.mainmenu .active a{   
+.mainmenu .active a{
        color: #000000;
        font-weight: bold;
        border-top:0.2em solid #FFCB05;
index 7313fff55087137ce3295e751aa972b56f4604f2..5099d186fe650c2bb5c8a658f07924194d82235f 100644 (file)
@@ -30,7 +30,6 @@ for i,r in ipairs(request) do
        end
 end
 
-require("luci.i18n").loadc("base")
 require("luci.http").prepare_content("text/html")
 
 -%>
@@ -41,6 +40,10 @@ require("luci.http").prepare_content("text/html")
 <head>
        <link rel="stylesheet" type="text/css" href="<%=media%>/cascade.css" />
        <% if node and node.css then %><link rel="stylesheet" type="text/css" href="<%=resource%>/<%=node.css%>" /><% end %>
+       <% if css then %><style title="text/css">
+       <%-= css %>
+       </style>
+       <% end -%>
        <link rel="shortcut icon" href="<%=media%>/images/favicon.ico" />
        <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
        <meta http-equiv="content-script-type" content="text/javascript" />
index cd49fcbe23203d82c4b1c1ade48fd91be3b9db90..d5fe77279ddadcc725ff98b86face6fcdb159a59 100644 (file)
@@ -275,19 +275,19 @@ ul.dropdowns ul ul ul li:hover ul {
        left: 100%;
 }
 
-#xhr_poll_status { 
-       cursor: pointer; 
-} 
+#xhr_poll_status {
+       cursor: pointer;
+}
 
-#xhr_poll_status #xhr_poll_status_off { 
-       font-weight: bold; 
-       color: #FF0000; 
-} 
+#xhr_poll_status #xhr_poll_status_off {
+       font-weight: bold;
+       color: #FF0000;
+}
 
-#xhr_poll_status #xhr_poll_status_on { 
-       font-weight: bold; 
-       color: #00FF00; 
-} 
+#xhr_poll_status #xhr_poll_status_on {
+       font-weight: bold;
+       color: #00FF00;
+}
 
 #menubar {
        position: relative;
@@ -658,7 +658,7 @@ input.cbi-button-add {
        background-color: inherit;
        color: #000;
        padding: 0 1px 0 17px;
-       border: 1px solid #FFF; 
+       border: 1px solid #FFF;
 }
 
 input.cbi-input-fieldadd,
@@ -691,18 +691,27 @@ input.cbi-button-save {
 input.cbi-input-apply,
 input.cbi-button-apply {
        background: url('../resources/cbi/apply.gif') no-repeat scroll 1px center;
-       background-color: inherit; 
-       color: #000; 
+       background-color: inherit;
+       color: #000;
        padding: 0 1px 0 17px;
-} 
+}
 
-input.cbi-input-link, 
-       input.cbi-button-link { 
-       background: url('../resources/cbi/link.gif') no-repeat scroll 1px center; 
+input.cbi-input-link,
+input.cbi-button-link {
+       background: url('../resources/cbi/link.gif') no-repeat scroll 1px center;
        background-color: inherit;
-       color: #000;    
+       color: #000;
+       padding: 0 1px 0 17px;
+       border: none;
+}
+
+input.cbi-input-download,
+input.cbi-button-download {
+       background: url('../resources/cbi/download.gif') no-repeat scroll 1px center;
+       background-color: inherit;
+       color: #000;
        padding: 0 1px 0 17px;
-       border: none;   
+       border: none;
 }
 
 input.cbi-input-remove,
@@ -994,72 +1003,72 @@ td.cbi-value-error {
        padding: 0.5em;
 }
 
-.uci-change-list {                 
-        font-family: monospace;    
-}                                  
-                                   
-.uci-change-list ins,              
-.uci-change-legend-label ins {     
-        text-decoration: none;     
-        border: 1px solid #00FF00; 
-        background-color: #CCFFCC; 
-        display: block;            
-        padding: 2px;              
-}                                 
-                                           
-.uci-change-list del,               
-.uci-change-legend-label del {                  
-        text-decoration: none;    
+.uci-change-list {
+        font-family: monospace;
+}
+
+.uci-change-list ins,
+.uci-change-legend-label ins {
+        text-decoration: none;
+        border: 1px solid #00FF00;
+        background-color: #CCFFCC;
+        display: block;
+        padding: 2px;
+}
+
+.uci-change-list del,
+.uci-change-legend-label del {
+        text-decoration: none;
         border: 1px solid #FF0000;
         background-color: #FFCCCC;
-        display: block;           
-        font-style: normal;       
-        padding: 2px;             
-}                                 
-                                  
-.uci-change-list var,             
-.uci-change-legend-label var {    
-        text-decoration: none;    
+        display: block;
+        font-style: normal;
+        padding: 2px;
+}
+
+.uci-change-list var,
+.uci-change-legend-label var {
+        text-decoration: none;
         border: 1px solid #CCCCCC;
         background-color: #EEEEEE;
-        display: block;           
-        font-style: normal;       
-        padding: 2px;             
-}                                 
-                                  
-.uci-change-list var ins,         
-.uci-change-list var del {        
-        /*display: inline;*/      
-        border: none;             
-        white-space: pre;         
-        font-style: normal;       
-        padding: 0px;             
-}                                 
-                                  
-.uci-change-legend {              
-        padding: 5px;             
-}                                 
-                                         
-.uci-change-legend-label {          
-        width: 150px;             
-        float: left;              
-        font-size: 80%;           
-}                                 
-
-.uci-change-legend-label>ins,     
-.uci-change-legend-label>del,     
-.uci-change-legend-label>var {    
-        float: left;              
-        margin-right: 4px;        
-        width: 10px;              
-        height: 10px;             
-        display: block;           
-}                                        
-                                    
-.uci-change-legend-label var ins, 
+        display: block;
+        font-style: normal;
+        padding: 2px;
+}
+
+.uci-change-list var ins,
+.uci-change-list var del {
+        /*display: inline;*/
+        border: none;
+        white-space: pre;
+        font-style: normal;
+        padding: 0px;
+}
+
+.uci-change-legend {
+        padding: 5px;
+}
+
+.uci-change-legend-label {
+        width: 150px;
+        float: left;
+        font-size: 80%;
+}
+
+.uci-change-legend-label>ins,
+.uci-change-legend-label>del,
+.uci-change-legend-label>var {
+        float: left;
+        margin-right: 4px;
+        width: 10px;
+        height: 10px;
+        display: block;
+}
+
+.uci-change-legend-label var ins,
 .uci-change-legend-label var del {
-        line-height: 6px;         
-        border: none;             
+        line-height: 6px;
+        border: none;
 }
 
-} 
+}
index 2608177793bca810d3473c38c3d72253935c61c6..a8c257e405e29ea5977e4c568e638621e6fc7a8b 100644 (file)
@@ -74,11 +74,15 @@ You may obtain a copy of the License at
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta http-equiv="Content-Script-Type" content="text/javascript" />
 <link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css" />
-<link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="<%=media%>/mobile.css" type="text/css" />
+<link rel="stylesheet" media="only screen and (max-device-width: 854px)" href="<%=media%>/mobile.css" type="text/css" />
 <link rel="stylesheet" media="handheld" href="<%=media%>/mobile.css" type="text/css" />
 <!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/ie7.css" /><![endif]-->
 <% if node and node.css then %><link rel="stylesheet" type="text/css" media="screen" href="<%=resource%>/<%=node.css%>" />
 <% end -%>
+<% if css then %><style title="text/css">
+<%= css %>
+</style>
+<% end -%>
 <script type="text/javascript" src="<%=resource%>/xhr.js"></script>
 
 <title><%=striptags( hostname .. ( (node and node.title) and ' - ' .. translate(tostring(node.title)) or '')) %> - LuCI</title>
index acb44f3de5d3a6dd709a9b8180a3d9bf1f6a1206..4a6877fa98ecc6b289a6df65bea6324684f8b508 100644 (file)
@@ -529,6 +529,14 @@ input.cbi-button-link {
        padding-right: 1px;
 }
 
+input.cbi-input-download,
+input.cbi-button-download {
+       background-image: url('../resources/cbi/download.gif');
+       color: #000000;
+       padding-left: 17px;
+       padding-right: 1px;
+}
+
 input.cbi-input-remove,
 div.cbi-section-remove input {
        background-image: url('../resources/cbi/remove.gif');
index 9f85959763e9c7b713b6d119572e48278a2e6d68..5006723e6a48e345f74fcf3d0a25ae3fd374ba03 100644 (file)
@@ -107,6 +107,10 @@ $Id$
 <!--[if IE 8]><link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/ie8.css" /><![endif]-->
 <% if node and node.css then %><link rel="stylesheet" type="text/css" media="screen" href="<%=resource%>/<%=node.css%>" />
 <% end -%>
+<% if css then %><style title="text/css">
+<%= css %>
+</style>
+<% end -%>
 <script type="text/javascript" src="<%=resource%>/xhr.js"></script>
 <title><%=striptags( hostname .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title>
 </head>