Merge pull request #956 from lucize/master
authorHannu Nyman <hannu.nyman@iki.fi>
Sun, 19 Mar 2017 14:55:45 +0000 (16:55 +0200)
committerGitHub <noreply@github.com>
Sun, 19 Mar 2017 14:55:45 +0000 (16:55 +0200)
Add luci-proto-ncm for comgt-ncm

280 files changed:
applications/luci-app-adblock/luasrc/model/cbi/adblock.lua
applications/luci-app-adblock/po/ja/adblock.po
applications/luci-app-adblock/po/pt-br/adblock.po [new file with mode: 0644]
applications/luci-app-ahcp/po/pt-br/ahcp.po
applications/luci-app-aria2/po/pt-br/aria2.po [new file with mode: 0644]
applications/luci-app-bcp38/Makefile [new file with mode: 0644]
applications/luci-app-bcp38/luasrc/controller/bcp38.lua [new file with mode: 0644]
applications/luci-app-bcp38/luasrc/model/cbi/bcp38.lua [new file with mode: 0644]
applications/luci-app-bcp38/root/etc/uci-defaults/60_luci-bcp38 [new file with mode: 0755]
applications/luci-app-clamav/Makefile [new file with mode: 0644]
applications/luci-app-clamav/luasrc/controller/clamav.lua [new file with mode: 0644]
applications/luci-app-clamav/luasrc/model/cbi/clamav.lua [new file with mode: 0644]
applications/luci-app-commands/luasrc/controller/commands.lua
applications/luci-app-commands/luasrc/view/commands.htm
applications/luci-app-commands/luasrc/view/commands_public.htm [new file with mode: 0644]
applications/luci-app-commands/po/ca/commands.po
applications/luci-app-commands/po/cs/commands.po
applications/luci-app-commands/po/de/commands.po
applications/luci-app-commands/po/el/commands.po
applications/luci-app-commands/po/en/commands.po
applications/luci-app-commands/po/es/commands.po
applications/luci-app-commands/po/fr/commands.po
applications/luci-app-commands/po/he/commands.po
applications/luci-app-commands/po/hu/commands.po
applications/luci-app-commands/po/it/commands.po
applications/luci-app-commands/po/ja/commands.po
applications/luci-app-commands/po/ms/commands.po
applications/luci-app-commands/po/no/commands.po
applications/luci-app-commands/po/pl/commands.po
applications/luci-app-commands/po/pt-br/commands.po
applications/luci-app-commands/po/pt/commands.po
applications/luci-app-commands/po/ro/commands.po
applications/luci-app-commands/po/ru/commands.po
applications/luci-app-commands/po/sk/commands.po
applications/luci-app-commands/po/sv/commands.po
applications/luci-app-commands/po/templates/commands.pot
applications/luci-app-commands/po/tr/commands.po
applications/luci-app-commands/po/uk/commands.po
applications/luci-app-commands/po/vi/commands.po
applications/luci-app-commands/po/zh-cn/commands.po
applications/luci-app-commands/po/zh-tw/commands.po
applications/luci-app-cshark/Makefile [new file with mode: 0644]
applications/luci-app-cshark/luasrc/controller/cshark.lua [new file with mode: 0644]
applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua [new file with mode: 0644]
applications/luci-app-cshark/luasrc/view/cshark.htm [new file with mode: 0644]
applications/luci-app-ddns/po/pt-br/ddns.po
applications/luci-app-dynapoint/po/ja/dynapoint.po
applications/luci-app-dynapoint/po/pt-br/dynapoint.po [new file with mode: 0644]
applications/luci-app-dynapoint/po/templates/dynapoint.pot
applications/luci-app-e2guardian/Makefile [new file with mode: 0644]
applications/luci-app-e2guardian/luasrc/controller/e2guardian.lua [new file with mode: 0644]
applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua [new file with mode: 0644]
applications/luci-app-firewall/luasrc/model/cbi/firewall/forward-details.lua
applications/luci-app-firewall/luasrc/model/cbi/firewall/rule-details.lua
applications/luci-app-firewall/luasrc/model/cbi/firewall/zone-details.lua
applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua
applications/luci-app-firewall/po/ko/firewall.po
applications/luci-app-firewall/po/pt-br/firewall.po
applications/luci-app-fwknopd/po/pt-br/fwknopd.po [new file with mode: 0644]
applications/luci-app-lxc/Makefile [new file with mode: 0644]
applications/luci-app-lxc/htdocs/luci-static/resources/cbi/green.gif [new file with mode: 0644]
applications/luci-app-lxc/htdocs/luci-static/resources/cbi/purple.gif [new file with mode: 0644]
applications/luci-app-lxc/htdocs/luci-static/resources/cbi/red.gif [new file with mode: 0644]
applications/luci-app-lxc/luasrc/controller/lxc.lua [new file with mode: 0644]
applications/luci-app-lxc/luasrc/model/cbi/lxc.lua [new file with mode: 0644]
applications/luci-app-lxc/luasrc/view/lxc.htm [new file with mode: 0644]
applications/luci-app-lxc/root/etc/config/lxc [new file with mode: 0644]
applications/luci-app-meshwizard/luasrc/model/cbi/freifunk/meshwizard.lua
applications/luci-app-meshwizard/po/pt-br/meshwizard.po
applications/luci-app-minidlna/root/etc/uci-defaults/40_luci-minidlna
applications/luci-app-mjpg-streamer/po/pt-br/mjpg-streamer.po [new file with mode: 0644]
applications/luci-app-mwan3/Makefile [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/controller/mwan3.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_hotplugscript.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_mwanconfig.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_networkconfig.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_wirelessconfig.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/member.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/memberconfig.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/policy.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/policyconfig.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/admin_status/index/mwan.htm [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/mwan/advanced_hotplugscript.htm [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/mwan/advanced_mwanconfig.htm [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/mwan/advanced_networkconfig.htm [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/mwan/advanced_wirelessconfig.htm [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/mwan/config_css.htm [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/mwan/openwrt_overview_status.htm [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/mwan/overview_detailed.htm [new file with mode: 0644]
applications/luci-app-mwan3/luasrc/view/mwan/overview_interface.htm [new file with mode: 0644]
applications/luci-app-mwan3/root/etc/hotplug.d/iface/16-mwancustombak [new file with mode: 0755]
applications/luci-app-mwan3/root/etc/uci-defaults/60_luci-mwan3 [new file with mode: 0755]
applications/luci-app-olsr/po/pt-br/olsr.po
applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
applications/luci-app-openvpn/po/pt-br/openvpn.po
applications/luci-app-privoxy/po/pt-br/privoxy.po [new file with mode: 0644]
applications/luci-app-radicale/po/pt-br/radicale.po [new file with mode: 0644]
applications/luci-app-shadowsocks-libev/po/pt-br/shadowsocks-libev.po [new file with mode: 0644]
applications/luci-app-shairplay/po/pt-br/shairplay.po [new file with mode: 0644]
applications/luci-app-simple-adblock/Makefile [new file with mode: 0644]
applications/luci-app-simple-adblock/luasrc/controller/simpleadblock.lua [new file with mode: 0644]
applications/luci-app-simple-adblock/luasrc/model/cbi/simpleadblock.lua [new file with mode: 0644]
applications/luci-app-simple-adblock/po/templates/simple-adblock.pot [new file with mode: 0644]
applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock [new file with mode: 0644]
applications/luci-app-squid/Makefile [new file with mode: 0644]
applications/luci-app-squid/luasrc/controller/squid.lua [new file with mode: 0644]
applications/luci-app-squid/luasrc/model/cbi/squid.lua [new file with mode: 0644]
applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/rrdtool.lua
applications/luci-app-statistics/luasrc/view/public_statistics/graph.htm
applications/luci-app-statistics/po/ca/statistics.po
applications/luci-app-statistics/po/cs/statistics.po
applications/luci-app-statistics/po/de/statistics.po
applications/luci-app-statistics/po/el/statistics.po
applications/luci-app-statistics/po/en/statistics.po
applications/luci-app-statistics/po/es/statistics.po
applications/luci-app-statistics/po/fr/statistics.po
applications/luci-app-statistics/po/he/statistics.po
applications/luci-app-statistics/po/hu/statistics.po
applications/luci-app-statistics/po/it/statistics.po
applications/luci-app-statistics/po/ja/statistics.po
applications/luci-app-statistics/po/ms/statistics.po
applications/luci-app-statistics/po/no/statistics.po
applications/luci-app-statistics/po/pl/statistics.po
applications/luci-app-statistics/po/pt-br/statistics.po
applications/luci-app-statistics/po/pt/statistics.po
applications/luci-app-statistics/po/ro/statistics.po
applications/luci-app-statistics/po/ru/statistics.po
applications/luci-app-statistics/po/sk/statistics.po
applications/luci-app-statistics/po/sv/statistics.po
applications/luci-app-statistics/po/templates/statistics.pot
applications/luci-app-statistics/po/tr/statistics.po
applications/luci-app-statistics/po/uk/statistics.po
applications/luci-app-statistics/po/vi/statistics.po
applications/luci-app-statistics/po/zh-cn/statistics.po
applications/luci-app-statistics/po/zh-tw/statistics.po
applications/luci-app-statistics/root/usr/bin/stat-genconfig
applications/luci-app-travelmate/po/pt-br/travelmate.po [new file with mode: 0644]
applications/luci-app-uhttpd/po/pt-br/uhttpd.po [new file with mode: 0644]
applications/luci-app-unbound/luasrc/model/cbi/unbound.lua
applications/luci-app-unbound/root/etc/uci-defaults/60_luci-unbound [new file with mode: 0644]
applications/luci-app-upnp/luasrc/model/cbi/upnp/upnp.lua
applications/luci-app-upnp/root/etc/uci-defaults/40_luci-miniupnp [new file with mode: 0755]
applications/luci-app-vpnbypass/Makefile [new file with mode: 0644]
applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua [new file with mode: 0644]
applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua [new file with mode: 0644]
applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po [new file with mode: 0644]
applications/luci-app-vpnbypass/po/templates/vpnbypass.pot [new file with mode: 0644]
applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass [new file with mode: 0644]
applications/luci-app-watchcat/po/pt-br/watchcat.po
applications/luci-app-wifischedule/po/pt-br/wifischedule.po [new file with mode: 0644]
applications/luci-app-wireguard/Makefile [new file with mode: 0644]
applications/luci-app-wireguard/luasrc/controller/wireguard.lua [new file with mode: 0644]
applications/luci-app-wireguard/luasrc/view/wireguard.htm [new file with mode: 0644]
applications/luci-app-wireguard/po/ja/wireguard.po [new file with mode: 0644]
applications/luci-app-wireguard/po/pt-br/wireguard.po [new file with mode: 0644]
applications/luci-app-wireguard/po/templates/wireguard.pot [new file with mode: 0644]
applications/luci-app-wol/luasrc/controller/wol.lua
applications/luci-app-wol/luasrc/model/cbi/wol.lua
applications/luci-app-wol/po/ca/wol.po
applications/luci-app-wol/po/cs/wol.po
applications/luci-app-wol/po/de/wol.po
applications/luci-app-wol/po/el/wol.po
applications/luci-app-wol/po/en/wol.po
applications/luci-app-wol/po/es/wol.po
applications/luci-app-wol/po/fr/wol.po
applications/luci-app-wol/po/he/wol.po
applications/luci-app-wol/po/hu/wol.po
applications/luci-app-wol/po/it/wol.po
applications/luci-app-wol/po/ja/wol.po
applications/luci-app-wol/po/ms/wol.po
applications/luci-app-wol/po/no/wol.po
applications/luci-app-wol/po/pl/wol.po
applications/luci-app-wol/po/pt-br/wol.po
applications/luci-app-wol/po/pt/wol.po
applications/luci-app-wol/po/ro/wol.po
applications/luci-app-wol/po/ru/wol.po
applications/luci-app-wol/po/sk/wol.po
applications/luci-app-wol/po/sv/wol.po
applications/luci-app-wol/po/templates/wol.pot
applications/luci-app-wol/po/tr/wol.po
applications/luci-app-wol/po/uk/wol.po
applications/luci-app-wol/po/vi/wol.po
applications/luci-app-wol/po/zh-cn/wol.po
applications/luci-app-wol/po/zh-tw/wol.po
applications/luci-app-wshaper/Makefile [deleted file]
applications/luci-app-wshaper/luasrc/controller/wshaper.lua [deleted file]
applications/luci-app-wshaper/luasrc/model/cbi/wshaper.lua [deleted file]
applications/luci-app-wshaper/po/ca/wshaper.po [deleted file]
applications/luci-app-wshaper/po/cs/wshaper.po [deleted file]
applications/luci-app-wshaper/po/de/wshaper.po [deleted file]
applications/luci-app-wshaper/po/el/wshaper.po [deleted file]
applications/luci-app-wshaper/po/en/wshaper.po [deleted file]
applications/luci-app-wshaper/po/es/wshaper.po [deleted file]
applications/luci-app-wshaper/po/fr/wshaper.po [deleted file]
applications/luci-app-wshaper/po/he/wshaper.po [deleted file]
applications/luci-app-wshaper/po/hu/wshaper.po [deleted file]
applications/luci-app-wshaper/po/it/wshaper.po [deleted file]
applications/luci-app-wshaper/po/ja/wshaper.po [deleted file]
applications/luci-app-wshaper/po/ms/wshaper.po [deleted file]
applications/luci-app-wshaper/po/no/wshaper.po [deleted file]
applications/luci-app-wshaper/po/pl/wshaper.po [deleted file]
applications/luci-app-wshaper/po/pt-br/wshaper.po [deleted file]
applications/luci-app-wshaper/po/pt/wshaper.po [deleted file]
applications/luci-app-wshaper/po/ro/wshaper.po [deleted file]
applications/luci-app-wshaper/po/ru/wshaper.po [deleted file]
applications/luci-app-wshaper/po/sk/wshaper.po [deleted file]
applications/luci-app-wshaper/po/sv/wshaper.po [deleted file]
applications/luci-app-wshaper/po/templates/wshaper.pot [deleted file]
applications/luci-app-wshaper/po/tr/wshaper.po [deleted file]
applications/luci-app-wshaper/po/uk/wshaper.po [deleted file]
applications/luci-app-wshaper/po/vi/wshaper.po [deleted file]
applications/luci-app-wshaper/po/zh-cn/wshaper.po [deleted file]
applications/luci-app-wshaper/po/zh-tw/wshaper.po [deleted file]
applications/luci-app-wshaper/root/etc/uci-defaults/40_wshaper [deleted file]
collections/luci-ssl-openssl/Makefile
contrib/package/community-profiles/files/etc/config/profile_potsdam
contrib/package/freifunk-common/Makefile
contrib/package/freifunk-common/files/etc/config/freifunk
contrib/package/meshwizard/Makefile
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/rename-wifi.sh
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/setup_wifi.sh
contrib/package/meshwizard/files/usr/bin/meshwizard/helpers/supports_vap.sh
contrib/package/remote-update/Makefile [deleted file]
contrib/package/remote-update/files/usr/sbin/remote-update [deleted file]
libs/luci-lib-nixio/src/fs.c
luci.mk
modules/luci-base/htdocs/luci-static/resources/cbi.js
modules/luci-base/luasrc/cbi/datatypes.lua
modules/luci-base/luasrc/model/network.lua
modules/luci-base/luasrc/tools/status.lua
modules/luci-base/luasrc/view/cbi/mvalue.htm
modules/luci-base/po/ca/base.po
modules/luci-base/po/cs/base.po
modules/luci-base/po/de/base.po
modules/luci-base/po/el/base.po
modules/luci-base/po/en/base.po
modules/luci-base/po/es/base.po
modules/luci-base/po/fr/base.po
modules/luci-base/po/he/base.po
modules/luci-base/po/hu/base.po
modules/luci-base/po/it/base.po
modules/luci-base/po/ja/base.po
modules/luci-base/po/ko/base.po
modules/luci-base/po/ms/base.po
modules/luci-base/po/no/base.po
modules/luci-base/po/pl/base.po
modules/luci-base/po/pt-br/base.po
modules/luci-base/po/pt/base.po
modules/luci-base/po/ro/base.po
modules/luci-base/po/ru/base.po
modules/luci-base/po/sk/base.po
modules/luci-base/po/sv/base.po
modules/luci-base/po/templates/base.pot
modules/luci-base/po/tr/base.po
modules/luci-base/po/uk/base.po
modules/luci-base/po/vi/base.po
modules/luci-base/po/zh-cn/base.po
modules/luci-base/po/zh-tw/base.po
modules/luci-mod-admin-full/luasrc/controller/admin/network.lua
modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua
modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/admin.lua
modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/leds.lua
modules/luci-mod-admin-full/luasrc/view/admin_network/iface_overview.htm
modules/luci-mod-admin-full/luasrc/view/admin_network/iface_status.htm
modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_overview.htm
modules/luci-mod-admin-full/luasrc/view/admin_status/connections.htm
modules/luci-mod-admin-full/luasrc/view/admin_status/index.htm
modules/luci-mod-admin-full/src/luci-bwc.c
modules/luci-mod-admin-mini/luasrc/model/cbi/mini/wifi.lua
protocols/luci-proto-wireguard/Makefile
protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua
themes/luci-theme-bootstrap/luasrc/view/themes/bootstrap/header.htm
themes/luci-theme-freifunk-generic/luasrc/view/themes/freifunk-generic/header.htm
themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm

index d80cb48..0a4a4cd 100644 (file)
@@ -34,13 +34,13 @@ des = bl:option(DummyValue, "adb_src_desc", translate("Description"))
 
 -- Additional options
 
-s2 = m:section(NamedSection, "backup", "service", translate("Backup options"))
+s2 = m:section(NamedSection, "global", "adblock", translate("Backup options"))
 
-o4 = s2:option(Flag, "enabled", translate("Enable blocklist backup"))
+o4 = s2:option(Flag, "adb_backup", translate("Enable blocklist backup"))
 o4.rmempty = false
 o4.default = 0
 
-o5 = s2:option(Value, "adb_dir", translate("Backup directory"))
+o5 = s2:option(Value, "adb_backupdir", translate("Backup directory"))
 o5.rmempty = false
 o5.datatype = "directory"
 
index a3c982f..f436f5c 100644 (file)
@@ -8,15 +8,15 @@ msgstr ""
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 1.8.12\n"
 "Language: ja\n"
 
 msgid ""
 "). Note that list URLs and Shallalist category selections are not "
 "configurable via Luci."
 msgstr ""
-")。これらのリストのURLおよびshallaリストのカテゴリー選択は、Luciによって設定"
-"できないことに注意します。"
+")。これらのリストのURLおよびshallaリストの選択済みカテゴリーは、Luciを通して"
+"設定することができません。"
 
 msgid "Adblock"
 msgstr "Adblock"
@@ -25,7 +25,7 @@ msgid "Available blocklist sources ("
 msgstr "利用可能なブロックリスト提供元です("
 
 msgid "Backup directory"
-msgstr "バックアップ ディレクトリ"
+msgstr "バックアップ ディレクトリ"
 
 msgid "Backup options"
 msgstr "バックアップ オプション"
@@ -36,7 +36,8 @@ msgstr "ブロックリスト提供元"
 msgid ""
 "Configuration of the adblock package to block ad/abuse domains by using DNS."
 msgstr ""
-"広告/不正ドメインをDNSを利用してブロックする、adblock パッケージの設定です。"
+"DNSの利用によって広告/不正ドメインをブロックする、adblock パッケージの設定で"
+"す。"
 
 msgid "Description"
 msgstr "説明"
@@ -60,7 +61,7 @@ msgid ""
 "File with whitelisted hosts/domains that are allowed despite being on a "
 "blocklist."
 msgstr ""
-"ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\9bã\83¯ã\82¤ã\83\88ã\83ªã\82¹ã\83\88 ã\83\9bã\82¹ã\83\88\83\89ã\83¡ã\82¤ã\83³ã\81¯ã\80\81ã\83\96ã\83­ã\83\83ã\82¯ã\83ªã\82¹ã\83\88ã\81«ç\99»é\8c²ã\81\95ã\82\8cã\81¦ã\81\84ã\81¦ã\82\82"
+"ã\83\9bã\83¯ã\82¤ã\83\88ã\83ªã\82¹ã\83\88 ã\83\95ã\82¡ã\82¤ã\83«å\86\85ã\81®ã\83\9bã\82¹ã\83\88\83\89ã\83¡ã\82¤ã\83³ã\81¯ã\80\81ã\83\96ã\83­ã\83\83ã\82¯ã\83ªã\82¹ã\83\88ã\81®ç\99»é\8c²ã\81«é\96¢ã\82\8fã\82\89ã\81\9a"
 "許可されます。"
 
 msgid "Global options"
diff --git a/applications/luci-app-adblock/po/pt-br/adblock.po b/applications/luci-app-adblock/po/pt-br/adblock.po
new file mode 100644 (file)
index 0000000..a238dc7
--- /dev/null
@@ -0,0 +1,92 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid ""
+"). Note that list URLs and Shallalist category selections are not "
+"configurable via Luci."
+msgstr ""
+"). Note que a lista de URL e as seleções de categoria da Shallalist não são "
+"configuráveis pelo Luci."
+
+msgid "Adblock"
+msgstr "Adblock"
+
+msgid "Available blocklist sources ("
+msgstr "Fontes de listas de bloqueio disponíveis ("
+
+msgid "Backup directory"
+msgstr "Diretório da cópia de segurança"
+
+msgid "Backup options"
+msgstr "Opções da cópia de segurança"
+
+msgid "Blocklist sources"
+msgstr "Fontes de listas de bloqueio"
+
+msgid ""
+"Configuration of the adblock package to block ad/abuse domains by using DNS."
+msgstr ""
+"Configuração do pacote adblock para bloquear, usando o DNS, domínios que "
+"distribuem propagandas abusivas."
+
+msgid "Description"
+msgstr "Descrição"
+
+msgid "Enable adblock"
+msgstr "Habilitar adblock"
+
+msgid "Enable blocklist backup"
+msgstr "Habilitar cópia de segurança da lista de bloqueio"
+
+msgid "Enable verbose debug logging"
+msgstr "Habilite registros detalhados para depuração"
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid "Extra options"
+msgstr "Opções adicionais"
+
+msgid ""
+"File with whitelisted hosts/domains that are allowed despite being on a "
+"blocklist."
+msgstr ""
+"Arquivo com a lista branca dos equipamentos/domínios que serão autorizados "
+"mesmo estando na lista de bloqueio."
+
+msgid "Global options"
+msgstr "Opções Globais"
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+"Opções para aprimoramentos adicionais caso as opções padrão não sejam "
+"suficientes para você."
+
+msgid "Restrict reload trigger to certain interface(s)"
+msgstr "Restringir o gatilho de recarga para somente alguma(s) interface(s)"
+
+msgid ""
+"Space separated list of wan interfaces that trigger reload action. To "
+"disable reload trigger set it to 'false'. Default: empty"
+msgstr ""
+"Lista das interfaces WAN, separadas por espaço, que podem disparar uma ação "
+"de recarga. Para desabilitar este gatilho, defina-o como 'false'. Padrão: em "
+"branco"
+
+msgid "Whitelist file"
+msgstr "Arquivo da lista branca"
+
+msgid "see list details"
+msgstr "veja os detalhes da lista"
index 55ec29c..741c145 100644 (file)
@@ -1,20 +1,20 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-03-29 23:07+0200\n"
-"Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-02-17 17:07-0200\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
 "Language-Team: none\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.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"POT-Creation-Date: \n"
 
 msgid "AHCP Server"
 msgstr "Servidor AHCP"
 
-#, fuzzy
 msgid ""
 "AHCP is an autoconfiguration protocol for IPv6 and dual-stack IPv6/IPv4 "
 "networks designed to be used in place of router discovery or DHCP on "
diff --git a/applications/luci-app-aria2/po/pt-br/aria2.po b/applications/luci-app-aria2/po/pt-br/aria2.po
new file mode 100644 (file)
index 0000000..1bb4137
--- /dev/null
@@ -0,0 +1,236 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "\"Falloc\" is not available in all cases."
+msgstr "\"Falloc\" não está disponível em todas as classes."
+
+msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
+msgstr ""
+"<abbr title=\"Distributed Hash Table/Tabla de disperção distribuída\">DHT</"
+"abbr> habilitado"
+
+msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"
+msgstr ""
+"<abbr title=\"Local Peer Discovery/Descoberta de Parceiros Locais\">LPD</"
+"abbr> habilitado"
+
+msgid "Additional Bt tracker enabled"
+msgstr "Rastreadores BitTorrent adicionais habilitado"
+
+msgid "Aria2"
+msgstr "Aria2"
+
+msgid "Aria2 Settings"
+msgstr "Configurações do Aria2"
+
+msgid "Aria2 Status"
+msgstr "Estado do Aria2"
+
+msgid ""
+"Aria2 is a multi-protocol &amp; multi-source download utility, here you can "
+"configure the settings."
+msgstr ""
+"Aria2 é um utilitário de transferência multi-protocolo de múltiplas fontes, "
+"aqui você pode configurá-lo."
+
+msgid "Autosave session interval"
+msgstr "Intervalo para autossalvamento da sessão"
+
+msgid "BitTorrent Settings"
+msgstr "Configurações do BitTorrent"
+
+msgid "BitTorrent listen port"
+msgstr "Porta de escuta do BitTorrent"
+
+msgid "Collecting data..."
+msgstr "Coletando dados..."
+
+msgid "Config file directory"
+msgstr "Diretório dos arquivos de configuração"
+
+msgid "Debug"
+msgstr "Depuração"
+
+msgid "Default download directory"
+msgstr "Diretório padrão de arquivos baixados"
+
+msgid "Disk cache"
+msgstr "Cache em Disco"
+
+msgid "Enable log"
+msgstr "Habilitar registros"
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid "Error"
+msgstr "Erro"
+
+msgid "Extra Settings"
+msgstr "Configurações Adicionais"
+
+msgid "Falloc"
+msgstr "Falloc"
+
+msgid "Files and Locations"
+msgstr "Arquivos e Locais"
+
+msgid "Follow torrent"
+msgstr "Seguir torrent"
+
+msgid "General Settings"
+msgstr "Configurações Gerais"
+
+msgid "Generate Randomly"
+msgstr "Gerar aleatoriamente"
+
+msgid "Info"
+msgstr "Informações"
+
+msgid "List of additional Bt tracker"
+msgstr "Lista de rastreadores BitTorrent adicionais"
+
+msgid "List of extra settings"
+msgstr "Lista de configurações adicionais"
+
+msgid "Log file is in the config file dir."
+msgstr ""
+"Arquivo de registro (log) está no diretório do arquivo de configuração."
+
+msgid "Log level"
+msgstr "Nível do registro"
+
+msgid "Max concurrent downloads"
+msgstr "Número máximo de transferencias simultâneas"
+
+msgid "Max connection per server"
+msgstr "Numero máximo de conexões por servidor"
+
+msgid "Max number of peers per torrent"
+msgstr "Numero máximo de parceiros por torrent"
+
+msgid "Max number of split"
+msgstr "Numero máximo de divisões"
+
+msgid "Min split size"
+msgstr "Tamanho mínimo da divisão"
+
+msgid "No Authentication"
+msgstr "Sem Autenticação"
+
+msgid "Notice"
+msgstr "Aviso"
+
+msgid "Off"
+msgstr "Desligado"
+
+msgid "Open WebUI-Aria2"
+msgstr "Abrir WebUI-Aria2"
+
+msgid "Open YAAW"
+msgstr "Abrir YAAW"
+
+msgid "Overall download limit"
+msgstr "Limite global para baixar"
+
+msgid "Overall speed limit enabled"
+msgstr "Limite da taxa de transferência global habilitado"
+
+msgid "Overall upload limit"
+msgstr "Limite global para subir"
+
+msgid "Per task download limit"
+msgstr "Limite por tarefa para baixar"
+
+msgid "Per task speed limit enabled"
+msgstr "Limite da taxa de transferência por tarefa habilitado"
+
+msgid "Per task upload limit"
+msgstr "Limite por tarefa para subir"
+
+msgid "Prealloc"
+msgstr "Pré-alocação"
+
+msgid "Preallocation"
+msgstr "Pré-alocação"
+
+msgid "Prefix of peer ID"
+msgstr "Prefixo da identificação do paceiro"
+
+msgid "RPC Token"
+msgstr ""
+"Chave eletrônica do <abbr title=\"Remote Procedure Call/Chamada de "
+"Procedimento Remoto\">RPC</abbr>"
+
+msgid "RPC authentication method"
+msgstr ""
+"Método de autenticação do <abbr title=\"Remote Procedure Call/Chamada de "
+"Procedimento Remoto\">RPC</abbr>"
+
+msgid "RPC password"
+msgstr ""
+"Senha do <abbr title=\"Remote Procedure Call/Chamada de Procedimento Remoto"
+"\">RPC</abbr>"
+
+msgid "RPC port"
+msgstr ""
+"Porta do <abbr title=\"Remote Procedure Call/Chamada de Procedimento Remoto"
+"\">RPC</abbr>"
+
+msgid "RPC username"
+msgstr ""
+"Nome do usuario do <abbr title=\"Remote Procedure Call/Chamada de "
+"Procedimento Remoto\">RPC</abbr>"
+
+msgid "Run daemon as user"
+msgstr "Executar serviço como usuário"
+
+msgid "Sec"
+msgstr "Segurança"
+
+msgid "Task Settings"
+msgstr "Configurações das tarefas"
+
+msgid "The Aria2 service is not running."
+msgstr "O serviço Aria2 está parado."
+
+msgid "The Aria2 service is running."
+msgstr "O serviço Aria2 está em execução."
+
+msgid "Token"
+msgstr "Chave eletrônica"
+
+msgid "Trunc"
+msgstr "Truncar"
+
+msgid "Use WebSocket"
+msgstr "Use WebSockets"
+
+msgid "User agent value"
+msgstr "Valor da identificação do agente do usuário"
+
+msgid "Username & Password"
+msgstr "Usuário & Senha"
+
+msgid "View Json-RPC URL"
+msgstr "Visualizar URL do JSON-RPC"
+
+msgid "Warn"
+msgstr "Atenção"
+
+msgid "in bytes, You can append K or M."
+msgstr "em bytes. Você pode sufixar com K (quilo) ou M (mega)."
+
+msgid "in bytes/sec, You can append K or M."
+msgstr "em bytes por segundo. Você pode sufixar com K (quilo) ou M (mega)."
diff --git a/applications/luci-app-bcp38/Makefile b/applications/luci-app-bcp38/Makefile
new file mode 100644 (file)
index 0000000..9ab5a67
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2010 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=BCP38 LuCI interface
+LUCI_DEPENDS:=+luci-mod-admin-full +bcp38
+
+PKG_MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
+PKG_LICENSE:=Apache-2.0
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-bcp38/luasrc/controller/bcp38.lua b/applications/luci-app-bcp38/luasrc/controller/bcp38.lua
new file mode 100644 (file)
index 0000000..7ea2283
--- /dev/null
@@ -0,0 +1,7 @@
+module("luci.controller.bcp38", package.seeall)
+
+function index()
+       entry({"admin", "network", "firewall", "bcp38"},
+               cbi("bcp38"),
+               _("BCP38"), 50).dependent = false
+end
diff --git a/applications/luci-app-bcp38/luasrc/model/cbi/bcp38.lua b/applications/luci-app-bcp38/luasrc/model/cbi/bcp38.lua
new file mode 100644 (file)
index 0000000..632074a
--- /dev/null
@@ -0,0 +1,60 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2014 Toke Høiland-Jørgensen <toke@toke.dk>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+
+local wa = require "luci.tools.webadmin"
+local net = require "luci.model.network".init()
+local ifaces = net:get_interfaces()
+
+m = Map("bcp38", translate("BCP38"),
+       translate("This function blocks packets with private address destinations " ..
+               "from going out onto the internet as per " ..
+               "<a href=\"http://tools.ietf.org/html/bcp38\">BCP 38</a>. " ..
+               "For IPv6, only source specific default routes are installed, so " ..
+               "no BCP38 firewall routes are needed."))
+
+s = m:section(TypedSection, "bcp38", translate("BCP38 config"))
+s.anonymous = true
+-- BASIC
+e = s:option(Flag, "enabled", translate("Enable"))
+e.rmempty = false
+
+a = s:option(Flag, "detect_upstream", translate("Auto-detect upstream IP"),
+                               translate("Attempt to automatically detect if the upstream IP " ..
+                                       "will be blocked by the configuration, and add an exception if it will. " ..
+                                       "If this does not work correctly, you can add exceptions manually below."))
+a.rmempty = false
+
+n = s:option(ListValue, "interface", translate("Interface name"), translate("Interface to apply the blocking to " ..
+                                                       "(should be the upstream WAN interface)."))
+for _, iface in ipairs(ifaces) do
+     if iface:is_up() then
+       n:value(iface:name())
+     end
+end
+n.rmempty = false
+
+ma = s:option(DynamicList, "match",
+       translate("Blocked IP ranges"))
+
+ma.datatype = "ip4addr"
+
+nm = s:option(DynamicList, "nomatch",
+       translate("Allowed IP ranges"), translate("Takes precedence over blocked ranges. "..
+                                                 "Use to whitelist your upstream network if you're behind a double NAT " ..
+                                                 "and the auto-detection doesn't work."))
+
+nm.datatype = "ip4addr"
+
+
+return m
diff --git a/applications/luci-app-bcp38/root/etc/uci-defaults/60_luci-bcp38 b/applications/luci-app-bcp38/root/etc/uci-defaults/60_luci-bcp38
new file mode 100755 (executable)
index 0000000..c204236
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+       delete ucitrack.@bcp38[-1]
+       add ucitrack bcp38
+        add_list ucitrack.@bcp38[0].affects=firewall
+       commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-clamav/Makefile b/applications/luci-app-clamav/Makefile
new file mode 100644 (file)
index 0000000..f91e692
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=ClamAV LuCI interface
+LUCI_DEPENDS:=+luci-mod-admin-full +clamav
+
+PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
+PKG_LICENSE:=Apache-2.0
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-clamav/luasrc/controller/clamav.lua b/applications/luci-app-clamav/luasrc/controller/clamav.lua
new file mode 100644 (file)
index 0000000..02f3bfc
--- /dev/null
@@ -0,0 +1,22 @@
+--[[
+
+LuCI ClamAV module
+
+Copyright (C) 2015, Itus Networks, Inc.
+
+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
+
+Author: Marko Ratkaj <marko.ratkaj@sartura.hr>
+       Luka Perkov <luka.perkov@sartura.hr>
+
+]]--
+
+module("luci.controller.clamav", package.seeall)
+
+function index()
+       entry({"admin", "services", "clamav"}, cbi("clamav"), _("ClamAV"))
+end
diff --git a/applications/luci-app-clamav/luasrc/model/cbi/clamav.lua b/applications/luci-app-clamav/luasrc/model/cbi/clamav.lua
new file mode 100644 (file)
index 0000000..ff98139
--- /dev/null
@@ -0,0 +1,178 @@
+--[[
+
+LuCI ClamAV module
+
+Copyright (C) 2015, Itus Networks, Inc.
+
+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
+
+Author: Marko Ratkaj <marko.ratkaj@sartura.hr>
+       Luka Perkov <luka.perkov@sartura.hr>
+
+]]--
+
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
+require "ubus"
+
+m = Map("clamav", translate("ClamAV"))
+m.on_after_commit = function() luci.sys.call("/etc/init.d/clamav restart") end
+
+s = m:section(TypedSection, "clamav")
+s.anonymous = true
+s.addremove = false
+
+s:tab("tab_advanced", translate("Settings"))
+s:tab("tab_logs", translate("Log"))
+
+--------------- Settings --------------
+
+LogFileMaxSize = s:taboption("tab_advanced", Value, "LogFileMaxSize", translate("Max size of log file"))
+LogFileMaxSize:value("512K",  translate("512K"))
+LogFileMaxSize:value("1M",  translate("1M"))
+LogFileMaxSize:value("2M",  translate("2M"))
+LogFileMaxSize.default = "1M"
+
+LogTime = s:taboption("tab_advanced", ListValue, "LogTime", translate("Log time with each message"))
+LogTime:value("no",  translate("No"))
+LogTime:value("yes",  translate("Yes"))
+LogTime.default = "no"
+
+LogVerbose = s:taboption("tab_advanced", ListValue, "LogVerbose", translate("Enable verbose logging"))
+LogVerbose:value("no",  translate("No"))
+LogVerbose:value("yes",  translate("Yes"))
+LogVerbose.default = "no"
+
+ExtendedDetectionInfo = s:taboption("tab_advanced", ListValue, "ExtendedDetectionInfo", translate("Log additional infection info"))
+ExtendedDetectionInfo:value("no",  translate("No"))
+ExtendedDetectionInfo:value("yes",  translate("Yes"))
+ExtendedDetectionInfo.default = "no"
+
+dummy3 = s:taboption("tab_advanced", DummyValue, "")
+dummy4 = s:taboption("tab_advanced", DummyValue, "")
+
+MaxDirectoryRecursion = s:taboption("tab_advanced", Value, "MaxDirectoryRecursion", translate("Max directory scan depth"))
+MaxDirectoryRecursion:value("15",  translate("15"))
+MaxDirectoryRecursion:value("20",  translate("20"))
+MaxDirectoryRecursion.default = "15"
+
+FollowDirectorySymlink = s:taboption("tab_advanced", ListValue, "FollowDirectorySymlink", translate("Follow directory symlinks"))
+FollowDirectorySymlink:value("no",  translate("No"))
+FollowDirectorySymlink:value("yes",  translate("Yes"))
+FollowDirectorySymlink.default = "no"
+
+FollowFileSymlinks = s:taboption("tab_advanced", ListValue, "FollowFileSymlinks", translate("Follow file symlinks"))
+FollowFileSymlinks:value("no",  translate("No"))
+FollowFileSymlinks:value("yes",  translate("Yes"))
+FollowFileSymlinks.default = "no"
+
+DetectPUA = s:taboption("tab_advanced", ListValue, "DetectPUA", translate("Detect possibly unwanted apps"))
+DetectPUA:value("no",  translate("No"))
+DetectPUA:value("yes",  translate("Yes"))
+DetectPUA.default = "no"
+
+ScanPE = s:taboption("tab_advanced", ListValue, "ScanPE", translate("Scan portable executables"))
+ScanPE:value("no",  translate("No"))
+ScanPE:value("yes",  translate("Yes"))
+ScanPE.default = "yes"
+
+ScanELF = s:taboption("tab_advanced", ListValue, "ScanELF", translate("Scan ELF files"))
+ScanELF:value("no",  translate("No"))
+ScanELF:value("yes",  translate("Yes"))
+ScanELF.default = "yes"
+
+DetectBrokenExecutables = s:taboption("tab_advanced", ListValue, "DetectBrokenExecutables", translate("Detect broken executables"))
+DetectBrokenExecutables:value("no",  translate("No"))
+DetectBrokenExecutables:value("yes",  translate("Yes"))
+DetectBrokenExecutables.default = "no"
+
+ScanOLE2 = s:taboption("tab_advanced", ListValue, "ScanOLE2", translate("Scan MS Office and .msi files"))
+ScanOLE2:value("no",  translate("No"))
+ScanOLE2:value("yes",  translate("Yes"))
+ScanOLE2.default = "yes"
+
+ScanPDF = s:taboption("tab_advanced", ListValue, "ScanPDF", translate("Scan pdf files"))
+ScanPDF:value("no",  translate("No"))
+ScanPDF:value("yes",  translate("Yes"))
+ScanPDF.default = "yes"
+
+ScanSWF = s:taboption("tab_advanced", ListValue, "ScanSWF", translate("Scan swf files"))
+ScanSWF:value("no",  translate("No"))
+ScanSWF:value("yes",  translate("Yes"))
+ScanSWF.default = "yes"
+
+ScanMail = s:taboption("tab_advanced", ListValue, "ScanMail", translate("Scan emails"))
+ScanMail:value("no",  translate("No"))
+ScanMail:value("yes",  translate("Yes"))
+ScanMail.default = "yes"
+
+ScanPartialMessages = s:taboption("tab_advanced", ListValue, "ScanPartialMessages", translate("Scan RFC1341 messages split over many emails"))
+ScanPartialMessages:value("no",  translate("No"))
+ScanPartialMessages:value("yes",  translate("Yes"))
+ScanPartialMessages.default = "no"
+
+ScanArchive = s:taboption("tab_advanced", ListValue, "ScanArchive", translate("Scan archives"))
+ScanArchive:value("no",  translate("No"))
+ScanArchive:value("yes",  translate("Yes"))
+ScanArchive.default = "yes"
+
+ArchiveBlockEncrypted = s:taboption("tab_advanced", ListValue, "ArchiveBlockEncrypted", translate("Block encrypted archives"))
+ArchiveBlockEncrypted:value("no",  translate("No"))
+ArchiveBlockEncrypted:value("yes",  translate("Yes"))
+ArchiveBlockEncrypted.default = "no"
+
+dummy5 = s:taboption("tab_advanced", DummyValue, "")
+dummy6 = s:taboption("tab_advanced", DummyValue, "")
+
+StreamMinPort = s:taboption("tab_advanced", Value, "StreamMinPort", translate("Port range, lowest port"))
+StreamMinPort.datatype = "portrange"
+StreamMinPort:value("1024",translate("1024"))
+StreamMinPort.default = "1024"
+
+StreamMaxPort = s:taboption("tab_advanced", Value, "StreamMaxPort", translate("Port range, highest port"))
+StreamMaxPort.datatype = "portrange"
+StreamMaxPort:value("2048",translate("2048"))
+StreamMaxPort.default = "2048"
+
+MaxThreads = s:taboption("tab_advanced", Value, "MaxThreads", translate("Max number of threads"))
+MaxThreads.datatype = "and(uinteger,min(1))"
+MaxThreads:value("10",translate("10"))
+MaxThreads:value("20",translate("20"))
+MaxThreads.default = "10"
+
+SelfCheck = s:taboption("tab_advanced", Value, "SelfCheck", translate("Database check every N sec"))
+SelfCheck.datatype = "and(uinteger,min(1))"
+SelfCheck:value("600",translate("600"))
+SelfCheck.default = "600"
+
+MaxFileSize = s:taboption("tab_advanced", Value, "MaxFileSize", translate("Max size of scanned file"))
+MaxFileSize.datatype = "string"
+MaxFileSize:value("150M",translate("150M"))
+MaxFileSize:value("50M",translate("50M"))
+MaxFileSize.default = "150M"
+
+------------------ Log --------------------
+
+clamav_logfile = s:taboption("tab_logs", TextValue, "lines", "")
+clamav_logfile.wrap = "off"
+clamav_logfile.rows = 25
+clamav_logfile.rmempty = true
+
+function clamav_logfile.cfgvalue()
+       local uci = require "luci.model.uci".cursor_state()
+       local file = "/tmp/clamd.log"
+       if file then
+               return fs.readfile(file) or ""
+       else
+               return ""
+       end
+end
+
+function clamav_logfile.write()
+end
+
+return m
index 16528d1..ca91813 100644 (file)
@@ -153,8 +153,8 @@ local function parse_cmdline(cmdid, args)
        end
 end
 
-function action_run(...)
-       local fs   = require "nixio.fs"
+function execute_command(callback, ...)
+       local fs = require "nixio.fs"
        local argv = parse_cmdline(...)
        if argv then
                local outfile = os.tmpname()
@@ -169,8 +169,8 @@ function action_run(...)
 
                local binary = not not (stdout:match("[%z\1-\8\14-\31]"))
 
-               luci.http.prepare_content("application/json")
-               luci.http.write_json({
+               callback({
+                       ok       = true,
                        command  = table.concat(argv, " "),
                        stdout   = not binary and stdout,
                        stderr   = stderr,
@@ -178,10 +178,41 @@ function action_run(...)
                        binary   = binary
                })
        else
-               luci.http.status(404, "No such command")
+               callback({
+                       ok       = false,
+                       code     = 404,
+                       reason   = "No such command"
+               })
+       end
+end
+
+function return_json(result)
+       if result.ok then
+               luci.http.prepare_content("application/json")
+               luci.http.write_json(result)
+       else
+               luci.http.status(result.code, result.reason)
        end
 end
 
+function action_run(...)
+       execute_command(return_json, ...)
+end
+
+function return_html(result)
+       if result.ok then
+               require("luci.template")
+               luci.template.render("commands_public", {
+                       exitcode = result.exitcode,
+                       stdout = result.stdout,
+                       stderr = result.stderr
+               })
+       else
+               luci.http.status(result.code, result.reason)
+       end
+
+end
+
 function action_download(...)
        local fs   = require "nixio.fs"
        local argv = parse_cmdline(...)
@@ -192,11 +223,11 @@ function action_download(...)
                        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")
+                                       % 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")
+                                       % fs.basename(argv[1]):gsub("%W+", ".") .. ".txt")
                                luci.http.prepare_content("text/plain")
                        end
 
@@ -214,14 +245,24 @@ function action_download(...)
        end
 end
 
+
 function action_public(cmdid, args)
+       local disp = false
+       if string.sub(cmdid, -1) == "s" then
+               disp = true
+               cmdid = string.sub(cmdid, 1, -2)
+       end
        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")
+               uci:get("luci", cmdid) == "command" and
+               uci:get("luci", cmdid, "public") == "1"
+               then
+                       if disp then
+                               execute_command(return_html, cmdid, args)
+                       else
+                               action_download(cmdid, args)
+                       end
+               else
+                       luci.http.status(403, "Access to command denied")
+               end
        end
-end
index 73b9e6a..f094e18 100644 (file)
 
                if (legend && output)
                {
-                       var link = location.protocol + '//' + location.hostname +
+                       var prefix = location.protocol + '//' + location.hostname +
                                   (location.port ? ':' + location.port : '') +
-                                          location.pathname.split(';')[0] + 'command/' +
-                                          id + (args ? '/' + args : '');
-
+                                          location.pathname.split(';')[0] + 'command/';
+                       var suffix = (args ? '/' + args : '');
+                       
+                       var link = prefix + id + suffix;
+                       var link_nodownload = prefix + id + "s" + suffix;
+                       
                        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
+                               '<div class="alert-message"><p><%:Download execution result%> <a href="%s">%s</a></p><p><%:Or display result%> <a href="%s">%s</a></p></div>',
+                               link, link, link_nodownload, link_nodownload
                        );
 
                        location.hash = '#output';
diff --git a/applications/luci-app-commands/luasrc/view/commands_public.htm b/applications/luci-app-commands/luasrc/view/commands_public.htm
new file mode 100644 (file)
index 0000000..f20799d
--- /dev/null
@@ -0,0 +1,50 @@
+<%#
+ Copyright 2016 t123yh <t123yh@outlook.com>
+ Licensed to the public under the Apache License 2.0.
+-%>
+
+<% css = [[
+.alert-success {
+    color: #3c763d;
+    background-color: #dff0d8;
+    border-color: #d6e9c6;
+}
+
+.alert {
+    padding: 15px;
+    margin-bottom: 20px;
+    border: 1px solid transparent;
+    border-radius: 4px;
+}
+
+.alert-warning {
+    color: #8a6d3b;
+    background-color: #fcf8e3;
+    border-color: #faebcc;
+}
+]] -%>
+
+<%+header%>
+
+<% if exitcode == 0 then %>
+    <div class="alert alert-success" role="alert"> <%:Command executed successfully.%> </div>
+<% else %>
+    <div class="alert alert-warning" role="alert"> <%:Command exited with status code %> <%= exitcode %> </div>
+<% end %>
+
+<% if stdout ~= "" then %>
+    <h3><%:Standard Output%></h3>
+    <pre><%= stdout %></pre>
+<% end %>
+
+<% if stderr ~= "" then %>
+    <h3><%:Standard Error%></h3>
+    <pre><%= stderr %></pre>
+<% end %>
+
+<script>
+    <%# Display top bar on mobile devices -%>
+    document.getElementsByClassName('brand')[0].style.setProperty("display", "block", "important");
+</script>
+
+<%+footer%>
\ No newline at end of file
index 9dc23b2..11ea896 100644 (file)
@@ -14,9 +14,6 @@ msgstr ""
 msgid "A short textual description of the configured command"
 msgstr "Una breva descripció textual de l'ordre configurat"
 
-msgid "Access command with"
-msgstr "Accedeix l'ordre amb"
-
 msgid ""
 "Allow executing the command and downloading its output without prior "
 "authentication"
@@ -42,6 +39,12 @@ msgstr "Recollint dades..."
 msgid "Command"
 msgstr "Ordre"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "L'ordre ha fallat"
 
@@ -72,6 +75,9 @@ msgstr "Descripció"
 msgid "Download"
 msgstr "Baixa"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "L'execució de l'ordre ha fallat!"
 
@@ -81,12 +87,21 @@ msgstr "Enllaç"
 msgid "Loading"
 msgstr "Carregant"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Accés públic"
 
 msgid "Run"
 msgstr "Executa"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -96,3 +111,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "Esperant que l'ordre acabi..."
+
+#~ msgid "Access command with"
+#~ msgstr "Accedeix l'ordre amb"
index 64949bd..f6aa3cc 100644 (file)
@@ -14,9 +14,6 @@ msgstr ""
 msgid "A short textual description of the configured command"
 msgstr "Krátky popis nastaveného příkazu"
 
-msgid "Access command with"
-msgstr ""
-
 msgid ""
 "Allow executing the command and downloading its output without prior "
 "authentication"
@@ -40,6 +37,12 @@ msgstr "Sbírání dat..."
 msgid "Command"
 msgstr "Příkaz"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Příkaz selhal"
 
@@ -70,6 +73,9 @@ msgstr "Popis"
 msgid "Download"
 msgstr "Stáhnout"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "Chyba při zpracování příkazu!"
 
@@ -79,12 +85,21 @@ msgstr "Odkaz"
 msgid "Loading"
 msgstr "Nahrávám"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Veřejný přístup"
 
 msgid "Run"
 msgstr "Spustit"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
index 2b7c631..e67404a 100644 (file)
@@ -14,9 +14,6 @@ msgstr ""
 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"
@@ -42,6 +39,12 @@ msgstr "Sammle Daten..."
 msgid "Command"
 msgstr "Kommando"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Kommando fehlgeschlagen"
 
@@ -72,6 +75,9 @@ msgstr "Beschreibung"
 msgid "Download"
 msgstr "Herunterladen"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "Kommando konnte nicht ausgeführt werden!"
 
@@ -81,12 +87,21 @@ msgstr "Link"
 msgid "Loading"
 msgstr "Lade"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Öffentlicher Zugriff"
 
 msgid "Run"
 msgstr "Ausführen"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -96,3 +111,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "Warte auf die Ausführung des Kommandos..."
+
+#~ msgid "Access command with"
+#~ msgstr "Kommando aufrufen mit"
index 0e9e65d..48b1836 100644 (file)
@@ -11,9 +11,6 @@ msgstr ""
 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"
@@ -37,6 +34,12 @@ msgstr ""
 msgid "Command"
 msgstr ""
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr ""
 
@@ -67,6 +70,9 @@ msgstr ""
 msgid "Download"
 msgstr ""
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr ""
 
@@ -76,12 +82,21 @@ msgstr ""
 msgid "Loading"
 msgstr ""
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr ""
 
 msgid "Run"
 msgstr ""
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
index 754a229..ec192e4 100644 (file)
@@ -1,19 +1,20 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
+"Project-Id-Version: \n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\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"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language: en\n"
+"X-Generator: Poedit 1.8.11\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"
@@ -39,6 +40,12 @@ msgstr "Collecting data..."
 msgid "Command"
 msgstr "Command"
 
+msgid "Command executed successfully."
+msgstr "Command executed successfully."
+
+msgid "Command exited with status code"
+msgstr "Command exited with status code"
+
 msgid "Command failed"
 msgstr "Command failed"
 
@@ -69,6 +76,9 @@ msgstr "Description"
 msgid "Download"
 msgstr "Download"
 
+msgid "Download execution result"
+msgstr "Download execution result"
+
 msgid "Failed to execute command!"
 msgstr "Failed to execute command!"
 
@@ -78,12 +88,21 @@ msgstr "Link"
 msgid "Loading"
 msgstr "Loading"
 
+msgid "Or display result"
+msgstr "Or display result"
+
 msgid "Public access"
 msgstr "Public access"
 
 msgid "Run"
 msgstr "Run"
 
+msgid "Standard Error"
+msgstr "Standard Error"
+
+msgid "Standard Output"
+msgstr "Standard Output"
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -93,3 +112,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "Waiting for command to complete..."
+
+#~ msgid "Command exited with status code "
+#~ msgstr "Command exited with status code "
index 8052452..b9029b9 100644 (file)
@@ -14,9 +14,6 @@ msgstr ""
 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"
@@ -41,6 +38,12 @@ msgstr "Recuperando datos..."
 msgid "Command"
 msgstr "Comando"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Falló"
 
@@ -71,6 +74,9 @@ msgstr "Descripción"
 msgid "Download"
 msgstr "Descarga"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "¡Error al ejecutar el comando!"
 
@@ -80,12 +86,21 @@ msgstr "Enlace"
 msgid "Loading"
 msgstr "Cargando"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Acceso público"
 
 msgid "Run"
 msgstr "Ejecutar"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -95,3 +110,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "Esperando a que termine el comando..."
+
+#~ msgid "Access command with"
+#~ msgstr "Acceder al comando con"
index fac1aff..f348326 100644 (file)
@@ -14,9 +14,6 @@ msgstr ""
 msgid "A short textual description of the configured command"
 msgstr "Une courte description de la commande configurée"
 
-msgid "Access command with"
-msgstr "Accéder à la commande par"
-
 msgid ""
 "Allow executing the command and downloading its output without prior "
 "authentication"
@@ -44,6 +41,12 @@ msgstr "Récupération des données ..."
 msgid "Command"
 msgstr "Commande"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Echec de la commande"
 
@@ -74,6 +77,9 @@ msgstr "Description"
 msgid "Download"
 msgstr "Télécharger"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "Echec de l'exécution de la commande ! "
 
@@ -83,12 +89,21 @@ msgstr "Lien"
 msgid "Loading"
 msgstr "Chargement"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Accès public"
 
 msgid "Run"
 msgstr "Exécuter"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -98,3 +113,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "En attente de la commande pour finir..."
+
+#~ msgid "Access command with"
+#~ msgstr "Accéder à la commande par"
index 0e9e65d..48b1836 100644 (file)
@@ -11,9 +11,6 @@ msgstr ""
 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"
@@ -37,6 +34,12 @@ msgstr ""
 msgid "Command"
 msgstr ""
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr ""
 
@@ -67,6 +70,9 @@ msgstr ""
 msgid "Download"
 msgstr ""
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr ""
 
@@ -76,12 +82,21 @@ msgstr ""
 msgid "Loading"
 msgstr ""
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr ""
 
 msgid "Run"
 msgstr ""
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
index 5cd0ec7..a9c759b 100644 (file)
@@ -14,9 +14,6 @@ msgstr ""
 msgid "A short textual description of the configured command"
 msgstr "A beállított parancs rövid szöveges leírása"
 
-msgid "Access command with"
-msgstr "Parancs hozzáférése"
-
 msgid ""
 "Allow executing the command and downloading its output without prior "
 "authentication"
@@ -42,6 +39,12 @@ msgstr "Adatgyűjtés..."
 msgid "Command"
 msgstr "Paracs"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Parancs végrehajtás sikertelen"
 
@@ -72,6 +75,9 @@ msgstr "Leírás"
 msgid "Download"
 msgstr "Letöltés"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "Parancs végrehajtása sikertelen!"
 
@@ -81,12 +87,21 @@ msgstr "Link"
 msgid "Loading"
 msgstr "Betöltés"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Nyilvános hozzáférés"
 
 msgid "Run"
 msgstr "Futtatás"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -96,3 +111,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "Várakozás a parancs befejezésére..."
+
+#~ msgid "Access command with"
+#~ msgstr "Parancs hozzáférése"
index c14b910..8155a07 100644 (file)
@@ -14,9 +14,6 @@ msgstr ""
 msgid "A short textual description of the configured command"
 msgstr "Una breve descrizione testuale del comando configurato"
 
-msgid "Access command with"
-msgstr "Accesso comando con"
-
 msgid ""
 "Allow executing the command and downloading its output without prior "
 "authentication"
@@ -43,6 +40,12 @@ msgstr "Raccolta dei dati..."
 msgid "Command"
 msgstr "Comando"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Comando fallito"
 
@@ -73,6 +76,9 @@ msgstr "Descrizione"
 msgid "Download"
 msgstr "Download"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "Impossibile eseguire il comando!"
 
@@ -82,12 +88,21 @@ msgstr "Collegamento"
 msgid "Loading"
 msgstr "Caricamento"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Accesso Pubblico"
 
 msgid "Run"
 msgstr "Esegui"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -97,3 +112,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "In attesa del comando da completare..."
+
+#~ msgid "Access command with"
+#~ msgstr "Accesso comando con"
index 99b5a45..307951c 100644 (file)
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2016-12-21 11:59+0900\n"
+"PO-Revision-Date: 2017-01-21 18:09+0900\n"
 "Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
 "Language-Team: none\n"
 "Language: ja\n"
@@ -15,9 +15,6 @@ msgstr ""
 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"
@@ -41,6 +38,12 @@ msgstr "データ収集中です..."
 msgid "Command"
 msgstr "コマンド"
 
+msgid "Command executed successfully."
+msgstr "コマンドの実行に成功しました。"
+
+msgid "Command exited with status code"
+msgstr "コマンドは次のステータス コードで終了しました:"
+
 msgid "Command failed"
 msgstr "コマンド失敗"
 
@@ -71,6 +74,9 @@ msgstr "説明"
 msgid "Download"
 msgstr "ダウンロード"
 
+msgid "Download execution result"
+msgstr "実行結果のダウンロード:"
+
 msgid "Failed to execute command!"
 msgstr "コマンドの実行に失敗しました!"
 
@@ -80,12 +86,21 @@ msgstr "リンク"
 msgid "Loading"
 msgstr "読み込み中"
 
+msgid "Or display result"
+msgstr "または結果の表示:"
+
 msgid "Public access"
 msgstr "パブリック・アクセス"
 
 msgid "Run"
 msgstr "実行"
 
+msgid "Standard Error"
+msgstr "標準エラー"
+
+msgid "Standard Output"
+msgstr "標準出力"
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -95,3 +110,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "コマンド実行中です..."
+
+#~ msgid "Access command with"
+#~ msgstr "コマンドへのアクセス"
index 6fbb983..ad2f151 100644 (file)
@@ -10,9 +10,6 @@ msgstr ""
 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"
@@ -36,6 +33,12 @@ msgstr ""
 msgid "Command"
 msgstr ""
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr ""
 
@@ -66,6 +69,9 @@ msgstr ""
 msgid "Download"
 msgstr ""
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr ""
 
@@ -75,12 +81,21 @@ msgstr ""
 msgid "Loading"
 msgstr ""
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr ""
 
 msgid "Run"
 msgstr ""
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
index 29b76e5..593c976 100644 (file)
@@ -14,9 +14,6 @@ msgstr ""
 msgid "A short textual description of the configured command"
 msgstr "En kort tekstlig beskrivelse av den konfigurerte kommandoen"
 
-msgid "Access command with"
-msgstr "Åpne kommandoen med"
-
 msgid ""
 "Allow executing the command and downloading its output without prior "
 "authentication"
@@ -42,6 +39,12 @@ msgstr "Henter data..."
 msgid "Command"
 msgstr "Kommando"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Kommando feilet"
 
@@ -72,6 +75,9 @@ msgstr "Beskrivelse"
 msgid "Download"
 msgstr "Nedlasting"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "Kunne ikke utføre kommandoen!"
 
@@ -81,12 +87,21 @@ msgstr "Link"
 msgid "Loading"
 msgstr "Laster"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Tilgjengelig for alle"
 
 msgid "Run"
 msgstr "Kjør"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -96,3 +111,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "Venter på at kommandoen fullføres..."
+
+#~ msgid "Access command with"
+#~ msgstr "Åpne kommandoen med"
index 6f660ba..7c62eb0 100644 (file)
@@ -15,9 +15,6 @@ msgstr ""
 msgid "A short textual description of the configured command"
 msgstr "Krótki opis konfigurowanej komendy"
 
-msgid "Access command with"
-msgstr "Dostęp do komendy przez"
-
 msgid ""
 "Allow executing the command and downloading its output without prior "
 "authentication"
@@ -43,6 +40,12 @@ msgstr "Zbieram dane:"
 msgid "Command"
 msgstr "Komenda"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Zła komenda"
 
@@ -73,6 +76,9 @@ msgstr "Opis"
 msgid "Download"
 msgstr "Download"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "Nie można wykonać komendy!"
 
@@ -82,12 +88,21 @@ msgstr "Łącze"
 msgid "Loading"
 msgstr "Ładowanie"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Publiczny dostęp"
 
 msgid "Run"
 msgstr "Uruchom"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -97,3 +112,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "Czekanie na wykonanie komendy..."
+
+#~ msgid "Access command with"
+#~ msgstr "Dostęp do komendy przez"
index 83c7bd5..4d04bff 100644 (file)
@@ -1,22 +1,20 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-03-15 22:02+0200\n"
-"Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-02-20 17:39-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
 "Language-Team: none\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.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"POT-Creation-Date: \n"
 
 msgid "A short textual description of the configured command"
 msgstr "Uma pequena descrição textual do comando configurado"
 
-msgid "Access command with"
-msgstr "Acessar o comando com"
-
 msgid ""
 "Allow executing the command and downloading its output without prior "
 "authentication"
@@ -42,6 +40,12 @@ msgstr "Adquirindo dados..."
 msgid "Command"
 msgstr "Comando"
 
+msgid "Command executed successfully."
+msgstr "O comando executou com sucesso."
+
+msgid "Command exited with status code"
+msgstr "O comando encerrou com um estado de erro"
+
 msgid "Command failed"
 msgstr "O comando falhou"
 
@@ -72,6 +76,9 @@ msgstr "Descrição"
 msgid "Download"
 msgstr "Baixar"
 
+msgid "Download execution result"
+msgstr "Baixar os resultados da execução"
+
 msgid "Failed to execute command!"
 msgstr "Falha ao executar comando!"
 
@@ -81,12 +88,21 @@ msgstr "Endereço"
 msgid "Loading"
 msgstr "Carregando"
 
+msgid "Or display result"
+msgstr "Ou mostre o resultado"
+
 msgid "Public access"
 msgstr "Acesso público"
 
 msgid "Run"
 msgstr "Executar"
 
+msgid "Standard Error"
+msgstr "Saída de Erro"
+
+msgid "Standard Output"
+msgstr "Saída Padrão"
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -96,3 +112,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "Aguardando a conclusão do comando..."
+
+#~ msgid "Access command with"
+#~ msgstr "Acessar o comando com"
index a46b7d2..b2ad0ae 100644 (file)
@@ -14,9 +14,6 @@ msgstr ""
 msgid "A short textual description of the configured command"
 msgstr "Uma pequena descrição textual do comando configurado"
 
-msgid "Access command with"
-msgstr "Aceder ao comando com"
-
 msgid ""
 "Allow executing the command and downloading its output without prior "
 "authentication"
@@ -43,6 +40,12 @@ msgstr "A obter dados..."
 msgid "Command"
 msgstr "Comando"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "O comando falhou"
 
@@ -73,6 +76,9 @@ msgstr "Descrição"
 msgid "Download"
 msgstr "Descarregar"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "Falha ao executar comando!"
 
@@ -82,12 +88,21 @@ msgstr "Link"
 msgid "Loading"
 msgstr "A carregar"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Acesso público"
 
 msgid "Run"
 msgstr "Executar"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -97,3 +112,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "A aguardar que o comando termine..."
+
+#~ msgid "Access command with"
+#~ msgstr "Aceder ao comando com"
index 05c4574..57d1f7b 100644 (file)
@@ -15,9 +15,6 @@ msgstr ""
 msgid "A short textual description of the configured command"
 msgstr "O scurta descriere textuala a comenzii configurate"
 
-msgid "Access command with"
-msgstr "Acces la comanda cu"
-
 msgid ""
 "Allow executing the command and downloading its output without prior "
 "authentication"
@@ -43,6 +40,12 @@ msgstr "Colectare date..."
 msgid "Command"
 msgstr "Comandă"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Comandă eşuată"
 
@@ -73,6 +76,9 @@ msgstr "Descriere"
 msgid "Download"
 msgstr "Descarca"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "S-a esuat executarea comenzii!!"
 
@@ -82,12 +88,21 @@ msgstr "Link"
 msgid "Loading"
 msgstr "Se incarca"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Access public"
 
 msgid "Run"
 msgstr "Ruleaza"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -97,3 +112,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "Astept finalizarea comenzii..."
+
+#~ msgid "Access command with"
+#~ msgstr "Acces la comanda cu"
index 6197231..0c035ab 100644 (file)
@@ -15,9 +15,6 @@ msgstr ""
 msgid "A short textual description of the configured command"
 msgstr "Короткое текстовое описание команды"
 
-msgid "Access command with"
-msgstr "Доступ к команде через"
-
 #, fuzzy
 msgid ""
 "Allow executing the command and downloading its output without prior "
@@ -46,6 +43,12 @@ msgstr "Сбор данных..."
 msgid "Command"
 msgstr "Команда"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Команда не выполнена"
 
@@ -76,6 +79,9 @@ msgstr "Описание"
 msgid "Download"
 msgstr "Скачать"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "Ошибка выполнения команды!"
 
@@ -85,12 +91,21 @@ msgstr "Ссылка"
 msgid "Loading"
 msgstr "Загрузка"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Публичный доступ"
 
 msgid "Run"
 msgstr "Запуск"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -100,3 +115,6 @@ msgstr ""
 
 msgid "Waiting for command to complete..."
 msgstr "Ожидание завершения команды..."
+
+#~ msgid "Access command with"
+#~ msgstr "Доступ к команде через"
index 4133dfb..17bed40 100644 (file)
@@ -11,9 +11,6 @@ msgstr ""
 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"
@@ -37,6 +34,12 @@ msgstr ""
 msgid "Command"
 msgstr ""
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr ""
 
@@ -67,6 +70,9 @@ msgstr ""
 msgid "Download"
 msgstr ""
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr ""
 
@@ -76,12 +82,21 @@ msgstr ""
 msgid "Loading"
 msgstr ""
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr ""
 
 msgid "Run"
 msgstr ""
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
index 9fbe0af..5a4c255 100644 (file)
@@ -12,9 +12,6 @@ msgstr ""
 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"
@@ -38,6 +35,12 @@ msgstr ""
 msgid "Command"
 msgstr ""
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr ""
 
@@ -68,6 +71,9 @@ msgstr ""
 msgid "Download"
 msgstr ""
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr ""
 
@@ -77,12 +83,21 @@ msgstr ""
 msgid "Loading"
 msgstr ""
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr ""
 
 msgid "Run"
 msgstr ""
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
index 5d2ffae..31df11d 100644 (file)
@@ -4,9 +4,6 @@ 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"
@@ -30,6 +27,12 @@ msgstr ""
 msgid "Command"
 msgstr ""
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr ""
 
@@ -60,6 +63,9 @@ msgstr ""
 msgid "Download"
 msgstr ""
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr ""
 
@@ -69,12 +75,21 @@ msgstr ""
 msgid "Loading"
 msgstr ""
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr ""
 
 msgid "Run"
 msgstr ""
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
index 4132274..587bc2b 100644 (file)
@@ -11,9 +11,6 @@ msgstr ""
 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"
@@ -37,6 +34,12 @@ msgstr ""
 msgid "Command"
 msgstr ""
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr ""
 
@@ -67,6 +70,9 @@ msgstr ""
 msgid "Download"
 msgstr ""
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr ""
 
@@ -76,12 +82,21 @@ msgstr ""
 msgid "Loading"
 msgstr ""
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr ""
 
 msgid "Run"
 msgstr ""
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
index 74a19f3..f72fc93 100644 (file)
@@ -16,9 +16,6 @@ msgstr ""
 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"
@@ -43,6 +40,12 @@ msgstr "Збирання даних..."
 msgid "Command"
 msgstr ""
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "Команда не виконана"
 
@@ -74,6 +77,9 @@ msgstr "Опис"
 msgid "Download"
 msgstr "Завантажити"
 
+msgid "Download execution result"
+msgstr ""
+
 #, fuzzy
 msgid "Failed to execute command!"
 msgstr "Помилка під час запуску команди!"
@@ -84,12 +90,21 @@ msgstr ""
 msgid "Loading"
 msgstr "Триває завантаження"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "Відкритий доступ"
 
 msgid "Run"
 msgstr "Запустити"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
index 4132274..587bc2b 100644 (file)
@@ -11,9 +11,6 @@ msgstr ""
 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"
@@ -37,6 +34,12 @@ msgstr ""
 msgid "Command"
 msgstr ""
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr ""
 
@@ -67,6 +70,9 @@ msgstr ""
 msgid "Download"
 msgstr ""
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr ""
 
@@ -76,12 +82,21 @@ msgstr ""
 msgid "Loading"
 msgstr ""
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr ""
 
 msgid "Run"
 msgstr ""
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
index 8b2b032..90f1dbe 100644 (file)
@@ -1,22 +1,20 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2013-10-08 15:47+0200\n"
-"Last-Translator: Tanyingyu <Tanyingyu@163.com>\n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-01-21 09:34+0900\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@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"
+"X-Generator: Poedit 1.8.11\n"
+"POT-Creation-Date: \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"
@@ -40,6 +38,12 @@ msgstr "收集数据:"
 msgid "Command"
 msgstr "命令"
 
+msgid "Command executed successfully."
+msgstr "命令成功执行。"
+
+msgid "Command exited with status code"
+msgstr "命令退出,状态码:"
+
 msgid "Command failed"
 msgstr "执行命令失败"
 
@@ -70,6 +74,9 @@ msgstr "描述"
 msgid "Download"
 msgstr "下载"
 
+msgid "Download execution result"
+msgstr "下载执行结果"
+
 msgid "Failed to execute command!"
 msgstr "执行命令失败!"
 
@@ -79,12 +86,21 @@ msgstr "连接"
 msgid "Loading"
 msgstr "加载中"
 
+msgid "Or display result"
+msgstr "显示执行结果"
+
 msgid "Public access"
 msgstr "公共访问"
 
 msgid "Run"
 msgstr "运行"
 
+msgid "Standard Error"
+msgstr "标准错误流"
+
+msgid "Standard Output"
+msgstr "标准输出流"
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -92,3 +108,6 @@ msgstr "此页面允许您配置自定义Shell命令,并可以从Web界面调
 
 msgid "Waiting for command to complete..."
 msgstr "等待命令执行完成... ..."
+
+#~ msgid "Command exited with status code "
+#~ msgstr "命令退出,状态码:"
index 4377ead..f1f4525 100644 (file)
@@ -14,9 +14,6 @@ msgstr ""
 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"
@@ -40,6 +37,12 @@ msgstr "收集資料中..."
 msgid "Command"
 msgstr "指令"
 
+msgid "Command executed successfully."
+msgstr ""
+
+msgid "Command exited with status code"
+msgstr ""
+
 msgid "Command failed"
 msgstr "命令失敗"
 
@@ -70,6 +73,9 @@ msgstr "描述"
 msgid "Download"
 msgstr "下載"
 
+msgid "Download execution result"
+msgstr ""
+
 msgid "Failed to execute command!"
 msgstr "執行指令失敗!"
 
@@ -79,12 +85,21 @@ msgstr "連結"
 msgid "Loading"
 msgstr "掛載"
 
+msgid "Or display result"
+msgstr ""
+
 msgid "Public access"
 msgstr "公用存取"
 
 msgid "Run"
 msgstr "執行"
 
+msgid "Standard Error"
+msgstr ""
+
+msgid "Standard Output"
+msgstr ""
+
 msgid ""
 "This page allows you to configure custom shell commands which can be easily "
 "invoked from the web interface."
@@ -92,3 +107,6 @@ msgstr "只要可以從web介輕易調用, 這頁面允許你自定shell指令."
 
 msgid "Waiting for command to complete..."
 msgstr "等待完整命令中..."
+
+#~ msgid "Access command with"
+#~ msgstr "存取指令"
diff --git a/applications/luci-app-cshark/Makefile b/applications/luci-app-cshark/Makefile
new file mode 100644 (file)
index 0000000..40b0e9f
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2017 Dan Luedtke <mail@danrl.com>
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Cloudshark capture tool Web UI
+LUCI_DEPENDS:=+cshark
+LUCI_PKGARCH:=all
+
+PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-cshark/luasrc/controller/cshark.lua b/applications/luci-app-cshark/luasrc/controller/cshark.lua
new file mode 100644 (file)
index 0000000..4d9bbba
--- /dev/null
@@ -0,0 +1,125 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright (C) 2014, QA Cafe, Inc.
+
+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.cshark", package.seeall)
+
+function index()
+               page = node("admin", "network", "cloudshark")
+               page.target = cbi("admin_network/cshark")
+               page.title = _("CloudShark")
+               page.order = 70
+
+               page = entry({"admin", "network", "cshark_iface_dump_start"}, call("cshark_iface_dump_start"), nil)
+               page.leaf = true
+
+               page = entry({"admin", "network", "cshark_iface_dump_stop"}, call("cshark_iface_dump_stop"), nil)
+               page.leaf = true
+
+               page = entry({"admin", "network", "cshark_check_status"}, call("cshark_check_status"), nil)
+               page.leaf = true
+
+               page = entry({"admin", "network", "cshark_link_list_get"}, call("cshark_link_list_get"), nil)
+               page.leaf = true
+
+               page = entry({"admin", "network", "cshark_link_list_clear"}, call("cshark_link_list_clear"), nil)
+               page.leaf = true
+end
+
+function cshark_iface_dump_start(ifname, value, flag, filter)
+       if ifname == nil or ifname == '' then
+               ifname = 'any'
+       end
+       if tonumber(value) == nil
+       then
+               value = '0'
+       end
+       if filter == nil or filter == '' then
+               filter = ''
+       end
+
+       if flag == nil or flag == '' then
+               filter = 'T'
+       end
+
+       luci.http.prepare_content("text/plain")
+
+       local res = os.execute("(/sbin/cshark -i " .. ifname .. " -" .. flag .. " " .. value .. " -p /tmp/cshark-luci.pid " .. filter .. " > /tmp/cshark-luci.out 2>&1) &")
+       luci.http.write(tostring(res))
+end
+
+function cshark_iface_dump_stop()
+       luci.http.prepare_content("text/plain")
+
+       local f = io.open("/tmp/cshark-luci.pid", "rb")
+       local pid = f:read("*all")
+       io.close(f)
+
+       local res = os.execute("kill -TERM " .. pid)
+       luci.http.write(tostring(res))
+end
+
+function cshark_check_status()
+
+       local msg = "";
+       local status;
+       local f = io.open("/tmp/cshark-luci.pid","r")
+       if f ~= nil then
+               status = 1;
+               io.close(f)
+       else
+               status = 0;
+       end
+
+       f = io.open("/tmp/cshark-luci.out","r")
+       if f ~= nil then
+               msg = f:read("*all")
+               io.close(f)
+               if msg ~= '' then
+                       os.remove('/tmp/cshark-luci.out')
+               end
+       end
+
+       luci.http.prepare_content("application/json")
+
+       local res = {}
+       res["status"] = status;
+       res["msg"] = msg;
+
+       luci.http.write_json(res)
+end
+
+function cshark_link_list_get()
+       local uci = require("uci").cursor()
+
+       luci.http.prepare_content("application/json")
+
+       luci.http.write("[")
+
+       local t = uci:get("cshark", "cshark", "entry")
+  if (t ~= nil) then
+         for i = #t, 1, -1 do
+                 luci.http.write("[\"" .. t[i] .. "\"],")
+         end
+  end
+
+       luci.http.write("[]]")
+end
+
+function cshark_link_list_clear()
+       local uci = require("uci").cursor()
+
+       uci:delete("cshark", "cshark", "entry")
+       uci:commit("cshark");
+
+       luci.http.status(200, "OK")
+end
diff --git a/applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua b/applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua
new file mode 100644 (file)
index 0000000..8db9559
--- /dev/null
@@ -0,0 +1,30 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright (C) 2014, QA Cafe, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+
+local fs = require "nixio.fs"
+
+m = Map("cshark", translate("CloudShark"))
+
+if fs.access("/etc/config/cshark") then
+       m:section(SimpleSection).template = "cshark"
+
+       s = m:section(TypedSection, "cshark", translate("Options"))
+       s.anonymous = true
+       s.addremove = false
+
+       s:option(Value, "url", translate("CloudShark URL"))
+       s:option(Value, "token", translate("CloudShark API token"))
+end
+
+return m
diff --git a/applications/luci-app-cshark/luasrc/view/cshark.htm b/applications/luci-app-cshark/luasrc/view/cshark.htm
new file mode 100644 (file)
index 0000000..bc67f80
--- /dev/null
@@ -0,0 +1,291 @@
+<%#
+LuCI - Lua Configuration Interface
+
+Copyright (C) 2014, QA Cafe, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+
+<fieldset class="cbi-section">
+       <legend><%:Start network capture%></legend>
+       <div class="cbi-section-node">
+               <table class="cbi-section-table">
+                       <tr>
+                               <th><%:Interface%></th>
+                               <th colspan='2'><%:seconds, packets, bytes%></th>
+                               <th><%:Filter%></th>
+                               <th><%:Actions%></th>
+                       </tr>
+                       <tr>
+                               <td>
+                                       <select title="<%:Interface%>" style="width:auto" id="s_interfaces">
+                                       <%
+                                               local nixio = require "nixio"
+                                               for k, v in ipairs(nixio.getifaddrs()) do
+                                                       if v.family == "packet" then
+                                                       %>
+                                                               <option value="<%=v.name%>"><%=v.name%> </option>
+                                                       <%
+                                                       end
+                                               end
+                                       %>
+                                               <option value="any"><%:any%></option>
+                                       </select>
+                               </td>
+                               <td colspan='2'>
+                                       <input id="tx_value" type="text" value="0" />
+                                       <select title="<%:timeout, bytes, seconds%>" id="s_value_type" style="width:auto">
+                                               <option value="T"><%:seconds%></option>
+                                               <option value="P"><%:packets%></option>
+                                               <option value="S"><%:bytes%></option>
+                                       </select>
+                               </td>
+                               <td>
+                                       <input style="margin: 5px 0" type="text" title="<%:Filter%>" placeholder="filter" id="i_filter" />
+                               </td>
+                               <td>
+                                       <input type="button" id="bt_action" data-action="start" value="<%:Start capture%>" class="cbi-button" />
+                               </td>
+                       </tr>
+               </table>
+       </div>
+</fieldset>
+
+<fieldset class="cbi-section">
+       <span id="cshark-rc-output"></span>
+</fieldset>
+
+<hr/>
+
+<fieldset class="cbi-section">
+       <legend><%:Capture links%></legend>
+       <div class="cbi-section-node">
+               <table id="t_link_list" class="cbi-section-table">
+                       <tr class="cbi-section-table-titles">
+                               <th class="cbi-section-table-cell"><%:Capture URL%></th>
+                               <th class="cbi-section-table-cell"><%:Capture time%></th>
+                       </tr>
+               </table>
+       </div>
+</fieldset>
+
+<fieldset class="cbi-section">
+  <a href="https://support.cloudshark.org/openwrt/openwrt-cloudshark.html" target="_blank">Visit support.cloudshark.org for help.</a>
+</fieldset>
+
+<hr/>
+
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
+<script type="text/javascript">//<![CDATA[
+
+       var capture_running = 0;
+       var pid_file = 0;
+       var bt_action = document.getElementById('bt_action');
+       var a_clear_links = document.getElementById('a_clear_links');
+       var output = document.getElementById('cshark-rc-output');
+       var loader = '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" width="16" height="16" style="vertical-align:middle" /> ';
+       var msg = { 'start' : '<%:Waiting for capture to complete...%>', 'stop' : '<%:Waiting for upload to complete...%>' };
+       var status_msg = msg['start'];
+
+       function get_date(timestamp)
+       {
+               function pad_str(str)
+               {
+                       return (str < 10) ? "0" + str : str;
+               }
+
+               var current_date = new Date(timestamp * 1000);
+               return current_date.getFullYear() + "-" +
+                               pad_str(current_date.getMonth() + 1) + "-" +
+                               pad_str(current_date.getDate()) + " " +
+                               pad_str(current_date.getHours()) + ":" +
+                               pad_str(current_date.getMinutes()) + ":" +
+                               pad_str(current_date.getSeconds());
+       }
+
+       bt_action.onclick = function()
+       {
+               var action = this.getAttribute("data-action");
+               var csxhr = new XHR();
+
+               if (action == "stop")
+               {
+                       update_status(action);
+
+                       bt_action.disabled = true;
+
+                       csxhr.get('<%=luci.dispatcher.build_url("admin", "network")%>/cshark_iface_dump_stop', null,
+                       function(x)
+                       {
+                               if (!x || x.responseText.trim() != "0")
+                               {
+                                       update_status("failed", "Invalid response on stop.");
+                               }
+                       });
+
+               }
+               else if (action == "start")
+               {
+
+                       var s_interfaces = document.getElementById('s_interfaces');
+                       var s_value_type = document.getElementById('s_value_type');
+                       var i_filter = document.getElementById('i_filter');
+
+                       var if_n = s_interfaces.selectedIndex;
+                       var t_n = s_value_type.selectedIndex;
+                       var ifname = s_interfaces.options[if_n].value.trim();
+                       var filter_val = i_filter.value.trim();
+                       var tx_val = document.getElementById('tx_value').value.trim();
+                       var type_val = s_value_type.options[t_n].value.trim();
+
+                       if (type_val != 'P' && type_val != 'T' && type_val != 'S') type_val = 'T';
+
+                       if (!ifname || !type_val) return;
+
+                       if (isNaN(tx_val)) return alert("<%:value for [seconds, packets, bytes] must be Integer%>");
+
+                       update_status(action);
+
+                       csxhr.get('<%=luci.dispatcher.build_url("admin", "network")%>/cshark_iface_dump_start/' + ifname + '/' + tx_val + '/' + type_val + '/'+ filter_val, null,
+                       function(x)
+                       {
+                               if (!x)
+                                       update_status("failed", "Invalid response on start.");
+                               else
+                                       update_status("running");
+                       });
+               }
+       }
+
+       function update_status(status, message)
+       {
+               switch (status)
+               {
+                       case 'start':
+                       case 'stop':
+                               status_msg = msg[status];
+                               output.innerHTML = loader + status_msg;
+                       break
+
+                       case 'running':
+                               if (capture_running) break;;
+
+                               output.innerHTML = loader + status_msg;
+
+                               bt_action.value = '<%:Stop capture%>';
+                               bt_action.setAttribute('data-action', 'stop');
+                               capture_running = 1;
+                       break;
+
+                       case 'completed':
+                       case 'failed':
+                               if (!capture_running) break;
+
+                               if (status == "completed")
+                               {
+                                       link_list_update();
+                               }
+
+                               output.innerHTML = "<pre>" + message + "</pre>";
+                               bt_action.value = '<%:Start capture%>';
+                               bt_action.setAttribute('data-action', 'start');
+                               bt_action.disabled = false;
+                               capture_running = 0;
+                       break;
+               }
+       }
+
+
+       function check_status()
+       {
+
+               XHR.poll(3, '<%=luci.dispatcher.build_url("admin", "network")%>/cshark_check_status', null,
+               function(x, data)
+               {
+                       if (!x)
+                       {
+                               if (capture_running)
+                                       update_status("failed", "Invalid response when fetching status.");
+
+                               return;
+                       }
+                       console.log(data)
+
+                       update_status( (data.status == 1) && "running" || "completed", data.msg);
+               })
+       }
+
+       function link_list_clear()
+       {
+               var csxhr_del = new XHR();
+               csxhr_del.get('<%=luci.dispatcher.build_url("admin", "network")%>/cshark_link_list_clear', null,
+               function(x)
+               {
+                       if (!x)
+                               return false;
+
+                       link_list_update();
+               });
+       }
+
+
+       function link_list_update()
+       {
+               var t_link = document.getElementById("t_link_list");
+               if (!t_link) return;
+
+               var row_count = t_link.rows.length;
+               while(--row_count) t_link.deleteRow(row_count);
+
+               var cell = t_link.insertRow(-1).insertCell(0);
+               cell.colSpan = 2;
+               cell.innerHTML = loader;
+
+               var csxhr_link = new XHR();
+               csxhr_link.get('<%=luci.dispatcher.build_url("admin", "network")%>/cshark_link_list_get', null,
+               function(x, entries)
+               {
+                       var row = t_link.deleteRow(1);
+
+                       if (!x) return;
+
+                       if (!entries || !entries.length)
+                       {
+                               var cell = t_link.insertRow(-1).insertCell(0);
+                               cell.colSpan = 2;
+                               cell.innerHTML = '<em><br />There are no captures available yet.</em>';
+
+                               return;
+                       }
+
+                       for (var i = 0, len = entries.length; i < len ; i++)
+                       {
+                               var entry = entries[i][0];
+                               if (!entry) continue;
+
+                               var data = entry.split(",");
+                               var url = data[0];
+                               var timestamp = data[1];
+
+                               var row = t_link.insertRow(-1);
+                               row.insertCell(0).innerHTML = '<a href="'+url+'" target="_blank">'+url+'</a>';
+                               row.insertCell(1).innerHTML = get_date(timestamp);
+                       }
+
+                       var cell = t_link.insertRow(-1).insertCell(0);
+                       cell.colSpan = 2;
+                       cell.style.textAlign="center";
+                       cell.innerHTML = '<input type="button" onclick="link_list_clear()" class="cbi-button" value ="<%:Clear list%>" />';
+               })
+       }
+
+       check_status();
+       link_list_update();
+//]]></script>
index 4970846..ab22837 100644 (file)
@@ -2,15 +2,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: luci-app-ddns 2.4.0-1\n"
 "POT-Creation-Date: 2016-01-30 11:07+0100\n"
-"PO-Revision-Date: 2016-07-01 22:40-0300\n"
-"Last-Translator: Matheus Dal Mago <matheusdalmago10@gmail.com>\n"
+"PO-Revision-Date: 2017-02-20 17:41-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
 "Language-Team: \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: Poedit 1.8.8\n"
+"X-Generator: Poedit 1.8.11\n"
 
 msgid "&"
 msgstr "&"
@@ -228,7 +228,7 @@ msgid "Error Retry Interval"
 msgstr "Intervalo de tentativas em Erro"
 
 msgid "Event Network"
-msgstr ""
+msgstr "Rede de Evento"
 
 msgid "File"
 msgstr "Arquivo"
@@ -438,16 +438,16 @@ msgid "No certificates found"
 msgstr "Nenhum certificado encontrado"
 
 msgid "No data"
-msgstr ""
+msgstr "Sem dados"
 
 msgid "No logging"
-msgstr ""
+msgstr "Sem registros"
 
 msgid "Non-public and by default blocked IP's"
 msgstr "IPs não públicos e bloqueados por padrão"
 
 msgid "Notice"
-msgstr ""
+msgstr "Aviso"
 
 msgid "Number of last lines stored in log files"
 msgstr "Número das últimas linhas salvas nos arquivos de log"
@@ -475,7 +475,7 @@ msgstr ""
 "Em Erro, o script irá para a execução após um número definido de tentativas"
 
 msgid "OpenWrt Wiki"
-msgstr ""
+msgstr "Wiki do OpenWRT"
 
 msgid "Optional Encoded Parameter"
 msgstr "Parâmetro Opcionalmente Codificado"
@@ -490,7 +490,7 @@ msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)"
 msgstr "Opcional: Substitui [PARAMOPT] na URL de atualização"
 
 msgid "Overview"
-msgstr ""
+msgstr "Visão Geral"
 
 msgid "PROXY-Server"
 msgstr "servidor PROXY"
@@ -575,7 +575,7 @@ msgid "There is no service configured."
 msgstr "Não há serviço configurado"
 
 msgid "Timer Settings"
-msgstr ""
+msgstr "Configurações do Controlador de Tempo"
 
 msgid "To change global settings click here"
 msgstr "Clique aqui para mudar configurações globais"
index 0273739..7503198 100644 (file)
@@ -19,13 +19,11 @@ msgid "Append hostname to ssid"
 msgstr "ホスト名をSSIDに追加する"
 
 msgid "Append the router's hostname to the SSID when connectivity check fails"
-msgstr ""
-"接続性のチェックが失敗した場合、ルーターのホスト名をSSIDに追加します。"
+msgstr "接続性のチェックが失敗した場合、ルーターのホスト名をSSIDに追加します。"
 
 msgid "Check Internet connectivity via HTTP header download"
 msgstr ""
-"HTTP ヘッダーのダウンロードを通して、インターネットの接続性をチェックしま"
-"す。"
+"HTTP ヘッダーのダウンロードを通して、インターネットの接続性をチェックします。"
 
 msgid "Configuration"
 msgstr "設定"
@@ -62,8 +60,8 @@ msgstr "ホストアドレスのリスト"
 msgid ""
 "List of host addresses (url or IP) to track and request http headers from"
 msgstr ""
-"HTTP ヘッダーの追跡およびリクエストを行う、ホスト アドレス(URLまたはIP)の"
-"ã\83ªã\82¹ã\83\88ã\81§ã\81\99ã\80\82"
+"HTTP ヘッダーの追跡およびリクエストを行う、ホスト アドレス(URLまたはIP)の"
+"ストです。"
 
 msgid "Mode"
 msgstr "モード"
@@ -103,8 +101,8 @@ msgstr "使用するインターフェース"
 
 msgid "Which interface should curl use. (Use ifconfig to find out)"
 msgstr ""
-"curl が使用するインターフェースです。ifconfigを使用してインターフェース名を"
-"認します。"
+"curl が使用するインターフェースです。ifconfigを使用してインターフェース名を"
+"認します。"
 
 msgid "WiFi Status"
 msgstr "無線ステータス"
diff --git a/applications/luci-app-dynapoint/po/pt-br/dynapoint.po b/applications/luci-app-dynapoint/po/pt-br/dynapoint.po
new file mode 100644 (file)
index 0000000..59b0262
--- /dev/null
@@ -0,0 +1,107 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Activate this wVIF if status is:"
+msgstr "Aivar este wVIF se o estado for:"
+
+msgid "Append hostname to ssid"
+msgstr "Sufixar o nome do equipamento ao SSID"
+
+msgid "Append the router's hostname to the SSID when connectivity check fails"
+msgstr ""
+"Sufixar o nome do roteador ao SSID quando a verificação da conectividade "
+"falhar"
+
+msgid "Check Internet connectivity via HTTP header download"
+msgstr "Cerifique a conectividade com a internet baixando o cabeçalho HTTP "
+
+msgid "Configuration"
+msgstr "Configuração"
+
+msgid "Curl is currently not installed."
+msgstr "O cURL não está instalado."
+
+msgid "Device"
+msgstr "Dispositivo"
+
+msgid "Disabled"
+msgstr "Desabilitado"
+
+msgid "DynaPoint"
+msgstr "DynaPoint"
+
+msgid "Dynamic Access Point Manager"
+msgstr "Gerenciamento do Ponto de Acesso Dinâmico"
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid ""
+"Failure counter after how many failed download attempts, the state is "
+"considered as offline"
+msgstr "Numero de falhar para considerar como inalcançável"
+
+msgid "List of Wireless Virtual Interfaces (wVIF)"
+msgstr "Lista de Interfaces Virtuais Wireless (wVIF)"
+
+msgid "List of host addresses"
+msgstr "Lista de endereços dos equipamentos"
+
+msgid ""
+"List of host addresses (url or IP) to track and request http headers from"
+msgstr ""
+"Lista de endereços dos equipamentos (URL ou endereço IP) para requisitar "
+"cabeçalhos HTTP"
+
+msgid "Mode"
+msgstr "Modo"
+
+msgid "Not used by DynaPoint"
+msgstr "Não usado pelo DynaPoint"
+
+msgid "Offline"
+msgstr "Desconectado"
+
+msgid "Online"
+msgstr "Conectado"
+
+msgid "SSID"
+msgstr "SSID"
+
+msgid "Switch_to_offline threshold"
+msgstr "Limiar para mudar para desconectado"
+
+msgid "Test-run interval"
+msgstr "Intervalo para execução do teste"
+
+msgid "Time interval in seconds to re-start a new test run"
+msgstr "Intervalo, em segundos, para reiniciar um nova execução do teste"
+
+msgid "Use curl"
+msgstr "Usar cURL"
+
+msgid "Use curl instead of wget"
+msgstr "Usar cURL ao invés do wget"
+
+msgid "Use curl instead of wget for testing the connectivity."
+msgstr "Usar cURL ao invés do wget para testar a conectividade."
+
+msgid "Used interface"
+msgstr "Dispositivos usadas"
+
+msgid "Which interface should curl use. (Use ifconfig to find out)"
+msgstr "Qual dispositivo o cURL deve usar. (Use ifconfig para listá-las)"
+
+msgid "WiFi Status"
+msgstr "Estado da WiFi"
diff --git a/applications/luci-app-e2guardian/Makefile b/applications/luci-app-e2guardian/Makefile
new file mode 100644 (file)
index 0000000..c3ac029
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=E2Guardian LuCI Interface
+LUCI_DEPENDS:=+luci-mod-admin-full +e2guardian
+
+PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
+PKG_LICENSE:=Apache-2.0
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-e2guardian/luasrc/controller/e2guardian.lua b/applications/luci-app-e2guardian/luasrc/controller/e2guardian.lua
new file mode 100644 (file)
index 0000000..dd545f5
--- /dev/null
@@ -0,0 +1,22 @@
+--[[
+
+LuCI E2Guardian module
+
+Copyright (C) 2015, Itus Networks, Inc.
+
+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
+
+Author: Marko Ratkaj <marko.ratkaj@sartura.hr>
+       Luka Perkov <luka.perkov@sartura.hr>
+
+]]--
+
+module("luci.controller.e2guardian", package.seeall)
+
+function index()
+       entry({"admin", "services", "e2guardian"}, cbi("e2guardian"), _("E2Guardian"))
+end
diff --git a/applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua b/applications/luci-app-e2guardian/luasrc/model/cbi/e2guardian.lua
new file mode 100644 (file)
index 0000000..b621321
--- /dev/null
@@ -0,0 +1,399 @@
+--[[
+
+LuCI E2Guardian module
+
+Copyright (C) 2015, Itus Networks, Inc.
+
+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
+
+Author: Marko Ratkaj <marko.ratkaj@sartura.hr>
+       Luka Perkov <luka.perkov@sartura.hr>
+
+]]--
+
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
+
+m = Map("e2guardian", translate("E2Guardian"))
+m.on_after_commit = function() luci.sys.call("/etc/init.d/e2guardian restart") end
+
+s = m:section(TypedSection, "e2guardian")
+s.anonymous = true
+s.addremove = false
+
+s:tab("tab_general", translate("General Settings"))
+s:tab("tab_additional", translate("Additional Settings"))
+s:tab("tab_logs", translate("Logs"))
+
+
+----------------- General Settings Tab -----------------------
+
+filterip = s:taboption("tab_general", Value, "filterip", translate("IP that E2Guardian listens"))
+filterip.datatype = "ip4addr"
+
+filterports = s:taboption("tab_general", Value, "filterports", translate("Port that E2Guardian listens"))
+filterports.datatype = "portrange"
+filterports.placeholder = "0-65535"
+
+proxyip = s:taboption("tab_general", Value, "proxyip", translate("IP address of the proxy"))
+proxyip.datatype = "ip4addr"
+proxyip.default = "127.0.0.1"
+
+proxyport = s:taboption("tab_general", Value, "proxyport", translate("Port of the proxy"))
+proxyport.datatype = "portrange"
+proxyport.placeholder = "0-65535"
+
+languagedir = s:taboption("tab_general", Value, "languagedir", translate("Language dir"))
+languagedir.datatype = "string"
+languagedir.default = "/usr/share/e2guardian/languages"
+
+language = s:taboption("tab_general", Value, "language", translate("Language to use"))
+language.datatype = "string"
+language.default = "ukenglish"
+
+loglevel = s:taboption("tab_general", ListValue, "loglevel", translate("Logging Settings"))
+loglevel:value("0",  translate("none"))
+loglevel:value("1",  translate("just denied"))
+loglevel:value("2",  translate("all text based"))
+loglevel:value("3",  translate("all requests"))
+loglevel.default = "2"
+
+logexceptionhits = s:taboption("tab_general", ListValue, "logexceptionhits", translate("Log Exception Hits"))
+logexceptionhits:value("0",  translate("never"))
+logexceptionhits:value("1",  translate("log, but don't mark as exceptions"))
+logexceptionhits:value("2",  translate("log and mark"))
+logexceptionhits.default = "2"
+
+logfileformat = s:taboption("tab_general", ListValue, "logfileformat", translate("Log File Format"))
+logfileformat:value("1",  translate("DansgGuardian format, space delimited"))
+logfileformat:value("2",  translate("CSV-style format"))
+logfileformat:value("3",  translate("Squid Log File Format"))
+logfileformat:value("4",  translate("Tab delimited"))
+logfileformat:value("5",  translate("Protex format"))
+logfileformat:value("6",  translate("Protex format with server field blanked"))
+logfileformat.default = "1"
+
+accessdeniedaddress = s:taboption("tab_general", Value, "accessdeniedaddress", translate("Access denied address"),
+translate("Server to which the cgi e2guardian reporting script was copied. Reporting levels 1 and 2 only"))
+accessdeniedaddress.datatype = "string"
+accessdeniedaddress.default = "http://YOURSERVER.YOURDOMAIN/cgi-bin/e2guardian.pl"
+
+usecustombannedimage = s:taboption("tab_general", ListValue, "usecustombannedimage", translate("Banned image replacement"))
+usecustombannedimage:value("on",  translate("Yes"))
+usecustombannedimage:value("off",  translate("No"))
+usecustombannedimage.default = "on"
+
+custombannedimagefile = s:taboption("tab_general", Value, "custombannedimagefile", translate("Custom banned image file"))
+custombannedimagefile.datatype = "string"
+custombannedimagefile.default = "/usr/share/e2guardian/transparent1x1.gif"
+
+usecustombannedflash = s:taboption("tab_general", ListValue, "usecustombannedflash", translate("Banned flash replacement"))
+usecustombannedflash:value("on",  translate("Yes"))
+usecustombannedflash:value("off",  translate("No"))
+usecustombannedflash.default = "on"
+
+custombannedflashfile = s:taboption("tab_general", Value, "custombannedflashfile", translate("Custom banned flash file"))
+custombannedflashfile.datatype = "string"
+custombannedflashfile.default = "/usr/share/e2guardian/blockedflash.swf"
+
+filtergroups = s:taboption("tab_general", Value, "filtergroups", translate("Number of filter groups"))
+filtergroups.datatype = "and(uinteger,min(1))"
+filtergroups.default = "1"
+
+filtergroupslist = s:taboption("tab_general", Value, "filtergroupslist", translate("List of filter groups"))
+filtergroupslist.datatype = "string"
+filtergroupslist.default = "/etc/e2guardian/lists/filtergroupslist"
+
+bannediplist = s:taboption("tab_general", Value, "bannediplist", translate("List of banned IPs"))
+bannediplist.datatype = "string"
+bannediplist.default = "/etc/e2guardian/lists/bannediplist"
+
+exceptioniplist = s:taboption("tab_general", Value, "exceptioniplist", translate("List of IP exceptions"))
+exceptioniplist.datatype = "string"
+exceptioniplist.default = "/etc/e2guardian/lists/exceptioniplist"
+
+perroomblockingdirectory = s:taboption("tab_general", Value, "perroomblockingdirectory", translate("Per-Room blocking definition directory"))
+perroomblockingdirectory.datatype = "string"
+perroomblockingdirectory.default = "/etc/e2guardian/lists/bannedrooms/"
+
+showweightedfound = s:taboption("tab_general", ListValue, "showweightedfound", translate("Show weighted phrases found"))
+showweightedfound:value("on",  translate("Yes"))
+showweightedfound:value("off",  translate("No"))
+showweightedfound.default = "on"
+
+weightedphrasemode = s:taboption("tab_general", ListValue, "weightedphrasemode", translate("Weighted phrase mode"))
+weightedphrasemode:value("0",  translate("off"))
+weightedphrasemode:value("1",  translate("on, normal operation"))
+weightedphrasemode:value("2",  translate("on, phrase found only counts once on a page"))
+weightedphrasemode.default = "2"
+
+urlcachenumber = s:taboption("tab_general", Value, "urlcachenumber", translate("Clean result caching for URLs"))
+urlcachenumber.datatype = "and(uinteger,min(0))"
+urlcachenumber.default = "1000"
+
+urlcacheage = s:taboption("tab_general", Value, "urlcacheage", translate("Age before they should be ignored in seconds"))
+urlcacheage.datatype = "and(uinteger,min(0))"
+urlcacheage.default = "900"
+
+scancleancache = s:taboption("tab_general", ListValue, "scancleancache", translate("Cache for content (AV) scans as 'clean'"))
+scancleancache:value("on",  translate("Yes"))
+scancleancache:value("off",  translate("No"))
+scancleancache.default = "on"
+
+phrasefiltermode = s:taboption("tab_general", ListValue, "phrasefiltermode", translate("Filtering options"))
+phrasefiltermode:value("0",  translate("raw"))
+phrasefiltermode:value("1",  translate("smart"))
+phrasefiltermode:value("2",  translate("both raw and smart"))
+phrasefiltermode:value("3",  translate("meta/title"))
+phrasefiltermode.default = "2"
+
+preservecase = s:taboption("tab_general", ListValue, "perservecase", translate("Lower caseing options"))
+preservecase:value("0",  translate("force lower case"))
+preservecase:value("1",  translate("don't change"))
+preservecase:value("2",  translate("scan fist in lower, then in original"))
+preservecase.default = "0"
+
+hexdecodecontent = s:taboption("tab_general", ListValue, "hexdecodecontent", translate("Hex decoding options"))
+hexdecodecontent:value("on",  translate("Yes"))
+hexdecodecontent:value("off",  translate("No"))
+hexdecodecontent.default = "off"
+
+forcequicksearch = s:taboption("tab_general", ListValue, "forcequicksearch", translate("Quick search"))
+forcequicksearch:value("on",  translate("Yes"))
+forcequicksearch:value("off",  translate("No"))
+forcequicksearch.default = "off"
+
+reverseaddresslookups= s:taboption("tab_general", ListValue, "reverseaddresslookups", translate("Reverse lookups for banned site and URLs"))
+reverseaddresslookups:value("on",  translate("Yes"))
+reverseaddresslookups:value("off",  translate("No"))
+reverseaddresslookups.default = "off"
+
+reverseclientiplookups = s:taboption("tab_general", ListValue, "reverseclientiplookups", translate("Reverse lookups for banned and exception IP lists"))
+reverseclientiplookups:value("on",  translate("Yes"))
+reverseclientiplookups:value("off",  translate("No"))
+reverseclientiplookups.default = "off"
+
+logclienthostnames = s:taboption("tab_general", ListValue, "logclienthostnames", translate("Perform reverse lookups on client IPs for successful requests"))
+logclienthostnames:value("on",  translate("Yes"))
+logclienthostnames:value("off",  translate("No"))
+logclienthostnames.default = "off"
+
+createlistcachefiles = s:taboption("tab_general", ListValue, "createlistcachefiles", translate("Build bannedsitelist and bannedurllist cache files"))
+createlistcachefiles:value("on",translate("Yes"))
+createlistcachefiles:value("off",translate("No"))
+createlistcachefiles.default = "on"
+
+prefercachedlists = s:taboption("tab_general", ListValue, "prefercachedlists", translate("Prefer cached list files"))
+prefercachedlists:value("on",  translate("Yes"))
+prefercachedlists:value("off",  translate("No"))
+prefercachedlists.default = "off"
+
+maxuploadsize = s:taboption("tab_general", Value, "maxuploadsize", translate("Max upload size (in Kbytes)"))
+maxuploadsize:value("-1",  translate("no blocking"))
+maxuploadsize:value("0",  translate("complete block"))
+maxuploadsize.default = "-1"
+
+maxcontentfiltersize = s:taboption("tab_general", Value, "maxcontentfiltersize", translate("Max content filter size"),
+translate("The value must not be higher than max content ram cache scan size or 0 to match it"))
+maxcontentfiltersize.datatype = "and(uinteger,min(0))"
+maxcontentfiltersize.default = "256"
+
+maxcontentramcachescansize = s:taboption("tab_general", Value, "maxcontentramcachescansize", translate("Max content ram cache scan size"),
+translate("This is the max size of file that DG will download and cache in RAM"))
+maxcontentramcachescansize.datatype = "and(uinteger,min(0))"
+maxcontentramcachescansize.default = "2000"
+
+maxcontentfilecachescansize = s:taboption("tab_general", Value, "maxcontentfilecachescansize", translate("Max content file cache scan size"))
+maxcontentfilecachescansize.datatype = "and(uinteger,min(0))"
+maxcontentfilecachescansize.default = "20000"
+
+proxytimeout = s:taboption("tab_general", Value, "proxytimeout", translate("Proxy timeout (5-100)"))
+proxytimeout.datatype = "range(5,100)"
+proxytimeout.default = "20"
+
+proxyexchange = s:taboption("tab_general", Value, "proxyexchange", translate("Proxy header excahnge (20-300)"))
+proxyexchange.datatype = "range(20,300)"
+proxyexchange.default = "20"
+
+pcontimeout = s:taboption("tab_general", Value, "pcontimeout", translate("Pconn timeout"),
+translate("How long a persistent connection will wait for other requests"))
+pcontimeout.datatype = "range(5,300)"
+pcontimeout.default = "55"
+
+filecachedir = s:taboption("tab_general", Value, "filecachedir", translate("File cache directory"))
+filecachedir.datatype = "string"
+filecachedir.default = "/tmp"
+
+deletedownloadedtempfiles = s:taboption("tab_general", ListValue, "deletedownloadedtempfiles", translate("Delete file cache after user completes download"))
+deletedownloadedtempfiles:value("on",  translate("Yes"))
+deletedownloadedtempfiles:value("off", translate("No"))
+deletedownloadedtempfiles.default = "on"
+
+initialtrickledelay = s:taboption("tab_general", Value, "initialtrickledelay", translate("Initial Trickle delay"),
+translate("Number of seconds a browser connection is left waiting before first being sent *something* to keep it alive"))
+initialtrickledelay.datatype = "and(uinteger,min(0))"
+initialtrickledelay.default = "20"
+
+trickledelay = s:taboption("tab_general", Value, "trickledelay", translate("Trickle delay"),
+translate("Number of seconds a browser connection is left waiting before being sent more *something* to keep it alive"))
+trickledelay.datatype = "and(uinteger,min(0))"
+trickledelay.default = "10"
+
+downloadmanager = s:taboption("tab_general", Value, "downloadmanager", translate("Download manager"))
+downloadmanager.datatype = "string"
+downloadmanager.default = "/etc/e2guardian/downloadmanagers/default.conf"
+
+contentscannertimeout = s:taboption("tab_general", Value, "contentscannertimeout", translate("Content scanner timeout"))
+contentscannertimeout.datatype = "and(uinteger,min(0))"
+contentscannertimeout.default = "60"
+
+contentscanexceptions = s:taboption("tab_general", ListValue, "contentscanexceptions", translate("Content scan exceptions"))
+contentscanexceptions:value("on",  translate("Yes"))
+contentscanexceptions:value("off", translate("No"))
+contentscanexceptions.default = "off"
+
+recheckreplacedurls = s:taboption("tab_general", ListValue, "recheckreplacedurls", translate("e-check replaced URLs"))
+recheckreplacedurls:value("on",  translate("Yes"))
+recheckreplacedurls:value("off", translate("No"))
+recheckreplacedurls.default = "off"
+
+forwardedfor = s:taboption("tab_general", ListValue, "forwardedfor", translate("Misc setting: forwardedfor"),
+translate("If on, it may help solve some problem sites that need to know the source ip."))
+forwardedfor:value("on",  translate("Yes"))
+forwardedfor:value("off", translate("No"))
+forwardedfor.default = "off"
+
+usexforwardedfor = s:taboption("tab_general", ListValue, "usexforwardedfor", translate("Misc setting: usexforwardedfor"),
+translate("This is for when you have squid between the clients and E2Guardian"))
+usexforwardedfor:value("on",  translate("Yes"))
+usexforwardedfor:value("off", translate("No"))
+usexforwardedfor.default = "off"
+
+logconnectionhandlingerrors = s:taboption("tab_general", ListValue, "logconnectionhandlingerrors", translate("Log debug info about log()ing and accept()ing"))
+logconnectionhandlingerrors:value("on",  translate("Yes"))
+logconnectionhandlingerrors:value("off", translate("No"))
+logconnectionhandlingerrors.default = "on"
+
+logchildprocesshandling = s:taboption("tab_general", ListValue, "logchildprocesshandling", translate("Log child process handling"))
+logchildprocesshandling:value("on",  translate("Yes"))
+logchildprocesshandling:value("off", translate("No"))
+logchildprocesshandling.default = "off"
+
+maxchildren = s:taboption("tab_general", Value, "maxchildren", translate("Max number of processes to spawn"))
+maxchildren.datatype = "and(uinteger,min(0))"
+maxchildren.default = "180"
+
+minchildren = s:taboption("tab_general", Value, "minchildren", translate("Min number of processes to spawn"))
+minchildren.datatype = "and(uinteger,min(0))"
+minchildren.default = "20"
+
+minsparechildren = s:taboption("tab_general", Value, "minsparechildren", translate("Min number of processes to keep ready"))
+minsparechildren.datatype = "and(uinteger,min(0))"
+minsparechildren.default = "16"
+
+preforkchildren = s:taboption("tab_general", Value, "preforkchildren", translate("Sets minimum nuber of processes when it runs out"))
+preforkchildren.datatype = "and(uinteger,min(0))"
+preforkchildren.default = "10"
+
+maxsparechildren = s:taboption("tab_general", Value, "maxsparechildren", translate("Sets the maximum number of processes to have doing nothing"))
+maxsparechildren.datatype = "and(uinteger,min(0))"
+maxsparechildren.default = "32"
+
+maxagechildren = s:taboption("tab_general", Value, "maxagechildren", translate("Max age of child process"))
+maxagechildren.datatype = "and(uinteger,min(0))"
+maxagechildren.default = "500"
+
+maxips = s:taboption("tab_general", Value, "maxips", translate("Max number of clinets allowed to connect"))
+maxips:value("0",  translate("no limit"))
+maxips.default = "0"
+
+ipipcfilename = s:taboption("tab_general", Value, "ipipcfilename", translate("IP list IPC server directory and filename"))
+ipipcfilename.datatype = "string"
+ipipcfilename.default = "/tmp/.dguardianipc"
+
+urlipcfilename = s:taboption("tab_general", Value, "urlipcfilename", translate("Defines URL list IPC server directory and filename used to communicate with the URL cache process"))
+urlipcfilename.datatype = "string"
+urlipcfilename.default = "/tmp/.dguardianurlipc"
+
+ipcfilename = s:taboption("tab_general", Value, "ipcfilename", translate("Defines URL list IPC server directory and filename used to communicate with the URL cache process"))
+ipcfilename.datatype = "string"
+ipcfilename.default = "/tmp/.dguardianipipc"
+
+nodeamon = s:taboption("tab_general", ListValue, "nodeamon", translate("Disable deamoning"))
+nodeamon:value("on",  translate("Yes"))
+nodeamon:value("off", translate("No"))
+nodeamon.default = "off"
+
+nologger = s:taboption("tab_general", ListValue, "nologger", translate("Disable logger"))
+nologger:value("on",  translate("Yes"))
+nologger:value("off", translate("No"))
+nologger.default = "off"
+
+logadblock = s:taboption("tab_general", ListValue, "logadblock", translate("Enable logging of ADs"))
+logadblock:value("on",  translate("Yes"))
+logadblock:value("off", translate("No"))
+logadblock.default = "off"
+
+loguseragent = s:taboption("tab_general", ListValue, "loguseragent", translate("Enable logging of client user agent"))
+loguseragent:value("on",  translate("Yes"))
+loguseragent:value("off", translate("No"))
+loguseragent.default = "off"
+
+softrestart = s:taboption("tab_general", ListValue, "softrestart", translate("Enable soft restart"))
+softrestart:value("on",  translate("Yes"))
+softrestart:value("off", translate("No"))
+softrestart.default = "off"
+
+
+------------------------ Additional Settings Tab ----------------------------
+
+e2guardian_config_file = s:taboption("tab_additional", TextValue, "_data", "")
+e2guardian_config_file.wrap = "off"
+e2guardian_config_file.rows = 25
+e2guardian_config_file.rmempty = false
+
+function e2guardian_config_file.cfgvalue()
+       local uci = require "luci.model.uci".cursor_state()
+       file = "/etc/e2guardian/e2guardianf1.conf"
+       if file then
+               return fs.readfile(file) or ""
+       else
+               return ""
+       end
+end
+
+function e2guardian_config_file.write(self, section, value)
+       if value then
+               local uci = require "luci.model.uci".cursor_state()
+               file = "/etc/e2guardian/e2guardianf1.conf"
+               fs.writefile(file, value:gsub("\r\n", "\n"))
+       end
+end
+
+
+---------------------------- Logs Tab -----------------------------
+
+e2guardian_logfile = s:taboption("tab_logs", TextValue, "lines", "")
+e2guardian_logfile.wrap = "off"
+e2guardian_logfile.rows = 25
+e2guardian_logfile.rmempty = true
+
+function e2guardian_logfile.cfgvalue()
+       local uci = require "luci.model.uci".cursor_state()
+       file = "/tmp/e2guardian/access.log"
+       if file then
+               return fs.readfile(file) or ""
+       else
+               return "Can't read log file"
+       end
+end
+
+function e2guardian_logfile.write()
+        return ""
+end
+
+return m
index 22f1c77..17a4948 100644 (file)
@@ -73,7 +73,7 @@ o = s:option(Value, "src_ip",
        translate("Source IP address"),
        translate("Only match incoming traffic from this IP or range."))
 o.rmempty = true
-o.datatype = "neg(ip4addr)"
+o.datatype = "neg(ipmask4)"
 o.placeholder = translate("any")
 
 luci.sys.net.ipv4_hints(function(ip, name)
@@ -99,7 +99,7 @@ end)
 
 
 o.rmempty = true
-o.datatype = "neg(ip4addr)"
+o.datatype = "neg(ipmask4)"
 o.placeholder = translate("any")
 
 
@@ -119,7 +119,7 @@ o.template = "cbi/firewall_zonelist"
 o = s:option(Value, "dest_ip", translate("Internal IP address"),
        translate("Redirect matched incoming traffic to the specified \
                internal host"))
-o.datatype = "ip4addr"
+o.datatype = "ipmask4"
 
 luci.sys.net.ipv4_hints(function(ip, name)
        o:value(ip, "%s (%s)" %{ ip, name })
index 97e93ae..1c83888 100644 (file)
@@ -99,7 +99,7 @@ elseif rule_type == "redirect" then
 
        o = s:option(Value, "src_ip", translate("Source IP address"))
        o.rmempty = true
-       o.datatype = "neg(ipaddr)"
+       o.datatype = "neg(ipmask4)"
        o.placeholder = translate("any")
 
        luci.sys.net.ipv4_hints(function(ip, name)
@@ -123,7 +123,7 @@ elseif rule_type == "redirect" then
 
 
        o = s:option(Value, "dest_ip", translate("Destination IP address"))
-       o.datatype = "neg(ip4addr)"
+       o.datatype = "neg(ipmask4)"
 
        luci.sys.net.ipv4_hints(function(ip, name)
                o:value(ip, "%s (%s)" %{ ip, name })
@@ -269,7 +269,7 @@ else
 
 
        o = s:option(Value, "src_ip", translate("Source address"))
-       o.datatype = "neg(ipaddr)"
+       o.datatype = "neg(ipmask)"
        o.placeholder = translate("any")
 
        luci.sys.net.ipv4_hints(function(ip, name)
@@ -290,7 +290,7 @@ else
 
 
        o = s:option(Value, "dest_ip", translate("Destination address"))
-       o.datatype = "neg(ipaddr)"
+       o.datatype = "neg(ipmask)"
        o.placeholder = translate("any")
 
        luci.sys.net.ipv4_hints(function(ip, name)
index c8b8f22..500d1bf 100644 (file)
@@ -126,7 +126,7 @@ msrc = s:taboption("advanced", DynamicList, "masq_src",
        translate("Restrict Masquerading to given source subnets"))
 
 msrc.optional = true
-msrc.datatype = "list(neg(or(uciname,hostname,ip4addr)))"
+msrc.datatype = "list(neg(or(uciname,hostname,ipmask4)))"
 msrc.placeholder = "0.0.0.0/0"
 msrc:depends("family", "")
 msrc:depends("family", "ipv4")
@@ -135,7 +135,7 @@ mdest = s:taboption("advanced", DynamicList, "masq_dest",
        translate("Restrict Masquerading to given destination subnets"))
 
 mdest.optional = true
-mdest.datatype = "list(neg(or(uciname,hostname,ip4addr)))"
+mdest.datatype = "list(neg(or(uciname,hostname,ipmask4)))"
 mdest.placeholder = "0.0.0.0/0"
 mdest:depends("family", "")
 mdest:depends("family", "ipv4")
index 694bbd8..500e507 100644 (file)
@@ -19,7 +19,6 @@ s.addremove = false
 s:option(Flag, "syn_flood", translate("Enable SYN-flood protection"))
 
 o = s:option(Flag, "drop_invalid", translate("Drop invalid packets"))
-o.default = o.enabled
 
 p = {
        s:option(ListValue, "input", translate("Input")),
index 699af7b..f43fdc8 100644 (file)
@@ -72,9 +72,9 @@ msgid ""
 "otherwise covered by the firewall framework. The commands are executed after "
 "each firewall restart, right after the default ruleset has been loaded."
 msgstr ""
-"Custom rule 은 방화벽 UI 로 해결이 되지 않는 임의의 iptables 명령을 "
-"ì\8b¤í\96\89í\95  ì\88\98 ì\9e\88ë\8f\84ë¡\9d í\95©ë\8b\88ë\8b¤.  ì\9e\85ë ¥ë\90\9c ëª\85ë ¹ì\96´ë\93¤ì\9d\80 ë§¤ ë°©í\99\94ë²½ ì\9e¬ì\8b\9cì\9e\91ì\8b\9c ì\8b¤í\96\89ë\90\98ë\8a\94ë\8d° "
-"default ruleset 이 load 된 후 시점입니다."
+"Custom rule 은 방화벽 UI 로 해결이 되지 않는 임의의 iptables 명령을 실행할 "
+"ì\88\98 ì\9e\88ë\8f\84ë¡\9d í\95©ë\8b\88ë\8b¤.  ì\9e\85ë ¥ë\90\9c ëª\85ë ¹ì\96´ë\93¤ì\9d\80 ë§¤ ë°©í\99\94ë²½ ì\9e¬ì\8b\9cì\9e\91ì\8b\9c ì\8b¤í\96\89ë\90\98ë\8a\94ë\8d° default "
+"ruleset 이 load 된 후 시점입니다."
 
 msgid "Destination IP address"
 msgstr "Destination IP 주소"
@@ -272,8 +272,8 @@ msgid ""
 "Port forwarding allows remote computers on the Internet to connect to a "
 "specific computer or service within the private LAN."
 msgstr ""
-"Port forwarding 기능은 인터넷 상의 원격 컴퓨터가 내부 LAN 에 속한 "
-"특정 컴퓨터나 서비스에 접속할 수 있도록 합니다."
+"Port forwarding 기능은 인터넷 상의 원격 컴퓨터가 내부 LAN 에 속한 특정 컴퓨터"
+"나 서비스에 접속할 수 있도록 합니다."
 
 msgid "Protocol"
 msgstr ""
@@ -285,6 +285,9 @@ msgstr ""
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr ""
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "주어진 destination subnet 으로 Masquerading 제한"
 
@@ -332,8 +335,8 @@ msgid ""
 "multiple WAN addresses to internal subnets."
 msgstr ""
 "Source NAT 기능은 masquerading 의 한 형태로써 outgoing 트래픽이 사용할 "
-"source IP 를 세밀하게 제어할 수 있습니다.  예를 들어 다수의 WAN 주소들을 "
-"ë\82´ë\80 subnet ì\97\90 ë§¤í\95\91(mapping) í\95  ê²½ì\9a° ì\82¬ì\9a©ë\90©ë\8b\88ë\8b¤."
+"source IP 를 세밀하게 제어할 수 있습니다.  예를 들어 다수의 WAN 주소들을 "
+"부 subnet 에 매핑(mapping) 할 경우 사용됩니다."
 
 msgid "Source address"
 msgstr "Source 주소"
@@ -363,8 +366,8 @@ msgid ""
 "The firewall creates zones over your network interfaces to control network "
 "traffic flow."
 msgstr ""
-"방화벽 기능을 이용하여 네트워크 인터페이스와 연결된 zone 을 생성할 수 있고 "
-"를 이용하여 네트워크 traffic flow 를 제어할 수 있습니다."
+"방화벽 기능을 이용하여 네트워크 인터페이스와 연결된 zone 을 생성할 수 있고 "
+"를 이용하여 네트워크 traffic flow 를 제어할 수 있습니다."
 
 msgid ""
 "The options below control the forwarding policies between this zone (%s) and "
@@ -375,19 +378,18 @@ msgid ""
 "<em>not</em> imply a permission to forward from wan to lan as well."
 msgstr ""
 "이 zone (%s) 과 다른 zone 들 사이의 forwarding 정책을 제어하는 옵션들입니다. "
-"<em>Destination zones</em> 은 <strong>%q 에서 출발한 </strong> "
-"forward traffic 을 뜻하고, <em>Source zones</em> 은 다른 zone 들에서 "
-"<strong>%q 로 전달되는</strong> forward traffic 을 뜻합니다. "
-"Forwarding rule 은 <em>unidirectional</em> 인데, 예를 들어 LAN 에서 WAN "
-"으로의 forward 규칙이 WAN 에서 LAN 으로의 forward 를 허락하는 것이 "
-"아닙니다."
+"<em>Destination zones</em> 은 <strong>%q 에서 출발한 </strong> forward "
+"traffic 을 뜻하고, <em>Source zones</em> 은 다른 zone 들에서 <strong>%q 로 전"
+"달되는</strong> forward traffic 을 뜻합니다. Forwarding rule 은 "
+"<em>unidirectional</em> 인데, 예를 들어 LAN 에서 WAN 으로의 forward 규칙이 "
+"WAN 에서 LAN 으로의 forward 를 허락하는 것이 아닙니다."
 
 msgid ""
 "This page allows you to change advanced properties of the port forwarding "
 "entry. In most cases there is no need to modify those settings."
 msgstr ""
-"이 메뉴에서는 port forwarding 의 고급 설정 정보를 변경할 수 있습니다. "
-"대부분의 경우 이 설정을 수정할 일이 없습니다."
+"이 메뉴에서는 port forwarding 의 고급 설정 정보를 변경할 수 있습니다. 대부분"
+"의 경우 이 설정을 수정할 일이 없습니다."
 
 msgid ""
 "This page allows you to change advanced properties of the traffic rule "
@@ -405,11 +407,10 @@ msgid ""
 "networks</em> specifies which available networks are members of this zone."
 msgstr ""
 "이 섹션은 %q 의 공통 속성을 설정할 수 있습니다.  <em>input</em> 과 "
-"<em>output</em> 옵션은 이 zone 으로 전달되어 들오거나 나가는 트래픽에 대한 "
-"기본 정책을 뜻합니다. <em>forward</em> 옵션은 zone 내에서 다른 네트워크들 "
-"사이를 오가는 forward traffic 에 대한 정책을 뜻합니다. "
-"<em>Covered networks</em> 에서는 zone 의 영향을 받을 네트워크들을 지정할 수 "
-"있습니다."
+"<em>output</em> 옵션은 이 zone 으로 전달되어 들오거나 나가는 트래픽에 대한 기"
+"본 정책을 뜻합니다. <em>forward</em> 옵션은 zone 내에서 다른 네트워크들 사이"
+"를 오가는 forward traffic 에 대한 정책을 뜻합니다. <em>Covered networks</em> "
+"에서는 zone 의 영향을 받을 네트워크들을 지정할 수 있습니다."
 
 msgid "Thursday"
 msgstr "목요일"
@@ -443,9 +444,9 @@ msgid ""
 "for example to reject traffic between certain hosts or to open WAN ports on "
 "the router."
 msgstr ""
-"Traffic rule 은 서로 다른 zone 사이를 오가는 패킷들에 대한 정책을 "
-"정의합니다. 예를 들어 특정 host 들 사이의 트래픽을 차단하거나 "
-"공유기의 WAN port 를 open 할때 사용됩니다."
+"Traffic rule 은 서로 다른 zone 사이를 오가는 패킷들에 대한 정책을 정의합니"
+"다. 예를 들어 특정 host 들 사이의 트래픽을 차단하거나 공유기의 WAN port 를 "
+"open 할때 사용됩니다."
 
 msgid "Tuesday"
 msgstr "화요일"
index 2d601f8..ab714b5 100644 (file)
@@ -1,17 +1,17 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-03-30 17:00+0200\n"
-"PO-Revision-Date: 2014-06-21 19:03+0200\n"
-"Last-Translator: Éder <eder.grigorio@openmailbox.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2017-02-20 17:43-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\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.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "%s in %s"
 msgstr "%s in %s"
@@ -143,7 +143,7 @@ msgid "Forward to"
 msgstr "Encaminhar para"
 
 msgid "Friday"
-msgstr ""
+msgstr "Sexta-feira"
 
 msgid "From %s in %s"
 msgstr "Vindo de %s em %s"
@@ -222,10 +222,10 @@ msgstr ""
 "equipamento cliente."
 
 msgid "Monday"
-msgstr ""
+msgstr "Segunda-Feira"
 
 msgid "Month Days"
-msgstr ""
+msgstr "Dias do mês"
 
 msgid "Name"
 msgstr "Nome"
@@ -296,7 +296,7 @@ msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Redireciona tráfego entrante para o computador interno especificado"
 
 msgid "Restart Firewall"
-msgstr ""
+msgstr "Reiniciar o Firewall"
 
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "Restringe o mascaramento para uma subrede de destino específica"
@@ -330,7 +330,7 @@ msgid "SNAT port"
 msgstr "Porta da SNAT"
 
 msgid "Saturday"
-msgstr ""
+msgstr "Sábado"
 
 msgid "Source IP address"
 msgstr "Endereço IP de origem"
@@ -360,19 +360,19 @@ msgid "Source zone"
 msgstr "Zona de origem"
 
 msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "Dia inicial (aaaa-mm-dd)"
 
 msgid "Start Time (hh:mm:ss)"
-msgstr ""
+msgstr "Hora inicial (hh:mm:ss)"
 
 msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "Dia final (aaaa-mm-dd)"
 
 msgid "Stop Time (hh:mm:ss)"
-msgstr ""
+msgstr "Hora final (hh:mm:ss)"
 
 msgid "Sunday"
-msgstr ""
+msgstr "Domingo"
 
 msgid ""
 "The firewall creates zones over your network interfaces to control network "
@@ -411,7 +411,6 @@ msgstr ""
 "Esta página permite que você mude propriedades avançadas da entrada da regra "
 "de tráfego, como os equipamentos de origem e destino."
 
-#, fuzzy
 msgid ""
 "This section defines common properties of %q. The <em>input</em> and "
 "<em>output</em> options set the default policies for traffic entering and "
@@ -427,10 +426,10 @@ msgstr ""
 "zona."
 
 msgid "Thursday"
-msgstr ""
+msgstr "Quita-feira"
 
 msgid "Time in UTC"
-msgstr ""
+msgstr "Hora em UTC"
 
 msgid "To %s at %s on <var>this device</var>"
 msgstr "Para %s em %s <var>neste dispositivo</var>"
@@ -463,7 +462,7 @@ msgstr ""
 "ou abrir portas WAN no roteador."
 
 msgid "Tuesday"
-msgstr ""
+msgstr "Terça-feira"
 
 msgid "Via %s"
 msgstr "Via %s"
@@ -472,10 +471,10 @@ msgid "Via %s at %s"
 msgstr "Via %s at %s"
 
 msgid "Wednesday"
-msgstr ""
+msgstr "Quarta-feira"
 
 msgid "Week Days"
-msgstr ""
+msgstr "Dias da semana"
 
 msgid ""
 "You may specify multiple by selecting \"-- custom --\" and then entering "
diff --git a/applications/luci-app-fwknopd/po/pt-br/fwknopd.po b/applications/luci-app-fwknopd/po/pt-br/fwknopd.po
new file mode 100644 (file)
index 0000000..286b49d
--- /dev/null
@@ -0,0 +1,116 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid ""
+"Allow SPA clients to request access to services through an iptables firewall "
+"instead of just to it."
+msgstr ""
+"Permitir que clientes SPA requeiram acesso a serviços através de um firewall "
+"iptables ao invés de apenas fazê-lo."
+
+msgid "Allow SPA clients to request forwarding destination by DNS name."
+msgstr ""
+"Permitir que clientes SPA requeiram encaminhamento de destinos por nome DNS."
+
+msgid "Base 64 key"
+msgstr "Chave em formato base64"
+
+msgid ""
+"Define a set of ports and protocols (tcp or udp) that will be opened if a "
+"valid knock sequence is seen. If this entry is not set, fwknopd will attempt "
+"to honor any proto/port request specified in the SPA data (unless of it "
+"matches any “RESTRICT_PORTS” entries). Multiple entries are comma-separated."
+msgstr ""
+"Define um conjunto de porta e protocolos (TCP ou UDP) que serão abertos se "
+"uma sequência de batidas for observada. Se esta entrada não estiver "
+"definida, fwknopd irá tentar honrar qualquer requisição de protocolo/porta "
+"especificada nos dados SPA (a não ser se casar com qualquer entrada de "
+"\"RESTRICT_PORTS\"). Múltiplas entradas serão separadas por vírgula."
+
+msgid ""
+"Define the length of time access will be granted by fwknopd through the "
+"firewall after a valid knock sequence from a source IP address. If "
+"“FW_ACCESS_TIMEOUT” is not set then the default timeout of 30 seconds will "
+"automatically be set."
+msgstr ""
+"Define a duração do tempo de acesso que será concedido pelo fwknopd através "
+"do firewall depois de uma sequência de batidas válida de um endereço IP. Se "
+"“FW_ACCESS_TIMEOUT” não estiver definido, o valor padrão será de 30 "
+"segundos. "
+
+msgid ""
+"Define the symmetric key used for decrypting an incoming SPA packet that is "
+"encrypted by the fwknop client with Rijndael."
+msgstr ""
+"Define a chave simétrica usada para decifrar um pacote SPA entrante que foi "
+"cifrado pelo cliente fwknop com o algoritmo Rijndael."
+
+msgid "Enable Uci/Luci control"
+msgstr "Habilitar o controle UCI/Luci"
+
+msgid "Enable config overwrite"
+msgstr "Habilitar a sobrescrita da configuração"
+
+msgid "Firewall Knock Daemon"
+msgstr "Servidor do Firwall Knock"
+
+msgid "Firewall Knock Operator"
+msgstr "Operador do Firewall Knock"
+
+msgid ""
+"Force all SPA packets to contain a real IP address within the encrypted "
+"data. This makes it impossible to use the -s command line argument on the "
+"fwknop client command line, so either -R has to be used to automatically "
+"resolve the external address (if the client behind a NAT) or the client must "
+"know the external IP and set it via the -a argument."
+msgstr ""
+"Forçar que todos os pacotes SPA contenham um endereço IP real dentro do "
+"pacote cifrado. Isto torna impossível o uso do argumento de linha de comando "
+"'-s' no cliente fwknop. Desta forma, ou o argumento '-R' deve ser usada para "
+"resolver os endereços externos automaticamente (se o cliente estiver atrás "
+"de uma NAT)  ou o ciente deve conhecer o seu endereço IP externo e defini-lo "
+"através do argumento '-a'."
+
+msgid ""
+"Maximum age in seconds that an SPA packet will be accepted. defaults to 120 "
+"seconds"
+msgstr ""
+"Idade máxima, em segundos, que um pacote SPA será aceito. Padrão é 120 "
+"segundos."
+
+msgid "Normal Key"
+msgstr "Chave Normal"
+
+msgid "Specify the ethernet interface on which fwknopd will sniff packets."
+msgstr ""
+"Especifica o dispositivo ethernet no qual o fwknopd irá observar os pacotes."
+
+msgid "The base64 hmac key"
+msgstr "A chave de autenticação HMAC em formato base64"
+
+msgid "Use ANY for any source ip"
+msgstr "Use \"ANY\" para qualquer endereço IP de origem"
+
+msgid ""
+"When unchecked, the config files in /etc/fwknopd will be used as is, "
+"ignoring any settings here."
+msgstr ""
+"Quando desmarcado, os arquivos de configuração em /etc/fwknopd serão usados "
+"como estão, ignorando qualquer ajustes feitos aqui."
+
+msgid "access.conf stanzas"
+msgstr "Estâncias do access.conf"
+
+msgid "fwknopd.conf config options"
+msgstr "Opções do fwknopd.conf"
diff --git a/applications/luci-app-lxc/Makefile b/applications/luci-app-lxc/Makefile
new file mode 100644 (file)
index 0000000..9f313df
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2017 Dan Luedtke <mail@danrl.com>
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LXC management Web UI
+LUCI_DEPENDS:=+luci-mod-admin-full +lxc +lxc-create +liblxc +rpcd-mod-lxc +getopt +xz
+LUCI_PKGARCH:=all
+
+PKG_MAINTAINER:=Petar Koretic <petar.koretic@sartura.hr>
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/green.gif b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/green.gif
new file mode 100644 (file)
index 0000000..d09febf
Binary files /dev/null and b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/green.gif differ
diff --git a/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/purple.gif b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/purple.gif
new file mode 100644 (file)
index 0000000..f0d68cc
Binary files /dev/null and b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/purple.gif differ
diff --git a/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/red.gif b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/red.gif
new file mode 100644 (file)
index 0000000..c1b39bb
Binary files /dev/null and b/applications/luci-app-lxc/htdocs/luci-static/resources/cbi/red.gif differ
diff --git a/applications/luci-app-lxc/luasrc/controller/lxc.lua b/applications/luci-app-lxc/luasrc/controller/lxc.lua
new file mode 100644 (file)
index 0000000..ea7adba
--- /dev/null
@@ -0,0 +1,167 @@
+--[[
+
+LuCI LXC module
+
+Copyright (C) 2014, Cisco Systems, Inc.
+
+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
+
+Author: Petar Koretic <petar.koretic@sartura.hr>
+
+]]--
+
+module("luci.controller.lxc", package.seeall)
+
+require "ubus"
+local conn = ubus.connect()
+if not conn then
+    error("Failed to connect to ubus")
+end
+
+
+function fork_exec(command)
+       local pid = nixio.fork()
+       if pid > 0 then
+               return
+       elseif pid == 0 then
+               -- change to root dir
+               nixio.chdir("/")
+
+               -- patch stdin, out, err to /dev/null
+               local null = nixio.open("/dev/null", "w+")
+               if null then
+                       nixio.dup(null, nixio.stderr)
+                       nixio.dup(null, nixio.stdout)
+                       nixio.dup(null, nixio.stdin)
+                       if null:fileno() > 2 then
+                               null:close()
+                       end
+               end
+
+               -- replace with target command
+               nixio.exec("/bin/sh", "-c", command)
+       end
+end
+
+function index()
+       page = node("admin", "services", "lxc")
+       page.target = cbi("lxc")
+       page.title = _("LXC Containers")
+       page.order = 70
+
+       page = entry({"admin", "services", "lxc_create"}, call("lxc_create"), nil)
+       page.leaf = true
+
+       page = entry({"admin", "services", "lxc_action"}, call("lxc_action"), nil)
+       page.leaf = true
+
+       page = entry({"admin", "services", "lxc_get_downloadable"}, call("lxc_get_downloadable"), nil)
+       page.leaf = true
+
+       page = entry({"admin", "services", "lxc_configuration_get"}, call("lxc_configuration_get"), nil)
+       page.leaf = true
+
+       page = entry({"admin", "services", "lxc_configuration_set"}, call("lxc_configuration_set"), nil)
+       page.leaf = true
+
+end
+
+function lxc_get_downloadable()
+       luci.http.prepare_content("application/json")
+
+       local f = io.popen('uname -m', 'r')
+       local target = f:read('*a')
+       f:close()
+       target = target:gsub("^%s*(.-)%s*$", "%1")
+
+       local templates = {}
+
+       local f = io.popen('lxc-create -n just_want_to_list_available_lxc_templates -t download -- --list', 'r')
+
+       for line in f:lines() do
+               local dist,version = line:match("^(%S+)%s+(%S+)%s+" .. target .. "%s+default%s+%S+$")
+               if dist~=nil and version~=nil then templates[#templates + 1] = dist .. ":" .. version end
+       end
+
+       f:close()
+       luci.http.write_json(templates)
+end
+
+function lxc_create(lxc_name, lxc_template)
+       luci.http.prepare_content("text/plain")
+
+       local uci = require("uci").cursor()
+
+       local url = uci:get("lxc", "lxc", "url")
+
+       if not pcall(dofile, "/etc/openwrt_release") then
+               return luci.http.write("1")
+       end
+
+       local f = io.popen('uname -m', 'r')
+       local target = f:read('*a')
+       f:close()
+       target = target:gsub("^%s*(.-)%s*$", "%1")
+
+       local lxc_dist = lxc_template:gsub("(.*):(.*)", '%1')
+       local lxc_release = lxc_template:gsub("(.*):(.*)", '%2')
+
+       local data = conn:call("lxc", "create", { name = lxc_name, template = "download", args = { "--server", url,  "--no-validate", "--dist", lxc_dist, "--release", lxc_release, "--arch", target } } )
+
+       luci.http.write(data)
+end
+
+function lxc_action(lxc_action, lxc_name)
+       luci.http.prepare_content("application/json")
+
+       local data, ec = conn:call("lxc", lxc_action, lxc_name and { name = lxc_name} or {} )
+
+       luci.http.write_json(ec and {} or data)
+end
+
+function lxc_get_config_path()
+       local f = io.open("/etc/lxc/lxc.conf", "r")
+       local content = f:read("*all")
+       f:close()
+       local ret = content:match('^%s*lxc.lxcpath%s*=%s*([^%s]*)')
+       if ret then
+               return ret .. "/"
+       else
+               return "/srv/lxc/"
+       end
+end
+
+function lxc_configuration_get(lxc_name)
+       luci.http.prepare_content("text/plain")
+
+       local f = io.open(lxc_get_config_path() .. lxc_name .. "/config", "r")
+       local content = f:read("*all")
+       f:close()
+
+       luci.http.write(content)
+end
+
+function lxc_configuration_set(lxc_name)
+       luci.http.prepare_content("text/plain")
+
+       local lxc_configuration = luci.http.formvalue("lxc_configuration")
+
+       if lxc_configuration == nil then
+               return luci.http.write("1")
+       end
+
+       local f, err = io.open(lxc_get_config_path() .. lxc_name .. "/config","w+")
+       if not f then
+               return luci.http.write("2")
+       end
+
+       f:write(lxc_configuration)
+       f:close()
+
+       luci.http.write("0")
+end
+
diff --git a/applications/luci-app-lxc/luasrc/model/cbi/lxc.lua b/applications/luci-app-lxc/luasrc/model/cbi/lxc.lua
new file mode 100644 (file)
index 0000000..ac0fdff
--- /dev/null
@@ -0,0 +1,31 @@
+--[[
+
+LuCI LXC module
+
+Copyright (C) 2014, Cisco Systems, Inc.
+
+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
+
+Author: Petar Koretic <petar.koretic@sartura.hr>
+
+]]--
+
+local fs = require "nixio.fs"
+
+m = Map("lxc", translate("LXC Containers"))
+
+if fs.access("/etc/config/lxc") then
+       m:section(SimpleSection).template = "lxc"
+
+       s = m:section(TypedSection, "lxc", translate("Options"))
+       s.anonymous = true
+       s.addremove = false
+
+       s:option(Value, "url", translate("Containers URL"))
+end
+
+return m
diff --git a/applications/luci-app-lxc/luasrc/view/lxc.htm b/applications/luci-app-lxc/luasrc/view/lxc.htm
new file mode 100644 (file)
index 0000000..edfff8e
--- /dev/null
@@ -0,0 +1,458 @@
+<%#
+
+LuCI LXC module
+
+Copyright (C) 2014, Cisco Systems, Inc.
+
+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
+
+Author: Petar Koretic <petar.koretic@sartura.hr>
+
+-%>
+
+<fieldset class="cbi-section">
+       <legend><%:Available Containers%></legend>
+       <div class="cbi-section-node">
+               <table id="t_lxc_list" class="cbi-section-table">
+                       <tr class="cbi-section-table-titles">
+                               <th class="cbi-section-table-cell"><%:Name%></th>
+                               <th class="cbi-section-table-cell"><%:Status%></th>
+                               <th class="cbi-section-table-cell"><%:Actions%></th>
+                       </tr>
+               </table>
+       </div>
+</fieldset>
+
+<fieldset class="cbi-section">
+       <span id="lxc-list-output"></span>
+</fieldset>
+
+<hr/>
+<fieldset class="cbi-section">
+       <legend><%:Create New Container%></legend>
+       <div class="cbi-section-node">
+               <table id="t_lxc_create" class="cbi-section-table">
+                       <tr class="cbi-section-table-titles">
+                               <th class="cbi-section-table-cell"><%:Name%></th>
+                               <th class="cbi-section-table-cell"><%:Template%></th>
+                               <th class="cbi-section-table-cell"><%:Actions%></th>
+                       </tr>
+                       <tr id="tr_holder">
+                               <td>
+                                       <input type="text" id="tx_name" placeholder="<%:Enter new name%>" value='' />
+                               </td>
+                               <td>
+                                       <select id="s_template" class="cbi-input-select cbi-button">
+                                       </select>
+                               </td>
+                               <td>
+                                       <input type="button" id="bt_create" value="<%:Create%>" onclick="lxc_create(tr_holder)" class="cbi-button cbi-button-add" />
+                                       <span id="lxc-add-loader" style="display:inline-block; width:16px; height:16px; margin:0 5px"></span>
+                               </td>
+                       </tr>
+               </table>
+       </div>
+</fieldset>
+
+<fieldset class="cbi-section">
+       <span id="lxc-add-output"></span>
+</fieldset>
+
+<hr/>
+
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
+<script type="text/javascript">//<![CDATA[
+
+       window.img = { "red" : "<%=resource%>/cbi/red.gif", "green" : "<%=resource%>/cbi/green.gif", "purple" : "<%=resource%>/cbi/purple.gif" }
+       window.states = {  "STOPPED" : "red", "RUNNING" : "green", "FROZEN" : "purple"}
+
+       var t_lxc_list = document.getElementById('t_lxc_list');
+       var loader_html = '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" width="16" height="16" style="vertical-align:middle" /> ';
+       var timeout_msg = 0
+       var output_list = document.getElementById("lxc-list-output")
+       var output_add = document.getElementById("lxc-add-output")
+       var loader_add = document.getElementById("lxc-add-loader")
+
+       function lxc_create(tr)
+       {
+               var lxc_name = tr.querySelector("#tx_name").value.trim()
+               var lxc_template = tr.querySelector("#s_template").value
+               var bt_create = tr.querySelector("#bt_create")
+
+               if (t_lxc_list.querySelector("[data-id='" + lxc_name + "']") != null)
+                       return info_message(output_add, "Container with that name already exists!", 4000)
+
+               bt_create.disabled = true
+               output_add.innerHTML = ''
+
+               if (!lxc_name || !lxc_name.length)
+               {
+                       bt_create.disabled = false
+                       return info_message(output_add, "Name cannot be empty!", 4000)
+               }
+
+               loading(loader_add)
+
+               new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_create/' + '%h/%h'.format(lxc_name, lxc_template) , null,
+               function(x)
+               {
+                       bt_create.disabled = false
+                       loading(loader_add, 0)
+
+                       if (!x)
+                               info_message(output_add, "Container creation failed!")
+               })
+       }
+
+       function lxc_create_template(lxc_name, lxc_state)
+       {
+               var info_row = t_lxc_list.querySelector("#empty")
+               if (info_row)
+                       t_lxc_list.deleteRow(1)
+
+               var actions = ''
+               actions += '<input type="button" onclick="action_handler(this)" data-action="start" value="<%:Start%>" class="cbi-button cbi-button-apply" />'
+               actions+= '<input type="button" onclick="action_handler(this)" data-action="stop" value="<%:Stop%>" class="cbi-button cbi-button-reset" />'
+               actions+= '<input type="button" onclick="action_handler(this)" data-action="destroy" value="<%:Delete%>" class="cbi-button cbi-button-remove" />'
+               actions+= ' <select class="cbi-input-select cbi-button" onchange="action_more_handler(this)">\
+                                               <option selected disabled>more</option>\
+                                               <option>configure</option>\
+                                               <option>freeze</option>\
+                                               <option>unfreeze</option>\
+                                               <option>reboot</option>\
+                                       </select>'
+               actions+= '<span data-loader style="display:inline-block; width:16px; height:16px; margin:0 5px"></span>'
+
+               var row = t_lxc_list.insertRow(-1)
+               var cell = row.insertCell(-1)
+               cell.innerHTML = '%q%h%q'.format("<strong>", lxc_name, "</strong>")
+               cell.width = "30%"
+               cell.setAttribute("data-id", lxc_name)
+
+               cell = row.insertCell(-1)
+               cell.width = "20%"
+               cell.innerHTML = "<img src='"+window.img[lxc_state]+"'/>"
+
+               cell = row.insertCell(-1)
+               cell.width = "50%"
+               cell.innerHTML = actions
+       }
+
+       function action_handler(self)
+       {
+               var action = self.getAttribute("data-action");
+
+               var bt_action = self
+               var lxc_name = self.parentNode.parentNode.children[0].getAttribute('data-id')
+               var status_img = self.parentNode.parentNode.querySelector('img')
+               var loader = self.parentNode.querySelector('[data-loader]')
+
+               bt_action.disabled = true
+
+               if (action == "stop")
+               {
+                       loading(loader)
+
+                       new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(action, lxc_name), null,
+                       function(x, ec)
+                       {
+                               loading(loader, 0)
+                               bt_action.disabled = false
+
+                               if (!x || ec)
+                                       return info_message(output_list,"Action failed!")
+
+                               set_status(status_img, "red")
+
+                       });
+               }
+
+               else if (action == "start")
+               {
+                       loading(loader)
+
+                       new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(action, lxc_name), null,
+                       function(x, data)
+                       {
+                               loading(loader, 0)
+                               bt_action.disabled = false
+
+                               //FIXME: uncomment after fixing 'lxc-start'
+                               if (!x /*|| ec */)
+                                       return info_message(output_list,"Action failed!")
+
+                               //FIXME: uncomment after fixing 'lxc-start'
+                               //set_status(status_img, "green")
+                       });
+               }
+
+               else if (action == "destroy")
+               {
+                       if (!confirm("This will completely remove LXC container from the disk. Are you sure? (container will be stopped if running)"))
+                               return
+
+                       loading(loader)
+
+                       new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(action, lxc_name), null,
+                       function(x, ec)
+                       {
+                               loading(loader, 0)
+                               bt_action.disabled = false
+
+                               if (!x || ec)
+                                       return info_message(output_list,"Action failed!")
+
+                               var row = self.parentNode.parentNode
+                               row.parentNode.removeChild(row)
+
+                       });
+               }
+       }
+
+       function lxc_configure_handler(self)
+       {
+               var td = self.parentNode
+               var textarea = td.querySelector('[data-id]')
+               var lxc_name = textarea.getAttribute('data-id')
+               var lxc_configuration = textarea.value
+
+               new XHR().post('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_configuration_set/' + lxc_name, "lxc_configuration=" + encodeURIComponent(lxc_configuration) ,
+               function(x)
+               {
+                       if (!x || x.responseText != "0")
+                               return info_message(output_list,"Action failed!")
+
+                       info_message(output_list,"LXC configuration updated")
+                       var row = td.parentNode
+                       row.parentNode.removeChild(row)
+               })
+       }
+
+       function lxc_rename_template(lxc_name)
+       {
+               var h = '\
+                       <input data-id="'+ lxc_name + '" type="text" placeholder="Enter new name" /> \
+                       <input data-id="bt_confirm" onclick="lxc_rename_handler(this)" type="button" class="cbi-button" value="Confirm" />'
+
+               return h
+       }
+
+       function lxc_configure_template(lxc_name, lxc_configuration)
+       {
+               var h = '\
+                       <textarea data-id="'+ lxc_name + '" rows="20" style="width:100%">'+ lxc_configuration +'</textarea> \
+                       <input data-id="bt_confirm" onclick="lxc_configure_handler(this)" type="button" class="cbi-button" value="Confirm" />'
+
+               return h
+       }
+
+       function action_more_handler(self)
+       {
+               var lxc_name = self.parentNode.parentNode.querySelector('[data-id]').getAttribute('data-id')
+               var loader = self.parentNode.parentNode.querySelector('[data-loader]')
+
+               var option = self.options[self.selectedIndex].text
+
+               self.value = "more"
+
+               switch (option)
+               {
+                       case "configure":
+                               var tr = document.createElement('tr')
+                               var row = self.parentNode.parentNode
+                               var next_row = row.nextSibling
+                               if (next_row && next_row.getAttribute('data-action') !== null)
+                                       row.parentNode.removeChild(next_row)
+
+                               new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_configuration_get/' + lxc_name, null,
+                               function(x)
+                               {
+                                       tr.innerHTML="<td colspan='" + row.cells.length + "'>" + lxc_configure_template(lxc_name, x.responseText) + "</td>"
+                                       tr.setAttribute('data-action','')
+                                       row.parentNode.insertBefore(tr, row.nextSibling)
+                               })
+
+                       break
+
+                       case "freeze":
+                               var tr = self.parentNode.parentNode
+                               var img = tr.querySelector('img')
+                               if(img.getAttribute('src') != window.img["green"])
+                                       return info_message(output_list,"Container is not running!")
+
+                               loading(loader)
+                               new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(option, lxc_name), null,
+                               function(x, ec)
+                               {
+                                       loading(loader, 0)
+                                       if (!x || ec)
+                                               return info_message(output_list,"Action failed!")
+
+                                       set_status(img, "purple")
+                               })
+
+                       break
+
+                       case "unfreeze":
+                               var tr = self.parentNode.parentNode
+                               var img = tr.querySelector('img')
+
+                               if(img.getAttribute('src') != window.img["purple"])
+                                       return info_message(output_list,"Container is not frozen!")
+
+                               loading(loader)
+                               new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(option, lxc_name), null,
+                               function(x, ec)
+                               {
+                                       loading(loader, 0)
+                                       if (!x || ec)
+                                               return info_message(output_list,"Action failed!")
+
+                                       set_status(img, "green")
+                               })
+
+                       break
+
+                       case "reboot":
+                               var tr = self.parentNode.parentNode
+                               var img = tr.querySelector('img')
+                               if(img.getAttribute('src') != window.img["green"])
+                                       return info_message(output_list,"Container is not running!")
+
+                               if (!confirm("Are you sure?"))
+                                       return
+
+                               loading(loader)
+                               new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(option, lxc_name), null,
+                               function(x, ec)
+                               {
+                                       loading(loader, 0)
+                                       if (!x || ec)
+                                               return info_message(output_list,"Action failed!")
+
+                                       info_message(output_list,"LXC rebooted")
+                               })
+                       break
+               }
+
+       }
+
+       function set_empty(t_lxc_list)
+       {
+               if (document.getElementById('empty') !== null)
+                       return
+
+               var row_count = t_lxc_list.rows.length;
+               while(--row_count) t_lxc_list.deleteRow(row_count);
+
+               var row = t_lxc_list.insertRow(-1);
+               row.id = 'empty'
+               var cell = row.insertCell(0);
+               cell.colSpan = 4;
+               cell.innerHTML = '<em><br />There are no containers available yet.</em>';
+       }
+
+       function lxc_list_update()
+       {
+               XHR.poll(4, '<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/list', null,
+               function(x, data)
+               {
+                       if (!x) return;
+
+                       var lxc_count = Object.keys(data).length
+                       if (!data || !lxc_count)
+                               return set_empty(t_lxc_list)
+
+                       if (document.getElementById('empty') !== null)
+                               t_lxc_list.deleteRow(1);
+
+                       var lxcs = t_lxc_list.querySelectorAll('td[data-id]')
+                       var lxc_name_table = {}
+                       for (var i = 0, len = lxcs.length; i < len; i++)
+                       {
+                               var lxc_name = lxcs[i].getAttribute('data-id')
+                               if (!(lxc_name in data))
+                               {
+                                       var row = t_lxc_list.querySelector("[data-id='" + lxc_name + "']").parentNode
+                                       row.parentNode.removeChild(row)
+                                       continue
+                               }
+
+                               lxc_name_table[lxc_name] = lxcs[i].parentNode.querySelector('img')
+                       }
+
+                       for(var key in data)
+                       {
+                               var lxc_name = key
+                               var state = window.states[data[key]]
+
+                               if (!(lxc_name in lxc_name_table))
+                                       lxc_create_template(lxc_name, state)
+
+                               else if (state != get_status(lxc_name_table[lxc_name]))
+                                       set_status(lxc_name_table[lxc_name], state)
+                       }
+
+               })
+       }
+
+       function loading(elem, state)
+       {
+               state = (typeof state === 'undefined') ? 1 : state
+
+               if (state === 1)
+                       elem.innerHTML = loader_html
+               else
+                       setTimeout(function() { elem.innerHTML = ''}, 1000)
+       }
+
+       function set_status(elem, state)
+       {
+               state = (typeof state === 'undefined') ? 1 : state
+
+               setTimeout(function() { elem.setAttribute('src', window.img[state])}, 300)
+       }
+
+       function get_status(elem)
+       {
+               var src = elem.getAttribute('src')
+
+               for (var i in img)
+               {
+                       if (img[i] == src)
+                               return i
+               }
+       }
+
+       function info_message(output, msg, timeout)
+       {
+               timeout = timeout || 3000
+               output.innerHTML = msg
+               clearTimeout(timeout_msg)
+               timeout_msg = setTimeout(function(){ output.innerHTML=""}, timeout);
+       }
+
+       lxc_list_update()
+
+       new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_get_downloadable', null,
+       function(x, data)
+       {
+               if (!x) return;
+
+               var lxc_count = Object.keys(data).length
+               if (!data || !lxc_count) return;
+               var select = document.getElementById("s_template");
+               for(var key in data)
+               {
+                       var option = document.createElement('option');
+                       option.value = data[key];
+                       option.text = data[key].replace(/[_:]/g, ' ');
+                       select.add(option, -1);
+               }
+       })
+
+//]]></script>
diff --git a/applications/luci-app-lxc/root/etc/config/lxc b/applications/luci-app-lxc/root/etc/config/lxc
new file mode 100644 (file)
index 0000000..5572c73
--- /dev/null
@@ -0,0 +1,6 @@
+#
+# lxc uci configuration
+#
+
+config lxc 'lxc'
+       option url 'virtualwrt.org/containers/'
index 68f7a5a..62ce25e 100644 (file)
@@ -103,10 +103,7 @@ uci:foreach("wireless", "wifi-device", function(section)
 
        -- Channel selection
 
-       if hwtype == "atheros" then
-               local cc = util.trim(sys.exec("grep -i '" .. syscc .. "' /lib/wifi/cc_translate.txt |cut -d ' ' -f 2")) or 0
-               sys.exec('"echo " .. cc .. " > /proc/sys/dev/" .. device .. "/countrycode"')
-       elseif hwtype == "mac80211" then
+       if hwtype == "mac80211" then
                sys.exec("iw reg set " .. syscc)
        elseif hwtype == "broadcom" then
                sys.exec ("wlc country " .. syscc)
index a2238e5..9421e02 100644 (file)
@@ -1,17 +1,17 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2011-10-11 00:23+0200\n"
-"PO-Revision-Date: 2014-03-17 10:01+0200\n"
-"Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2017-02-20 18:00-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\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.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "Activate or deactivate IPv6 config globally."
 msgstr "Habilita e desabilita a configuração IPv6 globalmente."
@@ -70,7 +70,6 @@ msgstr "Endereço IPv6 da rede em malha"
 msgid "Mesh Wizard"
 msgstr "Assistente de Configuração da Rede em Malha"
 
-#, fuzzy
 msgid ""
 "Note: this will set up this interface for mesh operation, i.e. add it to "
 "zone 'freifunk' and enable olsr."
index df43c1b..4757030 100755 (executable)
@@ -1,10 +1,5 @@
 #!/bin/sh
 
-/etc/init.d/minidlna enabled && {
-       /etc/init.d/minidlna stop
-       /etc/init.d/minidlna disable
-}
-
 uci -q batch <<-EOF >/dev/null
        delete ucitrack.minidlna
        set ucitrack.minidlna=minidlna
diff --git a/applications/luci-app-mjpg-streamer/po/pt-br/mjpg-streamer.po b/applications/luci-app-mjpg-streamer/po/pt-br/mjpg-streamer.po
new file mode 100644 (file)
index 0000000..28bfa18
--- /dev/null
@@ -0,0 +1,172 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Allow ringbuffer to exceed limit by this amount"
+msgstr "Permitir que o buffer em anel exceda o limite por essa quantidade"
+
+msgid "Ask for username and password on connect"
+msgstr "Pergunte por um usuário e senha na conexão"
+
+msgid "Authentication required"
+msgstr "Requer autenticação"
+
+msgid "Auto"
+msgstr "Automático"
+
+msgid "Automatic disabling of MJPEG mode"
+msgstr "Desativação automática do modo MJPEG"
+
+msgid "Blink"
+msgstr "Pisca"
+
+msgid "Check to save the stream to an mjpeg file"
+msgstr "Marque para salvar o fluxo em um arquivo MJPEG"
+
+msgid "Command to run"
+msgstr "Comando para executar:"
+
+msgid "Device"
+msgstr "Dispositivo"
+
+msgid "Do not initalize dynctrls of Linux-UVC driver"
+msgstr "Não inicie o dynctrls do driver do Linux-UVC"
+
+msgid "Don't initalize dynctrls"
+msgstr "Não inicia o dynctrls"
+
+msgid "Drop frames smaller then this limit"
+msgstr "Descarte quadros menores que este limite"
+
+msgid "Enable MJPG-streamer"
+msgstr "Ativa o MJPG-streamer"
+
+msgid "Enable YUYV format"
+msgstr "Ativar Formato YUYV"
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid "Exceed"
+msgstr "Ultrapassado"
+
+msgid ""
+"Execute command after saving picture. Mjpg-streamer parse the filename as "
+"first parameter to your script."
+msgstr ""
+"Execute o comando depois de salvar a imagem. Mjpg-streamer passa o nome do "
+"arquivo como primeiro parâmetro para o comando."
+
+msgid "File input"
+msgstr "Entrada do arquivo"
+
+msgid "File output"
+msgstr "Saída do arquivo"
+
+msgid "Folder"
+msgstr "Pasta"
+
+msgid "Folder that contains webpages"
+msgstr "Pasta que contém páginas web"
+
+msgid "Frames per second"
+msgstr "Quadros por segundos"
+
+msgid "General"
+msgstr "Geral"
+
+msgid "HTTP output"
+msgstr "Saída HTTP"
+
+msgid "Input plugin"
+msgstr "Plugins de entrada"
+
+msgid "Interval between saving pictures"
+msgstr "Intervalo entre o salvamento das imagens"
+
+msgid "JPEG compression quality"
+msgstr "Qualidade da compressão JPEG"
+
+msgid "Led control"
+msgstr "Controle de LED"
+
+msgid "MJPG-streamer"
+msgstr "MJPG-streamer"
+
+msgid "Max. number of pictures to hold"
+msgstr "Número máximo de imagens a serem mantidas"
+
+msgid "Mjpeg output"
+msgstr "Saída Mjpeg"
+
+msgid "Off"
+msgstr "Desligado"
+
+msgid "On"
+msgstr "Ligado"
+
+msgid "Output plugin"
+msgstr "Plugin de saída"
+
+msgid "Password"
+msgstr "Senha"
+
+msgid "Plugin settings"
+msgstr "Configurações do Plugin"
+
+msgid "Port"
+msgstr "Porta"
+
+msgid "Resolution"
+msgstr "Resolução"
+
+msgid "Ring buffer size"
+msgstr "Tamanho do buffer em anel"
+
+msgid "Set folder to save pictures"
+msgstr "Definir pasta para salvas as imagens"
+
+msgid "Set the inteval in millisecond"
+msgstr "Defina o intervalo em milisegundos"
+
+msgid ""
+"Set the minimum size if the webcam produces small-sized garbage frames. May "
+"happen under low light conditions"
+msgstr ""
+"Defina o tamanho mínimo se a webcam produz quadros lixo de tamanho pequeno. "
+"Pode acontecer sob condições de pouca luz"
+
+msgid ""
+"Set the quality in percent. This setting activates YUYV format, disables "
+"MJPEG"
+msgstr ""
+"Defina a qualidade em porcentagem. Esta definição ativa o formato YUYV, "
+"desativa MJPEG"
+
+msgid "TCP port for this HTTP server"
+msgstr "Porta TCP para este servidor HTTP"
+
+msgid "UVC input"
+msgstr "Dispositivo UVC de entrada"
+
+msgid "Username"
+msgstr "Usuário"
+
+msgid "WWW folder"
+msgstr "Pasta WWW"
+
+msgid ""
+"mjpg streamer is a streaming application for Linux-UVC compatible webcams"
+msgstr ""
+"Mjpg streamer é uma aplicação de streaming para webcams compatíveis com o "
+"Linux-UVC"
diff --git a/applications/luci-app-mwan3/Makefile b/applications/luci-app-mwan3/Makefile
new file mode 100644 (file)
index 0000000..758ec90
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2017 Dan Luedtke <mail@danrl.com>
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI support for the MWAN3 multiwan hotplug script
+LUCI_DEPENDS:=+mwan3 +luci-mod-admin-full +luci-app-firewall +luci-lib-nixio
+LUCI_PKGARCH:=all
+PKG_LICENSE:=GPLv2
+
+PKG_MAINTAINER:=Aedan Renner <chipdankly@gmail.com>
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-mwan3/luasrc/controller/mwan3.lua b/applications/luci-app-mwan3/luasrc/controller/mwan3.lua
new file mode 100644 (file)
index 0000000..3d5a23d
--- /dev/null
@@ -0,0 +1,331 @@
+module("luci.controller.mwan3", package.seeall)
+
+sys = require "luci.sys"
+ut = require "luci.util"
+
+ip = "/usr/bin/ip -4 "
+
+function index()
+       if not nixio.fs.access("/etc/config/mwan3") then
+               return
+       end
+
+       entry({"admin", "network", "mwan"},
+               alias("admin", "network", "mwan", "overview"),
+               _("Load Balancing"), 600)
+
+       entry({"admin", "network", "mwan", "overview"},
+               alias("admin", "network", "mwan", "overview", "overview_interface"),
+               _("Overview"), 10)
+       entry({"admin", "network", "mwan", "overview", "overview_interface"},
+               template("mwan/overview_interface"))
+       entry({"admin", "network", "mwan", "overview", "interface_status"},
+               call("interfaceStatus"))
+       entry({"admin", "network", "mwan", "overview", "overview_detailed"},
+               template("mwan/overview_detailed"))
+       entry({"admin", "network", "mwan", "overview", "detailed_status"},
+               call("detailedStatus"))
+
+       entry({"admin", "network", "mwan", "configuration"},
+               alias("admin", "network", "mwan", "configuration", "interface"),
+               _("Configuration"), 20)
+       entry({"admin", "network", "mwan", "configuration", "interface"},
+               arcombine(cbi("mwan/interface"), cbi("mwan/interfaceconfig")),
+               _("Interfaces"), 10).leaf = true
+       entry({"admin", "network", "mwan", "configuration", "member"},
+               arcombine(cbi("mwan/member"), cbi("mwan/memberconfig")),
+               _("Members"), 20).leaf = true
+       entry({"admin", "network", "mwan", "configuration", "policy"},
+               arcombine(cbi("mwan/policy"), cbi("mwan/policyconfig")),
+               _("Policies"), 30).leaf = true
+       entry({"admin", "network", "mwan", "configuration", "rule"},
+               arcombine(cbi("mwan/rule"), cbi("mwan/ruleconfig")),
+               _("Rules"), 40).leaf = true
+
+       entry({"admin", "network", "mwan", "advanced"},
+               alias("admin", "network", "mwan", "advanced", "hotplugscript"),
+               _("Advanced"), 100)
+       entry({"admin", "network", "mwan", "advanced", "hotplugscript"},
+               form("mwan/advanced_hotplugscript"))
+       entry({"admin", "network", "mwan", "advanced", "mwanconfig"},
+               form("mwan/advanced_mwanconfig"))
+       entry({"admin", "network", "mwan", "advanced", "networkconfig"},
+               form("mwan/advanced_networkconfig"))
+       entry({"admin", "network", "mwan", "advanced", "wirelessconfig"},
+               form("mwan/advanced_wirelessconfig"))
+       entry({"admin", "network", "mwan", "advanced", "diagnostics"},
+               template("mwan/advanced_diagnostics"))
+       entry({"admin", "network", "mwan", "advanced", "diagnostics_display"},
+               call("diagnosticsData"), nil).leaf = true
+       entry({"admin", "network", "mwan", "advanced", "troubleshooting"},
+               template("mwan/advanced_troubleshooting"))
+       entry({"admin", "network", "mwan", "advanced", "troubleshooting_display"},
+               call("troubleshootingData"))
+end
+
+function getInterfaceStatus(ruleNumber, interfaceName)
+       if ut.trim(sys.exec("uci -p /var/state get mwan3." .. interfaceName .. ".enabled")) == "1" then
+               if ut.trim(sys.exec(ip .. "route list table " .. ruleNumber)) ~= "" then
+                       if ut.trim(sys.exec("uci -p /var/state get mwan3." .. interfaceName .. ".track_ip")) ~= "" then
+                               return "online"
+                       else
+                               return "notMonitored"
+                       end
+               else
+                       return "offline"
+               end
+       else
+               return "notEnabled"
+       end
+end
+
+function getInterfaceName()
+       local ruleNumber, status = 0, ""
+       uci.cursor():foreach("mwan3", "interface",
+               function (section)
+                       ruleNumber = ruleNumber+1
+                       status = status .. section[".name"] .. "[" .. getInterfaceStatus(ruleNumber, section[".name"]) .. "]"
+               end
+       )
+       return status
+end
+
+function interfaceStatus()
+       local ntm = require "luci.model.network".init()
+
+       local mArray = {}
+
+       -- overview status
+       local statusString = getInterfaceName()
+       if statusString ~= "" then
+               mArray.wans = {}
+               wansid = {}
+
+               for wanName, interfaceState in string.gfind(statusString, "([^%[]+)%[([^%]]+)%]") do
+                       local wanInterfaceName = ut.trim(sys.exec("uci -p /var/state get network." .. wanName .. ".ifname"))
+                               if wanInterfaceName == "" then
+                                       wanInterfaceName = "X"
+                               end
+                       local wanDeviceLink = ntm:get_interface(wanInterfaceName)
+                               wanDeviceLink = wanDeviceLink and wanDeviceLink:get_network()
+                               wanDeviceLink = wanDeviceLink and wanDeviceLink:adminlink() or "#"
+                       wansid[wanName] = #mArray.wans + 1
+                       mArray.wans[wansid[wanName]] = { name = wanName, link = wanDeviceLink, ifname = wanInterfaceName, status = interfaceState }
+               end
+       end
+
+       -- overview status log
+       local mwanLog = ut.trim(sys.exec("logread | grep mwan3 | tail -n 50 | sed 'x;1!H;$!d;x'"))
+       if mwanLog ~= "" then
+               mArray.mwanlog = { mwanLog }
+       end
+
+       luci.http.prepare_content("application/json")
+       luci.http.write_json(mArray)
+end
+
+function detailedStatus()
+       local mArray = {}
+
+       -- detailed mwan status
+       local detailStatusInfo = ut.trim(sys.exec("/usr/sbin/mwan3 status"))
+       if detailStatusInfo ~= "" then
+               mArray.mwandetail = { detailStatusInfo }
+       end
+
+       luci.http.prepare_content("application/json")
+       luci.http.write_json(mArray)
+end
+
+function diagnosticsData(interface, tool, task)
+       function getInterfaceNumber()
+               local number = 0
+               uci.cursor():foreach("mwan3", "interface",
+                       function (section)
+                               number = number+1
+                               if section[".name"] == interface then
+                                       interfaceNumber = number
+                               end
+                       end
+               )
+       end
+
+       local mArray = {}
+
+       local results = ""
+       if tool == "service" then
+               os.execute("/usr/sbin/mwan3 " .. task)
+               if task == "restart" then
+                       results = "MWAN3 restarted"
+               elseif task == "stop" then
+                       results = "MWAN3 stopped"
+               else
+                       results = "MWAN3 started"
+               end
+       else
+               local interfaceDevice = ut.trim(sys.exec("uci -p /var/state get network." .. interface .. ".ifname"))
+               if interfaceDevice ~= "" then
+                       if tool == "ping" then
+                               local gateway = ut.trim(sys.exec("route -n | awk '{if ($8 == \"" .. interfaceDevice .. "\" && $1 == \"0.0.0.0\" && $3 == \"0.0.0.0\") print $2}'"))
+                               if gateway ~= "" then
+                                       if task == "gateway" then
+                                               local pingCommand = "ping -c 3 -W 2 -I " .. interfaceDevice .. " " .. gateway
+                                               results = pingCommand .. "\n\n" .. sys.exec(pingCommand)
+                                       else
+                                               local tracked = ut.trim(sys.exec("uci -p /var/state get mwan3." .. interface .. ".track_ip"))
+                                               if tracked ~= "" then
+                                                       for z in tracked:gmatch("[^ ]+") do
+                                                               local pingCommand = "ping -c 3 -W 2 -I " .. interfaceDevice .. " " .. z
+                                                               results = results .. pingCommand .. "\n\n" .. sys.exec(pingCommand) .. "\n\n"
+                                                       end
+                                               else
+                                                       results = "No tracking IP addresses configured on " .. interface
+                                               end
+                                       end
+                               else
+                                       results = "No default gateway for " .. interface .. " found. Default route does not exist or is configured incorrectly"
+                               end
+                       elseif tool == "rulechk" then
+                               getInterfaceNumber()
+                               local rule1 = sys.exec(ip .. "rule | grep $(echo $((" .. interfaceNumber .. " + 1000)))")
+                               local rule2 = sys.exec(ip .. "rule | grep $(echo $((" .. interfaceNumber .. " + 2000)))")
+                               if rule1 ~= "" and rule2 ~= "" then
+                                       results = "All required interface IP rules found:\n\n" .. rule1 .. rule2
+                               elseif rule1 ~= "" or rule2 ~= "" then
+                                       results = "Missing 1 of the 2 required interface IP rules\n\n\nRules found:\n\n" .. rule1 .. rule2
+                               else
+                                       results = "Missing both of the required interface IP rules"
+                               end
+                       elseif tool == "routechk" then
+                               getInterfaceNumber()
+                               local routeTable = sys.exec(ip .. "route list table " .. interfaceNumber)
+                               if routeTable ~= "" then
+                                       results = "Interface routing table " .. interfaceNumber .. " was found:\n\n" .. routeTable
+                               else
+                                       results = "Missing required interface routing table " .. interfaceNumber
+                               end
+                       elseif tool == "hotplug" then
+                               if task == "ifup" then
+                                       os.execute("/usr/sbin/mwan3 ifup " .. interface)
+                                       results = "Hotplug ifup sent to interface " .. interface .. "..."
+                               else
+                                       os.execute("/usr/sbin/mwan3 ifdown " .. interface)
+                                       results = "Hotplug ifdown sent to interface " .. interface .. "..."
+                               end
+                       end
+               else
+                       results = "Unable to perform diagnostic tests on " .. interface .. ". There is no physical or virtual device associated with this interface"
+               end
+       end
+       if results ~= "" then
+               results = ut.trim(results)
+               mArray.diagnostics = { results }
+       end
+
+       luci.http.prepare_content("application/json")
+       luci.http.write_json(mArray)
+end
+
+function troubleshootingData()
+       local ver = require "luci.version"
+
+       local mArray = {}
+
+       -- software versions
+       local wrtRelease = ut.trim(ver.distversion)
+               if wrtRelease ~= "" then
+                       wrtRelease = "OpenWrt - " .. wrtRelease
+               else
+                       wrtRelease = "OpenWrt - unknown"
+               end
+       local luciRelease = ut.trim(ver.luciversion)
+               if luciRelease ~= "" then
+                       luciRelease = "\nLuCI - " .. luciRelease
+               else
+                       luciRelease = "\nLuCI - unknown"
+               end
+       local mwanVersion = ut.trim(sys.exec("opkg info mwan3 | grep Version | awk '{print $2}'"))
+               if mwanVersion ~= "" then
+                       mwanVersion = "\n\nmwan3 - " .. mwanVersion
+               else
+                       mwanVersion = "\n\nmwan3 - unknown"
+               end
+       local mwanLuciVersion = ut.trim(sys.exec("opkg info luci-app-mwan3 | grep Version | awk '{print $2}'"))
+               if mwanLuciVersion ~= "" then
+                       mwanLuciVersion = "\nmwan3-luci - " .. mwanLuciVersion
+               else
+                       mwanLuciVersion = "\nmwan3-luci - unknown"
+               end
+       mArray.versions = { wrtRelease .. luciRelease .. mwanVersion .. mwanLuciVersion }
+
+       -- mwan config
+       local mwanConfig = ut.trim(sys.exec("cat /etc/config/mwan3"))
+               if mwanConfig == "" then
+                       mwanConfig = "No data found"
+               end
+       mArray.mwanconfig = { mwanConfig }
+
+       -- network config
+       local networkConfig = ut.trim(sys.exec("cat /etc/config/network | sed -e 's/.*username.*/       USERNAME HIDDEN/' -e 's/.*password.*/   PASSWORD HIDDEN/'"))
+               if networkConfig == "" then
+                       networkConfig = "No data found"
+               end
+       mArray.netconfig = { networkConfig }
+
+       -- wireless config
+       local wirelessConfig = ut.trim(sys.exec("cat /etc/config/wireless | sed -e 's/.*username.*/     USERNAME HIDDEN/' -e 's/.*password.*/   PASSWORD HIDDEN/' -e 's/.*key.*/        KEY HIDDEN/'"))
+               if wirelessConfig == "" then
+                       wirelessConfig = "No data found"
+               end
+       mArray.wificonfig = { wirelessConfig }
+       
+       -- ifconfig
+       local ifconfig = ut.trim(sys.exec("ifconfig"))
+               if ifconfig == "" then
+                       ifconfig = "No data found"
+               end
+       mArray.ifconfig = { ifconfig }
+
+       -- route -n
+       local routeShow = ut.trim(sys.exec("route -n"))
+               if routeShow == "" then
+                       routeShow = "No data found"
+               end
+       mArray.routeshow = { routeShow }
+
+       -- ip rule show
+       local ipRuleShow = ut.trim(sys.exec(ip .. "rule show"))
+               if ipRuleShow == "" then
+                       ipRuleShow = "No data found"
+               end
+       mArray.iprule = { ipRuleShow }
+
+       -- ip route list table 1-250
+       local routeList, routeString = ut.trim(sys.exec(ip .. "rule | sed 's/://g' | awk '$1>=2001 && $1<=2250' | awk '{print $NF}'")), ""
+               if routeList ~= "" then
+                       for line in routeList:gmatch("[^\r\n]+") do
+                               routeString = routeString .. line .. "\n" .. sys.exec(ip .. "route list table " .. line)
+                       end
+                       routeString = ut.trim(routeString)
+               else
+                       routeString = "No data found"
+               end
+       mArray.routelist = { routeString }
+
+       -- default firewall output policy
+       local firewallOut = ut.trim(sys.exec("uci -p /var/state get firewall.@defaults[0].output"))
+               if firewallOut == "" then
+                       firewallOut = "No data found"
+               end
+       mArray.firewallout = { firewallOut }
+
+       -- iptables
+       local iptables = ut.trim(sys.exec("iptables -L -t mangle -v -n"))
+               if iptables == "" then
+                       iptables = "No data found"
+               end
+       mArray.iptables = { iptables }
+
+       luci.http.prepare_content("application/json")
+       luci.http.write_json(mArray)
+end
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_hotplugscript.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_hotplugscript.lua
new file mode 100644 (file)
index 0000000..0e7b8b1
--- /dev/null
@@ -0,0 +1,55 @@
+-- ------ hotplug script configuration ------ --
+
+fs = require "nixio.fs"
+sys = require "luci.sys"
+ut = require "luci.util"
+
+script = "/etc/hotplug.d/iface/16-mwancustom"
+scriptBackup = "/etc/hotplug.d/iface/16-mwancustombak"
+
+if luci.http.formvalue("cbid.luci.1._restorebak") then -- restore button has been clicked
+       luci.http.redirect(luci.dispatcher.build_url("admin/network/mwan/advanced/hotplugscript") .. "?restore=yes")
+elseif luci.http.formvalue("restore") == "yes" then -- restore script from backup
+       os.execute("cp -f " .. scriptBackup .. " " .. script)
+end
+
+
+m5 = SimpleForm("luci", nil)
+       m5:append(Template("mwan/advanced_hotplugscript")) -- highlight current tab
+
+f = m5:section(SimpleSection, nil,
+       translate("This section allows you to modify the contents of /etc/hotplug.d/iface/16-mwancustom<br />" ..
+       "This is useful for running system commands and/or scripts based on interface ifup or ifdown hotplug events<br /><br />" ..
+       "Notes:<br />" ..
+       "The first line of the script must be &#34;#!/bin/sh&#34; without quotes<br />" ..
+       "Lines beginning with # are comments and are not executed<br /><br />" ..
+       "Available variables:<br />" ..
+       "$ACTION is the hotplug event (ifup, ifdown)<br />" ..
+       "$INTERFACE is the interface name (wan1, wan2, etc.)<br />" ..
+       "$DEVICE is the device name attached to the interface (eth0.1, eth1, etc.)"))
+
+
+restore = f:option(Button, "_restorebak", translate("Restore default hotplug script"))
+       restore.inputtitle = translate("Restore...")
+       restore.inputstyle = "apply"
+
+t = f:option(TextValue, "lines")
+       t.rmempty = true
+       t.rows = 20
+
+       function t.cfgvalue()
+               local hps = fs.readfile(script)
+               if not hps or hps == "" then -- if script does not exist or is blank restore from backup
+                       sys.call("cp -f " .. scriptBackup .. " " .. script)
+                       return fs.readfile(script)
+               else
+                       return hps
+               end
+       end
+
+       function t.write(self, section, data) -- format and write new data to script
+               return fs.writefile(script, ut.trim(data:gsub("\r\n", "\n")) .. "\n")
+       end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_mwanconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_mwanconfig.lua
new file mode 100644 (file)
index 0000000..e0a99e8
--- /dev/null
@@ -0,0 +1,32 @@
+-- ------ mwan configuration ------ --
+
+ut = require "luci.util"
+
+mwanConfig = "/etc/config/mwan3"
+
+
+m5 = SimpleForm("luci", nil)
+       m5:append(Template("mwan/advanced_mwanconfig")) -- highlight current tab
+
+
+f = m5:section(SimpleSection, nil,
+       translate("This section allows you to modify the contents of /etc/config/mwan3"))
+
+t = f:option(TextValue, "lines")
+       t.rmempty = true
+       t.rows = 20
+
+       function t.cfgvalue()
+               return nixio.fs.readfile(mwanConfig) or ""
+       end
+
+       function t.write(self, section, data) -- format and write new data to script
+               return nixio.fs.writefile(mwanConfig, "\n" .. ut.trim(data:gsub("\r\n", "\n")) .. "\n")
+       end
+
+       function f.handle(self, state, data)
+               return true
+       end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_networkconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_networkconfig.lua
new file mode 100644 (file)
index 0000000..b93d897
--- /dev/null
@@ -0,0 +1,32 @@
+-- ------ network configuration ------ --
+
+ut = require "luci.util"
+
+networkConfig = "/etc/config/network"
+
+
+m5 = SimpleForm("networkconf", nil)
+       m5:append(Template("mwan/advanced_networkconfig")) -- highlight current tab
+
+
+f = m5:section(SimpleSection, nil,
+       translate("This section allows you to modify the contents of /etc/config/network"))
+
+t = f:option(TextValue, "lines")
+       t.rmempty = true
+       t.rows = 20
+
+       function t.cfgvalue()
+               return nixio.fs.readfile(networkConfig) or ""
+       end
+
+       function t.write(self, section, data) -- format and write new data to script
+               return nixio.fs.writefile(networkConfig, "\n" .. ut.trim(data:gsub("\r\n", "\n")) .. "\n")
+       end
+
+       function f.handle(self, state, data)
+               return true
+       end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_wirelessconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/advanced_wirelessconfig.lua
new file mode 100644 (file)
index 0000000..95e9f7c
--- /dev/null
@@ -0,0 +1,32 @@
+-- ------ wireless configuration ------ --
+
+ut = require "luci.util"
+
+wirelessConfig = "/etc/config/wireless"
+
+
+m5 = SimpleForm("wirelessconf", nil)
+       m5:append(Template("mwan/advanced_wirelessconfig")) -- highlight current tab
+
+
+f = m5:section(SimpleSection, nil,
+       translate("This section allows you to modify the contents of /etc/config/wireless"))
+
+t = f:option(TextValue, "lines")
+       t.rmempty = true
+       t.rows = 20
+
+       function t.cfgvalue()
+               return nixio.fs.readfile(wirelessConfig) or ""
+       end
+
+       function t.write(self, section, data) -- format and write new data to script
+               return nixio.fs.writefile(wirelessConfig, "\n" .. ut.trim(data:gsub("\r\n", "\n")) .. "\n")
+       end
+
+       function f.handle(self, state, data)
+               return true
+       end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interface.lua
new file mode 100644 (file)
index 0000000..a8e68a0
--- /dev/null
@@ -0,0 +1,266 @@
+-- ------ extra functions ------ --
+
+function interfaceCheck() -- find issues with too many interfaces, reliability and metric
+       uci.cursor():foreach("mwan3", "interface",
+               function (section)
+                       local interfaceName = section[".name"]
+                       interfaceNumber = interfaceNumber+1 -- count number of mwan interfaces configured
+                       -- create list of metrics for none and duplicate checking
+                       local metricValue = ut.trim(sys.exec("uci -p /var/state get network." .. interfaceName .. ".metric"))
+                       if metricValue == "" then
+                               errorFound = 1
+                               errorNoMetricList = errorNoMetricList .. interfaceName .. " "
+                       else
+                               metricList = metricList .. interfaceName .. " " .. metricValue .. "\n"
+                       end
+                       -- check if any interfaces have a higher reliability requirement than tracking IPs configured
+                       local trackingNumber = tonumber(ut.trim(sys.exec("echo $(uci -p /var/state get mwan3." .. interfaceName .. ".track_ip) | wc -w")))
+                       if trackingNumber > 0 then
+                               local reliabilityNumber = tonumber(ut.trim(sys.exec("uci -p /var/state get mwan3." .. interfaceName .. ".reliability")))
+                               if reliabilityNumber and reliabilityNumber > trackingNumber then
+                                       errorFound = 1
+                                       errorReliabilityList = errorReliabilityList .. interfaceName .. " "
+                               end
+                       end
+                       -- check if any interfaces are not properly configured in /etc/config/network or have no default route in main routing table
+                       if ut.trim(sys.exec("uci -p /var/state get network." .. interfaceName)) == "interface" then
+                               local interfaceDevice = ut.trim(sys.exec("uci -p /var/state get network." .. interfaceName .. ".ifname"))
+                               if interfaceDevice == "uci: Entry not found" or interfaceDevice == "" then
+                                       errorFound = 1
+                                       errorNetConfigList = errorNetConfigList .. interfaceName .. " "
+                                       errorRouteList = errorRouteList .. interfaceName .. " "
+                               else
+                                       local routeCheck = ut.trim(sys.exec("route -n | awk '{if ($8 == \"" .. interfaceDevice .. "\" && $1 == \"0.0.0.0\" && $3 == \"0.0.0.0\") print $1}'"))
+                                       if routeCheck == "" then
+                                               errorFound = 1
+                                               errorRouteList = errorRouteList .. interfaceName .. " "
+                                       end
+                               end
+                       else
+                               errorFound = 1
+                               errorNetConfigList = errorNetConfigList .. interfaceName .. " "
+                               errorRouteList = errorRouteList .. interfaceName .. " "
+                       end
+               end
+       )
+       -- check if any interfaces have duplicate metrics
+       local metricDuplicateNumbers = sys.exec("echo '" .. metricList .. "' | awk '{print $2}' | uniq -d")
+       if metricDuplicateNumbers ~= "" then
+               errorFound = 1
+               local metricDuplicates = ""
+               for line in metricDuplicateNumbers:gmatch("[^\r\n]+") do
+                       metricDuplicates = sys.exec("echo '" .. metricList .. "' | grep '" .. line .. "' | awk '{print $1}'")
+                       errorDuplicateMetricList = errorDuplicateMetricList .. metricDuplicates
+               end
+               errorDuplicateMetricList = sys.exec("echo '" .. errorDuplicateMetricList .. "' | tr '\n' ' '")
+       end
+end
+
+function interfaceWarnings() -- display status and warning messages at the top of the page
+       local warnings = ""
+       if interfaceNumber <= 250 then
+               warnings = "<strong>There are currently " .. interfaceNumber .. " of 250 supported interfaces configured</strong>"
+       else
+               warnings = "<font color=\"ff0000\"><strong>WARNING: " .. interfaceNumber .. " interfaces are configured exceeding the maximum of 250!</strong></font>"
+       end
+       if errorReliabilityList ~= " " then
+               warnings = warnings .. "<br /><br /><font color=\"ff0000\"><strong>WARNING: some interfaces have a higher reliability requirement than there are tracking IP addresses!</strong></font>"
+       end
+       if errorRouteList ~= " " then
+               warnings = warnings .. "<br /><br /><font color=\"ff0000\"><strong>WARNING: some interfaces have no default route in the main routing table!</strong></font>"
+       end
+       if errorNetConfigList ~= " " then
+               warnings = warnings .. "<br /><br /><font color=\"ff0000\"><strong>WARNING: some interfaces are configured incorrectly or not at all in /etc/config/network!</strong></font>"
+       end
+       if errorNoMetricList ~= " " then
+               warnings = warnings .. "<br /><br /><font color=\"ff0000\"><strong>WARNING: some interfaces have no metric configured in /etc/config/network!</strong></font>"
+       end
+       if errorDuplicateMetricList ~= " " then
+               warnings = warnings .. "<br /><br /><font color=\"ff0000\"><strong>WARNING: some interfaces have duplicate metrics configured in /etc/config/network!</strong></font>"
+       end
+       return warnings
+end
+
+-- ------ interface configuration ------ --
+
+dsp = require "luci.dispatcher"
+sys = require "luci.sys"
+ut = require "luci.util"
+
+interfaceNumber = 0
+metricList = ""
+errorFound = 0
+errorDuplicateMetricList = " "
+errorNetConfigList = " "
+errorNoMetricList = " "
+errorReliabilityList = " "
+errorRouteList = " "
+interfaceCheck()
+
+
+m5 = Map("mwan3", translate("MWAN Interface Configuration"),
+       translate(interfaceWarnings()))
+       m5:append(Template("mwan/config_css"))
+
+
+mwan_interface = m5:section(TypedSection, "interface", translate("Interfaces"),
+       translate("MWAN supports up to 250 physical and/or logical interfaces<br />" ..
+       "MWAN requires that all interfaces have a unique metric configured in /etc/config/network<br />" ..
+       "Names must match the interface name found in /etc/config/network (see advanced tab)<br />" ..
+       "Names may contain characters A-Z, a-z, 0-9, _ and no spaces<br />" ..
+       "Interfaces may not share the same name as configured members, policies or rules"))
+       mwan_interface.addremove = true
+       mwan_interface.dynamic = false
+       mwan_interface.sectionhead = "Interface"
+       mwan_interface.sortable = true
+       mwan_interface.template = "cbi/tblsection"
+       mwan_interface.extedit = dsp.build_url("admin", "network", "mwan", "configuration", "interface", "%s")
+       function mwan_interface.create(self, section)
+               TypedSection.create(self, section)
+               m5.uci:save("mwan3")
+               luci.http.redirect(dsp.build_url("admin", "network", "mwan", "configuration", "interface", section))
+       end
+
+
+enabled = mwan_interface:option(DummyValue, "enabled", translate("Enabled"))
+       enabled.rawhtml = true
+       function enabled.cfgvalue(self, s)
+               if self.map:get(s, "enabled") == "1" then
+                       return "Yes"
+               else
+                       return "No"
+               end
+       end
+
+track_ip = mwan_interface:option(DummyValue, "track_ip", translate("Tracking IP"))
+       track_ip.rawhtml = true
+       function track_ip.cfgvalue(self, s)
+               tracked = self.map:get(s, "track_ip")
+               if tracked then
+                       local ipList = ""
+                       for k,v in pairs(tracked) do
+                               ipList = ipList .. v .. "<br />"
+                       end
+                       return ipList
+               else
+                       return "&#8212;"
+               end
+       end
+
+reliability = mwan_interface:option(DummyValue, "reliability", translate("Tracking reliability"))
+       reliability.rawhtml = true
+       function reliability.cfgvalue(self, s)
+               if tracked then
+                       return self.map:get(s, "reliability") or "&#8212;"
+               else
+                       return "&#8212;"
+               end
+       end
+
+count = mwan_interface:option(DummyValue, "count", translate("Ping count"))
+       count.rawhtml = true
+       function count.cfgvalue(self, s)
+               if tracked then
+                       return self.map:get(s, "count") or "&#8212;"
+               else
+                       return "&#8212;"
+               end
+       end
+
+timeout = mwan_interface:option(DummyValue, "timeout", translate("Ping timeout"))
+       timeout.rawhtml = true
+       function timeout.cfgvalue(self, s)
+               if tracked then
+                       local timeoutValue = self.map:get(s, "timeout")
+                       if timeoutValue then
+                               return timeoutValue .. "s"
+                       else
+                               return "&#8212;"
+                       end
+               else
+                       return "&#8212;"
+               end
+       end
+
+interval = mwan_interface:option(DummyValue, "interval", translate("Ping interval"))
+       interval.rawhtml = true
+       function interval.cfgvalue(self, s)
+               if tracked then
+                       local intervalValue = self.map:get(s, "interval")
+                       if intervalValue then
+                               return intervalValue .. "s"
+                       else
+                               return "&#8212;"
+                       end
+               else
+                       return "&#8212;"
+               end
+       end
+
+down = mwan_interface:option(DummyValue, "down", translate("Interface down"))
+       down.rawhtml = true
+       function down.cfgvalue(self, s)
+               if tracked then
+                       return self.map:get(s, "down") or "&#8212;"
+               else
+                       return "&#8212;"
+               end
+       end
+
+up = mwan_interface:option(DummyValue, "up", translate("Interface up"))
+       up.rawhtml = true
+       function up.cfgvalue(self, s)
+               if tracked then
+                       return self.map:get(s, "up") or "&#8212;"
+               else
+                       return "&#8212;"
+               end
+       end
+
+metric = mwan_interface:option(DummyValue, "metric", translate("Metric"))
+       metric.rawhtml = true
+       function metric.cfgvalue(self, s)
+               local metricValue = sys.exec("uci -p /var/state get network." .. s .. ".metric")
+               if metricValue ~= "" then
+                       return metricValue
+               else
+                       return "&#8212;"
+               end
+       end
+
+errors = mwan_interface:option(DummyValue, "errors", translate("Errors"))
+       errors.rawhtml = true
+       function errors.cfgvalue(self, s)
+               if errorFound == 1 then
+                       local mouseOver, lineBreak = "", ""
+                       if string.find(errorReliabilityList, " " .. s .. " ") then
+                               mouseOver = "Higher reliability requirement than there are tracking IP addresses"
+                               lineBreak = "&#10;&#10;"
+                       end
+                       if string.find(errorRouteList, " " .. s .. " ") then
+                               mouseOver = mouseOver .. lineBreak .. "No default route in the main routing table"
+                               lineBreak = "&#10;&#10;"
+                       end
+                       if string.find(errorNetConfigList, " " .. s .. " ") then
+                               mouseOver = mouseOver .. lineBreak .. "Configured incorrectly or not at all in /etc/config/network"
+                               lineBreak = "&#10;&#10;"
+                       end
+                       if string.find(errorNoMetricList, " " .. s .. " ") then
+                               mouseOver = mouseOver .. lineBreak .. "No metric configured in /etc/config/network"
+                               lineBreak = "&#10;&#10;"
+                       end
+                       if string.find(errorDuplicateMetricList, " " .. s .. " ") then
+                               mouseOver = mouseOver .. lineBreak .. "Duplicate metric configured in /etc/config/network"
+                       end
+                       if mouseOver == "" then
+                               return ""
+                       else
+                               return "<span title=\"" .. mouseOver .. "\"><img src=\"/luci-static/resources/cbi/reset.gif\" alt=\"error\"></img></span>"
+                       end
+               else
+                       return ""
+               end
+       end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/interfaceconfig.lua
new file mode 100644 (file)
index 0000000..387ff01
--- /dev/null
@@ -0,0 +1,190 @@
+-- ------ extra functions ------ --
+
+function interfaceCheck()
+       metricValue = ut.trim(sys.exec("uci -p /var/state get network." .. arg[1] .. ".metric"))
+       if metricValue == "" then -- no metric
+               errorNoMetric = 1
+       else -- if metric exists create list of interface metrics to compare against for duplicates
+               uci.cursor():foreach("mwan3", "interface",
+                       function (section)
+                               local metricValue = ut.trim(sys.exec("uci -p /var/state get network." .. section[".name"] .. ".metric"))
+                               metricList = metricList .. section[".name"] .. " " .. metricValue .. "\n"
+                       end
+               )
+               -- compare metric against list
+               local metricDuplicateNumbers, metricDuplicates = sys.exec("echo '" .. metricList .. "' | awk '{print $2}' | uniq -d"), ""
+               for line in metricDuplicateNumbers:gmatch("[^\r\n]+") do
+                       metricDuplicates = sys.exec("echo '" .. metricList .. "' | grep '" .. line .. "' | awk '{print $1}'")
+                       errorDuplicateMetricList = errorDuplicateMetricList .. metricDuplicates
+               end
+               if sys.exec("echo '" .. errorDuplicateMetricList .. "' | grep -w " .. arg[1]) ~= "" then
+                       errorDuplicateMetric = 1
+               end
+       end
+       -- check if this interface has a higher reliability requirement than track IPs configured
+       local trackingNumber = tonumber(ut.trim(sys.exec("echo $(uci -p /var/state get mwan3." .. arg[1] .. ".track_ip) | wc -w")))
+       if trackingNumber > 0 then
+               local reliabilityNumber = tonumber(ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".reliability")))
+               if reliabilityNumber and reliabilityNumber > trackingNumber then
+                       errorReliability = 1
+               end
+       end
+       -- check if any interfaces are not properly configured in /etc/config/network or have no default route in main routing table
+       if ut.trim(sys.exec("uci -p /var/state get network." .. arg[1])) == "interface" then
+               local interfaceDevice = ut.trim(sys.exec("uci -p /var/state get network." .. arg[1] .. ".ifname"))
+               if interfaceDevice == "uci: Entry not found" or interfaceDevice == "" then
+                       errorNetConfig = 1
+                       errorRoute = 1
+               else
+                       local routeCheck = ut.trim(sys.exec("route -n | awk '{if ($8 == \"" .. interfaceDevice .. "\" && $1 == \"0.0.0.0\" && $3 == \"0.0.0.0\") print $1}'"))
+                       if routeCheck == "" then
+                               errorRoute = 1
+                       end
+               end
+       else
+               errorNetConfig = 1
+               errorRoute = 1
+       end
+end
+
+function interfaceWarnings() -- display warning messages at the top of the page
+       local warns, lineBreak = "", ""
+       if errorReliability == 1 then
+               warns = "<font color=\"ff0000\"><strong>WARNING: this interface has a higher reliability requirement than there are tracking IP addresses!</strong></font>"
+               lineBreak = "<br /><br />"
+       end
+       if errorRoute == 1 then
+               warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>WARNING: this interface has no default route in the main routing table!</strong></font>"
+               lineBreak = "<br /><br />"
+       end
+       if errorNetConfig == 1 then
+               warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>WARNING: this interface is configured incorrectly or not at all in /etc/config/network!</strong></font>"
+               lineBreak = "<br /><br />"
+       end
+       if errorNoMetric == 1 then
+               warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>WARNING: this interface has no metric configured in /etc/config/network!</strong></font>"
+       elseif errorDuplicateMetric == 1 then
+               warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>WARNING: this and other interfaces have duplicate metrics configured in /etc/config/network!</strong></font>"
+       end
+       return warns
+end
+
+-- ------ interface configuration ------ --
+
+dsp = require "luci.dispatcher"
+sys = require "luci.sys"
+ut = require "luci.util"
+arg[1] = arg[1] or ""
+
+metricValue = ""
+metricList = ""
+errorDuplicateMetricList = ""
+errorNoMetric = 0
+errorDuplicateMetric = 0
+errorRoute = 0
+errorNetConfig = 0
+errorReliability = 0
+interfaceCheck()
+
+
+m5 = Map("mwan3", translate("MWAN Interface Configuration - " .. arg[1]),
+       translate(interfaceWarnings()))
+       m5.redirect = dsp.build_url("admin", "network", "mwan", "configuration", "interface")
+
+
+mwan_interface = m5:section(NamedSection, arg[1], "interface", "")
+       mwan_interface.addremove = false
+       mwan_interface.dynamic = false
+
+
+enabled = mwan_interface:option(ListValue, "enabled", translate("Enabled"))
+       enabled.default = "1"
+       enabled:value("1", translate("Yes"))
+       enabled:value("0", translate("No"))
+
+track_ip = mwan_interface:option(DynamicList, "track_ip", translate("Tracking IP"),
+       translate("This IP address will be pinged to dermine if the link is up or down. Leave blank to assume interface is always online"))
+       track_ip.datatype = "ipaddr"
+
+reliability = mwan_interface:option(Value, "reliability", translate("Tracking reliability"),
+       translate("Acceptable values: 1-100. This many Tracking IP addresses must respond for the link to be deemed up"))
+       reliability.datatype = "range(1, 100)"
+       reliability.default = "1"
+
+count = mwan_interface:option(ListValue, "count", translate("Ping count"))
+       count.default = "1"
+       count:value("1")
+       count:value("2")
+       count:value("3")
+       count:value("4")
+       count:value("5")
+
+timeout = mwan_interface:option(ListValue, "timeout", translate("Ping timeout"))
+       timeout.default = "2"
+       timeout:value("1", translate("1 second"))
+       timeout:value("2", translate("2 seconds"))
+       timeout:value("3", translate("3 seconds"))
+       timeout:value("4", translate("4 seconds"))
+       timeout:value("5", translate("5 seconds"))
+       timeout:value("6", translate("6 seconds"))
+       timeout:value("7", translate("7 seconds"))
+       timeout:value("8", translate("8 seconds"))
+       timeout:value("9", translate("9 seconds"))
+       timeout:value("10", translate("10 seconds"))
+
+interval = mwan_interface:option(ListValue, "interval", translate("Ping interval"))
+       interval.default = "5"
+       interval:value("1", translate("1 second"))
+       interval:value("3", translate("3 seconds"))
+       interval:value("5", translate("5 seconds"))
+       interval:value("10", translate("10 seconds"))
+       interval:value("20", translate("20 seconds"))
+       interval:value("30", translate("30 seconds"))
+       interval:value("60", translate("1 minute"))
+       interval:value("300", translate("5 minutes"))
+       interval:value("600", translate("10 minutes"))
+       interval:value("900", translate("15 minutes"))
+       interval:value("1800", translate("30 minutes"))
+       interval:value("3600", translate("1 hour"))
+
+down = mwan_interface:option(ListValue, "down", translate("Interface down"),
+       translate("Interface will be deemed down after this many failed ping tests"))
+       down.default = "3"
+       down:value("1")
+       down:value("2")
+       down:value("3")
+       down:value("4")
+       down:value("5")
+       down:value("6")
+       down:value("7")
+       down:value("8")
+       down:value("9")
+       down:value("10")
+
+up = mwan_interface:option(ListValue, "up", translate("Interface up"),
+       translate("Downed interface will be deemed up after this many successful ping tests"))
+       up.default = "3"
+       up:value("1")
+       up:value("2")
+       up:value("3")
+       up:value("4")
+       up:value("5")
+       up:value("6")
+       up:value("7")
+       up:value("8")
+       up:value("9")
+       up:value("10")
+
+metric = mwan_interface:option(DummyValue, "metric", translate("Metric"),
+       translate("This displays the metric assigned to this interface in /etc/config/network"))
+       metric.rawhtml = true
+       function metric.cfgvalue(self, s)
+               if errorNoMetric == 0 then
+                       return metricValue
+               else
+                       return "&#8212;"
+               end
+       end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/member.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/member.lua
new file mode 100644 (file)
index 0000000..3bccbd9
--- /dev/null
@@ -0,0 +1,46 @@
+-- ------ member configuration ------ --
+
+ds = require "luci.dispatcher"
+
+
+m5 = Map("mwan3", translate("MWAN Member Configuration"))
+       m5:append(Template("mwan/config_css"))
+
+
+mwan_member = m5:section(TypedSection, "member", translate("Members"),
+       translate("Members are profiles attaching a metric and weight to an MWAN interface<br />" ..
+       "Names may contain characters A-Z, a-z, 0-9, _ and no spaces<br />" ..
+       "Members may not share the same name as configured interfaces, policies or rules"))
+       mwan_member.addremove = true
+       mwan_member.dynamic = false
+       mwan_member.sectionhead = "Member"
+       mwan_member.sortable = true
+       mwan_member.template = "cbi/tblsection"
+       mwan_member.extedit = ds.build_url("admin", "network", "mwan", "configuration", "member", "%s")
+       function mwan_member.create(self, section)
+               TypedSection.create(self, section)
+               m5.uci:save("mwan3")
+               luci.http.redirect(ds.build_url("admin", "network", "mwan", "configuration", "member", section))
+       end
+
+
+interface = mwan_member:option(DummyValue, "interface", translate("Interface"))
+       interface.rawhtml = true
+       function interface.cfgvalue(self, s)
+               return self.map:get(s, "interface") or "&#8212;"
+       end
+
+metric = mwan_member:option(DummyValue, "metric", translate("Metric"))
+       metric.rawhtml = true
+       function metric.cfgvalue(self, s)
+               return self.map:get(s, "metric") or "1"
+       end
+
+weight = mwan_member:option(DummyValue, "weight", translate("Weight"))
+       weight.rawhtml = true
+       function weight.cfgvalue(self, s)
+               return self.map:get(s, "weight") or "1"
+       end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/memberconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/memberconfig.lua
new file mode 100644 (file)
index 0000000..181d22e
--- /dev/null
@@ -0,0 +1,47 @@
+-- ------ extra functions ------ --
+
+function cbi_add_interface(field)
+       uci.cursor():foreach("mwan3", "interface",
+               function (section)
+                       field:value(section[".name"])
+               end
+       )
+end
+
+-- ------ member configuration ------ --
+
+dsp = require "luci.dispatcher"
+arg[1] = arg[1] or ""
+
+
+m5 = Map("mwan3", translate("MWAN Member Configuration - ") .. arg[1])
+       m5.redirect = dsp.build_url("admin", "network", "mwan", "configuration", "member")
+
+
+mwan_member = m5:section(NamedSection, arg[1], "member", "")
+       mwan_member.addremove = false
+       mwan_member.dynamic = false
+
+
+interface = mwan_member:option(Value, "interface", translate("Interface"))
+       cbi_add_interface(interface)
+
+metric = mwan_member:option(Value, "metric", translate("Metric"),
+       translate("Acceptable values: 1-1000. Defaults to 1 if not set"))
+       metric.datatype = "range(1, 1000)"
+
+weight = mwan_member:option(Value, "weight", translate("Weight"),
+       translate("Acceptable values: 1-1000. Defaults to 1 if not set"))
+       weight.datatype = "range(1, 1000)"
+
+
+-- ------ currently configured interfaces ------ --
+
+mwan_interface = m5:section(TypedSection, "interface", translate("Currently Configured Interfaces"))
+       mwan_interface.addremove = false
+       mwan_interface.dynamic = false
+       mwan_interface.sortable = false
+       mwan_interface.template = "cbi/tblsection"
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policy.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policy.lua
new file mode 100644 (file)
index 0000000..e141d69
--- /dev/null
@@ -0,0 +1,95 @@
+-- ------ extra functions ------ --
+
+function policyCheck() -- check to see if any policy names exceed the maximum of 15 characters
+       uci.cursor():foreach("mwan3", "policy",
+               function (section)
+                       if string.len(section[".name"]) > 15 then
+                               nameTooLong = 1
+                               err_name_list = err_name_list .. section[".name"] .. " "
+                       end
+               end
+       )
+end
+
+function policyWarn() -- display status and warning messages at the top of the page
+       if nameTooLong == 1 then
+               return "<font color=\"ff0000\"><strong>WARNING: Some policies have names exceeding the maximum of 15 characters!</strong></font>"
+       else
+               return ""
+       end
+end
+
+-- ------ policy configuration ------ --
+
+ds = require "luci.dispatcher"
+sys = require "luci.sys"
+
+nameTooLong = 0
+err_name_list = " "
+policyCheck()
+
+
+m5 = Map("mwan3", translate("MWAN Policy Configuration"),
+       translate(policyWarn()))
+       m5:append(Template("mwan/config_css"))
+
+
+mwan_policy = m5:section(TypedSection, "policy", translate("Policies"),
+       translate("Policies are profiles grouping one or more members controlling how MWAN distributes traffic<br />" ..
+       "Member interfaces with lower metrics are used first. Interfaces with the same metric load-balance<br />" ..
+       "Load-balanced member interfaces distribute more traffic out those with higher weights<br />" ..
+       "Names may contain characters A-Z, a-z, 0-9, _ and no spaces. Names must be 15 characters or less<br />" ..
+       "Policies may not share the same name as configured interfaces, members or rules"))
+       mwan_policy.addremove = true
+       mwan_policy.dynamic = false
+       mwan_policy.sectionhead = "Policy"
+       mwan_policy.sortable = true
+       mwan_policy.template = "cbi/tblsection"
+       mwan_policy.extedit = ds.build_url("admin", "network", "mwan", "configuration", "policy", "%s")
+       function mwan_policy.create(self, section)
+               TypedSection.create(self, section)
+               m5.uci:save("mwan3")
+               luci.http.redirect(ds.build_url("admin", "network", "mwan", "configuration", "policy", section))
+       end
+
+
+use_member = mwan_policy:option(DummyValue, "use_member", translate("Members assigned"))
+       use_member.rawhtml = true
+       function use_member.cfgvalue(self, s)
+               local memberConfig, memberList = self.map:get(s, "use_member"), ""
+               if memberConfig then
+                       for k,v in pairs(memberConfig) do
+                               memberList = memberList .. v .. "<br />"
+                       end
+                       return memberList
+               else
+                       return "&#8212;"
+               end
+               
+       end
+
+last_resort = mwan_policy:option(DummyValue, "last_resort", translate("Last resort"))
+       last_resort.rawhtml = true
+       function last_resort.cfgvalue(self, s)
+               local action = self.map:get(s, "last_resort")
+               if action == "blackhole" then
+                       return "blackhole (drop)"
+               elseif action == "default" then
+                       return "default (use main routing table)"
+               else
+                       return "unreachable (reject)"
+               end
+       end
+
+errors = mwan_policy:option(DummyValue, "errors", translate("Errors"))
+       errors.rawhtml = true
+       function errors.cfgvalue(self, s)
+               if not string.find(err_name_list, " " .. s .. " ") then
+                       return ""
+               else
+                       return "<span title=\"Name exceeds 15 characters\"><img src=\"/luci-static/resources/cbi/reset.gif\" alt=\"error\"></img></span>"
+               end
+       end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policyconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/policyconfig.lua
new file mode 100644 (file)
index 0000000..f48a104
--- /dev/null
@@ -0,0 +1,65 @@
+-- ------ extra functions ------ --
+
+function policyCheck() -- check to see if this policy's name exceed the maximum of 15 characters
+       policyNameLength = string.len(arg[1])
+       if policyNameLength > 15 then
+               nameTooLong = 1
+       end
+end
+
+function policyWarn() -- display status and warning messages at the top of the page
+       if nameTooLong == 1 then
+               return "<font color=\"ff0000\"><strong>WARNING: this policy's name is " .. policyNameLength .. " characters exceeding the maximum of 15!</strong></font>"
+       else
+               return ""
+       end
+end
+
+function cbiAddMember(field)
+       uci.cursor():foreach("mwan3", "member",
+               function (section)
+                       field:value(section[".name"])
+               end
+       )
+end
+
+-- ------ policy configuration ------ --
+
+dsp = require "luci.dispatcher"
+arg[1] = arg[1] or ""
+
+nameTooLong = 0
+policyCheck()
+
+
+m5 = Map("mwan3", translate("MWAN Policy Configuration - " .. arg[1]),
+       translate(policyWarn()))
+       m5.redirect = dsp.build_url("admin", "network", "mwan", "configuration", "policy")
+
+
+mwan_policy = m5:section(NamedSection, arg[1], "policy", "")
+       mwan_policy.addremove = false
+       mwan_policy.dynamic = false
+
+
+use_member = mwan_policy:option(DynamicList, "use_member", translate("Member used"))
+       cbiAddMember(use_member)
+
+last_resort = mwan_policy:option(ListValue, "last_resort", translate("Last resort"),
+       translate("When all policy members are offline use this behavior for matched traffic"))
+       last_resort.default = "unreachable"
+       last_resort:value("unreachable", translate("unreachable (reject)"))
+       last_resort:value("blackhole", translate("blackhole (drop)"))
+       last_resort:value("default", translate("default (use main routing table)"))
+
+
+-- ------ currently configured members ------ --
+
+mwan_member = m5:section(TypedSection, "member", translate("Currently Configured Members"))
+       mwan_member.addremove = false
+       mwan_member.dynamic = false
+       mwan_member.sortable = false
+       mwan_member.template = "cbi/tblsection"
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/rule.lua
new file mode 100644 (file)
index 0000000..a22e010
--- /dev/null
@@ -0,0 +1,141 @@
+-- ------ extra functions ------ --
+
+function ruleCheck() -- determine if rules needs a proper protocol configured
+       uci.cursor():foreach("mwan3", "rule",
+               function (section)
+                       local sourcePort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. section[".name"] .. ".src_port"))
+                       local destPort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. section[".name"] .. ".dest_port"))
+                       if sourcePort ~= "" or destPort ~= "" then -- ports configured
+                               local protocol = ut.trim(sys.exec("uci -p /var/state get mwan3." .. section[".name"] .. ".proto"))
+                               if protocol == "" or protocol == "all" then -- no or improper protocol
+                                       error_protocol_list = error_protocol_list .. section[".name"] .. " "
+                               end
+                       end
+               end
+       )
+end
+
+function ruleWarn() -- display warning messages at the top of the page
+       if error_protocol_list ~= " " then
+               return "<font color=\"ff0000\"><strong>WARNING: some rules have a port configured with no or improper protocol specified! Please configure a specific protocol!</strong></font>"
+       else
+               return ""
+       end
+end
+
+-- ------ rule configuration ------ --
+
+dsp = require "luci.dispatcher"
+sys = require "luci.sys"
+ut = require "luci.util"
+
+error_protocol_list = " "
+ruleCheck()
+
+
+m5 = Map("mwan3", translate("MWAN Rule Configuration"),
+       translate(ruleWarn()))
+       m5:append(Template("mwan/config_css"))
+
+
+mwan_rule = m5:section(TypedSection, "rule", translate("Traffic Rules"),
+       translate("Rules specify which traffic will use a particular MWAN policy based on IP address, port or protocol<br />" ..
+       "Rules are matched from top to bottom. Rules below a matching rule are ignored. Traffic not matching any rule is routed using the main routing table<br />" ..
+       "Traffic destined for known (other than default) networks is handled by the main routing table. Traffic matching a rule, but all WAN interfaces for that policy are down will be blackholed<br />" ..
+       "Names may contain characters A-Z, a-z, 0-9, _ and no spaces<br />" ..
+       "Rules may not share the same name as configured interfaces, members or policies"))
+       mwan_rule.addremove = true
+       mwan_rule.anonymous = false
+       mwan_rule.dynamic = false
+       mwan_rule.sectionhead = "Rule"
+       mwan_rule.sortable = true
+       mwan_rule.template = "cbi/tblsection"
+       mwan_rule.extedit = dsp.build_url("admin", "network", "mwan", "configuration", "rule", "%s")
+       function mwan_rule.create(self, section)
+               TypedSection.create(self, section)
+               m5.uci:save("mwan3")
+               luci.http.redirect(dsp.build_url("admin", "network", "mwan", "configuration", "rule", section))
+       end
+
+
+src_ip = mwan_rule:option(DummyValue, "src_ip", translate("Source address"))
+       src_ip.rawhtml = true
+       function src_ip.cfgvalue(self, s)
+               return self.map:get(s, "src_ip") or "&#8212;"
+       end
+
+src_port = mwan_rule:option(DummyValue, "src_port", translate("Source port"))
+       src_port.rawhtml = true
+       function src_port.cfgvalue(self, s)
+               return self.map:get(s, "src_port") or "&#8212;"
+       end
+
+dest_ip = mwan_rule:option(DummyValue, "dest_ip", translate("Destination address"))
+       dest_ip.rawhtml = true
+       function dest_ip.cfgvalue(self, s)
+               return self.map:get(s, "dest_ip") or "&#8212;"
+       end
+
+dest_port = mwan_rule:option(DummyValue, "dest_port", translate("Destination port"))
+       dest_port.rawhtml = true
+       function dest_port.cfgvalue(self, s)
+               return self.map:get(s, "dest_port") or "&#8212;"
+       end
+
+proto = mwan_rule:option(DummyValue, "proto", translate("Protocol"))
+       proto.rawhtml = true
+       function proto.cfgvalue(self, s)
+               return self.map:get(s, "proto") or "all"
+       end
+
+sticky = mwan_rule:option(DummyValue, "sticky", translate("Sticky"))
+       sticky.rawhtml = true
+       function sticky.cfgvalue(self, s)
+               if self.map:get(s, "sticky") == "1" then
+                       stickied = 1
+                       return "Yes"
+               else
+                       stickied = nil
+                       return "No"
+               end
+       end
+
+timeout = mwan_rule:option(DummyValue, "timeout", translate("Sticky timeout"))
+       timeout.rawhtml = true
+       function timeout.cfgvalue(self, s)
+               if stickied then
+                       local timeoutValue = self.map:get(s, "timeout")
+                       if timeoutValue then
+                               return timeoutValue .. "s"
+                       else
+                               return "600s"
+                       end
+               else
+                       return "&#8212;"
+               end
+       end
+
+ipset = mwan_rule:option(DummyValue, "ipset", translate("IPset"))
+       ipset.rawhtml = true
+       function ipset.cfgvalue(self, s)
+               return self.map:get(s, "ipset") or "&#8212;"
+       end
+
+use_policy = mwan_rule:option(DummyValue, "use_policy", translate("Policy assigned"))
+       use_policy.rawhtml = true
+       function use_policy.cfgvalue(self, s)
+               return self.map:get(s, "use_policy") or "&#8212;"
+       end
+
+errors = mwan_rule:option(DummyValue, "errors", translate("Errors"))
+       errors.rawhtml = true
+       function errors.cfgvalue(self, s)
+               if not string.find(error_protocol_list, " " .. s .. " ") then
+                       return ""
+               else
+                       return "<span title=\"No protocol specified\"><img src=\"/luci-static/resources/cbi/reset.gif\" alt=\"error\"></img></span>"
+               end
+       end
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua
new file mode 100644 (file)
index 0000000..f7fb341
--- /dev/null
@@ -0,0 +1,113 @@
+-- ------ extra functions ------ --
+
+function ruleCheck() -- determine if rule needs a protocol specified
+       local sourcePort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".src_port"))
+       local destPort = ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".dest_port"))
+       if sourcePort ~= "" or destPort ~= "" then -- ports configured
+               local protocol = ut.trim(sys.exec("uci -p /var/state get mwan3." .. arg[1] .. ".proto"))
+               if protocol == "" or protocol == "all" then -- no or improper protocol
+                       error_protocol = 1
+               end
+       end
+end
+
+function ruleWarn() -- display warning message at the top of the page
+       if error_protocol == 1 then
+               return "<font color=\"ff0000\"><strong>WARNING: this rule is incorrectly configured with no or improper protocol specified! Please configure a specific protocol!</strong></font>"
+       else
+               return ""
+       end
+end
+
+function cbiAddPolicy(field)
+       uci.cursor():foreach("mwan3", "policy",
+               function (section)
+                       field:value(section[".name"])
+               end
+       )
+end
+
+function cbiAddProtocol(field)
+       local protocols = ut.trim(sys.exec("cat /etc/protocols | grep ' # ' | awk '{print $1}' | grep -vw -e 'ip' -e 'tcp' -e 'udp' -e 'icmp' -e 'esp' | grep -v 'ipv6' | sort | tr '\n' ' '"))
+       for p in string.gmatch(protocols, "%S+") do
+               field:value(p)
+       end
+end
+
+-- ------ rule configuration ------ --
+
+dsp = require "luci.dispatcher"
+sys = require "luci.sys"
+ut = require "luci.util"
+arg[1] = arg[1] or ""
+
+error_protocol = 0
+ruleCheck()
+
+
+m5 = Map("mwan3", translate("MWAN Rule Configuration - ") .. arg[1],
+       translate(ruleWarn()))
+       m5.redirect = dsp.build_url("admin", "network", "mwan", "configuration", "rule")
+
+
+mwan_rule = m5:section(NamedSection, arg[1], "rule", "")
+       mwan_rule.addremove = false
+       mwan_rule.dynamic = false
+
+
+src_ip = mwan_rule:option(Value, "src_ip", translate("Source address"),
+       translate("Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"))
+       src_ip.datatype = ipaddr
+
+src_port = mwan_rule:option(Value, "src_port", translate("Source port"),
+       translate("May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or as a portrange (eg \"1024:2048\") without quotes"))
+
+dest_ip = mwan_rule:option(Value, "dest_ip", translate("Destination address"),
+       translate("Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"))
+       dest_ip.datatype = ipaddr
+
+dest_port = mwan_rule:option(Value, "dest_port", translate("Destination port"),
+       translate("May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or as a portrange (eg \"1024:2048\") without quotes"))
+
+proto = mwan_rule:option(Value, "proto", translate("Protocol"),
+       translate("View the contents of /etc/protocols for protocol descriptions"))
+       proto.default = "all"
+       proto.rmempty = false
+       proto:value("all")
+       proto:value("ip")
+       proto:value("tcp")
+       proto:value("udp")
+       proto:value("icmp")
+       proto:value("esp")
+       cbiAddProtocol(proto)
+
+sticky = mwan_rule:option(ListValue, "sticky", translate("Sticky"),
+       translate("Traffic from the same source IP address that previously matched this rule within the sticky timeout period will use the same WAN interface"))
+       sticky.default = "0"
+       sticky:value("1", translate("Yes"))
+       sticky:value("0", translate("No"))
+
+timeout = mwan_rule:option(Value, "timeout", translate("Sticky timeout"),
+       translate("Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"))
+       timeout.datatype = "range(1, 1000000)"
+
+ipset = mwan_rule:option(Value, "ipset", translate("IPset"),
+       translate("Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/youtube.com/youtube\")"))
+
+use_policy = mwan_rule:option(Value, "use_policy", translate("Policy assigned"))
+       cbiAddPolicy(use_policy)
+       use_policy:value("unreachable", translate("unreachable (reject)"))
+       use_policy:value("blackhole", translate("blackhole (drop)"))
+       use_policy:value("default", translate("default (use main routing table)"))
+
+
+-- ------ currently configured policies ------ --
+
+mwan_policy = m5:section(TypedSection, "policy", translate("Currently Configured Policies"))
+       mwan_policy.addremove = false
+       mwan_policy.dynamic = false
+       mwan_policy.sortable = false
+       mwan_policy.template = "cbi/tblsection"
+
+
+return m5
diff --git a/applications/luci-app-mwan3/luasrc/view/admin_status/index/mwan.htm b/applications/luci-app-mwan3/luasrc/view/admin_status/index/mwan.htm
new file mode 100644 (file)
index 0000000..53b997a
--- /dev/null
@@ -0,0 +1 @@
+<%+mwan/openwrt_overview_status%>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_diagnostics.htm
new file mode 100644 (file)
index 0000000..14d404b
--- /dev/null
@@ -0,0 +1,129 @@
+<%+header%>
+
+<ul class="cbi-tabmenu">
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/hotplugscript")%>"><%:Hotplug Script%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/mwanconfig")%>"><%:MWAN Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/networkconfig")%>"><%:Network Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/wirelessconfig")%>"><%:Wireless Config%></a></li>
+       <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/diagnostics")%>"><%:Diagnostics%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/troubleshooting")%>"><%:Troubleshooting%></a></li>
+</ul>
+
+<%
+       local uci = require "luci.model.uci"
+
+       interfaceNames = ""
+       uci.cursor():foreach("mwan3", "interface",
+               function (section)
+                       interfaceNames = interfaceNames .. section[".name"] .. " "
+               end
+       )
+%>
+
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
+<script type="text/javascript">//<![CDATA[
+       var stxhr = new XHR();
+
+       function update_status(tool, task)
+       {
+               var iface = document.getElementById('mwaniface').value;
+               var output = document.getElementById('diag_output');
+
+               if (tool == "service")
+                       {
+                               output.innerHTML =
+                                       '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="padding: 20px; vertical-align: middle;" /> ' +
+                                       "Waiting for MWAN to " + task + "..."
+                               ;
+                       }
+                       else
+                       {
+                               output.innerHTML =
+                                       '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="padding: 20px; vertical-align: middle;" /> ' +
+                                       "Waiting for diagnostic results..."
+                               ;
+                       }
+
+               output.parentNode.style.display = 'block';
+               output.style.display = 'inline';
+
+               stxhr.get('<%=luci.dispatcher.build_url("admin", "network", "mwan", "advanced")%>/diagnostics_display' + '/' + iface + '/' + tool + '/' + task, null,
+                       function(x, mArray)
+                       {
+                               if (mArray.diagnostics)
+                               {
+                                       output.innerHTML = String.format('<pre id="diag_output_css">%h</pre>', mArray.diagnostics[0]);
+                               }
+                               else
+                               {
+                                       output.innerHTML = '<pre id="diag_output_css"><strong>No diagnostic results returned</strong></pre>';
+                               }
+                       }
+               );
+       }
+//]]></script>
+
+<div id="mwan_diagnostics" class="cbi-map">
+       <fieldset id="diag_select" class="cbi-section">
+               <legend><%:MWAN Interface Diagnostics%></legend>
+               <select id="mwaniface">
+                       <% for z in interfaceNames:gmatch("[^ ]+") do -%><option value="<%=z%>"><%=z%></option><%- end %>
+               </select>
+               <div id="buttoncss">
+                       <input type="button" value="<%:Ping default gateway%>" class="cbi-button cbi-button-apply" onclick="update_status('ping', 'gateway')" />
+                       <input type="button" value="<%:Ping tracking IP%>" class="cbi-button cbi-button-apply" onclick="update_status('ping', 'track_ip')" />
+                       <input type="button" value="<%:Check IP rules%>" class="cbi-button cbi-button-apply" onclick="update_status('rulechk', null)" />
+                       <input type="button" value="<%:Check routing table%>" class="cbi-button cbi-button-apply" onclick="update_status('routechk', null)" />
+                       <input type="button" value="<%:Hotplug ifup%>" class="cbi-button cbi-button-apply" onclick="update_status('hotplug', 'ifup')" />
+                       <input type="button" value="<%:Hotplug ifdown%>" class="cbi-button cbi-button-apply" onclick="update_status('hotplug', 'ifdown')" />
+               </div>
+       </fieldset>
+       <fieldset id="diag_select" class="cbi-section">
+               <legend><%:MWAN Service Control%></legend>
+               <div id="buttoncss">
+                       <input type="button" value="<%:Restart MWAN%>" class="cbi-button cbi-button-apply" onclick="update_status('service', 'restart')" />
+                       <input type="button" value="<%:Stop MWAN%>" class="cbi-button cbi-button-apply" onclick="update_status('service', 'stop')" />
+                       <input type="button" value="<%:Start MWAN%>" class="cbi-button cbi-button-apply" onclick="update_status('service', 'start')" />
+               </div>
+       </fieldset>
+       <fieldset class="cbi-section" style="display:none">
+               <legend><%:Diagnostic Results%></legend>
+               <div id="diag_output"></div>
+       </fieldset>
+</div>
+
+<style type="text/css">
+  .container {  /* container for entire page. fixes bootstrap theme's ridiculously small page width */
+       max-width: none;
+       margin-left: 30px;
+       padding-right: 30px;
+       width: auto;
+  }
+  #mwan_diagnostics {
+       background-color: #FFFFFF;
+       border: 1px dotted #555555;
+       padding: 20px;
+  }
+  #diag_select {
+       padding: 12px 20px 20px 20px;
+  }
+  #mwaniface {
+       float: left;
+       margin: 8px 20px 0px 0px;
+  }
+  #buttoncss {
+       display: table;
+       float: left;
+       text-align: left;
+  }
+  .cbi-button {
+       margin: 8px 20px 0px 0px;
+       min-width: 153px;
+  }
+  #diag_output_css {
+       padding: 20px;
+       text-align: left;
+  }
+</style>
+
+<%+footer%>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_hotplugscript.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_hotplugscript.htm
new file mode 100644 (file)
index 0000000..4c2a0dc
--- /dev/null
@@ -0,0 +1,24 @@
+<ul class="cbi-tabmenu">
+       <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/hotplugscript")%>"><%:Hotplug Script%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/mwanconfig")%>"><%:MWAN Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/networkconfig")%>"><%:Network Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/wirelessconfig")%>"><%:Wireless Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/diagnostics")%>"><%:Diagnostics%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/troubleshooting")%>"><%:Troubleshooting%></a></li>
+</ul>
+
+<style type="text/css">
+  .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */
+       max-width: none;
+       margin: 0px 0px 0px 30px;
+       padding-right: 30px;
+       width: auto;
+  }
+  .cbi-section-node {
+       margin-top: 20px;
+  }
+  .cbi-section {
+       border: 1px dotted #555555;
+       padding: 20px;
+  }
+</style>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_mwanconfig.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_mwanconfig.htm
new file mode 100644 (file)
index 0000000..fba3fa6
--- /dev/null
@@ -0,0 +1,24 @@
+<ul class="cbi-tabmenu">
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/hotplugscript")%>"><%:Hotplug Script%></a></li>
+       <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/mwanconfig")%>"><%:MWAN Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/networkconfig")%>"><%:Network Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/wirelessconfig")%>"><%:Wireless Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/diagnostics")%>"><%:Diagnostics%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/troubleshooting")%>"><%:Troubleshooting%></a></li>
+</ul>
+
+<style type="text/css">
+  .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */
+       max-width: none;
+       margin: 0px 0px 0px 30px;
+       padding-right: 30px;
+       width: auto;
+  }
+  .cbi-section-node {
+       margin-top: 20px;
+  }
+  .cbi-section {
+       border: 1px dotted #555555;
+       padding: 20px;
+  }
+</style>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_networkconfig.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_networkconfig.htm
new file mode 100644 (file)
index 0000000..cf90112
--- /dev/null
@@ -0,0 +1,24 @@
+<ul class="cbi-tabmenu">
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/hotplugscript")%>"><%:Hotplug Script%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/mwanconfig")%>"><%:MWAN Config%></a></li>
+       <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/networkconfig")%>"><%:Network Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/wirelessconfig")%>"><%:Wireless Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/diagnostics")%>"><%:Diagnostics%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/troubleshooting")%>"><%:Troubleshooting%></a></li>
+</ul>
+
+<style type="text/css">
+  .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */
+       max-width: none;
+       margin: 0px 0px 0px 30px;
+       padding-right: 30px;
+       width: auto;
+  }
+  .cbi-section-node {
+       margin-top: 20px;
+  }
+  .cbi-section {
+       border: 1px dotted #555555;
+       padding: 20px;
+  }
+</style>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_troubleshooting.htm
new file mode 100644 (file)
index 0000000..0a12496
--- /dev/null
@@ -0,0 +1,74 @@
+<%+header%>
+
+<ul class="cbi-tabmenu">
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/hotplugscript")%>"><%:Hotplug Script%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/mwanconfig")%>"><%:MWAN Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/networkconfig")%>"><%:Network Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/wirelessconfig")%>"><%:Wireless Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/diagnostics")%>"><%:Diagnostics%></a></li>
+       <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/troubleshooting")%>"><%:Troubleshooting%></a></li>
+</ul>
+
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
+<script type="text/javascript">//<![CDATA[
+       XHR.poll(15, '<%=luci.dispatcher.build_url("admin", "network", "mwan", "advanced", "troubleshooting_display")%>', null,
+               function(x, mArray)
+               {
+                       var tshoot = document.getElementById('troubleshoot_text');
+                       if (mArray.versions)
+                       {
+                               var versions = '<span class="description">Software versions : </span><br /><br />';
+                               var mwanConfig = '<br /><br /><span class="description">Output of &#34;cat /etc/config/mwan3&#34; : </span><br /><br />';
+                               var netConfig = '<br /><br /><span class="description">Output of &#34;cat /etc/config/network&#34; : </span><br /><br />';
+                               var wifiConfig = '<br /><br /><span class="description">Output of &#34;cat /etc/config/wireless&#34; : </span><br /><br />';
+                               var ifconfig = '<br /><br /><span class="description">Output of &#34;ifconfig&#34; : </span><br /><br />';
+                               var ipRoute = '<br /><br /><span class="description">Output of &#34;route -n&#34; : </span><br /><br />';
+                               var ipRuleShow = '<br /><br /><span class="description">Output of &#34;ip rule show&#34; : </span><br /><br />';
+                               var routeListTable = '<br /><br /><span class="description">Output of &#34;ip route list table 1-250&#34; : </span><br /><br />';
+                               var firewallOut = '<br /><br /><span class="description">Firewall default output policy (must be ACCEPT) : </span><br /><br />';
+                               var iptables = '<br /><br /><span class="description">Output of &#34;iptables -L -t mangle -v -n&#34; : </span><br /><br />';
+                               tshoot.innerHTML = String.format(
+                                       '<pre>%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s</pre>',
+                                       versions, mArray.versions[0], mwanConfig, mArray.mwanconfig[0], netConfig, mArray.netconfig[0],
+                                       wifiConfig, mArray.wificonfig[0], ifconfig, mArray.ifconfig[0], ipRoute, mArray.routeshow[0],
+                                       ipRuleShow, mArray.iprule[0], routeListTable, mArray.routelist[0], firewallOut, mArray.firewallout[0],
+                                       iptables, mArray.iptables[0]
+                               );
+                       }
+                       else
+                       {
+                               tshoot.innerHTML = '<strong>Error collecting troubleshooting information</strong>';
+                       }
+               }
+       );
+//]]></script>
+
+<div id="troubleshoot">
+       <fieldset class="cbi-section">
+               <legend><%:Troubleshooting Data%></legend>
+               <div id="troubleshoot_text"><img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> Collecting data...</div>
+       </fieldset>
+</div>
+
+<style type="text/css">
+  .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */
+       max-width: none;
+       margin-left: 30px;
+       padding-right: 30px;
+       width: auto;
+  }
+  #troubleshoot {
+       background-color: #FFFFFF;
+       border: 1px dotted #555555;
+       padding: 20px;
+  }
+  #troubleshoot_text {
+       padding: 20px;
+       text-align: left;
+  }
+  .description {
+       background-color: rgb(78, 186, 241);
+  }
+</style>
+
+<%+footer%>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/advanced_wirelessconfig.htm b/applications/luci-app-mwan3/luasrc/view/mwan/advanced_wirelessconfig.htm
new file mode 100644 (file)
index 0000000..5077674
--- /dev/null
@@ -0,0 +1,24 @@
+<ul class="cbi-tabmenu">
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/hotplugscript")%>"><%:Hotplug Script%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/mwanconfig")%>"><%:MWAN Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/networkconfig")%>"><%:Network Config%></a></li>
+       <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/wirelessconfig")%>"><%:Wireless Config%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/diagnostics")%>"><%:Diagnostics%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/advanced/troubleshooting")%>"><%:Troubleshooting%></a></li>
+</ul>
+
+<style type="text/css">
+  .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */
+       max-width: none;
+       margin: 0px 0px 0px 30px;
+       padding-right: 30px;
+       width: auto;
+  }
+  .cbi-section-node {
+       margin-top: 20px;
+  }
+  .cbi-section {
+       border: 1px dotted #555555;
+       padding: 20px;
+  }
+</style>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/config_css.htm b/applications/luci-app-mwan3/luasrc/view/mwan/config_css.htm
new file mode 100644 (file)
index 0000000..99da487
--- /dev/null
@@ -0,0 +1,34 @@
+<style type="text/css">
+  .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */
+       max-width: none;
+       margin-left: 30px;
+       padding-right: 30px;
+       width: auto;
+  }
+  table td {   /* cells showing the configuration values */
+       padding: 0px;
+       text-align: center;
+       vertical-align: middle;
+  }
+  table th {   /* column for configuration section name */
+       padding: 0px;
+       text-align: center;
+       vertical-align: middle;
+  }
+  table tbody th {     /* column for configuration section name */
+       padding: 0px;
+       vertical-align: middle;
+  }
+  .cbi-section-node table div {        /* rows */
+       padding-top: 5px;
+  }
+  table.cbi-section-table td.cbi-section-table-cell {  /* sort buttons column */
+       text-align: center;
+  }
+  .cbi-section h3 {
+       color: rgb(85, 85, 85);
+       font-family: Trebuchet MS,Verdana,sans-serif;
+       font-style: italic;
+       font-weight: normal;
+  }
+</style>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/openwrt_overview_status.htm b/applications/luci-app-mwan3/luasrc/view/mwan/openwrt_overview_status.htm
new file mode 100644 (file)
index 0000000..9329b92
--- /dev/null
@@ -0,0 +1,83 @@
+<script type="text/javascript">//<![CDATA[
+       XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "mwan", "overview", "interface_status")%>', null,
+               function(x, mArray)
+               {
+                       var status = document.getElementById('mwan_status_text');
+                       if (mArray.wans)
+                       {
+                               var temp = '';
+                               for ( var i = 0; i < mArray.wans.length; i++ )
+                               {
+                                       var stat = '';
+                                       var cssc = '';
+                                       switch (mArray.wans[i].status)
+                                       {
+                                               case 'online':
+                                                       stat = 'Online (tracking active)';
+                                                       cssc = 'wanon';
+                                                       break;
+                                               case 'notMonitored':
+                                                       stat = 'Online (tracking off)';
+                                                       cssc = 'wanon';
+                                                       break;
+                                               case 'offline':
+                                                       stat = 'Offline';
+                                                       cssc = 'wanoff';
+                                                       break;
+                                               case 'notEnabled':
+                                                       stat = 'Disabled';
+                                                       cssc = 'wanoff';
+                                                       break;
+                                       }
+                                       temp += String.format(
+                                               '<span class="%s"><strong>%s (<a href="%q">%s</a>)</strong><br />%s</span>',
+                                               cssc, mArray.wans[i].name, mArray.wans[i].link, mArray.wans[i].ifname, stat
+                                       );
+                               }
+                               status.innerHTML = temp;
+                       }
+                       else
+                       {
+                               status.innerHTML = '<strong>No MWAN interfaces found</strong>';
+                       }
+               }
+       );
+//]]></script>
+
+<fieldset id="interface_field" class="cbi-section">
+       <legend><%:MWAN Interface Live Status%></legend>
+       <div id="mwan_status_text"><img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> Collecting data...</div>
+</fieldset>
+
+<style type="text/css">
+  .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */
+       max-width: 1044px;
+  }
+  #interface_field {
+       padding: 12px 20px 20px 20px;
+  }
+  #mwan_status_text {
+       display: table;
+       font-size: 14px;
+       margin: auto;
+       max-width: 1044px;
+       min-width: 246px;
+       width: 100%;
+  }
+  .wanon {
+       background-color: rgb(144, 240, 144);
+  }
+  .wanoff {
+       background-color: rgb(240, 144, 144);
+  }
+  .wanon, .wanoff {
+       border-radius: 60px;
+       box-shadow: 0px 2px 5px -3px;
+       float: left;
+       margin: 8px 3px 0px 3px;
+       min-height: 30px;
+       min-width: 235px;
+       padding: 5px 10px 8px 10px;
+       text-align: center;
+  }
+</style>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/overview_detailed.htm b/applications/luci-app-mwan3/luasrc/view/mwan/overview_detailed.htm
new file mode 100644 (file)
index 0000000..b80b9f3
--- /dev/null
@@ -0,0 +1,51 @@
+<%+header%>
+
+<ul class="cbi-tabmenu">
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/overview")%>"><%:Interface Status%></a></li>
+       <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/overview/overview_detailed")%>"><%:Detailed Status%></a></li>
+</ul>
+
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
+<script type="text/javascript">//<![CDATA[
+       XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "mwan", "overview", "detailed_status")%>', null,
+               function(x, mArray)
+               {
+                       var status = document.getElementById('mwan_detail_text');
+                       if (mArray.mwandetail)
+                       {
+                               status.innerHTML = String.format('<pre>%s</pre>', mArray.mwandetail[0]);
+                       }
+                       else
+                       {
+                               status.innerHTML = '<strong>No detailed status information available</strong>';
+                       }
+               }
+       );
+//]]></script>
+
+<div id="mwan_detail_status">
+       <fieldset class="cbi-section">
+               <legend><%:MWAN Detailed Status%></legend>
+               <div id="mwan_detail_text"><img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> Collecting data...</div>
+       </fieldset>
+</div>
+
+<style type="text/css">
+  .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */
+       max-width: none;
+       margin-left: 30px;
+       padding-right: 30px;
+       width: auto;
+  }
+  #mwan_detail_status {
+       border: 1px dotted #555555;
+       background-color: #FFFFFF;
+       padding: 20px;
+  }
+  #mwan_detail_text {
+       padding: 20px;
+       text-align: left;
+  }
+</style>
+
+<%+footer%>
diff --git a/applications/luci-app-mwan3/luasrc/view/mwan/overview_interface.htm b/applications/luci-app-mwan3/luasrc/view/mwan/overview_interface.htm
new file mode 100644 (file)
index 0000000..472c7ce
--- /dev/null
@@ -0,0 +1,122 @@
+<%+header%>
+
+<ul class="cbi-tabmenu">
+       <li class="cbi-tab"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/overview")%>"><%:Interface Status%></a></li>
+       <li class="cbi-tab-disabled"><a href="<%=luci.dispatcher.build_url("admin/network/mwan/overview/overview_detailed")%>"><%:Detailed Status%></a></li>
+</ul>
+
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
+<script type="text/javascript">//<![CDATA[
+       XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "mwan", "overview", "interface_status")%>', null,
+               function(x, mArray)
+               {
+                       var statusDiv = document.getElementById('mwan_status_text');
+                       if (mArray.wans)
+                       {
+                               var interfaceStatus = '';
+                               for ( var i = 0; i < mArray.wans.length; i++ )
+                               {
+                                       var status = '';
+                                       var css = '';
+                                       switch (mArray.wans[i].status)
+                                       {
+                                               case 'online':
+                                                       status = 'Online (tracking active)';
+                                                       css = 'wanon';
+                                                       break;
+                                               case 'notMonitored':
+                                                       status = 'Online (tracking off)';
+                                                       css = 'wanon';
+                                                       break;
+                                               case 'offline':
+                                                       status = 'Offline';
+                                                       css = 'wanoff';
+                                                       break;
+                                               case 'notEnabled':
+                                                       status = 'Disabled';
+                                                       css = 'wanoff';
+                                                       break;
+                                       }
+                                       interfaceStatus += String.format(
+                                               '<span class="%s"><strong>%s (<a href="%q">%s</a>)</strong><br />%s</span>',
+                                               css, mArray.wans[i].name, mArray.wans[i].link, mArray.wans[i].ifname, status
+                                       );
+                               }
+                               statusDiv.innerHTML = interfaceStatus;
+                       }
+                       else
+                       {
+                               statusDiv.innerHTML = '<strong>No MWAN interfaces found</strong>';
+                       }
+
+                       var logs = document.getElementById('mwan_statuslog_text');
+                       if (mArray.mwanlog)
+                       {
+                               var mwanLog = 'Last 50 MWAN systemlog entries. Newest entries sorted at the top :';
+                               logs.innerHTML = String.format('<pre>%s<br /><br />%s</pre>', mwanLog, mArray.mwanlog[0]);
+                       }
+                       else
+                       {
+                               logs.innerHTML = '<strong>No MWAN systemlog history found</strong>';
+                       }
+               }
+       );
+//]]></script>
+
+<div id="mwan_interface_status">
+       <fieldset id="interface_field" class="cbi-section">
+               <legend><%:MWAN Interface Live Status%></legend>
+               <div id="mwan_status_text"><img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> Collecting data...</div>
+       </fieldset>
+       <fieldset class="cbi-section">
+               <legend><%:MWAN Interface Systemlog%></legend>
+               <div id="mwan_statuslog_text"><img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> Collecting data...</div>
+       </fieldset>
+</div>
+
+<style type="text/css">
+  .container { /* container for entire page. fixes bootstrap theme's ridiculously small page width */
+       max-width: none;
+       margin-left: 30px;
+       padding-right: 30px;
+       width: auto;
+  }
+  #mwan_interface_status {
+       background-color: #FFFFFF;
+       border: 1px dotted #555555;
+       padding: 20px;
+  }
+  #interface_field {
+       padding: 12px 20px 20px 20px;
+  }
+  #mwan_status_text {
+       display: table;
+       font-size: 14px;
+       margin: auto;
+       max-width: 1044px;
+       min-width: 246px;
+       width: 100%;
+  }
+  .wanon {
+       background-color: rgb(144, 240, 144);
+  }
+  .wanoff {
+       background-color: rgb(240, 144, 144);
+  }
+  .wanon, .wanoff {
+       border-radius: 60px;
+       box-shadow: 0px 2px 5px -3px;
+       float: left;
+       margin: 8px 3px 0px 3px;
+       min-height: 30px;
+       min-width: 235px;
+       padding: 5px 10px 8px 10px;
+       text-align: center;
+  }
+  #mwan_statuslog_text {
+       padding: 20px;
+       text-align: left;
+  }
+</style>
+
+<%+footer%>
diff --git a/applications/luci-app-mwan3/root/etc/hotplug.d/iface/16-mwancustombak b/applications/luci-app-mwan3/root/etc/hotplug.d/iface/16-mwancustombak
new file mode 100755 (executable)
index 0000000..6e2875e
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+# to enable this script uncomment the case loop at the bottom
+# to report mwan status on interface hotplug ifup/ifdown events modify the lines in the send_alert function
+
+send_alert()
+{
+       # variable "$1" stores the MWAN status information
+       # insert your code here to send the contents of "$1"
+       echo "$1"
+}
+
+gather_event_info()
+{
+       # create event information message
+       local EVENT_INFO="Interface [ "$INTERFACE" ($DEVICE) ] on router [ "$(uci -p /var/state get system.@system[0].hostname)" ] has triggered a hotplug [ "$ACTION" ] event on "$(date +"%a %b %d %Y %T %Z")""
+
+       # get current interface, policy and rule status
+       local CURRENT_STATUS="$(/usr/sbin/mwan3 status)"
+
+       # get last 50 MWAN systemlog messages
+       local MWAN_LOG="$(echo -e "Last 50 MWAN systemlog entries. Newest entries sorted at the top:\n$(logread | grep mwan3 | tail -n 50 | sed 'x;1!H;$!d;x')")"
+
+       # pass event info to send_alert function
+       send_alert "$(echo -e "$EVENT_INFO\n\n$CURRENT_STATUS\n\n$MWAN_LOG")"
+}
+
+#case "$ACTION" in
+#      ifup)
+#              gather_event_info
+#      ;;
+#
+#      ifdown)
+#              gather_event_info
+#      ;;
+#esac
+
+exit 0
diff --git a/applications/luci-app-mwan3/root/etc/uci-defaults/60_luci-mwan3 b/applications/luci-app-mwan3/root/etc/uci-defaults/60_luci-mwan3
new file mode 100755 (executable)
index 0000000..ff9a229
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# replace existing mwan ucitrack entry
+uci -q batch <<-EOF >/dev/null
+       del ucitrack.@mwan3[-1]
+       add ucitrack mwan3
+       set ucitrack.@mwan3[-1].exec="/usr/sbin/mwan3 restart"
+       commit ucitrack
+EOF
+
+# remove LuCI cache
+rm -rf /tmp/luci-indexcache /tmp/luci-modulecache
+
+exit 0
index 1461c1d..499176c 100644 (file)
@@ -1,17 +1,17 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2014-06-21 19:36+0200\n"
-"Last-Translator: Éder <eder.grigorio@openmailbox.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2017-02-20 18:01-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\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.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "Active MID announcements"
 msgstr ""
@@ -59,7 +59,6 @@ msgstr ""
 "Somente pode ser um endereço IPv4 ou IPv6 válidos ou um endereço 'padrão'"
 
 # 20140621: edersg: tradução
-#, fuzzy
 msgid "Can only be a valid IPv6 address or 'default'"
 msgstr ""
 "Somente pode ser um endereço IPv4 ou IPv6 válidos ou um endereço 'padrão'"
@@ -173,7 +172,6 @@ msgstr ""
 "Validade do <abbr title=\"Host and network association, Associação de "
 "equipamentos e redes\">HNA</abbr>"
 
-#, fuzzy
 msgid "HNA6 Announcements"
 msgstr ""
 "Anúncios do <abbr title=\"Host and network association, Associação de "
@@ -215,7 +213,6 @@ msgstr ""
 "Equipamentos em uma rede roteada por OLSR podem anunciar conectividade para "
 "redes externas usando mensagens HNA."
 
-#, fuzzy
 msgid ""
 "Hosts in a OLSR routed network can announce connecitivity to external "
 "networks using HNA6 messages."
@@ -496,7 +493,6 @@ msgstr ""
 "> reduzir LQ para todos os nós nesta interface em 20%: padrão 0.8"
 
 # 20140621: edersg: tradução
-#, fuzzy
 msgid ""
 "Multiply routes with the factor given here. Allowed values are between 0.01 "
 "and 1.0. It is only used when LQ-Level is greater than 0. Examples:<br /"
@@ -551,7 +547,6 @@ msgstr ""
 "OLSR - Anúncios <abbr title=\"Host and network association, Associação de "
 "equipamentos e redes\">HNA</abbr>"
 
-#, fuzzy
 msgid "OLSR - HNA6-Announcements"
 msgstr ""
 "OLSR - Anúncios <abbr title=\"Host and network association, Associação de "
@@ -654,7 +649,6 @@ msgstr ""
 "durante o funcionamento do olsrd. O padrão é 0.0.0.0, que faz com que o "
 "endereço da primeira interface seja usado."
 
-#, fuzzy
 msgid ""
 "Sets the main IP (originator ip) of the router. This IP will NEVER change "
 "during the uptime of olsrd. Default is ::, which triggers usage of the IP of "
@@ -857,7 +851,6 @@ msgstr ""
 "and network association, Associação de equipamentos e redes\">HNA</abbr> "
 "local de 0.0.0.0/0, ::ffff:0:0/96 ou 2000::/3. O padrão é \"ambos\"."
 
-#, fuzzy
 msgid ""
 "Which kind of uplink is exported to the other mesh nodes. An uplink is "
 "detected by looking for a local HNA6 ::ffff:0:0/96 or 2000::/3. Default "
index 1bbee83..d0771e5 100644 (file)
@@ -7,192 +7,722 @@ require("luci.model.uci")
 
 local knownParams = {
        --
-       --      Widget                  Name                                                    Default(s)                                                                                                              Description     Option(s)
-       --
+       --Widget
+       --      Name
+       --      Default(s)
+       --      Description
+       --      Option(s)
 
        { "Service", {
-               -- initialisation and daemon options
-               { ListValue,    "verb",                                                 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },                                               translate("Set output verbosity") },
-               { Flag,                 "mlock",                                                0,                                                                                                                              translate("Disable Paging") },
-               { Flag,                 "disable_occ",                                  0,                                                                                                                              translate("Disable options consistency check") },
-       --      { Value,                "user",                                                 "root",                                                                                                                 translate("Set UID to user") },
-       --      { Value,                "group",                                                "root",                                                                                                                 translate("Set GID to group") },
-               { Value,                "cd",                                                   "/etc/openvpn",                                                                                                 translate("Change to directory before initialization") },
-               { Value,                "chroot",                                               "/var/run",                                                                                                             translate("Chroot to directory after initialization") },
-       --      { Value,                "daemon",                                               "Instance-Name",                                                                                                translate("Daemonize after initialization") },
-       --      { Value,                "syslog",                                               "Instance-Name",                                                                                                translate("Output to syslog and do not daemonize") },
-               { Flag,                 "passtos",                                              0,                                                                                                                              translate("TOS passthrough (applies to IPv4 only)") },
-       --      { Value,                "inetd",                                                "nowait Instance-Name",                                                                                 translate("Run as an inetd or xinetd server") },
-               { Value,                "log",                                                  "/var/log/openvpn.log",                                                                                 translate("Write log to file") },
-               { Value,                "log_append",                                   "/var/log/openvpn.log",                                                                                 translate("Append log to file") },
-               { Flag,                 "suppress_timestamps",                  0,                                                                                                                              translate("Don't log timestamps") },
-       --      { Value,                "writepid",                                             "/var/run/openvpn.pid",                                                                                 translate("Write process ID to file") },
-               { Value,                "nice",                                                 0,                                                                                                                              translate("Change process priority") },
-               { Flag,                 "fast_io",                                              0,                                                                                                                              translate("Optimize TUN/TAP/UDP writes") },
-               { Value,                "echo",                                                 "some params echoed to log",                                                                    translate("Echo parameters to log") },
-               { ListValue,    "remap_usr1",                                   { "SIGHUP", "SIGTERM" },                                                                                translate("Remap SIGUSR1 signals") },
-               { Value,                "status",                                               "/var/run/openvpn.status 5",                                                                    translate("Write status to file every n seconds") },
-               { Value,                "status_version",                               { 1, 2 },                                                                                                               translate("Status file format version") },      -- status
-               { Value,                "mute",                                                 5,                                                                                                                              translate("Limit repeated log messages") },
-
-               { Value,                "up",                                                   "/usr/bin/ovpn-up",                                                                                             translate("Shell cmd to execute after tun device open") },
-               { Value,                "up_delay",                                             5,                                                                                                                              translate("Delay tun/tap open and up script execution") },
-               { Value,                "down",                                                 "/usr/bin/ovpn-down",                                                                                   translate("Shell cmd to run after tun device close") },
-               { Flag,                 "down_pre",                                             0,                                                                                                                              translate("Call down cmd/script before TUN/TAP close") },
-               { Flag,                 "up_restart",                                   0,                                                                                                                              translate("Run up/down scripts for all restarts") },
-               { Value,                "route_up",                                             "/usr/bin/ovpn-routeup",                                                                                translate("Execute shell cmd after routes are added") },
-               { Value,                "ipchange",                                             "/usr/bin/ovpn-ipchange",                                                                               translate("Execute shell command on remote ip change"), { mode="p2p" } },
-               { DynamicList,  "setenv",                                               { "VAR1 value1", "VAR2 value2" },                                                               translate("Pass environment variables to script") },
-               { Value,                "tls_verify",                                   "/usr/bin/ovpn-tlsverify",                                                                              translate("Shell command to verify X509 name") },
-               { Value,                "client_connect",                               "/usr/bin/ovpn-clientconnect",                                                                  translate("Run script cmd on client connection") },
-               { Flag,                 "client_disconnect",                    0,                                                                                                                              translate("Run script cmd on client disconnection") },
-               { Value,                "learn_address",                                "/usr/bin/ovpn-learnaddress",                                                                   translate("Executed in server mode whenever an IPv4 address/route or MAC address is added to OpenVPN's internal routing table") },
-               { Value,                "auth_user_pass_verify",                "/usr/bin/ovpn-userpass via-env",                                                               translate("Executed in server mode on new client connections, when the client is still untrusted") },
-               { ListValue,    "script_security",                              { 0, 1, 2, 3 },                                                                                                 translate("Policy level over usage of external programs and scripts") },
+       -- initialisation and daemon options
+               { ListValue,
+                       "verb",
+                       { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 },
+                       translate("Set output verbosity") },
+               { Flag,
+                       "mlock",
+                       0,
+                       translate("Disable Paging") },
+               { Flag,
+                       "disable_occ",
+                       0,
+                       translate("Disable options consistency check") },
+       --      { Value,
+       --              "user",
+       --              "root",
+       --              translate("Set UID to user") },
+       --      { Value,
+       --              "group",
+       --              "root",
+       --              translate("Set GID to group") },
+               { Value,
+                       "cd",
+                       "/etc/openvpn",
+                       translate("Change to directory before initialization") },
+               { Value,
+                       "chroot",
+                       "/var/run",
+                       translate("Chroot to directory after initialization") },
+       --      { Value,
+       --              "daemon",
+       --              "Instance-Name",
+       --              translate("Daemonize after initialization") },
+       --      { Value,
+       --              "syslog",
+       --              "Instance-Name",
+       --              translate("Output to syslog and do not daemonize") },
+               { Flag,
+                       "passtos",
+                       0,
+                       translate("TOS passthrough (applies to IPv4 only)") },
+       --      { Value,
+       --              "inetd",
+       --              "nowait Instance-Name",
+       --              translate("Run as an inetd or xinetd server") },
+               { Value,
+                       "log",
+                       "/var/log/openvpn.log",
+                       translate("Write log to file") },
+               { Value,
+                       "log_append",
+                       "/var/log/openvpn.log",
+                       translate("Append log to file") },
+               { Flag,
+                       "suppress_timestamps",
+                       0,
+                       translate("Don't log timestamps") },
+       --      { Value,
+       --              "writepid",
+       --              "/var/run/openvpn.pid",
+       --              translate("Write process ID to file") },
+               { Value,
+                       "nice",
+                       0,
+                       translate("Change process priority") },
+               { Flag,
+                       "fast_io",
+                       0,
+                       translate("Optimize TUN/TAP/UDP writes") },
+               { Value,
+                       "echo",
+                       "some params echoed to log",
+                       translate("Echo parameters to log") },
+               { ListValue,
+                       "remap_usr1",
+                       { "SIGHUP", "SIGTERM" },
+                       translate("Remap SIGUSR1 signals") },
+               { Value,
+                       "status",
+                       "/var/run/openvpn.status 5",
+                       translate("Write status to file every n seconds") },
+               { Value,
+                       "status_version",
+                       { 1, 2 },
+                       translate("Status file format version") },      -- status
+               { Value,
+                       "mute",
+                       5,
+                       translate("Limit repeated log messages") },
+               { Value,
+                       "up",
+                       "/usr/bin/ovpn-up",
+                       translate("Shell cmd to execute after tun device open") },
+               { Value,
+                       "up_delay",
+                       5,
+                       translate("Delay tun/tap open and up script execution") },
+               { Value,
+                       "down",
+                       "/usr/bin/ovpn-down",
+                       translate("Shell cmd to run after tun device close") },
+               { Flag,
+                       "down_pre",
+                       0,
+                       translate("Call down cmd/script before TUN/TAP close") },
+               { Flag,
+                       "up_restart",
+                       0,
+                       translate("Run up/down scripts for all restarts") },
+               { Value,
+                       "route_up",
+                       "/usr/bin/ovpn-routeup",
+                       translate("Execute shell cmd after routes are added") },
+               { Value,
+                       "ipchange",
+                       "/usr/bin/ovpn-ipchange",
+                       translate("Execute shell command on remote ip change"),
+                       { mode="p2p" } },
+               { DynamicList,
+                       "setenv",
+                       { "VAR1 value1", "VAR2 value2" },
+                       translate("Pass environment variables to script") },
+               { Value,
+                       "tls_verify",
+                       "/usr/bin/ovpn-tlsverify",
+                       translate("Shell command to verify X509 name") },
+               { Value,
+                       "client_connect",
+                       "/usr/bin/ovpn-clientconnect",
+                       translate("Run script cmd on client connection") },
+               { Flag,
+                       "client_disconnect",
+                       0,
+                       translate("Run script cmd on client disconnection") },
+               { Value,
+                       "learn_address",
+                       "/usr/bin/ovpn-learnaddress",
+                       translate("Executed in server mode whenever an IPv4 address/route or MAC address is added to OpenVPN's internal routing table") },
+               { Value,
+                       "auth_user_pass_verify",
+                       "/usr/bin/ovpn-userpass via-env",
+                       translate("Executed in server mode on new client connections, when the client is still untrusted") },
+               { ListValue,
+                       "script_security",
+                       { 0, 1, 2, 3 },
+                       translate("Policy level over usage of external programs and scripts") },
        } },
 
        { "Networking", {
-               -- socket config
-               { ListValue,    "mode",                                                 { "p2p", "server" },                                                                                    translate("Major mode") },
-               { Value,                "local",                                                "0.0.0.0",                                                                                                              translate("Local host name or ip address") },
-               { Value,                "port",                                                 1194,                                                                                                                   translate("TCP/UDP port # for both local and remote") },
-               { Value,                "lport",                                                1194,                                                                                                                   translate("TCP/UDP port # for local (default=1194)") },
-               { Value,                "rport",                                                1194,                                                                                                                   translate("TCP/UDP port # for remote (default=1194)") },
-               { Flag,                 "float",                                                0,                                                                                                                              translate("Allow remote to change its IP or port") },
-               { Flag,                 "nobind",                                               0,                                                                                                                              translate("Do not bind to local address and port") },
-
-               { Value,                "dev",                                                  "tun0",                                                                                                                 translate("tun/tap device") },
-               { ListValue,    "dev_type",                                             { "tun", "tap" },                                                                                               translate("Type of used device") },
-               { Value,                "dev_node",                                             "/dev/net/tun",                                                                                                 translate("Use tun/tap device node") },
-               { Flag,                 "tun_ipv6",                                             0,                                                                                                                              translate("Make tun device IPv6 capable") },
-
-               { Value,                "ifconfig",                                             "10.200.200.3 10.200.200.1",                                                                    translate("Set tun/tap adapter parameters") },
-               { Flag,                 "ifconfig_noexec",                              0,                                                                                                                              translate("Don't actually execute ifconfig") },
-               { Flag,                 "ifconfig_nowarn",                              0,                                                                                                                              translate("Don't warn on ifconfig inconsistencies") },
-
-               { DynamicList,  "route",                                                "10.123.0.0 255.255.0.0",                                                                               translate("Add route after establishing connection") },
-               { Value,                "route_gateway",                                "10.234.1.1",                                                                                                   translate("Specify a default gateway for routes") },
-               { Value,                "route_delay",                                  0,                                                                                                                              translate("Delay n seconds after connection") },
-               { Flag,                 "route_noexec",                                 0,                                                                                                                              translate("Don't add routes automatically") },
-               { Flag,                 "route_nopull",                                 0,                                                                                                                              translate("Don't pull routes automatically") },
-
-               { ListValue,    "mtu_disc",                                             { "yes", "maybe", "no" },                                                                               translate("Enable Path MTU discovery") },
-               { Flag,                 "mtu_test",                                             0,                                                                                                                              translate("Empirically measure MTU") },
-               { ListValue,                    "comp_lzo",                             { "yes", "no", "adaptive" },                                                                                                                            translate("Use fast LZO compression") },
-               { Flag,                 "comp_noadapt",                                 0,                                                                                                                              translate("Don't use adaptive lzo compression"),        { comp_lzo=1 } },
-               { Value,                "link_mtu",                                             1500,                                                                                                                   translate("Set TCP/UDP MTU") },
-               { Value,                "tun_mtu",                                              1500,                                                                                                                   translate("Set tun/tap device MTU") },
-               { Value,                "tun_mtu_extra",                                1500,                                                                                                                   translate("Set tun/tap device overhead") },
-               { Value,                "fragment",                                             1500,                                                                                                                   translate("Enable internal datagram fragmentation"),    { proto="udp" } },
-               { Value,                "mssfix",                                               1500,                                                                                                                   translate("Set upper bound on TCP MSS"),        { proto="udp" } },
-               { Value,                "sndbuf",                                               65536,                                                                                                                  translate("Set the TCP/UDP send buffer size") },
-               { Value,                "rcvbuf",                                               65536,                                                                                                                  translate("Set the TCP/UDP receive buffer size") },
-               { Value,                "txqueuelen",                                   100,                                                                                                                    translate("Set tun/tap TX queue length") },
-               { Value,                "shaper",                                               10240,                                                                                                                  translate("Shaping for peer bandwidth") },
-
-               { Value,                "inactive",                                             240,                                                                                                                    translate("tun/tap inactivity timeout") },
-               { Value,                "keepalive",                                    "10 60",                                                                                                                translate("Helper directive to simplify the expression of --ping and --ping-restart in server mode configurations") },
-               { Value,                "ping",                                                 30,                                                                                                                             translate("Ping remote every n seconds over TCP/UDP port") },
-               { Value,                "ping_exit",                                    120,                                                                                                                    translate("Remote ping timeout") },
-               { Value,                "ping_restart",                                 60,                                                                                                                             translate("Restart after remote ping timeout") },
-               { Flag,                 "ping_timer_rem",                               0,                                                                                                                              translate("Only process ping timeouts if routes exist") },
-
-               { Flag,                 "persist_tun",                                  0,                                                                                                                              translate("Keep tun/tap device open on restart") },
-               { Flag,                 "persist_key",                                  0,                                                                                                                              translate("Don't re-read key on restart") },
-               { Flag,                 "persist_local_ip",                             0,                                                                                                                              translate("Keep local IP address on restart") },
-               { Flag,                 "persist_remote_ip",                    0,                                                                                                                              translate("Keep remote IP address on restart") },
-
-               -- management channel
-               { Value,                "management",                                   "127.0.0.1 31194 /etc/openvpn/mngmt-pwds",                                              translate("Enable management interface on <em>IP</em> <em>port</em>") },
-               { Flag,                 "management_query_passwords",   0,                                                                                                                              translate("Query management channel for private key") },        -- management
-               { Flag,                 "management_hold",                              0,                                                                                                                              translate("Start OpenVPN in a hibernating state") },    -- management
-               { Value,                "management_log_cache",                 100,                                                                                                                    translate("Number of lines for log file history") },    -- management
-               { ListValue,    "topology",                                             { "net30", "p2p", "subnet" },                                                                   translate("'net30', 'p2p', or 'subnet'"),       {dev_type="tun" } },
+       -- socket config
+               { ListValue,
+                       "mode",
+                       { "p2p", "server" },
+                       translate("Major mode") },
+               { Value,
+                       "local",
+                       "0.0.0.0",
+                       translate("Local host name or ip address") },
+               { Value,
+                       "port",
+                       1194,
+                       translate("TCP/UDP port # for both local and remote") },
+               { Value,
+                       "lport",
+                       1194,
+                       translate("TCP/UDP port # for local (default=1194)") },
+               { Value,
+                       "rport",
+                       1194,
+                       translate("TCP/UDP port # for remote (default=1194)") },
+               { Flag,
+                       "float",
+                       0,
+                       translate("Allow remote to change its IP or port") },
+               { Flag,
+                       "nobind",
+                       0,
+                       translate("Do not bind to local address and port") },
+               { Value,
+                       "dev",
+                       "tun0",
+                       translate("tun/tap device") },
+               { ListValue,
+                       "dev_type",
+                       { "tun", "tap" },
+                       translate("Type of used device") },
+               { Value,
+                       "dev_node",
+                       "/dev/net/tun",
+                       translate("Use tun/tap device node") },
+               { Flag,
+                       "tun_ipv6",
+                       0,
+                       translate("Make tun device IPv6 capable") },
+               { Value,
+                       "ifconfig",
+                       "10.200.200.3 10.200.200.1",
+                       translate("Set tun/tap adapter parameters") },
+               { Flag,
+                       "ifconfig_noexec",
+                       0,
+                       translate("Don't actually execute ifconfig") },
+               { Flag,
+                       "ifconfig_nowarn",
+                       0,
+                       translate("Don't warn on ifconfig inconsistencies") },
+               { DynamicList,
+                       "route",
+                       "10.123.0.0 255.255.0.0",
+                       translate("Add route after establishing connection") },
+               { Value,
+                       "route_gateway",
+                       "10.234.1.1",
+                       translate("Specify a default gateway for routes") },
+               { Value,
+                       "route_delay",
+                       0,
+                       translate("Delay n seconds after connection") },
+               { Flag,
+                       "route_noexec",
+                       0,
+                       translate("Don't add routes automatically") },
+               { Flag,
+                       "route_nopull",
+                       0,
+                       translate("Don't pull routes automatically") },
+               { ListValue,
+                       "mtu_disc",
+                       { "yes", "maybe", "no" },
+                       translate("Enable Path MTU discovery") },
+               { Flag,
+                       "mtu_test",
+                       0,
+                       translate("Empirically measure MTU") },
+               { ListValue,
+                       "comp_lzo",
+                       { "yes", "no", "adaptive" },
+                       translate("Use fast LZO compression") },
+               { Flag,
+                       "comp_noadapt",
+                       0,
+                       translate("Don't use adaptive lzo compression"),
+                       { comp_lzo=1 } },
+               { Value,
+                       "link_mtu",
+                       1500,
+                       translate("Set TCP/UDP MTU") },
+               { Value,
+                       "tun_mtu",
+                       1500,
+                       translate("Set tun/tap device MTU") },
+               { Value,
+                       "tun_mtu_extra",
+                       1500,
+                       translate("Set tun/tap device overhead") },
+               { Value,
+                       "fragment",
+                       1500,
+                       translate("Enable internal datagram fragmentation"),
+                       { proto="udp" } },
+               { Value,
+                       "mssfix",
+                       1500,
+                       translate("Set upper bound on TCP MSS"),
+                       { proto="udp" } },
+               { Value,
+                       "sndbuf",
+                       65536,
+                       translate("Set the TCP/UDP send buffer size") },
+               { Value,
+                       "rcvbuf",
+                       65536,
+                       translate("Set the TCP/UDP receive buffer size") },
+               { Value,
+                       "txqueuelen",
+                       100,
+                       translate("Set tun/tap TX queue length") },
+               { Value,
+                       "shaper",
+                       10240,
+                       translate("Shaping for peer bandwidth") },
+               { Value,
+                       "inactive",
+                       240,
+                       translate("tun/tap inactivity timeout") },
+               { Value,
+                       "keepalive",
+                       "10 60",
+                       translate("Helper directive to simplify the expression of --ping and --ping-restart in server mode configurations") },
+               { Value,
+                       "ping",
+                       30,
+                       translate("Ping remote every n seconds over TCP/UDP port") },
+               { Value,
+                       "ping_exit",
+                       120,
+                       translate("Remote ping timeout") },
+               { Value,
+                       "ping_restart",
+                       60,
+                       translate("Restart after remote ping timeout") },
+               { Flag,
+                       "ping_timer_rem",
+                       0,
+                       translate("Only process ping timeouts if routes exist") },
+               { Flag,
+                       "persist_tun",
+                       0,
+                       translate("Keep tun/tap device open on restart") },
+               { Flag,
+                       "persist_key",
+                       0,
+                       translate("Don't re-read key on restart") },
+               { Flag,
+                       "persist_local_ip",
+                       0,
+                       translate("Keep local IP address on restart") },
+               { Flag,
+                       "persist_remote_ip",
+                       0,
+                       translate("Keep remote IP address on restart") },
+       -- management channel
+               { Value,
+                       "management",
+                       "127.0.0.1 31194 /etc/openvpn/mngmt-pwds",
+                       translate("Enable management interface on <em>IP</em> <em>port</em>") },
+       -- management
+               { Flag,
+                       "management_query_passwords",
+                       0,
+                       translate("Query management channel for private key") },
+       -- management
+               { Flag,
+                       "management_hold",
+                       0,
+                       translate("Start OpenVPN in a hibernating state") },
+       -- management
+               { Value,
+                       "management_log_cache",
+                       100,
+                       translate("Number of lines for log file history") },
+               { ListValue,
+                       "topology",
+                       { "net30", "p2p", "subnet" },
+                       translate("'net30', 'p2p', or 'subnet'"),
+                       {dev_type="tun" } },
        } },
 
        { "VPN", {
-               { Value,                "server",                                               "10.200.200.0 255.255.255.0",                                                                   translate("Configure server mode"),     { server_mode="1" } },
-               { Value,                "server_bridge",                                "10.200.200.1 255.255.255.0 10.200.200.200 10.200.200.250",             translate("Configure server bridge"),   { server_mode="1" } },
-               { DynamicList,  "push",                                                 { "redirect-gateway", "comp-lzo" },                                                             translate("Push options to peer"),      { server_mode="1" } },
-               { Flag,                 "push_reset",                                   0,                                                                                                                              translate("Don't inherit global push options"), { server_mode="1" } },
-               { Flag,                 "disable",                                              0,                                                                                                                              translate("Client is disabled"),        { server_mode="1" } },
-               { Value,                "ifconfig_pool",                                "10.200.200.100 10.200.200.150 255.255.255.0",                                  translate("Set aside a pool of subnets"),       { server_mode="1" } },
-               { Value,                "ifconfig_pool_persist",                "/etc/openvpn/ipp.txt 600",                                                                             translate("Persist/unpersist ifconfig-pool"),   { server_mode="1" } },
---             { Flag,                 "ifconfig_pool_linear",                 0,                                                                                                                              translate("Use individual addresses rather than /30 subnets"),  { server_mode="1" } }, -- deprecated and replaced by --topology p2p
-               { Value,                "ifconfig_push",                                "10.200.200.1 255.255.255.255",                                                                 translate("Push an ifconfig option to remote"), { server_mode="1" } },
-               { Value,                "iroute",                                               "10.200.200.0 255.255.255.0",                                                                   translate("Route subnet to client"),    { server_mode="1" } },
-               { Flag,                 "client_to_client",                             0,                                                                                                                              translate("Allow client-to-client traffic"),    { server_mode="1" } },
-               { Flag,                 "duplicate_cn",                                 0,                                                                                                                              translate("Allow multiple clients with same certificate"),      { server_mode="1" } },
-               { Value,                "client_config_dir",                    "/etc/openvpn/ccd",                                                                                             translate("Directory for custom client config files"),  { server_mode="1" } },
-               { Flag,                 "ccd_exclusive",                                0,                                                                                                                              translate("Refuse connection if no custom client config"),      { server_mode="1" } },
-               { Value,                "tmp_dir",                                              "/var/run/openvpn",                                                                                             translate("Temporary directory for client-connect return file"),        { server_mode="1" } },
-               { Value,                "hash_size",                                    "256 256",                                                                                                              translate("Set size of real and virtual address hash tables"),  { server_mode="1" } },
-               { Value,                "bcast_buffers",                                256,                                                                                                                    translate("Number of allocated broadcast buffers"),     { server_mode="1" } },
-               { Value,                "tcp_queue_limit",                              64,                                                                                                                             translate("Maximum number of queued TCP output packets"),       { server_mode="1" } },
-               { Value,                "max_clients",                                  10,                                                                                                                             translate("Allowed maximum of connected clients"),      { server_mode="1" } },
-               { Value,                "max_routes_per_client",                256,                                                                                                                    translate("Allowed maximum of internal"),       { server_mode="1" } },
-               { Value,                "connect_freq",                                 "3 10",                                                                                                                 translate("Allowed maximum of new connections"),        { server_mode="1" } },
-               { Flag,                 "client_cert_not_required",             0,                                                                                                                              translate("Don't require client certificate"),  { server_mode="1" } },
-               { Flag,                 "username_as_common_name",              0,                                                                                                                              translate("Use username as common name"),       { server_mode="1" } },
-               { Flag,                 "client",                                               0,                                                                                                                              translate("Configure client mode"),     { server_mode="0" }, { server_mode="" } },
-               { Flag,                 "pull",                                                 0,                                                                                                                              translate("Accept options pushed from server"), { client="1" } },
-               { Value,                "auth_user_pass",                               "/etc/openvpn/userpass.txt",                                                                    translate("Authenticate using username/password"),      { client="1" } },
-               { ListValue,    "auth_retry",                                   { "none", "nointeract", "interact" },                                                   translate("Handling of authentication failures"),       { client="1" } },
-               { Value,                "explicit_exit_notify",                 1,                                                                                                                              translate("Send notification to peer on disconnect"),   { client="1" } },
-               { DynamicList,  "remote",                                               "1.2.3.4",                                                                                                              translate("Remote host name or ip address"),    { client="1" } },
-               { Flag,                 "remote_random",                                1,                                                                                                                              translate("Randomly choose remote server"),     { client="1" } },
-               { ListValue,    "proto",                                                { "udp", "tcp-client", "tcp-server" },                                                  translate("Use protocol"),      { client="1" } },
-               { Value,                "connect_retry",                                5,                                                                                                                              translate("Connection retry interval"), { proto="tcp-client" }, { client="1" } },
-               { Value,                "http_proxy",                                   "192.168.1.100 8080",                                                                                   translate("Connect to remote host through an HTTP proxy"),      { client="1" } },
-               { Flag,                 "http_proxy_retry",                             0,                                                                                                                              translate("Retry indefinitely on HTTP proxy errors"),   { client="1" } },
-               { Value,                "http_proxy_timeout",                   5,                                                                                                                              translate("Proxy timeout in seconds"),  { client="1" } },
-               { DynamicList,  "http_proxy_option",                    { "VERSION 1.0", "AGENT OpenVPN/2.0.9" },                                               translate("Set extended HTTP proxy options"),   { client="1" } },
-               { Value,                "socks_proxy",                                  "192.168.1.200 1080",                                                                                   translate("Connect through Socks5 proxy"),      { client="1" } },
-               { Value,                "socks_proxy_retry",                    5,                                                                                                                              translate("Retry indefinitely on Socks proxy errors"),  { client="1" } },       -- client && socks_proxy
-               { Value,                "resolv_retry",                                 "infinite",                                                                                                             translate("If hostname resolve fails, retry"),  { client="1" } },
-               { ListValue,    "redirect_gateway",                             { "", "local", "def1", "local def1" },                                                  translate("Automatically redirect default route"),      { client="1" } },
+               { Value,
+                       "server",
+                       "10.200.200.0 255.255.255.0",
+                       translate("Configure server mode"),
+                       { server_mode="1" } },
+               { Value,
+                       "server_bridge",
+                       "10.200.200.1 255.255.255.0 10.200.200.200 10.200.200.250",
+                       translate("Configure server bridge"),
+                       { server_mode="1" } },
+               { DynamicList,
+                       "push",
+                       { "redirect-gateway", "comp-lzo" },
+                       translate("Push options to peer"),
+                       { server_mode="1" } },
+               { Flag,
+                       "push_reset",
+                       0,
+                       translate("Don't inherit global push options"),
+                       { server_mode="1" } },
+               { Flag,
+                       "disable",
+                       0,
+                       translate("Client is disabled"),
+                       { server_mode="1" } },
+               { Value,
+                       "ifconfig_pool",
+                       "10.200.200.100 10.200.200.150 255.255.255.0",
+                       translate("Set aside a pool of subnets"),
+                       { server_mode="1" } },
+               { Value,
+                       "ifconfig_pool_persist",
+                       "/etc/openvpn/ipp.txt 600",
+                       translate("Persist/unpersist ifconfig-pool"),
+                       { server_mode="1" } },
+       -- deprecated and replaced by --topology p2p
+       --      { Flag,
+       --              "ifconfig_pool_linear",
+       --              0,
+       --              translate("Use individual addresses rather than /30 subnets"),
+       --              { server_mode="1" } },
+               { Value,
+                       "ifconfig_push",
+                       "10.200.200.1 255.255.255.255",
+                       translate("Push an ifconfig option to remote"),
+                       { server_mode="1" } },
+               { Value,
+                       "iroute",
+                       "10.200.200.0 255.255.255.0",
+                       translate("Route subnet to client"),
+                       { server_mode="1" } },
+               { Flag,
+                       "client_to_client",
+                       0,
+                       translate("Allow client-to-client traffic"),
+                       { server_mode="1" } },
+               { Flag,
+                       "duplicate_cn",
+                       0,
+                       translate("Allow multiple clients with same certificate"),
+                       { server_mode="1" } },
+               { Value,
+                       "client_config_dir",
+                       "/etc/openvpn/ccd",
+                       translate("Directory for custom client config files"),
+                       { server_mode="1" } },
+               { Flag,
+                       "ccd_exclusive",
+                       0,
+                       translate("Refuse connection if no custom client config"),
+                       { server_mode="1" } },
+               { Value,
+                       "tmp_dir",
+                       "/var/run/openvpn",
+                       translate("Temporary directory for client-connect return file"),
+                       { server_mode="1" } },
+               { Value,
+                       "hash_size",
+                       "256 256",
+                       translate("Set size of real and virtual address hash tables"),
+                       { server_mode="1" } },
+               { Value,
+                       "bcast_buffers",
+                       256,
+                       translate("Number of allocated broadcast buffers"),
+                       { server_mode="1" } },
+               { Value,
+                       "tcp_queue_limit",
+                       64,
+                       translate("Maximum number of queued TCP output packets"),
+                       { server_mode="1" } },
+               { Value,
+                       "max_clients",
+                       10,
+                       translate("Allowed maximum of connected clients"),
+                       { server_mode="1" } },
+               { Value,
+                       "max_routes_per_client",
+                       256,
+                       translate("Allowed maximum of internal"),
+                       { server_mode="1" } },
+               { Value,
+                       "connect_freq",
+                       "3 10",
+                       translate("Allowed maximum of new connections"),
+                       { server_mode="1" } },
+               { Flag,
+                       "client_cert_not_required",
+                       0,
+                       translate("Don't require client certificate"),
+                       { server_mode="1" } },
+               { Flag,
+                       "username_as_common_name",
+                       0,
+                       translate("Use username as common name"),
+                       { server_mode="1" } },
+               { Flag,
+                       "client",
+                       0,
+                       translate("Configure client mode"),
+                       { server_mode="0" }, { server_mode="" } },
+               { Flag,
+                       "pull",
+                       0,
+                       translate("Accept options pushed from server"),
+                       { client="1" } },
+               { Value,
+                       "auth_user_pass",
+                       "/etc/openvpn/userpass.txt",
+                       translate("Authenticate using username/password"),
+                       { client="1" } },
+               { ListValue,
+                       "auth_retry",
+                       { "none", "nointeract", "interact" },
+                       translate("Handling of authentication failures"),
+                       { client="1" } },
+               { Value,
+                       "explicit_exit_notify",
+                       1,
+                       translate("Send notification to peer on disconnect"),
+                       { client="1" } },
+               { DynamicList,
+                       "remote",
+                       "1.2.3.4",
+                       translate("Remote host name or ip address"),
+                       { client="1" } },
+               { Flag,
+                       "remote_random",
+                       1,
+                       translate("Randomly choose remote server"),
+                       { client="1" } },
+               { ListValue,
+                       "proto",
+                       { "udp", "tcp-client", "tcp-server" },
+                       translate("Use protocol"),
+                       { client="1" } },
+               { Value,
+                       "connect_retry",
+                       5,
+                       translate("Connection retry interval"),
+                       { proto="tcp-client" }, { client="1" } },
+               { Value,
+                       "http_proxy",
+                       "192.168.1.100 8080",
+                       translate("Connect to remote host through an HTTP proxy"),
+                       { client="1" } },
+               { Flag,
+                       "http_proxy_retry",
+                       0,
+                       translate("Retry indefinitely on HTTP proxy errors"),
+                       { client="1" } },
+               { Value,
+                       "http_proxy_timeout",
+                       5,
+                       translate("Proxy timeout in seconds"),
+                       { client="1" } },
+               { DynamicList,
+                       "http_proxy_option",
+                       { "VERSION 1.0", "AGENT OpenVPN/2.0.9" },
+                       translate("Set extended HTTP proxy options"),
+                       { client="1" } },
+               { Value,
+                       "socks_proxy",
+                       "192.168.1.200 1080",
+                       translate("Connect through Socks5 proxy"),
+                       { client="1" } },
+       -- client && socks_proxy
+               { Value,
+                       "socks_proxy_retry",
+                       5,
+                       translate("Retry indefinitely on Socks proxy errors"),
+                       { client="1" } },
+               { Value,
+                       "resolv_retry",
+                       "infinite",
+                       translate("If hostname resolve fails, retry"),
+                       { client="1" } },
+               { ListValue,
+                       "redirect_gateway",
+                       { "", "local", "def1", "local def1" },
+                       translate("Automatically redirect default route"),
+                       { client="1" } },
        } },
 
        { "Cryptography", {
-               { FileUpload,   "secret",                                               "/etc/openvpn/secret.key",                                                                      translate("Enable Static Key encryption mode (non-TLS)") },
-               { Value,                "auth",                                                 "SHA1",                                                                                                                 translate("HMAC authentication for packets") }, -- parse
-               { Value,                "cipher",                                               "BF-CBC",                                                                                                               translate("Encryption cipher for packets") }, -- parse
-               { Value,                "keysize",                                              1024,                                                                                                                   translate("Size of cipher key") }, -- parse
-               { Value,                "engine",                                               "dynamic",                                                                                                              translate("Enable OpenSSL hardware crypto engines") }, -- parse
-               { Flag,                 "no_replay",                                    0,                                                                                                                              translate("Disable replay protection") },
-               { Value,                "replay_window",                                "64 15",                                                                                                                translate("Replay protection sliding window size") },
-               { Flag,                 "mute_replay_warnings",                 0,                                                                                                                              translate("Silence the output of replay warnings") },
-               { Value,                "replay_persist",                               "/var/run/openvpn-replay-state",                                                                translate("Persist replay-protection state") },
-               { Flag,                 "no_iv",                                                0,                                                                                                                              translate("Disable cipher initialisation vector") },
-               { Flag,                 "tls_server",                                   0,                                                                                                                              translate("Enable TLS and assume server role"), { tls_client="" }, { tls_client="0" } },
-               { Flag,                 "tls_client",                                   0,                                                                                                                              translate("Enable TLS and assume client role"), { tls_server="" }, { tls_server="0" } },
-               { FileUpload,   "ca",                                                   "/etc/easy-rsa/keys/ca.crt",                                                                    translate("Certificate authority") },
-               { FileUpload,   "dh",                                                   "/etc/easy-rsa/keys/dh1024.pem",                                                                translate("Diffie Hellman parameters") },
-               { FileUpload,   "cert",                                                 "/etc/easy-rsa/keys/some-client.crt",                                                   translate("Local certificate") },
-               { FileUpload,   "key",                                                  "/etc/easy-rsa/keys/some-client.key",                                                   translate("Local private key") },
-               { FileUpload,   "pkcs12",                                               "/etc/easy-rsa/keys/some-client.pk12",                                                  translate("PKCS#12 file containing keys") },
-               { ListValue,    "key_method",                                   { 1, 2 },                                                                                                               translate("Enable TLS and assume client role") },
-               { Value,                "tls_cipher",                                   "DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:RC4-SHA:RC4-MD5:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC4-MD5",
-                                                                                                                                                                                                                                               translate("TLS cipher") },
-               { Value,                "tls_timeout",                                  2,                                                                                                                              translate("Retransmit timeout on TLS control channel") },
-               { Value,                "reneg_bytes",                                  1024,                                                                                                                   translate("Renegotiate data chan. key after bytes") },
-               { Value,                "reneg_pkts",                                   100,                                                                                                                    translate("Renegotiate data chan. key after packets") },
-               { Value,                "reneg_sec",                                    3600,                                                                                                                   translate("Renegotiate data chan. key after seconds") },
-               { Value,                "hand_window",                                  60,                                                                                                                             translate("Timeframe for key exchange") },
-               { Value,                "tran_window",                                  3600,                                                                                                                   translate("Key transition window") },
-               { Flag,                 "single_session",                               0,                                                                                                                              translate("Allow only one session") },
-               { Flag,                 "tls_exit",                                             0,                                                                                                                              translate("Exit on TLS negotiation failure") },
-               { Value,                "tls_auth",                                             "/etc/openvpn/tlsauth.key",                                                                     translate("Additional authentication over TLS") },
-               --{ Value,              "askpass",                                              "[file]",                                                                                                               translate("Get PEM password from controlling tty before we daemonize") },
-               { Flag,                 "auth_nocache",                                 0,                                                                                                                              translate("Don't cache --askpass or --auth-user-pass passwords") },
-               { Value,                "tls_remote",                                   "remote_x509_name",                                                                                             translate("Only accept connections from given X509 name") },
-               { ListValue,    "ns_cert_type",                                 { "client", "server" },                                                                                 translate("Require explicit designation on certificate") },
-               { ListValue,    "remote_cert_tls",                              { "client", "server" },                                                                                 translate("Require explicit key usage on certificate") },
-               { Value,                "crl_verify",                                   "/etc/easy-rsa/keys/crl.pem",                                                                   translate("Check peer certificate against a CRL") },
-               { Value,        "tls_version_min",              "1.0",                                                                                                                  translate("The lowest supported TLS version") },
-               { Value,        "tls_version_max",              "1.2",                                                                                                                  translate("The highest supported TLS version") },
-               { Value,        "key_direction",                "1",                                                                                                                    translate("The key direction for 'tls-auth' and 'secret' options") },
-       } }
+               { FileUpload,
+                       "secret",
+                       "/etc/openvpn/secret.key",
+                       translate("Enable Static Key encryption mode (non-TLS)") },
+       -- parse
+               { Value,
+                       "auth",
+                       "SHA1",
+                       translate("HMAC authentication for packets") },
+       -- parse
+               { Value,
+                       "cipher",
+                       "BF-CBC",
+                       translate("Encryption cipher for packets") },
+       -- parse
+               { Value,
+                       "keysize",
+                       1024,
+                       translate("Size of cipher key") },
+       -- parse
+               { Value,
+                       "engine",
+                       "dynamic",
+                       translate("Enable OpenSSL hardware crypto engines") },
+               { Flag,
+                       "no_replay",
+                       0,
+                       translate("Disable replay protection") },
+               { Value,
+                       "replay_window",
+                       "64 15",
+                       translate("Replay protection sliding window size") },
+               { Flag,
+                       "mute_replay_warnings",
+                       0,
+                       translate("Silence the output of replay warnings") },
+               { Value,
+                       "replay_persist",
+                       "/var/run/openvpn-replay-state",
+                       translate("Persist replay-protection state") },
+               { Flag,
+                       "no_iv",
+                       0,
+                       translate("Disable cipher initialisation vector") },
+               { Flag,
+                       "tls_server",
+                       0,
+                       translate("Enable TLS and assume server role"),
+                       { tls_client="" }, { tls_client="0" } },
+               { Flag,
+                       "tls_client",
+                       0,
+                       translate("Enable TLS and assume client role"),
+                       { tls_server="" }, { tls_server="0" } },
+               { FileUpload,
+                       "ca",
+                       "/etc/easy-rsa/keys/ca.crt",
+                       translate("Certificate authority") },
+               { FileUpload,
+                       "dh",
+                       "/etc/easy-rsa/keys/dh1024.pem",
+                       translate("Diffie Hellman parameters") },
+               { FileUpload,
+                       "cert",
+                       "/etc/easy-rsa/keys/some-client.crt",
+                       translate("Local certificate") },
+               { FileUpload,
+                       "key",
+                       "/etc/easy-rsa/keys/some-client.key",
+                       translate("Local private key") },
+               { FileUpload,
+                       "pkcs12",
+                       "/etc/easy-rsa/keys/some-client.pk12",
+                       translate("PKCS#12 file containing keys") },
+               { ListValue,
+                       "key_method",
+                       { 1, 2 },
+                       translate("Enable TLS and assume client role") },
+               { Value,
+                       "tls_cipher",
+                       "DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:RC4-SHA:RC4-MD5:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC4-MD5",
+                       translate("TLS cipher") },
+               { Value,
+                       "tls_timeout",
+                       2,
+                       translate("Retransmit timeout on TLS control channel") },
+               { Value,
+                       "reneg_bytes",
+                       1024,
+                       translate("Renegotiate data chan. key after bytes") },
+               { Value,
+                       "reneg_pkts",
+                       100,
+                       translate("Renegotiate data chan. key after packets") },
+               { Value,
+                       "reneg_sec",
+                       3600,
+                       translate("Renegotiate data chan. key after seconds") },
+               { Value,
+                       "hand_window",
+                       60,
+                       translate("Timeframe for key exchange") },
+               { Value,
+                       "tran_window",
+                       3600,
+                       translate("Key transition window") },
+               { Flag,
+                       "single_session",
+                       0,
+                       translate("Allow only one session") },
+               { Flag,
+                       "tls_exit",
+                       0,
+                       translate("Exit on TLS negotiation failure") },
+               { Value,
+                       "tls_auth",
+                       "/etc/openvpn/tlsauth.key",
+                       translate("Additional authentication over TLS") },
+       --      { Value,
+       --              "askpass",
+       --              "[file]",
+       --              translate("Get PEM password from controlling tty before we daemonize") },
+               { Flag,
+                       "auth_nocache",
+                       0,
+                       translate("Don't cache --askpass or --auth-user-pass passwords") },
+               { Value,
+                       "tls_remote",
+                       "remote_x509_name",
+                       translate("Only accept connections from given X509 name") },
+               { ListValue,
+                       "ns_cert_type",
+                       { "client", "server" },
+                       translate("Require explicit designation on certificate") },
+               { ListValue,
+                       "remote_cert_tls",
+                       { "client", "server" },
+                       translate("Require explicit key usage on certificate") },
+               { Value,
+                       "crl_verify",
+                       "/etc/easy-rsa/keys/crl.pem",
+                       translate("Check peer certificate against a CRL") },
+               { Value,
+                       "tls_version_min",
+                       "1.0",
+                       translate("The lowest supported TLS version") },
+               { Value,
+                       "tls_version_max",
+                       "1.2",
+                       translate("The highest supported TLS version") },
+               { Value,
+                       "key_direction",
+                       "1",
+                       translate("The key direction for 'tls-auth' and 'secret' options") },
+       } }
 }
 
 
index 916370e..84b0540 100644 (file)
@@ -1,17 +1,17 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2014-03-29 23:19+0200\n"
-"Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2017-02-20 18:04-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\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.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "%s"
 msgstr "%s"
@@ -154,7 +154,7 @@ msgid "Don't log timestamps"
 msgstr "Não registar a data/hora"
 
 msgid "Don't pull routes automatically"
-msgstr ""
+msgstr "Não puxe as rotas automaticamente"
 
 msgid "Don't re-read key on restart"
 msgstr "Não reler a chave entre os reinícios"
@@ -505,13 +505,13 @@ msgid "Temporary directory for client-connect return file"
 msgstr "Diretório temporário para arquivo de retorno de conexão-cliente"
 
 msgid "The highest supported TLS version"
-msgstr ""
+msgstr "A mais alta versão suporta do TLS"
 
 msgid "The key direction for 'tls-auth' and 'secret' options"
-msgstr ""
+msgstr "A direção da chave para as opções 'tls-auth' e 'secret'"
 
 msgid "The lowest supported TLS version"
-msgstr ""
+msgstr "A mais baixa versão suporta do TLS"
 
 msgid "Timeframe for key exchange"
 msgstr "Janela temporal para troca de chaves"
diff --git a/applications/luci-app-privoxy/po/pt-br/privoxy.po b/applications/luci-app-privoxy/po/pt-br/privoxy.po
new file mode 100644 (file)
index 0000000..8d3eee2
--- /dev/null
@@ -0,0 +1,516 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid ""
+"A URL to be displayed in the error page that users will see if access to an "
+"untrusted page is denied."
+msgstr ""
+"A URL a ser exibida na página de erro que os usuários verão se o acesso a "
+"uma página não confiável é negado."
+
+msgid ""
+"A URL to documentation about the local Privoxy setup, configuration or "
+"policies."
+msgstr ""
+"A URL para a documentação sobre o Privoxy local, configuração ou políticas."
+
+msgid "A directory where Privoxy can create temporary files."
+msgstr "Um diretório onde Privoxy pode criar arquivos temporários."
+
+msgid "Access Control"
+msgstr "Controle de Acesso"
+
+msgid "Actions that are applied to all sites and maybe overruled later on."
+msgstr ""
+"Ações que são aplicadas a todos as páginas e talvez descartado mais tarde."
+
+msgid "An alternative directory where the templates are loaded from."
+msgstr "Um diretório alternativo de onde os modelos são carregados."
+
+msgid "An email address to reach the Privoxy administrator."
+msgstr "Um endereço de e-mail para alcançar o administrador do Privoxy."
+
+msgid ""
+"Assumed server-side keep-alive timeout (in seconds) if not specified by the "
+"server."
+msgstr ""
+"Tempo limite, em segundos, da manutenção da conexão (keep-alive) do servidor "
+"se não for especificado."
+
+msgid "Boot delay"
+msgstr "Atraso de iniciação"
+
+msgid "CGI user interface"
+msgstr "Interface de usuário CGI"
+
+msgid "Common Log Format"
+msgstr "Formato de registros (log) comum"
+
+msgid ""
+"Configure here the routing of HTTP requests through a chain of multiple "
+"proxies. Note that parent proxies can severely decrease your privacy level. "
+"Also specified here are SOCKS proxies."
+msgstr ""
+"Configure aqui o encaminhamento de pedidos HTTP através de uma cadeia de "
+"múltiplos proxies. Note-se que proxies pai pode diminuir muito o nível de "
+"privacidade. Também serão aceitos proxies SOCKS."
+
+msgid "Debug GIF de-animation"
+msgstr "Depurar de-animação GIF"
+
+msgid "Debug force feature"
+msgstr "Recurso de depuração forçado"
+
+msgid "Debug redirects"
+msgstr "Redirecionamentos de depuração"
+
+msgid "Debug regular expression filters"
+msgstr "Depuração de filtros de expressão regular"
+
+msgid "Delay (in seconds) during system boot before Privoxy start"
+msgstr ""
+"Atraso (em segundos) durante a inicialização do sistema antes do Privoxy "
+"iniciar"
+
+msgid "Directory does not exist!"
+msgstr "O diretório não existe!"
+
+msgid "Disabled == Transparent Proxy Mode"
+msgstr "Desativado == Modo Proxy Transparente"
+
+msgid "Documentation"
+msgstr "Documentação"
+
+msgid "During delay ifup-events are not monitored !"
+msgstr "Durante a espera, eventos ifup não serão monitorados!"
+
+msgid "Enable proxy authentication forwarding"
+msgstr "Habilitar o encaminhamento de autenticação de proxy"
+
+msgid ""
+"Enable/Disable autostart of Privoxy on system startup and interface events"
+msgstr ""
+"Ativar/Desativar a iniciação automática do Privoxy junto com a iniciação do "
+"sistema ou eventos de interface"
+
+msgid "Enable/Disable filtering when Privoxy starts."
+msgstr "Ativar / Desativar filtragem quando Privoxy iniciar."
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid ""
+"Enabling this option is NOT recommended if there is no parent proxy that "
+"requires authentication!"
+msgstr ""
+"A ativação dessa opção não é recomendado se não houver nenhum proxy pai que "
+"requer autenticação!"
+
+msgid "File '%s' not found inside Configuration Directory"
+msgstr "O arquivo '%s' não foi encontrado dentro do Diretório de Configuração"
+
+msgid "File not found or empty"
+msgstr "Arquivo não encontrado ou vazio"
+
+msgid "Files and Directories"
+msgstr "Arquivos e diretórios"
+
+msgid "For help use link at the relevant option"
+msgstr "Para ajuda, use o link na respectiva opção"
+
+msgid "Forwarding"
+msgstr "Encaminhando"
+
+msgid ""
+"If enabled, Privoxy hides the 'go there anyway' link. The user obviously "
+"should not be able to bypass any blocks."
+msgstr ""
+"Se ativado, Privoxy esconde o link \"ir lá de qualquer maneira\". O usuário, "
+"obviamente, não deve ser capaz de contornar qualquer bloqueio."
+
+msgid ""
+"If you intend to operate Privoxy for more users than just yourself, it might "
+"be a good idea to let them know how to reach you, what you block and why you "
+"do that, your policies, etc."
+msgstr ""
+"Se você pretende operar Privoxy para mais usuários do que apenas a si mesmo, "
+"pode ser uma boa ideia para que eles saibam como falar com você, o que você "
+"bloquear e por que você faz isso, as suas políticas, etc."
+
+msgid "Invalid email address"
+msgstr "Endereço de e-mail inválido"
+
+msgid "It is NOT recommended for the casual user."
+msgstr "Não é recomendado para o usuário casual."
+
+msgid "Location of the Privoxy User Manual."
+msgstr "Localização do Manual do Usuário do Privoxy."
+
+msgid "Log File Viewer"
+msgstr "Visualizador de arquivo de registros (log)"
+
+msgid "Log all data read from the network"
+msgstr "Registrar todos os dados lidos da rede"
+
+msgid "Log all data written to the network"
+msgstr "Registrar todos os dados gravados na rede"
+
+msgid "Log the applying actions"
+msgstr "Registrar as ações aplicadas"
+
+msgid ""
+"Log the destination for each request Privoxy let through. See also 'Debug "
+"1024'."
+msgstr ""
+"Registrar o destino para cada pedido que o Privoxy deixou passar. Consulte "
+"também 'Debug 1024'."
+
+msgid ""
+"Log the destination for requests Privoxy didn't let through, and the reason "
+"why."
+msgstr ""
+"Registrar o destino para os pedidos que o Privoxy não deixou passar, e a "
+"razão pela qual."
+
+msgid "Logging"
+msgstr "Registrando (logging)"
+
+msgid "Main actions file"
+msgstr "Arquivo principal de ações"
+
+msgid "Mandatory Input: No Data given!"
+msgstr "Entrada obrigatória: Dados não foram informados!"
+
+msgid "Mandatory Input: No Directory given!"
+msgstr "Entrada obrigatória: Nenhum Diretório foi informado!"
+
+msgid "Mandatory Input: No File given!"
+msgstr "Entrada obrigatória: Nenhum Arquivo foi informado!"
+
+msgid "Mandatory Input: No Port given!"
+msgstr "Entrada obrigatória: Nenhuma Porta foi informado!"
+
+msgid "Mandatory Input: No files given!"
+msgstr "Entrada obrigatória: Nenhum Arquivo foi informado!"
+
+msgid "Mandatory Input: No valid IPv4 address or host given!"
+msgstr ""
+"Entrada obrigatória: Nenhum endereço IPv4 ou nome de equipamento válido foi "
+"fornecido!"
+
+msgid "Mandatory Input: No valid IPv6 address given!"
+msgstr "Entrada obrigatória: Nenhum endereço IPv6 válido foi informado!"
+
+msgid "Mandatory Input: No valid Port given!"
+msgstr "Entrada obrigatória: Nenhuma porta válida foi informada!"
+
+msgid "Maximum number of client connections that will be served."
+msgstr "O número máximo de conexões de cliente que será aceito."
+
+msgid "Maximum size (in KB) of the buffer for content filtering."
+msgstr "Tamanho máximo (em KB) do buffer para filtragem de conteúdo."
+
+msgid "Miscellaneous"
+msgstr "Diversos"
+
+msgid "NOT installed"
+msgstr "NÃO instalado"
+
+msgid "No trailing '/', please."
+msgstr "Sem '/' final, por favor."
+
+msgid "Non-fatal errors - *we highly recommended enabling this*"
+msgstr "Erros não fatais - *é altamente recomendado ativar isto*"
+
+msgid ""
+"Number of seconds after which a socket times out if no data is received."
+msgstr ""
+"Número de segundos após o qual uma conexão expira se nenhum dado for "
+"recebido."
+
+msgid ""
+"Number of seconds after which an open connection will no longer be reused."
+msgstr ""
+"Número de segundos após o qual uma conexão aberta deixará de ser reutilizada."
+
+msgid ""
+"Only when using 'external filters', Privoxy has to create temporary files."
+msgstr ""
+"Somente quando for usado os \"filtros externos\". O Privoxy tem que criar "
+"arquivos temporários."
+
+msgid "Please install current version !"
+msgstr "Por favor, instale a versão atual!"
+
+msgid "Please press [Read] button"
+msgstr "Por favor, pressione o botão [Ler]"
+
+msgid "Please read Privoxy manual for details!"
+msgstr "Por favor, leia o manual do Privoxy para mais detalhes!"
+
+msgid "Please update to the current version!"
+msgstr "Por favor, atualize para a versão atual!"
+
+msgid "Privoxy WEB proxy"
+msgstr "Privoxy Web Proxy"
+
+msgid ""
+"Privoxy can (and normally does) use a number of other files for additional "
+"configuration, help and logging. This section of the configuration file "
+"tells Privoxy where to find those other files."
+msgstr ""
+"Privoxy pode (e normalmente o faz) utilizar uma série de outros arquivos de "
+"configuração, ajuda e de registros. Esta seção do arquivo de configuração "
+"informa o Privoxy onde encontrar os outros arquivos."
+
+msgid ""
+"Privoxy is a non-caching web proxy with advanced filtering capabilities for "
+"enhancing privacy, modifying web page data and HTTP headers, controlling "
+"access, and removing ads and other obnoxious Internet junk."
+msgstr ""
+"Privoxy é um proxy web sem cache com capacidades avançadas de filtragem para "
+"aumentar a privacidade, modificar dados de páginas web e cabeçalhos HTTP, "
+"controlar o acesso e remover anúncios e outras porcarias detestável da "
+"Internet."
+
+msgid "Read / Reread log file"
+msgstr "Ler / Ler novamente o arquivo de registros (log)"
+
+msgid "Show I/O status"
+msgstr "Mostrar status de Entrada/Saída"
+
+msgid "Show each connection status"
+msgstr "Mostrar cada estado de conexão"
+
+msgid "Show header parsing"
+msgstr "Mostrar análise do cabeçalho"
+
+msgid "Software package '%s' is not installed."
+msgstr "O pacote de software '%s' não está instalado."
+
+msgid "Software package '%s' is outdated."
+msgstr "O pacote '%' está desatualizado."
+
+msgid "Start"
+msgstr "Iniciar"
+
+msgid "Start / Stop"
+msgstr "Iniciar / Parar"
+
+msgid "Start/Stop Privoxy WEB Proxy"
+msgstr "Inicia / Para o Privoxy Web Proxy"
+
+msgid "Startup banner and warnings."
+msgstr "Mensagens e avisos iniciais."
+
+msgid "Syntax:"
+msgstr "Sintaxe:"
+
+msgid "Syntax: Client header names delimited by spaces."
+msgstr "Sintaxe: nomes de cabeçalho do cliente delimitados por espaços."
+
+msgid "Syntax: target_pattern http_parent[:port]"
+msgstr "Sintaxe: padrão_alvo http_superior[:porta]"
+
+msgid "Syntax: target_pattern socks_proxy[:port] http_parent[:port]"
+msgstr "Sintaxe: padrão_alvo proxy_socks[:porta] http_superior[:porta]"
+
+msgid "System"
+msgstr "Sistema"
+
+msgid ""
+"The actions file(s) to use. Multiple actionsfile lines are permitted, and "
+"are in fact recommended!"
+msgstr ""
+"O(s) arquivo(s) ações a ser usado. Várias linhas no arquivo são permitidas, "
+"e são, de fato, recomendadas!"
+
+msgid ""
+"The address and TCP port on which Privoxy will listen for client requests."
+msgstr ""
+"O endereço e porta TCP em que Privoxy vai esperar por pedidos dos clientes."
+
+msgid ""
+"The compression level that is passed to the zlib library when compressing "
+"buffered content."
+msgstr ""
+"O nível de compressão que é passada para a biblioteca zlib ao comprimir o "
+"conteúdo em buffer."
+
+msgid ""
+"The directory where all logging takes place (i.e. where the logfile is "
+"located)."
+msgstr ""
+"O diretório onde todos os registros ocorrem (ex: onde o arquivo de log está "
+"localizado)."
+
+msgid "The directory where the other configuration files are located."
+msgstr "O diretório onde os outros arquivos de configuração estão localizados."
+
+msgid ""
+"The filter files contain content modification rules that use regular "
+"expressions."
+msgstr ""
+"Os arquivos de filtro contêm regras de modificação de conteúdo que usam "
+"expressões regulares."
+
+msgid "The hostname shown on the CGI pages."
+msgstr "O nome da máquina mostrado nas páginas de CGI."
+
+msgid "The log file to use. File name, relative to log directory."
+msgstr ""
+"O arquivo de registros a ser usado. O nome do arquivo, relativo ao diretório "
+"de log."
+
+msgid "The order in which client headers are sorted before forwarding them."
+msgstr ""
+"A ordem em que os cabeçalhos dos clientes são classificados antes de "
+"encaminhá-los."
+
+msgid ""
+"The status code Privoxy returns for pages blocked with +handle-as-empty-"
+"document."
+msgstr ""
+"O código de status Privoxy retorna para páginas bloqueadas com +handle-as-"
+"empty-document."
+
+msgid ""
+"The trust mechanism is an experimental feature for building white-lists and "
+"should be used with care."
+msgstr ""
+"O mecanismo de confiança é um recurso experimental para a construção de "
+"listas de destinos confiáveis e deve ser usado com cuidado."
+
+msgid ""
+"The value of this option only matters if the experimental trust mechanism "
+"has been activated."
+msgstr ""
+"O valor desta opção só importa se o mecanismo de confiança experimental foi "
+"ativado."
+
+msgid ""
+"This option is only there for debugging purposes. It will drastically reduce "
+"performance."
+msgstr ""
+"Esta opção só está lá para fins de depuração. Ele irá reduzir drasticamente "
+"o desempenho."
+
+msgid ""
+"This option will be removed in future releases as it has been obsoleted by "
+"the more general header taggers."
+msgstr ""
+"Esta opção será removida em versões futuras, uma vez que ficou obsoleta "
+"pelos marcadores de cabeçalho mais genéricos."
+
+msgid ""
+"This tab controls the security-relevant aspects of Privoxy's configuration."
+msgstr ""
+"Esta guia controla os aspectos da configuração do Privoxy relevantes para a "
+"segurança."
+
+msgid ""
+"Through which SOCKS proxy (and optionally to which parent HTTP proxy) "
+"specific requests should be routed."
+msgstr ""
+"Através de qual Proxy SOCKS (e, opcionalmente, para o qual proxy HTTP "
+"superior) pedidos específicos devem ser encaminhados."
+
+msgid "To which parent HTTP proxy specific requests should be routed."
+msgstr ""
+"Para qual proxy HTTP superior os pedidos específicos devem ser encaminhados."
+
+msgid "User customizations"
+msgstr "Personalizações do usuário"
+
+msgid "Value is not a number"
+msgstr "O valor não é um número"
+
+msgid "Value not between 0 and 300"
+msgstr "Valor não está entre 0 e 300"
+
+msgid "Value not between 0 and 9"
+msgstr "Valor não está entre 0 e 9"
+
+msgid "Value not between 1 and 4096"
+msgstr "Valor não entre 1 e 4096"
+
+msgid "Value not greater 0 or empty"
+msgstr "Valor não é maior que 0 ou vazio"
+
+msgid "Value range 1 to 4096, no entry defaults to 4096"
+msgstr "Faixa do valor de 1 até 4096. Se vazio, será 4096"
+
+msgid "Version"
+msgstr "Versão"
+
+msgid "Version Information"
+msgstr "Informação da Versão"
+
+msgid "Whether intercepted requests should be treated as valid."
+msgstr "Se as solicitações interceptados deve ser tratadas como válidas."
+
+msgid ""
+"Whether or not Privoxy recognizes special HTTP headers to change toggle "
+"state."
+msgstr ""
+"Se o Privoxy deve reconhecer cabeçalhos HTTP especiais para mudar de "
+"alternância do estado."
+
+msgid "Whether or not buffered content is compressed before delivery."
+msgstr "Se o conteúdo em buffer é comprimido antes da entrega."
+
+msgid ""
+"Whether or not outgoing connections that have been kept alive should be "
+"shared between different incoming connections."
+msgstr ""
+"Se as conexões de saída que foram mantidas vivas devem ser compartilhadas "
+"entre diferentes conexões de entrada."
+
+msgid "Whether or not pipelined requests should be served."
+msgstr "Se os pedidos de pipeline deve ser aceitos."
+
+msgid "Whether or not proxy authentication through Privoxy should work."
+msgstr "Se a autenticação de proxy através do Privoxy deve funcionar."
+
+msgid "Whether or not the web-based actions file editor may be used."
+msgstr "Se o editor de arquivos de ações baseadas na web deve ser utilizado."
+
+msgid "Whether or not the web-based toggle feature may be used."
+msgstr "Se deve ser usado o recurso de alternância baseado na web."
+
+msgid "Whether requests to Privoxy's CGI pages can be blocked or redirected."
+msgstr ""
+"Se as solicitações para páginas CGI do Privoxy podem ser bloqueadas ou "
+"redirecionadas."
+
+msgid ""
+"Whether the CGI interface should stay compatible with broken HTTP clients."
+msgstr ""
+"Se a interface CGI deve se manter compatível com clientes HTTP mal "
+"implementados."
+
+msgid "Whether to run only one server thread."
+msgstr "Se deseja executar o servidor como apenas uma thread."
+
+msgid "Who can access what."
+msgstr "Quem pode acessar o quê."
+
+msgid "installed"
+msgstr "instalado"
+
+msgid "or higher"
+msgstr "ou maior"
+
+msgid "required"
+msgstr "necessário"
diff --git a/applications/luci-app-radicale/po/pt-br/radicale.po b/applications/luci-app-radicale/po/pt-br/radicale.po
new file mode 100644 (file)
index 0000000..67bf586
--- /dev/null
@@ -0,0 +1,432 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid ""
+"'AUTO' selects the highest protocol version that client and server support."
+msgstr "'AUTO' seleciona a versão mais alto protocolo que o cliente e o servidor suportar."
+
+msgid ""
+"'Hostname:Port' or 'IPv4:Port' or '[IPv6]:Port' Radicale should listen on"
+msgstr "'NomeDoEquipamento:porta' ou 'IPv4:Porta' ou '[IPv6]:Porta' em que o Radicale deve escutar"
+
+msgid "AUTO"
+msgstr "AUTO"
+
+msgid "Access-Control-Allow-Headers"
+msgstr "Access-Control-Allow-Headers"
+
+msgid "Access-Control-Allow-Methods"
+msgstr "Access-Control-Allow-Methods"
+
+msgid "Access-Control-Allow-Origin"
+msgstr "Access-Control-Allow-Origin"
+
+msgid "Access-Control-Expose-Headers"
+msgstr "Access-Control-Expose-Headers"
+
+msgid "Additional HTTP headers"
+msgstr "Additional HTTP headers"
+
+msgid "Address:Port"
+msgstr "Endereço: Porta"
+
+#, fuzzy
+msgid "Authentication"
+msgstr "Autenticação"
+
+msgid ""
+"Authentication login is matched against the 'user' key, and collection's "
+"path is matched against the 'collection' key."
+msgstr "O nome do usuário na autenticação é comparado com a chave do 'user', e o caminho da coleção é comparado com a chave 'coleção'."
+
+msgid "Authentication method"
+msgstr "Método de autenticação"
+
+msgid "Authentication method to allow access to Radicale server."
+msgstr "Método de autenticação para permitir o acesso ao servidor Radicale."
+
+msgid "Auto-start"
+msgstr "Iniciar automaticamente"
+
+msgid "Boot delay"
+msgstr "Atraso na iniciação"
+
+msgid "CalDAV/CardDAV"
+msgstr "CalDAV/CardDAV"
+
+msgid ""
+"Calendars and address books are available for both local and remote access, "
+"possibly limited through authentication policies."
+msgstr "Agendas e contados estão disponíveis tanto para acesso local como remoto, possivelmente limitado através das políticas de autenticação."
+
+msgid "Certificate file"
+msgstr "Arquivo do certificado"
+
+msgid ""
+"Change here the encoding Radicale will use instead of 'UTF-8' for responses "
+"to the client and/or to store data inside collections."
+msgstr "Mude aqui a codificação que o Radicale usará em vez de 'UTF-8' para respostas a clientes ou para armazenar dados dentro das coleções."
+
+msgid "Ciphers"
+msgstr "Cifras"
+
+msgid "Console Log level"
+msgstr "Nível de detalhamento dos registros (log)"
+
+msgid "Control the access to data collections."
+msgstr "Controlar o acesso às coleções de dados."
+
+#, fuzzy
+msgid "Critical"
+msgstr "Crítico"
+
+msgid ""
+"Cross-origin resource sharing (CORS) is a mechanism that allows restricted "
+"resources (e.g. fonts, JavaScript, etc.) on a web page to be requested from "
+"another domain outside the domain from which the resource originated."
+msgstr "O compartilhamento de recursos de origem cruzada (CORS) é um mecanismo que permite que os recursos de acesso restrito (por exemplo, fontes, JavaScript, etc.) em uma página web ser solicitado de outro domínio fora do domínio a partir do qual o recurso foi originado."
+
+msgid "Custom"
+msgstr "Personalizadas"
+
+msgid "Database"
+msgstr "Banco de Dados"
+
+#, fuzzy
+msgid "Debug"
+msgstr "Depuração"
+
+msgid "Delay (in seconds) during system boot before Radicale start"
+msgstr "Atraso (em segundos) durante a inicialização do sistema antes do Radicale iniciar"
+
+#, fuzzy
+msgid "Directory"
+msgstr "Diretório"
+
+msgid "Directory not exists/found !"
+msgstr "O diretório não foi encontrado!"
+
+msgid "Directory required !"
+msgstr "O diretório é necessário!"
+
+msgid "Directory where the rotating log-files are stored"
+msgstr "O diretório onde os registros(log) rotativos são armazenados"
+
+msgid "During delay ifup-events are not monitored !"
+msgstr "Durante a espera, eventos ifup não serão monitorados!"
+
+msgid "Enable HTTPS"
+msgstr "Ativar HTTPS"
+
+msgid ""
+"Enable/Disable auto-start of Radicale on system start-up and interface events"
+msgstr "Ativar/Desativar iniciação automática do Radicale na iniciação do sistema e em eventos de interface"
+
+msgid "Encoding"
+msgstr "Codificação"
+
+msgid "Encoding for responding requests."
+msgstr "Codificação para responder pedidos."
+
+msgid "Encoding for storing local collections."
+msgstr "Codificação para armazenar coleções locais."
+
+msgid "Encryption method"
+msgstr "Método de criptografia"
+
+#, fuzzy
+msgid "Error"
+msgstr "Erro"
+
+msgid "File '%s' not found !"
+msgstr "Arquivo '%s' não encontrado!"
+
+msgid "File Log level"
+msgstr "Nível de detalhamento dos registos(log) em arquivos"
+
+msgid "File not found !"
+msgstr "Arquivo não encontrado!"
+
+msgid "File-system"
+msgstr "Sistema de arquivos"
+
+msgid ""
+"For example, for the 'user' key, '.+' means 'authenticated user' and '.*' "
+"means 'anybody' (including anonymous users)."
+msgstr "Por exemplo, para a chave 'user', '.+' Significa 'usuário autenticado' e '.*' Significa 'qualquer um' (incluindo usuários anônimos)."
+
+msgid "Full access for Owner only"
+msgstr "Acesso completo somente para o proprietário"
+
+msgid "Full access for authenticated Users"
+msgstr "Acesso completo para usuários autenticados"
+
+msgid "Full access for everybody (including anonymous)"
+msgstr "Acesso completo para todos (incluindo anônimo)"
+
+msgid "Full path and file name of certificate"
+msgstr "Caminho completo e nome do arquivo do certificado"
+
+msgid "Full path and file name of private key"
+msgstr "Caminho e arquivo nome completo da chave privada"
+
+#, fuzzy
+msgid "Info"
+msgstr "Informações"
+
+msgid "Keep in mind to use the correct hashing algorithm !"
+msgstr "Fique atento para usar o algoritmo de resumo digital(hash) correto!"
+
+msgid "Leading or ending slashes are trimmed from collection's path."
+msgstr "Barras inicias e finais serão removidas do caminho da coleção."
+
+msgid "Log-backup Count"
+msgstr "Contagem Registro(log) de Backup"
+
+msgid "Log-file Viewer"
+msgstr "Visualizador de Arquivo de Registros(log)"
+
+msgid "Log-file directory"
+msgstr "Diretório do arquivo de registros(log)"
+
+msgid "Log-file size"
+msgstr "Tamanho do arquivo de registros(log)"
+
+#, fuzzy
+msgid "Logging"
+msgstr "Registrando os eventos"
+
+msgid "Logon message"
+msgstr "Mensagem de entrada"
+
+msgid "Maximum size of each rotation log-file."
+msgstr "Tamanho máximo para a rotação do arquivo de registros(log)"
+
+msgid "Message displayed in the client when a password is needed."
+msgstr "Mensagem exibida para o cliente quando uma senha é necessária."
+
+#, fuzzy
+msgid "NOT installed"
+msgstr "NÃO instalado"
+
+#, fuzzy
+msgid "None"
+msgstr "Nada"
+
+msgid "Number of backup files of log to create."
+msgstr "Número de backups dos arquivos de registros(log) a serem criados."
+
+msgid "OPTIONAL: See python's ssl module for available ciphers"
+msgstr "Opcional: veja o módulo SSL do python para conhecer as cifras disponíveis"
+
+msgid "One or more missing/invalid fields on tab"
+msgstr "Um ou campos inválidos/ausentes na aba"
+
+msgid "Owner allow write, authenticated users allow read"
+msgstr "O proprietário pode escrever, os usuários autenticados podem ler"
+
+msgid "Path/File required !"
+msgstr "O caminho/arquivo é necessário!"
+
+msgid ""
+"Place here the 'user:password' pairs for your users which should have access "
+"to Radicale."
+msgstr "Coloque aqui os pares 'usuário:senha' para os seus usuários que devem ter acesso a Radicale."
+
+msgid "Please install current version !"
+msgstr "Por favor, instale a versão atual!"
+
+msgid "Please press [Reload] button below to reread the file."
+msgstr "Por favor, pressione o botão [Recarregar] abaixo para reler o arquivo."
+
+msgid "Please update to current version !"
+msgstr "Por favor, atualize para a versão atual!"
+
+msgid "Port numbers below 1024 (Privileged ports) are not supported"
+msgstr "Os porta abaixo de 1024 (portas privilegiadas) não são suportadas"
+
+msgid "Private key file"
+msgstr "Arquivo da chave privada"
+
+msgid "Radicale CalDAV/CardDAV Server"
+msgstr "Radicale Servidor CalDAV/CardDAV"
+
+msgid "Radicale uses '/etc/radicale/rights' as regexp-based file."
+msgstr "Radicale usa o '/etc/radicale/rights' como arquivo baseado em expressão regular."
+
+msgid "Radicale uses '/etc/radicale/users' as htpasswd file."
+msgstr "Radicale usa o '/etc/radicale/users' como o arquivo htpasswd."
+
+msgid "Read only!"
+msgstr "Somente leitura!"
+
+msgid "RegExp file"
+msgstr "Arquivo de expressões regulares"
+
+msgid "Reload"
+msgstr "Recarregar"
+
+msgid "Response Encoding"
+msgstr "Codificação da Resposta"
+
+msgid "Rights"
+msgstr "Direitos"
+
+msgid "Rights are based on a regexp-based file"
+msgstr "Os direitos são baseados em um arquivo baseado em expressões regulares"
+
+msgid "Rights backend"
+msgstr "Serviço de Direitos"
+
+msgid "SHA-1"
+msgstr "SHA-1"
+
+msgid "SSL Protocol"
+msgstr "Protocolo SSL"
+
+#, fuzzy
+msgid "Save"
+msgstr "Salvar"
+
+msgid "Section names are only used for naming the rule."
+msgstr "Os nomes das seção são usados ​​apenas para nomear a regra."
+
+#, fuzzy
+msgid "Server"
+msgstr "Servidor"
+
+msgid "Setting this parameter to '0' will disable rotation of log-file."
+msgstr "Definindo este parâmetro para '0' irá desativar a rotação dos arquivos de registros(log)."
+
+msgid "Software package '%s' is not installed."
+msgstr "O pacote de software '%s' não está instalado."
+
+msgid "Software package '%s' is outdated."
+msgstr "O pacote '%' está desatualizado."
+
+#, fuzzy
+msgid "Software update required"
+msgstr "A atualização do software é necessária"
+
+#, fuzzy
+msgid "Start"
+msgstr "Iniciar"
+
+#, fuzzy
+msgid "Start / Stop"
+msgstr "Iniciar / Parar"
+
+msgid "Start/Stop Radicale server"
+msgstr "Iniciar/Parar o servidor Radicale"
+
+msgid "Storage"
+msgstr "Armazenamento"
+
+msgid "Storage Encoding"
+msgstr "Codificação do Armazenamento"
+
+msgid "Storage backend"
+msgstr "Serviço de armazenamento"
+
+msgid "Syslog Log level"
+msgstr "Nível de detalhamento do serviço de registro (syslog)"
+
+#, fuzzy
+msgid "System"
+msgstr "Sistema"
+
+msgid ""
+"The Radicale Project is a complete CalDAV (calendar) and CardDAV (contact) "
+"server solution."
+msgstr "O Projeto Radicale é uma solução completa de CalDAV (agenda) e CardDAV (contatos)."
+
+msgid ""
+"They can be viewed and edited by calendar and contact clients on mobile "
+"phones or computers."
+msgstr "Eles podem ser visualizados e editados pelos clientes de agenda e de contatos em telefones celulares ou computadores."
+
+msgid "To edit the file follow this link!"
+msgstr "Para editar o arquivo, siga este link!"
+
+msgid "To view latest log file follow this link!"
+msgstr "Para visualizar mais recente arquivo de registros(log), siga este link!"
+
+msgid "Value is not a number"
+msgstr "O valor não é um número"
+
+msgid "Value is not an Integer >= 0 !"
+msgstr "O valor não é um número natural (>=0)!"
+
+msgid "Value not between 0 and 300"
+msgstr "Valor não está entre 0 e 300"
+
+msgid "Value required ! Integer >= 0 !"
+msgstr "O valor é necessário! Número natural (>=0)!"
+
+#, fuzzy
+msgid "Version"
+msgstr "Versão"
+
+#, fuzzy
+msgid "Version Information"
+msgstr "Informação da Versão"
+
+msgid ""
+"WARNING: Only 'File-system' is documented and tested by Radicale development"
+msgstr "AVISO: Apenas 'Sistema de Arquivos "está documentado e testado pelo desenvolvimento do Radicale"
+
+#, fuzzy
+msgid "Warning"
+msgstr "Alerta"
+
+msgid ""
+"You can also get groups from the user regex in the collection with {0}, {1}, "
+"etc."
+msgstr "Você também pode obter grupos a partir da expressão regular do usuário na coleção com {0}, {1} , etc."
+
+msgid ""
+"You can use Python's ConfigParser interpolation values %(login)s and "
+"%(path)s."
+msgstr "Você pode usar a interpolação de valores %(login)s e %(path)s do ConfigParser do Python."
+
+msgid "crypt"
+msgstr "cifrar"
+
+msgid "custom"
+msgstr "personalizado"
+
+msgid "htpasswd file"
+msgstr "arquivo htpasswd"
+
+#, fuzzy
+msgid "installed"
+msgstr "instalado"
+
+msgid "no valid path given!"
+msgstr "Nenhum caminho válido foi informado!"
+
+#, fuzzy
+msgid "or higher"
+msgstr "ou maior"
+
+msgid "plain"
+msgstr "plano"
+
+#, fuzzy
+msgid "required"
+msgstr "necessário"
+
+msgid "salted SHA-1"
+msgstr "SHA-1 com salto"
+
diff --git a/applications/luci-app-shadowsocks-libev/po/pt-br/shadowsocks-libev.po b/applications/luci-app-shadowsocks-libev/po/pt-br/shadowsocks-libev.po
new file mode 100644 (file)
index 0000000..f2b18e3
--- /dev/null
@@ -0,0 +1,97 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Access Control"
+msgstr "Controle de Acesso"
+
+msgid "Allow all except listed"
+msgstr "Permitir todos, exceto os listados"
+
+msgid "Allow listed only"
+msgstr "Permitir somente os listados"
+
+msgid "Bypassed IP"
+msgstr "Endereços IP Ignorados"
+
+msgid "Connection Timeout"
+msgstr "Tempo limite de conexão"
+
+msgid "Custom"
+msgstr "Personalizado"
+
+msgid "Disabled"
+msgstr "Desabilitado"
+
+msgid "Enable"
+msgstr "Ativar"
+
+msgid "Enabled"
+msgstr "Ativado"
+
+msgid "Encrypt Method"
+msgstr "Método de Cifragem"
+
+msgid "Forwarded IP"
+msgstr "Endereço IP Encaminhado"
+
+msgid "Forwarding Tunnel"
+msgstr "Tunel para Encaminhamento"
+
+msgid "Global Setting"
+msgstr "Opções Globais"
+
+msgid "Ignore List"
+msgstr "Lista de Ignorados"
+
+msgid "LAN"
+msgstr "LAN"
+
+msgid "LAN IP List"
+msgstr "Lista de endereços IP da LAN"
+
+msgid "Local Port"
+msgstr "Porta Local"
+
+msgid "Password"
+msgstr "Senha"
+
+msgid "Relay Mode"
+msgstr "Modo de Retransmissor"
+
+msgid "Server Address"
+msgstr "Endereço do Servidor"
+
+msgid "Server Port"
+msgstr "Porta do servidor"
+
+msgid "ShadowSocks-libev"
+msgstr "ShadowSocks-libev"
+
+msgid "ShadowSocks-libev is not running"
+msgstr "O serviço ShadowSocks-libev está parado"
+
+msgid "ShadowSocks-libev is running"
+msgstr "O serviço ShadowSocks-libev está em execução."
+
+msgid "UDP Forward"
+msgstr "Encaminhamento UDP"
+
+msgid "UDP Local Port"
+msgstr "Porta Local UDP"
+
+msgid "UDP Relay"
+msgstr "Retransmissão UDP"
+
+msgid "WAN"
+msgstr "WAN"
diff --git a/applications/luci-app-shairplay/po/pt-br/shairplay.po b/applications/luci-app-shairplay/po/pt-br/shairplay.po
new file mode 100644 (file)
index 0000000..c7d0ab1
--- /dev/null
@@ -0,0 +1,54 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+"X-Poedit-Bookmarks: -1,5,-1,-1,-1,-1,-1,-1,-1,-1\n"
+
+msgid "AO Device ID"
+msgstr "Identificador do dispositivo AO"
+
+msgid "AO Device Name"
+msgstr "Nome do dispositivo AO"
+
+msgid "AO Driver"
+msgstr "Driver do AO"
+
+msgid "Airport Name"
+msgstr "Nome do Airport"
+
+msgid "Default"
+msgstr "Padrão"
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid "HW Address"
+msgstr "Endereço de Hardware"
+
+msgid "Password"
+msgstr "Senha"
+
+msgid "Port"
+msgstr "Porta"
+
+msgid "Respawn"
+msgstr "Redisparar"
+
+msgid "Shairplay"
+msgstr "Shairplay"
+
+msgid ""
+"Shairplay is a simple AirPlay server implementation, here you can configure "
+"the settings."
+msgstr ""
+"Shairplay é uma implementação simples de um servidor AirPlay. Aqui você pode "
+"configurá-lo."
diff --git a/applications/luci-app-simple-adblock/Makefile b/applications/luci-app-simple-adblock/Makefile
new file mode 100644 (file)
index 0000000..d7be685
--- /dev/null
@@ -0,0 +1,16 @@
+# Copyright (c) 2017 Stan Grishin (stangri@melmac.net)
+# This is free software, licensed under the GNU General Public License v3.
+
+include $(TOPDIR)/rules.mk
+
+PKG_LICENSE:=GPL-3.0+
+PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
+
+LUCI_TITLE:=Simple Adblock Web UI
+LUCI_DEPENDS:=+simple-adblock
+LUCI_PKGARCH:=all
+PKG_RELEASE:=2
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-simple-adblock/luasrc/controller/simpleadblock.lua b/applications/luci-app-simple-adblock/luasrc/controller/simpleadblock.lua
new file mode 100644 (file)
index 0000000..46125b3
--- /dev/null
@@ -0,0 +1,7 @@
+module("luci.controller.simpleadblock", package.seeall)
+function index()
+       if not nixio.fs.access("/etc/config/simple-adblock") then
+               return
+       end
+       entry({"admin", "services", "simpleadblock"}, cbi("simpleadblock"), _("Simple AdBlock"))
+end
diff --git a/applications/luci-app-simple-adblock/luasrc/model/cbi/simpleadblock.lua b/applications/luci-app-simple-adblock/luasrc/model/cbi/simpleadblock.lua
new file mode 100644 (file)
index 0000000..214f298
--- /dev/null
@@ -0,0 +1,79 @@
+m = Map("simple-adblock", translate("Simple AdBlock Settings"))
+s = m:section(NamedSection, "config", "simple-adblock")
+
+-- General options
+e = s:option(Flag, "enabled", translate("Enable/start service"))
+e.rmempty  = false
+
+function e.cfgvalue(self, section)
+       return self.map:get(section, "enabled") == "1" and luci.sys.init.enabled("simple-adblock") and self.enabled or self.disabled
+end
+
+function e.write(self, section, value)
+       if value == "1" then
+               luci.sys.call("/etc/init.d/simple-adblock enable >/dev/null")
+               luci.sys.call("/etc/init.d/simple-adblock start >/dev/null")
+       else
+               luci.sys.call("/etc/init.d/simple-adblock stop >/dev/null")
+       end
+       return Flag.write(self, section, value)
+end
+
+o2 = s:option(ListValue, "verbosity", translate("Output Verbosity Setting"),translate("Controls system log and console output verbosity"))
+o2:value("0", translate("Suppress output"))
+o2:value("1", translate("Some output"))
+o2:value("2", translate("Verbose output"))
+o2.rmempty = false
+o2.default = 2
+
+o3 = s:option(ListValue, "force_dns", translate("Force Router DNS"), translate("Forces Router DNS use on local devices, also known as DNS Hijacking"))
+o3:value("0", translate("Let local devices use their own DNS servers if set"))
+o3:value("1", translate("Force Router DNS server to all local devices"))
+o3.rmempty = false
+o3.default = 1
+
+
+local sysfs_path = "/sys/class/leds/"
+local leds = {}
+if nixio.fs.access(sysfs_path) then
+       leds = nixio.util.consume((nixio.fs.dir(sysfs_path)))
+end
+if #leds ~= 0 then
+       o3 = s:option(Value, "led", translate("LED to indicate status"), translate("Pick the LED not already used in ")
+               .. [[<a href="]] .. luci.dispatcher.build_url("admin/system/leds") .. [[">]]
+               .. translate("System LED Configuration") .. [[</a>]])
+       o3.rmempty = true
+       o3:value("", translate("none"))
+       for k, v in ipairs(leds) do
+               o3:value(v)
+       end
+end
+
+
+s2 = m:section(NamedSection, "config", "simple-adblock")
+-- Whitelisted Domains
+d1 = s2:option(DynamicList, "whitelist_domain", translate("Whitelisted Domains"), translate("Individual domains to be whitelisted"))
+d1.addremove = false
+d1.optional = false
+
+-- Blacklisted Domains
+d3 = s2:option(DynamicList, "blacklist_domain", translate("Blacklisted Domains"), translate("Individual domains to be blacklisted"))
+d3.addremove = false
+d3.optional = false
+
+-- Whitelisted Domains URLs
+d2 = s2:option(DynamicList, "whitelist_domains_url", translate("Whitelisted Domain URLs"), translate("URLs to lists of domains to be whitelisted"))
+d2.addremove = false
+d2.optional = false
+
+-- Blacklisted Domains URLs
+d4 = s2:option(DynamicList, "blacklist_domains_url", translate("Blacklisted Domain URLs"), translate("URLs to lists of domains to be blacklisted"))
+d4.addremove = false
+d4.optional = false
+
+-- Blacklisted Hosts URLs
+d5 = s2:option(DynamicList, "blacklist_hosts_url", translate("Blacklisted Hosts URLs"), translate("URLs to lists of hosts to be blacklisted"))
+d5.addremove = false
+d5.optional = false
+
+return m
diff --git a/applications/luci-app-simple-adblock/po/templates/simple-adblock.pot b/applications/luci-app-simple-adblock/po/templates/simple-adblock.pot
new file mode 100644 (file)
index 0000000..4cfff96
--- /dev/null
@@ -0,0 +1,80 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Blacklisted Domain URLs"
+msgstr ""
+
+msgid "Blacklisted Domains"
+msgstr ""
+
+msgid "Blacklisted Hosts URLs"
+msgstr ""
+
+msgid "Controls system log and console output verbosity"
+msgstr ""
+
+msgid "Enable/start service"
+msgstr ""
+
+msgid "Force Router DNS"
+msgstr ""
+
+msgid "Force Router DNS server to all local devices"
+msgstr ""
+
+msgid "Forces Router DNS use on local devices, also known as DNS Hijacking"
+msgstr ""
+
+msgid "Individual domains to be blacklisted"
+msgstr ""
+
+msgid "Individual domains to be whitelisted"
+msgstr ""
+
+msgid "LED to indicate status"
+msgstr ""
+
+msgid "Let local devices use their own DNS servers if set"
+msgstr ""
+
+msgid "Output Verbosity Setting"
+msgstr ""
+
+msgid "Pick the LED not already used in"
+msgstr ""
+
+msgid "Simple AdBlock"
+msgstr ""
+
+msgid "Simple AdBlock Settings"
+msgstr ""
+
+msgid "Some output"
+msgstr ""
+
+msgid "Suppress output"
+msgstr ""
+
+msgid "System LED Configuration"
+msgstr ""
+
+msgid "URLs to lists of domains to be blacklisted"
+msgstr ""
+
+msgid "URLs to lists of domains to be whitelisted"
+msgstr ""
+
+msgid "URLs to lists of hosts to be blacklisted"
+msgstr ""
+
+msgid "Verbose output"
+msgstr ""
+
+msgid "Whitelisted Domain URLs"
+msgstr ""
+
+msgid "Whitelisted Domains"
+msgstr ""
+
+msgid "none"
+msgstr ""
diff --git a/applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock b/applications/luci-app-simple-adblock/root/etc/uci-defaults/40_luci-simple-adblock
new file mode 100644 (file)
index 0000000..3b7137e
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+uci -q batch <<-EOF >/dev/null
+       delete ucitrack.@simple-adblock[-1]
+       add ucitrack simple-adblock
+       set ucitrack.@simple-adblock[-1].init=simple-adblock
+       commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-squid/Makefile b/applications/luci-app-squid/Makefile
new file mode 100644 (file)
index 0000000..82802c0
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=Squid LuCI Interface
+LUCI_DEPENDS:=+luci-mod-admin-full +squid
+
+PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
+PKG_LICENSE:=Apache-2.0
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-squid/luasrc/controller/squid.lua b/applications/luci-app-squid/luasrc/controller/squid.lua
new file mode 100644 (file)
index 0000000..09946a1
--- /dev/null
@@ -0,0 +1,21 @@
+--[[
+
+LuCI Squid module
+
+Copyright (C) 2015, 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
+
+Author: Marko Ratkaj <marko.ratkaj@sartura.hr>
+
+]]--
+
+module("luci.controller.squid", package.seeall)
+
+function index()
+       entry({"admin", "services", "squid"}, cbi("squid"), _("Squid"))
+end
diff --git a/applications/luci-app-squid/luasrc/model/cbi/squid.lua b/applications/luci-app-squid/luasrc/model/cbi/squid.lua
new file mode 100644 (file)
index 0000000..0ac554a
--- /dev/null
@@ -0,0 +1,67 @@
+--[[
+
+LuCI Squid module
+
+Copyright (C) 2015, 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
+
+Author: Marko Ratkaj <marko.ratkaj@sartura.hr>
+
+]]--
+
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
+require "ubus"
+
+m = Map("squid", translate("Squid"))
+m.on_after_commit = function() luci.sys.call("/etc/init.d/squid restart") end
+
+s = m:section(TypedSection, "squid")
+s.anonymous = true
+s.addremove = false
+
+s:tab("general", translate("General Settings"))
+
+http_port = s:taboption("general", Value, "http_port", translate("Port"))
+http_port.datatype = "portrange"
+http_port.placeholder = "0-65535"
+
+visible_hostname = s:taboption("general", Value, "visible_hostname", translate("Visible Hostname"))
+visible_hostname.datatype="string"
+visible_hostname.placeholder = "OpenWrt"
+
+coredump_dir = s:taboption("general", Value, "coredump_dir", translate("Coredump files directory"))
+coredump_dir.datatype="string"
+coredump_dir.placeholder = "/tmp/squid"
+
+s:tab("advanced", translate("Advanced Settings"))
+
+squid_config_file = s:taboption("advanced", TextValue, "_data", "")
+squid_config_file.wrap = "off"
+squid_config_file.rows = 25
+squid_config_file.rmempty = false
+
+function squid_config_file.cfgvalue()
+       local uci = require "luci.model.uci".cursor_state()
+       local file = uci:get("squid", "squid", "config_file")
+       if file then
+               return fs.readfile(file) or ""
+       else
+               return ""
+       end
+end
+
+function squid_config_file.write(self, section, value)
+    if value then
+               local uci = require "luci.model.uci".cursor_state()
+               local file = uci:get("squid", "squid", "config_file")
+       fs.writefile(file, value:gsub("\r\n", "\n"))
+    end
+end
+
+return m
index f31fb20..fa00bbb 100644 (file)
@@ -19,7 +19,12 @@ enable = s:option( Flag, "enable", translate("Enable this plugin") )
 enable.default = 1
 
 -- collectd_rrdtool.datadir (DataDir)
-datadir = s:option( Value, "DataDir", translate("Storage directory") )
+datadir = s:option( Value, "DataDir",
+       translate("Storage directory"),
+       translate("Note: as pages are rendered by user 'nobody', the *.rrd files, " ..
+                 "the storage directory and all its parent directories need " ..
+                 "to be world readable."
+       ))
 datadir.default  = "/tmp"
 datadir.rmempty  = true
 datadir.optional = true
index ebc78ba..85a20d9 100644 (file)
@@ -29,9 +29,7 @@
 
 <div style="text-align: center">
        <% for i, img in ipairs(images) do %>
-               <% if is_index then %><a href="<%=pcdata(images[img])%>"><% end %>
                <img src="<%=REQUEST_URI%>?img=<%=img%>&#38;host=<%=current_host%>" />
-               <% if is_index then %></a><% end %>
                <br />
        <% end %>
 </div>
index fd3b6d1..b6a98a0 100644 (file)
@@ -331,6 +331,11 @@ msgstr "Connectors de xarxa"
 msgid "Network protocol"
 msgstr "Protocol de xarxa"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Número de fils de recol·lecció de dades"
 
index 9678726..b4a936a 100644 (file)
@@ -326,6 +326,11 @@ msgstr "Síťové pluginy"
 msgid "Network protocol"
 msgstr "Síťový protokol"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Počet vláken pro sběr dat"
 
index 2923f05..ef29176 100644 (file)
@@ -333,6 +333,11 @@ msgstr "Netzwerkplugins"
 msgid "Network protocol"
 msgstr "Netzwerkprotokoll"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Anzahl paralleler Sammelprozesse"
 
index 379d443..9b530c0 100644 (file)
@@ -324,6 +324,11 @@ msgstr "Πρόσθετα δικτύου"
 msgid "Network protocol"
 msgstr ""
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Αριθμός νημάτων για τη συλλογή δεδομένων"
 
index aa956de..3e9c829 100644 (file)
@@ -329,6 +329,11 @@ msgstr "Network plugins"
 msgid "Network protocol"
 msgstr "Network protocol"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Number of threads for data collection"
 
index ef186b1..2db483c 100644 (file)
@@ -328,6 +328,11 @@ msgstr "Plugins de red"
 msgid "Network protocol"
 msgstr "Protocolo de red"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Número de hilos para recolección de datos"
 
index cacc64a..d4190d3 100644 (file)
@@ -330,6 +330,11 @@ msgstr "Greffons liés au réseau"
 msgid "Network protocol"
 msgstr "Protocole réseau"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Nombre de fils pour la récupération des données"
 
index 0f876e6..e27d219 100644 (file)
@@ -319,6 +319,11 @@ msgstr ""
 msgid "Network protocol"
 msgstr ""
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr ""
 
index 78dfd60..4767442 100644 (file)
@@ -331,6 +331,11 @@ msgstr "Hálózati bővítmények"
 msgid "Network protocol"
 msgstr "Hálózati protokoll"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Az adatgyűjtő szálak száma"
 
index eb1a3cb..3c50ac3 100644 (file)
@@ -329,6 +329,11 @@ msgstr ""
 msgid "Network protocol"
 msgstr ""
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr ""
 
index 218712b..2a3ffe5 100644 (file)
@@ -3,7 +3,7 @@ msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2016-12-23 15:07+0900\n"
+"PO-Revision-Date: 2017-01-24 15:08+0900\n"
 "Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
 "Language: ja\n"
 "MIME-Version: 1.0\n"
@@ -216,7 +216,7 @@ msgid "IRQ Plugin Configuration"
 msgstr "IRQ プラグイン設定"
 
 msgid "Ignore source addresses"
-msgstr ""
+msgstr "無視するアクセス元アドレス"
 
 msgid "Incoming interface"
 msgstr "着信インターフェース"
@@ -331,6 +331,14 @@ msgstr "ネットワークプラグイン"
 msgid "Network protocol"
 msgstr "ネットワークプロトコル"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+"注意: ページは 'nobody' ユーザーとしてレンダリングされます。*.rrd ファイルと"
+"保存先ディレクトリ、およびそのペアレントディレクトリは、worldアクセス権が "
+"\"読み取り可能\" に設定されている必要があります。"
+
 msgid "Number of threads for data collection"
 msgstr "データ収集用スレッド数"
 
@@ -377,7 +385,7 @@ msgid "Processes Plugin Configuration"
 msgstr "プロセス プラグイン設定"
 
 msgid "Processes to monitor separated by space"
-msgstr ""
+msgstr "スペースで区切られた、モニターするプロセスです。"
 
 msgid "Processor"
 msgstr "プロセッサー"
@@ -628,7 +636,7 @@ msgid ""
 "memory usage of selected processes."
 msgstr ""
 "プロセス プラグインは、選択されたプロセスのCPU時間やページフォルト、メモリー"
-"使ç\94¨ç\8e\87ã\81®ã\82\88ã\81\86ã\81ª情報を収集します。"
+"使ç\94¨ç\8e\87ã\81ªã\81©ã\81®情報を収集します。"
 
 msgid ""
 "The rrdtool plugin stores the collected data in rrd database files, the "
@@ -666,6 +674,8 @@ msgid ""
 "The tcpconns plugin collects informations about open tcp connections on "
 "selected ports."
 msgstr ""
+"TCP接続プラグインは、選択されたポートにおいてオープンなTCP接続についての情報"
+"を収集します。"
 
 msgid ""
 "The thermal plugin will monitor temperature of the system. Data is typically "
index a18826f..2a04776 100644 (file)
@@ -316,6 +316,11 @@ msgstr ""
 msgid "Network protocol"
 msgstr ""
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr ""
 
index 2072cbf..3e3a8e1 100644 (file)
@@ -318,6 +318,11 @@ msgstr "Nettverks plugin"
 msgid "Network protocol"
 msgstr "Nettverks protokoll"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Antall tråder for datainnsamling"
 
index ea8fc81..474b673 100644 (file)
@@ -332,6 +332,11 @@ msgstr "Wtyczki sieciowe"
 msgid "Network protocol"
 msgstr "Protokoły sieciowe"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Liczba wątków do zbierania danych"
 
index 3b3590f..864cb28 100644 (file)
@@ -1,17 +1,17 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2014-03-15 22:12+0200\n"
-"Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2017-02-22 18:27-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\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.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "Action (target)"
 msgstr "Ação (destino)"
@@ -29,7 +29,7 @@ msgid "Add notification command"
 msgstr "Adicionar o comando de notificação"
 
 msgid "Aggregate number of connected users"
-msgstr ""
+msgstr "Numero agregado de usuários conectados"
 
 msgid "Base Directory"
 msgstr "Diretório Base"
@@ -38,10 +38,10 @@ msgid "Basic monitoring"
 msgstr "Monitoramento básico"
 
 msgid "CPU Frequency"
-msgstr ""
+msgstr "Frequência da CPU"
 
 msgid "CPU Frequency Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin da Frequência da CPU"
 
 msgid "CPU Plugin Configuration"
 msgstr "Configuração do plugin CPU"
@@ -134,16 +134,16 @@ msgid "Email"
 msgstr "Email"
 
 msgid "Empty value = monitor all"
-msgstr ""
+msgstr "Valor vazio = monitore todos"
 
 msgid "Enable this plugin"
 msgstr "Habilitar este plugin"
 
 msgid "Entropy"
-msgstr ""
+msgstr "Entropia"
 
 msgid "Entropy Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin de Entropia"
 
 msgid "Exec"
 msgstr "Exec"
@@ -165,13 +165,13 @@ msgstr ""
 "Encaminhamento entre o endereço de escuta e os endereços dos servidores"
 
 msgid "Gather compression statistics"
-msgstr ""
+msgstr "Obter estatísticas sobre a compressão"
 
 msgid "General plugins"
-msgstr ""
+msgstr "Plugins Gerais"
 
 msgid "Generate a separate graph for each logged user"
-msgstr ""
+msgstr "Gerar um gráfico separado para cada usuário conectado"
 
 msgid "Graphs"
 msgstr "Gráficos"
@@ -204,6 +204,7 @@ msgstr ""
 
 msgid "Hold Ctrl to select multiple items or to deselect entries."
 msgstr ""
+"Segure o Ctrl para selecionar múltiplos itens ou para retirar entradas. "
 
 msgid "Host"
 msgstr "Equipamento"
@@ -259,6 +260,8 @@ msgid ""
 "Max values for a period can be used instead of averages when not using 'only "
 "average RRAs'"
 msgstr ""
+"Valores máximos para um período podem ser usados em vez de médias quando não "
+"estiver usando 'somente RRAs de médias'"
 
 msgid "Maximum allowed connections"
 msgstr "Máximo de conexões permitidas"
@@ -276,10 +279,10 @@ msgid "Monitor all local listen ports"
 msgstr "Monitorar todas as portas locais"
 
 msgid "Monitor all sensors"
-msgstr ""
+msgstr "Monitorar todas os sensores"
 
 msgid "Monitor device(s) / thermal zone(s)"
-msgstr ""
+msgstr "Dispositivo(s) de monitoramento / zona(s) térmica(s)"
 
 msgid "Monitor devices"
 msgstr "Monitorar dispositivos"
@@ -332,6 +335,14 @@ msgstr "Plugins de rede"
 msgid "Network protocol"
 msgstr "Protocolo de rede"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+"Nota: como as páginas são renderizadas pelo usuário 'nobody', os arquivos * ."
+"rrd, o diretório de armazenamento e todos os seus diretórios superiores "
+"precisam ser legíveis a todos."
+
 msgid "Number of threads for data collection"
 msgstr "Número de threads para o coletor de dados"
 
@@ -345,13 +356,13 @@ msgid "Only create average RRAs"
 msgstr "Somente criar RRAs de média"
 
 msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
 
 msgid "OpenVPN Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin do OpenVPN"
 
 msgid "OpenVPN status files"
-msgstr ""
+msgstr "Arquivos de estado do OpenVPN"
 
 msgid "Options"
 msgstr "Opções"
@@ -411,13 +422,13 @@ msgid "Seconds"
 msgstr "Segundos"
 
 msgid "Sensor list"
-msgstr ""
+msgstr "Lista de sensores"
 
 msgid "Sensors"
-msgstr ""
+msgstr "Sensores"
 
 msgid "Sensors Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin de Sensores"
 
 msgid "Server host"
 msgstr "Endereço do servidor"
@@ -426,13 +437,13 @@ msgid "Server port"
 msgstr "Porta do servidor"
 
 msgid "Setup"
-msgstr ""
+msgstr "Configuração"
 
 msgid "Shaping class monitoring"
 msgstr "Monitoramento das Classes de Shaping"
 
 msgid "Show max values instead of averages"
-msgstr ""
+msgstr "Mostrar valores máximos em vez de médias"
 
 msgid "Socket file"
 msgstr "Arquivo do socket"
@@ -456,10 +467,10 @@ msgid "Specifies what information to collect about the global topology."
 msgstr "Especifica quais informações serão coletadas sobre a topologia global."
 
 msgid "Splash Leases"
-msgstr ""
+msgstr "Concessões do Splash"
 
 msgid "Splash Leases Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin das Concessões do Splash"
 
 msgid "Statistics"
 msgstr "Estatística"
@@ -508,6 +519,7 @@ msgid ""
 "The OpenVPN plugin gathers information about the current vpn connection "
 "status."
 msgstr ""
+"O plugin OpenVPN reúne informações sobre o status atual da conexão VPN."
 
 msgid ""
 "The conntrack plugin collects statistics about the number of tracked "
@@ -560,7 +572,7 @@ msgstr ""
 "Plugin::Collectd mas pode ser utilizado de outras maneiras também."
 
 msgid "The entropy plugin collects statistics about the available entropy."
-msgstr ""
+msgstr "O plugin de entropia coleta estatísticas sobre a entropia disponível."
 
 msgid ""
 "The exec plugin starts external commands to read values from or to notify "
@@ -651,17 +663,24 @@ msgid ""
 "The sensors plugin uses the Linux Sensors framework to gather environmental "
 "statistics."
 msgstr ""
+"O plugin de sensores usa a estrutura de sensores do Linux para coletar "
+"estatísticas ambientais."
 
 msgid ""
 "The splash leases plugin uses libuci to collect statistics about splash "
 "leases."
 msgstr ""
+"O plug-in de concessões splash usa o libuci para coletar estatísticas sobre "
+"concessões de splash."
 
 msgid ""
 "The statistics package uses <a href=\"https://collectd.org/\">Collectd</a> "
 "to gather data and <a href=\"http://oss.oetiker.ch/rrdtool/\">RRDtool</a> to "
 "render diagram images."
 msgstr ""
+"O pacote de estatísticas usa <a href=\"https://collectd.org/\"> Collectd </"
+"a> para coletar dados e <a href=\"http://oss.oetiker.ch/rrdtool/\">RRDtool</"
+"a>  para desenhar os gráficos."
 
 msgid ""
 "The tcpconns plugin collects informations about open tcp connections on "
@@ -675,6 +694,9 @@ msgid ""
 "read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
 "read, e.g. thermal_zone1 )"
 msgstr ""
+"O plugin térmico monitorará a temperatura do sistema. Os dados são "
+"tipicamente lidos de /sys/class/thermal/*/temp ('*' indica o dispositivo "
+"térmico a ser lido, ex:, thermal_zone1)"
 
 msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
@@ -685,15 +707,19 @@ msgstr ""
 
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
+"O plugin de tempo de atividade coleta estatísticas sobre o tempo de "
+"atividade do sistema."
 
 msgid "Thermal"
-msgstr ""
+msgstr "Térmico"
 
 msgid "Thermal Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin Térmico"
 
 msgid "This plugin collects statistics about the processor frequency scaling."
 msgstr ""
+"Este plugin coleta as estatísticas sobre o escalonamento da frequência do "
+"processador."
 
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
@@ -727,13 +753,13 @@ msgid "Unixsock Plugin Configuration"
 msgstr "Configuração do plugin Unixsock"
 
 msgid "Uptime"
-msgstr ""
+msgstr "Tempo de atividade"
 
 msgid "Uptime Plugin Configuration"
-msgstr ""
+msgstr "Configuração do Plugin de Tempo de Atividade"
 
 msgid "Use improved naming schema"
-msgstr ""
+msgstr "Use um esquema de nomeação melhorado"
 
 msgid "Used PID file"
 msgstr "Arquivo PID usado"
@@ -753,6 +779,8 @@ msgstr "Configuração do Plugin iwinfo da Rede Sem Fio (Wireless)"
 msgid ""
 "You can install additional collectd-mod-* plugins to enable more statistics."
 msgstr ""
+"Você pode instalar plugins adicionais (collectd-mod-*) para habilitar mais "
+"estatísticas."
 
 msgid "e.g. br-ff"
 msgstr "ex: br-ff"
index f30bf90..1913d77 100644 (file)
@@ -331,6 +331,11 @@ msgstr "Plugins de rede"
 msgid "Network protocol"
 msgstr "Protocolo de rede"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Número de threads para o coletor de dados"
 
index 0c52e32..008cc88 100644 (file)
@@ -323,6 +323,11 @@ msgstr "Pluginuri de retea"
 msgid "Network protocol"
 msgstr ""
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Numarul de threaduri pentru colectarea datelor"
 
index d1dddbb..cb14847 100644 (file)
@@ -333,6 +333,11 @@ msgstr "Сетевые модули"
 msgid "Network protocol"
 msgstr "Сетевой протокол"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Количество потоков сбора данных"
 
index 6b0caa6..1d1f013 100644 (file)
@@ -314,6 +314,11 @@ msgstr ""
 msgid "Network protocol"
 msgstr ""
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr ""
 
index 035d940..b6d562b 100644 (file)
@@ -319,6 +319,11 @@ msgstr "Insticksprogram för nätverket"
 msgid "Network protocol"
 msgstr "Nätverksprotokoll"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Antalet trådar för insamling av data"
 
index 8f6fecc..1b83826 100644 (file)
@@ -307,6 +307,11 @@ msgstr ""
 msgid "Network protocol"
 msgstr ""
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr ""
 
index 0f0bc45..a30b0b9 100644 (file)
@@ -315,6 +315,11 @@ msgstr ""
 msgid "Network protocol"
 msgstr ""
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr ""
 
index ca82efe..13e52d9 100644 (file)
@@ -320,6 +320,11 @@ msgstr ""
 msgid "Network protocol"
 msgstr "Мережевий протокол"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr ""
 
index f6d54bc..a5fd33d 100644 (file)
@@ -330,6 +330,11 @@ msgstr "Network plugins"
 msgid "Network protocol"
 msgstr "Network protocol"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "Số lượng các chủ đề để thu thập dữ liệu"
 
index 0c8775f..a55f73f 100644 (file)
@@ -325,6 +325,11 @@ msgstr "Network插件"
 msgid "Network protocol"
 msgstr "Network协议"
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr "收集程序使用线程数"
 
index 404092b..f9e72b5 100644 (file)
@@ -313,6 +313,11 @@ msgstr ""
 msgid "Network protocol"
 msgstr ""
 
+msgid ""
+"Note: as pages are rendered by user 'nobody', the *.rrd files, the storage "
+"directory and all its parent directories need to be world readable."
+msgstr ""
+
 msgid "Number of threads for data collection"
 msgstr ""
 
index df9af15..c4542bb 100755 (executable)
@@ -349,12 +349,6 @@ plugins = {
                { }
        },
 
-       madwifi = {
-               { "WatchSet" },
-               { },
-               { "Interfaces", "WatchAdds" }
-       },
-
        memory = { 
                { },
                { },
diff --git a/applications/luci-app-travelmate/po/pt-br/travelmate.po b/applications/luci-app-travelmate/po/pt-br/travelmate.po
new file mode 100644 (file)
index 0000000..bcfc1cf
--- /dev/null
@@ -0,0 +1,78 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid ""
+"Brief advice: Create a wwan interface, configure it to use dhcp and add it "
+"to the wan zone in firewall. Create the wifi interfaces to be used ('client' "
+"mode, assigned to wwan network, left as disabled). Travelmate will try to "
+"connect to the known wifi client interfaces in the defined order."
+msgstr ""
+"Breve conselho: Crie uma interface wwan, configure-a para usar DHCP e "
+"adicione-a à zona wan no firewall. Crie as interfaces wifi a serem usadas "
+"(modo 'cliente', atribuído à rede wwan, deixado como desativado). O "
+"Travelmate tentará se conectar às interfaces de cliente wifi conhecidas na "
+"ordem definida."
+
+msgid ""
+"Configuration of the Travelmate package to enable travel router "
+"functionality."
+msgstr ""
+"Configuração do pacote Travelmate para permitir a funcionalidade de roteador "
+"de viagem."
+
+msgid "Debug logging"
+msgstr "Registros(log) para depuração"
+
+msgid "Default 20, range 10-60"
+msgstr "Padrão 20, faixa 10-60"
+
+msgid "Default 3, range 1-10"
+msgstr "Padrão 3, faixa 1-10"
+
+msgid "Disable this if you want to use iwinfo instead of iw"
+msgstr "Desabilite isto se você quer usar o iwinfo ao invés do iw"
+
+msgid "Enable Travelmate"
+msgstr "Habilitar o Travelmate"
+
+msgid "Extra options"
+msgstr "Opções adicionais"
+
+msgid "Global options"
+msgstr "Opções Globais"
+
+msgid "Link to detailed advice"
+msgstr "Endereço para conselhos detalhados"
+
+msgid "Max. number of connection retries to an uplink"
+msgstr "Máximo número de tentativas de conexão para um enlace"
+
+msgid "Max. timeout in seconds for wlan interface reload"
+msgstr "Tempo limite máximo em segundos para recarregar a interface wlan"
+
+msgid "Restrict reload trigger to certain interface(s)"
+msgstr "Restringir o gatilho de recarga para somente alguma(s) interface(s)"
+
+msgid ""
+"Space separated list of wwan interfaces that trigger reload action. To "
+"disable reload trigger set it to 'false'. Default: empty"
+msgstr ""
+"Lista separada por espaços de interfaces wwan que acionam a ação de recarga. "
+"Para desabilitar o gatilho de recarga, defina-o como 'false'. Padrão: vazio"
+
+msgid "Travelmate"
+msgstr "Travelmate"
+
+msgid "Use iw for scanning"
+msgstr "Use o iw para escaneamento"
diff --git a/applications/luci-app-uhttpd/po/pt-br/uhttpd.po b/applications/luci-app-uhttpd/po/pt-br/uhttpd.po
new file mode 100644 (file)
index 0000000..af68b9e
--- /dev/null
@@ -0,0 +1,208 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid ""
+"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
+msgstr ""
+"(/old/path=/new/path) ou (just /old/path que se torna /cgi-prefix/old/path)"
+
+msgid "404 Error"
+msgstr "Erro 404"
+
+msgid "A lightweight single-threaded HTTP(S) server"
+msgstr "Um servidor HTTP(S) leve de únida thread."
+
+msgid "Advanced Settings"
+msgstr "Opções Avançadas"
+
+msgid "Aliases"
+msgstr "Pseudônimos (Aliases)"
+
+msgid "Base directory for files to be served"
+msgstr "Diretório Base para publicar arquivos"
+
+msgid "Bind to specific interface:port (by specifying interface address"
+msgstr ""
+"Escute em uma interface:porta específica (especificando o endereço da "
+"interface"
+
+msgid "CGI filetype handler"
+msgstr "Interpretador de tipo de arquivo CGI"
+
+msgid "CGI is disabled if not present."
+msgstr "O CGI estará desabilitado se não presente."
+
+msgid "Config file (e.g. for credentials for Basic Auth)"
+msgstr "Arquivo de configuração (ex: credenciais para autenticação básica)"
+
+msgid "Connection reuse"
+msgstr "Reutilizar conexão"
+
+msgid "Country"
+msgstr "País"
+
+msgid "Disable JSON-RPC authorization via ubus session API"
+msgstr "Desabilita a autorização JSON-RPC através da API de sessão ubus"
+
+msgid "Do not follow symlinks outside document root"
+msgstr "Não siga ligações simbólicas (symlinks) para fora do documento raiz"
+
+msgid "Do not generate directory listings."
+msgstr "Não gere listagens de diretórios"
+
+msgid "Document root"
+msgstr "Documento Raiz"
+
+msgid "E.g specify with index.html and index.php when using PHP"
+msgstr "Ex: use index.html e index.php quando usar PHP"
+
+msgid "Embedded Lua interpreter is disabled if not present."
+msgstr "O interpretador Lua embutido será desabilitado se não presente."
+
+msgid "Enable JSON-RPC Cross-Origin Resource Support"
+msgstr "Habilite o suporte para recursos JSON-RPC de origem cruzada"
+
+msgid "For settings primarily geared to serving more than the web UI"
+msgstr "Para ajustes envolvidos com mais do que prover a interface web"
+
+msgid "Full Web Server Settings"
+msgstr "Configurações Completas do Servidor Web"
+
+msgid "Full real path to handler for Lua scripts"
+msgstr "Caminho completo para o interpretador de scripts Lua"
+
+msgid "General Settings"
+msgstr "Configurações Gerais"
+
+msgid "HTTP listeners (address:port)"
+msgstr "Escutas do HTTP (endereço:porta)"
+
+msgid "HTTPS Certificate (DER Encoded)"
+msgstr "Certificado do HTTPS (codificado em formato PEM)"
+
+msgid "HTTPS Private Key (DER Encoded)"
+msgstr "Chave Privada do HTTPS (codificado como DER)"
+
+msgid "HTTPS listener (address:port)"
+msgstr "Escuta do HTTPS (endereço:porta)"
+
+msgid "Ignore private IPs on public interface"
+msgstr "Ignore endereços IP privados na interface pública"
+
+msgid "Index page(s)"
+msgstr "Página(s) Índice(s)"
+
+msgid ""
+"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
+"usr/bin/php-cgi')"
+msgstr ""
+"Interpretador para associar com extensões de arquivos "
+"('extensão=interpretador', ex: '.php=/usr/bin/php-cgi')"
+
+msgid "Length of key in bits"
+msgstr "Comprimento da chave em bits"
+
+msgid "Location"
+msgstr "Localização"
+
+msgid "Maximum number of connections"
+msgstr "Número máximo de requisições para script"
+
+msgid "Maximum number of script requests"
+msgstr "Número máximo de requisições para script"
+
+msgid "Maximum wait time for Lua, CGI, or ubus execution"
+msgstr "Tempo máximo de espera para execuções de Lua, CGI ou ubus"
+
+msgid "Maximum wait time for network activity"
+msgstr "Tempo máximo de espera para atividade na rede"
+
+msgid "Override path for ubus socket"
+msgstr "Sobrescrever o caminho do socket ubus"
+
+msgid "Path prefix for CGI scripts"
+msgstr "Prefixo do caminho para scripts CGI"
+
+msgid ""
+"Prevent access from private (RFC1918) IPs on an interface if it has an "
+"public IP address"
+msgstr ""
+"Evite acesso de endereços privados (RFC1918) na interface que tem um "
+"endereço IP público"
+
+msgid "Realm for Basic Auth"
+msgstr "Reino para Autenticação Simples"
+
+msgid "Redirect all HTTP to HTTPS"
+msgstr "Redirecionar todo tráfego HTTP para HTTPS"
+
+msgid "Remove configuration for certificate and key"
+msgstr "Remove a configuração para o certificado e chave"
+
+msgid "Remove old certificate and key"
+msgstr "Remove os certificados e chaves antigas"
+
+msgid "Server Hostname"
+msgstr "Nome do Servidor"
+
+msgid ""
+"Settings which are either rarely needed or which affect serving the WebUI"
+msgstr "Ajustes que são raramente usadas ou que afetam a interface web"
+
+msgid "State"
+msgstr "Estado"
+
+msgid "TCP Keepalive"
+msgstr "Manter conexões TCP abertas (Keepalive)"
+
+msgid "This permanently deletes the cert, key, and configuration to use same."
+msgstr "Isto apaga permanentemente o certificado, a chave e a configuração."
+
+msgid "Valid for # of Days"
+msgstr "Valido por # dias"
+
+msgid ""
+"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
+"with '/'"
+msgstr ""
+"URL virtual ou script CGI para mostrar quando ocorrer erro '404 Não "
+"Encontrado'. Deve começar com '/'"
+
+msgid "Virtual path prefix for Lua scripts"
+msgstr "Prefixo do caminho virtual para scripts Lua"
+
+msgid "Virtual path prefix for ubus via JSON-RPC integration"
+msgstr "Prefixo do caminho virtual para o ubus através da integração JSON-RPC"
+
+msgid "Will not use HTTP authentication if not present"
+msgstr "Não usar autenticação HTTP se não presente"
+
+msgid "a.k.a CommonName"
+msgstr "também conhecido como Nome Comum"
+
+msgid "uHTTPd"
+msgstr "uHTTPd"
+
+msgid "uHTTPd Self-signed Certificate Parameters"
+msgstr "Parâmetros do Certificado Auto-assinado do uHTTPd"
+
+msgid ""
+"uHTTPd will generate a new self-signed certificate using the configuration "
+"shown below."
+msgstr ""
+"o uHTTPd gerará um certificado auto-assinado usando a configuração mostrada "
+"abaixo."
+
+msgid "ubus integration is disabled if not present"
+msgstr "A integração com o ubus será desativada se não presente"
index 6d876c2..847c98a 100644 (file)
@@ -5,26 +5,29 @@
 
 m = Map("unbound", translate("Recursive DNS"),
        translate("Unbound is a validating, recursive, and caching DNS resolver."))
-       
-s = m:section(TypedSection, "unbound", translate("Unbound Settings"))
-s.addremove = false
-s.anonymous = true
 
-s:tab("service", translate("Unbound Service"))
-s:tab("resource", translate("Unbound Resources"))
-s:tab("dnsmasq", translate("Dnsmasq Link"))
+s1 = m:section(TypedSection, "unbound")
+s1.addremove = false
+s1.anonymous = true
+s1:tab("service", translate("Basic Settings"))
+s1:tab("advanced", translate("Advanced Settings"))
+s1:tab("resource", translate("Resource Settings"))
 
---Enable Unbound
+--LuCI or Not
 
-e = s:taboption("service", Flag, "enabled", translate("Enable Unbound:"),
+ena = s1:taboption("service", Flag, "enabled", translate("Enable Unbound:"),
   translate("Enable the initialization scripts for Unbound"))
-e.rmempty = false
+ena.rmempty = false
 
-function e.cfgvalue(self, section)
+mcf = s1:taboption("service", Flag, "manual_conf", translate("Manual Conf:"),
+  translate("Skip UCI and use /etc/unbound/unbound.conf"))
+mcf.rmempty = false
+
+function ena.cfgvalue(self, section)
        return luci.sys.init.enabled("unbound") and self.enabled or self.disabled
 end
 
-function e.write(self, section, value)
+function ena.write(self, section, value)
        if value == "1" then
                luci.sys.init.enable("unbound")
                luci.sys.call("/etc/init.d/unbound start >/dev/null")
@@ -36,72 +39,136 @@ function e.write(self, section, value)
        return Flag.write(self, section, value)
 end
 
---Service Tab
-
-mcf = s:taboption("service", Flag, "manual_conf", translate("Manual Conf:"),
-  translate("Skip UCI and use /etc/unbound/unbound.conf"))
-mcf.rmempty = false
+--Basic Tab
 
-lsv = s:taboption("service", Flag, "localservice", translate("Local Service:"),
+lsv = s1:taboption("service", Flag, "localservice", translate("Local Service:"),
   translate("Accept queries only from local subnets"))
 lsv.rmempty = false
 
-qry = s:taboption("service", Flag, "query_minimize", translate("Query Minimize:"),
-  translate("Break down query components for small added privacy"))
-qry.rmempty = false
-
-rlh = s:taboption("service", Flag, "rebind_localhost", translate("Block Localhost Rebind:"),
+rlh = s1:taboption("service", Flag, "rebind_localhost", translate("Block Localhost Rebind:"),
   translate("Prevent upstream response of 127.0.0.0/8"))
 rlh.rmempty = false
 
-rpv = s:taboption("service", Flag, "rebind_protection", translate("Block Private Rebind:"),
+rpv = s1:taboption("service", Flag, "rebind_protection", translate("Block Private Rebind:"),
   translate("Prevent upstream response of RFC1918 ranges"))
 rpv.rmempty = false
 
-vld = s:taboption("service", Flag, "validator", translate("Enable DNSSEC:"),
+vld = s1:taboption("service", Flag, "validator", translate("Enable DNSSEC:"),
   translate("Enable the DNSSEC validator module"))
 vld.rmempty = false
 
-nvd = s:taboption("service", Flag, "validator_ntp", translate("DNSSEC NTP Fix:"),
+nvd = s1:taboption("service", Flag, "validator_ntp", translate("DNSSEC NTP Fix:"),
   translate("Break the loop where DNSSEC needs NTP and NTP needs DNS"))
 nvd.rmempty = false
+nvd:depends({ validator = true })
 
-eds = s:taboption("service", Value, "edns_size", translate("EDNS Size:"),
+eds = s1:taboption("service", Value, "edns_size", translate("EDNS Size:"),
   translate("Limit extended DNS packet size"))
 eds.datatype = "and(uinteger,min(512),max(4096))"
 eds.rmempty = false
 
-prt = s:taboption("service", Value, "listen_port", translate("Listening Port:"),
+prt = s1:taboption("service", Value, "listen_port", translate("Listening Port:"),
   translate("Choose Unbounds listening port"))
 prt.datatype = "port"
 prt.rmempty = false
 
-tlm = s:taboption("service", Value, "ttl_min", translate("TTL Minimum:"),
+tlm = s1:taboption("service", Value, "ttl_min", translate("TTL Minimum:"),
   translate("Prevent excessively short cache periods"))
 tlm.datatype = "and(uinteger,min(0),max(600))"
 tlm.rmempty = false
 
-d64 = s:taboption("service", Flag, "dns64", translate("Enable DNS64:"),
+--Advanced Tab
+
+ctl = s1:taboption("advanced", Flag, "unbound_control", translate("Unbound Control App:"),
+  translate("Enable unecrypted localhost access for unbound-control"))
+ctl.rmempty = false
+
+dlk = s1:taboption("advanced", ListValue, "dhcp_link", translate("DHCP Link:"),
+  translate("Link to supported programs to load DHCP into DNS"))
+dlk:value("none", translate("No Link"))
+dlk:value("dnsmasq", "dnsmasq")
+dlk:value("odhcpd", "odhcpd")
+dlk.rmempty = false
+
+dom = s1:taboption("advanced", Value, "domain", translate("Local Domain:"),
+  translate("Domain suffix for this router and DHCP clients"))
+dom.placeholder = "lan"
+dom:depends({ dhcp_link = "none" })
+dom:depends({ dhcp_link = "odhcpd" })
+
+dty = s1:taboption("advanced", ListValue, "domain_type", translate("Local Domain Type:"),
+  translate("How to treat queries of this local domain"))
+dty:value("deny", translate("Ignored"))
+dty:value("refuse", translate("Refused"))
+dty:value("static", translate("Only Local"))
+dty:value("transparent", translate("Also Forwarded"))
+dty:depends({ dhcp_link = "none" })
+dty:depends({ dhcp_link = "odhcpd" })
+
+lfq = s1:taboption("advanced", ListValue, "add_local_fqdn", translate("LAN DNS:"),
+  translate("How to enter the LAN or local network router in DNS"))
+lfq:value("0", translate("No DNS"))
+lfq:value("1", translate("Hostname, Primary Address"))
+lfq:value("2", translate("Hostname, All Addresses"))
+lfq:value("3", translate("Host FQDN, All Addresses"))
+lfq:value("4", translate("Interface FQDN, All Addresses"))
+lfq:depends({ dhcp_link = "none" })
+lfq:depends({ dhcp_link = "odhcpd" })
+
+wfq = s1:taboption("advanced", ListValue, "add_wan_fqdn", translate("WAN DNS:"),
+  translate("Override the WAN side router entry in DNS"))
+wfq:value("0", translate("Upstream"))
+wfq:value("1", translate("Hostname, Primary Address"))
+wfq:value("2", translate("Hostname, All Addresses"))
+wfq:value("3", translate("Host FQDN, All Addresses"))
+wfq:value("4", translate("Interface FQDN, All Addresses"))
+wfq:depends({ dhcp_link = "none" })
+wfq:depends({ dhcp_link = "odhcpd" })
+
+ctl = s1:taboption("advanced", Flag, "dhcp4_slaac6", translate("DHCPv4 to SLAAC:"),
+  translate("Use DHCPv4 MAC to discover IP6 hosts SLAAC (EUI64)"))
+ctl.rmempty = false
+
+d64 = s1:taboption("advanced", Flag, "dns64", translate("Enable DNS64:"),
   translate("Enable the DNS64 module"))
 d64.rmempty = false
 
-pfx = s:taboption("service", Value, "dns64_prefix", translate("DNS64 Prefix:"),
+pfx = s1:taboption("advanced", Value, "dns64_prefix", translate("DNS64 Prefix:"),
   translate("Prefix for generated DNS64 addresses"))
 pfx.datatype = "ip6addr"
 pfx.placeholder = "64:ff9b::/96"
 pfx.optional = true
-pfx:depends({ dns64 = "1" })
+pfx:depends({ dns64 = true })
+
+qry = s1:taboption("advanced", Flag, "query_minimize", translate("Query Minimize:"),
+  translate("Break down query components for limited added privacy"))
+qry.rmempty = false
+
+qrs = s1:taboption("advanced", Flag, "query_min_strict", translate("Strict Minimize:"),
+  translate("Strict version of 'query minimize' but it can break DNS"))
+qrs.rmempty = false
+qrs:depends({ query_minimize = true })
+
+--TODO: dnsmasq needs to not reference resolve-file and get off port 53.
 
 --Resource Tuning Tab
 
-rsn = s:taboption("resource", ListValue, "recursion", translate("Recursion Strength:"),
+pro = s1:taboption("resource", ListValue, "protocol", translate("Recursion Protocol:"),
+  translate("Chose the protocol recursion queries leave on"))
+pro:value("mixed", translate("IP4 and IP6"))
+pro:value("ip6_prefer", translate("IP6 Preferred"))
+pro:value("ip4_only", translate("IP4 Only"))
+pro:value("ip6_only", translate("IP6 Only"))
+pro.rmempty = false
+
+rsn = s1:taboption("resource", ListValue, "recursion", translate("Recursion Strength:"),
   translate("Recursion activity affects memory growth and CPU load"))
 rsn:value("aggressive", translate("Aggressive"))
 rsn:value("default", translate("Default"))
 rsn:value("passive", translate("Passive"))
 rsn.rmempty = false
 
-rsc = s:taboption("resource", ListValue, "resource", translate("Memory Resource:"),
+rsc = s1:taboption("resource", ListValue, "resource", translate("Memory Resource:"),
   translate("Use menu System/Processes to observe any memory growth"))
 rsc:value("large", translate("Large"))
 rsc:value("medium", translate("Medium"))
@@ -109,27 +176,14 @@ rsc:value("small", translate("Small"))
 rsc:value("tiny", translate("Tiny"))
 rsc.rmempty = false
 
-age = s:taboption("resource", Value, "root_age", translate("Root DSKEY Age:"),
+ag2 = s1:taboption("resource", Value, "root_age", translate("Root DSKEY Age:"),
   translate("Limit days between RFC5011 to reduce flash writes"))
-age.datatype = "and(uinteger,min(1),max(99))"
-age:value("14", "14")
-age:value("28", "28 ("..translate("default")..")")
-age:value("45", "45")
-age:value("90", "90")
-age:value("99", "99 ("..translate("never")..")")
-
---Dnsmasq Link Tab
-
-dld = s:taboption("dnsmasq", Flag, "dnsmasq_link_dns", translate("Link dnsmasq:"),
-  translate("Forward queries to dnsmasq for local clients"))
-dld.rmempty = false
-
-dgn = s:taboption("dnsmasq", Flag, "dnsmsaq_gate_name", translate("Local Gateway Name:"),
-  translate("Also query dnsmasq for this hosts outbound gateway"))
-dgn.rmempty = false
-
---TODO: Read only repective dnsmasq options and inform user of link requirements.
---TODO: dnsmasq needs to not reference resolve-file and get off port 53.
+ag2.datatype = "and(uinteger,min(1),max(99))"
+ag2:value("14", "14")
+ag2:value("28", "28 ("..translate("default")..")")
+ag2:value("45", "45")
+ag2:value("90", "90")
+ag2:value("99", "99 ("..translate("never")..")")
 
 return m
 
diff --git a/applications/luci-app-unbound/root/etc/uci-defaults/60_luci-unbound b/applications/luci-app-unbound/root/etc/uci-defaults/60_luci-unbound
new file mode 100644 (file)
index 0000000..cc714ac
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+  delete ucitrack.@unbound[-1]
+  add ucitrack unbound
+  set ucitrack.@unbound[-1].init=unbound
+  commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+[ ! -x /usr/sbin/unbound-control ] && exit 0
+
+uci -q batch <<-EOF >/dev/null
+  set luci.unboundhosts=command
+  set luci.unboundhosts.name='Unbound Local Hosts'
+  set luci.unboundhosts.command='unbound-control -c /var/lib/unbound/unbound.conf list_local_data'
+  set luci.unboundzones=command
+  set luci.unboundzones.name='Unbound Local Zones'
+  set luci.unboundzones.command='unbound-control -c /var/lib/unbound/unbound.conf list_local_zones'
+  commit luci
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
+
index f1bb450..74b9d1d 100644 (file)
@@ -12,21 +12,21 @@ s.addremove = false
 s:tab("general",  translate("General Settings"))
 s:tab("advanced", translate("Advanced Settings"))
 
-e = s:taboption("general", Flag, "_init", translate("Start UPnP and NAT-PMP service"))
+e = s:taboption("general", Flag, "enabled", translate("Start UPnP and NAT-PMP service"))
 e.rmempty  = false
 
-function e.cfgvalue(self, section)
-       return luci.sys.init.enabled("miniupnpd") and self.enabled or self.disabled
-end
+--function e.cfgvalue(self, section)
+--     return luci.sys.init.enabled("miniupnpd") and self.enabled or self.disabled
+--end
 
 function e.write(self, section, value)
        if value == "1" then
-               luci.sys.call("/etc/init.d/miniupnpd enable >/dev/null")
                luci.sys.call("/etc/init.d/miniupnpd start >/dev/null")
        else
                luci.sys.call("/etc/init.d/miniupnpd stop >/dev/null")
-               luci.sys.call("/etc/init.d/miniupnpd disable >/dev/null")
        end
+
+       return Flag.write(self, section, value)
 end
 
 s:taboption("general", Flag, "enable_upnp", translate("Enable UPnP functionality")).default = "1"
diff --git a/applications/luci-app-upnp/root/etc/uci-defaults/40_luci-miniupnp b/applications/luci-app-upnp/root/etc/uci-defaults/40_luci-miniupnp
new file mode 100755 (executable)
index 0000000..a338c75
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+       delete ucitrack.@upnpd[-1]
+       add ucitrack upnpd
+       set ucitrack.@upnpd[-1]=miniupnpd
+       commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
diff --git a/applications/luci-app-vpnbypass/Makefile b/applications/luci-app-vpnbypass/Makefile
new file mode 100644 (file)
index 0000000..0ca74ae
--- /dev/null
@@ -0,0 +1,16 @@
+# Copyright (c) 2017 Stan Grishin (stangri@melmac.net)
+# This is free software, licensed under the GNU General Public License v3.
+
+include $(TOPDIR)/rules.mk
+
+PKG_LICENSE:=GPL-3.0+
+PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
+
+LUCI_TITLE:=VPN Bypass Web UI
+LUCI_DEPENDS:=+vpnbypass
+LUCI_PKGARCH:=all
+PKG_RELEASE:=1
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua b/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua
new file mode 100644 (file)
index 0000000..ed6f4f4
--- /dev/null
@@ -0,0 +1,7 @@
+module("luci.controller.vpnbypass", package.seeall)
+function index()
+       if not nixio.fs.access("/etc/config/vpnbypass") then
+               return
+       end
+       entry({"admin", "services", "vpnbypass"}, cbi("vpnbypass"), _("VPN Bypass"))
+end
diff --git a/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua b/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua
new file mode 100644 (file)
index 0000000..b35a8e4
--- /dev/null
@@ -0,0 +1,61 @@
+readmeURL = "https://github.com/openwrt/packages/blob/master/net/vpnbypass/files/README.md"
+
+m = Map("vpnbypass", translate("VPN Bypass Settings"))
+s = m:section(NamedSection, "config", "vpnbypass")
+
+-- General options
+e = s:option(Flag, "enabled", translate("Enable/start service"))
+e.rmempty = false
+
+function e.cfgvalue(self, section)
+       return self.map:get(section, "enabled") == "1" and luci.sys.init.enabled("vpnbypass") and self.enabled or self.disabled
+end
+
+function e.write(self, section, value)
+       if value == "1" then
+               luci.sys.call("/etc/init.d/vpnbypass enable >/dev/null")
+               luci.sys.call("/etc/init.d/vpnbypass start >/dev/null")
+       else
+               luci.sys.call("/etc/init.d/vpnbypass stop >/dev/null")
+       end
+       return Flag.write(self, section, value)
+end
+
+-- Local Ports
+p1 = s:option(DynamicList, "localport", translate("Local Ports to Bypass"), translate("Local ports to trigger VPN Bypass"))
+p1.datatype    = "portrange"
+-- p1.placeholder = "0-65535"
+p1.addremove = false
+p1.optional = false
+
+-- Remote Ports
+p2 = s:option(DynamicList, "remoteport", translate("Remote Ports to Bypass"), translate("Remote ports to trigger VPN Bypass"))
+p2.datatype    = "portrange"
+-- p2.placeholder = "0-65535"
+p2.addremove = false
+p2.optional = false
+
+-- Local Subnets
+r1 = s:option(DynamicList, "localsubnet", translate("Local IP Addresses to Bypass"), translate("Local IP addresses or subnets with direct internet access (outside of the VPN tunnel)"))
+r1.datatype    = "ip4addr"
+-- r1.placeholder = luci.ip.new(uci.cursor():get("network", "lan", "ipaddr") .. "/" .. uci.cursor():get("network", "lan", "netmask"))
+r1.addremove = false
+r1.optional = false
+
+-- Remote Subnets
+r2 = s:option(DynamicList, "remotesubnet", translate("Remote IP Addresses to Bypass"), translate("Remote IP addresses or subnets which will be accessed directly (outside of the VPN tunnel)"))
+r2.datatype    = "ip4addr"
+-- r2.placeholder = "0.0.0.0/0"
+r2.addremove = false
+r2.optional = false
+
+-- Domains
+d = Map("dhcp")
+s4 = d:section(TypedSection, "dnsmasq")
+s4.anonymous = true
+di = s4:option(DynamicList, "ipset", translate("Domains to Bypass"),
+    translate("Domains to be accessed directly (outside of the VPN tunnel), see ")
+               .. [[<a href="]] .. readmeURL .. [[#bypass-domains-formatsyntax" target="_blank">]]
+    .. translate("README") .. [[</a>]] .. translate(" for syntax"))
+
+return m, d
diff --git a/applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po b/applications/luci-app-vpnbypass/po/pt-br/vpnbypass.po
new file mode 100644 (file)
index 0000000..5adc5ed
--- /dev/null
@@ -0,0 +1,87 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Domains to Bypass"
+msgstr "Domínios para evitar a VPN"
+
+msgid "Domains to be accessed directly (outside of the VPN tunnel), see"
+msgstr ""
+
+msgid "Enable VPN Bypass"
+msgstr "Habilitar o VPN Bypass"
+
+msgid "Local IP Addresses to Bypass"
+msgstr ""
+
+msgid ""
+"Local IP addresses or subnets with direct internet access (outside of the "
+"VPN tunnel)"
+msgstr ""
+
+msgid "Local Ports to Bypass"
+msgstr "Portas locais para evitar a VPN"
+
+msgid "Local ports to trigger VPN Bypass"
+msgstr "Portas locais para disparar o VPN Bypass"
+
+msgid "README"
+msgstr ""
+
+msgid "Remote IP Addresses to Bypass"
+msgstr ""
+
+msgid ""
+"Remote IP addresses or subnets which will be accessed directly (outside of "
+"the VPN tunnel)"
+msgstr ""
+
+msgid "Remote Ports to Bypass"
+msgstr "Portas remotas para evitar a VPN"
+
+msgid "Remote ports to trigger VPN Bypass"
+msgstr "Portas remotas para disparar o VPN Bypass"
+
+msgid "VPN Bypass"
+msgstr "VPN Bypass"
+
+msgid "VPN Bypass Settings"
+msgstr "Configurações do VPN Bypass"
+
+msgid "for syntax"
+msgstr ""
+
+#~ msgid "Configuration of VPN Bypass Settings"
+#~ msgstr "Configurações do VPN Bypass"
+
+#~ msgid "Domains which will be accessed directly (outside of the VPN tunnel)"
+#~ msgstr "Domínios que serão acessados diretamente (fora do túnel VPN)"
+
+#~ msgid "Local IP Subnets to Bypass"
+#~ msgstr "Subredes IP locais para evitar a VPN"
+
+#~ msgid ""
+#~ "Local IP ranges with direct internet access (outside of the VPN tunnel)"
+#~ msgstr ""
+#~ "Faixa de endereços IP locais que terão acesso internet direto (fora do "
+#~ "túnel VPN)"
+
+#~ msgid "Remote IP Subnets to Bypass"
+#~ msgstr "Subredes IP remotas para evitar a VPN"
+
+#~ msgid ""
+#~ "Remote IP ranges which will be accessed directly (outside of the VPN "
+#~ "tunnel)"
+#~ msgstr ""
+#~ "Faixa de endereços IP remotos que serão acessados diretamente (fora do "
+#~ "túnel VPN)"
diff --git a/applications/luci-app-vpnbypass/po/templates/vpnbypass.pot b/applications/luci-app-vpnbypass/po/templates/vpnbypass.pot
new file mode 100644 (file)
index 0000000..fd92b5e
--- /dev/null
@@ -0,0 +1,51 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Domains to Bypass"
+msgstr ""
+
+msgid "Domains to be accessed directly (outside of the VPN tunnel), see"
+msgstr ""
+
+msgid "Enable/start service"
+msgstr ""
+
+msgid "Local IP Addresses to Bypass"
+msgstr ""
+
+msgid ""
+"Local IP addresses or subnets with direct internet access (outside of the "
+"VPN tunnel)"
+msgstr ""
+
+msgid "Local Ports to Bypass"
+msgstr ""
+
+msgid "Local ports to trigger VPN Bypass"
+msgstr ""
+
+msgid "README"
+msgstr ""
+
+msgid "Remote IP Addresses to Bypass"
+msgstr ""
+
+msgid ""
+"Remote IP addresses or subnets which will be accessed directly (outside of "
+"the VPN tunnel)"
+msgstr ""
+
+msgid "Remote Ports to Bypass"
+msgstr ""
+
+msgid "Remote ports to trigger VPN Bypass"
+msgstr ""
+
+msgid "VPN Bypass"
+msgstr ""
+
+msgid "VPN Bypass Settings"
+msgstr ""
+
+msgid "for syntax"
+msgstr ""
diff --git a/applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass b/applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass
new file mode 100644 (file)
index 0000000..9455701
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+uci -q batch <<-EOF >/dev/null
+       delete ucitrack.@vpnbypass[-1]
+       add ucitrack vpnbypass
+       set ucitrack.@vpnbypass[-1].init=vpnbypass
+       commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
+
index fe97036..e37066c 100644 (file)
@@ -1,15 +1,16 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-03-29 23:20+0200\n"
-"Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-02-20 18:10-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
 "Language-Team: none\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.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"POT-Creation-Date: \n"
 
 msgid "Forced reboot delay"
 msgstr "Atraso para reinício forçado"
@@ -51,15 +52,13 @@ msgstr "Período de ping"
 msgid "Watchcat"
 msgstr "Watchcat"
 
-#, fuzzy
 msgid ""
 "Watchcat allows configuring a periodic reboot when the Internet connection "
 "has been lost for a certain period of time."
 msgstr ""
-"Watchcat permite que se configure um período para reiniciar e/ou quando a "
+"Watchcat permite a configuração de um período para reiniciar e/ou quando a "
 "conexão com à Internet foi perdida por um ser período de tempo."
 
-#, fuzzy
 msgid ""
 "When rebooting the system, the watchcat will trigger a soft reboot. Entering "
 "a non zero value here will trigger a delayed hard reboot if the soft reboot "
diff --git a/applications/luci-app-wifischedule/po/pt-br/wifischedule.po b/applications/luci-app-wifischedule/po/pt-br/wifischedule.po
new file mode 100644 (file)
index 0000000..19e31b5
--- /dev/null
@@ -0,0 +1,114 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Activate wifi"
+msgstr "Ativar a WiFi"
+
+msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
+msgstr ""
+"Não foi possível localizar os programas necessários '/usr/bin/wifi_schedule."
+"sh' ou '/sbin/wifi'."
+
+msgid "Could not find required programm /usr/bin/iwinfo"
+msgstr "Não foi possível localizar o programa necessário '/usr/bin/iwinfo'"
+
+msgid "Cron Jobs"
+msgstr "Tarefas da Cron"
+
+msgid "Day(s) of Week"
+msgstr "Dia(s) da semana"
+
+msgid "Defines a schedule when to turn on and off wifi."
+msgstr "Define um agendamento para quando ligar ou desligar a WiFi."
+
+msgid "Determine Modules Automatically"
+msgstr "Determinar os Módulos Automaticamente"
+
+msgid "Disable wifi gracefully"
+msgstr "Desabilitar a WiFi amistosamente"
+
+msgid "Disabled wifi forced"
+msgstr "WiFi foi desabilitada de forma forçada."
+
+msgid "Enable"
+msgstr "Habilitar"
+
+msgid "Enable Wifi Schedule"
+msgstr "Habilitar o agendamento da WiFi"
+
+msgid "Enable logging"
+msgstr "Habilite os registros (log)"
+
+msgid "Force disabling wifi even if stations associated"
+msgstr "Force a desativação da WiFi mesmo se existirem estações associadas "
+
+msgid "Friday"
+msgstr "Sexta-feira"
+
+msgid "Global Settings"
+msgstr "Configurações Globais"
+
+msgid "Monday"
+msgstr "Segunda-Feira"
+
+msgid "Saturday"
+msgstr "Sábado"
+
+msgid "Schedule"
+msgstr "Agendamento"
+
+msgid "Schedule events"
+msgstr "Eventos do agendamento"
+
+msgid "Start Time"
+msgstr "Hora Inicial"
+
+msgid "Start WiFi"
+msgstr "Iniciar WiFi"
+
+msgid "Stop Time"
+msgstr "Hora Final"
+
+msgid "Stop WiFi"
+msgstr "Parar WiFi"
+
+msgid "Sunday"
+msgstr "Domingo"
+
+msgid "The value %s is invalid"
+msgstr "O valor %s é inválido"
+
+msgid "Thursday"
+msgstr "Quita-feira"
+
+msgid "Tuesday"
+msgstr "Terça-feira"
+
+msgid "Unload Modules (experimental; saves more power)"
+msgstr "Descarregar Módulos (experimental, poupa mais energia)"
+
+msgid "View Cron Jobs"
+msgstr "Visualizar Tarefas da Cron"
+
+msgid "View Logfile"
+msgstr "Visualizar o Arquivo de Registros (log)"
+
+msgid "Wednesday"
+msgstr "Quarta-feira"
+
+msgid "Wifi Schedule"
+msgstr "Agendamento da Wifi"
+
+msgid "Wifi Schedule Logfile"
+msgstr "Arquivo de Registros (log) do Agendamento da Wifi"
diff --git a/applications/luci-app-wireguard/Makefile b/applications/luci-app-wireguard/Makefile
new file mode 100644 (file)
index 0000000..92cdcf2
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2016-2017 Dan Luedtke <mail@danrl.com>
+#
+# This is free software, licensed under the Apache License, Version 2.0 .
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=WireGuard Status
+LUCI_DEPENDS:=+wireguard-tools +kmod-wireguard
+LUCI_PKGARCH:=all
+
+PKG_MAINTAINER:=Dan Luedtke <mail@danrl.com>
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-wireguard/luasrc/controller/wireguard.lua b/applications/luci-app-wireguard/luasrc/controller/wireguard.lua
new file mode 100644 (file)
index 0000000..68a82fe
--- /dev/null
@@ -0,0 +1,8 @@
+-- Copyright 2016-2017 Dan Luedtke <mail@danrl.com>
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.controller.wireguard", package.seeall)
+
+function index()
+  entry({"admin", "status", "wireguard"}, template("wireguard"), _("WireGuard Status"), 92)
+end
diff --git a/applications/luci-app-wireguard/luasrc/view/wireguard.htm b/applications/luci-app-wireguard/luasrc/view/wireguard.htm
new file mode 100644 (file)
index 0000000..5b5d59a
--- /dev/null
@@ -0,0 +1,209 @@
+<%#
+ Copyright 2016-2017 Dan Luedtke <mail@danrl.com>
+ Licensed to the public under the Apache License 2.0.
+-%>
+
+<%
+  local data = { }
+  local last_device = ""
+
+  local wg_dump = io.popen("wg show all dump")
+  if wg_dump then
+    local line
+    for line in wg_dump:lines() do
+      local line = string.split(line, "\t")
+      if not (last_device == line[1]) then
+        last_device = line[1]
+        data[line[1]] = {
+          name                 = line[1],
+          public_key           = line[3],
+          listen_port          = line[5],
+          fwmark               = line[6],
+          peers                = { }
+        }
+      else
+        local peer = {
+          public_key           = line[2],
+          endpoint             = line[3],
+          allowed_ips          = { },
+          latest_handshake     = line[5],
+          transfer_rx          = line[6],
+          transfer_tx          = line[7],
+          persistent_keepalive = line[8]
+        }
+        if not (line[4] == '(none)') then
+          for ipkey, ipvalue in pairs(string.split(line[4], ",")) do
+            if #ipvalue > 0 then
+              table.insert(peer['allowed_ips'], ipvalue)
+            end
+          end
+        end
+        table.insert(data[line[1]].peers, peer)
+      end
+    end
+  end
+
+  if luci.http.formvalue("status") == "1" then
+    luci.http.prepare_content("application/json")
+    luci.http.write_json(data)
+    return
+  end
+-%>
+
+<%+header%>
+
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
+<script type="text/javascript">//<![CDATA[
+
+  function bytes_to_str(bytes) {
+    bytes = parseFloat(bytes);
+    if (bytes < 1) { return "0 B"; }
+    var sizes = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB'];
+    var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
+    return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i];
+  };
+
+  function timestamp_to_str(timestamp) {
+    if (timestamp < 1) {
+      return '<%:Never%>';
+    }
+    var now = new Date();
+    var seconds = (now.getTime() / 1000) - timestamp;
+    var ago = "";
+    if (seconds < 60) {
+      ago = parseInt(seconds) + '<%:s ago%>';
+    } else if (seconds < 3600) {
+      ago = parseInt(seconds / 60) + '<%:m ago%>';
+    } else if (seconds < 86401) {
+      ago = parseInt(seconds / 3600) + '<%:h ago%>';
+    } else {
+      ago = '<%:over a day ago%>';
+    }
+    var t = new Date(timestamp * 1000);
+    return t.toUTCString() + ' (' + ago + ')';
+  }
+
+  XHR.poll(5, '<%=REQUEST_URI%>', { status: 1 },
+   function(x, data) {
+    for (var key in data) {
+      if (!data.hasOwnProperty(key)) { continue; }
+      var ifname = key;
+      var iface = data[key];
+      var s = "";
+      if (iface.public_key == '(none)') {
+        s += '<em><%:Interface does not have a public key!%></em>';
+      } else {
+        s += String.format(
+          '<strong><%:Public Key%>: </strong>%s',
+          iface.public_key
+        );
+      }
+      if (iface.listen_port > 0) {
+        s += String.format(
+          '<br /><strong><%:Listen Port%>: </strong>%s',
+          iface.listen_port
+        );
+      }
+      if (iface.fwmark != 'off') {
+        s += String.format(
+          '<br /><strong><%:Firewall Mark%>: </strong>%s',
+          iface.fwmark
+        );
+      }
+      document.getElementById(ifname + "_info").innerHTML = s;
+      for (var i = 0, ilen = iface.peers.length; i < ilen; i++) {
+        var peer = iface.peers[i];
+        var s = String.format(
+          '<strong><%:Public Key%>: </strong>%s',
+          peer.public_key
+        );
+        if (peer.endpoint != '(none)') {
+          s += String.format(
+            '<br /><strong><%:Endpoint%>: </strong>%s',
+            peer.endpoint
+          );
+        }
+        if (peer.allowed_ips.length > 0) {
+          s += '<br /><strong><%:Allowed IPs%>:</strong>';
+          for (var k = 0, klen = peer.allowed_ips.length; k < klen; k++) {
+            s += '<br />&nbsp;&nbsp;&bull;&nbsp;' + peer.allowed_ips[k];
+          }
+        }
+        if (peer.persistent_keepalive != 'off') {
+          s += String.format(
+            '<br /><strong><%:Persistent Keepalive%>: </strong>%ss',
+            peer.persistent_keepalive
+          );
+        }
+        var icon = '<img src="<%=resource%>/icons/tunnel_disabled.png" />';
+        var now = new Date();
+        if (((now.getTime() / 1000) - peer.latest_handshake) < 140) {
+          icon = '<img src="<%=resource%>/icons/tunnel.png" />';
+        }
+        s += String.format(
+          '<br /><strong><%:Latest Handshake%>: </strong>%s',
+          timestamp_to_str(peer.latest_handshake)
+        );
+        s += String.format(
+          '<br /><strong><%:Data Received%>: </strong>%s' +
+          '<br /><strong><%:Data Transmitted%>: </strong>%s',
+          bytes_to_str(peer.transfer_rx),
+          bytes_to_str(peer.transfer_tx)
+        );
+        document.getElementById(ifname + "_" + peer.public_key + "_icon").innerHTML = icon;
+        document.getElementById(ifname + "_" + peer.public_key + "_info").innerHTML = s;
+      }
+    }
+  });
+//]]></script>
+
+<h2>WireGuard Status</h2>
+
+<fieldset class="cbi-section">
+<%-
+for ikey, iface in pairs(data) do
+  -%>
+  <legend><%:Interface%> <%=ikey%></legend>
+  <table width="100%" cellspacing="10">
+    <tr>
+      <td width="33%" style="vertical-align:top"><%:Configuration%></td>
+      <td>
+        <table>
+          <tr>
+            <td id="<%=ikey%>_icon" style="width:16px; text-align:center; padding:3px">
+              &nbsp;
+            </td>
+            <td id="<%=ikey%>_info" style="vertical-align:middle; padding: 3px">
+              <em><%:Collecting data...%></em>
+            </td>
+        </tr></table>
+      </td>
+    </tr>
+  <%-
+  for pkey, peer in pairs(iface.peers) do
+    -%>
+    <tr>
+      <td width="33%" style="vertical-align:top"><%:Peer%></td>
+      <td>
+        <table>
+          <tr>
+            <td id="<%=ikey%>_<%=peer.public_key%>_icon" style="width:16px; text-align:center; padding:3px">
+              <img src="<%=resource%>/icons/tunnel_disabled.png" /><br />
+              <small>?</small>
+            </td>
+            <td id="<%=ikey%>_<%=peer.public_key%>_info" style="vertical-align:middle; padding: 3px">
+              <em><%:Collecting data...%></em>
+            </td>
+        </tr></table>
+      </td>
+    </tr>
+    <%-
+  end
+  -%>
+  </table>
+  <%-
+end
+-%>
+</fieldset>
+
+<%+footer%>
diff --git a/applications/luci-app-wireguard/po/ja/wireguard.po b/applications/luci-app-wireguard/po/ja/wireguard.po
new file mode 100644 (file)
index 0000000..5cd7a90
--- /dev/null
@@ -0,0 +1,74 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2017-02-28 00:31+0900\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Language-Team: \n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.12\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "Allowed IPs"
+msgstr "許可されたIP"
+
+msgid "Collecting data..."
+msgstr "データ収集中です..."
+
+msgid "Configuration"
+msgstr "設定"
+
+msgid "Data Received"
+msgstr "受信済みデータ"
+
+msgid "Data Transmitted"
+msgstr "送信済みデータ"
+
+msgid "Endpoint"
+msgstr "エンドポイント"
+
+msgid "Firewall Mark"
+msgstr "ファイアウォール マーク"
+
+msgid "Interface"
+msgstr "インターフェース"
+
+msgid "Interface does not have a public key!"
+msgstr "インターフェースに公開鍵がありません!"
+
+msgid "Latest Handshake"
+msgstr "最新のハンドシェイク"
+
+msgid "Listen Port"
+msgstr "待ち受けポート"
+
+msgid "Never"
+msgstr "無し"
+
+msgid "Peer"
+msgstr "ピア"
+
+msgid "Persistent Keepalive"
+msgstr "永続的なキープアライブ"
+
+msgid "Public Key"
+msgstr "公開鍵"
+
+msgid "WireGuard Status"
+msgstr "WireGuard ステータス"
+
+msgid "h ago"
+msgstr "時間前"
+
+msgid "m ago"
+msgstr "分前"
+
+msgid "over a day ago"
+msgstr "1日以上前"
+
+msgid "s ago"
+msgstr "秒前"
diff --git a/applications/luci-app-wireguard/po/pt-br/wireguard.po b/applications/luci-app-wireguard/po/pt-br/wireguard.po
new file mode 100644 (file)
index 0000000..d3b5059
--- /dev/null
@@ -0,0 +1,73 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language: pt_BR\n"
+
+msgid "Allowed IPs"
+msgstr "Endereços IP autorizados"
+
+msgid "Collecting data..."
+msgstr "Coletando dados..."
+
+msgid "Configuration"
+msgstr "Configuração"
+
+msgid "Data Received"
+msgstr "Dados Recebidos"
+
+msgid "Data Transmitted"
+msgstr "Dados Enviados"
+
+msgid "Endpoint"
+msgstr "Equipamento do ponto final"
+
+msgid "Firewall Mark"
+msgstr "Marca do Firewall"
+
+msgid "Interface"
+msgstr "Interface"
+
+msgid "Interface does not have a public key!"
+msgstr "A interface não tem uma chave pública!"
+
+msgid "Latest Handshake"
+msgstr "Última Negociação"
+
+msgid "Listen Port"
+msgstr "Porta de Escuta"
+
+msgid "Never"
+msgstr "Nunca"
+
+msgid "Peer"
+msgstr "Parceiro"
+
+msgid "Persistent Keepalive"
+msgstr "Manter Conexões Abertas (Keepalive)"
+
+msgid "Public Key"
+msgstr "Chave Pública"
+
+msgid "WireGuard Status"
+msgstr "Estado do WireGuard"
+
+msgid "h ago"
+msgstr "horas atrás"
+
+msgid "m ago"
+msgstr "meses atrás"
+
+msgid "over a day ago"
+msgstr "mais de um dia atrás"
+
+msgid "s ago"
+msgstr "segundos atrás"
diff --git a/applications/luci-app-wireguard/po/templates/wireguard.pot b/applications/luci-app-wireguard/po/templates/wireguard.pot
new file mode 100644 (file)
index 0000000..9ec5c60
--- /dev/null
@@ -0,0 +1,62 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Allowed IPs"
+msgstr ""
+
+msgid "Collecting data..."
+msgstr ""
+
+msgid "Configuration"
+msgstr ""
+
+msgid "Data Received"
+msgstr ""
+
+msgid "Data Transmitted"
+msgstr ""
+
+msgid "Endpoint"
+msgstr ""
+
+msgid "Firewall Mark"
+msgstr ""
+
+msgid "Interface"
+msgstr ""
+
+msgid "Interface does not have a public key!"
+msgstr ""
+
+msgid "Latest Handshake"
+msgstr ""
+
+msgid "Listen Port"
+msgstr ""
+
+msgid "Never"
+msgstr ""
+
+msgid "Peer"
+msgstr ""
+
+msgid "Persistent Keepalive"
+msgstr ""
+
+msgid "Public Key"
+msgstr ""
+
+msgid "WireGuard Status"
+msgstr ""
+
+msgid "h ago"
+msgstr ""
+
+msgid "m ago"
+msgstr ""
+
+msgid "over a day ago"
+msgstr ""
+
+msgid "s ago"
+msgstr ""
index 73a9594..dbbfdde 100644 (file)
@@ -1,6 +1,6 @@
 module("luci.controller.wol", package.seeall)
 
 function index()
-       entry({"admin", "network", "wol"}, cbi("wol"), _("Wake on LAN"), 90)
-       entry({"mini", "network", "wol"}, cbi("wol"), _("Wake on LAN"), 90)
+       entry({"admin", "services", "wol"}, cbi("wol"), _("Wake on LAN"), 90)
+       entry({"mini", "services", "wol"}, cbi("wol"), _("Wake on LAN"), 90)
 end
index e87cac3..ec6a1be 100644 (file)
@@ -48,6 +48,13 @@ sys.net.mac_hints(function(mac, name)
        host:value(mac, "%s (%s)" %{ mac, name })
 end)
 
+if has_ewk then
+       broadcast = s:option(Flag, "broadcast",
+               translate("Send to broadcast address"))
+       if has_wol then
+               broadcast:depends("binary", "/usr/bin/etherwake")
+       end
+end
 
 function host.write(self, s, val)
        local host = luci.http.formvalue("cbid.wol.1.mac")
@@ -59,8 +66,10 @@ function host.write(self, s, val)
 
                if util == "/usr/bin/etherwake" then
                        local iface = luci.http.formvalue("cbid.wol.1.iface")
-                       cmd = "%s -D%s %q" %{
-                               util, (iface ~= "" and " -i %q" % iface or ""), host
+                       local broadcast = luci.http.formvalue("cbid.wol.1.broadcast")
+                       cmd = "%s -D%s %s %q" %{
+                               util, (iface ~= "" and " -i %q" % iface or ""),
+                               (broadcast == "1" and " -b" or ""), host
                        }
                else
                        cmd = "%s -v %q" %{ util, host }
index 42f7cf7..387b471 100644 (file)
@@ -29,6 +29,9 @@ msgstr "Host per a despertar"
 msgid "Network interface to use"
 msgstr "Interfície de xarxa per a utilitzar"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index 6ee7f67..4948812 100644 (file)
@@ -27,6 +27,9 @@ msgstr "Adresa zařízení, které má být probuzeno"
 msgid "Network interface to use"
 msgstr "Použité síťové rozhraní"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index 52940ef..efbd122 100644 (file)
@@ -28,6 +28,9 @@ msgstr "Anzuschaltender Rechner"
 msgid "Network interface to use"
 msgstr "Verwendete Schnittstelle"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index cb7c3b9..422a51b 100644 (file)
@@ -25,6 +25,9 @@ msgstr ""
 msgid "Network interface to use"
 msgstr ""
 
+msgid "Send to broadcast address"
+msgstr ""
+
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
 msgstr ""
index 48c7302..877ba34 100644 (file)
@@ -23,6 +23,9 @@ msgstr "Host to wake up"
 msgid "Network interface to use"
 msgstr "Network interface to use"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index f5bcf6b..e54ffdc 100644 (file)
@@ -27,6 +27,9 @@ msgstr "Máquina a despertar"
 msgid "Network interface to use"
 msgstr "Interfaz de red a utilizar"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index 0bed86d..8486905 100644 (file)
@@ -27,6 +27,9 @@ msgstr "Hôte à réveiller"
 msgid "Network interface to use"
 msgstr "Interface réseau à utiliser"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index cb7c3b9..422a51b 100644 (file)
@@ -25,6 +25,9 @@ msgstr ""
 msgid "Network interface to use"
 msgstr ""
 
+msgid "Send to broadcast address"
+msgstr ""
+
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
 msgstr ""
index f47191c..3895e92 100644 (file)
@@ -29,6 +29,9 @@ msgstr "Felélesztendő gép"
 msgid "Network interface to use"
 msgstr "Használandó interfész"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index 63ac0d8..bf23eb8 100644 (file)
@@ -27,6 +27,9 @@ msgstr "Host da \"svegliare\""
 msgid "Network interface to use"
 msgstr "Interfacci di rete da usare"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index c18b831..bedcbbf 100644 (file)
@@ -2,18 +2,18 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-19 00:29+0200\n"
-"PO-Revision-Date: 2013-10-06 17:12+0200\n"
-"Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
+"PO-Revision-Date: 2017-01-27 21:03+0900\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
 "Language-Team: none\n"
 "Language: ja\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"
+"X-Generator: Poedit 1.8.11\n"
 
 msgid "Broadcast on all interfaces"
 msgstr "全てのインターフェースへブロードキャスト"
@@ -27,12 +27,14 @@ msgstr "起動するホストを指定"
 msgid "Network interface to use"
 msgstr "使用するネットワークインターフェース"
 
-#, fuzzy
+msgid "Send to broadcast address"
+msgstr "ブロードキャスト アドレスに送信する"
+
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
 msgstr ""
-"片方のツールのみが動作する場合があるため、片方が失敗する場合は別のツールを"
-"してみてください。"
+"片方のツールのみが動作する場合があるため、片方が失敗する場合は別のツールを"
+"してみてください。"
 
 msgid "Specifies the interface the WoL packet is sent on"
 msgstr "WoLパケットを送信するインタフェースを指定"
@@ -46,8 +48,8 @@ msgstr "Wake on LAN"
 msgid ""
 "Wake on LAN is a mechanism to remotely boot computers in the local network."
 msgstr ""
-"Wake on LANはローカルネットワーク内のコンピュータを遠隔で起動させることがで"
-"る機能です。"
+"Wake on LANはローカルネットワーク内のコンピュータを遠隔で起動させることがで"
+"ã\81\8dã\82\8bæ©\9fè\83½ã\81§ã\81\99ã\80\82"
 
 msgid "Wake up host"
 msgstr "ホストを起動"
index 74380f2..47c335d 100644 (file)
@@ -24,6 +24,9 @@ msgstr ""
 msgid "Network interface to use"
 msgstr ""
 
+msgid "Send to broadcast address"
+msgstr ""
+
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
 msgstr ""
index 2f0a8ad..6dd0c0e 100644 (file)
@@ -18,6 +18,9 @@ msgstr "Vert som skal startes opp"
 msgid "Network interface to use"
 msgstr "Nettverksgrensesnitt"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index c599b9e..3533e45 100644 (file)
@@ -28,6 +28,9 @@ msgstr "Host do wybudzenia"
 msgid "Network interface to use"
 msgstr "Użyty interfejs sieciowy"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index 6a21a85..783ec0b 100644 (file)
@@ -2,18 +2,18 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2010-04-19 00:29+0200\n"
-"PO-Revision-Date: 2011-10-11 20:31+0200\n"
-"Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
+"PO-Revision-Date: 2017-02-20 18:13-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\n"
 "Language-Team: none\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: Poedit 1.8.11\n"
 
 msgid "Broadcast on all interfaces"
 msgstr "Broadcast em todas as interfaces"
@@ -27,12 +27,14 @@ msgstr "Computador para acordar"
 msgid "Network interface to use"
 msgstr "Interfaces de rede para usar"
 
-#, fuzzy
+msgid "Send to broadcast address"
+msgstr "Enviar para o endereço de broadcast"
+
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
 msgstr ""
-"Algumas vezes, somente uma das ferramentas funciona. Se uma delas falhar, "
-"tente a outra"
+"Algumas vezes, somente uma das duas ferramentas funciona. Se uma delas "
+"falhar, tente a outra"
 
 msgid "Specifies the interface the WoL packet is sent on"
 msgstr "Especifica a interface para onde os pacotes de WoL serão enviados"
index 540e543..1cce430 100644 (file)
@@ -27,6 +27,9 @@ msgstr "Host a acordar"
 msgid "Network interface to use"
 msgstr "Interface de rede a usar"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index 154a3f9..71a0697 100644 (file)
@@ -28,6 +28,9 @@ msgstr "Statie pentru \"trezire\""
 msgid "Network interface to use"
 msgstr "Interfata de retea pentru utilizare"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index 9a84366..9d3e08d 100644 (file)
@@ -29,6 +29,9 @@ msgstr "Хост, который необходимо разбудить"
 msgid "Network interface to use"
 msgstr "Используемый сетевой интерфейс"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index eea59eb..bdaf4e7 100644 (file)
@@ -20,6 +20,9 @@ msgstr ""
 msgid "Network interface to use"
 msgstr ""
 
+msgid "Send to broadcast address"
+msgstr ""
+
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
 msgstr ""
index f08f727..5b3e923 100644 (file)
@@ -23,6 +23,9 @@ msgstr "Värd som ska väckas upp"
 msgid "Network interface to use"
 msgstr "Nätverksgränssnitt som ska användas"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
 msgstr ""
index 1305c53..9593dea 100644 (file)
@@ -13,6 +13,9 @@ msgstr ""
 msgid "Network interface to use"
 msgstr ""
 
+msgid "Send to broadcast address"
+msgstr ""
+
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
 msgstr ""
index 9be6934..684a9ae 100644 (file)
@@ -25,6 +25,9 @@ msgstr ""
 msgid "Network interface to use"
 msgstr ""
 
+msgid "Send to broadcast address"
+msgstr ""
+
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
 msgstr ""
index c09d144..703cd37 100644 (file)
@@ -30,6 +30,9 @@ msgstr "Комп'ютер, який необхідно розбудити"
 msgid "Network interface to use"
 msgstr "Використовувати мережевий інтерфейс"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index 9be6934..684a9ae 100644 (file)
@@ -25,6 +25,9 @@ msgstr ""
 msgid "Network interface to use"
 msgstr ""
 
+msgid "Send to broadcast address"
+msgstr ""
+
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
 msgstr ""
index 6d9cc72..7bbae61 100644 (file)
@@ -25,6 +25,9 @@ msgstr "选择要唤醒的主机"
 msgid "Network interface to use"
 msgstr "选择使用的网络接口"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
index ee290ec..553d2d0 100644 (file)
@@ -23,6 +23,9 @@ msgstr "要喚醒主機清單"
 msgid "Network interface to use"
 msgstr "使用的網路介面"
 
+msgid "Send to broadcast address"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "Sometimes only one of the two tools works. If one fails, try the other one"
diff --git a/applications/luci-app-wshaper/Makefile b/applications/luci-app-wshaper/Makefile
deleted file mode 100644 (file)
index 63e63ab..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Copyright (C) 2008-2014 The LuCI Team <luci@lists.subsignal.org>
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
-
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI Support for wshaper
-LUCI_DEPENDS:=+wshaper
-
-include ../../luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-wshaper/luasrc/controller/wshaper.lua b/applications/luci-app-wshaper/luasrc/controller/wshaper.lua
deleted file mode 100644 (file)
index 2d0fe48..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
--- Copyright 2011 Manuel Munz <freifunk somakoma de>
--- Licensed to the public under the Apache License 2.0.
-
-module "luci.controller.wshaper"
-
-function index()
-       entry({"admin", "network", "wshaper"}, cbi("wshaper"), _("Wondershaper"), 80)
-end
-
diff --git a/applications/luci-app-wshaper/luasrc/model/cbi/wshaper.lua b/applications/luci-app-wshaper/luasrc/model/cbi/wshaper.lua
deleted file mode 100644 (file)
index 6bd0255..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
--- Copyright 2011 Manuel Munz <freifunk at somakoma dot de>
--- Licensed to the public under the Apache License 2.0.
-
-require("luci.tools.webadmin")
-
-m = Map("wshaper", translate("Wondershaper"),
-       translate("Wondershaper shapes traffic to ensure low latencies for interactive traffic even when your " ..
-       "internet connection is highly saturated."))
-
-s = m:section(NamedSection, "settings", "wshaper", translate("Wondershaper settings"))
-s.anonymous = true
-
-network = s:option(ListValue, "network", translate("Interface"))
-luci.tools.webadmin.cbi_add_networks(network)
-
-uplink = s:option(Value, "uplink", translate("Uplink"), translate("Upstream bandwidth in kbit/s"))
-uplink.optional = false
-uplink.datatype = "uinteger"
-uplink.default = "240"
-
-uplink = s:option(Value, "downlink", translate("Downlink"), translate("Downstream bandwidth in kbit/s"))
-uplink.optional = false
-uplink.datatype = "uinteger"
-uplink.default = "200"
-
-nopriohostsrc = s:option(DynamicList, "nopriohostsrc", translate("Low priority hosts (Source)"), translate("Host or Network in CIDR notation."))
-nopriohostsrc.optional = true
-nopriohostsrc.datatype = ipaddr
-nopriohostsrc.placeholder = "10.0.0.1/32"
-
-nopriohostdst = s:option(DynamicList, "nopriohostdst", translate("Low priority hosts (Destination)"), translate("Host or Network in CIDR notation."))
-nopriohostdst.optional = true
-nopriohostdst.datatype = ipaddr
-nopriohostdst.placeholder = "10.0.0.1/32"
-
-noprioportsrc = s:option(DynamicList, "noprioportsrc", translate("Low priority source ports"))
-noprioportsrc.optional = true
-noprioportsrc.datatype = "range(0,65535)"
-noprioportsrc.placeholder = "21"
-
-noprioportdst = s:option(DynamicList, "noprioportdst", translate("Low priority destination ports"))
-noprioportdst.optional = true
-noprioportdst.datatype = "range(0,65535)"
-noprioportdst.placeholder = "21"
-
-return m
diff --git a/applications/luci-app-wshaper/po/ca/wshaper.po b/applications/luci-app-wshaper/po/ca/wshaper.po
deleted file mode 100644 (file)
index 2560383..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-01 22:51+0200\n"
-"PO-Revision-Date: 2014-07-01 03:51+0200\n"
-"Last-Translator: Alex <alexhenrie24@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: ca\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 "Downlink"
-msgstr "Enllaç descendent"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Amplada de banda descendent en kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Host o xarxa en notació CIDR."
-
-msgid "Interface"
-msgstr "Interfície"
-
-msgid "Low priority destination ports"
-msgstr "Ports de destí de baixa prioritat"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Hosts de baixa prioritat (destí)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Hosts de baixa prioritat (origen)"
-
-msgid "Low priority source ports"
-msgstr "Ports d'origen de baixa prioritat"
-
-msgid "Uplink"
-msgstr "Enllaç ascendent"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Amplada de banda ascendent en kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Ajusts del Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershapter afaiçona el trànsit per assegurar latències baixes per a "
-"trànsit interactiu encara que la vostra connexió de Internet estigui "
-"altament saturada."
diff --git a/applications/luci-app-wshaper/po/cs/wshaper.po b/applications/luci-app-wshaper/po/cs/wshaper.po
deleted file mode 100644 (file)
index bca6c4e..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-04-24 15:20+0200\n"
-"Last-Translator: awm1 <awm1klimes8vladimir@gmail.com>\n"
-"Language-Team: none\n"
-"Language: cs\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"
-"X-Generator: Pootle 2.0.4\n"
-
-msgid "Downlink"
-msgstr "Příchozí rychlost"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Rychlost stahování dat v kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Adresa počítače nebo sítě v CIDR notaci."
-
-msgid "Interface"
-msgstr "Síťové rozhraní"
-
-msgid "Low priority destination ports"
-msgstr "Cílové porty s nízkou prioritou"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Adresy cílových počítačů s nízkou prioritou"
-
-msgid "Low priority hosts (Source)"
-msgstr "Adresy zdrojových počítačů s nízkou prioritou"
-
-msgid "Low priority source ports"
-msgstr "Zdrojové porty s nízkou prioritou"
-
-msgid "Uplink"
-msgstr "Odchozí rychlost"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Rychlost odesílání dat v kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Nastavení skriptu Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Úkolem skriptu Wondershaper je řízení provozu na daném síťovém rozhraní. "
-"Snaží se zajistit nízké přenosové zpoždění pro \"interaktivní\" síťový "
-"provoz (např. SSH), a to především v okamžicích, kdy ostatní síťový provoz "
-"zahltí linku."
diff --git a/applications/luci-app-wshaper/po/de/wshaper.po b/applications/luci-app-wshaper/po/de/wshaper.po
deleted file mode 100644 (file)
index 39dd617..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: 2011-10-18 12:28+0200\n"
-"Last-Translator: Manuel <freifunk@somakoma.de>\n"
-"Language-Team: \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"
-
-msgid "Downlink"
-msgstr "Download"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Download Bandbreite in kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Rechner oder Netzwerk in CIDR Schreibweise"
-
-msgid "Interface"
-msgstr "Schnittstelle"
-
-msgid "Low priority destination ports"
-msgstr "Zielports mit niedriger Priorität"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Zielrechner mit nideriger Priorität"
-
-msgid "Low priority hosts (Source)"
-msgstr "Quellrechner mit neidriger Priorität"
-
-msgid "Low priority source ports"
-msgstr "Quellports mit niedriger Priorität"
-
-msgid "Uplink"
-msgstr "Upload"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Upload Bandbreite in kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Wondershaper Einstellungen"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper ermöglicht mit Hilfe von Traffic Shaping niedrige Latenzzeiten "
-"für interaktiven Internetverkehr selbst wenn die Internetverbindung extrem "
-"ausgelastet ist."
diff --git a/applications/luci-app-wshaper/po/el/wshaper.po b/applications/luci-app-wshaper/po/el/wshaper.po
deleted file mode 100644 (file)
index 6d2f092..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-03-18 17:10+0200\n"
-"PO-Revision-Date: 2012-03-18 17:10+0200\n"
-"Last-Translator: Vasilis <acinonyx@openwrt.gr>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: el\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"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr "Διεπαφή"
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/en/wshaper.po b/applications/luci-app-wshaper/po/en/wshaper.po
deleted file mode 100644 (file)
index b685839..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: en\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/es/wshaper.po b/applications/luci-app-wshaper/po/es/wshaper.po
deleted file mode 100644 (file)
index f562760..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-04-16 01:00+0200\n"
-"PO-Revision-Date: 2012-09-03 18:57+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"
-"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 "Downlink"
-msgstr "Enlace de bajada"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Ancho de banda de bajada en Kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Máquina o red en notación CIDR."
-
-msgid "Interface"
-msgstr "Interfaz"
-
-msgid "Low priority destination ports"
-msgstr "Puertos de destino de prioridad baja"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Máquinas de prioridad baja (destino)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Máquinas de prioridad baja (origen)"
-
-msgid "Low priority source ports"
-msgstr "Puertos de origen de prioridad baja"
-
-msgid "Uplink"
-msgstr "Enlace de salida"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Ancho de banda de subida en Kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Configuración de Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper modela el tráfico para asegurar latencias bajas al tráfico "
-"interactivo incluso cuando la conexión a Internet esté muy saturada."
diff --git a/applications/luci-app-wshaper/po/fr/wshaper.po b/applications/luci-app-wshaper/po/fr/wshaper.po
deleted file mode 100644 (file)
index 2fc9f53..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr "Lien descendant (télé-chargement)"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Bande-passante descendante en kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Hôte ou réseau en notation CIDR."
-
-msgid "Interface"
-msgstr "Interface"
-
-msgid "Low priority destination ports"
-msgstr "Ports-cible à faible priorité"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Hôtes-cible à faible priorité"
-
-msgid "Low priority hosts (Source)"
-msgstr "Hôtes-source à faible priorité"
-
-msgid "Low priority source ports"
-msgstr "Ports-source à faible priorité"
-
-msgid "Uplink"
-msgstr "Lien montant (envois)"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Bande-passante montante en kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Paramètres Wondershaper"
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-
-#~ msgid ""
-#~ "Wondershaper uses traffic shaping to ensure low latencies for interactive "
-#~ "traffic even when your internet connection is highly saturated."
-#~ msgstr ""
-#~ "Wondershaper gère la priorités entre les flux pour assurer une faible "
-#~ "latence au trafic interactif même quand votre connexion Internet est très "
-#~ "chargée."
diff --git a/applications/luci-app-wshaper/po/he/wshaper.po b/applications/luci-app-wshaper/po/he/wshaper.po
deleted file mode 100644 (file)
index f03d5df..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: he\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/hu/wshaper.po b/applications/luci-app-wshaper/po/hu/wshaper.po
deleted file mode 100644 (file)
index 2377fa5..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-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 "Downlink"
-msgstr "Letöltés"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Letöltési sebesség kbit/másodberc-ben"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Gép vagy hálózat (CIDR jelöléssel)"
-
-msgid "Interface"
-msgstr "Interfész"
-
-msgid "Low priority destination ports"
-msgstr "Alacsony prioritású cél portok"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Alacson prioritású cél gépek"
-
-msgid "Low priority hosts (Source)"
-msgstr "Alacsony prioritású forrás gépek"
-
-msgid "Low priority source ports"
-msgstr "Alacson prioritású forrás portok"
-
-msgid "Uplink"
-msgstr "Feltöltés"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Feltöltési sebesség kbit/másodperc-ben"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Wondershaper beállítások"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"A Wondershaper 'traffic shaping'-et használatával biztosítja az interaktív "
-"forgalom alacsony késleletetését még akkor is ha az internet kapcsolat "
-"erősen leterhelt."
diff --git a/applications/luci-app-wshaper/po/it/wshaper.po b/applications/luci-app-wshaper/po/it/wshaper.po
deleted file mode 100644 (file)
index 6a72c7e..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-01-28 01:36+0200\n"
-"PO-Revision-Date: 2013-02-03 14:07+0200\n"
-"Last-Translator: Francesco <3gasas@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.6\n"
-
-msgid "Downlink"
-msgstr "Collegamento discendente"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Larghezza di banda in downstream in kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Host o rete in notazione CIDR."
-
-msgid "Interface"
-msgstr "Interfaccia"
-
-msgid "Low priority destination ports"
-msgstr "Porte di destinazione a bassa priorità"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Hosts a bassa priorità (Destinazione)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Hosts a bassa priorità (Fonte)"
-
-msgid "Low priority source ports"
-msgstr "Porte sorgenti a bassa priorità"
-
-msgid "Uplink"
-msgstr "Uplink"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Larghezza di banda in upstream in kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Impostazioni Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"WonderShaper usa la regolazione del traffico per garantire bassa latenza per "
-"il traffico interattivo anche quando la connessione a Internet è molto "
-"satura."
diff --git a/applications/luci-app-wshaper/po/ja/wshaper.po b/applications/luci-app-wshaper/po/ja/wshaper.po
deleted file mode 100644 (file)
index d58476c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-03-17 18:28+0200\n"
-"PO-Revision-Date: 2012-03-18 09:07+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"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.4\n"
-
-msgid "Downlink"
-msgstr "下りリンク"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "下りリンク帯域 (kbit/sec)"
-
-msgid "Host or Network in CIDR notation."
-msgstr "ホスト名またはCIDR表記のネットワークアドレス"
-
-msgid "Interface"
-msgstr "インターフェース"
-
-msgid "Low priority destination ports"
-msgstr "低優先度の宛先ポート"
-
-msgid "Low priority hosts (Destination)"
-msgstr "低優先度の宛先ホスト"
-
-msgid "Low priority hosts (Source)"
-msgstr "低優先度の送信元ホスト"
-
-msgid "Low priority source ports"
-msgstr "低優先度の送信元ポート"
-
-msgid "Uplink"
-msgstr "上りリンク"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "上りリンク帯域 (kbit/sec)"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Wondershaper 設定"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondweshaperは、インターネット接続が飽和状態の場合でも、低いレイテンシ・円滑"
-"な通信を実現するためにトラフィック・シェーピングを行います。"
diff --git a/applications/luci-app-wshaper/po/ms/wshaper.po b/applications/luci-app-wshaper/po/ms/wshaper.po
deleted file mode 100644 (file)
index ede1386..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ms\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/no/wshaper.po b/applications/luci-app-wshaper/po/no/wshaper.po
deleted file mode 100644 (file)
index 1b1ab32..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Language: nn\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/pl/wshaper.po b/applications/luci-app-wshaper/po/pl/wshaper.po
deleted file mode 100644 (file)
index a85bf00..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-04-14 14:15+0200\n"
-"PO-Revision-Date: 2012-04-14 17:21+0200\n"
-"Last-Translator: Tomecki <przykryweczka@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.4\n"
-
-msgid "Downlink"
-msgstr "Downlink"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Przepustowość pobierania w kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Adres hosta lub adres sieci w notacji CIDR"
-
-msgid "Interface"
-msgstr "Interfejs"
-
-msgid "Low priority destination ports"
-msgstr "Porty docelowe o niskim priorytecie"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Hosty docelowe o niskim priorytecie"
-
-msgid "Low priority hosts (Source)"
-msgstr "Hosty źródłowe o niskim priorytecie"
-
-msgid "Low priority source ports"
-msgstr "Porty źródłowe o niskim priorytecie"
-
-msgid "Uplink"
-msgstr "Uplink"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Przepustowość wysyłania w kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Ustawienia Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper wykorzystuje kształtowanie ruchu aby zapewnić niskie opóźnienia "
-"nawet wtedy, gdy Twoje połączenie internetowe jest wysycone."
diff --git a/applications/luci-app-wshaper/po/pt-br/wshaper.po b/applications/luci-app-wshaper/po/pt-br/wshaper.po
deleted file mode 100644 (file)
index f973ebb..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-18 19:32+0200\n"
-"PO-Revision-Date: 2011-10-18 19:39+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"
-
-msgid "Downlink"
-msgstr "Velocidade para baixar (downlink)"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Taxa de transferência para baixar em kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Equipamento ou Rede na notação CIDR."
-
-msgid "Interface"
-msgstr "Interface"
-
-msgid "Low priority destination ports"
-msgstr "Portas de destino de baixa prioridade"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Equipamentos de baixa prioridade (Destino)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Equipamentos de baixa prioridade (Origem)"
-
-msgid "Low priority source ports"
-msgstr "Portas de origem de baixa prioridade"
-
-msgid "Uplink"
-msgstr "Velocidade para subir (uplink)"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Taxa de transferência para subir em kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Configuração do Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper usa o controle de tráfego para garantir baixa latência para "
-"tráfego interativo mesmo quando sua conexão com a internet está extremamente "
-"saturada."
diff --git a/applications/luci-app-wshaper/po/pt/wshaper.po b/applications/luci-app-wshaper/po/pt/wshaper.po
deleted file mode 100644 (file)
index 96a7be8..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-05-31 12:13+0200\n"
-"PO-Revision-Date: 2013-05-31 12:15+0200\n"
-"Last-Translator: joao.f.vieira <joao.f.vieira@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: pt\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 "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr "Interface"
-
-msgid "Low priority destination ports"
-msgstr "Porta de destino com baixa prioridade"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Hosts com baixa prioridade (Destino)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Hosts com baixa prioridade (Origem)"
-
-msgid "Low priority source ports"
-msgstr "Portas de origem com baixa prioridade"
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/ro/wshaper.po b/applications/luci-app-wshaper/po/ro/wshaper.po
deleted file mode 100644 (file)
index d2569f6..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-06-28 18:45+0200\n"
-"PO-Revision-Date: 2014-06-28 18:46+0200\n"
-"Last-Translator: xxvirusxx <condor20_05@yahoo.it>\n"
-"Language-Team: LANGUAGE <LL@li.org>\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 "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/ru/wshaper.po b/applications/luci-app-wshaper/po/ru/wshaper.po
deleted file mode 100644 (file)
index 1984aac..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: LuCI: wsharper\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-01-26 15:09+0200\n"
-"PO-Revision-Date: 2012-08-15 11:53+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"
-"X-Generator: Pootle 2.0.4\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-
-msgid "Downlink"
-msgstr "Нисходящий канал"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Ширина полосы пропускания прямого канала (кбит/с)"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Хост или сеть в нотации CIDR."
-
-msgid "Interface"
-msgstr "Интерфейс"
-
-msgid "Low priority destination ports"
-msgstr "Низкоприоритетные порты назначения"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Низкоприоритетные хосты назначения"
-
-msgid "Low priority hosts (Source)"
-msgstr "Низкоприоритетные хосты источника"
-
-msgid "Low priority source ports"
-msgstr "Низкоприоритетные порты источника"
-
-msgid "Uplink"
-msgstr "Восходящий канал"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Пропускная способность обратного канала (кбит/c)"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Установки Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper использует формирование трафика для обеспечения низких задержек "
-"интерактивного трафика даже в случае высокой загруженности интернет-"
-"соединения."
diff --git a/applications/luci-app-wshaper/po/sk/wshaper.po b/applications/luci-app-wshaper/po/sk/wshaper.po
deleted file mode 100644 (file)
index 4e03aa8..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/sv/wshaper.po b/applications/luci-app-wshaper/po/sv/wshaper.po
deleted file mode 100644 (file)
index 4f0fc53..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-msgid ""
-msgstr ""
-"Content-Type: text/plain; charset=UTF-8\n"
-"Project-Id-Version: PACKAGE VERSION\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"Language: sv\n"
-"MIME-Version: 1.0\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-msgid "Downlink"
-msgstr "Nerladdningslänk"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Nerströms bandbredd i kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Värd eller Nätverk i CIDR-noteringen"
-
-msgid "Interface"
-msgstr "Gränssnitt"
-
-msgid "Low priority destination ports"
-msgstr "Destinations-portar med låg prioritet"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Värdar med låg prioritet (Destination)"
-
-msgid "Low priority hosts (Source)"
-msgstr "Värdar med låg prioritet (Källa)"
-
-msgid "Low priority source ports"
-msgstr "Käll-portar med låg prioritet"
-
-msgid "Uplink"
-msgstr "Uppladdningslänk"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Bandbredd uppströms i kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Inställningar för Wondershaper"
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper formar trafiken för att säkerställa låga latenser för "
-"interaktiv trafik även när din internetanslutning är mättad som mest."
diff --git a/applications/luci-app-wshaper/po/templates/wshaper.pot b/applications/luci-app-wshaper/po/templates/wshaper.pot
deleted file mode 100644 (file)
index 42de011..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-msgid ""
-msgstr "Content-Type: text/plain; charset=UTF-8"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/tr/wshaper.po b/applications/luci-app-wshaper/po/tr/wshaper.po
deleted file mode 100644 (file)
index 7c0acb0..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-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 "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/uk/wshaper.po b/applications/luci-app-wshaper/po/uk/wshaper.po
deleted file mode 100644 (file)
index 94d20df..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2012-04-28 21:54+0200\n"
-"Last-Translator: Yurii <yuripet@gmail.com>\n"
-"Language-Team: none\n"
-"Language: uk\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 2.0.6\n"
-
-msgid "Downlink"
-msgstr "Прямий канал"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "Ширина смуги пропускання прямого каналу (кбіт/с)"
-
-msgid "Host or Network in CIDR notation."
-msgstr "Вузол або мережа в нотації CIDR."
-
-msgid "Interface"
-msgstr "Інтерфейс"
-
-msgid "Low priority destination ports"
-msgstr "Низькопріоритетні порти призначення"
-
-msgid "Low priority hosts (Destination)"
-msgstr "Низькопріоритетні вузли призначення"
-
-msgid "Low priority hosts (Source)"
-msgstr "Низькопріоритетні вузли джерела"
-
-msgid "Low priority source ports"
-msgstr "Низькопріоритетні порти джерела"
-
-msgid "Uplink"
-msgstr "Зворотній канал"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "Ширина смуги пропускання зворотного каналу (кбіт/c)"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Налаштування Wondershaper"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper використовує формування трафіку для забезпечення низької "
-"затримки інтерактивного трафіку, навіть якщо ваше з'єднання з інтернетом "
-"дуже насичене."
diff --git a/applications/luci-app-wshaper/po/vi/wshaper.po b/applications/luci-app-wshaper/po/vi/wshaper.po
deleted file mode 100644 (file)
index e0b8e53..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid ""
-msgstr ""
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Project-Id-Version: LuCI\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: vi\n"
-"X-Generator: Poedit 1.6.10\n"
-
-msgid "Downlink"
-msgstr ""
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Host or Network in CIDR notation."
-msgstr ""
-
-msgid "Interface"
-msgstr ""
-
-msgid "Low priority destination ports"
-msgstr ""
-
-msgid "Low priority hosts (Destination)"
-msgstr ""
-
-msgid "Low priority hosts (Source)"
-msgstr ""
-
-msgid "Low priority source ports"
-msgstr ""
-
-msgid "Uplink"
-msgstr ""
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr ""
-
-msgid "Wondershaper"
-msgstr ""
-
-msgid "Wondershaper settings"
-msgstr ""
-
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
diff --git a/applications/luci-app-wshaper/po/zh-cn/wshaper.po b/applications/luci-app-wshaper/po/zh-cn/wshaper.po
deleted file mode 100644 (file)
index a35ccd0..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-03 08:25+0200\n"
-"PO-Revision-Date: 2013-10-10 20:15+0200\n"
-"Last-Translator: Tanyingyu <Tanyingyu@163.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\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 "Downlink"
-msgstr "下载链接"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "下载带宽kbit/s"
-
-msgid "Host or Network in CIDR notation."
-msgstr "主机或网络的CIDR标记。"
-
-msgid "Interface"
-msgstr "端口"
-
-msgid "Low priority destination ports"
-msgstr "低优先级目标端口"
-
-msgid "Low priority hosts (Destination)"
-msgstr "低优先级目标主机"
-
-msgid "Low priority hosts (Source)"
-msgstr "低优先级源主机"
-
-msgid "Low priority source ports"
-msgstr "低优先级源端口"
-
-msgid "Uplink"
-msgstr "上联"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "上行带宽kbit/s"
-
-msgid "Wondershaper"
-msgstr "Wondershaper"
-
-msgid "Wondershaper settings"
-msgstr "Wondershaper设置"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"Wondershaper通过流量匹配,确保低延时的交互数据包,甚至当你的互联网连接是高度饱"
-"和。"
diff --git a/applications/luci-app-wshaper/po/zh-tw/wshaper.po b/applications/luci-app-wshaper/po/zh-tw/wshaper.po
deleted file mode 100644 (file)
index 1814825..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-05-14 12:40+0200\n"
-"Last-Translator: omnistack <omnistack@gmail.com>\n"
-"Language-Team: none\n"
-"Language: zh_TW\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 "Downlink"
-msgstr "下載"
-
-msgid "Downstream bandwidth in kbit/s"
-msgstr "以 kbit/s表示的下載頻寬"
-
-msgid "Host or Network in CIDR notation."
-msgstr "CIDR無類別域間路由中的主機或網路"
-
-msgid "Interface"
-msgstr "介面"
-
-msgid "Low priority destination ports"
-msgstr "低優先權目地埠號"
-
-msgid "Low priority hosts (Destination)"
-msgstr "低優先權主機(目的地)"
-
-msgid "Low priority hosts (Source)"
-msgstr "低優先權主機(來源)"
-
-msgid "Low priority source ports"
-msgstr "低優先權來源埠號"
-
-msgid "Uplink"
-msgstr "上傳"
-
-msgid "Upstream bandwidth in kbit/s"
-msgstr "以kbit/s表示的上傳頻寬"
-
-msgid "Wondershaper"
-msgstr "Wondershaper頻寬管理"
-
-msgid "Wondershaper settings"
-msgstr "Wondershaper設定值"
-
-#, fuzzy
-msgid ""
-"Wondershaper shapes traffic to ensure low latencies for interactive traffic "
-"even when your internet connection is highly saturated."
-msgstr ""
-"既使你的網路連線達到高飽和, Wondershaper採用流量銳化塑形以針對未知的流量保證"
-"低延遲"
diff --git a/applications/luci-app-wshaper/root/etc/uci-defaults/40_wshaper b/applications/luci-app-wshaper/root/etc/uci-defaults/40_wshaper
deleted file mode 100644 (file)
index 918dff2..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-uci -q batch <<-EOF >/dev/null
-       delete ucitrack.@wshaper[-1]
-       set ucitrack.wshaper="wshaper"
-       set ucitrack.wshaper.exec='/etc/init.d/wshaper start'
-       commit ucitrack
-EOF
-
-rm -f /tmp/luci-indexcache
-exit 0
index b5f4b09..d1e752e 100644 (file)
@@ -11,10 +11,10 @@ LUCI_BASENAME:=ssl-openssl
 
 LUCI_TITLE:=LuCI with HTTPS support (OpenSSL as SSL backend)
 LUCI_DESCRIPTION:=LuCI with OpenSSL as the SSL backend (libustream-openssl). \
Note: px5g still requires libmbedtls (in LEDE) or libpolarssl (in Openwrt). \
- In LEDE it is also possible to replace px5g with openssl-util as uhttpd can \
- also generate keys with openssl commandline tools if px5g is not installed.
-LUCI_DEPENDS:=+luci +libustream-openssl +px5g
OpenSSL cmd tools (openssl-util) are used by uhttpd for SSL key generation \
+ instead of the default px5g. (If px5g is installed, uhttpd will prefer that.)
+
+LUCI_DEPENDS:=+luci +libustream-openssl +openssl-util
 
 include ../../luci.mk
 
index c15624a..9bdb603 100644 (file)
@@ -1,19 +1,35 @@
 config 'community' 'profile'
        option 'name' 'Freifunk Potsdam'
        option 'homepage' 'http://potsdam.freifunk.net'
-       option 'ssid' 'www.freifunk-potsdam.de'
+       option 'ssid' 'Freifunk-Potsdam-XXX-YYY'
        option 'mesh_network' '10.22.0.0/16'
        option 'splash_network' '192.168.22.0/24'
        option 'splash_prefix' '24'
        option 'latitude' '52.39349'
        option 'longitude' '13.06489'
+       option 'ipv6' '0'
+
+config 'defaults' 'interface'
+       option 'netmask' '255.255.0.0'
+       option 'dns' '85.214.20.141 213.73.91.35 194.150.168.168'
+       option 'delegate' '0'
 
 config 'defaults' 'wifi_device'
        option 'channel' '5'
 
+config 'defaults' 'wifi_device_5'
+       option 'channel' '44'
+
 config 'defaults' 'bssidscheme'
        option '5' '02:CA:FF:EE:BA:BE'
+       option '44' '02:CA:FF:EE:BA:BE'
 
-config 'defaults' 'interface'
-        option 'dns' '85.214.20.141 213.73.91.35 194.150.168.168'
+config 'defaults' 'ssidscheme'
+       option '5' 'Mesh23'
+       option '44' 'Mesh23'
+
+config 'defaults' 'dhcp'
+       option 'leasetime' '15m'
 
+config 'defaults' 'olsrd'
+       option 'LinkQualityAlgorithm' 'etx_ffeth'
index d9bbd99..2b9336f 100644 (file)
@@ -4,7 +4,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freifunk-common
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
index 9a46f05..b1a2e41 100644 (file)
@@ -104,12 +104,6 @@ config 'defaults' 'wifi_iface'
        option 'bssid' '12:CA:FF:EE:BA:BE'
        option 'mcast_rate' '6000'
 
-config 'defaults' 'madwifi_wifi_iface'
-        option 'bgscan' '0'
-       option 'sw_merge' '1'
-        option 'probereq' '1'
-        option 'mcast_rate' '5500'
-
 config 'defaults' 'interface'
        option 'netmask' '255.255.0.0'
        option 'dns' '8.8.8.8 212.204.49.83 141.1.1.1'
index 9ac5a06..6298346 100644 (file)
@@ -4,7 +4,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=meshwizard
-PKG_RELEASE:=0.3.2
+PKG_RELEASE:=0.3.3
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
index e9139ed..f2d10cc 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # This script renames IB_wifi_ interface names into real interface names used on this system.
-# E.g. wireless.IB_wifi0 would become wireless.wifi0 on madwifi and wireless.radio0 on mac80211
+# E.g. wireless.IB_wifi0 would become wireless.radio0 on mac80211
 
 . $dir/functions.sh
 
index 41feb86..707b7b7 100755 (executable)
@@ -59,11 +59,6 @@ uci set wireless.$net\_iface=wifi-iface
 # create new wifi-iface for $net from defaults
 set_defaults "wifi_iface_" wireless.$net\_iface
 
-# overwrite some settings for type atheros (madwifi)
-if [ "$type" = "atheros" ]; then
-       set_defaults "madwifi_wifi_iface_" wireless.${net}
-fi
-
 # overwrite defaults
 bssid="$($dir/helpers/gen_bssid.sh $channel $community)"
 
index 0585ab5..7fdff3c 100755 (executable)
@@ -8,9 +8,7 @@ if [ -z "$dev" -o -z "$type" ]; then
        exit 1
 fi
 
-if [ "$type" = "atheros" ]; then
-        exit 0
-elif [ "$type" = "mac80211" ]; then
+if [ "$type" = "mac80211" ]; then
        # not hostapd[-mini], no VAP
        if [ ! -x /usr/sbin/hostapd ]; then
                echo "WARNING: hostapd[-mini] is required to be able to use VAP with mac80211."
diff --git a/contrib/package/remote-update/Makefile b/contrib/package/remote-update/Makefile
deleted file mode 100644 (file)
index 4f8b3a5..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (C) 2009 Jo-Philipp Wich <jow@openwrt.org>
-#
-# This is free software, licensed under the Apache 2.0 license.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=remote-update
-PKG_RELEASE:=4
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/remote-update
-  SECTION:=luci
-  CATEGORY:=LuCI
-  SUBMENU:=9. Freifunk
-  TITLE:=Freifunk remote update utility.
-  DEPENDS:=@TARGET_atheros||@TARGET_ar71xx||@TARGET_brcm_2_4
-endef
-
-define Package/remote-update/description
-  The freifunk remote-update utility uses sysupgrade to reflash the currently 
-  running firmware while keeping most of the existing configuratio.
-endef
-
-define Build/Prepare
-       mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/remote-update/install
-       $(CP) ./files/* $(1)/
-endef
-
-$(eval $(call BuildPackage,remote-update))
diff --git a/contrib/package/remote-update/files/usr/sbin/remote-update b/contrib/package/remote-update/files/usr/sbin/remote-update
deleted file mode 100755 (executable)
index 6e45e48..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-#!/bin/sh
-
-local tempfile=/tmp/remote-upgrade.img
-local D2='\([0-9]\{2\}\)'
-local D4='\([0-9]\{4\}\)'
-local NL='
-'
-
-find_architecture()
-{
-       local ifs="$IFS"; IFS="-"
-       set -- $(opkg list_installed kernel)
-       IFS="$ifs"
-
-       echo "$3"
-}
-
-find_image()
-{
-       case "$1" in
-               atheros)
-                       echo "openwrt-atheros-combined.squashfs.img"
-               ;;
-               ar71xx)
-                       echo "openwrt-ar71xx-combined.squashfs.img"
-               ;;
-               brcm)
-                       echo "openwrt-brcm-2.4-squashfs.trx"
-               ;;
-       esac
-}
-
-check_image()
-{
-       local file; for file in /lib/upgrade/*.sh; do . $file; done
-       if platform_check_image "$1" >/dev/null 2>/dev/null; then
-               return 0
-       fi
-       return 1
-}
-
-find_remote_checksum()
-{
-       wget -qO- ${1%/*}/md5sums 2>/dev/null | \
-               sed -ne '/'$2'/ { s/ .*//p }'
-}
-
-find_local_checksum()
-{
-       set -- $(md5sum "$tempfile")
-       echo $1
-}
-
-find_remote_info()
-{
-       wget -qO- "${1%/*}/VERSION.txt" 2>/dev/null
-}
-
-find_remote_version()
-{
-       find_remote_info "$1" | \
-               sed -ne "s!.*$D4/$D2/$D2 $D2:$D2.*!\\1\\2\\3\\4\\5!p;t"
-}
-
-find_local_version()
-{
-       if [ -f /rom/etc/banner ]; then
-               sed -ne "s!.*$D4/$D2/$D2 $D2:$D2.*!\\1\\2\\3\\4\\5!p;t" \
-                       /rom/etc/banner
-       else
-               date +"%Y%m%d%H%M" -r /bin/sh
-       fi
-}
-
-stop_service()
-{
-       [ -x /etc/init.d/$1 ] && {
-               echo -n "Stopping service $1 ... "
-               /etc/init.d/$1 stop >/dev/null 2>/dev/null
-               echo "done"
-       }
-}
-
-do_wait()
-{
-       if [ ${1:-0} -gt 0 ]; then
-               echo -n "${2:-Waiting} "
-               for i in $(seq 1 $1); do
-                       printf "%-2dseconds" $(($1-$i))
-                       sleep 1
-                       echo -en "\b\b\b\b\b\b\b\b\b"
-               done
-               echo "${NL}"
-       fi
-}
-
-version_compare()
-{
-       local v1="$1"
-       local v2="$2"
-
-       while [ -n "$v1" -o -n "$v2" ]; do
-               if [ -z "${v2:0:4}" -o "${v1:0:4}" -gt "${v2:0:4}" ]; then
-                       return 1
-               elif [ -z "${v1:0:4}" -o "${v1:0:4}" -lt "${v2:0:4}" ]; then
-                       return 2
-               fi
-
-               v1="${v1:4}"
-               v2="${v2:4}"
-       done
-
-       return 0
-}
-
-usage()
-{
-       cat <<EOT
-
-Usage:
-  remote-update -h
-  remote-update [-u <update url>] -c
-  remote-update [-v] [-y] [-u <update url>] -w
-  remote-update [-d] [-n] [-v] [-y] [-s <sleep seconds>] [-u <update url>]
-
-Actions:
-  -h    Display this help message and exit.
-  -c    Check for firmware update and exit.
-  -w    Fetch image and exit, do not perform flash write.
-
-Options:
-  -d    Do not detach from terminal.
-  -n    Do not backup configuration.
-  -v    Skip verification of downloaded image.
-  -y    Assume defaults for all questions.
-
-  -s <seconds>
-    Sleep given amount of seconds before starting flash write.
-    If ommitted and '-y' is not used, 5 seconds are assumed.
-
-  -u <url>
-    Fetch firmware image from given url. A file "md5sums" is expected
-    in the same remote directory. If there is no such file, use -v to
-    suppress verification.
-
-EOT
-
-       exit 1
-}
-
-
-while getopts "s:u:cdnvwyh" flag; do
-       case $flag in
-               s) sleeptime="$OPTARG";;
-               u) updateurl="$OPTARG";;
-               c) checkupdate=1;;
-               d) nodetach=1;;
-               n) nobackup=1;;
-               v) noverify=1;;
-               w) noflash=1;;
-               y) noquestions=1;;
-               *) usage;;
-       esac
-done
-
-
-local image_url="$updateurl"
-local image_name="${image_url##*/}"
-
-[ -z "$image_url" ] && {
-       local arch=$(find_architecture)
-       local image=$(find_image "$arch")
-       local repo=$(uci get freifunk.upgrade.repository 2>/dev/null)
-       repo=${repo:-$(uci get system.upgrade.repository 2>/dev/null)}
-
-       [ -z "$arch" ] && {
-               echo "Can not determine the current architecture."
-               exit 1
-       }
-
-       [ -z "$repo" ] && {
-               echo "No repository configured in 'system.upgrade.repository'."
-               echo "Use the '-u' flag to specify an image location."
-               exit 1
-       }
-
-       [ -z "$image" ] && {
-               echo "No suitable image for the '$arch' architecture."
-               echo "Your platform is not supported."
-               exit 1
-       }
-
-       echo "Architecture: $arch"
-       echo "Repository:   $repo"
-
-       image_name="$image"
-       image_url="${repo%/}/$arch/$image"
-}
-
-
-if [ "$checkupdate" = 1 ]; then
-       local v1=$(find_local_version)
-       local v2=$(find_remote_version "$image_url")
-
-       [ -n "$v1" -a -n "$v2" ] && {
-               version_compare "$v1" "$v2"
-               [ $? == 2 ] && {
-                       echo "Update available!${NL}Local:  $v1${NL}Remote: $v2${NL}--"
-                       find_remote_info "$image_url"
-                       exit 0
-               } || {
-                       echo "Local version $v1 is up to date"
-                       exit 2
-               }
-       } || {
-               echo "No remote time stamp found."
-               exit 1
-       }
-else
-       if [ "$noquestions" != 1 ]; then
-               echo -n "${NL}About to download $image_name. Continue? [y] "
-               read answer
-               case "$answer" in
-                       [nN]) exit 1;;
-               esac
-       fi
-
-       echo -n "Downloading $image_name ... "
-       rm -f $tempfile
-       wget -qO $tempfile "$image_url" 2>/dev/null
-       [ $? == 0 ] && echo done || {
-               echo failed
-               rm -f $tempfile
-               exit 1
-       }
-
-       if [ "$noverify" != 1 ]; then
-               echo -n "Verifying $image_name ... "
-
-               local md5_remote=$(find_remote_checksum "$image_url" "$image_name")
-               local md5_local=$(find_local_checksum)
-
-               check_image "$tempfile"
-               local image_ok=$?
-
-               if [ $image_ok = 0 -a -n "$md5_remote" -a -n "$md5_local" -a "$md5_remote" = "$md5_local" ]; then
-                       echo "done"
-               else
-                       if [ $image_ok != 0 ]; then
-                               echo "unsupported image type"
-                       else
-                               echo "checksum mismatch! (local:${md5_local:-(none)} remote:${md5_remote:-(none)})"
-                       fi
-
-                       local answer=n
-                       if [ "$noquestions" != 1 ]; then
-                               echo -n "${NL}Verification failed. Continue anyway? [n] "
-                               read answer
-                       fi
-
-                       case "$answer" in
-                               [yYjJ]*) : ;;
-                               *)
-                                       echo "Aborting."
-                                       rm -f $tempfile
-                                       exit 1
-                               ;;
-                       esac
-               fi
-       fi
-
-       if [ "$noflash" != 1 ]; then
-               if [ -f "$tempfile" ]; then
-                       if [ "$noquestions" == 1 ]; then
-                               do_wait ${sleeptime:-5} "${NL}About to start flashing, hit <Ctrl-C> to abort!${NL}${NL}Starting in"
-                       else
-                               if [ -z "$nobackup" ]; then
-                                       echo -n "${NL}Keep configuration files? [y] "
-                                       read answer
-                                       case "$answer" in
-                                               [nN]) nobackup=1;;
-                                       esac
-                               fi
-
-                               echo -n "${NL}About to start flashing!${NL}Hit <Enter> to continue or <Ctrl-C> to abort.${NL}"
-                               read answer
-                       fi
-
-                       for s in lucid collectd; do stop_service $s; done
-
-                       if [ "$nodetach" != 1 ]; then
-                               echo -n "Starting sysupgrade in background ... "
-                               /bin/busybox start-stop-daemon -S -b -x /sbin/sysupgrade -- ${nobackup:+-n} "$tempfile"
-                               echo "done"
-                       else
-                               echo "Executing sysupgrade ... "
-                               exec /sbin/sysupgrade ${nobackup:+-n} "$tempfile"
-                       fi
-               else
-                       echo "No upgrade image found!"
-                       exit 1
-               fi
-       else
-               echo "Image saved in '$tempfile'"
-       fi
-fi
index 12ca111..ba184ed 100644 (file)
@@ -355,7 +355,7 @@ static int nixio_stat(lua_State *L) {
 
 static int nixio_lstat(lua_State *L) {
        nixio_stat_t buf;
-       if (stat(luaL_checkstring(L, 1), &buf)) {
+       if (lstat(luaL_checkstring(L, 1), &buf)) {
                return nixio__perror(L);
        } else {
                nixio__push_stat(L, &buf);
diff --git a/luci.mk b/luci.mk
index 69aecaa..137886f 100644 (file)
--- a/luci.mk
+++ b/luci.mk
@@ -70,7 +70,8 @@ PKG_VERSION?=$(if $(DUMP),x,$(strip $(shell \
 PKG_GITBRANCH?=$(if $(DUMP),x,$(strip $(shell \
        variant="LuCI"; \
        if git log -1 >/dev/null 2>/dev/null; then \
-               branch="$$(git symbolic-ref --short -q HEAD 2>/dev/null)"; \
+               branch="$$(git branch --remote --verbose --no-abbrev --contains 2>/dev/null | \
+                       sed -rne 's|^[^/]+/([^ ]+) [a-f0-9]{40} .+$$|\1|p' | head -n1)"; \
                if [ "$$branch" != "master" ]; then \
                        variant="LuCI $$branch branch"; \
                else \
index 0ca7e26..8e66cbc 100644 (file)
@@ -118,6 +118,50 @@ var cbi_validators = {
                return false;
        },
 
+       'ipmask': function()
+       {
+               return cbi_validators.ipmask4.apply(this) ||
+                       cbi_validators.ipmask6.apply(this);
+       },
+
+       'ipmask4': function()
+       {
+               var ip = this, mask = 32;
+
+               if (ip.match(/^(\S+)\/(\S+)$/))
+               {
+                       ip = RegExp.$1;
+                       mask = RegExp.$2;
+               }
+
+               if (!isNaN(mask) && (mask < 0 || mask > 32))
+                       return false;
+
+               if (isNaN(mask) && !cbi_validators.ip4addr.apply(mask))
+                       return false;
+
+               return cbi_validators.ip4addr.apply(ip);
+       },
+
+       'ipmask6': function()
+       {
+               var ip = this, mask = 128;
+
+               if (ip.match(/^(\S+)\/(\S+)$/))
+               {
+                       ip = RegExp.$1;
+                       mask = RegExp.$2;
+               }
+
+               if (!isNaN(mask) && (mask < 0 || mask > 128))
+                       return false;
+
+               if (isNaN(mask) && !cbi_validators.ip6addr.apply(mask))
+                       return false;
+
+               return cbi_validators.ip6addr.apply(ip);
+       },
+
        'port': function()
        {
                var p = Int(this);
index 626ad91..cf56566 100644 (file)
@@ -1,4 +1,5 @@
 -- Copyright 2010 Jo-Philipp Wich <jow@openwrt.org>
+-- Copyright 2017 Dan Luedtke <mail@danrl.com>
 -- Licensed to the public under the Apache License 2.0.
 
 local fs = require "nixio.fs"
@@ -131,6 +132,48 @@ function ip6prefix(val)
        return ( val and val >= 0 and val <= 128 )
 end
 
+function ipmask(val)
+       return ipmask4(val) or ipmask6(val)
+end
+
+function ipmask4(val)
+       local ip, mask = val:match("^([^/]+)/([^/]+)$")
+       local bits = tonumber(mask)
+
+       if bits and (bits < 0 or bits > 32) then
+               return false
+       end
+
+       if not bits and mask and not ip4addr(mask) then
+               return false
+       end
+
+       return ip4addr(ip or val)
+end
+
+function ipmask6(val)
+       local ip, mask = val:match("^([^/]+)/([^/]+)$")
+       local bits = tonumber(mask)
+
+       if bits and (bits < 0 or bits > 128) then
+               return false
+       end
+
+       if not bits and mask and not ip6addr(mask) then
+               return false
+       end
+
+       return ip6addr(ip or val)
+end
+
+function ip6hostid(val)
+       if val and val:match("^[a-fA-F0-9:]+$") and (#val > 2) then
+               return (ip6addr("2001:db8:0:0" .. val) or ip6addr("2001:db8:0:0:" .. val))
+       end
+
+       return false
+end
+
 function port(val)
        val = tonumber(val)
        return ( val and val >= 0 and val <= 65535 )
@@ -233,11 +276,33 @@ function wepkey(val)
        end
 end
 
+function hexstring(val)
+       if val then
+               return (val:match("^[a-fA-F0-9]+$") ~= nil)
+       end
+       return false
+end
+
+function hex(val, maxbytes)
+       maxbytes = tonumber(maxbytes)
+       if val and maxbytes ~= nil then
+               return ((val:match("^0x[a-fA-F0-9]+$") ~= nil) and (#val <= 2 + maxbytes * 2))
+       end
+       return false
+end
+
+function base64(val)
+       if val then
+               return (val:match("^[a-zA-Z0-9/+]+=?=?$") ~= nil) and (math.fmod(#val, 4) == 0)
+       end
+       return false
+end
+
 function string(val)
        return true             -- Everything qualifies as valid string
 end
 
-function directory( val, seen )
+function directory(val, seen)
        local s = fs.stat(val)
        seen = seen or { }
 
@@ -253,7 +318,7 @@ function directory( val, seen )
        return false
 end
 
-function file( val, seen )
+function file(val, seen)
        local s = fs.stat(val)
        seen = seen or { }
 
@@ -269,7 +334,7 @@ function file( val, seen )
        return false
 end
 
-function device( val, seen )
+function device(val, seen)
        local s = fs.stat(val)
        seen = seen or { }
 
@@ -378,30 +443,29 @@ function dateyyyymmdd(val)
                        return false;
                end
 
-               local days_in_month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
-
-               local function is_leap_year(year)
-                       return (year % 4 == 0) and ((year % 100 ~= 0) or (year % 400 == 0))
-               end
-
-               function get_days_in_month(month, year)
-                       if (month == 2) and is_leap_year(year) then
-                                       return 29
-                       else
-                               return days_in_month[month]
-                       end
-               end
-               if (year < 2015) then
-                       return false
-               end 
-               if ((month == 0) or (month > 12)) then
-                       return false
-               end 
-               if ((day == 0) or (day > get_days_in_month(month, year))) then
-                       return false
-               end
-               return true
+               local days_in_month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+
+               local function is_leap_year(year)
+                       return (year % 4 == 0) and ((year % 100 ~= 0) or (year % 400 == 0))
+               end
+
+               function get_days_in_month(month, year)
+                       if (month == 2) and is_leap_year(year) then
+                               return 29
+                       else
+                               return days_in_month[month]
+                       end
+               end
+               if (year < 2015) then
+                       return false
+               end
+               if ((month == 0) or (month > 12)) then
+                       return false
+               end
+               if ((day == 0) or (day > get_days_in_month(month, year))) then
+                       return false
+               end
+               return true
        end
        return false
 end
-
index 2d8336b..d9ef408 100644 (file)
@@ -950,6 +950,13 @@ function protocol.dns6addrs(self)
        return dns
 end
 
+function protocol.ip6prefix(self)
+       local prefix = self:_ubus("ipv6-prefix")
+       if prefix and #prefix > 0 then
+               return "%s/%d" %{ prefix[1].address, prefix[1].mask }
+       end
+end
+
 function protocol.is_bridge(self)
        return (not self:is_virtual() and self:type() == "bridge")
 end
@@ -1355,8 +1362,6 @@ function wifidev.get_i18n(self)
        local t = "Generic"
        if self.iwinfo.type == "wl" then
                t = "Broadcom"
-       elseif self.iwinfo.type == "madwifi" then
-               t = "Atheros"
        end
 
        local m = ""
index 4da0cf9..95ff46d 100644 (file)
@@ -26,17 +26,18 @@ local function dhcp_leases_common(family)
                                break
                        else
                                local ts, mac, ip, name, duid = ln:match("^(%d+) (%S+) (%S+) (%S+) (%S+)")
+                               local expire = tonumber(ts) or 0
                                if ts and mac and ip and name and duid then
                                        if family == 4 and not ip:match(":") then
                                                rv[#rv+1] = {
-                                                       expires  = os.difftime(tonumber(ts) or 0, os.time()),
+                                                       expires  = (expire ~= 0) and os.difftime(expire, os.time()),
                                                        macaddr  = mac,
                                                        ipaddr   = ip,
                                                        hostname = (name ~= "*") and name
                                                }
                                        elseif family == 6 and ip:match(":") then
                                                rv[#rv+1] = {
-                                                       expires  = os.difftime(tonumber(ts) or 0, os.time()),
+                                                       expires  = (expire ~= 0) and os.difftime(expire, os.time()),
                                                        ip6addr  = ip,
                                                        duid     = (duid ~= "*") and duid,
                                                        hostname = (name ~= "*") and name
@@ -73,9 +74,19 @@ local function dhcp_leases_common(family)
                                                hostname = (name ~= "-") and name
                                        }
                                elseif ip and iaid == "ipv4" and family == 4 then
+                                       local mac, mac1, mac2, mac3, mac4, mac5, mac6
+                                       if duid and type(duid) == "string" then
+                                                mac1, mac2, mac3, mac4, mac5, mac6 = duid:match("^(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)(%x%x)$")
+                                       end
+                                       if not (mac1 and mac2 and mac3 and mac4 and mac5 and mac6) then
+                                               mac = "FF:FF:FF:FF:FF:FF"
+                                       else
+                                               mac = mac1..":"..mac2..":"..mac3..":"..mac4..":"..mac5..":"..mac6
+                                       end
                                        rv[#rv+1] = {
                                                expires  = (expire >= 0) and os.difftime(expire, os.time()),
                                                macaddr  = duid,
+                                               macaddr  = mac:lower(),
                                                ipaddr   = ip,
                                                hostname = (name ~= "-") and name
                                        }
index 246ef43..db17450 100644 (file)
@@ -36,7 +36,7 @@
                                <label<%= attr("for", cbid.."-"..key)%>></label>
                                <%=pcdata(self.vallist[i])%>
                        </label>
-                       <% if i == self.size then write('<br />') end %>
+                       <% if self.size and (i % self.size) == 0 then write('<br />') end %>
                <% end %>
        </div>
 <% end %>
index ec57391..66eef39 100644 (file)
@@ -52,12 +52,36 @@ msgstr "Càrrega d'1 minut:"
 msgid "15 Minute Load:"
 msgstr "Càrrega de 15 minuts:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Càrrega de 5 minuts:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -146,9 +170,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Suport AR"
-
 msgid "ARP retry threshold"
 msgstr "Llindar de reintent ARP"
 
@@ -390,9 +411,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Estacions associades"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Controlador sense fils d'Atheros 802.11%s"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -472,9 +490,6 @@ msgstr "Enrere al resum"
 msgid "Back to scan results"
 msgstr "Enrere als resultats de l'escaneig"
 
-msgid "Background Scan"
-msgstr "Escaneig de fons"
-
 msgid "Backup / Flash Firmware"
 msgstr "Còpia de seguretat / Recàrrega de programari"
 
@@ -638,9 +653,6 @@ msgstr "Ordre"
 msgid "Common Configuration"
 msgstr "Configuració comuna"
 
-msgid "Compression"
-msgstr "Compressió"
-
 msgid "Configuration"
 msgstr "Configuració"
 
@@ -858,12 +870,12 @@ msgstr ""
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Inhabilita el temporitzador HW-Beacon"
-
 msgid "Disabled"
 msgstr "Inhabilitat"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Descarta les respostes RFC1918 des de dalt"
 
@@ -902,9 +914,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr "No enviïs les respostes de prova"
-
 msgid "Domain required"
 msgstr "Es requereix un domini"
 
@@ -1032,6 +1041,11 @@ msgstr "Activa/Desactiva"
 msgid "Enabled"
 msgstr "Habilitat"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Habilita l'Spanning Tree Protocol a aquest pont"
 
@@ -1078,6 +1092,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr ""
 
@@ -1090,9 +1110,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Fast Frames"
-
 msgid "File"
 msgstr "Fitxer"
 
@@ -1128,6 +1145,9 @@ msgstr "Acaba"
 msgid "Firewall"
 msgstr "Tallafocs"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Ajusts de tallafocs"
 
@@ -1328,6 +1348,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Adreça IP"
 
@@ -1421,6 +1444,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Adreça IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-en-IPv4 (RFC4213)"
 
@@ -1574,7 +1600,7 @@ msgstr ""
 "Sembla que intentes actualitzar una imatge que no hi cap a la memòria flaix, "
 "si us plau verifica el fitxer d'imatge!"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr "Es requereix JavaScript!"
 
 msgid "Join Network"
@@ -1687,6 +1713,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1819,9 +1861,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Velocitat màxima"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1857,9 +1896,6 @@ msgstr "Ús de Memòria (%)"
 msgid "Metric"
 msgstr "Mètric"
 
-msgid "Minimum Rate"
-msgstr "Velocitat mínima"
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1872,6 +1908,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Manca l'extensió de protocol del protocol %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Mode"
 
@@ -1930,9 +1969,6 @@ msgstr "Baixa"
 msgid "Move up"
 msgstr "Puja"
 
-msgid "Multicast Rate"
-msgstr "Velocitat de difusió selectiva"
-
 msgid "Multicast address"
 msgstr "Adreça de difusió selectiva"
 
@@ -2125,6 +2161,9 @@ msgstr "Opció canviada"
 msgid "Option removed"
 msgstr "Opció treta"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2135,8 +2174,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2173,9 +2217,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr "Sortint:"
 
-msgid "Outdoor Channels"
-msgstr "Canals d'exteriors"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2223,6 +2264,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2352,6 +2396,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2417,6 +2464,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Calidad"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2498,6 +2551,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2516,6 +2572,9 @@ msgstr "Rep"
 msgid "Receiver Antenna"
 msgstr "Antena receptora"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Reconnex aquesta interfície"
 
@@ -2525,9 +2584,6 @@ msgstr "Reconnectant la interfície"
 msgid "References"
 msgstr "Referències"
 
-msgid "Regulatory Domain"
-msgstr "Domini regulatori"
-
 msgid "Relay"
 msgstr "Relé"
 
@@ -2567,19 +2623,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "Alguns ISP ho requereixen, per exemple el Charter amb DOCSIS 3"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2721,9 +2785,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Clients separats"
 
-msgid "Separate WDS"
-msgstr "WDS separat"
-
 msgid "Server Settings"
 msgstr "Ajusts de servidor"
 
@@ -2882,9 +2943,6 @@ msgstr "Leases estàtics"
 msgid "Static Routes"
 msgstr "Rutes estàtiques"
 
-msgid "Static WDS"
-msgstr "WDS estàtic"
-
 msgid "Static address"
 msgstr "Adreça estàtica"
 
@@ -3278,9 +3336,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Mode Turbo"
-
 msgid "Tx-Power"
 msgstr "Potència Tx"
 
@@ -3299,6 +3354,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Dispositiu USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3400,6 +3458,11 @@ msgstr "Usat"
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3552,9 +3615,6 @@ msgstr "Escriure les peticions DNS rebudes al syslog"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Suport XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3566,9 +3626,9 @@ msgstr ""
 "dispositiu pot resultar inaccessible!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"Has d'activar el Java Script al teu navegador o LuCI no funcionarà "
+"Has d'activar el JavaScript al teu navegador o LuCI no funcionarà "
 "correctament."
 
 msgid ""
@@ -3660,6 +3720,9 @@ msgstr "fitxer <abbr title=\"Domain Name System\">DNS</abbr> local"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3714,6 +3777,9 @@ msgstr ""
 msgid "tagged"
 msgstr "etiquetat"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "desconegut"
 
@@ -3735,6 +3801,54 @@ msgstr "sí"
 msgid "« Back"
 msgstr "« Enrere"
 
+#~ msgid "AR Support"
+#~ msgstr "Suport AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Controlador sense fils d'Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "Escaneig de fons"
+
+#~ msgid "Compression"
+#~ msgstr "Compressió"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Inhabilita el temporitzador HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "No enviïs les respostes de prova"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Fast Frames"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Velocitat màxima"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Velocitat mínima"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Velocitat de difusió selectiva"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Canals d'exteriors"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Domini regulatori"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDS separat"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS estàtic"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Mode Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Suport XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "Es crearà una xarxa addicional si deixes això sense marcar."
 
index 1438b11..7f0391a 100644 (file)
@@ -50,12 +50,36 @@ msgstr "Zatížení za 1 minutu:"
 msgid "15 Minute Load:"
 msgstr "Zatížení za 15 minut:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Zatížení za 5 minut:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -143,9 +167,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Podpora AR"
-
 msgid "ARP retry threshold"
 msgstr "ARP limit opakování"
 
@@ -390,9 +411,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Připojení klienti"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s bezdrátový ovladač"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -471,9 +489,6 @@ msgstr "Zpět k přehledu"
 msgid "Back to scan results"
 msgstr "Zpět k výsledkům vyhledávání"
 
-msgid "Background Scan"
-msgstr "Vyhledávat na pozadí"
-
 msgid "Backup / Flash Firmware"
 msgstr "Zálohovat / nahrát firmware"
 
@@ -642,9 +657,6 @@ msgstr "Příkaz"
 msgid "Common Configuration"
 msgstr "Společná nastavení"
 
-msgid "Compression"
-msgstr "Komprese"
-
 msgid "Configuration"
 msgstr "Nastavení"
 
@@ -864,12 +876,12 @@ msgstr "Zakázat nastavení DNS"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Zakázat HW-Beacon časovač"
-
 msgid "Disabled"
 msgstr "Zakázáno"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Vyřadit upstream RFC1918 odpovědi"
 
@@ -910,9 +922,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Nepřeposílat reverzní dotazy na místní sítě"
 
-msgid "Do not send probe responses"
-msgstr "Neodpovídat na vyhledávání"
-
 msgid "Domain required"
 msgstr "Vyžadována doména"
 
@@ -1042,6 +1051,11 @@ msgstr "Povolit/Zakázat"
 msgid "Enabled"
 msgstr "Povoleno"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Na tomto síťovém mostě povolit Spanning Tree Protocol"
 
@@ -1090,6 +1104,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Externí protokolovací server"
 
@@ -1102,9 +1122,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Rychlé rámce"
-
 msgid "File"
 msgstr "Soubor"
 
@@ -1140,6 +1157,9 @@ msgstr "Dokončit"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Nastavení firewallu"
 
@@ -1339,6 +1359,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP adresy"
 
@@ -1432,6 +1455,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6 adresa"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1587,7 +1613,7 @@ msgstr ""
 "Zdá se, že se pokoušíte zapsat obraz, který se nevejde do flash paměti. "
 "Prosím ověřte soubor s obrazem!"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr "Vyžadován JavaScript!"
 
 msgid "Join Network"
@@ -1702,6 +1728,22 @@ msgstr ""
 "Seznam <abbr title=\"Domain Name System\">DNS</abbr> serverů, na které "
 "přeposílat požadavky"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1841,9 +1883,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Nejvyšší míra"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Nejvyšší povolené množství aktivních DHCP zápůjček"
 
@@ -1879,9 +1918,6 @@ msgstr "Využití paměti (%)"
 msgid "Metric"
 msgstr "Metrika"
 
-msgid "Minimum Rate"
-msgstr "Nejnižší hodnota"
-
 msgid "Minimum hold time"
 msgstr "Minimální čas zápůjčky"
 
@@ -1894,6 +1930,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Chybějící rozšíření protokolu %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Mód"
 
@@ -1952,9 +1991,6 @@ msgstr "Přesunout dolů"
 msgid "Move up"
 msgstr "Přesunout nahoru"
 
-msgid "Multicast Rate"
-msgstr "Hodnota vícesměrového vysílání"
-
 msgid "Multicast address"
 msgstr "Adresa vícesměrového vysílání"
 
@@ -2146,6 +2182,9 @@ msgstr "Volba změněna"
 msgid "Option removed"
 msgstr "Volba odstraněna"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2156,8 +2195,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2194,9 +2238,6 @@ msgstr "Ven"
 msgid "Outbound:"
 msgstr "Odchozí:"
 
-msgid "Outdoor Channels"
-msgstr "Venkovní kanály"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2246,6 +2287,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2375,6 +2419,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2442,6 +2489,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Kvalita"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2536,6 +2589,9 @@ msgstr "Provoz v reálném čase"
 msgid "Realtime Wireless"
 msgstr "Wireless v reálném čase"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Opětovné nastavení ochrany"
 
@@ -2554,6 +2610,9 @@ msgstr "Přijmout"
 msgid "Receiver Antenna"
 msgstr "Přijímací anténa"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Přepojit toto rozhraní"
 
@@ -2563,9 +2622,6 @@ msgstr "Přepojuji rozhraní"
 msgid "References"
 msgstr "Reference"
 
-msgid "Regulatory Domain"
-msgstr "Doména regulátora"
-
 msgid "Relay"
 msgstr "Přenos"
 
@@ -2605,6 +2661,9 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 # Charter je poskytovate
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "Vyžadováno u některých ISP, např. Charter s DocSIS 3"
@@ -2612,13 +2671,18 @@ msgstr "Vyžadováno u některých ISP, např. Charter s DocSIS 3"
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2761,9 +2825,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Oddělovat klienty"
 
-msgid "Separate WDS"
-msgstr "Oddělovat WDS"
-
 msgid "Server Settings"
 msgstr "Nastavení serveru"
 
@@ -2927,9 +2988,6 @@ msgstr "Statické zápůjčky"
 msgid "Static Routes"
 msgstr "Statické trasy"
 
-msgid "Static WDS"
-msgstr "Statický WDS"
-
 msgid "Static address"
 msgstr "Statická adresa"
 
@@ -3344,9 +3402,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbo mód"
-
 msgid "Tx-Power"
 msgstr "Tx-Power"
 
@@ -3365,6 +3420,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB zařízení"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3472,6 +3530,11 @@ msgstr "Použit"
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3624,9 +3687,6 @@ msgstr "Zapisovat přijaté požadavky DNS do systemového logu"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Podpora XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3637,9 +3697,9 @@ msgstr ""
 "\"network\", vaše zařízení se může stát nepřístupným!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"Aby LuCI fungoval správně, musíte mít v prohlížeči povolený Javascript."
+"Aby LuCI fungoval správně, musíte mít v prohlížeči povolený JavaScript."
 
 msgid ""
 "Your Internet Explorer is too old to display this page correctly. Please "
@@ -3729,6 +3789,9 @@ msgstr "místní <abbr title=\"Domain Name System\">DNS</abbr> soubor"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3783,6 +3846,9 @@ msgstr ""
 msgid "tagged"
 msgstr "označený"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "neznámý"
 
@@ -3804,6 +3870,54 @@ msgstr "ano"
 msgid "« Back"
 msgstr "« Zpět"
 
+#~ msgid "AR Support"
+#~ msgstr "Podpora AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s bezdrátový ovladač"
+
+#~ msgid "Background Scan"
+#~ msgstr "Vyhledávat na pozadí"
+
+#~ msgid "Compression"
+#~ msgstr "Komprese"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Zakázat HW-Beacon časovač"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Neodpovídat na vyhledávání"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Rychlé rámce"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Nejvyšší míra"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Nejnižší hodnota"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Hodnota vícesměrového vysílání"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Venkovní kanály"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Doména regulátora"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Oddělovat WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "Statický WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo mód"
+
+#~ msgid "XR Support"
+#~ msgstr "Podpora XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "Pokud není zaškrtnuto, bude vytvořena dodatečná síť."
 
index 3650235..99be0b6 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: 2013-03-29 12:13+0200\n"
+"PO-Revision-Date: 2017-03-06 11:15+0200\n"
 "Last-Translator: JoeSemler <josef.semler@gmail.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: de\n"
@@ -52,12 +52,36 @@ msgstr "Systemlast (1 Minute):"
 msgid "15 Minute Load:"
 msgstr "Systemlast (15 Minuten):"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Systemlast (5 Minuten):"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -144,9 +168,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "AR-Unterstützung"
-
 msgid "ARP retry threshold"
 msgstr "Grenzwert für ARP-Auflösungsversuche"
 
@@ -250,9 +271,11 @@ msgid ""
 "Allocate IP addresses sequentially, starting from the lowest available "
 "address"
 msgstr ""
+"IP-Adressen sequenziell vergeben, beginnend mit der kleinsten "
+"verfügbaren Adresse"
 
 msgid "Allocate IP sequentially"
-msgstr ""
+msgstr "IPs sequenziell vergeben"
 
 msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
 msgstr "Erlaube Anmeldung per Passwort"
@@ -389,9 +412,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Assoziierte Clients"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s W-LAN Adapter"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -470,9 +490,6 @@ msgstr "Zurück zur Übersicht"
 msgid "Back to scan results"
 msgstr "Zurück zu den Scan-Ergebnissen"
 
-msgid "Background Scan"
-msgstr "Hintergrundscan"
-
 msgid "Backup / Flash Firmware"
 msgstr "Backup / Firmware Update"
 
@@ -639,9 +656,6 @@ msgstr "Befehl"
 msgid "Common Configuration"
 msgstr "Allgemeine Konfiguration"
 
-msgid "Compression"
-msgstr "Kompression"
-
 msgid "Configuration"
 msgstr "Konfiguration"
 
@@ -859,12 +873,12 @@ msgstr "DNS-Verarbeitung deaktivieren"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Deaktiviere Hardware-Beacon Zeitgeber"
-
 msgid "Disabled"
 msgstr "Deaktiviert"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Eingehende RFC1918-Antworten verwerfen"
 
@@ -908,9 +922,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Keine Rückwärtsauflösungen für lokale Netzwerke weiterleiten"
 
-msgid "Do not send probe responses"
-msgstr "Scan-Anforderungen nicht beantworten"
-
 msgid "Domain required"
 msgstr "Anfragen nur mit Domain"
 
@@ -1037,6 +1048,11 @@ msgstr "Aktivieren/Deaktivieren"
 msgid "Enabled"
 msgstr "Aktiviert"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Aktiviert das Spanning Tree Protokoll auf dieser Netzwerkbrücke"
 
@@ -1086,6 +1102,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Externer Protokollserver IP"
 
@@ -1098,9 +1120,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Schnelle Frames"
-
 msgid "File"
 msgstr "Datei"
 
@@ -1136,6 +1155,9 @@ msgstr "Fertigstellen"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Firewall Einstellungen"
 
@@ -1338,6 +1360,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP-Adresse"
 
@@ -1431,6 +1456,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-Adresse"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1587,8 +1615,8 @@ msgstr ""
 "Das verwendete Image scheint zu groß für den internen Flash-Speicher zu "
 "sein. Überprüfen Sie die Imagedatei!"
 
-msgid "Java Script required!"
-msgstr "Java-Script benötigt!"
+msgid "JavaScript required!"
+msgstr "JavaScript benötigt!"
 
 msgid "Join Network"
 msgstr "Netzwerk beitreten"
@@ -1702,6 +1730,22 @@ msgstr ""
 "Liste von <abbr title=\"Domain Name System\">DNS</abbr>-Servern an welche "
 "Requests weitergeleitet werden"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1844,9 +1888,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Höchstübertragungsrate"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Maximal zulässige Anzahl von aktiven DHCP-Leases"
 
@@ -1882,9 +1923,6 @@ msgstr "Speichernutzung (%)"
 msgid "Metric"
 msgstr "Metrik"
 
-msgid "Minimum Rate"
-msgstr "Mindestübertragungsrate"
-
 msgid "Minimum hold time"
 msgstr "Minimalzeit zum Halten der Verbindung"
 
@@ -1897,6 +1935,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Erweiterung für Protokoll %q fehlt"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Modus"
 
@@ -1955,9 +1996,6 @@ msgstr "Nach unten schieben"
 msgid "Move up"
 msgstr "Nach oben schieben"
 
-msgid "Multicast Rate"
-msgstr "Multicastrate"
-
 msgid "Multicast address"
 msgstr "Multicast-Adresse"
 
@@ -2151,6 +2189,9 @@ msgstr "Option geändert"
 msgid "Option removed"
 msgstr "Option entfernt"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2161,8 +2202,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2199,9 +2245,6 @@ msgstr "Aus"
 msgid "Outbound:"
 msgstr "Ausgehend:"
 
-msgid "Outdoor Channels"
-msgstr "Funkkanal für den Ausseneinsatz"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2251,6 +2294,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2380,6 +2426,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2447,6 +2496,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Qualität"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2542,6 +2597,9 @@ msgstr "Echtzeitverkehr"
 msgid "Realtime Wireless"
 msgstr "Echtzeit-WLAN-Signal"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "DNS-Rebind-Schutz"
 
@@ -2560,6 +2618,9 @@ msgstr "Empfangen"
 msgid "Receiver Antenna"
 msgstr "Empfangsantenne"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Diese Schnittstelle neu verbinden"
 
@@ -2569,9 +2630,6 @@ msgstr "Verbinde Schnittstelle neu"
 msgid "References"
 msgstr "Verweise"
 
-msgid "Regulatory Domain"
-msgstr "Geltungsbereich (Regulatory Domain)"
-
 msgid "Relay"
 msgstr "Relay"
 
@@ -2611,6 +2669,9 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 "Wird von bestimmten Internet-Providern benötigt, z.B. Charter mit DOCSIS 3"
@@ -2618,13 +2679,18 @@ msgstr ""
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2768,9 +2834,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Clients isolieren"
 
-msgid "Separate WDS"
-msgstr "Separates WDS"
-
 msgid "Server Settings"
 msgstr "Servereinstellungen"
 
@@ -2937,9 +3000,6 @@ msgstr "Statische Einträge"
 msgid "Static Routes"
 msgstr "Statische Routen"
 
-msgid "Static WDS"
-msgstr "Statisches WDS"
-
 msgid "Static address"
 msgstr "Statische Adresse"
 
@@ -2966,10 +3026,11 @@ msgid "Submit"
 msgstr "Absenden"
 
 msgid "Suppress logging"
-msgstr ""
+msgstr "Logeinträge unterdrücken"
 
 msgid "Suppress logging of the routine operation of these protocols"
 msgstr ""
+"Logeinträge für erfolgreiche Operationen dieser Protokolle unterdrücken"
 
 msgid "Swap"
 msgstr ""
@@ -3367,9 +3428,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbo Modus"
-
 msgid "Tx-Power"
 msgstr "Sendestärke"
 
@@ -3388,6 +3446,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB-Gerät"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3496,6 +3557,11 @@ msgstr "Belegt"
 msgid "Used Key Slot"
 msgstr "Benutzer Schlüsselindex"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3648,9 +3714,6 @@ msgstr "Empfangene DNS-Anfragen in das Systemprotokoll schreiben"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "XR-Unterstützung"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3662,9 +3725,9 @@ msgstr ""
 "werden könnte das Gerät unerreichbar werden!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"Im Browser muss Java-Script aktiviert sein oder LuCI wird nicht richtig "
+"Im Browser muss JavaScript aktiviert sein oder LuCI wird nicht richtig "
 "funktionieren."
 
 msgid ""
@@ -3753,6 +3816,9 @@ msgstr "Lokale DNS-Datei"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3807,6 +3873,9 @@ msgstr ""
 msgid "tagged"
 msgstr "tagged"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "unbekannt"
 
@@ -3828,6 +3897,54 @@ msgstr "ja"
 msgid "« Back"
 msgstr "« Zurück"
 
+#~ msgid "AR Support"
+#~ msgstr "AR-Unterstützung"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s W-LAN Adapter"
+
+#~ msgid "Background Scan"
+#~ msgstr "Hintergrundscan"
+
+#~ msgid "Compression"
+#~ msgstr "Kompression"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Deaktiviere Hardware-Beacon Zeitgeber"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Scan-Anforderungen nicht beantworten"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Schnelle Frames"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Höchstübertragungsrate"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Mindestübertragungsrate"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicastrate"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Funkkanal für den Ausseneinsatz"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Geltungsbereich (Regulatory Domain)"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Separates WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "Statisches WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo Modus"
+
+#~ msgid "XR Support"
+#~ msgstr "XR-Unterstützung"
+
 #~ 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"
index d5dbff8..93cdb98 100644 (file)
@@ -52,12 +52,36 @@ msgstr "Φορτίο 1 λεπτού:"
 msgid "15 Minute Load:"
 msgstr "Φορτίο 15 λεπτών:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Φορτίο 5 λεπτών:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -146,9 +170,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Υποστήριξη AR"
-
 msgid "ARP retry threshold"
 msgstr "Όριο επαναδοκιμών ARP"
 
@@ -397,9 +418,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Συνδεδεμένοι Σταθμοί"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -478,9 +496,6 @@ msgstr "Πίσω προς επισκόπηση"
 msgid "Back to scan results"
 msgstr "Πίσω στα αποτελέσματα σάρωσης"
 
-msgid "Background Scan"
-msgstr "Σάρωση Παρασκηνίου"
-
 msgid "Backup / Flash Firmware"
 msgstr "Αντίγραφο ασφαλείας / Εγγραφή FLASH Υλικολογισμικό"
 
@@ -651,9 +666,6 @@ msgstr "Εντολή"
 msgid "Common Configuration"
 msgstr "Κοινή Παραμετροποίηση"
 
-msgid "Compression"
-msgstr "Συμπίεση"
-
 msgid "Configuration"
 msgstr "Παραμετροποίηση"
 
@@ -873,12 +885,12 @@ msgstr "Απενεργοποίηση ρυθμίσεων DNS"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Απενεργοποίηση χρονιστή HW-Beacon"
-
 msgid "Disabled"
 msgstr "Απενεργοποιημένο"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Αγνόησε τις απαντήσεις ανοδικής ροής RFC1918"
 
@@ -921,9 +933,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr "Να μην στέλνονται απαντήσεις σε probes"
-
 msgid "Domain required"
 msgstr "Απαίτηση για όνομα τομέα"
 
@@ -1054,6 +1063,11 @@ msgstr "Ενεργοποίηση/Απενεργοποίηση"
 msgid "Enabled"
 msgstr "Ενεργοποιημένο"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 
@@ -1103,6 +1117,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Εξωτερικός εξυπηρετητής καταγραφής συστήματος"
 
@@ -1115,9 +1135,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Γρήγορα Πλαίσια"
-
 msgid "File"
 msgstr "Αρχείο"
 
@@ -1153,6 +1170,9 @@ msgstr "Τέλος"
 msgid "Firewall"
 msgstr "Τείχος Προστασίας"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Ρυθμίσεις Τείχους Προστασίας"
 
@@ -1352,6 +1372,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Διεύθυνση IP"
 
@@ -1445,6 +1468,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1602,8 +1628,8 @@ msgstr ""
 "Φαίνεται πως προσπαθείτε να φλασάρετε μια εικόνα που δεν χωράει στην μνήμη "
 "flash, παρακαλώ επιβεβαιώστε το αρχείο εικόνας!"
 
-msgid "Java Script required!"
-msgstr "Απαιτείται Javascript!"
+msgid "JavaScript required!"
+msgstr "Απαιτείται JavaScript!"
 
 msgid "Join Network"
 msgstr ""
@@ -1715,6 +1741,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1847,9 +1889,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Μέγιστος Ρυθμός"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Μέγιστος επιτρεπόμενος αριθμός ενεργών DHCP leases"
 
@@ -1886,9 +1925,6 @@ msgstr "Χρήση Μνήμης (%)"
 msgid "Metric"
 msgstr "Μέτρο"
 
-msgid "Minimum Rate"
-msgstr "Ελάχιστος Ρυθμός"
-
 msgid "Minimum hold time"
 msgstr "Ελάχιστος χρόνος κράτησης"
 
@@ -1901,6 +1937,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Λειτουργία"
 
@@ -1960,9 +1999,6 @@ msgstr "Μετακίνηση κάτω"
 msgid "Move up"
 msgstr "Μετακίνηση πάνω"
 
-msgid "Multicast Rate"
-msgstr "Ρυθμός Multicast"
-
 msgid "Multicast address"
 msgstr "Διεύθυνση Multicast"
 
@@ -2155,6 +2191,9 @@ msgstr "Η επιλογή άλλαξε"
 msgid "Option removed"
 msgstr "Η επιλογή αφαιρέθηκε"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2165,8 +2204,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2203,9 +2247,6 @@ msgstr "Έξοδος"
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr "Εξωτερικά Κανάλια"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2253,6 +2294,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2382,6 +2426,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2448,6 +2495,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2529,6 +2582,9 @@ msgstr "Κίνηση πραγματικού χρόνου"
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2547,6 +2603,9 @@ msgstr "Λήψη"
 msgid "Receiver Antenna"
 msgstr "Κεραία Λήψης"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Επανασύνδεση της διεπαφής"
 
@@ -2556,9 +2615,6 @@ msgstr "Επανασύνδεση της διεπαφής"
 msgid "References"
 msgstr "Αναφορές"
 
-msgid "Regulatory Domain"
-msgstr "Ρυθμιστική Περιοχή"
-
 msgid "Relay"
 msgstr ""
 
@@ -2598,19 +2654,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2754,9 +2818,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Απομόνωση Πελατών"
 
-msgid "Separate WDS"
-msgstr "Ξεχωριστά WDS"
-
 msgid "Server Settings"
 msgstr "Ρυθμίσεις Εξυπηρετητή"
 
@@ -2916,9 +2977,6 @@ msgstr "Στατικά Leases"
 msgid "Static Routes"
 msgstr "Στατικές Διαδρομές"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr "Στατική διεύθυνση"
 
@@ -3303,9 +3361,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Λειτουργία Turbo"
-
 msgid "Tx-Power"
 msgstr "Ισχύς Εκπομπής"
 
@@ -3324,6 +3379,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Συσκευή USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3425,6 +3483,11 @@ msgstr "Σε χρήση"
 msgid "Used Key Slot"
 msgstr "Χρησιμοποιούμενη Υποδοχή Κλειδιού"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3575,9 +3638,6 @@ msgstr "Καταγραφή των ληφθέντων DNS αιτήσεων στο
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Υποστήριξη XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3589,7 +3649,7 @@ msgstr ""
 "όπως το \"network\", η συσκευή σας μπορεί να καταστεί μη-προσβάσιμη!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 
 msgid ""
@@ -3682,6 +3742,9 @@ msgstr "τοπικό αρχείο <abbr title=\"Domain Name System\">DNS</abbr>"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3736,6 +3799,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3757,6 +3823,48 @@ msgstr "ναι"
 msgid "« Back"
 msgstr "« Πίσω"
 
+#~ msgid "AR Support"
+#~ msgstr "Υποστήριξη AR"
+
+#~ msgid "Background Scan"
+#~ msgstr "Σάρωση Παρασκηνίου"
+
+#~ msgid "Compression"
+#~ msgstr "Συμπίεση"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Απενεργοποίηση χρονιστή HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Να μην στέλνονται απαντήσεις σε probes"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Γρήγορα Πλαίσια"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Μέγιστος Ρυθμός"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Ελάχιστος Ρυθμός"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Ρυθμός Multicast"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Εξωτερικά Κανάλια"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Ρυθμιστική Περιοχή"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Ξεχωριστά WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Λειτουργία Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Υποστήριξη XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "Ένα επιπλέον δίκτυο θα δημιουργηθεί εάν αυτό αφεθεί κενό"
 
index 4afe616..561cfec 100644 (file)
@@ -52,12 +52,36 @@ msgstr "1 Minute Load:"
 msgid "15 Minute Load:"
 msgstr "15 Minute Load:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "5 Minute Load:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -146,9 +170,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "AR Support"
-
 msgid "ARP retry threshold"
 msgstr "ARP retry threshold"
 
@@ -388,9 +409,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Associated Stations"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -469,9 +487,6 @@ msgstr "Back to overview"
 msgid "Back to scan results"
 msgstr "Back to scan results"
 
-msgid "Background Scan"
-msgstr "Background Scan"
-
 msgid "Backup / Flash Firmware"
 msgstr "Backup / Flash Firmware"
 
@@ -638,9 +653,6 @@ msgstr "Command"
 msgid "Common Configuration"
 msgstr "Common Configuration"
 
-msgid "Compression"
-msgstr "Compression"
-
 msgid "Configuration"
 msgstr "Configuration"
 
@@ -859,12 +871,12 @@ msgstr ""
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Disable HW-Beacon timer"
-
 msgid "Disabled"
 msgstr "Disabled"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr ""
 
@@ -903,9 +915,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr "Do not send probe responses"
-
 msgid "Domain required"
 msgstr "Domain required"
 
@@ -1033,6 +1042,11 @@ msgstr "Enable/Disable"
 msgid "Enabled"
 msgstr "Enabled"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Enables the Spanning Tree Protocol on this bridge"
 
@@ -1079,6 +1093,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr ""
 
@@ -1091,9 +1111,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Fast Frames"
-
 msgid "File"
 msgstr ""
 
@@ -1129,6 +1146,9 @@ msgstr ""
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Firewall Settings"
 
@@ -1326,6 +1346,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP address"
 
@@ -1419,6 +1442,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1571,7 +1597,7 @@ msgstr ""
 "It appears that you try to flash an image that does not fit into the flash "
 "memory, please verify the image file!"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1684,6 +1710,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1816,9 +1858,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Maximum Rate"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1854,9 +1893,6 @@ msgstr "Memory usage (%)"
 msgid "Metric"
 msgstr "Metric"
 
-msgid "Minimum Rate"
-msgstr "Minimum Rate"
-
 msgid "Minimum hold time"
 msgstr "Minimum hold time"
 
@@ -1869,6 +1905,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Mode"
 
@@ -1927,9 +1966,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr "Multicast Rate"
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2122,6 +2158,9 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2132,8 +2171,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2170,9 +2214,6 @@ msgstr "Out"
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr "Outdoor Channels"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2220,6 +2261,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2349,6 +2393,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2414,6 +2461,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2495,6 +2548,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2513,6 +2569,9 @@ msgstr "Receive"
 msgid "Receiver Antenna"
 msgstr "Receiver Antenna"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2522,9 +2581,6 @@ msgstr ""
 msgid "References"
 msgstr "References"
 
-msgid "Regulatory Domain"
-msgstr "Regulatory Domain"
-
 msgid "Relay"
 msgstr ""
 
@@ -2564,19 +2620,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2718,9 +2782,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Separate Clients"
 
-msgid "Separate WDS"
-msgstr "Separate WDS"
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2878,9 +2939,6 @@ msgstr "Static Leases"
 msgid "Static Routes"
 msgstr "Static Routes"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -3260,9 +3318,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbo Mode"
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3281,6 +3336,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3382,6 +3440,11 @@ msgstr "Used"
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3534,9 +3597,6 @@ msgstr ""
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "XR Support"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3547,7 +3607,7 @@ msgstr ""
 "scripts like \"network\", your device might become inaccessible!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 
 msgid ""
@@ -3638,6 +3698,9 @@ msgstr "local <abbr title=\"Domain Name System\">DNS</abbr> file"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3692,6 +3755,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3713,6 +3779,48 @@ msgstr ""
 msgid "« Back"
 msgstr "« Back"
 
+#~ msgid "AR Support"
+#~ msgstr "AR Support"
+
+#~ msgid "Background Scan"
+#~ msgstr "Background Scan"
+
+#~ msgid "Compression"
+#~ msgstr "Compression"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Disable HW-Beacon timer"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Do not send probe responses"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Fast Frames"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Maximum Rate"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Minimum Rate"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicast Rate"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Outdoor Channels"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Regulatory Domain"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Separate WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo Mode"
+
+#~ msgid "XR Support"
+#~ msgstr "XR Support"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "An additional network will be created if you leave this unchecked."
 
index d466cf0..b5de1f2 100644 (file)
@@ -52,12 +52,36 @@ msgstr "Carga a 1 minuto:"
 msgid "15 Minute Load:"
 msgstr "Carga a 15 minutos:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Carga a 5 minutos:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr ""
 "<abbr title=\"Identificador de conjunto de servicios básicos\">BSSID</abbr>"
@@ -148,9 +172,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Soporte a AR"
-
 msgid "ARP retry threshold"
 msgstr "Umbral de reintento ARP"
 
@@ -394,9 +415,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Estaciones asociadas"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Controlador inalámbrico 802.11%s Atheros"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -475,9 +493,6 @@ msgstr "Volver al resumen"
 msgid "Back to scan results"
 msgstr "Volver a resultados de la exploración"
 
-msgid "Background Scan"
-msgstr "Exploración en segundo plano"
-
 msgid "Backup / Flash Firmware"
 msgstr "Copia de seguridad / Grabar firmware"
 
@@ -647,9 +662,6 @@ msgstr "Comando"
 msgid "Common Configuration"
 msgstr "Configuración común"
 
-msgid "Compression"
-msgstr "Compresión"
-
 msgid "Configuration"
 msgstr "Configuración"
 
@@ -870,12 +882,12 @@ msgstr "Desactivar configuración de DNS"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Desactivar el temporizador de baliza hardware"
-
 msgid "Disabled"
 msgstr "Desactivar"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Descartar respuestas RFC1918 salientes"
 
@@ -916,9 +928,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "No retransmitir búsquedas inversas para redes locales"
 
-msgid "Do not send probe responses"
-msgstr "No enviar respuestas de prueba"
-
 msgid "Domain required"
 msgstr "Dominio requerido"
 
@@ -1048,6 +1057,11 @@ msgstr "Activar/Desactivar"
 msgid "Enabled"
 msgstr "Activado"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Activa el protocol STP en este puente"
 
@@ -1097,6 +1111,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Servidor externo de registro del sistema"
 
@@ -1109,9 +1129,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Tramas rápidas"
-
 msgid "File"
 msgstr "Fichero"
 
@@ -1147,6 +1164,9 @@ msgstr "Terminar"
 msgid "Firewall"
 msgstr "Cortafuegos"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Configuración del cortafuegos"
 
@@ -1348,6 +1368,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Dirección IP"
 
@@ -1441,6 +1464,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Dirección IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-en-IPv4 (RFC4213)"
 
@@ -1601,7 +1627,7 @@ msgstr ""
 "Parece que está intentando grabar una imagen de firmware mayor que la "
 "memoria flash de su equipo. ¡Por favor, verifique el archivo!"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr "¡Se necesita JavaScript!"
 
 msgid "Join Network"
@@ -1716,6 +1742,22 @@ msgstr ""
 "Lista de servidores <abbr title=\"Domain Name System\">DNS</abbr> a los que "
 "enviar solicitudes"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1855,9 +1897,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Ratio Máximo"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Número máximo de cesiones DHCP activas"
 
@@ -1893,9 +1932,6 @@ msgstr "Uso de memoria (%)"
 msgid "Metric"
 msgstr "Métrica"
 
-msgid "Minimum Rate"
-msgstr "Ratio mínimo"
-
 msgid "Minimum hold time"
 msgstr "Pausa mínima de espera"
 
@@ -1908,6 +1944,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Extensión de protocolo faltante para %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Modo"
 
@@ -1966,9 +2005,6 @@ msgstr "Bajar"
 msgid "Move up"
 msgstr "Subir"
 
-msgid "Multicast Rate"
-msgstr "Ratio multicast"
-
 msgid "Multicast address"
 msgstr "Dirección multicast"
 
@@ -2160,6 +2196,9 @@ msgstr "Opción cambiada"
 msgid "Option removed"
 msgstr "Opción eliminada"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2170,8 +2209,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2208,9 +2252,6 @@ msgstr "Salida"
 msgid "Outbound:"
 msgstr "Saliente:"
 
-msgid "Outdoor Channels"
-msgstr "Canales al aire libre"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2260,6 +2301,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2389,6 +2433,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2456,6 +2503,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Calidad"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2549,6 +2602,9 @@ msgstr "Tráfico en tiempo real"
 msgid "Realtime Wireless"
 msgstr "Red inalámbrica en tiempo real"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Protección contra reasociación"
 
@@ -2567,6 +2623,9 @@ msgstr "Recibir"
 msgid "Receiver Antenna"
 msgstr "Antena Receptora"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Reconectar esta interfaz"
 
@@ -2576,9 +2635,6 @@ msgstr "Reconectando la interfaz"
 msgid "References"
 msgstr "Referencias"
 
-msgid "Regulatory Domain"
-msgstr "Dominio Regulador"
-
 msgid "Relay"
 msgstr "Relé"
 
@@ -2618,19 +2674,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "Necesario para ciertos ISPs, por ejemplo Charter con DOCSIS 3"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2774,9 +2838,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Aislar clientes"
 
-msgid "Separate WDS"
-msgstr "WDS aislado"
-
 msgid "Server Settings"
 msgstr "Configuración del servidor"
 
@@ -2943,9 +3004,6 @@ msgstr "Cesiones estáticas"
 msgid "Static Routes"
 msgstr "Rutas estáticas"
 
-msgid "Static WDS"
-msgstr "WDS estático"
-
 msgid "Static address"
 msgstr "Dirección estática"
 
@@ -3369,9 +3427,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Modo Turbo"
-
 msgid "Tx-Power"
 msgstr "Potencia-TX"
 
@@ -3390,6 +3445,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Dispositivo USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3498,6 +3556,11 @@ msgstr "Usado"
 msgid "Used Key Slot"
 msgstr "Espacio de clave usado"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3650,9 +3713,6 @@ msgstr "Escribir las peticiones de DNS recibidas en el registro del sistema"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Soporte de XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3664,9 +3724,9 @@ msgstr ""
 "inaccesible!.</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"Debe activar Javascript en su navegador o LuCI no funcionará correctamente."
+"Debe activar JavaScript en su navegador o LuCI no funcionará correctamente."
 
 msgid ""
 "Your Internet Explorer is too old to display this page correctly. Please "
@@ -3757,6 +3817,9 @@ msgstr "Archvo <abbr title=\"Domain Name System\">DNS</abbr> local"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3811,6 +3874,9 @@ msgstr ""
 msgid "tagged"
 msgstr "marcado"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "desconocido"
 
@@ -3832,6 +3898,54 @@ msgstr "sí"
 msgid "« Back"
 msgstr "« Volver"
 
+#~ msgid "AR Support"
+#~ msgstr "Soporte a AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Controlador inalámbrico 802.11%s Atheros"
+
+#~ msgid "Background Scan"
+#~ msgstr "Exploración en segundo plano"
+
+#~ msgid "Compression"
+#~ msgstr "Compresión"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Desactivar el temporizador de baliza hardware"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "No enviar respuestas de prueba"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Tramas rápidas"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Ratio Máximo"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Ratio mínimo"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Ratio multicast"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Canales al aire libre"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Dominio Regulador"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDS aislado"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS estático"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Modo Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Soporte de XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "Se creará una red adicional si deja esto desmarcado."
 
index b8a68f0..e525c9a 100644 (file)
@@ -52,12 +52,36 @@ msgstr "Charge sur 1 minute :"
 msgid "15 Minute Load:"
 msgstr "Charge sur 15 minutes :"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Charge sur 5 minutes :"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -147,9 +171,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Gestion du mode AR"
-
 msgid "ARP retry threshold"
 msgstr "Niveau de ré-essai ARP"
 
@@ -400,9 +421,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Équipements associés"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Contrôleur sans fil Atheros 802.11%s "
-
 msgid "Auth Group"
 msgstr ""
 
@@ -481,9 +499,6 @@ msgstr "Retour à la vue générale"
 msgid "Back to scan results"
 msgstr "Retour aux résultats de la recherche"
 
-msgid "Background Scan"
-msgstr "Recherche en arrière-plan"
-
 msgid "Backup / Flash Firmware"
 msgstr "Sauvegarde / Mise à jour du micrologiciel"
 
@@ -654,9 +669,6 @@ msgstr "Commande"
 msgid "Common Configuration"
 msgstr "Configuration commune"
 
-msgid "Compression"
-msgstr "Compression"
-
 msgid "Configuration"
 msgstr "Configuration"
 
@@ -877,12 +889,12 @@ msgstr "Désactiver la configuration DNS"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Désactiver l'émission périodique de balises wifi (« HW-Beacon »)"
-
 msgid "Disabled"
 msgstr "Désactivé"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Jeter les réponses en RFC1918 amont"
 
@@ -926,9 +938,6 @@ msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 "Ne pas transmettre les requêtes de recherche inverse pour les réseaux locaux"
 
-msgid "Do not send probe responses"
-msgstr "Ne pas envoyer de réponses de test"
-
 msgid "Domain required"
 msgstr "Domaine nécessaire"
 
@@ -1058,6 +1067,11 @@ msgstr "Activer/Désactiver"
 msgid "Enabled"
 msgstr "Activé"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 "Activer le protocole <abbr title=\"Spanning Tree Protocol\">STP</abbr> sur "
@@ -1109,6 +1123,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Serveur distant de journaux système"
 
@@ -1121,9 +1141,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Trames rapides"
-
 msgid "File"
 msgstr "Fichier"
 
@@ -1159,6 +1176,9 @@ msgstr "Terminer"
 msgid "Firewall"
 msgstr "Pare-feu"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Paramètres du pare-feu"
 
@@ -1360,6 +1380,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Adresse IP"
 
@@ -1453,6 +1476,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Adresse IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6 dans IPv4 (RFC 4213)"
 
@@ -1612,7 +1638,7 @@ msgstr ""
 "tient pas dans sa mémoire flash, vérifiez s'il vous plait votre fichier-"
 "image !"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr "Nécessite un Script Java !"
 
 msgid "Join Network"
@@ -1727,6 +1753,22 @@ msgstr ""
 "Liste des serveurs auquels sont transmis les requêtes <abbr title=\"Domain "
 "Name System\">DNS</abbr>"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1869,9 +1911,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Débit maximum"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Nombre maximum de baux DHCP actifs"
 
@@ -1907,9 +1946,6 @@ msgstr "Utilisation Mémoire (%)"
 msgid "Metric"
 msgstr "Metrique"
 
-msgid "Minimum Rate"
-msgstr "Débit minimum"
-
 msgid "Minimum hold time"
 msgstr "Temps de maintien mimimum"
 
@@ -1922,6 +1958,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Extention de protocole manquante pour le proto %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Mode"
 
@@ -1980,9 +2019,6 @@ msgstr "Descendre"
 msgid "Move up"
 msgstr "Monter"
 
-msgid "Multicast Rate"
-msgstr "Débit multidiffusion"
-
 msgid "Multicast address"
 msgstr "Adresse multidiffusion"
 
@@ -2173,6 +2209,9 @@ msgstr "Option modifiée"
 msgid "Option removed"
 msgstr "Option retirée"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2183,8 +2222,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2221,9 +2265,6 @@ msgstr "Sortie"
 msgid "Outbound:"
 msgstr "Extérieur :"
 
-msgid "Outdoor Channels"
-msgstr "Canaux en extérieur"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2273,6 +2314,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "code PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2402,6 +2446,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2469,6 +2516,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Qualitée"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2562,6 +2615,9 @@ msgstr "Trafic temps-réel"
 msgid "Realtime Wireless"
 msgstr "Qualité de réception actuelle"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Protection contre l'attaque « rebind »"
 
@@ -2580,6 +2636,9 @@ msgstr "Reçoit"
 msgid "Receiver Antenna"
 msgstr "Antenne émettrice"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Reconnecter cet interface"
 
@@ -2589,9 +2648,6 @@ msgstr "Reconnecte cet interface"
 msgid "References"
 msgstr "Références"
 
-msgid "Regulatory Domain"
-msgstr "Domaine de certification"
-
 msgid "Relay"
 msgstr "Relais"
 
@@ -2631,19 +2687,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "Nécessaire avec certains FAIs, par ex. : Charter avec DOCSIS 3"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2788,9 +2852,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Isoler les clients"
 
-msgid "Separate WDS"
-msgstr "WDS séparé"
-
 msgid "Server Settings"
 msgstr "Paramètres du serveur"
 
@@ -2955,9 +3016,6 @@ msgstr "Baux Statiques"
 msgid "Static Routes"
 msgstr "Routes statiques"
 
-msgid "Static WDS"
-msgstr "WDS statique"
-
 msgid "Static address"
 msgstr "Adresse statique"
 
@@ -3387,9 +3445,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Mode Turbo"
-
 msgid "Tx-Power"
 msgstr "Puissance d'émission"
 
@@ -3408,6 +3463,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Périphérique USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3517,6 +3575,11 @@ msgstr "Utilisé"
 msgid "Used Key Slot"
 msgstr "Clé utilisée"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3669,9 +3732,6 @@ msgstr "Écrire les requêtes DNS reçues dans syslog"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Gestion du mode XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3683,10 +3743,10 @@ msgstr ""
 "\", votre équipement pourrait ne plus être accessible&#160;!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"Vous devez activer Java Script dans votre navigateur pour que LuCI "
-"fonctionne correctement."
+"Vous devez activer JavaScript dans votre navigateur pour que LuCI fonctionne "
+"correctement."
 
 msgid ""
 "Your Internet Explorer is too old to display this page correctly. Please "
@@ -3775,6 +3835,9 @@ msgstr "fichier de résolution local"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3829,6 +3892,9 @@ msgstr ""
 msgid "tagged"
 msgstr "marqué"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "inconnu"
 
@@ -3850,6 +3916,54 @@ msgstr "oui"
 msgid "« Back"
 msgstr "« Retour"
 
+#~ msgid "AR Support"
+#~ msgstr "Gestion du mode AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Contrôleur sans fil Atheros 802.11%s "
+
+#~ msgid "Background Scan"
+#~ msgstr "Recherche en arrière-plan"
+
+#~ msgid "Compression"
+#~ msgstr "Compression"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Désactiver l'émission périodique de balises wifi (« HW-Beacon »)"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Ne pas envoyer de réponses de test"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Trames rapides"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Débit maximum"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Débit minimum"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Débit multidiffusion"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Canaux en extérieur"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Domaine de certification"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDS séparé"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS statique"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Mode Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Gestion du mode XR"
+
 #~ 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é."
 
index 5ed0029..8b222ef 100644 (file)
@@ -50,12 +50,36 @@ msgstr "עומס במשך דקה:"
 msgid "15 Minute Load:"
 msgstr "עומס במשך רבע שעה:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "עומס במשך 5 דקות:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr ""
 
@@ -137,9 +161,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr "תמיכת AR"
-
 #, fuzzy
 msgid "ARP retry threshold"
 msgstr "סף נסיונות של ARP"
@@ -389,9 +410,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "תחנות קשורות"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "שלט אלחוטי Atheros 802.11%s"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -470,9 +488,6 @@ msgstr "חזרה לסקירה"
 msgid "Back to scan results"
 msgstr "חזרה לתוצאות סריקה"
 
-msgid "Background Scan"
-msgstr "סריקת רקע"
-
 msgid "Backup / Flash Firmware"
 msgstr "גיבוי / קושחת פלאש"
 
@@ -631,9 +646,6 @@ msgstr "פקודה"
 msgid "Common Configuration"
 msgstr "הגדרות נפוצות"
 
-msgid "Compression"
-msgstr "דחיסה"
-
 msgid "Configuration"
 msgstr "הגדרות"
 
@@ -851,10 +863,10 @@ msgstr ""
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
 msgstr ""
 
-msgid "Disabled"
+msgid "Disabled (default)"
 msgstr ""
 
 msgid "Discard upstream RFC1918 responses"
@@ -891,9 +903,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
@@ -1018,6 +1027,11 @@ msgstr ""
 msgid "Enabled"
 msgstr "אפשר"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 
@@ -1064,6 +1078,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr ""
 
@@ -1076,9 +1096,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1114,6 +1131,9 @@ msgstr ""
 msgid "Firewall"
 msgstr ""
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1309,6 +1329,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr ""
 
@@ -1402,6 +1425,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1546,7 +1572,7 @@ msgid ""
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1659,6 +1685,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1791,9 +1833,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1829,9 +1868,6 @@ msgstr ""
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1844,6 +1880,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1900,9 +1939,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2089,6 +2125,9 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2099,8 +2138,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2137,9 +2181,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2187,6 +2228,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2316,6 +2360,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2381,6 +2428,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2463,6 +2516,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2481,6 +2537,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2490,9 +2549,6 @@ msgstr ""
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2532,19 +2588,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2684,9 +2748,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2847,9 +2908,6 @@ msgstr "הקצאות סטטיות"
 msgid "Static Routes"
 msgstr "ניתובים סטטיים"
 
-msgid "Static WDS"
-msgstr "WDS סטטי"
-
 msgid "Static address"
 msgstr "כתובת סטטית"
 
@@ -3218,9 +3276,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr "עוצמת שידור"
 
@@ -3239,6 +3294,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3340,6 +3398,11 @@ msgstr ""
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3490,9 +3553,6 @@ msgstr ""
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr ""
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3500,8 +3560,8 @@ msgid ""
 msgstr ""
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
-msgstr "אתה חייב להפעיל את Java Script בדפדפן שלך; אחרת, LuCI לא יפעל כראוי."
+"You must enable JavaScript in your browser or LuCI will not work properly."
+msgstr "אתה חייב להפעיל את JavaScript בדפדפן שלך; אחרת, LuCI לא יפעל כראוי."
 
 msgid ""
 "Your Internet Explorer is too old to display this page correctly. Please "
@@ -3589,6 +3649,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3643,6 +3706,9 @@ msgstr ""
 msgid "tagged"
 msgstr "מתויג"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3664,6 +3730,21 @@ msgstr "כן"
 msgid "« Back"
 msgstr "<< אחורה"
 
+#~ msgid "AR Support"
+#~ msgstr "תמיכת AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "שלט אלחוטי Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "סריקת רקע"
+
+#~ msgid "Compression"
+#~ msgstr "דחיסה"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS סטטי"
+
 #, fuzzy
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "רשת נוספת תווצר אם תשאיר את זה לא מסומן"
index d7c1927..14a6e75 100644 (file)
@@ -50,12 +50,36 @@ msgstr "Terhelés (utolsó 1 perc):"
 msgid "15 Minute Load:"
 msgstr "Terhelés (utolsó 15 perc):"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Terhelés (utolsó 5 perc):"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -144,9 +168,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "AR Támogatás"
-
 msgid "ARP retry threshold"
 msgstr "ARP újrapróbálkozási küszöbérték"
 
@@ -393,9 +414,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Kapcsolódó kliensek"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s vezeték-nélküli vezérlő"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -474,9 +492,6 @@ msgstr "Vissza az áttekintéshez"
 msgid "Back to scan results"
 msgstr "Vissza a felderítési eredményekhez"
 
-msgid "Background Scan"
-msgstr "Felderítés a háttérben"
-
 msgid "Backup / Flash Firmware"
 msgstr "Mentés / Firmware frissítés"
 
@@ -649,9 +664,6 @@ msgstr "Parancs"
 msgid "Common Configuration"
 msgstr "Álatános beállítás"
 
-msgid "Compression"
-msgstr "Tömörítés"
-
 msgid "Configuration"
 msgstr "Beállítás"
 
@@ -871,12 +883,12 @@ msgstr "DNS beállítás letiltása"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Hardveres beacon időzítő letiltása"
-
 msgid "Disabled"
 msgstr "Letiltva"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Beérkező RFC1918 DHCP válaszok elvetése. "
 
@@ -917,9 +929,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Ne továbbítson fordított keresési kéréseket a helyi hálózathoz"
 
-msgid "Do not send probe responses"
-msgstr "Ne válaszoljon a szondázásra"
-
 msgid "Domain required"
 msgstr "Tartomány szükséges"
 
@@ -1051,6 +1060,11 @@ msgstr "Engedélyezés/Letiltás"
 msgid "Enabled"
 msgstr "Engedélyezve"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "A Spanning Tree prokoll engedélyezése erre a hídra"
 
@@ -1098,6 +1112,12 @@ msgstr "A bérelt címek lejárati ideje, a minimális érték 2 perc."
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Külső rendszernapló kiszolgáló"
 
@@ -1110,9 +1130,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Gyors keretek"
-
 msgid "File"
 msgstr "Fájl"
 
@@ -1148,6 +1165,9 @@ msgstr "Befejezés"
 msgid "Firewall"
 msgstr "Tűzfal"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Tűzfal Beállítások"
 
@@ -1349,6 +1369,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP cím"
 
@@ -1442,6 +1465,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-cím"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6 IPv4-ben (RFC4213)"
 
@@ -1601,8 +1627,8 @@ msgstr ""
 "Úgy tűnik, hogy a flash-elendő kép-file nem fér el a Flash-memóriába. Kérem "
 "ellenőrizze a kép fájlt!"
 
-msgid "Java Script required!"
-msgstr "Javascript szükséges!"
+msgid "JavaScript required!"
+msgstr "JavaScript szükséges!"
 
 msgid "Join Network"
 msgstr "Csatlakozás a hálózathoz"
@@ -1716,6 +1742,22 @@ msgstr ""
 "<abbr title=\"Domain Name System\">DNS</abbr> szerverek listája, ahová a "
 "kérések továbbításra kerülnek"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1858,9 +1900,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Maximális sebesség"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Aktív DHCP bérletek maximális száma"
 
@@ -1896,9 +1935,6 @@ msgstr "Memória használat (%)"
 msgid "Metric"
 msgstr "Metrika"
 
-msgid "Minimum Rate"
-msgstr "Minimális sebesség"
-
 msgid "Minimum hold time"
 msgstr "Minimális tartási idő"
 
@@ -1911,6 +1947,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Hiányzó protokoll kiterjesztés a %q progokoll számára"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Mód"
 
@@ -1969,9 +2008,6 @@ msgstr "Mozgatás lefelé"
 msgid "Move up"
 msgstr "Mozgatás felfelé"
 
-msgid "Multicast Rate"
-msgstr "Multicast sebesség"
-
 msgid "Multicast address"
 msgstr "Multicast cím"
 
@@ -2163,6 +2199,9 @@ msgstr "Beállítás módosítva"
 msgid "Option removed"
 msgstr "Beállítás eltávolítva"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2173,8 +2212,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2211,9 +2255,6 @@ msgstr "Ki"
 msgid "Outbound:"
 msgstr "Kimenő:"
 
-msgid "Outdoor Channels"
-msgstr "Kültéri csatornák"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2263,6 +2304,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2392,6 +2436,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2459,6 +2506,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Minőség"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2553,6 +2606,9 @@ msgstr "Valósidejű forgalom"
 msgid "Realtime Wireless"
 msgstr "Valósidejű vezetéknélküli adatok"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Rebind elleni védelem"
 
@@ -2571,6 +2627,9 @@ msgstr "Fogadás"
 msgid "Receiver Antenna"
 msgstr "Vevő antenna"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Csatlakoztassa újra az interfészt"
 
@@ -2580,9 +2639,6 @@ msgstr "Interfész újracsatlakoztatása"
 msgid "References"
 msgstr "Hivatkozások"
 
-msgid "Regulatory Domain"
-msgstr "Szabályozó tartomány"
-
 msgid "Relay"
 msgstr "Átjátszás"
 
@@ -2622,6 +2678,9 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 "Szükséges bizonyos internetszolgáltatók esetén, pl. Charter 'DOCSIS 3'-al"
@@ -2629,13 +2688,18 @@ msgstr ""
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2779,9 +2843,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Kliensek szétválasztása"
 
-msgid "Separate WDS"
-msgstr "WDS szétválasztása"
-
 msgid "Server Settings"
 msgstr "Kiszolgáló beállításai"
 
@@ -2946,9 +3007,6 @@ msgstr "Statikus bérletek"
 msgid "Static Routes"
 msgstr "Statikus útvonalak"
 
-msgid "Static WDS"
-msgstr "Statikus WDS"
-
 msgid "Static address"
 msgstr "Statikus cím"
 
@@ -3375,9 +3433,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbó mód"
-
 msgid "Tx-Power"
 msgstr "Adóteljesítmény"
 
@@ -3396,6 +3451,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB eszköz"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3504,6 +3562,11 @@ msgstr "Használt"
 msgid "Used Key Slot"
 msgstr "Használt kulcsindex"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3656,9 +3719,6 @@ msgstr "A kapott DNS kéréseket írja a rendszernaplóba"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "XR támogatás"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3670,7 +3730,7 @@ msgstr ""
 "esetén, az eszköz elérhetetlenné válhat!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 "Engélyezze a Java Szkripteket a böngészőjében, mert anélkül a LuCI nem fog "
 "megfelelően működni."
@@ -3763,6 +3823,9 @@ msgstr "helyi <abbr title=\"Domain Name System\">DNS</abbr> fájl"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3817,6 +3880,9 @@ msgstr ""
 msgid "tagged"
 msgstr "cimkézett"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "ismeretlen"
 
@@ -3838,6 +3904,54 @@ msgstr "igen"
 msgid "« Back"
 msgstr "« Vissza"
 
+#~ msgid "AR Support"
+#~ msgstr "AR Támogatás"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s vezeték-nélküli vezérlő"
+
+#~ msgid "Background Scan"
+#~ msgstr "Felderítés a háttérben"
+
+#~ msgid "Compression"
+#~ msgstr "Tömörítés"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Hardveres beacon időzítő letiltása"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Ne válaszoljon a szondázásra"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Gyors keretek"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Maximális sebesség"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Minimális sebesség"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicast sebesség"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Kültéri csatornák"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Szabályozó tartomány"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDS szétválasztása"
+
+#~ msgid "Static WDS"
+#~ msgstr "Statikus WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbó mód"
+
+#~ msgid "XR Support"
+#~ msgstr "XR támogatás"
+
 #~ 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"
 
index 199ffcb..c0bfdc2 100644 (file)
@@ -52,12 +52,36 @@ msgstr "Carico in 1 minuto:"
 msgid "15 Minute Load:"
 msgstr "Carico in 15 minut:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Carico in 5 minuti:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr ""
 "<abbr title=\"Servizio basilare di impostazione Identificatore\">BSSID</abbr>"
@@ -149,9 +173,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Supporto AR"
-
 msgid "ARP retry threshold"
 msgstr "riprova soglia ARP"
 
@@ -400,9 +421,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Dispositivi Wi-Fi connessi"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Dispositivo Wireless Atheros 802.11%s"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -481,9 +499,6 @@ msgstr "Ritorna alla panoramica"
 msgid "Back to scan results"
 msgstr "Ritorno ai risultati della scansione"
 
-msgid "Background Scan"
-msgstr "Scansione in background"
-
 msgid "Backup / Flash Firmware"
 msgstr "Copia di Sicurezza / Flash Firmware"
 
@@ -652,9 +667,6 @@ msgstr "Comando"
 msgid "Common Configuration"
 msgstr "Configurazioni Comuni"
 
-msgid "Compression"
-msgstr "Compressione"
-
 msgid "Configuration"
 msgstr "Configurazione"
 
@@ -875,12 +887,12 @@ msgstr "Disabilita il setup dei DNS"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Disabilita Timer Beacon HW"
-
 msgid "Disabled"
 msgstr "Disabilitato"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Ignora risposte RFC1918 upstream"
 
@@ -920,9 +932,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Non proseguire con le ricerche inverse per le reti locali."
 
-msgid "Do not send probe responses"
-msgstr "Disabilita Probe-Responses"
-
 msgid "Domain required"
 msgstr "Dominio richiesto"
 
@@ -1052,6 +1061,11 @@ msgstr "Abilita/Disabilita"
 msgid "Enabled"
 msgstr "Abilitato"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Abilita il protocollo di Spanning Tree su questo bridge"
 
@@ -1100,6 +1114,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Server Log di Sistema esterno"
 
@@ -1112,9 +1132,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Frame veloci"
-
 msgid "File"
 msgstr "File"
 
@@ -1150,6 +1167,9 @@ msgstr "Fine"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Impostazioni Firewall"
 
@@ -1352,6 +1372,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Indirizzo IP"
 
@@ -1445,6 +1468,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Indirizzo-IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1603,8 +1629,8 @@ msgstr ""
 "Sembra tu stia provando a flashare un'immagine più grande delle dimensioni "
 "della memoria flash, per favore controlla il file!"
 
-msgid "Java Script required!"
-msgstr "Richiesto Java Script!"
+msgid "JavaScript required!"
+msgstr "Richiesto JavaScript!"
 
 msgid "Join Network"
 msgstr "Aggiungi Rete"
@@ -1718,6 +1744,22 @@ msgstr ""
 "Elenco di Server <abbr title=\"Sistema Nome Dimio\">DNS</abbr>a cui "
 "inoltrare le richieste in"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1856,9 +1898,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Velocità massima"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1894,9 +1933,6 @@ msgstr "Uso Memory (%)"
 msgid "Metric"
 msgstr "Metrica"
 
-msgid "Minimum Rate"
-msgstr "Velocità minima"
-
 msgid "Minimum hold time"
 msgstr "Velocità minima"
 
@@ -1909,6 +1945,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Modalità"
 
@@ -1967,9 +2006,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr "Velocità multicast"
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2161,6 +2197,9 @@ msgstr "Opzione cambiata"
 msgid "Option removed"
 msgstr "Opzione cancellata"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2171,8 +2210,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2209,9 +2253,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr "In uscita:"
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2259,6 +2300,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2388,6 +2432,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2453,6 +2500,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2537,6 +2590,9 @@ msgstr "Traffico in tempo reale"
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2555,6 +2611,9 @@ msgstr "Ricezione"
 msgid "Receiver Antenna"
 msgstr "Antenna ricevente"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Ricollega questa interfaccia"
 
@@ -2564,9 +2623,6 @@ msgstr "Sto ricollegando l'interfaccia"
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2606,19 +2662,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2760,9 +2824,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Isola utenti"
 
-msgid "Separate WDS"
-msgstr "WDS separati"
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2928,9 +2989,6 @@ msgstr "Leases statici"
 msgid "Static Routes"
 msgstr "Instradamenti Statici"
 
-msgid "Static WDS"
-msgstr "WDS statico"
-
 msgid "Static address"
 msgstr "Indirizzo Statico"
 
@@ -3326,9 +3384,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Modalità turbo"
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3347,6 +3402,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3455,6 +3513,11 @@ msgstr "Usato"
 msgid "Used Key Slot"
 msgstr "Slot Chiave Usata"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3607,9 +3670,6 @@ msgstr "Scrittura delle richiesta DNS ricevute nel syslog"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Supporto XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3622,9 +3682,9 @@ msgstr ""
 "potrebbe diventare inaccessibile!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"È necessario attivare Java Script nel tuo browser o LuCI non funzionerà "
+"È necessario attivare JavaScript nel tuo browser o LuCI non funzionerà "
 "correttamente."
 
 msgid ""
@@ -3716,6 +3776,9 @@ msgstr "File <abbr title=\"Sistema Nome Dominio\">DNS</abbr> locale"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3770,6 +3833,9 @@ msgstr ""
 msgid "tagged"
 msgstr "etichettato"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "sconosciuto"
 
@@ -3791,6 +3857,48 @@ msgstr "Sì"
 msgid "« Back"
 msgstr "« Indietro"
 
+#~ msgid "AR Support"
+#~ msgstr "Supporto AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Dispositivo Wireless Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "Scansione in background"
+
+#~ msgid "Compression"
+#~ msgstr "Compressione"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Disabilita Timer Beacon HW"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Disabilita Probe-Responses"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Frame veloci"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Velocità massima"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Velocità minima"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Velocità multicast"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDS separati"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS statico"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Modalità turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Supporto XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "Sarà creata una rete aggiuntiva se lasci questo senza spunta."
 
index ac17c21..975ad9c 100644 (file)
@@ -1,17 +1,17 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-10 03:40+0200\n"
-"PO-Revision-Date: 2016-12-16 15:23+0900\n"
-"Last-Translator: musashino205 <musashino.open@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2017-02-11 03:28+0900\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
 "Language: ja\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: Poedit 1.5.7\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "%s is untagged in multiple VLANs!"
 msgstr "%s は複数のVLANにUntaggedしています!"
@@ -44,7 +44,7 @@ msgid "-- match by label --"
 msgstr "-- ラベルで設定 --"
 
 msgid "-- match by uuid --"
-msgstr ""
+msgstr "-- UUIDで設定 --"
 
 msgid "1 Minute Load:"
 msgstr "過去1分の負荷:"
@@ -52,12 +52,36 @@ msgstr "過去1分の負荷:"
 msgid "15 Minute Load:"
 msgstr "過去15分の負荷:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "過去5分の負荷:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr "802.11w アソシエーションSAクエリの最大タイムアウト時間です。"
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr "802.11w アソシエーションSAクエリの再試行タイムアウト時間です。"
+
+msgid "802.11w Management Frame Protection"
+msgstr "802.11w 管理フレーム保護"
+
+msgid "802.11w maximum timeout"
+msgstr "802.11w 最大タイムアウト"
+
+msgid "802.11w retry timeout"
+msgstr "802.11w 再試行タイムアウト"
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -136,7 +160,7 @@ msgid "A43C + J43 + A43 + V43"
 msgstr ""
 
 msgid "ADSL"
-msgstr ""
+msgstr "ADSL"
 
 msgid "AICCU (SIXXS)"
 msgstr ""
@@ -147,9 +171,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "ARサポート"
-
 msgid "ARP retry threshold"
 msgstr "ARP再試行しきい値"
 
@@ -228,7 +249,7 @@ msgid "Additional Hosts files"
 msgstr "追加のホストファイル"
 
 msgid "Additional servers file"
-msgstr ""
+msgstr "追加のサーバー ファイル"
 
 msgid "Address"
 msgstr "アドレス"
@@ -283,7 +304,7 @@ msgid ""
 msgstr ""
 
 msgid "Allowed IPs"
-msgstr ""
+msgstr "許可されるIP"
 
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
@@ -390,11 +411,8 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "認証済み端末"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s 無線LANコントローラ"
-
 msgid "Auth Group"
-msgstr ""
+msgstr "認証グループ"
 
 msgid "AuthGroup"
 msgstr ""
@@ -471,9 +489,6 @@ msgstr "概要へ戻る"
 msgid "Back to scan results"
 msgstr "スキャン結果へ戻る"
 
-msgid "Background Scan"
-msgstr "バックグラウンドスキャン"
-
 msgid "Backup / Flash Firmware"
 msgstr "バックアップ / ファームウェア更新"
 
@@ -583,6 +598,7 @@ msgstr "マウント前にファイルシステムをチェックする"
 
 msgid "Check this option to delete the existing networks from this radio."
 msgstr ""
+"この無線から既存のネットワークを削除する場合、このオプションを有効にします。"
 
 msgid "Checksum"
 msgstr "チェックサム"
@@ -646,9 +662,6 @@ msgstr "コマンド"
 msgid "Common Configuration"
 msgstr "一般設定"
 
-msgid "Compression"
-msgstr "圧縮"
-
 msgid "Configuration"
 msgstr "設定"
 
@@ -775,7 +788,7 @@ msgid "DS-Lite AFTR address"
 msgstr "DS-Lite AFTR アドレス"
 
 msgid "DSL"
-msgstr ""
+msgstr "DSL"
 
 msgid "DSL Status"
 msgstr ""
@@ -802,7 +815,7 @@ msgid "Default is stateless + stateful"
 msgstr "デフォルトは ステートレス + ステートフル です。"
 
 msgid "Default route"
-msgstr ""
+msgstr "デフォルト ルート"
 
 msgid "Default state"
 msgstr "標準状態"
@@ -868,14 +881,14 @@ msgid "Disable DNS setup"
 msgstr "DNSセットアップを無効にする"
 
 msgid "Disable Encryption"
-msgstr ""
-
-msgid "Disable HW-Beacon timer"
-msgstr "HWビーコンタイマーを無効にする"
+msgstr "暗号化を無効にする"
 
 msgid "Disabled"
 msgstr "無効"
 
+msgid "Disabled (default)"
+msgstr "無効(デフォルト)"
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "RFC1918の応答を破棄します"
 
@@ -915,9 +928,6 @@ msgstr "パブリックDNSサーバーが返答できなかったリクエスト
 msgid "Do not forward reverse lookups for local networks"
 msgstr "ローカルネットワークへの逆引きを転送しません"
 
-msgid "Do not send probe responses"
-msgstr "プローブレスポンスを送信しない"
-
 msgid "Domain required"
 msgstr "ドメイン必須"
 
@@ -1001,7 +1011,7 @@ msgid "Enable HE.net dynamic endpoint update"
 msgstr "HE.netの動的endpoint更新を有効にします"
 
 msgid "Enable IPv6 negotiation"
-msgstr ""
+msgstr "IPv6 ネゴシエーションの有効化"
 
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "PPPリンクのIPv6ネゴシエーションを有効にする"
@@ -1013,7 +1023,7 @@ msgid "Enable NTP client"
 msgstr "NTPクライアント機能を有効にする"
 
 msgid "Enable Single DES"
-msgstr ""
+msgstr "シングルDESの有効化"
 
 msgid "Enable TFTP server"
 msgstr "TFTPサーバーを有効にする"
@@ -1022,7 +1032,7 @@ msgid "Enable VLAN functionality"
 msgstr "VLAN機能を有効にする"
 
 msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
+msgstr "WPS プッシュボタンを有効化するには、WPA(2)-PSKが必要です。"
 
 msgid "Enable learning and aging"
 msgstr "ラーニング・エイジング機能を有効にする"
@@ -1048,6 +1058,11 @@ msgstr "有効/無効"
 msgid "Enabled"
 msgstr "有効"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "スパニングツリー・プロトコルを有効にする"
 
@@ -1058,10 +1073,10 @@ msgid "Encryption"
 msgstr "暗号化モード"
 
 msgid "Endpoint Host"
-msgstr ""
+msgstr "エンドポイント ホスト"
 
 msgid "Endpoint Port"
-msgstr ""
+msgstr "エンドポイント ポート"
 
 msgid "Erasing..."
 msgstr "消去中..."
@@ -1087,7 +1102,6 @@ msgstr "拡張ホスト設定"
 msgid "Expires"
 msgstr "期限切れ"
 
-#, fuzzy
 msgid ""
 "Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
 msgstr ""
@@ -1097,6 +1111,12 @@ msgstr ""
 msgid "External"
 msgstr "外部"
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "外部システムログ・サーバー"
 
@@ -1109,9 +1129,6 @@ msgstr "外部システムログ・サーバー プロトコル"
 msgid "Extra SSH command options"
 msgstr "拡張 SSHコマンドオプション"
 
-msgid "Fast Frames"
-msgstr "ファスト・フレーム"
-
 msgid "File"
 msgstr "ファイル"
 
@@ -1149,6 +1166,9 @@ msgstr "終了"
 msgid "Firewall"
 msgstr "ファイアウォール"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "ファイアウォール設定"
 
@@ -1196,7 +1216,7 @@ msgid "Force TKIP and CCMP (AES)"
 msgstr "TKIP 及びCCMP (AES) を使用"
 
 msgid "Force use of NAT-T"
-msgstr ""
+msgstr "NAT-Tの強制使用"
 
 msgid "Form token mismatch"
 msgstr ""
@@ -1229,6 +1249,8 @@ msgid ""
 "Further information about WireGuard interfaces and peers at <a href=\"http://"
 "wireguard.io\">wireguard.io</a>."
 msgstr ""
+"WireGuard インターフェースとピアについての詳細情報: <a href=\"http://"
+"wireguard.io\">wireguard.io</a>"
 
 msgid "GHz"
 msgstr "GHz"
@@ -1267,7 +1289,7 @@ msgid "Global Settings"
 msgstr "全体設定"
 
 msgid "Global network options"
-msgstr ""
+msgstr "グローバル ネットワークオプション"
 
 msgid "Go to password configuration..."
 msgstr "パスワード設定へ移動..."
@@ -1276,7 +1298,7 @@ msgid "Go to relevant configuration page"
 msgstr "関連する設定ページへ移動"
 
 msgid "Group Password"
-msgstr ""
+msgstr "グループ パスワード"
 
 msgid "Guest"
 msgstr "ゲスト"
@@ -1345,7 +1367,10 @@ msgid "Hybrid"
 msgstr "ハイブリッド"
 
 msgid "IKE DH Group"
-msgstr ""
+msgstr "IKE DHグループ"
+
+msgid "IP Addresses"
+msgstr "IPアドレス"
 
 msgid "IP address"
 msgstr "IPアドレス"
@@ -1366,7 +1391,7 @@ msgid "IPv4 and IPv6"
 msgstr "IPv4及びIPv6"
 
 msgid "IPv4 assignment length"
-msgstr ""
+msgstr "IPv4 割り当て長"
 
 msgid "IPv4 broadcast"
 msgstr "IPv4 ブロードキャスト"
@@ -1420,7 +1445,7 @@ msgid "IPv6 assignment hint"
 msgstr ""
 
 msgid "IPv6 assignment length"
-msgstr ""
+msgstr "IPv6 割り当て長"
 
 msgid "IPv6 gateway"
 msgstr "IPv6 ゲートウェイ"
@@ -1440,6 +1465,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-アドレス"
 
+msgid "IPv6-PD"
+msgstr "IPv6-PD"
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1456,7 +1484,7 @@ msgid "If checked, 1DES is enaled"
 msgstr ""
 
 msgid "If checked, encryption is disabled"
-msgstr ""
+msgstr "チェックした場合、暗号化は無効になります。"
 
 msgid ""
 "If specified, mount the device by its UUID instead of a fixed device node"
@@ -1593,7 +1621,7 @@ msgstr ""
 "更新しようとしたイメージファイルはこのフラッシュメモリに適合しません。イメー"
 "ジファイルを確認してください!"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr "JavaScriptを有効にしてください!"
 
 msgid "Join Network"
@@ -1708,6 +1736,22 @@ msgstr ""
 "問い合わせを転送する<abbr title=\"Domain Name System\">DNS</abbr> サーバーの"
 "リストを設定します"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr "認証用 SSH暗号キー ファイルのリスト"
 
@@ -1826,7 +1870,7 @@ msgid "MB/s"
 msgstr "MB/s"
 
 msgid "MD5"
-msgstr ""
+msgstr "MD5"
 
 msgid "MHz"
 msgstr "MHz"
@@ -1846,9 +1890,6 @@ msgstr "手動"
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "最大レート"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "DHCPリースの許可される最大数"
 
@@ -1886,9 +1927,6 @@ msgstr "メモリ使用率 (%)"
 msgid "Metric"
 msgstr "メトリック"
 
-msgid "Minimum Rate"
-msgstr "最小レート"
-
 msgid "Minimum hold time"
 msgstr "最短保持時間"
 
@@ -1901,6 +1939,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "プロトコル %qのプロトコル拡張が見つかりません"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "モード"
 
@@ -1959,9 +2000,6 @@ msgstr "下へ"
 msgid "Move up"
 msgstr "上へ"
 
-msgid "Multicast Rate"
-msgstr "マルチキャストレート"
-
 msgid "Multicast address"
 msgstr "マルチキャストアドレス"
 
@@ -1969,7 +2007,7 @@ msgid "NAS ID"
 msgstr "NAS ID"
 
 msgid "NAT-T Mode"
-msgstr ""
+msgstr "NAT-T モード"
 
 msgid "NAT64 Prefix"
 msgstr "NAT64 プレフィクス"
@@ -1978,13 +2016,13 @@ msgid "NDP-Proxy"
 msgstr "NDP-プロキシ"
 
 msgid "NT Domain"
-msgstr ""
+msgstr "NT ドメイン"
 
 msgid "NTP server candidates"
 msgstr "NTPサーバー候補"
 
 msgid "NTP sync time-out"
-msgstr ""
+msgstr "NTP 同期タイムアウト"
 
 msgid "Name"
 msgstr "名前"
@@ -2020,7 +2058,7 @@ msgid "No DHCP Server configured for this interface"
 msgstr "このインターフェースにはDHCPサーバーが設定されていません"
 
 msgid "No NAT-T"
-msgstr ""
+msgstr "NAT-Tを使用しない"
 
 msgid "No chains in this table"
 msgstr "チェイン内にルールがありません"
@@ -2086,7 +2124,7 @@ msgid "Note: Configuration files will be erased."
 msgstr "注意: 設定ファイルは消去されます。"
 
 msgid "Note: interface name length"
-msgstr ""
+msgstr "注意: インターフェース名の長さ"
 
 msgid "Notice"
 msgstr "注意"
@@ -2134,7 +2172,7 @@ msgid "One or more fields contain invalid values!"
 msgstr "1つ以上のフィールドに無効な値が設定されています!"
 
 msgid "One or more invalid/required values on tab"
-msgstr ""
+msgstr "タブに1つ以上の 無効/必須 の値があります。"
 
 msgid "One or more required fields have no value!"
 msgstr "1つ以上のフィールドに値が設定されていません!"
@@ -2143,7 +2181,7 @@ msgid "Open list..."
 msgstr "リストを開く"
 
 msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
+msgstr "OpenConnect (CISCO AnyConnect)"
 
 msgid "Operating frequency"
 msgstr "動作周波数"
@@ -2154,6 +2192,9 @@ msgstr "変更されるオプション"
 msgid "Option removed"
 msgstr "削除されるオプション"
 
+msgid "Optional"
+msgstr "オプション"
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2161,11 +2202,16 @@ msgid "Optional, use when the SIXXS account has more than one tunnel"
 msgstr ""
 
 msgid "Optional."
+msgstr "(オプション)"
+
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2175,20 +2221,24 @@ msgid ""
 "Optional. Host of peer. Names are resolved prior to bringing up the "
 "interface."
 msgstr ""
+"ピアのホストです。名前はインターフェースの起動前に解決されます。(オプショ"
+"ン)"
 
 msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
+msgstr "トンネル インターフェースのMaximum Transmission Unit(オプション)"
 
 msgid "Optional. Port of peer."
-msgstr ""
+msgstr "ピアのポート(オプション)"
 
 msgid ""
 "Optional. Seconds between keep alive messages. Default is 0 (disabled). "
 "Recommended value if this device is behind a NAT is 25."
 msgstr ""
+"キープアライブ メッセージの送信間隔(秒)です。既定値: 0。このデバイスがNAT"
+"以下に存在する場合の推奨値は25です。(オプション)"
 
 msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
+msgstr "発信パケットと受信パケットに使用されるUDPポート(オプション)"
 
 msgid "Options"
 msgstr "オプション"
@@ -2202,11 +2252,8 @@ msgstr "アウト"
 msgid "Outbound:"
 msgstr "送信:"
 
-msgid "Outdoor Channels"
-msgstr "屋外用周波数"
-
 msgid "Output Interface"
-msgstr ""
+msgstr "出力インターフェース"
 
 msgid "Override MAC address"
 msgstr "MACアドレスを上書きする"
@@ -2254,6 +2301,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2339,7 +2389,7 @@ msgid "Peer IP address to assign"
 msgstr ""
 
 msgid "Peers"
-msgstr ""
+msgstr "ピア"
 
 msgid "Perfect Forward Secrecy"
 msgstr ""
@@ -2351,7 +2401,7 @@ msgid "Perform reset"
 msgstr "設定リセットを実行"
 
 msgid "Persistent Keep Alive"
-msgstr ""
+msgstr "永続的なキープアライブ"
 
 msgid "Phy Rate:"
 msgstr "物理レート:"
@@ -2383,6 +2433,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr "委任されたプレフィクス (PD)"
+
 msgid "Preshared Key"
 msgstr "事前共有鍵"
 
@@ -2412,7 +2465,7 @@ msgid "Processes"
 msgstr "プロセス"
 
 msgid "Profile"
-msgstr ""
+msgstr "プロファイル"
 
 msgid "Prot."
 msgstr "プロトコル"
@@ -2450,9 +2503,15 @@ msgstr ""
 msgid "Quality"
 msgstr "クオリティ"
 
-msgid "RFC3947 NAT-T mode"
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
 msgstr ""
 
+msgid "RFC3947 NAT-T mode"
+msgstr "RFC3947 NAT-Tモード"
+
 msgid "RTS/CTS Threshold"
 msgstr "RTS/CTS閾値"
 
@@ -2545,6 +2604,9 @@ msgstr "リアルタイム・トラフィック"
 msgid "Realtime Wireless"
 msgstr "リアルタイム・無線LAN"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "DNSリバインディング・プロテクション"
 
@@ -2563,6 +2625,9 @@ msgstr "受信"
 msgid "Receiver Antenna"
 msgstr "受信アンテナ"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr "WireGuard インターフェースのIPアドレスです。(推奨)"
+
 msgid "Reconnect this interface"
 msgstr "インターフェースの再接続"
 
@@ -2572,9 +2637,6 @@ msgstr "インターフェース再接続中"
 msgid "References"
 msgstr "参照カウンタ"
 
-msgid "Regulatory Domain"
-msgstr "規制ドメイン"
-
 msgid "Relay"
 msgstr "リレー"
 
@@ -2591,7 +2653,7 @@ msgid "Remote IPv4 address"
 msgstr "リモートIPv4アドレス"
 
 msgid "Remote IPv4 address or FQDN"
-msgstr ""
+msgstr "リモート IPv4アドレス または FQDN"
 
 msgid "Remove"
 msgstr "削除"
@@ -2609,15 +2671,21 @@ msgid "Request IPv6-address"
 msgstr "IPv6-アドレスのリクエスト"
 
 msgid "Request IPv6-prefix of length"
-msgstr ""
+msgstr "リクエストするIPv6-プレフィクス長"
 
 msgid "Require TLS"
 msgstr "TLSが必要"
 
+msgid "Required"
+msgstr "必須"
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "DOCSIS 3.0を使用するいくつかのISPでは必要になります"
 
 msgid "Required. Base64-encoded private key for this interface."
+msgstr "このインターフェースに使用するBase64-エンコード 秘密鍵(必須)"
+
+msgid "Required. Base64-encoded public key of peer."
 msgstr ""
 
 msgid ""
@@ -2626,8 +2694,12 @@ msgid ""
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
+"'フル' バージョンの wpad/hostapd と、無線LANドライバーによるサポートが必要で"
+"す。<br />(2017年2月現在: ath9k と ath10k、LEDE内では mwlwifi と mt76)"
 
 msgid ""
 "Requires upstream supports DNSSEC; verify unsigned domain responses really "
@@ -2677,7 +2749,7 @@ msgid "Route Allowed IPs"
 msgstr ""
 
 msgid "Route type"
-msgstr ""
+msgstr "ルート タイプ"
 
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
@@ -2705,7 +2777,7 @@ msgid "Run filesystem check"
 msgstr "ファイルシステムチェックを行う"
 
 msgid "SHA256"
-msgstr ""
+msgstr "SHA256"
 
 msgid ""
 "SIXXS supports TIC only, for static tunnels using IP protocol 41 (RFC4213) "
@@ -2716,7 +2788,7 @@ msgid "SIXXS-handle[/Tunnel-ID]"
 msgstr ""
 
 msgid "SNR"
-msgstr ""
+msgstr "SNR"
 
 msgid "SSH Access"
 msgstr "SSHアクセス"
@@ -2770,9 +2842,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "クライアントの分離"
 
-msgid "Separate WDS"
-msgstr "WDSを分離する"
-
 msgid "Server Settings"
 msgstr "サーバー設定"
 
@@ -2806,7 +2875,7 @@ msgid "Severely Errored Seconds (SES)"
 msgstr ""
 
 msgid "Short GI"
-msgstr ""
+msgstr "Short GI"
 
 msgid "Show current backup file list"
 msgstr "現在のバックアップファイルのリストを表示する"
@@ -2933,9 +3002,6 @@ msgstr "静的リース"
 msgid "Static Routes"
 msgstr "静的ルーティング"
 
-msgid "Static WDS"
-msgstr "静的WDS"
-
 msgid "Static address"
 msgstr "静的アドレス"
 
@@ -3031,12 +3097,11 @@ msgid "Target"
 msgstr "ターゲット"
 
 msgid "Target network"
-msgstr ""
+msgstr "対象ネットワーク"
 
 msgid "Terminate"
 msgstr "停止"
 
-#, fuzzy
 msgid ""
 "The <em>Device Configuration</em> section covers physical settings of the "
 "radio hardware such as channel, transmit power or antenna selection which "
@@ -3117,12 +3182,11 @@ msgstr "このシステムでは、現在以下のルールが有効になって
 msgid "The given network name is not unique"
 msgstr "設定されたネットワーク名はユニークなものではありません"
 
-#, fuzzy
 msgid ""
 "The hardware is not multi-SSID capable and the existing configuration will "
 "be replaced if you proceed."
 msgstr ""
-"このハードウェアではマルチESSIDを設定することができないため、続行した場合、設"
+"このハードウェアでは複数のESSIDを設定することができないため、続行した場合、設"
 "定は既存の設定と置き換えられます。"
 
 msgid ""
@@ -3156,7 +3220,6 @@ msgid ""
 "when finished."
 msgstr "システムは設定領域を消去中です。完了後、自動的に再起動します。"
 
-#, fuzzy
 msgid ""
 "The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
 "few minutes before you try to reconnect. It might be necessary to renew the "
@@ -3339,19 +3402,16 @@ msgid "Tunnel Interface"
 msgstr "トンネルインターフェース"
 
 msgid "Tunnel Link"
-msgstr ""
+msgstr "トンネルリンク"
 
 msgid "Tunnel broker protocol"
-msgstr ""
+msgstr "トンネルブローカー プロトコル"
 
 msgid "Tunnel setup server"
-msgstr ""
+msgstr "トンネルセットアップ サーバー"
 
 msgid "Tunnel type"
-msgstr ""
-
-msgid "Turbo Mode"
-msgstr "ターボモード"
+msgstr "トンネルタイプ"
 
 msgid "Tx-Power"
 msgstr "送信電力"
@@ -3371,6 +3431,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USBデバイス"
 
+msgid "USB Ports"
+msgstr "USB ポート"
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3480,6 +3543,11 @@ msgstr "使用"
 msgid "Used Key Slot"
 msgstr "使用するキースロット"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3493,7 +3561,7 @@ msgid "VC-Mux"
 msgstr "VC-Mux"
 
 msgid "VDSL"
-msgstr ""
+msgstr "VDSL"
 
 msgid "VLANs on %q"
 msgstr "%q上のVLANs"
@@ -3502,25 +3570,25 @@ msgid "VLANs on %q (%s)"
 msgstr "%q上のVLAN (%s)"
 
 msgid "VPN Local address"
-msgstr ""
+msgstr "VPN ローカルアドレス"
 
 msgid "VPN Local port"
-msgstr ""
+msgstr "VPN ローカルポート"
 
 msgid "VPN Server"
 msgstr "VPN サーバー"
 
 msgid "VPN Server port"
-msgstr ""
+msgstr "VPN サーバーポート"
 
 msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
+msgstr "VPN サーバー証明書 SHA1ハッシュ"
 
 msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
+msgstr "VPNC (CISCO 3000 (またはその他の) VPN)"
 
 msgid "Vendor"
-msgstr ""
+msgstr "ベンダー"
 
 msgid "Vendor Class to send when requesting DHCP"
 msgstr "DHCPリクエスト送信時のベンダークラスを設定"
@@ -3574,7 +3642,7 @@ msgid "Waiting for command to complete..."
 msgstr "コマンド実行中です..."
 
 msgid "Waiting for device..."
-msgstr ""
+msgstr "デバイスの起動をお待ちください..."
 
 msgid "Warning"
 msgstr "警告"
@@ -3592,7 +3660,7 @@ msgid "Width"
 msgstr "帯域幅"
 
 msgid "WireGuard VPN"
-msgstr ""
+msgstr "WireGuard VPN"
 
 msgid "Wireless"
 msgstr "無線"
@@ -3633,9 +3701,6 @@ msgstr "受信したDNSリクエストをsyslogへ記録します"
 msgid "Write system log to file"
 msgstr "システムログをファイルに書き込む"
 
-msgid "XR Support"
-msgstr "XRサポート"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3647,14 +3712,17 @@ msgstr ""
 "</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
-msgstr "Java Scriptを有効にしない場合、LuCIは正しく動作しません。"
+"You must enable JavaScript in your browser or LuCI will not work properly."
+msgstr "JavaScriptを有効にしない場合、LuCIは正しく動作しません。"
 
 msgid ""
 "Your Internet Explorer is too old to display this page correctly. Please "
 "upgrade it to at least version 7 or use another browser like Firefox, Opera "
 "or Safari."
 msgstr ""
+"Internet Explorerが古すぎるため、このページを正しく表示することができません。"
+"バージョン 7以上にアップグレードするか、FirefoxやOpera、Safariなど別のブラウ"
+"ザーを使用してください。"
 
 msgid "any"
 msgstr "全て"
@@ -3712,7 +3780,7 @@ msgid "help"
 msgstr "ヘルプ"
 
 msgid "hidden"
-msgstr ""
+msgstr "(不明)"
 
 msgid "hybrid mode"
 msgstr "ハイブリッド モード"
@@ -3721,7 +3789,7 @@ msgid "if target is a network"
 msgstr "ターゲットがネットワークの場合"
 
 msgid "input"
-msgstr ""
+msgstr "入力"
 
 msgid "kB"
 msgstr "kB"
@@ -3736,6 +3804,9 @@ msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
 msgstr "ローカル <abbr title=\"Domain Name System\">DNS</abbr>ファイル"
 
 msgid "minimum 1280, maximum 1480"
+msgstr "最小値 1280、最大値 1480"
+
+msgid "minutes"
 msgstr ""
 
 msgid "navigation Navigation"
@@ -3760,10 +3831,10 @@ msgid "on"
 msgstr "オン"
 
 msgid "open"
-msgstr ""
+msgstr "オープン"
 
 msgid "overlay"
-msgstr ""
+msgstr "オーバーレイ"
 
 msgid "relay mode"
 msgstr "リレー モード"
@@ -3792,6 +3863,9 @@ msgstr "ステートレス + ステートフル"
 msgid "tagged"
 msgstr "tagged"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "不明"
 
@@ -3813,6 +3887,57 @@ msgstr "はい"
 msgid "« Back"
 msgstr "« 戻る"
 
+#~ msgid "AR Support"
+#~ msgstr "ARサポート"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s 無線LANコントローラ"
+
+#~ msgid "Background Scan"
+#~ msgstr "バックグラウンドスキャン"
+
+#~ msgid "Compression"
+#~ msgstr "圧縮"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "HWビーコンタイマーを無効にする"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "プローブレスポンスを送信しない"
+
+#~ msgid "Fast Frames"
+#~ msgstr "ファスト・フレーム"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "最大レート"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "最小レート"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "マルチキャストレート"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "屋外用周波数"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "規制ドメイン"
+
+#~ msgid "Separate WDS"
+#~ msgstr "WDSを分離する"
+
+#~ msgid "Static WDS"
+#~ msgstr "静的WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "ターボモード"
+
+#~ msgid "XR Support"
+#~ msgstr "XRサポート"
+
+#~ msgid "Required. Public key of peer."
+#~ msgstr "ピアの公開鍵(必須)"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "チェックボックスがオフの場合、追加のネットワークが作成されます。"
 
index c20444e..e79d36e 100644 (file)
@@ -52,12 +52,36 @@ msgstr "1 분 부하:"
 msgid "15 Minute Load:"
 msgstr "15 분 부하:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "5 분 부하:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr ""
 
@@ -142,9 +166,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr ""
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -382,9 +403,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "연결된 station 들"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -463,9 +481,6 @@ msgstr ""
 msgid "Back to scan results"
 msgstr ""
 
-msgid "Background Scan"
-msgstr ""
-
 msgid "Backup / Flash Firmware"
 msgstr "Firmware 백업 / Flash"
 
@@ -634,9 +649,6 @@ msgstr "명령어"
 msgid "Common Configuration"
 msgstr "공통 설정"
 
-msgid "Compression"
-msgstr ""
-
 msgid "Configuration"
 msgstr "설정"
 
@@ -859,10 +871,10 @@ msgstr ""
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
 msgstr ""
 
-msgid "Disabled"
+msgid "Disabled (default)"
 msgstr ""
 
 msgid "Discard upstream RFC1918 responses"
@@ -902,9 +914,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
@@ -1031,6 +1040,11 @@ msgstr "활성/비활성"
 msgid "Enabled"
 msgstr "활성화됨"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "이 bridge 에 Spanning Tree Protocol 활성화합니다"
 
@@ -1077,6 +1091,12 @@ msgstr "임대한 주소의 유효 시간.  최소값은  2 분 (<code>2m</code>
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "외부 system log 서버"
 
@@ -1089,9 +1109,6 @@ msgstr "외부 system log 서버 프로토콜"
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1127,6 +1144,9 @@ msgstr ""
 msgid "Firewall"
 msgstr "방화벽"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "방화벽 설정"
 
@@ -1325,6 +1345,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP 주소"
 
@@ -1418,6 +1441,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-주소"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1562,7 +1588,7 @@ msgid ""
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1676,6 +1702,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1809,9 +1851,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Active DHCP lease 건의 최대 허용 숫자"
 
@@ -1847,9 +1886,6 @@ msgstr "메모리 사용량 (%)"
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1862,6 +1898,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1918,9 +1957,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2113,6 +2149,9 @@ msgstr "변경된 option"
 msgid "Option removed"
 msgstr "삭제된 option"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2123,8 +2162,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2161,9 +2205,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2213,6 +2254,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2342,6 +2386,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2407,6 +2454,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2490,6 +2543,9 @@ msgstr "실시간 트래픽"
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2508,6 +2564,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "이 인터페이스를 재연결합니다"
 
@@ -2517,9 +2576,6 @@ msgstr "인터페이스 재연결중입니다"
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2559,19 +2615,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "특정 ISP 들에 요구됨.  예: Charter (DOCSIS 3 기반)"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2713,9 +2777,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr "서버 설정"
 
@@ -2873,9 +2934,6 @@ msgstr "Static Lease 들"
 msgid "Static Routes"
 msgstr "Static Route 경로"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -3123,8 +3181,8 @@ msgid ""
 "There is no password set on this router. Please configure a root password to "
 "protect the web interface and enable SSH."
 msgstr ""
-"이 공유기에 암호 설정이 되지 않았습니다. 웹 UI 와 SSH 부분을 보호하기 "
-"위해서 꼭 root 암호를 설정해 주세요."
+"이 공유기에 암호 설정이 되지 않았습니다. 웹 UI 와 SSH 부분을 보호하기 위해서 "
+"꼭 root 암호를 설정해 주세요."
 
 msgid "This IPv4 address of the relay"
 msgstr ""
@@ -3262,9 +3320,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3283,6 +3338,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3392,6 +3450,11 @@ msgstr ""
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3542,9 +3605,6 @@ msgstr "받은 DNS 요청 내용을 systlog 에 기록합니다"
 msgid "Write system log to file"
 msgstr "System log 출력 파일 경로"
 
-msgid "XR Support"
-msgstr ""
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3556,7 +3616,7 @@ msgstr ""
 "다!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 
 msgid ""
@@ -3647,6 +3707,9 @@ msgstr "local <abbr title=\"Domain Name System\">DNS</abbr> 파일"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3701,6 +3764,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
index 971afd4..ac6a286 100644 (file)
@@ -52,12 +52,36 @@ msgstr ""
 msgid "15 Minute Load:"
 msgstr ""
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr ""
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -139,9 +163,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr "AR-Penyokong"
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -377,9 +398,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Associated Stesen"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -458,9 +476,6 @@ msgstr "Kembali ke ikhtisar"
 msgid "Back to scan results"
 msgstr "Kembali ke keputusan scan"
 
-msgid "Background Scan"
-msgstr "Latar Belakang Scan"
-
 msgid "Backup / Flash Firmware"
 msgstr ""
 
@@ -616,9 +631,6 @@ msgstr "Perintah"
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr "Mampatan"
-
 msgid "Configuration"
 msgstr "Konfigurasi"
 
@@ -832,12 +844,12 @@ msgstr ""
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Mematikan pemasa HW-Beacon"
-
 msgid "Disabled"
 msgstr ""
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr ""
 
@@ -877,9 +889,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr "Jangan menghantar jawapan penyelidikan"
-
 msgid "Domain required"
 msgstr "Domain diperlukan"
 
@@ -1003,6 +1012,11 @@ msgstr ""
 msgid "Enabled"
 msgstr ""
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Aktifkan spanning Tree Protokol di jambatan ini"
 
@@ -1049,6 +1063,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr ""
 
@@ -1061,9 +1081,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Frame Cepat"
-
 msgid "File"
 msgstr ""
 
@@ -1099,6 +1116,9 @@ msgstr "Selesai"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Tetapan Firewall"
 
@@ -1296,6 +1316,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Alamat IP"
 
@@ -1389,6 +1412,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1541,7 +1567,7 @@ msgstr ""
 "Tampak bahawa anda cuba untuk flash fail gambar yang tidak sesuai dengan "
 "memori flash, sila buat pengesahan pada fail gambar!"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 #, fuzzy
@@ -1655,6 +1681,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1787,9 +1829,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Rate Maksimum"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1826,9 +1865,6 @@ msgstr "Penggunaan Memori (%)"
 msgid "Metric"
 msgstr "Metrik"
 
-msgid "Minimum Rate"
-msgstr "Rate Minimum"
-
 #, fuzzy
 msgid "Minimum hold time"
 msgstr "Memegang masa minimum"
@@ -1842,6 +1878,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Mode"
 
@@ -1900,9 +1939,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr "Multicast Rate"
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2094,6 +2130,9 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2104,8 +2143,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2142,9 +2186,6 @@ msgstr "Keluar"
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr "Saluran Outdoor"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2192,6 +2233,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2321,6 +2365,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2386,6 +2433,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2466,6 +2519,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2484,6 +2540,9 @@ msgstr "Menerima"
 msgid "Receiver Antenna"
 msgstr "Antena Penerima"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2493,9 +2552,6 @@ msgstr ""
 msgid "References"
 msgstr "Rujukan"
 
-msgid "Regulatory Domain"
-msgstr "Peraturan Domain"
-
 msgid "Relay"
 msgstr ""
 
@@ -2535,19 +2591,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2689,9 +2753,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Pisahkan Pelanggan"
 
-msgid "Separate WDS"
-msgstr "Pisahkan WDS"
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2850,9 +2911,6 @@ msgstr "Statische Einträge"
 msgid "Static Routes"
 msgstr "Laluan Statik"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -3236,9 +3294,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Mod Turbo"
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3257,6 +3312,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3358,6 +3416,11 @@ msgstr "Diguna"
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3510,9 +3573,6 @@ msgstr ""
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Sokongan XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3520,7 +3580,7 @@ msgid ""
 msgstr ""
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 
 msgid ""
@@ -3609,6 +3669,9 @@ msgstr "Fail DNS tempatan"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3663,6 +3726,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3683,3 +3749,45 @@ msgstr ""
 
 msgid "« Back"
 msgstr "« Kembali"
+
+#~ msgid "AR Support"
+#~ msgstr "AR-Penyokong"
+
+#~ msgid "Background Scan"
+#~ msgstr "Latar Belakang Scan"
+
+#~ msgid "Compression"
+#~ msgstr "Mampatan"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Mematikan pemasa HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Jangan menghantar jawapan penyelidikan"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Frame Cepat"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Rate Maksimum"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Rate Minimum"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicast Rate"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Saluran Outdoor"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Peraturan Domain"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Pisahkan WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Mod Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Sokongan XR"
index 400876d..aac8f0b 100644 (file)
@@ -47,12 +47,36 @@ msgstr "1 minutts belastning:"
 msgid "15 Minute Load:"
 msgstr "15 minutters belastning:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "5 minutters belastning:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -141,9 +165,6 @@ msgstr ""
 msgid "APN"
 msgstr "<abbr title=\"Aksesspunkt Navn\">APN</abbr>"
 
-msgid "AR Support"
-msgstr "AR Støtte"
-
 msgid "ARP retry threshold"
 msgstr "APR terskel for nytt forsøk"
 
@@ -386,9 +407,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Tilkoblede Klienter"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s Trådløs Kontroller"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -467,9 +485,6 @@ msgstr "Tilbake til oversikt"
 msgid "Back to scan results"
 msgstr "Tilbake til skanne resultat"
 
-msgid "Background Scan"
-msgstr "Bakgrunns Skanning"
-
 msgid "Backup / Flash Firmware"
 msgstr "Sikkerhetskopiering/Firmware oppgradering"
 
@@ -638,9 +653,6 @@ msgstr "Kommando"
 msgid "Common Configuration"
 msgstr "Vanlige Innstillinger"
 
-msgid "Compression"
-msgstr "Komprimering"
-
 msgid "Configuration"
 msgstr "Konfigurasjon"
 
@@ -860,12 +872,12 @@ msgstr "Deaktiver DNS oppsett"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Deaktiver HW-Beacon timer"
-
 msgid "Disabled"
 msgstr "Deaktivert"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Forkast oppstrøms RFC1918 svar"
 
@@ -906,9 +918,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Ikke videresend reverserte oppslag for lokale nettverk"
 
-msgid "Do not send probe responses"
-msgstr "Ikke send probe svar"
-
 msgid "Domain required"
 msgstr "Domene kreves"
 
@@ -1038,6 +1047,11 @@ msgstr "Aktiver/Deaktiver"
 msgid "Enabled"
 msgstr "Aktivert"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Aktiverer Spanning Tree Protocol på denne broen"
 
@@ -1085,6 +1099,12 @@ msgstr "Utløpstid på leide adresser, minimum er 2 minutter (<code>2m</code>)."
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Ekstern systemlogg server"
 
@@ -1097,9 +1117,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Fast Frames"
-
 msgid "File"
 msgstr "Fil"
 
@@ -1135,6 +1152,9 @@ msgstr "Fullfør"
 msgid "Firewall"
 msgstr "Brannmur"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Brannmur Innstillinger"
 
@@ -1335,6 +1355,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP adresse"
 
@@ -1428,6 +1451,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-Adresse"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-i-IPv4 (RFC4213)"
 
@@ -1579,8 +1605,8 @@ msgstr ""
 "Det virker som du prøver å flashe med en firmware som ikke passer inn i "
 "flash-minnet, vennligst kontroller firmware filen!"
 
-msgid "Java Script required!"
-msgstr "Java Script kreves!"
+msgid "JavaScript required!"
+msgstr "JavaScript kreves!"
 
 msgid "Join Network"
 msgstr "Koble til nettverket"
@@ -1694,6 +1720,22 @@ msgstr ""
 "Liste med <abbr title=\"Domain Name System\">DNS</abbr> servere som "
 "forespørsler blir videresendt til"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1832,9 +1874,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Maksimal hastighet"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Maksimalt antall aktive DHCP leieavtaler"
 
@@ -1870,9 +1909,6 @@ msgstr "Minne forbruk (%)"
 msgid "Metric"
 msgstr "Metrisk"
 
-msgid "Minimum Rate"
-msgstr "Minimum hastighet"
-
 msgid "Minimum hold time"
 msgstr "Minimum holde tid"
 
@@ -1885,6 +1921,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Mangler protokoll utvidelse for proto %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Modus"
 
@@ -1943,9 +1982,6 @@ msgstr "Flytt ned"
 msgid "Move up"
 msgstr "Flytt opp"
 
-msgid "Multicast Rate"
-msgstr "Multicast hastighet"
-
 msgid "Multicast address"
 msgstr "Multicast adresse"
 
@@ -2138,6 +2174,9 @@ msgstr "Innstilling endret"
 msgid "Option removed"
 msgstr "Innstilling fjernet"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2148,8 +2187,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2186,9 +2230,6 @@ msgstr "Ut"
 msgid "Outbound:"
 msgstr "Ugående:"
 
-msgid "Outdoor Channels"
-msgstr "Utendørs Kanaler"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2238,6 +2279,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2367,6 +2411,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2434,6 +2481,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Kvalitet"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2527,6 +2580,9 @@ msgstr "Trafikk Sanntid"
 msgid "Realtime Wireless"
 msgstr "Trådløst i sanntid"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Binde beskyttelse"
 
@@ -2545,6 +2601,9 @@ msgstr "Motta"
 msgid "Receiver Antenna"
 msgstr "Mottak antenne"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Koble til igjen"
 
@@ -2554,9 +2613,6 @@ msgstr "Kobler til igjen"
 msgid "References"
 msgstr "Referanser"
 
-msgid "Regulatory Domain"
-msgstr "Regulerende Domene"
-
 msgid "Relay"
 msgstr "Relay"
 
@@ -2596,19 +2652,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "Er nødvendig for noen nettleverandører, f.eks Charter med DOCSIS 3"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2752,9 +2816,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Separerte Klienter"
 
-msgid "Separate WDS"
-msgstr "Separert WDS"
-
 msgid "Server Settings"
 msgstr "Server Innstillinger"
 
@@ -2917,9 +2978,6 @@ msgstr "Statiske Leier"
 msgid "Static Routes"
 msgstr "Statiske Ruter"
 
-msgid "Static WDS"
-msgstr "Statisk WDS"
-
 msgid "Static address"
 msgstr "Statisk adresse"
 
@@ -3341,9 +3399,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbo Modus"
-
 msgid "Tx-Power"
 msgstr "Tx-Styrke"
 
@@ -3362,6 +3417,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB Enhet"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3470,6 +3528,11 @@ msgstr "Brukt"
 msgid "Used Key Slot"
 msgstr "Brukte Nøkler"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3622,9 +3685,6 @@ msgstr "Skriv mottatte DNS forespørsler til syslog"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "XR Støtte"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3636,9 +3696,9 @@ msgstr ""
 "utilgjengelig! </strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"Du må aktivere Java Script i nettleseren din ellers vil ikke LuCI fungere "
+"Du må aktivere JavaScript i nettleseren din ellers vil ikke LuCI fungere "
 "skikkelig."
 
 msgid ""
@@ -3729,6 +3789,9 @@ msgstr "lokal <abbr title=\"Domain Navn System\">DNS</abbr>-fil"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3783,6 +3846,9 @@ msgstr ""
 msgid "tagged"
 msgstr "tagget"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "ukjent"
 
@@ -3804,6 +3870,54 @@ msgstr "ja"
 msgid "« Back"
 msgstr "« Tilbake"
 
+#~ msgid "AR Support"
+#~ msgstr "AR Støtte"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s Trådløs Kontroller"
+
+#~ msgid "Background Scan"
+#~ msgstr "Bakgrunns Skanning"
+
+#~ msgid "Compression"
+#~ msgstr "Komprimering"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Deaktiver HW-Beacon timer"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Ikke send probe svar"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Fast Frames"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Maksimal hastighet"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Minimum hastighet"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicast hastighet"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Utendørs Kanaler"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Regulerende Domene"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Separert WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "Statisk WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo Modus"
+
+#~ msgid "XR Support"
+#~ msgstr "XR Støtte"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "Et nytt nettverk vil bli opprettet hvis du tar bort haken."
 
index e77a515..7911154 100644 (file)
@@ -53,12 +53,36 @@ msgstr "Obciążenie 1 min.:"
 msgid "15 Minute Load:"
 msgstr "Obciążenie 15 min.:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Obciążenie 5 min.:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -146,10 +170,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-# Wydaje mi się że brakuje litery R...
-msgid "AR Support"
-msgstr "Wsparcie dla ARP"
-
 msgid "ARP retry threshold"
 msgstr "Próg powtórzeń ARP"
 
@@ -401,9 +421,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Połączone stacje"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Bezprzewodowy kontroler Atheros 802.11%s"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -483,9 +500,6 @@ msgstr "Wróć do przeglądu"
 msgid "Back to scan results"
 msgstr "Wróć do wyników skanowania"
 
-msgid "Background Scan"
-msgstr "Skanowanie w tle"
-
 msgid "Backup / Flash Firmware"
 msgstr "Kopia zapasowa/aktualizacja firmware"
 
@@ -657,9 +671,6 @@ msgstr "Polecenie"
 msgid "Common Configuration"
 msgstr "Konfiguracja podstawowa"
 
-msgid "Compression"
-msgstr "Kompresja"
-
 msgid "Configuration"
 msgstr "Konfiguracja"
 
@@ -882,12 +893,12 @@ msgstr "Wyłącz konfigurowanie DNS"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Wyłącz zegar HW-Beacon"
-
 msgid "Disabled"
 msgstr "Wyłączony"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Odrzuć wychodzące odpowiedzi RFC1918"
 
@@ -930,9 +941,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Nie przekazuj odwrotnych lookup`ów do sieci lokalnych"
 
-msgid "Do not send probe responses"
-msgstr "Nie wysyłaj ramek probe response"
-
 msgid "Domain required"
 msgstr "Wymagana domena"
 
@@ -1065,6 +1073,11 @@ msgstr "Wlącz/Wyłącz"
 msgid "Enabled"
 msgstr "Włączony"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 "Włącz protokół <abbr title=\"Spanning Tree Protocol\">STP</abbr> na tym "
@@ -1116,6 +1129,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Zewnętrzny serwer dla loga systemowego"
 
@@ -1128,9 +1147,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Szybkie ramki (Fast Frames)"
-
 msgid "File"
 msgstr "Plik"
 
@@ -1166,6 +1182,9 @@ msgstr "Zakończ"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 # Nie ma potrzeby pisania z dużej litery
 msgid "Firewall Settings"
 msgstr "Ustawienia firewalla"
@@ -1372,6 +1391,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Adres IP"
 
@@ -1465,6 +1487,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Adres IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-w-IPv4 (RFC4213)"
 
@@ -1624,8 +1649,8 @@ msgstr ""
 "Wygląda na to, że próbujesz wgrać obraz większy niż twoja pamięć flash, "
 "proszę sprawdź czy to właściwy obraz!"
 
-msgid "Java Script required!"
-msgstr "Java Script jest wymagany!"
+msgid "JavaScript required!"
+msgstr "JavaScript jest wymagany!"
 
 msgid "Join Network"
 msgstr "Połącz z siecią"
@@ -1739,6 +1764,22 @@ msgstr ""
 "Lista serwerów <abbr title=\"Domain Name System\">DNS</abbr> do których będą "
 "przekazywane zapytania"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1878,9 +1919,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Maksymalna Szybkość"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Maksymalna dozwolona liczba aktywnych dzierżaw DHCP"
 
@@ -1916,9 +1954,6 @@ msgstr "Użycie pamięci (%)"
 msgid "Metric"
 msgstr "Metryka"
 
-msgid "Minimum Rate"
-msgstr "Minimalna Szybkość"
-
 msgid "Minimum hold time"
 msgstr "Minimalny czas podtrzymania"
 
@@ -1931,6 +1966,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Brakujące rozszerzenie protokołu dla protokołu %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Tryb"
 
@@ -1989,9 +2027,6 @@ msgstr "Przesuń w dół"
 msgid "Move up"
 msgstr "Przesuń w górę"
 
-msgid "Multicast Rate"
-msgstr "Szybkość Multicast`u"
-
 msgid "Multicast address"
 msgstr "Adres Multicast`u"
 
@@ -2183,6 +2218,9 @@ msgstr "Wartość zmieniona"
 msgid "Option removed"
 msgstr "Usunięto wartość"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2193,8 +2231,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2231,9 +2274,6 @@ msgstr "Wychodzące"
 msgid "Outbound:"
 msgstr "Wychodzący:"
 
-msgid "Outdoor Channels"
-msgstr "Kanały zewnętrzne"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2283,6 +2323,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2414,6 +2457,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2482,6 +2528,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Jakość"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2576,6 +2628,9 @@ msgstr "Ruch w czasie rzeczywistym"
 msgid "Realtime Wireless"
 msgstr "WiFi w czasie rzeczywistym"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Przypisz ochronę"
 
@@ -2594,6 +2649,9 @@ msgstr "Odebrane"
 msgid "Receiver Antenna"
 msgstr "Antena odbiorcza"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Połącz ponownie ten interfejs"
 
@@ -2603,9 +2661,6 @@ msgstr "Łączę ponownie interfejs"
 msgid "References"
 msgstr "Referencje"
 
-msgid "Regulatory Domain"
-msgstr "Domena regulacji"
-
 msgid "Relay"
 msgstr "Przekaźnik"
 
@@ -2645,19 +2700,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "Wymagany dla niektórych dostawców internetu, np. Charter z DOCSIS 3"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2803,9 +2866,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Rozdziel klientów"
 
-msgid "Separate WDS"
-msgstr "Rozdziel WDS"
-
 msgid "Server Settings"
 msgstr "Ustawienia serwera"
 
@@ -2970,9 +3030,6 @@ msgstr "Dzierżawy statyczne"
 msgid "Static Routes"
 msgstr "Statyczne ścieżki routingu"
 
-msgid "Static WDS"
-msgstr "Statyczny WDS"
-
 msgid "Static address"
 msgstr "Stały adres"
 
@@ -3404,9 +3461,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Tryb Turbo"
-
 msgid "Tx-Power"
 msgstr "Moc nadawania"
 
@@ -3425,6 +3479,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Urządzenie USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3534,6 +3591,11 @@ msgstr "Użyte"
 msgid "Used Key Slot"
 msgstr "Użyte gniazdo klucza"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3687,9 +3749,6 @@ msgstr "Zapisz otrzymane żądania DNS do syslog'a"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Wsparcie XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3701,9 +3760,9 @@ msgstr ""
 "się nieosiągalne!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"Musisz włączyć obsługę Java Script w swojej przeglądarce, inaczej LuCI nie "
+"Musisz włączyć obsługę JavaScript w swojej przeglądarce, inaczej LuCI nie "
 "będzie działać poprawnie."
 
 msgid ""
@@ -3794,6 +3853,9 @@ msgstr "lokalny plik <abbr title=\"Domain Name System\">DNS</abbr>"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3849,6 +3911,9 @@ msgstr ""
 msgid "tagged"
 msgstr "tagowane"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "nieznane"
 
@@ -3870,6 +3935,55 @@ msgstr "tak"
 msgid "« Back"
 msgstr "« Wróć"
 
+# Wydaje mi się że brakuje litery R...
+#~ msgid "AR Support"
+#~ msgstr "Wsparcie dla ARP"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Bezprzewodowy kontroler Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "Skanowanie w tle"
+
+#~ msgid "Compression"
+#~ msgstr "Kompresja"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Wyłącz zegar HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Nie wysyłaj ramek probe response"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Szybkie ramki (Fast Frames)"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Maksymalna Szybkość"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Minimalna Szybkość"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Szybkość Multicast`u"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Kanały zewnętrzne"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Domena regulacji"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Rozdziel WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "Statyczny WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Tryb Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Wsparcie XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr ""
 #~ "Zostanie utworzona dodatkowa sieć jeśli zostawisz tą opcję niezaznaczoną."
index e33bcb2..a8086fd 100644 (file)
@@ -1,20 +1,20 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-06-10 03:41+0200\n"
-"PO-Revision-Date: 2014-03-29 23:31+0200\n"
-"Last-Translator: Luiz Angelo <luizluca@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2017-02-22 20:30-0300\n"
+"Last-Translator: Luiz Angelo Daros de Luca <luizluca@gmail.com>\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.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "%s is untagged in multiple VLANs!"
-msgstr ""
+msgstr "%s está sem etiqueta em múltiplas VLANs!"
 
 msgid "(%d minute window, %d second interval)"
 msgstr "(janela de %d minutos, intervalo de %d segundos)"
@@ -38,13 +38,15 @@ msgid "-- custom --"
 msgstr "-- personalizado --"
 
 msgid "-- match by device --"
-msgstr ""
+msgstr "-- casar por dispositivo --"
 
 msgid "-- match by label --"
-msgstr ""
+msgstr "-- casar por rótulo --"
 
 msgid "-- match by uuid --"
 msgstr ""
+"-- casar por <abbr title=\"Universal Unique IDentifier/Identificador Único "
+"Universal\">UUID</abbr> --"
 
 msgid "1 Minute Load:"
 msgstr "Carga 1 Minuto:"
@@ -52,12 +54,38 @@ msgstr "Carga 1 Minuto:"
 msgid "15 Minute Load:"
 msgstr "Carga 15 Minutos:"
 
+msgid "4-character hexadecimal ID"
+msgstr "Identificador hexadecimal de 4 caracteres"
+
 msgid "464XLAT (CLAT)"
-msgstr ""
+msgstr "464XLAT (CLAT)"
 
 msgid "5 Minute Load:"
 msgstr "Carga 5 Minutos:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+"Identificador de 6 octetos como uma cadeia hexadecimal - sem dois pontos"
+
+msgid "802.11r Fast Transition"
+msgstr "802.11r Fast Transition"
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr "Tempo de expiração máximo da consulta da Associação SA do 802.11w"
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+"Tempo de expiração de tentativa de consulta da Associação SA do 802.11w"
+
+msgid "802.11w Management Frame Protection"
+msgstr "Proteção do Quadro de Gerenciamento do 802.11w"
+
+msgid "802.11w maximum timeout"
+msgstr "Estouro de tempo máximo do 802.11w"
+
+msgid "802.11w retry timeout"
+msgstr "Estouro de tempo da nova tentativa do 802.11w"
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr ""
 "<abbr title=\"Identificador de Conjunto Básico de Serviços\">BSSID</abbr>"
@@ -103,6 +131,8 @@ msgstr "Roteador <abbr title=\"Protocolo de Internet Versão 6\">IPv6</abbr>"
 
 msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
 msgstr ""
+"<abbr title=\"Internet Protocol Version 6/Protocolo Internet Versão "
+"6\">IPv6</abbr>-Suffix (hex)"
 
 msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
 msgstr "Configuração do <abbr title=\"Diodo Emissor de Luz\">LED</abbr>"
@@ -134,42 +164,47 @@ msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
 msgstr "<abbr title='Par: %s / Grupo: %s'>%s - %s</abbr>"
 
 msgid "A43C + J43 + A43"
-msgstr ""
+msgstr "A43C + J43 + A43"
 
 msgid "A43C + J43 + A43 + V43"
-msgstr ""
+msgstr "A43C + J43 + A43 + V43"
 
 msgid "ADSL"
 msgstr ""
+"<abbr title=\"Assymetrical Digital Subscriber Line/Linha Digital Assimétrica "
+"para Assinante\">ADSL</abbr>"
 
 msgid "AICCU (SIXXS)"
 msgstr ""
+"<abbr title=\"Automatic IPv6 Connectivity Client Utility/Utilitário Cliente "
+"de Conectividade IPv6 Automática\">AICCU (SIXXS)</abbr>"
 
 msgid "ANSI T1.413"
-msgstr ""
+msgstr "ANSI T1.413"
 
 msgid "APN"
 msgstr "<abbr title=\"Access Point Name\">APN</abbr>"
 
-msgid "AR Support"
-msgstr "Suporte AR"
-
 msgid "ARP retry threshold"
 msgstr ""
 "Limite de retentativas do <abbr title=\"Address Resolution Protocol\">ARP</"
 "abbr>"
 
 msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
+msgstr "ATM (Asynchronous Transfer Mode)"
 
 msgid "ATM Bridges"
 msgstr "Ponte ATM"
 
 msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "Identificador de Canal Virtual ATM (VCI)"
+msgstr ""
+"Identificador de Canal Virtual ATM (<abbr title=\"Virtual Channel Identifier"
+"\">VCI</abbr>)"
 
 msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "Identificador de Caminho Virtual ATM (VPI)"
+msgstr ""
+"Identificador de Caminho Virtual ATM (<abbr title=\"Virtual Path Identifier"
+"\">VPI</abbr>)"
 
 msgid ""
 "ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
@@ -184,10 +219,10 @@ msgid "ATM device number"
 msgstr "Número do dispositivo ATM"
 
 msgid "ATU-C System Vendor ID"
-msgstr ""
+msgstr "Identificador de"
 
 msgid "AYIYA"
-msgstr ""
+msgstr "AYIYA"
 
 msgid "Access Concentrator"
 msgstr "Concentrador de Acesso"
@@ -237,7 +272,7 @@ msgid "Additional Hosts files"
 msgstr "Arquivos adicionais de equipamentos conhecidos (hosts)"
 
 msgid "Additional servers file"
-msgstr ""
+msgstr "Arquivo de servidores adicionais"
 
 msgid "Address"
 msgstr "Endereço"
@@ -253,6 +288,8 @@ msgstr "Opções Avançadas"
 
 msgid "Aggregate Transmit Power(ACTATP)"
 msgstr ""
+"Potência de Transmissão Agregada (<abbr title=\"Aggregate Transmit Power"
+"\">ACTATP</abbr>)"
 
 msgid "Alert"
 msgstr "Alerta"
@@ -261,9 +298,11 @@ msgid ""
 "Allocate IP addresses sequentially, starting from the lowest available "
 "address"
 msgstr ""
+"Alocar endereços IP sequencialmente, iniciando a partir do endereço mais "
+"baixo disponível"
 
 msgid "Allocate IP sequentially"
-msgstr ""
+msgstr "Alocar endereços IP sequencialmente"
 
 msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
 msgstr ""
@@ -296,78 +335,81 @@ msgstr ""
 "exemplo, para os serviços RBL"
 
 msgid "Allowed IPs"
-msgstr ""
+msgstr "Endereços IP autorizados"
 
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
 msgstr ""
+"Veja também a <a href=\"https://www.sixxs.net/faq/connectivity/?"
+"faq=comparison\">Comparação de Tunelamentos</a> em SIXXS"
 
 msgid "Always announce default router"
-msgstr ""
+msgstr "Sempre anuncie o roteador padrão"
 
 msgid "Annex"
-msgstr ""
+msgstr "Anexo"
 
 msgid "Annex A + L + M (all)"
-msgstr ""
+msgstr "Anexos A + L + M (todo)"
 
 msgid "Annex A G.992.1"
-msgstr ""
+msgstr "Anexo A G.992.1"
 
 msgid "Annex A G.992.2"
-msgstr ""
+msgstr "Anexo A G.992.2"
 
 msgid "Annex A G.992.3"
-msgstr ""
+msgstr "Anexo A G.992.3"
 
 msgid "Annex A G.992.5"
-msgstr ""
+msgstr "Anexo A G.992.5"
 
 msgid "Annex B (all)"
-msgstr ""
+msgstr "Anexo B (todo)"
 
 msgid "Annex B G.992.1"
-msgstr ""
+msgstr "Anexo B G.992.1"
 
 msgid "Annex B G.992.3"
-msgstr ""
+msgstr "Anexo B G.992.3"
 
 msgid "Annex B G.992.5"
-msgstr ""
+msgstr "Anexo B G.992.5"
 
 msgid "Annex J (all)"
-msgstr ""
+msgstr "Anexo J (todo)"
 
 msgid "Annex L G.992.3 POTS 1"
-msgstr ""
+msgstr "Anexo L G.992.3 POTS 1"
 
 msgid "Annex M (all)"
-msgstr ""
+msgstr "Anexo M (todo)"
 
 msgid "Annex M G.992.3"
-msgstr ""
+msgstr "Anexo M G.992.3"
 
 msgid "Annex M G.992.5"
-msgstr ""
+msgstr "Anexo M G.992.5"
 
 msgid "Announce as default router even if no public prefix is available."
 msgstr ""
+"Anuncie-se como rotador padrão mesmo se não existir um prefixo público."
 
 msgid "Announced DNS domains"
-msgstr ""
+msgstr "Domínios DNS anunciados"
 
 msgid "Announced DNS servers"
-msgstr ""
+msgstr "Servidores DNS anunciados"
 
 msgid "Anonymous Identity"
-msgstr ""
+msgstr "Identidade Anônima"
 
 msgid "Anonymous Mount"
-msgstr ""
+msgstr "Montagem Anônima"
 
 msgid "Anonymous Swap"
-msgstr ""
+msgstr "Espaço de Troca (swap) Anônimo"
 
 msgid "Antenna 1"
 msgstr "Antena 1"
@@ -390,6 +432,8 @@ msgstr "Aplicar as alterações"
 msgid ""
 "Assign a part of given length of every public IPv6-prefix to this interface"
 msgstr ""
+"Atribua uma parte do comprimento de cada prefixo IPv6 público para esta "
+"interface"
 
 msgid "Assign interfaces..."
 msgstr "atribuir as interfaces"
@@ -397,24 +441,23 @@ msgstr "atribuir as interfaces"
 msgid ""
 "Assign prefix parts using this hexadecimal subprefix ID for this interface."
 msgstr ""
+"Atribua partes do prefixo usando este identificador hexadecimal do "
+"subprefixo para esta interface"
 
 msgid "Associated Stations"
 msgstr "Estações associadas"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Controlador Wireless Atheros 802.11%s"
-
 msgid "Auth Group"
-msgstr ""
+msgstr "Grupo de Autenticação"
 
 msgid "AuthGroup"
-msgstr ""
+msgstr "Grupo de Autenticação"
 
 msgid "Authentication"
 msgstr "Autenticação"
 
 msgid "Authentication Type"
-msgstr ""
+msgstr "Tipo de Autenticação"
 
 msgid "Authoritative"
 msgstr "Autoritário"
@@ -426,25 +469,29 @@ msgid "Auto Refresh"
 msgstr "Atualização Automática"
 
 msgid "Automatic"
-msgstr ""
+msgstr "Automático"
 
 msgid "Automatic Homenet (HNCP)"
 msgstr ""
+"Rede Doméstica Automática (<abbr title=\"Homenet Control Protocol\">HNCP</"
+"abbr>)"
 
 msgid "Automatically check filesystem for errors before mounting"
 msgstr ""
+"Execute automaticamente a verificação do sistema de arquivos antes da "
+"montagem do dispositivo"
 
 msgid "Automatically mount filesystems on hotplug"
-msgstr ""
+msgstr "Monte automaticamente o espaço de troca (swap) ao conectar"
 
 msgid "Automatically mount swap on hotplug"
-msgstr ""
+msgstr "Monte automaticamente o espaço de troca (swap) ao conectar"
 
 msgid "Automount Filesystem"
-msgstr ""
+msgstr "Montagem Automática de Sistema de Arquivo"
 
 msgid "Automount Swap"
-msgstr ""
+msgstr "Montagem Automática do Espaço de Troca (swap) "
 
 msgid "Available"
 msgstr "Disponível"
@@ -456,13 +503,13 @@ msgid "Average:"
 msgstr "Média:"
 
 msgid "B43 + B43C"
-msgstr ""
+msgstr "B43 + B43C"
 
 msgid "B43 + B43C + V43"
-msgstr ""
+msgstr "B43 + B43C + V43"
 
 msgid "BR / DMR / AFTR"
-msgstr ""
+msgstr "BR / DMR / AFTR"
 
 msgid "BSSID"
 msgstr "BSSID"
@@ -482,9 +529,6 @@ msgstr "Voltar para visão geral"
 msgid "Back to scan results"
 msgstr "Voltar para os resultados da busca"
 
-msgid "Background Scan"
-msgstr "Busca em Segundo Plano"
-
 msgid "Backup / Flash Firmware"
 msgstr "Cópia de Segurança / Gravar Firmware"
 
@@ -498,10 +542,10 @@ msgid "Bad address specified!"
 msgstr "Endereço especificado está incorreto!"
 
 msgid "Band"
-msgstr ""
+msgstr "Banda"
 
 msgid "Behind NAT"
-msgstr ""
+msgstr "Atrás da NAT"
 
 msgid ""
 "Below is the determined list of files to backup. It consists of changed "
@@ -513,13 +557,15 @@ msgstr ""
 "padrões para a cópia de segurança definidos pelo usuário."
 
 msgid "Bind interface"
-msgstr ""
+msgstr "Interface Vinculada"
 
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
+"Vincule somente para as explicitamenteinterfaces ao invés do endereço "
+"coringa."
 
 msgid "Bind the tunnel to this interface (optional)."
-msgstr ""
+msgstr "Vincule o túnel a esta interface (opcional)"
 
 msgid "Bitrate"
 msgstr "Taxa de bits"
@@ -552,12 +598,15 @@ msgid ""
 "Build/distribution specific feed definitions. This file will NOT be "
 "preserved in any sysupgrade."
 msgstr ""
+"Fonte de pacotes específico da compilação/distribuição. Esta NÃO será "
+"preservada em qualquer atualização do sistema."
 
 msgid "Buttons"
 msgstr "Botões"
 
 msgid "CA certificate; if empty it will be saved after the first connection."
 msgstr ""
+"Certificado da CA; se em branco, será salvo depois da primeira conexão."
 
 msgid "CPU usage (%)"
 msgstr "Uso da CPU (%)"
@@ -566,7 +615,7 @@ msgid "Cancel"
 msgstr "Cancelar"
 
 msgid "Category"
-msgstr ""
+msgstr "Categoria"
 
 msgid "Chain"
 msgstr "Cadeia"
@@ -588,9 +637,10 @@ msgstr "Verificar"
 
 msgid "Check fileystems before mount"
 msgstr ""
+"Execute a verificação do sistema de arquivos antes da montagem do dispositivo"
 
 msgid "Check this option to delete the existing networks from this radio."
-msgstr ""
+msgstr "Marque esta opção para remover as redes existentes neste rádio."
 
 msgid "Checksum"
 msgstr "Soma de verificação"
@@ -617,7 +667,7 @@ msgid "Cipher"
 msgstr "Cifra"
 
 msgid "Cisco UDP encapsulation"
-msgstr ""
+msgstr "Encapsulamento UDP da Cisco"
 
 msgid ""
 "Click \"Generate archive\" to download a tar archive of the current "
@@ -654,9 +704,6 @@ msgstr "Comando"
 msgid "Common Configuration"
 msgstr "Configuração Comum"
 
-msgid "Compression"
-msgstr "Compressão"
-
 msgid "Configuration"
 msgstr "Configuração"
 
@@ -679,7 +726,7 @@ msgid "Connection Limit"
 msgstr "Limite de conexão"
 
 msgid "Connection to server fails when TLS cannot be used"
-msgstr ""
+msgstr "A conexão para este servidor falhará quando o TLS não puder ser usado"
 
 msgid "Connections"
 msgstr "Conexões"
@@ -715,15 +762,17 @@ msgid "Custom Interface"
 msgstr "Interface Personalizada"
 
 msgid "Custom delegated IPv6-prefix"
-msgstr ""
+msgstr "Prefixo IPv6 delegado personalizado"
 
 msgid ""
 "Custom feed definitions, e.g. private feeds. This file can be preserved in a "
 "sysupgrade."
 msgstr ""
+"Definições de fonte de pacotes personalizadas, ex: fontes privadas. Este "
+"arquivo será preservado em uma atualização do sistema."
 
 msgid "Custom feeds"
-msgstr ""
+msgstr "Fontes de pacotes customizadas"
 
 msgid ""
 "Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
@@ -751,13 +800,13 @@ msgid "DHCPv6 Leases"
 msgstr "Alocações DHCPv6"
 
 msgid "DHCPv6 client"
-msgstr ""
+msgstr "Cliente DHCPv6"
 
 msgid "DHCPv6-Mode"
-msgstr ""
+msgstr "Modo DHCPv6"
 
 msgid "DHCPv6-Service"
-msgstr ""
+msgstr "Serviço DHCPv6"
 
 msgid "DNS"
 msgstr "DNS"
@@ -766,34 +815,34 @@ msgid "DNS forwardings"
 msgstr "Encaminhamentos DNS"
 
 msgid "DNS-Label / FQDN"
-msgstr ""
+msgstr "Rótulo DNS / FQDN"
 
 msgid "DNSSEC"
-msgstr ""
+msgstr "DNSSEC"
 
 msgid "DNSSEC check unsigned"
-msgstr ""
+msgstr "Verificar DNSSEC sem assinatura"
 
 msgid "DPD Idle Timeout"
-msgstr ""
+msgstr "Tempo de expiração para ociosidade do DPD"
 
 msgid "DS-Lite AFTR address"
-msgstr ""
+msgstr "Endereço DS-Lite AFTR"
 
 msgid "DSL"
-msgstr ""
+msgstr "DSL"
 
 msgid "DSL Status"
-msgstr ""
+msgstr "Estado da DSL"
 
 msgid "DSL line mode"
-msgstr ""
+msgstr "Modo de linha DSL"
 
 msgid "DUID"
 msgstr "DUID"
 
 msgid "Data Rate"
-msgstr ""
+msgstr "Taxa de Dados"
 
 msgid "Debug"
 msgstr "Depurar"
@@ -805,10 +854,10 @@ msgid "Default gateway"
 msgstr "Roteador Padrão"
 
 msgid "Default is stateless + stateful"
-msgstr ""
+msgstr "O padrão é sem estado + com estado"
 
 msgid "Default route"
-msgstr ""
+msgstr "Rota padrão"
 
 msgid "Default state"
 msgstr "Estado padrão"
@@ -847,10 +896,10 @@ msgid "Device Configuration"
 msgstr "Configuração do Dispositivo"
 
 msgid "Device is rebooting..."
-msgstr ""
+msgstr "O dispositivo está reiniciando..."
 
 msgid "Device unreachable"
-msgstr ""
+msgstr "Dispositivo não alcançável"
 
 msgid "Diagnostics"
 msgstr "Diagnóstico"
@@ -875,14 +924,14 @@ msgid "Disable DNS setup"
 msgstr "Desabilita a configuração do DNS"
 
 msgid "Disable Encryption"
-msgstr ""
-
-msgid "Disable HW-Beacon timer"
-msgstr "Desativar temporizador de Beacon de Hardware"
+msgstr "Desabilitar Cifragem"
 
 msgid "Disabled"
 msgstr "Desabilitado"
 
+msgid "Disabled (default)"
+msgstr "Desabilitado (padrão)"
+
 msgid "Discard upstream RFC1918 responses"
 msgstr ""
 "Descartar respostas de servidores externos para redes privadas (RFC1918)"
@@ -897,7 +946,7 @@ msgid "Distance to farthest network member in meters."
 msgstr "Distância para o computador mais distante da rede (em metros)."
 
 msgid "Distribution feeds"
-msgstr ""
+msgstr "Fontes de pacotes da distribuição"
 
 msgid "Diversity"
 msgstr "Diversidade"
@@ -926,9 +975,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Não encaminhe buscas por endereço reverso das redes local"
 
-msgid "Do not send probe responses"
-msgstr "Não enviar respostas de exames"
-
 msgid "Domain required"
 msgstr "Requerer domínio"
 
@@ -936,7 +982,7 @@ msgid "Domain whitelist"
 msgstr "Lista branca de domínios"
 
 msgid "Don't Fragment"
-msgstr ""
+msgstr "Não Fragmentar"
 
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
@@ -964,7 +1010,7 @@ msgstr ""
 "integrado"
 
 msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
+msgstr "Duas Pilhas Leve (RFC6333)"
 
 msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
 msgstr ""
@@ -982,7 +1028,7 @@ msgstr ""
 "somente os clientes com atribuições estáticas serão servidos. "
 
 msgid "EA-bits length"
-msgstr ""
+msgstr "Comprimento dos bits EA"
 
 msgid "EAP-Method"
 msgstr "Método EAP"
@@ -994,6 +1040,8 @@ msgid ""
 "Edit the raw configuration data above to fix any error and hit \"Save\" to "
 "reload the page."
 msgstr ""
+"Edite os dados de configuração brutos abaixo para arrumar qualquer erro e "
+"clique em \"Salvar\" para recarregar a página."
 
 msgid "Edit this interface"
 msgstr "Editar esta interface"
@@ -1014,7 +1062,7 @@ msgid "Enable HE.net dynamic endpoint update"
 msgstr "Ativar a atualização de ponto final dinâmico HE.net"
 
 msgid "Enable IPv6 negotiation"
-msgstr ""
+msgstr "Ativar a negociação de IPv6"
 
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Ativar a negociação de IPv6 no enlace PPP"
@@ -1026,7 +1074,7 @@ msgid "Enable NTP client"
 msgstr "Ativar o cliente <abbr title=\"Network Time Protocol\">NTP</abbr>"
 
 msgid "Enable Single DES"
-msgstr ""
+msgstr "Habilitar DES Simples"
 
 msgid "Enable TFTP server"
 msgstr "Ativar servidor TFTP"
@@ -1035,19 +1083,19 @@ msgid "Enable VLAN functionality"
 msgstr "Ativar funcionalidade de VLAN"
 
 msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr ""
+msgstr "Habilite o botão WPS. requer WPA(2)-PSK"
 
 msgid "Enable learning and aging"
 msgstr "Ativar o aprendizado e obsolescência"
 
 msgid "Enable mirroring of incoming packets"
-msgstr ""
+msgstr "Habilitar espelhamento dos pacotes entrantes"
 
 msgid "Enable mirroring of outgoing packets"
-msgstr ""
+msgstr "Habilitar espelhamento dos pacotes saintes"
 
 msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
-msgstr ""
+msgstr "Habilita o campo DF (Não Fragmentar) dos pacotes encapsulados."
 
 msgid "Enable this mount"
 msgstr "Ativar esta montagem"
@@ -1061,6 +1109,13 @@ msgstr "Ativar/Desativar"
 msgid "Enabled"
 msgstr "Ativado"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+"Ativa a troca rápida entre pontos de acesso que pertencem ao mesmo Domínio "
+"de Mobilidade"
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Ativa o protocolo STP nesta ponte"
 
@@ -1071,10 +1126,10 @@ msgid "Encryption"
 msgstr "Cifragem"
 
 msgid "Endpoint Host"
-msgstr ""
+msgstr "Equipamento do ponto final"
 
 msgid "Endpoint Port"
-msgstr ""
+msgstr "Porta do ponto final"
 
 msgid "Erasing..."
 msgstr "Apagando..."
@@ -1083,7 +1138,7 @@ msgid "Error"
 msgstr "Erro"
 
 msgid "Errored seconds (ES)"
-msgstr ""
+msgstr "Segundos com erro (ES)"
 
 msgid "Ethernet Adapter"
 msgstr "Adaptador Ethernet"
@@ -1092,7 +1147,7 @@ msgid "Ethernet Switch"
 msgstr "Switch Ethernet"
 
 msgid "Exclude interfaces"
-msgstr ""
+msgstr "Excluir interfaces"
 
 msgid "Expand hosts"
 msgstr "Expandir arquivos de equipamentos conhecidos (hosts)"
@@ -1100,7 +1155,6 @@ msgstr "Expandir arquivos de equipamentos conhecidos (hosts)"
 msgid "Expires"
 msgstr "Expira"
 
-#, fuzzy
 msgid ""
 "Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
 msgstr ""
@@ -1108,7 +1162,13 @@ msgstr ""
 "code>)."
 
 msgid "External"
-msgstr ""
+msgstr "Externo"
+
+msgid "External R0 Key Holder List"
+msgstr "Lista dos Detentor de Chave R0 Externa"
+
+msgid "External R1 Key Holder List"
+msgstr "Lista dos Detentor de Chave R1 Externa"
 
 msgid "External system log server"
 msgstr "Servidor externo de registros do sistema (syslog)"
@@ -1117,13 +1177,10 @@ msgid "External system log server port"
 msgstr "Porta do servidor externo de registro do sistema (syslog)"
 
 msgid "External system log server protocol"
-msgstr ""
+msgstr "Protocolo do servidor externo de registro do sistema (syslog)"
 
 msgid "Extra SSH command options"
-msgstr ""
-
-msgid "Fast Frames"
-msgstr "Quadros Rápidos"
+msgstr "Opções adicionais do comando SSH"
 
 msgid "File"
 msgstr "Arquivo"
@@ -1147,6 +1204,9 @@ msgid ""
 "Find all currently attached filesystems and swap and replace configuration "
 "with defaults based on what was detected"
 msgstr ""
+"Encontre todos os sistemas de arquivos e espaços de troca (swap) atualmente "
+"conectados e substitua a configuração com valores padrão baseados no que foi "
+"detectado"
 
 msgid "Find and join network"
 msgstr "Procurar e conectar à rede"
@@ -1160,6 +1220,9 @@ msgstr "Terminar"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Configurações do Firewall"
 
@@ -1167,7 +1230,7 @@ msgid "Firewall Status"
 msgstr "Estado do Firewall"
 
 msgid "Firmware File"
-msgstr ""
+msgstr "Arquivo da Firmware"
 
 msgid "Firmware Version"
 msgstr "Versão do Firmware"
@@ -1206,16 +1269,18 @@ msgid "Force TKIP and CCMP (AES)"
 msgstr "Forçar TKIP e CCMP (AES)"
 
 msgid "Force use of NAT-T"
-msgstr ""
+msgstr "Force o uso do NAT-T"
 
 msgid "Form token mismatch"
-msgstr ""
+msgstr "Chave eletrônica do formulário não casa"
 
 msgid "Forward DHCP traffic"
 msgstr "Encaminhar tráfego DHCP"
 
 msgid "Forward Error Correction Seconds (FECS)"
 msgstr ""
+"Segundos a frente de correção de erros ( <abbr title=\"Forward Error "
+"Correction Seconds\">FECS</abbr>)"
 
 msgid "Forward broadcast traffic"
 msgstr "Encaminhar tráfego broadcast"
@@ -1239,6 +1304,8 @@ msgid ""
 "Further information about WireGuard interfaces and peers at <a href=\"http://"
 "wireguard.io\">wireguard.io</a>."
 msgstr ""
+"Mais informações sobre interfaces e parceiros WireGuard em <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
 
 msgid "GHz"
 msgstr "GHz"
@@ -1259,10 +1326,10 @@ msgid "General Setup"
 msgstr "Configurações Gerais"
 
 msgid "General options for opkg"
-msgstr ""
+msgstr "Opções gerais para o opkg"
 
 msgid "Generate Config"
-msgstr ""
+msgstr "Gerar Configuração"
 
 msgid "Generate archive"
 msgstr "Gerar arquivo"
@@ -1274,10 +1341,10 @@ msgid "Given password confirmation did not match, password not changed!"
 msgstr "A senha de confirmação informada não casa. Senha não alterada!"
 
 msgid "Global Settings"
-msgstr ""
+msgstr "Configurações Globais"
 
 msgid "Global network options"
-msgstr ""
+msgstr "Opções de rede globais"
 
 msgid "Go to password configuration..."
 msgstr "Ir para a configuração de senha..."
@@ -1286,19 +1353,21 @@ msgid "Go to relevant configuration page"
 msgstr "Ir para a página de configuração pertinente"
 
 msgid "Group Password"
-msgstr ""
+msgstr "Senha do Grupo"
 
 msgid "Guest"
-msgstr ""
+msgstr "Convidado\t"
 
 msgid "HE.net password"
 msgstr "Senha HE.net"
 
 msgid "HE.net username"
-msgstr ""
+msgstr "Usuário do HE.net"
 
 msgid "HT mode (802.11n)"
 msgstr ""
+"Modo <abbr title=\"High Throughput/Alta Taxa de Transferência\">HT</abbr>  "
+"(802.11n)"
 
 # Não sei que contexto isto está sendo usado
 msgid "Handler"
@@ -1309,9 +1378,11 @@ msgstr "Suspender"
 
 msgid "Header Error Code Errors (HEC)"
 msgstr ""
+"Erros de Código de Erro de Cabeçalho (<abbr title=\"Header Error Code\">HEC</"
+"abbr>)"
 
 msgid "Heartbeat"
-msgstr ""
+msgstr "Pulso de vida"
 
 msgid ""
 "Here you can configure the basic aspects of your device like its hostname or "
@@ -1336,7 +1407,7 @@ msgstr ""
 "\">ESSID</abbr>"
 
 msgid "Host"
-msgstr ""
+msgstr "Equipamento"
 
 msgid "Host entries"
 msgstr "Entradas de Equipamentos"
@@ -1359,10 +1430,15 @@ msgid "Hostnames"
 msgstr "Nome dos equipamentos"
 
 msgid "Hybrid"
-msgstr ""
+msgstr "Híbrido"
 
 msgid "IKE DH Group"
 msgstr ""
+"Grupo <abbr title=\"Diffie-Hellman\">DH</abbr>  do <abbr title=\"Internet "
+"Key Exchange/Troca de Chaves na Internet\">IKE</abbr>"
+
+msgid "IP Addresses"
+msgstr "Endereços IP"
 
 msgid "IP address"
 msgstr "Endereço IP"
@@ -1383,7 +1459,7 @@ msgid "IPv4 and IPv6"
 msgstr "IPv4 e IPv6"
 
 msgid "IPv4 assignment length"
-msgstr ""
+msgstr "Tamanho da atribuição IPv4"
 
 msgid "IPv4 broadcast"
 msgstr "Broadcast IPv4"
@@ -1398,7 +1474,7 @@ msgid "IPv4 only"
 msgstr "Somente IPv4"
 
 msgid "IPv4 prefix"
-msgstr ""
+msgstr "Prefixo IPv4"
 
 msgid "IPv4 prefix length"
 msgstr "Tamanho do prefixo IPv4"
@@ -1407,7 +1483,7 @@ msgid "IPv4-Address"
 msgstr "Endereço IPv4"
 
 msgid "IPv4-in-IPv4 (RFC2003)"
-msgstr ""
+msgstr "IPv4-in-IPv4 (RFC2003)"
 
 msgid "IPv6"
 msgstr "IPv6"
@@ -1416,13 +1492,15 @@ msgid "IPv6 Firewall"
 msgstr "Firewall para IPv6"
 
 msgid "IPv6 Neighbours"
-msgstr ""
+msgstr "Vizinhos IPv6"
 
 msgid "IPv6 Settings"
-msgstr ""
+msgstr "Configurações IPv6"
 
 msgid "IPv6 ULA-Prefix"
 msgstr ""
+"Prefixo <abbr title=\"Unique Local Address/Endereço Local Único\">ULA</abbr> "
+"IPv6"
 
 msgid "IPv6 WAN Status"
 msgstr "Estado IPv6 da WAN"
@@ -1431,13 +1509,13 @@ msgid "IPv6 address"
 msgstr "Endereço IPv6"
 
 msgid "IPv6 address delegated to the local tunnel endpoint (optional)"
-msgstr ""
+msgstr "Endereços IPv6 delegados para o ponta local do túnel (opcional)"
 
 msgid "IPv6 assignment hint"
-msgstr ""
+msgstr "Sugestão de atribuição IPv6"
 
 msgid "IPv6 assignment length"
-msgstr ""
+msgstr "Tamanho da atribuição IPv6"
 
 msgid "IPv6 gateway"
 msgstr "Roteador padrão do IPv6"
@@ -1452,11 +1530,14 @@ msgid "IPv6 prefix length"
 msgstr "Tamanho Prefixo IPv6"
 
 msgid "IPv6 routed prefix"
-msgstr ""
+msgstr "Prefixo roteável IPv6"
 
 msgid "IPv6-Address"
 msgstr "Endereço IPv6"
 
+msgid "IPv6-PD"
+msgstr "IPv6-PD"
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1470,10 +1551,10 @@ msgid "Identity"
 msgstr "Identidade PEAP"
 
 msgid "If checked, 1DES is enaled"
-msgstr ""
+msgstr "Se marcado, a cifragem 1DES será habilitada"
 
 msgid "If checked, encryption is disabled"
-msgstr ""
+msgstr "Se marcado, a cifragem estará desabilitada"
 
 msgid ""
 "If specified, mount the device by its UUID instead of a fixed device node"
@@ -1529,6 +1610,8 @@ msgid ""
 "In order to prevent unauthorized access to the system, your request has been "
 "blocked. Click \"Continue »\" below to return to the previous page."
 msgstr ""
+"Para prevenir acesso não autorizado neste sistema, sua requisição foi "
+"bloqueada. Clique abaixo em \"Continuar »\" para retornar à página anterior."
 
 msgid "Inactivity timeout"
 msgstr "Tempo limite de inatividade"
@@ -1549,7 +1632,7 @@ msgid "Install"
 msgstr "Instalar"
 
 msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr ""
+msgstr "Instale iputils-traceroute6 para rastrear rotas IPv6"
 
 msgid "Install package %q"
 msgstr "Instalar pacote %q"
@@ -1576,7 +1659,7 @@ msgid "Interface is shutting down..."
 msgstr "A interface está desligando..."
 
 msgid "Interface name"
-msgstr ""
+msgstr "Nome da Interface"
 
 msgid "Interface not present or not connected yet."
 msgstr "A interface não está presente ou não está conectada ainda."
@@ -1591,7 +1674,7 @@ msgid "Interfaces"
 msgstr "Interfaces"
 
 msgid "Internal"
-msgstr ""
+msgstr "Interno"
 
 msgid "Internal Server Error"
 msgstr "erro no servidor interno"
@@ -1612,7 +1695,6 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "Usuário e/ou senha inválida! Por favor, tente novamente."
 
-#, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
 "flash memory, please verify the image file!"
@@ -1620,8 +1702,8 @@ msgstr ""
 "A imagem que está a tentar carregar aparenta nao caber na flash do "
 "equipamento. Por favor verifique o arquivo da imagem!"
 
-msgid "Java Script required!"
-msgstr "É necessário Java Script!"
+msgid "JavaScript required!"
+msgstr "É necessário JavaScript!"
 
 msgid "Join Network"
 msgstr "Conectar à Rede"
@@ -1630,7 +1712,7 @@ msgid "Join Network: Wireless Scan"
 msgstr "Conectar à Rede: Busca por Rede Sem Fio"
 
 msgid "Joining Network: %q"
-msgstr ""
+msgstr "Juntando-se à rede %q"
 
 msgid "Keep settings"
 msgstr "Manter configurações"
@@ -1675,13 +1757,13 @@ msgid "Language and Style"
 msgstr "Idioma e Estilo"
 
 msgid "Latency"
-msgstr ""
+msgstr "Latência"
 
 msgid "Leaf"
-msgstr ""
+msgstr "Folha"
 
 msgid "Lease time"
-msgstr ""
+msgstr "Tempo de concessão"
 
 msgid "Lease validity time"
 msgstr "Tempo de validade da atribuição"
@@ -1709,21 +1791,23 @@ msgstr "Limite"
 
 msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
 msgstr ""
+"Limite o serviço DNS para subredes das interfaces nas quais estamos servindo "
+"DNS."
 
 msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
+msgstr "Escute somente nestas interfaces e na interface local (loopback) "
 
 msgid "Line Attenuation (LATN)"
-msgstr ""
+msgstr "Atenuação de Linha (<abbr title=\"Line Attenuation\">LATN</abbr>)"
 
 msgid "Line Mode"
-msgstr ""
+msgstr "Modo da Linha"
 
 msgid "Line State"
-msgstr ""
+msgstr "Estado da Linha"
 
 msgid "Line Uptime"
-msgstr ""
+msgstr "Tempo de Atividade da Linha"
 
 msgid "Link On"
 msgstr "Enlace Ativo"
@@ -1735,8 +1819,34 @@ msgstr ""
 "Lista dos servidores <abbr title=\"Domain Name System\">DNS</abbr> para "
 "encaminhar as requisições"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+"Lista dos R0KHs no mesmo Domínio de Mobilidade. <br /> Formato: Endereço "
+"MAC, Identificador NAS, chave de 128 bits como cadeia hexadecimal. <br /> "
+"Esta lista é usada para mapear o Identificador R0KH (Identificador NAS) para "
+"um endereço MAC de destino ao solicitar a chave PMK-R1 a partir do R0KH que "
+"o STA usado durante a Associação de Domínio de Mobilidade Inicial."
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+"Lista dos R1KHs no mesmo Domínio de Mobilidade. <br /> Formato: Endereço "
+"MAC, R1KH-ID como 6 octetos com dois pontos, chave de 128 bits como cadeia "
+"hexadecimal. <br /> Esta lista é usada para mapear o identificador R1KH para "
+"um endereço MAC de destino ao enviar a chave PMK-R1 a partir do R0KH. Esta é "
+"também a lista de R1KHs autorizados no MD que podem solicitar chaves PMK-R1."
+
 msgid "List of SSH key files for auth"
-msgstr ""
+msgstr "Lista de arquivos de chaves SSH para autenticação"
 
 msgid "List of domains to allow RFC1918 responses for"
 msgstr ""
@@ -1749,10 +1859,10 @@ msgstr ""
 "fornecem resultados errados para consultas a domínios inexistentes (NX)"
 
 msgid "Listen Interfaces"
-msgstr ""
+msgstr "Interfaces de Escuta"
 
 msgid "Listen Port"
-msgstr ""
+msgstr "Porta de Escuta"
 
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
@@ -1771,7 +1881,7 @@ msgid "Loading"
 msgstr "Carregando"
 
 msgid "Local IP address to assign"
-msgstr ""
+msgstr "Endereço IP local para atribuir"
 
 msgid "Local IPv4 address"
 msgstr "Endereço IPv4 local"
@@ -1780,7 +1890,7 @@ msgid "Local IPv6 address"
 msgstr "Endereço IPv6 local"
 
 msgid "Local Service Only"
-msgstr ""
+msgstr "Somente Serviço Local"
 
 msgid "Local Startup"
 msgstr "Iniciação Local"
@@ -1791,7 +1901,6 @@ msgstr "Hora Local"
 msgid "Local domain"
 msgstr "Domínio Local"
 
-#, fuzzy
 msgid ""
 "Local domain specification. Names matching this domain are never forwarded "
 "and are resolved from DHCP or hosts files only"
@@ -1819,7 +1928,7 @@ msgid "Localise queries"
 msgstr "Localizar consultas"
 
 msgid "Locked to channel %s used by: %s"
-msgstr ""
+msgstr "Travado no canal %s usado por: %s"
 
 msgid "Log output level"
 msgstr "Nível de detalhamento de saída dos registros"
@@ -1838,6 +1947,8 @@ msgstr "Sair"
 
 msgid "Loss of Signal Seconds (LOSS)"
 msgstr ""
+"Segundos de Perda de Sinal (<abbr title=\"Loss of Signal Seconds\">LOSS</"
+"abbr>)"
 
 msgid "Lowest leased address as offset from the network address."
 msgstr "O endereço mais baixo concedido como deslocamento do endereço da rede."
@@ -1855,13 +1966,13 @@ msgid "MAC-List"
 msgstr "Lista de MAC"
 
 msgid "MAP / LW4over6"
-msgstr ""
+msgstr "MAP / LW4over6"
 
 msgid "MB/s"
 msgstr "MB/s"
 
 msgid "MD5"
-msgstr ""
+msgstr "MD5"
 
 msgid "MHz"
 msgstr "MHz"
@@ -1875,15 +1986,16 @@ msgid ""
 "Make sure to clone the root filesystem using something like the commands "
 "below:"
 msgstr ""
+"Certifique-se que clonou o sistema de arquivos raiz com algo como o comando "
+"abaixo:"
 
 msgid "Manual"
-msgstr ""
+msgstr "Manual"
 
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
-
-msgid "Maximum Rate"
-msgstr "Taxa Máxima"
+"Taxa de Dados Atingível Máxima (<abbr title=\"Maximum Attainable Data Rate"
+"\">ATTNDR</abbr>)"
 
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Número máximo permitido de alocações DHCP ativas"
@@ -1905,6 +2017,8 @@ msgid ""
 "Maximum length of the name is 15 characters including the automatic protocol/"
 "bridge prefix (br-, 6in4-, pppoe- etc.)"
 msgstr ""
+"Comprimento máximo do nome é de 15 caracteres, incluindo o prefixo "
+"automático do protocolo/ponte (br-, 6in4- pppoe-, etc.)"
 
 msgid "Maximum number of leased addresses."
 msgstr "Número máximo de endereços atribuídos."
@@ -1921,26 +2035,26 @@ msgstr "Uso da memória (%)"
 msgid "Metric"
 msgstr "Métrica"
 
-msgid "Minimum Rate"
-msgstr "Taxa Mínima"
-
 msgid "Minimum hold time"
 msgstr "Tempo mínimo de espera"
 
 msgid "Mirror monitor port"
-msgstr ""
+msgstr "Porta de monitoramento do espelho"
 
 msgid "Mirror source port"
-msgstr ""
+msgstr "Porta de origem do espelho"
 
 msgid "Missing protocol extension for proto %q"
 msgstr "Extensão para o protocolo %q está ausente"
 
+msgid "Mobility Domain"
+msgstr "Domínio da Mobilidade"
+
 msgid "Mode"
 msgstr "Modo"
 
 msgid "Model"
-msgstr ""
+msgstr "Modelo"
 
 msgid "Modem device"
 msgstr "Dispositivo do Modem"
@@ -1974,7 +2088,7 @@ msgstr ""
 "anexado ao sistema de arquivos"
 
 msgid "Mount filesystems not specifically configured"
-msgstr ""
+msgstr "Monte sistemas de arquivos não especificamente configurados"
 
 msgid "Mount options"
 msgstr "Opções de montagem"
@@ -1983,7 +2097,7 @@ msgid "Mount point"
 msgstr "Ponto de montagem"
 
 msgid "Mount swap not specifically configured"
-msgstr ""
+msgstr "Montar espalho de troca (swap) não especificamente configurado"
 
 msgid "Mounted file systems"
 msgstr "Sistemas de arquivos montados"
@@ -1994,9 +2108,6 @@ msgstr "Mover para baixo"
 msgid "Move up"
 msgstr "Mover para cima"
 
-msgid "Multicast Rate"
-msgstr "Taxa de Multicast"
-
 msgid "Multicast address"
 msgstr "Endereço de Multicast"
 
@@ -2004,22 +2115,22 @@ msgid "NAS ID"
 msgstr "NAS ID"
 
 msgid "NAT-T Mode"
-msgstr ""
+msgstr "Modo NAT-T"
 
 msgid "NAT64 Prefix"
-msgstr ""
+msgstr "Prefixo NAT64"
 
 msgid "NDP-Proxy"
-msgstr ""
+msgstr "Proxy NDP"
 
 msgid "NT Domain"
-msgstr ""
+msgstr "Domínio NT"
 
 msgid "NTP server candidates"
 msgstr "Candidatos a servidor NTP"
 
 msgid "NTP sync time-out"
-msgstr ""
+msgstr "Tempo limite da sincronia do NTP"
 
 msgid "Name"
 msgstr "Nome"
@@ -2055,7 +2166,7 @@ msgid "No DHCP Server configured for this interface"
 msgstr "Nenhum Servidor DHCP configurado para esta interface"
 
 msgid "No NAT-T"
-msgstr ""
+msgstr "Sem NAT-T"
 
 msgid "No chains in this table"
 msgstr "Nenhuma cadeira nesta tabela"
@@ -2091,16 +2202,18 @@ msgid "Noise"
 msgstr "Ruído"
 
 msgid "Noise Margin (SNR)"
-msgstr ""
+msgstr "Margem de Ruído (<abbr title=\"Noise Margin\">SNR</abbr>)"
 
 msgid "Noise:"
 msgstr "Ruído:"
 
 msgid "Non Pre-emtive CRC errors (CRC_P)"
 msgstr ""
+"Erros CRC Não Preemptivos<abbr title=\"Non Pre-emptive CRC errors\">CRC_P</"
+"abbr>"
 
 msgid "Non-wildcard"
-msgstr ""
+msgstr "Sem caracter curinga"
 
 msgid "None"
 msgstr "Nenhum"
@@ -2121,7 +2234,7 @@ msgid "Note: Configuration files will be erased."
 msgstr "Nota: Os arquivos de configuração serão apagados."
 
 msgid "Note: interface name length"
-msgstr ""
+msgstr "Aviso: tamanho do nome da interface"
 
 msgid "Notice"
 msgstr "Aviso"
@@ -2136,10 +2249,10 @@ msgid "OPKG-Configuration"
 msgstr "Configuração-OPKG"
 
 msgid "Obfuscated Group Password"
-msgstr ""
+msgstr "Senha Ofuscada do Grupo"
 
 msgid "Obfuscated Password"
-msgstr ""
+msgstr "Senha Ofuscada"
 
 msgid "Off-State Delay"
 msgstr "Atraso no estado de desligado"
@@ -2170,7 +2283,7 @@ msgid "One or more fields contain invalid values!"
 msgstr "Um ou mais campos contém valores inválidos!"
 
 msgid "One or more invalid/required values on tab"
-msgstr ""
+msgstr "Um ou mais valores inválidos/obrigatórios na aba"
 
 msgid "One or more required fields have no value!"
 msgstr "Um ou mais campos obrigatórios não tem valor!"
@@ -2179,10 +2292,10 @@ msgid "Open list..."
 msgstr "Abrir lista..."
 
 msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
+msgstr "OpenConnect (CISCO AnyConnect)"
 
 msgid "Operating frequency"
-msgstr ""
+msgstr "Frequência de Operação"
 
 msgid "Option changed"
 msgstr "Opção alterada"
@@ -2190,41 +2303,57 @@ msgstr "Opção alterada"
 msgid "Option removed"
 msgstr "Opção removida"
 
+msgid "Optional"
+msgstr "Opcional"
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
+"Opcional, especifique para sobrescrever o servidor padrão (tic.sixxs.net)"
 
 msgid "Optional, use when the SIXXS account has more than one tunnel"
-msgstr ""
+msgstr "Opcional, para usar quando a conta SIXXS tem mais de um túnel"
 
 msgid "Optional."
+msgstr "Opcional."
+
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
+"Opcional. Adiciona uma camada extra de cifragem simétrica para resistência "
+"pós quântica."
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
-msgstr ""
+msgstr "Opcional. Cria rotas para endereços IP Autorizados para este parceiro."
 
 msgid ""
 "Optional. Host of peer. Names are resolved prior to bringing up the "
 "interface."
 msgstr ""
+"Opcional. Equipamento do parceiro. Nomes serão resolvido antes de levantar a "
+"interface."
 
 msgid "Optional. Maximum Transmission Unit of tunnel interface."
-msgstr ""
+msgstr "Opcional. Unidade Máxima de Transmissão da interface do túnel."
 
 msgid "Optional. Port of peer."
-msgstr ""
+msgstr "Opcional. Porta do parceiro."
 
 msgid ""
 "Optional. Seconds between keep alive messages. Default is 0 (disabled). "
 "Recommended value if this device is behind a NAT is 25."
 msgstr ""
+"Opcional. Segundos entre mensagens para manutenção da conexão. O padrão é 0 "
+"(desabilitado). O valor recomendado caso este dispositivo esteja atrás de "
+"uma NAT é 25."
 
 msgid "Optional. UDP port used for outgoing and incoming packets."
-msgstr ""
+msgstr "opcional. Porta UDP usada para pacotes saintes ou entrantes."
 
 msgid "Options"
 msgstr "Opções"
@@ -2238,26 +2367,25 @@ msgstr "Saída"
 msgid "Outbound:"
 msgstr "Saindo:"
 
-msgid "Outdoor Channels"
-msgstr "Canais para externo"
-
 msgid "Output Interface"
-msgstr ""
+msgstr "Interface de Saída"
 
 msgid "Override MAC address"
 msgstr "Sobrescrever o endereço MAC"
 
 msgid "Override MTU"
-msgstr "Sobrescrever o MTU"
+msgstr ""
+"Sobrescrever o <abbr title=\"Maximum Transmission Unit/Unidade Máxima de "
+"Transmissão\">MTU</abbr>"
 
 msgid "Override TOS"
-msgstr ""
+msgstr "Sobrescrever o TOS"
 
 msgid "Override TTL"
-msgstr ""
+msgstr "Sobrescrever o TTL"
 
 msgid "Override default interface name"
-msgstr ""
+msgstr "Sobrescrever o nome da nova interface"
 
 msgid "Override the gateway in DHCP responses"
 msgstr "Sobrescrever o roteador padrão nas respostas do DHCP"
@@ -2291,6 +2419,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr "PMK R1 Push"
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2304,19 +2435,19 @@ msgid "PPPoE"
 msgstr "PPPoE"
 
 msgid "PPPoSSH"
-msgstr ""
+msgstr "PPPoSSH"
 
 msgid "PPtP"
 msgstr "PPtP"
 
 msgid "PSID offset"
-msgstr ""
+msgstr "Deslocamento PSID"
 
 msgid "PSID-bits length"
-msgstr ""
+msgstr "Comprimento dos bits PSID"
 
 msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
+msgstr "PTM/EFM (Modo de Transferência de Pacotes)"
 
 msgid "Package libiwinfo required!"
 msgstr "O pacote libiwinfo é necessário!"
@@ -2343,7 +2474,7 @@ msgid "Password of Private Key"
 msgstr "Senha da Chave Privada"
 
 msgid "Password of inner Private Key"
-msgstr ""
+msgstr "Senha da Chave Privada interna"
 
 msgid "Password successfully changed!"
 msgstr "A senha foi alterada com sucesso!"
@@ -2361,25 +2492,25 @@ msgid "Path to executable which handles the button event"
 msgstr "Caminho para o executável que trata o evento do botão"
 
 msgid "Path to inner CA-Certificate"
-msgstr ""
+msgstr "Caminho para os certificados CA interno"
 
 msgid "Path to inner Client-Certificate"
-msgstr ""
+msgstr "Caminho para o Certificado do Cliente interno"
 
 msgid "Path to inner Private Key"
-msgstr ""
+msgstr "Caminho para a Chave Privada interna"
 
 msgid "Peak:"
 msgstr "Pico:"
 
 msgid "Peer IP address to assign"
-msgstr ""
+msgstr "Endereço IP do parceiro para atribuir"
 
 msgid "Peers"
-msgstr ""
+msgstr "Parceiros"
 
 msgid "Perfect Forward Secrecy"
-msgstr ""
+msgstr "Sigilo Encaminhado Perfeito"
 
 msgid "Perform reboot"
 msgstr "Reiniciar o sistema"
@@ -2388,7 +2519,7 @@ msgid "Perform reset"
 msgstr "Zerar configuração"
 
 msgid "Persistent Keep Alive"
-msgstr ""
+msgstr "Manutenção da Conexão Persistente"
 
 msgid "Phy Rate:"
 msgstr "Taxa física:"
@@ -2415,13 +2546,17 @@ msgid "Port status:"
 msgstr "Status da porta"
 
 msgid "Power Management Mode"
-msgstr ""
+msgstr "Modo de Gerenciamento de Energia"
 
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
+"Erros CRC Preemptivos<abbr title=\"Pre-emptive CRC errors\">CRCP_P</abbr>"
+
+msgid "Prefix Delegated"
+msgstr "Prefixo Delegado"
 
 msgid "Preshared Key"
-msgstr ""
+msgstr "Chave Compartilhada"
 
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
@@ -2431,7 +2566,7 @@ msgstr ""
 "echo do LCP. Use 0 para ignorar as falhas"
 
 msgid "Prevent listening on these interfaces."
-msgstr ""
+msgstr "Evite escutar nestas Interfaces."
 
 msgid "Prevents client-to-client communication"
 msgstr "Impede a comunicação de cliente para cliente"
@@ -2440,7 +2575,7 @@ msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Prism2/2.5/3 802.11b Wireless Controlador"
 
 msgid "Private Key"
-msgstr ""
+msgstr "Chave Privada"
 
 msgid "Proceed"
 msgstr "Proceder"
@@ -2449,7 +2584,7 @@ msgid "Processes"
 msgstr "Processos"
 
 msgid "Profile"
-msgstr ""
+msgstr "Perfil"
 
 msgid "Prot."
 msgstr "Protocolo"
@@ -2476,19 +2611,27 @@ msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Ad-Hoc falso (ahdemo)"
 
 msgid "Public Key"
-msgstr ""
+msgstr "Chave Pública"
 
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
+"Prefixo público roteado para este dispositivo para distribuição a seus "
+"clientes."
 
 msgid "QMI Cellular"
-msgstr ""
+msgstr "Celular QMI"
 
 msgid "Quality"
 msgstr "Qualidade"
 
+msgid "R0 Key Lifetime"
+msgstr "Validade da Chave R0"
+
+msgid "R1 Key Holder"
+msgstr "Detentor da Chave R1"
+
 msgid "RFC3947 NAT-T mode"
-msgstr ""
+msgstr "Modo NAT-T (RFC3947)"
 
 msgid "RTS/CTS Threshold"
 msgstr "Limiar RTS/CTS"
@@ -2547,7 +2690,6 @@ msgstr ""
 msgid "Really reset all changes?"
 msgstr "Realmente limpar todas as mudanças?"
 
-#, fuzzy
 msgid ""
 "Really shut down network?\\nYou might lose access to this device if you are "
 "connected via this interface."
@@ -2582,6 +2724,9 @@ msgstr "Tráfego em Tempo Real"
 msgid "Realtime Wireless"
 msgstr "Rede sem fio em Tempo Real"
 
+msgid "Reassociation Deadline"
+msgstr "Limite para Reassociação"
+
 msgid "Rebind protection"
 msgstr "Proteção contra \"Rebind\""
 
@@ -2600,6 +2745,9 @@ msgstr "Receber"
 msgid "Receiver Antenna"
 msgstr "Antena de Recepção"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr "Recomendado. Endereços IP da interface do WireGuard."
+
 msgid "Reconnect this interface"
 msgstr "Reconectar esta interface"
 
@@ -2609,9 +2757,6 @@ msgstr "Reconectando interface"
 msgid "References"
 msgstr "Referências"
 
-msgid "Regulatory Domain"
-msgstr "Domínio Regulatório"
-
 msgid "Relay"
 msgstr "Retransmissor"
 
@@ -2628,7 +2773,7 @@ msgid "Remote IPv4 address"
 msgstr "Endereço IPv4 remoto"
 
 msgid "Remote IPv4 address or FQDN"
-msgstr ""
+msgstr "Endereço IPv4 remoto ou FQDN"
 
 msgid "Remove"
 msgstr "Remover"
@@ -2643,33 +2788,47 @@ msgid "Replace wireless configuration"
 msgstr "Substituir a configuração da rede sem fio"
 
 msgid "Request IPv6-address"
-msgstr ""
+msgstr "Solicita endereço IPv6"
 
 msgid "Request IPv6-prefix of length"
-msgstr ""
+msgstr "Solicita prefixo IPv6 de tamanho"
 
 msgid "Require TLS"
-msgstr ""
+msgstr "Requer TLS"
+
+msgid "Required"
+msgstr "Necessário"
 
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "Requerido para alguns provedores de internet, ex. Charter com DOCSIS 3"
+msgstr ""
+"Obrigatório para alguns provedores de internet, ex. Charter com DOCSIS 3"
 
 msgid "Required. Base64-encoded private key for this interface."
-msgstr ""
+msgstr "Obrigatório. Chave privada codificada em Base64 para esta interface."
+
+msgid "Required. Base64-encoded public key of peer."
+msgstr "Necessário. Chave Pública do parceiro codificada como Base64."
 
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
+"Obrigatório. Endereços IP e prefixos que este parceiro está autorizado a "
+"usar dentro do túnel. Normalmente é o endereço IP do parceiro no túnel e as "
+"redes que o parceiro roteia através do túnel."
 
-msgid "Required. Public key of peer."
-msgstr ""
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
+msgstr "Obrigatório. Chave Pública do parceiro."
 
 msgid ""
 "Requires upstream supports DNSSEC; verify unsigned domain responses really "
 "come from unsigned domains"
 msgstr ""
+"Exige o suporte DNSSEC do servidor superior; verifica se resposta não "
+"assinadas realmente vẽm de domínios não assinados."
 
 msgid "Reset"
 msgstr "Limpar"
@@ -2708,19 +2867,19 @@ msgid "Root directory for files served via TFTP"
 msgstr "Diretório raiz para arquivos disponibilizados pelo TFTP"
 
 msgid "Root preparation"
-msgstr ""
+msgstr "Prepação da raiz (/)"
 
 msgid "Route Allowed IPs"
-msgstr ""
+msgstr "Roteie Andereços IP Autorizados"
 
 msgid "Route type"
-msgstr ""
+msgstr "Tipo de rota"
 
 msgid "Routed IPv6 prefix for downstream interfaces"
-msgstr ""
+msgstr "Prefixo roteável IPv6 para interfaces internas"
 
 msgid "Router Advertisement-Service"
-msgstr ""
+msgstr "Serviço de Anúncio de Roteador"
 
 msgid "Router Password"
 msgstr "Senha do Roteador"
@@ -2743,30 +2902,32 @@ msgid "Run filesystem check"
 msgstr "Execute a verificação do sistema de arquivos "
 
 msgid "SHA256"
-msgstr ""
+msgstr "SHA256"
 
 msgid ""
 "SIXXS supports TIC only, for static tunnels using IP protocol 41 (RFC4213) "
 "use 6in4 instead"
 msgstr ""
+"O SIXXS suporta somente TIC. Use o 6in4 para túneis estáticos usando o "
+"protocolo IP 41 (RFC4213)"
 
 msgid "SIXXS-handle[/Tunnel-ID]"
-msgstr ""
+msgstr "Identificador do SIXXS[/Identificador do Túnel]"
 
 msgid "SNR"
-msgstr ""
+msgstr "SNR"
 
 msgid "SSH Access"
 msgstr "Acesso SSH"
 
 msgid "SSH server address"
-msgstr ""
+msgstr "Endereço do servidor SSH"
 
 msgid "SSH server port"
-msgstr ""
+msgstr "Porta do servidor SSH"
 
 msgid "SSH username"
-msgstr ""
+msgstr "Usuário do SSH"
 
 msgid "SSH-Keys"
 msgstr "Chaves SSH"
@@ -2808,22 +2969,21 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Isolar Clientes"
 
-msgid "Separate WDS"
-msgstr "Separar WDS"
-
 msgid "Server Settings"
 msgstr "Configurações do Servidor"
 
 msgid "Server password"
-msgstr ""
+msgstr "Senha do servidor"
 
 msgid ""
 "Server password, enter the specific password of the tunnel when the username "
 "contains the tunnel ID"
 msgstr ""
+"Senha do servidor. Informe a senha para este túnel quando o nome do usuário "
+"contiver o identificador do túnel"
 
 msgid "Server username"
-msgstr ""
+msgstr "Usuário do servidor"
 
 msgid "Service Name"
 msgstr "Nome do Serviço"
@@ -2834,7 +2994,6 @@ msgstr "Tipo do Serviço"
 msgid "Services"
 msgstr "Serviços"
 
-#, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Configurar a Sincronização do Horário"
 
@@ -2843,9 +3002,11 @@ msgstr "Configurar Servidor DHCP"
 
 msgid "Severely Errored Seconds (SES)"
 msgstr ""
+"Segundos com erro severos (<abbr title=\"Severely Errored Seconds\">SES</"
+"abbr>)"
 
 msgid "Short GI"
-msgstr ""
+msgstr "Intervalo de guarda curto"
 
 msgid "Show current backup file list"
 msgstr "Mostra a lista atual de arquivos para a cópia de segurança"
@@ -2860,7 +3021,7 @@ msgid "Signal"
 msgstr "Sinal"
 
 msgid "Signal Attenuation (SATN)"
-msgstr ""
+msgstr "Atenuação do Sinal (<abbr title=\"Signal Attenuation\">SATN</abbr>)"
 
 msgid "Signal:"
 msgstr "Sinal:"
@@ -2869,7 +3030,7 @@ msgid "Size"
 msgstr "Tamanho"
 
 msgid "Size (.ipk)"
-msgstr ""
+msgstr "Tamanho (.ipk)"
 
 msgid "Skip"
 msgstr "Pular"
@@ -2887,7 +3048,7 @@ msgid "Software"
 msgstr "Software"
 
 msgid "Software VLAN"
-msgstr ""
+msgstr "VLAN em Software"
 
 msgid "Some fields are invalid, cannot save values!"
 msgstr "Alguns campos estão inválidos e os valores não podem ser salvos!"
@@ -2914,7 +3075,7 @@ msgid "Source"
 msgstr "Origem"
 
 msgid "Source routing"
-msgstr ""
+msgstr "Roteamento pela origem"
 
 msgid "Specifies the button state to handle"
 msgstr "Especifica o estado do botão para ser tratado"
@@ -2940,17 +3101,21 @@ msgstr ""
 "equipamento está morto"
 
 msgid "Specify a TOS (Type of Service)."
-msgstr ""
+msgstr "Especifique um Tipo de Serviço (TOS)"
 
 msgid ""
 "Specify a TTL (Time to Live) for the encapsulating packet other than the "
 "default (64)."
 msgstr ""
+"Especifica o tempo de vida (<abbr title=\"Time to Live\">TTL</abbr>) para os "
+"pacotes encapsulados ao invés do padrão (64)."
 
 msgid ""
 "Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
 "bytes)."
 msgstr ""
+"Especifica a unidade máxima de transmissão (<abbr title=\"Maximum "
+"Transmission Unit\">MTU</abbr>) ao invés do valor padrão (1280 bytes)"
 
 msgid "Specify the secret encryption key here."
 msgstr "Especifique a chave de cifragem secreta aqui."
@@ -2976,9 +3141,6 @@ msgstr "Alocações Estáticas"
 msgid "Static Routes"
 msgstr "Rotas Estáticas"
 
-msgid "Static WDS"
-msgstr "WDS Estático"
-
 msgid "Static address"
 msgstr "Endereço Estático"
 
@@ -3005,13 +3167,13 @@ msgid "Submit"
 msgstr "Enviar"
 
 msgid "Suppress logging"
-msgstr ""
+msgstr "Suprimir registros (log)"
 
 msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
+msgstr "Suprimir registros (log) de operações rotineiras destes protocolos"
 
 msgid "Swap"
-msgstr ""
+msgstr "Espaço de Troca (swap)"
 
 msgid "Swap Entry"
 msgstr "Entrada do espaço de troca (Swap)"
@@ -3028,9 +3190,11 @@ msgstr "Switch %q (%s)"
 msgid ""
 "Switch %q has an unknown topology - the VLAN settings might not be accurate."
 msgstr ""
+"O Switch %q tem uma topologia desconhecida - as configurações de VLAN podem "
+"não ser precisas."
 
 msgid "Switch VLAN"
-msgstr ""
+msgstr "Switch VLAN"
 
 msgid "Switch protocol"
 msgstr "Trocar o protocolo"
@@ -3075,12 +3239,11 @@ msgid "Target"
 msgstr "Destino"
 
 msgid "Target network"
-msgstr ""
+msgstr "Rede de destino"
 
 msgid "Terminate"
 msgstr "Terminar"
 
-#, fuzzy
 msgid ""
 "The <em>Device Configuration</em> section covers physical settings of the "
 "radio hardware such as channel, transmit power or antenna selection which "
@@ -3106,10 +3269,12 @@ msgid ""
 "The HE.net endpoint update configuration changed, you must now use the plain "
 "username instead of the user ID!"
 msgstr ""
+"A configuração da atualização de pontas HE.net mudou. Você deve agora usar o "
+"nome do usuário ao invés do identificador do usuário!"
 
 msgid ""
 "The IPv4 address or the fully-qualified domain name of the remote tunnel end."
-msgstr ""
+msgstr "O endereço IPv4 ou o nome completo (FQDN) da ponta remota do túnel."
 
 msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
@@ -3125,13 +3290,14 @@ msgstr ""
 
 msgid "The configuration file could not be loaded due to the following error:"
 msgstr ""
+"O arquivo de configuração não pode ser carregado devido ao seguinte erro:"
 
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
 msgstr ""
-"O arquivo do dispositivo de armazenamento ou da partição (<abbr title=\"por "
-"exemplo\">ex.</abbr> <code>/dev/sda1</code>)"
+"O arquivo do dispositivo de armazenamento ou da partição (ex: <code>/dev/"
+"sda1</code>)"
 
 msgid ""
 "The filesystem that was used to format the memory (<abbr title=\"for example"
@@ -3164,7 +3330,6 @@ msgstr "As seguintes regras estão atualmente ativas neste sistema."
 msgid "The given network name is not unique"
 msgstr "O nome de rede informado não é único"
 
-#, fuzzy
 msgid ""
 "The hardware is not multi-SSID capable and the existing configuration will "
 "be replaced if you proceed."
@@ -3182,7 +3347,7 @@ msgid "The length of the IPv6 prefix in bits"
 msgstr "O comprimento do prefixo IPv6 em bits"
 
 msgid "The local IPv4 address over which the tunnel is created (optional)."
-msgstr ""
+msgstr "O endereço IPv4 local sobre o qual o túnel será criado (opcional)."
 
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
@@ -3204,7 +3369,7 @@ msgid "The selected protocol needs a device assigned"
 msgstr "O protocolo selecionado necessita estar associado a um dispositivo"
 
 msgid "The submitted security token is invalid or already expired!"
-msgstr ""
+msgstr "A chave eletrônica enviada é inválida ou já expirou!"
 
 msgid ""
 "The system is erasing the configuration partition now and will reboot itself "
@@ -3213,7 +3378,6 @@ msgstr ""
 "O sistema está apagando agora a partição da configuração e irá reiniciar "
 "quando terminado."
 
-#, fuzzy
 msgid ""
 "The system is flashing now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a "
 "few minutes before you try to reconnect. It might be necessary to renew the "
@@ -3229,6 +3393,8 @@ msgid ""
 "The tunnel end-point is behind NAT, defaults to disabled and only applies to "
 "AYIYA"
 msgstr ""
+"O final do túnel está atrás de um NAT. Por padrão será desabilitado e "
+"somente se aplica a AYIYA"
 
 msgid ""
 "The uploaded image file does not contain a supported format. Make sure that "
@@ -3271,6 +3437,9 @@ msgid ""
 "'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
 "Name System\">DNS</abbr> servers."
 msgstr ""
+"Este arquivo deve conter linhas como 'server=/domain/1.2.3.4' ou "
+"'server=1.2.3.4' para servidores <abbr title=\"Domain Name System/Sistema de "
+"Nomes de Domínios\">DNS</abbr> por domínio ou completos."
 
 msgid ""
 "This is a list of shell glob patterns for matching files and directories to "
@@ -3286,6 +3455,8 @@ msgid ""
 "This is either the \"Update Key\" configured for the tunnel or the account "
 "password if no update key has been configured"
 msgstr ""
+"Isto é a \"Update Key\" configurada para o túnel ou a senha da cpnta se não "
+"tem uma \"Update Keu\" configurada"
 
 msgid ""
 "This is the content of /etc/rc.local. Insert your own commands here (in "
@@ -3309,11 +3480,13 @@ msgstr ""
 "\">DHCP</abbr> na rede local"
 
 msgid "This is the plain username for logging into the account"
-msgstr ""
+msgstr "Este é o nome do usuário em para se autenticar na sua conta"
 
 msgid ""
 "This is the prefix routed to you by the tunnel broker for use by clients"
 msgstr ""
+"Este é o prefixo roteado pelo agente do tunel para você usar com seus "
+"clientes"
 
 msgid "This is the system crontab in which scheduled tasks can be defined."
 msgstr "Este é o sistema de agendamento de tarefas."
@@ -3357,7 +3530,7 @@ msgstr ""
 "de segurança anterior."
 
 msgid "Tone"
-msgstr ""
+msgstr "Tom"
 
 msgid "Total Available"
 msgstr "Total Disponível"
@@ -3396,19 +3569,16 @@ msgid "Tunnel Interface"
 msgstr "Interface de Tunelamento"
 
 msgid "Tunnel Link"
-msgstr ""
+msgstr "Enlace do túnel"
 
 msgid "Tunnel broker protocol"
-msgstr ""
+msgstr "Protocolo do agente do túnel"
 
 msgid "Tunnel setup server"
-msgstr ""
+msgstr "Servidor de configuração do túnel"
 
 msgid "Tunnel type"
-msgstr ""
-
-msgid "Turbo Mode"
-msgstr "Modo Turbo"
+msgstr "Tipo de túnel"
 
 msgid "Tx-Power"
 msgstr "Potência de transmissão"
@@ -3428,6 +3598,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Dispositivo USB"
 
+msgid "USB Ports"
+msgstr "Portas USB"
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3436,6 +3609,8 @@ msgstr "Não é possível a expedição"
 
 msgid "Unavailable Seconds (UAS)"
 msgstr ""
+"Segundos de indisponibilidade (<abbr title=\"Unavailable Seconds\">UAS</"
+"abbr>)"
 
 msgid "Unknown"
 msgstr "Desconhecido"
@@ -3447,7 +3622,7 @@ msgid "Unmanaged"
 msgstr "Não gerenciado"
 
 msgid "Unmount"
-msgstr ""
+msgstr "Desmontar"
 
 msgid "Unsaved Changes"
 msgstr "Alterações Não Salvas"
@@ -3489,22 +3664,24 @@ msgid "Use ISO/IEC 3166 alpha2 country codes."
 msgstr "Usar códigos de países ISO/IEC 3166 alpha2."
 
 msgid "Use MTU on tunnel interface"
-msgstr "Use MTU na interface do túnel"
+msgstr ""
+"Use o <abbr title=\"Maximum Transmission Unit/Unidade Máxima de Transmissão"
+"\">MTU</abbr> na interface do túnel"
 
 msgid "Use TTL on tunnel interface"
 msgstr "Use TTL na interface do túnel"
 
 msgid "Use as external overlay (/overlay)"
-msgstr ""
+msgstr "Use como uma sobreposição externa (/overlay)"
 
 msgid "Use as root filesystem (/)"
-msgstr ""
+msgstr "Usar como o sistema de arquivos raiz (/)"
 
 msgid "Use broadcast flag"
 msgstr "Use a marcação de broadcast"
 
 msgid "Use builtin IPv6-management"
-msgstr ""
+msgstr "Use o gerenciamento do IPv6 embarcado"
 
 msgid "Use custom DNS servers"
 msgstr "Use servidores DNS personalizados"
@@ -3537,11 +3714,18 @@ msgstr "Usado"
 msgid "Used Key Slot"
 msgstr "Posição da Chave Usada"
 
-msgid "User certificate (PEM encoded)"
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
 msgstr ""
+"Usado para dois diferentes propósitos: identificador do RADIUS NAS e do "
+"802.11r R0KH. Não necessário com o WPA(2)-PSK normal."
+
+msgid "User certificate (PEM encoded)"
+msgstr "Certificado do usuário (codificado em formato PEM)"
 
 msgid "User key (PEM encoded)"
-msgstr ""
+msgstr "Chave do usuário (codificada em formato PEM)"
 
 msgid "Username"
 msgstr "Usuário"
@@ -3550,7 +3734,7 @@ msgid "VC-Mux"
 msgstr "VC-Mux"
 
 msgid "VDSL"
-msgstr ""
+msgstr "VDSL"
 
 msgid "VLANs on %q"
 msgstr "VLANs em %q"
@@ -3559,34 +3743,34 @@ msgid "VLANs on %q (%s)"
 msgstr "VLANs em %q (%s)"
 
 msgid "VPN Local address"
-msgstr ""
+msgstr "Endereço Local da VPN"
 
 msgid "VPN Local port"
-msgstr ""
+msgstr "Porta Local da VPN"
 
 msgid "VPN Server"
 msgstr "Servidor VPN"
 
 msgid "VPN Server port"
-msgstr ""
+msgstr "Porta do Servidor VPN"
 
 msgid "VPN Server's certificate SHA1 hash"
-msgstr ""
+msgstr "Resumo digital SHA1 do certificado do servidor VPN"
 
 msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
+msgstr "VPNC (VPN do CISCO 3000 (e outros))"
 
 msgid "Vendor"
-msgstr ""
+msgstr "Fabricante"
 
 msgid "Vendor Class to send when requesting DHCP"
 msgstr "Classe do fabricante para enviar quando requisitar o DHCP"
 
 msgid "Verbose"
-msgstr ""
+msgstr "Detalhado"
 
 msgid "Verbose logging by aiccu daemon"
-msgstr ""
+msgstr "Habilite registros detalhados do serviço AICCU"
 
 msgid "Verify"
 msgstr "Verificar"
@@ -3622,6 +3806,8 @@ msgstr ""
 msgid ""
 "Wait for NTP sync that many seconds, seting to 0 disables waiting (optional)"
 msgstr ""
+"Espere esta quantidade de segundos pela sincronia do NTP. Definindo como 0 "
+"desabilita a espera (opcional)"
 
 msgid "Waiting for changes to be applied..."
 msgstr "Esperando a aplicação das mudanças..."
@@ -3630,25 +3816,25 @@ msgid "Waiting for command to complete..."
 msgstr "Esperando o término do comando..."
 
 msgid "Waiting for device..."
-msgstr ""
+msgstr "Esperando pelo dispositivo..."
 
 msgid "Warning"
 msgstr "Atenção"
 
 msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
+msgstr "Atenção: Existem mudanças não salvas que serão perdidas ao reiniciar!"
 
 msgid "Whether to create an IPv6 default route over the tunnel"
-msgstr ""
+msgstr "Se deve criar uma rota padrão IPv6 sobre o túnel"
 
 msgid "Whether to route only packets from delegated prefixes"
-msgstr ""
+msgstr "Se deve rotear somente pacotes de prefixos delegados"
 
 msgid "Width"
-msgstr ""
+msgstr "Largura"
 
 msgid "WireGuard VPN"
-msgstr ""
+msgstr "VPN WireGuard"
 
 msgid "Wireless"
 msgstr "Rede sem fio"
@@ -3687,10 +3873,7 @@ msgid "Write received DNS requests to syslog"
 msgstr "Escreva as requisições DNS para o servidor de registro (syslog)"
 
 msgid "Write system log to file"
-msgstr ""
-
-msgid "XR Support"
-msgstr "Suporte a XR"
+msgstr "Escrever registo do sistema (log) no arquivo"
 
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
@@ -3704,7 +3887,7 @@ msgstr ""
 "inacessível!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 "Você precisa habilitar o JavaScript no seu navegador ou o LuCI não irá "
 "funcionar corretamente."
@@ -3714,6 +3897,9 @@ msgid ""
 "upgrade it to at least version 7 or use another browser like Firefox, Opera "
 "or Safari."
 msgstr ""
+"Seu Internet Explorer é muito velho para mostrar esta página corretamente. "
+"Por favor, atualiza para, ao menos, a versão 7 ou use outro navegador como o "
+"Firefox, Opera ou Safari."
 
 msgid "any"
 msgstr "qualquer"
@@ -3721,9 +3907,8 @@ msgstr "qualquer"
 msgid "auto"
 msgstr "automático"
 
-#, fuzzy
 msgid "automatic"
-msgstr "estático"
+msgstr "automático"
 
 msgid "baseT"
 msgstr "baseT"
@@ -3747,7 +3932,7 @@ msgid "disable"
 msgstr "desativar"
 
 msgid "disabled"
-msgstr ""
+msgstr "desabilitado"
 
 msgid "expired"
 msgstr "expirado"
@@ -3775,7 +3960,7 @@ msgid "hidden"
 msgstr "ocultar"
 
 msgid "hybrid mode"
-msgstr ""
+msgstr "Modo Híbrido"
 
 msgid "if target is a network"
 msgstr "se o destino for uma rede"
@@ -3797,10 +3982,13 @@ msgstr ""
 "Arquivo local de <abbr title=\"Sistema de Nomes de Domínios\">DNS</abbr>"
 
 msgid "minimum 1280, maximum 1480"
-msgstr ""
+msgstr "mínimo 1280, máximo 1480"
+
+msgid "minutes"
+msgstr "minutos"
 
 msgid "navigation Navigation"
-msgstr ""
+msgstr "navegação Navegação"
 
 # Is this yes/no or no like in no one?
 msgid "no"
@@ -3813,7 +4001,7 @@ msgid "none"
 msgstr "nenhum"
 
 msgid "not present"
-msgstr ""
+msgstr "não presente "
 
 msgid "off"
 msgstr "desligado"
@@ -3825,35 +4013,38 @@ msgid "open"
 msgstr "aberto"
 
 msgid "overlay"
-msgstr ""
+msgstr "sobreposição"
 
 msgid "relay mode"
-msgstr ""
+msgstr "modo retransmissor"
 
 msgid "routed"
 msgstr "roteado"
 
 msgid "server mode"
-msgstr ""
+msgstr "modo servidor"
 
 msgid "skiplink1 Skip to navigation"
-msgstr ""
+msgstr "skiplink1 Pular para a navegação"
 
 msgid "skiplink2 Skip to content"
-msgstr ""
+msgstr "skiplink2 Pular para o conteúdo"
 
 msgid "stateful-only"
-msgstr ""
+msgstr "somente com estado"
 
 msgid "stateless"
-msgstr ""
+msgstr "sem estado"
 
 msgid "stateless + stateful"
-msgstr ""
+msgstr "sem estado + com estado"
 
 msgid "tagged"
 msgstr "etiquetado"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr "unidades de tempo (TUs / 1.024 ms) [1000-65535]"
+
 msgid "unknown"
 msgstr "desconhecido"
 
@@ -3875,6 +4066,54 @@ msgstr "sim"
 msgid "« Back"
 msgstr "« Voltar"
 
+#~ msgid "AR Support"
+#~ msgstr "Suporte AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Controlador Wireless Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "Busca em Segundo Plano"
+
+#~ msgid "Compression"
+#~ msgstr "Compressão"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Desativar temporizador de Beacon de Hardware"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Não enviar respostas de exames"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Quadros Rápidos"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Taxa Máxima"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Taxa Mínima"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Taxa de Multicast"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Canais para externo"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Domínio Regulatório"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Separar WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS Estático"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Modo Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Suporte a XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "Uma rede adicional será criada se você deixar isto desmarcado."
 
index 86e9e1b..e9b9b9d 100644 (file)
@@ -52,12 +52,36 @@ msgstr "Carga de 1 Minuto:"
 msgid "15 Minute Load:"
 msgstr "Carga de 15 minutos:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Carga 5 Minutos:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr ""
 "<abbr title=\"Identificador de Conjunto Básico de Serviços\">BSSID</abbr>"
@@ -151,9 +175,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Suporte AR"
-
 msgid "ARP retry threshold"
 msgstr "Limiar de tentativas ARP"
 
@@ -399,9 +420,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Estações Associadas"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Controlador Wireless Atheros 802.11%s"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -480,9 +498,6 @@ msgstr "Voltar à vista global"
 msgid "Back to scan results"
 msgstr "Voltar aos resultados do scan"
 
-msgid "Background Scan"
-msgstr "Procurar em Segundo Plano"
-
 msgid "Backup / Flash Firmware"
 msgstr "Backup / Flashar Firmware"
 
@@ -651,9 +666,6 @@ msgstr "Comando"
 msgid "Common Configuration"
 msgstr "Configuração comum"
 
-msgid "Compression"
-msgstr "Compressão"
-
 msgid "Configuration"
 msgstr "Configuração"
 
@@ -874,12 +886,12 @@ msgstr "Desativar configuração de DNS"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Desativar temporizador de HW-Beacon"
-
 msgid "Disabled"
 msgstr "Desativado"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Descartar respostas RFC1918 a montante"
 
@@ -921,9 +933,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Não encaminhar lookups reversos para as redes locais"
 
-msgid "Do not send probe responses"
-msgstr "Não enviar respostas a sondas"
-
 msgid "Domain required"
 msgstr "Requerer domínio"
 
@@ -1054,6 +1063,11 @@ msgstr "Ativar/Desativar"
 msgid "Enabled"
 msgstr "Ativado"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Ativa o Spanning Tree nesta bridge"
 
@@ -1103,6 +1117,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Servidor externo de logs de sistema"
 
@@ -1115,9 +1135,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Frames Rápidas"
-
 msgid "File"
 msgstr "Ficheiro"
 
@@ -1153,6 +1170,9 @@ msgstr "Terminar"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Definições da Firewall"
 
@@ -1356,6 +1376,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Endereço IP"
 
@@ -1449,6 +1472,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Endereço-IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-em-IPv4 (RFC4213)"
 
@@ -1603,8 +1629,8 @@ msgstr ""
 "A imagem que está a tentar carregar aparenta não caber na flash do "
 "equipamento. Por favor verifique o ficheiro de imagem."
 
-msgid "Java Script required!"
-msgstr "É necessário Javascript!"
+msgid "JavaScript required!"
+msgstr "É necessário JavaScript!"
 
 msgid "Join Network"
 msgstr "Associar Rede"
@@ -1718,6 +1744,22 @@ msgstr ""
 "Lista de servidores <abbr title=\"Sistema Nomes de Domínio\">DNS</abbr> para "
 "onde encaminhar os pedidos"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1856,9 +1898,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Taxa Máxima"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Número máximo permitido de concessões DHCP ativas"
 
@@ -1894,9 +1933,6 @@ msgstr "Uso de memória (%)"
 msgid "Metric"
 msgstr "Métrica"
 
-msgid "Minimum Rate"
-msgstr "Taxa Mínima"
-
 msgid "Minimum hold time"
 msgstr "Tempo de retenção mínimo"
 
@@ -1909,6 +1945,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Falta a extensão de protocolo para o protocolo %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Modo"
 
@@ -1967,9 +2006,6 @@ msgstr "Subir"
 msgid "Move up"
 msgstr "Descer"
 
-msgid "Multicast Rate"
-msgstr "Taxa de Multicast"
-
 msgid "Multicast address"
 msgstr "Endereço de multicast"
 
@@ -2162,6 +2198,9 @@ msgstr "Opção alterada"
 msgid "Option removed"
 msgstr "Opção removida"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2172,8 +2211,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2210,9 +2254,6 @@ msgstr "Saída"
 msgid "Outbound:"
 msgstr "Saída:"
 
-msgid "Outdoor Channels"
-msgstr "Canais de Outdoor"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2260,6 +2301,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2389,6 +2433,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2454,6 +2501,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Qualidade"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2546,6 +2599,9 @@ msgstr "Tráfego em Tempo Real"
 msgid "Realtime Wireless"
 msgstr "Wireless em Tempo Real"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Religar protecção"
 
@@ -2564,6 +2620,9 @@ msgstr "Receber"
 msgid "Receiver Antenna"
 msgstr "Antena de Recepção"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Reconetar esta interface"
 
@@ -2573,9 +2632,6 @@ msgstr "A reconectar interface"
 msgid "References"
 msgstr "Referências"
 
-msgid "Regulatory Domain"
-msgstr "Domínio Regulatório"
-
 msgid "Relay"
 msgstr ""
 
@@ -2615,19 +2671,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "Necessário para certos ISPs, p.ex. Charter with DOCSIS 3"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2770,9 +2834,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Isolar Clientes"
 
-msgid "Separate WDS"
-msgstr "Separar WDS"
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2931,9 +2992,6 @@ msgstr "Atribuições Estáticas"
 msgid "Static Routes"
 msgstr "Rotas Estáticas"
 
-msgid "Static WDS"
-msgstr "WDS Estático"
-
 msgid "Static address"
 msgstr "Endereço estático"
 
@@ -3342,9 +3400,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Modo Turbo"
-
 msgid "Tx-Power"
 msgstr "Potência de Tx"
 
@@ -3363,6 +3418,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Dispositivo USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3464,6 +3522,11 @@ msgstr "Usado"
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3616,9 +3679,6 @@ msgstr "Escrever os pedidos de DNS para o syslog"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Suporte XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3631,9 +3691,9 @@ msgstr ""
 "inacessível!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"Tem de activar o Java Script no seu browser ou a LuCI não funcionará "
+"Tem de activar o JavaScript no seu browser ou a LuCI não funcionará "
 "corretamente."
 
 msgid ""
@@ -3726,6 +3786,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3780,6 +3843,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "desconhecido"
 
@@ -3801,6 +3867,54 @@ msgstr "sim"
 msgid "« Back"
 msgstr "« Voltar"
 
+#~ msgid "AR Support"
+#~ msgstr "Suporte AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Controlador Wireless Atheros 802.11%s"
+
+#~ msgid "Background Scan"
+#~ msgstr "Procurar em Segundo Plano"
+
+#~ msgid "Compression"
+#~ msgstr "Compressão"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Desativar temporizador de HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Não enviar respostas a sondas"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Frames Rápidas"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Taxa Máxima"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Taxa Mínima"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Taxa de Multicast"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Canais de Outdoor"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Domínio Regulatório"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Separar WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "WDS Estático"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Modo Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Suporte XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "Uma rede adicional será criada se deixar isto desmarcado."
 
index 4763d63..3930eb4 100644 (file)
@@ -51,12 +51,36 @@ msgstr "Incarcarea in ultimul minut"
 msgid "15 Minute Load:"
 msgstr "Incarcarea in ultimele 15 minute"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Incarcarea in ultimele 5 minute"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -142,9 +166,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Suport AR"
-
 msgid "ARP retry threshold"
 msgstr "ARP prag reincercare"
 
@@ -385,9 +406,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Statiile asociate"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s Controler Fara Fir"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -466,9 +484,6 @@ msgstr "Inapoi la vedere generala"
 msgid "Back to scan results"
 msgstr "Inapoi la rezultatele scanarii"
 
-msgid "Background Scan"
-msgstr "Scanare in fundal"
-
 msgid "Backup / Flash Firmware"
 msgstr "Salveaza / Scrie Firmware"
 
@@ -626,9 +641,6 @@ msgstr "Comanda"
 msgid "Common Configuration"
 msgstr "Configurarea obisnuita"
 
-msgid "Compression"
-msgstr "Comprimare"
-
 msgid "Configuration"
 msgstr "Configurare"
 
@@ -844,12 +856,12 @@ msgstr "Dezactiveaza configuratia DNS"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr ""
-
 msgid "Disabled"
 msgstr "Dezactivat"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr ""
 
@@ -884,9 +896,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr "Domeniul necesar"
 
@@ -1009,6 +1018,11 @@ msgstr "Activeaza/Dezactiveaza"
 msgid "Enabled"
 msgstr "Activat"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 
@@ -1055,6 +1069,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Server de log-uri extern"
 
@@ -1067,9 +1087,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr "Fisier"
 
@@ -1105,6 +1122,9 @@ msgstr "Termina"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Setarile firewall-ului"
 
@@ -1303,6 +1323,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Adresa IP"
 
@@ -1396,6 +1419,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1543,8 +1569,8 @@ msgstr ""
 "Se pare ca ai incercat sa rescrii o imagine care nu are loc in memoria "
 "flash, verifica fisierul din nou!"
 
-msgid "Java Script required!"
-msgstr "Ai nevoie de Java Script !"
+msgid "JavaScript required!"
+msgstr "Ai nevoie de JavaScript !"
 
 msgid "Join Network"
 msgstr ""
@@ -1656,6 +1682,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1788,9 +1830,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Rata maxima"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1826,9 +1865,6 @@ msgstr "Utilizarea memoriei (%)"
 msgid "Metric"
 msgstr "Metrica"
 
-msgid "Minimum Rate"
-msgstr "Rata minima"
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1841,6 +1877,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Mod"
 
@@ -1897,9 +1936,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr "Rata de multicast"
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2086,6 +2122,9 @@ msgstr "Optiunea schimbata"
 msgid "Option removed"
 msgstr "Optiunea eliminata"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2096,8 +2135,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2134,9 +2178,6 @@ msgstr "Iesire"
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2184,6 +2225,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2313,6 +2357,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2378,6 +2425,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Calitate"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2459,6 +2512,9 @@ msgstr "Traficul in timp real"
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2477,6 +2533,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr "Antena receptorului"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Reconecteaza aceasta interfata"
 
@@ -2486,9 +2545,6 @@ msgstr "Interfata se reconecteaza chiar acum"
 msgid "References"
 msgstr "Referinte"
 
-msgid "Regulatory Domain"
-msgstr "Domeniu regulatoriu"
-
 msgid "Relay"
 msgstr ""
 
@@ -2528,19 +2584,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2680,9 +2744,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr "Setarile serverului"
 
@@ -2841,9 +2902,6 @@ msgstr ""
 msgid "Static Routes"
 msgstr "Rute statice"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -3209,9 +3267,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Mod turbo"
-
 msgid "Tx-Power"
 msgstr "Puterea TX"
 
@@ -3230,6 +3285,9 @@ msgstr ""
 msgid "USB Device"
 msgstr "Dispozitiv USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3331,6 +3389,11 @@ msgstr "Folosit"
 msgid "Used Key Slot"
 msgstr "Slot de cheie folosit"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3483,9 +3546,6 @@ msgstr "Scrie cererile DNS primite in syslog"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Suport XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3493,7 +3553,7 @@ msgid ""
 msgstr ""
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 
 msgid ""
@@ -3582,6 +3642,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3636,6 +3699,9 @@ msgstr ""
 msgid "tagged"
 msgstr "etichetat"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "necunoscut"
 
@@ -3657,6 +3723,36 @@ msgstr "da"
 msgid "« Back"
 msgstr "« Inapoi"
 
+#~ msgid "AR Support"
+#~ msgstr "Suport AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s Controler Fara Fir"
+
+#~ msgid "Background Scan"
+#~ msgstr "Scanare in fundal"
+
+#~ msgid "Compression"
+#~ msgstr "Comprimare"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Rata maxima"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Rata minima"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Rata de multicast"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Domeniu regulatoriu"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Mod turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Suport XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr ""
 #~ "Daca lasati aceasta optiune neselectata va fi creata o retea aditionala"
index 8394b3c..94511db 100644 (file)
@@ -54,12 +54,36 @@ msgstr "Загрузка за 1 минуту:"
 msgid "15 Minute Load:"
 msgstr "Загрузка за 15 минут:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Загрузка за 5 минут:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Базовый идентификатор обслуживания\">BSSID</abbr>"
 
@@ -149,9 +173,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Поддержка AR"
-
 msgid "ARP retry threshold"
 msgstr "Порог повтора ARP"
 
@@ -398,9 +419,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Подключенные клиенты"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Беспроводной 802.11%s контроллер Atheros"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -479,9 +497,6 @@ msgstr "Назад к обзору"
 msgid "Back to scan results"
 msgstr "Назад к результатам сканирования"
 
-msgid "Background Scan"
-msgstr "Фоновое сканирование"
-
 msgid "Backup / Flash Firmware"
 msgstr "Резервная копия / прошивка"
 
@@ -651,9 +666,6 @@ msgstr "Команда"
 msgid "Common Configuration"
 msgstr "Общая конфигурация"
 
-msgid "Compression"
-msgstr "Сжатие"
-
 msgid "Configuration"
 msgstr "Конфигурация"
 
@@ -873,12 +885,12 @@ msgstr "Отключить настройку DNS"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Отключить таймер HW-Beacon"
-
 msgid "Disabled"
 msgstr "Отключено"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Отбрасывать ответы RFC1918"
 
@@ -919,9 +931,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Не перенаправлять обратные DNS-запросы для локальных сетей"
 
-msgid "Do not send probe responses"
-msgstr "Не посылать тестовые ответы"
-
 msgid "Domain required"
 msgstr "Требуется домен"
 
@@ -1055,6 +1064,11 @@ msgstr "Включить/выключить"
 msgid "Enabled"
 msgstr "Включено"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Включает Spanning Tree Protocol на этом мосту"
 
@@ -1104,6 +1118,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Сервер системного журнала"
 
@@ -1116,9 +1136,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Быстрые кадры"
-
 msgid "File"
 msgstr "Файл"
 
@@ -1154,6 +1171,9 @@ msgstr "Завершить"
 msgid "Firewall"
 msgstr "Межсетевой экран"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Настройки межсетевого экрана"
 
@@ -1355,6 +1375,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP-адрес"
 
@@ -1448,6 +1471,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-адрес"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6 в IPv4 (RFC4213)"
 
@@ -1607,8 +1633,8 @@ msgstr ""
 "Вы пытаетесь обновить прошивку файлом, который не помещается в память "
 "устройства! Пожалуйста, проверьте файл образа."
 
-msgid "Java Script required!"
-msgstr "Требуется Java Script!"
+msgid "JavaScript required!"
+msgstr "Требуется JavaScript!"
 
 msgid "Join Network"
 msgstr "Подключение к сети"
@@ -1722,6 +1748,22 @@ msgstr ""
 "Список <abbr title=\"Domain Name System\">DNS</abbr>-серверов для "
 "перенаправления запросов"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1861,9 +1903,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Максимальная скорость"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Максимальное количество активных арендованных DHCP-адресов"
 
@@ -1899,9 +1938,6 @@ msgstr "Использование памяти (%)"
 msgid "Metric"
 msgstr "Метрика"
 
-msgid "Minimum Rate"
-msgstr "Минимальная скорость"
-
 msgid "Minimum hold time"
 msgstr "Минимальное время удержания"
 
@@ -1914,6 +1950,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Отсутствует расширение протокола %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Режим"
 
@@ -1973,9 +2012,6 @@ msgstr "Переместить вниз"
 msgid "Move up"
 msgstr "Переместить вверх"
 
-msgid "Multicast Rate"
-msgstr "Скорость групповой передачи"
-
 msgid "Multicast address"
 msgstr "Адрес групповой передачи"
 
@@ -2168,6 +2204,9 @@ msgstr "Опция изменена"
 msgid "Option removed"
 msgstr "Опция удалена"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2178,8 +2217,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2216,9 +2260,6 @@ msgstr "Вне"
 msgid "Outbound:"
 msgstr "Исходящий:"
 
-msgid "Outdoor Channels"
-msgstr "Внешние каналы"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2268,6 +2309,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2397,6 +2441,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2464,6 +2511,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Качество"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2556,6 +2609,9 @@ msgstr "Трафик в реальном времени"
 msgid "Realtime Wireless"
 msgstr "Беспроводная сеть в реальном времени"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Защита от DNS Rebinding"
 
@@ -2574,6 +2630,9 @@ msgstr "Приём"
 msgid "Receiver Antenna"
 msgstr "Приёмная антенна"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Переподключить этот интерфейс"
 
@@ -2584,9 +2643,6 @@ msgstr "Интерфейс переподключается"
 msgid "References"
 msgstr "Ссылки"
 
-msgid "Regulatory Domain"
-msgstr "Нормативная зона"
-
 msgid "Relay"
 msgstr "Ретранслятор"
 
@@ -2626,19 +2682,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "Требуется для некоторых интернет-провайдеров"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2782,9 +2846,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Разделять клиентов"
 
-msgid "Separate WDS"
-msgstr "Отдельный WDS"
-
 msgid "Server Settings"
 msgstr "Настройки сервера"
 
@@ -2949,9 +3010,6 @@ msgstr "Постоянные аренды"
 msgid "Static Routes"
 msgstr "Статические маршруты"
 
-msgid "Static WDS"
-msgstr "Статический WDS"
-
 msgid "Static address"
 msgstr "Статический адрес"
 
@@ -3376,9 +3434,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Турбо-режим"
-
 msgid "Tx-Power"
 msgstr "Мощность передатчика"
 
@@ -3397,6 +3452,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB-устройство"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3505,6 +3563,11 @@ msgstr "Использовано"
 msgid "Used Key Slot"
 msgstr "Используемый слот ключа"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3658,9 +3721,6 @@ msgstr "Записывать полученные DNS-запросы в сист
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Поддержка XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3672,9 +3732,9 @@ msgstr ""
 "(например \"network\"), ваше устройство может оказаться недоступным!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"Вам необходимо включить Java Script в вашем браузере для корректной работы "
+"Вам необходимо включить JavaScript в вашем браузере для корректной работы "
 "LuCI."
 
 msgid ""
@@ -3767,6 +3827,9 @@ msgstr "локальный <abbr title=\"Служба доменных имён\
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3821,6 +3884,9 @@ msgstr ""
 msgid "tagged"
 msgstr "с тегом"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "неизвестный"
 
@@ -3842,6 +3908,54 @@ msgstr "да"
 msgid "« Back"
 msgstr "« Назад"
 
+#~ msgid "AR Support"
+#~ msgstr "Поддержка AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Беспроводной 802.11%s контроллер Atheros"
+
+#~ msgid "Background Scan"
+#~ msgstr "Фоновое сканирование"
+
+#~ msgid "Compression"
+#~ msgstr "Сжатие"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Отключить таймер HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Не посылать тестовые ответы"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Быстрые кадры"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Максимальная скорость"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Минимальная скорость"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Скорость групповой передачи"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Внешние каналы"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Нормативная зона"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Отдельный WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "Статический WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Турбо-режим"
+
+#~ msgid "XR Support"
+#~ msgstr "Поддержка XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr ""
 #~ "Если вы не выберите эту опцию, то будет создана дополнительная сеть."
index 694608a..46c3fdd 100644 (file)
@@ -47,12 +47,36 @@ msgstr ""
 msgid "15 Minute Load:"
 msgstr ""
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr ""
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr ""
 
@@ -133,9 +157,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr ""
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -371,9 +392,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr ""
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -452,9 +470,6 @@ msgstr ""
 msgid "Back to scan results"
 msgstr ""
 
-msgid "Background Scan"
-msgstr ""
-
 msgid "Backup / Flash Firmware"
 msgstr ""
 
@@ -609,9 +624,6 @@ msgstr ""
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr ""
-
 msgid "Configuration"
 msgstr ""
 
@@ -825,10 +837,10 @@ msgstr ""
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
 msgstr ""
 
-msgid "Disabled"
+msgid "Disabled (default)"
 msgstr ""
 
 msgid "Discard upstream RFC1918 responses"
@@ -865,9 +877,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
@@ -990,6 +999,11 @@ msgstr ""
 msgid "Enabled"
 msgstr ""
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 
@@ -1036,6 +1050,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr ""
 
@@ -1048,9 +1068,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1086,6 +1103,9 @@ msgstr ""
 msgid "Firewall"
 msgstr ""
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1281,6 +1301,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr ""
 
@@ -1374,6 +1397,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1518,7 +1544,7 @@ msgid ""
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1631,6 +1657,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1763,9 +1805,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1801,9 +1840,6 @@ msgstr ""
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1816,6 +1852,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1872,9 +1911,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2061,6 +2097,9 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2071,8 +2110,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2109,9 +2153,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2159,6 +2200,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2288,6 +2332,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2353,6 +2400,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2432,6 +2485,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2450,6 +2506,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2459,9 +2518,6 @@ msgstr ""
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2501,19 +2557,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2653,9 +2717,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2813,9 +2874,6 @@ msgstr ""
 msgid "Static Routes"
 msgstr ""
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -3179,9 +3237,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3200,6 +3255,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3301,6 +3359,11 @@ msgstr ""
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3451,9 +3514,6 @@ msgstr ""
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr ""
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3461,7 +3521,7 @@ msgid ""
 msgstr ""
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 
 msgid ""
@@ -3550,6 +3610,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3604,6 +3667,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
index fac272a..7145846 100644 (file)
@@ -50,12 +50,36 @@ msgstr "Belastning senaste minuten:"
 msgid "15 Minute Load:"
 msgstr "Belastning senaste 15 minutrarna:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Belastning senaste 5 minutrarna:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -139,9 +163,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr ""
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -377,9 +398,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr ""
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -458,9 +476,6 @@ msgstr ""
 msgid "Back to scan results"
 msgstr ""
 
-msgid "Background Scan"
-msgstr ""
-
 msgid "Backup / Flash Firmware"
 msgstr ""
 
@@ -615,9 +630,6 @@ msgstr ""
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr ""
-
 msgid "Configuration"
 msgstr ""
 
@@ -831,10 +843,10 @@ msgstr ""
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
 msgstr ""
 
-msgid "Disabled"
+msgid "Disabled (default)"
 msgstr ""
 
 msgid "Discard upstream RFC1918 responses"
@@ -871,9 +883,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
@@ -996,6 +1005,11 @@ msgstr ""
 msgid "Enabled"
 msgstr ""
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 
@@ -1042,6 +1056,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr ""
 
@@ -1054,9 +1074,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1092,6 +1109,9 @@ msgstr ""
 msgid "Firewall"
 msgstr ""
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1287,6 +1307,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr ""
 
@@ -1380,6 +1403,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1524,7 +1550,7 @@ msgid ""
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1637,6 +1663,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1769,9 +1811,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1807,9 +1846,6 @@ msgstr ""
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1822,6 +1858,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1878,9 +1917,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2067,6 +2103,9 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2077,8 +2116,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2115,9 +2159,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2165,6 +2206,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2294,6 +2338,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2359,6 +2406,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2438,6 +2491,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2456,6 +2512,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2465,9 +2524,6 @@ msgstr ""
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2507,19 +2563,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2659,9 +2723,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2819,9 +2880,6 @@ msgstr ""
 msgid "Static Routes"
 msgstr ""
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -3185,9 +3243,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3206,6 +3261,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3307,6 +3365,11 @@ msgstr ""
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3457,9 +3520,6 @@ msgstr ""
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr ""
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3467,7 +3527,7 @@ msgid ""
 msgstr ""
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 
 msgid ""
@@ -3556,6 +3616,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3610,6 +3673,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
index 42eb60b..d7ecb8a 100644 (file)
@@ -40,12 +40,36 @@ msgstr ""
 msgid "15 Minute Load:"
 msgstr ""
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr ""
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr ""
 
@@ -126,9 +150,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr ""
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -364,9 +385,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr ""
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -445,9 +463,6 @@ msgstr ""
 msgid "Back to scan results"
 msgstr ""
 
-msgid "Background Scan"
-msgstr ""
-
 msgid "Backup / Flash Firmware"
 msgstr ""
 
@@ -602,9 +617,6 @@ msgstr ""
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr ""
-
 msgid "Configuration"
 msgstr ""
 
@@ -818,10 +830,10 @@ msgstr ""
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
 msgstr ""
 
-msgid "Disabled"
+msgid "Disabled (default)"
 msgstr ""
 
 msgid "Discard upstream RFC1918 responses"
@@ -858,9 +870,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
@@ -983,6 +992,11 @@ msgstr ""
 msgid "Enabled"
 msgstr ""
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 
@@ -1029,6 +1043,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr ""
 
@@ -1041,9 +1061,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1079,6 +1096,9 @@ msgstr ""
 msgid "Firewall"
 msgstr ""
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1274,6 +1294,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr ""
 
@@ -1367,6 +1390,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1511,7 +1537,7 @@ msgid ""
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1624,6 +1650,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1756,9 +1798,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1794,9 +1833,6 @@ msgstr ""
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1809,6 +1845,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1865,9 +1904,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2054,6 +2090,9 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2064,8 +2103,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2102,9 +2146,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2152,6 +2193,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2281,6 +2325,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2346,6 +2393,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2425,6 +2478,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2443,6 +2499,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2452,9 +2511,6 @@ msgstr ""
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2494,19 +2550,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2646,9 +2710,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2806,9 +2867,6 @@ msgstr ""
 msgid "Static Routes"
 msgstr ""
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -3172,9 +3230,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3193,6 +3248,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3294,6 +3352,11 @@ msgstr ""
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3444,9 +3507,6 @@ msgstr ""
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr ""
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3454,7 +3514,7 @@ msgid ""
 msgstr ""
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 
 msgid ""
@@ -3543,6 +3603,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3597,6 +3660,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
index 5a3d2f5..9be51e3 100644 (file)
@@ -50,12 +50,36 @@ msgstr "1 Dakikalık Yük:"
 msgid "15 Minute Load:"
 msgstr "15 Dakikalık Yük:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "5 Dakikalık Yük:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\\\"Temel Servis Ayar Tanımlayıcısı\\\"> BSSID </abbr>"
 
@@ -142,9 +166,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "AR Desteği"
-
 msgid "ARP retry threshold"
 msgstr "ARP yenileme aralığı"
 
@@ -384,9 +405,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr ""
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s Kablosuz Denetleyicisi"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -465,9 +483,6 @@ msgstr "Genel Bakışa dön"
 msgid "Back to scan results"
 msgstr "Tarama sonuçlarına dön"
 
-msgid "Background Scan"
-msgstr "Arka Planda Tarama"
-
 msgid "Backup / Flash Firmware"
 msgstr ""
 
@@ -622,9 +637,6 @@ msgstr ""
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr ""
-
 msgid "Configuration"
 msgstr ""
 
@@ -838,10 +850,10 @@ msgstr ""
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
+msgid "Disabled"
 msgstr ""
 
-msgid "Disabled"
+msgid "Disabled (default)"
 msgstr ""
 
 msgid "Discard upstream RFC1918 responses"
@@ -878,9 +890,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
@@ -1003,6 +1012,11 @@ msgstr ""
 msgid "Enabled"
 msgstr ""
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 
@@ -1049,6 +1063,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr ""
 
@@ -1061,9 +1081,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1099,6 +1116,9 @@ msgstr ""
 msgid "Firewall"
 msgstr ""
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1294,6 +1314,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr ""
 
@@ -1387,6 +1410,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1531,7 +1557,7 @@ msgid ""
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1644,6 +1670,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1776,9 +1818,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1814,9 +1853,6 @@ msgstr ""
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1829,6 +1865,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1885,9 +1924,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2074,6 +2110,9 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2084,8 +2123,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2122,9 +2166,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2172,6 +2213,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2301,6 +2345,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2366,6 +2413,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2445,6 +2498,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2463,6 +2519,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2472,9 +2531,6 @@ msgstr ""
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2514,19 +2570,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2666,9 +2730,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2826,9 +2887,6 @@ msgstr ""
 msgid "Static Routes"
 msgstr ""
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -3192,9 +3250,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3213,6 +3268,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3314,6 +3372,11 @@ msgstr ""
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3464,9 +3527,6 @@ msgstr ""
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr ""
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3474,7 +3534,7 @@ msgid ""
 msgstr ""
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 "LuCI'nin düzgün çalışması için tarayıcınızda Java Scripti "
 "etkinleştirmelisiniz."
@@ -3565,6 +3625,9 @@ msgstr "yerel <abbr title=\"Domain Name System\">DNS</abbr> dosyası"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3619,6 +3682,9 @@ msgstr ""
 msgid "tagged"
 msgstr "etiketlendi"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3639,3 +3705,12 @@ msgstr "evet"
 
 msgid "« Back"
 msgstr "« Geri"
+
+#~ msgid "AR Support"
+#~ msgstr "AR Desteği"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s Kablosuz Denetleyicisi"
+
+#~ msgid "Background Scan"
+#~ msgstr "Arka Planda Tarama"
index cb79052..21db53b 100644 (file)
@@ -51,12 +51,36 @@ msgstr "Навантаження за 1 хвилину:"
 msgid "15 Minute Load:"
 msgstr "Навантаження за 15 хвилин:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "Навантаження за 5 хвилин:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr ""
 "<abbr title=\"Basic Service Set Identifier — ідентифікатор основної служби "
@@ -158,9 +182,6 @@ msgid "APN"
 msgstr ""
 "<abbr title=\"Access Point Name — символічна назва точки доступу\">APN</abbr>"
 
-msgid "AR Support"
-msgstr "Підтримка AR"
-
 msgid "ARP retry threshold"
 msgstr "Поріг повтору ARP"
 
@@ -408,9 +429,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Приєднані станції"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Бездротовий 802.11%s контролер Atheros"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -489,9 +507,6 @@ msgstr "Повернутися до переліку"
 msgid "Back to scan results"
 msgstr "Повернутися до результатів сканування"
 
-msgid "Background Scan"
-msgstr "Сканування у фоновому режимі"
-
 msgid "Backup / Flash Firmware"
 msgstr "Резервне копіювання / Оновлення прошивки"
 
@@ -660,9 +675,6 @@ msgstr "Команда"
 msgid "Common Configuration"
 msgstr "Загальна конфігурація"
 
-msgid "Compression"
-msgstr "Стиснення"
-
 msgid "Configuration"
 msgstr "Конфігурація"
 
@@ -883,12 +895,12 @@ msgstr "Вимкнути настроювання DNS"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Вимкнути таймер HW-Beacon"
-
 msgid "Disabled"
 msgstr "Вимкнено"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "Відкидати RFC1918-відповіді від клієнта на сервер"
 
@@ -930,9 +942,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Не спрямовувати зворотний перегляд для локальних мереж"
 
-msgid "Do not send probe responses"
-msgstr "Не надсилати відповіді на зондування"
-
 msgid "Domain required"
 msgstr "Потрібен домен"
 
@@ -1064,6 +1073,11 @@ msgstr "Увімкнено/Вимкнено"
 msgid "Enabled"
 msgstr "Увімкнено"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr ""
 "Увімкнути <abbr title=\"Spanning Tree Protocol\">STP</abbr> на цьому мосту"
@@ -1112,6 +1126,12 @@ msgstr "Термін оренди адрес, мінімум 2 хвилини (<
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "Зовнішній сервер системного журналу"
 
@@ -1124,9 +1144,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Швидкі фрейми"
-
 msgid "File"
 msgstr "Файл"
 
@@ -1162,6 +1179,9 @@ msgstr "Готово"
 msgid "Firewall"
 msgstr "Брандмауер"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Настройки брандмауера"
 
@@ -1363,6 +1383,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP-адреса"
 
@@ -1456,6 +1479,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-адреса"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6 у IPv4 (RFC4213)"
 
@@ -1614,8 +1640,8 @@ msgstr ""
 "Схоже, що ви намагаєтеся залити образ, який не вміщається у флеш-пам'ять! "
 "Перевірте файл образу!"
 
-msgid "Java Script required!"
-msgstr "Потрібен Java Script!"
+msgid "JavaScript required!"
+msgstr "Потрібен JavaScript!"
 
 msgid "Join Network"
 msgstr "Підключення до мережі"
@@ -1729,6 +1755,22 @@ msgstr ""
 "Список <abbr title=\"Domain Name System\">DNS</abbr>-серверів, до яких "
 "пересилати запити"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1870,9 +1912,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Максимальна швидкість"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Максимально допустима кількість активних оренд DHCP"
 
@@ -1908,9 +1947,6 @@ msgstr "Використання пам'яті, %"
 msgid "Metric"
 msgstr "Метрика"
 
-msgid "Minimum Rate"
-msgstr "Мінімальна швидкість"
-
 msgid "Minimum hold time"
 msgstr "Мінімальний час утримування"
 
@@ -1923,6 +1959,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Відсутні розширення для протоколу %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Режим"
 
@@ -1981,9 +2020,6 @@ msgstr "Вниз"
 msgid "Move up"
 msgstr "Вгору"
 
-msgid "Multicast Rate"
-msgstr "Швидкість багатоадресного потоку"
-
 msgid "Multicast address"
 msgstr "Адреса багатоадресного потоку"
 
@@ -2176,6 +2212,9 @@ msgstr "Опція змінена"
 msgid "Option removed"
 msgstr "Опція видалена"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2186,8 +2225,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2224,9 +2268,6 @@ msgstr "Вих."
 msgid "Outbound:"
 msgstr "Вихідний:"
 
-msgid "Outdoor Channels"
-msgstr "Зовнішні канали"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2279,6 +2320,9 @@ msgstr ""
 "<abbr title=\"Personal Identification Number — Персональний ідентифікаційний "
 "номер\">>PIN</abbr>"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2408,6 +2452,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2475,6 +2522,12 @@ msgstr ""
 msgid "Quality"
 msgstr "Якість"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2570,6 +2623,9 @@ msgstr "Трафік у реальному часі"
 msgid "Realtime Wireless"
 msgstr "Бездротові мережі у реальному часі"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Захист від переприв'язки"
 
@@ -2588,6 +2644,9 @@ msgstr "Прийом"
 msgid "Receiver Antenna"
 msgstr "Антена приймача"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Перепідключити цей інтерфейс"
 
@@ -2597,9 +2656,6 @@ msgstr "Перепідключення інтерфейсу"
 msgid "References"
 msgstr "Посилання"
 
-msgid "Regulatory Domain"
-msgstr "Регулятивний домен"
-
 msgid "Relay"
 msgstr "Ретранслятор"
 
@@ -2639,19 +2695,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "Потрібно для деяких провайдерів, наприклад, Charter із DOCSIS 3"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2795,9 +2859,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Розділяти клієнтів"
 
-msgid "Separate WDS"
-msgstr "Розділяти WDS"
-
 msgid "Server Settings"
 msgstr "Настройки сервера"
 
@@ -2963,9 +3024,6 @@ msgstr "Статичні оренди"
 msgid "Static Routes"
 msgstr "Статичні маршрути"
 
-msgid "Static WDS"
-msgstr "Статичний WDS"
-
 msgid "Static address"
 msgstr "Статичні адреси"
 
@@ -3392,9 +3450,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Режим Turbo"
-
 msgid "Tx-Power"
 msgstr "Потужність передавача"
 
@@ -3413,6 +3468,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB-пристрій"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3521,6 +3579,11 @@ msgstr "Використано"
 msgid "Used Key Slot"
 msgstr "Використовується слот ключа"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3673,9 +3736,6 @@ msgstr "Записувати отримані DNS-запити до систем
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Підтримка XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3687,9 +3747,9 @@ msgstr ""
 "пристрій може стати недоступним!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
-"Ви повинні увімкнути Java Script у вашому браузері, або LuCI не буде "
+"Ви повинні увімкнути JavaScript у вашому браузері, або LuCI не буде "
 "працювати належним чином."
 
 msgid ""
@@ -3782,6 +3842,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3836,6 +3899,9 @@ msgstr ""
 msgid "tagged"
 msgstr "з позначкою"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "невідомий"
 
@@ -3857,6 +3923,54 @@ msgstr "так"
 msgid "« Back"
 msgstr "« Назад"
 
+#~ msgid "AR Support"
+#~ msgstr "Підтримка AR"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Бездротовий 802.11%s контролер Atheros"
+
+#~ msgid "Background Scan"
+#~ msgstr "Сканування у фоновому режимі"
+
+#~ msgid "Compression"
+#~ msgstr "Стиснення"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Вимкнути таймер HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Не надсилати відповіді на зондування"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Швидкі фрейми"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Максимальна швидкість"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Мінімальна швидкість"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Швидкість багатоадресного потоку"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Зовнішні канали"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Регулятивний домен"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Розділяти WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "Статичний WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Режим Turbo"
+
+#~ msgid "XR Support"
+#~ msgstr "Підтримка XR"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "Якщо ви залишите це невибраним, буде створена додаткова мережа."
 
index 178bf30..7ffacf0 100644 (file)
@@ -52,12 +52,36 @@ msgstr ""
 msgid "15 Minute Load:"
 msgstr ""
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr ""
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Dịch vụ căn bản đặt Identifier\">BSSID</abbr>"
 
@@ -140,9 +164,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr "Hỗ trợ AR"
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -378,9 +399,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr ""
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -459,9 +477,6 @@ msgstr ""
 msgid "Back to scan results"
 msgstr ""
 
-msgid "Background Scan"
-msgstr "Background Scan"
-
 msgid "Backup / Flash Firmware"
 msgstr ""
 
@@ -616,9 +631,6 @@ msgstr "Lệnh"
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr "Sức nén"
-
 msgid "Configuration"
 msgstr "Cấu hình"
 
@@ -834,12 +846,12 @@ msgstr ""
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "Vô hiệu hóa bộ chỉnh giờ HW-Beacon"
-
 msgid "Disabled"
 msgstr ""
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr ""
 
@@ -878,9 +890,6 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr "Không gửi nhắc hồi đáp"
-
 msgid "Domain required"
 msgstr "Domain yêu cầu"
 
@@ -1008,6 +1017,11 @@ msgstr "Cho kích hoạt/ Vô hiệu hóa"
 msgid "Enabled"
 msgstr ""
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "Kích hoạt Spanning Tree Protocol trên cầu nối này"
 
@@ -1054,6 +1068,12 @@ msgstr ""
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr ""
 
@@ -1066,9 +1086,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Khung nhanh"
-
 msgid "File"
 msgstr ""
 
@@ -1104,6 +1121,9 @@ msgstr ""
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1301,6 +1321,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Địa chỉ IP"
 
@@ -1394,6 +1417,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1546,7 +1572,7 @@ msgstr ""
 "Dường như bạn cố gắng flash một hình ảnh không phù hợp với bộ nhớ flash, xin "
 "vui lòng xác minh các tập tin hình ảnh!"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1659,6 +1685,22 @@ msgid ""
 "requests to"
 msgstr ""
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1791,9 +1833,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Mức cao nhất"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1829,9 +1868,6 @@ msgstr "Memory usage (%)"
 msgid "Metric"
 msgstr "Metric"
 
-msgid "Minimum Rate"
-msgstr "Mức thấp nhất"
-
 msgid "Minimum hold time"
 msgstr "Mức thấp nhất"
 
@@ -1844,6 +1880,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Chế độ"
 
@@ -1902,9 +1941,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr "Multicast Rate"
-
 msgid "Multicast address"
 msgstr ""
 
@@ -2097,6 +2133,9 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2107,8 +2146,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2145,9 +2189,6 @@ msgstr "Ra khỏi"
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr "Kênh ngoại mạng"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2195,6 +2236,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2324,6 +2368,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2389,6 +2436,12 @@ msgstr ""
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2470,6 +2523,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2488,6 +2544,9 @@ msgstr "Receive"
 msgid "Receiver Antenna"
 msgstr "Máy thu Antenna"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2497,9 +2556,6 @@ msgstr ""
 msgid "References"
 msgstr "Tham chiếu"
 
-msgid "Regulatory Domain"
-msgstr "Miền điều chỉnh"
-
 msgid "Relay"
 msgstr ""
 
@@ -2539,19 +2595,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr ""
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2693,9 +2757,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Cô lập đối tượng"
 
-msgid "Separate WDS"
-msgstr "Phân tách WDS"
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2853,9 +2914,6 @@ msgstr "Thống kê leases"
 msgid "Static Routes"
 msgstr "Static Routes"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -3234,9 +3292,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbo Mode"
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3255,6 +3310,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3356,6 +3414,11 @@ msgstr "Đã sử dụng"
 msgid "Used Key Slot"
 msgstr ""
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3506,9 +3569,6 @@ msgstr ""
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "Hỗ trợ XR"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3520,7 +3580,7 @@ msgstr ""
 "bạn chó thể trở nên không truy cập được</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
+"You must enable JavaScript in your browser or LuCI will not work properly."
 msgstr ""
 
 msgid ""
@@ -3612,6 +3672,9 @@ msgstr "Tập tin <abbr title=\"Domain Name System\">DNS</abbr> địa phương"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3666,6 +3729,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3686,3 +3752,45 @@ msgstr ""
 
 msgid "« Back"
 msgstr ""
+
+#~ msgid "AR Support"
+#~ msgstr "Hỗ trợ AR"
+
+#~ msgid "Background Scan"
+#~ msgstr "Background Scan"
+
+#~ msgid "Compression"
+#~ msgstr "Sức nén"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "Vô hiệu hóa bộ chỉnh giờ HW-Beacon"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "Không gửi nhắc hồi đáp"
+
+#~ msgid "Fast Frames"
+#~ msgstr "Khung nhanh"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "Mức cao nhất"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "Mức thấp nhất"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "Multicast Rate"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "Kênh ngoại mạng"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "Miền điều chỉnh"
+
+#~ msgid "Separate WDS"
+#~ msgstr "Phân tách WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo Mode"
+
+#~ msgid "XR Support"
+#~ msgstr "Hỗ trợ XR"
index db02643..acfe956 100644 (file)
@@ -52,12 +52,36 @@ msgstr "1分钟负载:"
 msgid "15 Minute Load:"
 msgstr "15分钟负载:"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr "464XLAT (CLAT)"
 
 msgid "5 Minute Load:"
 msgstr "5分钟负载:"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"基本服务集标识符\">BSSID</abbr>"
 
@@ -140,9 +164,6 @@ msgstr "ANSI T1.413"
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "AR支持"
-
 msgid "ARP retry threshold"
 msgstr "ARP重试阈值"
 
@@ -382,9 +403,6 @@ msgstr "指定此接口使用的十六进制子ID前缀部分"
 msgid "Associated Stations"
 msgstr "已连接站点"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Qualcomm/Atheros 802.11%s 无线网卡"
-
 msgid "Auth Group"
 msgstr "认证组"
 
@@ -463,9 +481,6 @@ msgstr "返回至概况"
 msgid "Back to scan results"
 msgstr "返回至扫描结果"
 
-msgid "Background Scan"
-msgstr "后台搜索"
-
 msgid "Backup / Flash Firmware"
 msgstr "备份/升级"
 
@@ -622,9 +637,6 @@ msgstr "进程命令"
 msgid "Common Configuration"
 msgstr "一般设置"
 
-msgid "Compression"
-msgstr "压缩"
-
 msgid "Configuration"
 msgstr "配置"
 
@@ -841,12 +853,12 @@ msgstr "停用DNS设定"
 msgid "Disable Encryption"
 msgstr "禁用加密"
 
-msgid "Disable HW-Beacon timer"
-msgstr "停用HW-Beacon计时器"
-
 msgid "Disabled"
 msgstr "禁用"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "丢弃RFC1918上行响应数据"
 
@@ -881,9 +893,6 @@ msgstr "不转发公共域名服务器无法回应的请求"
 msgid "Do not forward reverse lookups for local networks"
 msgstr "不转发反向查询本地网络的Lookups命令"
 
-msgid "Do not send probe responses"
-msgstr "不回送探测响应"
-
 msgid "Domain required"
 msgstr "忽略空域名解析"
 
@@ -1008,6 +1017,11 @@ msgstr "启用/禁用"
 msgid "Enabled"
 msgstr "启用"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "在此桥接上启用生成协议树"
 
@@ -1054,6 +1068,12 @@ msgstr "租用地址的到期时间,最短2分钟(<code>2m</code>)。"
 msgid "External"
 msgstr "远程"
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "远程日志服务器"
 
@@ -1066,9 +1086,6 @@ msgstr "远程日志服务器协议"
 msgid "Extra SSH command options"
 msgstr "额外的SSH命令选项"
 
-msgid "Fast Frames"
-msgstr "快速帧"
-
 msgid "File"
 msgstr "文件"
 
@@ -1106,6 +1123,9 @@ msgstr "完成"
 msgid "Firewall"
 msgstr "防火墙"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "防火墙设置"
 
@@ -1303,6 +1323,9 @@ msgstr "混合"
 msgid "IKE DH Group"
 msgstr "IKE DH组"
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP地址"
 
@@ -1396,6 +1419,9 @@ msgstr "IPv6路由前缀"
 msgid "IPv6-Address"
 msgstr "IPv6-地址"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1542,8 +1568,8 @@ msgid ""
 "flash memory, please verify the image file!"
 msgstr "你尝试刷写的固件与本路由器不兼容,请重新验证固件文件。"
 
-msgid "Java Script required!"
-msgstr "需要Java Script!"
+msgid "JavaScript required!"
+msgstr "需要JavaScript!"
 
 msgid "Join Network"
 msgstr "加入网络"
@@ -1655,6 +1681,22 @@ msgid ""
 "requests to"
 msgstr "将指定的域名DNS解析转发到指定的DNS服务器(按照示例填写)"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr "用于认证的SSH密钥文件列表"
 
@@ -1787,9 +1829,6 @@ msgstr "手动"
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr "最大可达数据速率(ATTNDR)"
 
-msgid "Maximum Rate"
-msgstr "最高速率"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "允许的最大DHCP租用数"
 
@@ -1826,9 +1865,6 @@ msgstr "内存使用率(%)"
 msgid "Metric"
 msgstr "跃点数"
 
-msgid "Minimum Rate"
-msgstr "最低速率"
-
 msgid "Minimum hold time"
 msgstr "最低持续时间"
 
@@ -1841,6 +1877,9 @@ msgstr "数据包镜像源端口"
 msgid "Missing protocol extension for proto %q"
 msgstr "缺少协议 %q 的协议扩展"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "模式"
 
@@ -1897,9 +1936,6 @@ msgstr "下移"
 msgid "Move up"
 msgstr "上移"
 
-msgid "Multicast Rate"
-msgstr "多播速率"
-
 msgid "Multicast address"
 msgstr "多播地址"
 
@@ -2086,6 +2122,9 @@ msgstr "修改的选项"
 msgid "Option removed"
 msgstr "移除的选项"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr "可选,设置这个选项会覆盖默认设定的服务器(tic.sixxs.net)"
 
@@ -2096,8 +2135,13 @@ msgid "Optional."
 msgstr "可选"
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2136,9 +2180,6 @@ msgstr "出口"
 msgid "Outbound:"
 msgstr "出站:"
 
-msgid "Outdoor Channels"
-msgstr "户外频道"
-
 msgid "Output Interface"
 msgstr "网络出口"
 
@@ -2186,6 +2227,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2315,6 +2359,9 @@ msgstr "电源管理模式"
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr "抢占式CRC错误(CRCP_P)"
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr "预共享密钥"
 
@@ -2380,6 +2427,12 @@ msgstr "QMI蜂窝"
 msgid "Quality"
 msgstr "质量"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr "RFC3947 NAT-T模式"
 
@@ -2468,6 +2521,9 @@ msgstr "实时流量"
 msgid "Realtime Wireless"
 msgstr "实时无线"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "重绑定保护"
 
@@ -2486,6 +2542,9 @@ msgstr "接收"
 msgid "Receiver Antenna"
 msgstr "接收天线"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "重连此接口"
 
@@ -2495,9 +2554,6 @@ msgstr "重连接口中..."
 msgid "References"
 msgstr "引用"
 
-msgid "Regulatory Domain"
-msgstr "无线网络国家区域"
-
 msgid "Relay"
 msgstr "中继"
 
@@ -2537,12 +2593,18 @@ msgstr "请求指定长度的IPv6前缀"
 msgid "Require TLS"
 msgstr "必须使用TLS"
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "某些ISP需要,例如:同轴线网络DOCSIS 3"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr "必须,此接口的Base64编码私钥。"
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
@@ -2551,8 +2613,10 @@ msgstr ""
 "必须,允许该Peer在隧道中使用的IP地址和前缀,通常是该Peer的隧道IP地址和通过隧"
 "道的路由网络。"
 
-msgid "Required. Public key of peer."
-msgstr "必须,Peer的公钥。"
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
+msgstr ""
 
 msgid ""
 "Requires upstream supports DNSSEC; verify unsigned domain responses really "
@@ -2691,9 +2755,6 @@ msgstr "定时发送LCP响应(秒),仅在结合了故障阈值时有效"
 msgid "Separate Clients"
 msgstr "隔离客户端"
 
-msgid "Separate WDS"
-msgstr "隔离WDS"
-
 msgid "Server Settings"
 msgstr "服务器设置"
 
@@ -2854,9 +2915,6 @@ msgstr "静态地址分配"
 msgid "Static Routes"
 msgstr "静态路由"
 
-msgid "Static WDS"
-msgstr "静态WDS"
-
 msgid "Static address"
 msgstr "静态地址"
 
@@ -3239,9 +3297,6 @@ msgstr "隧道配置服务器"
 msgid "Tunnel type"
 msgstr "隧道类型"
 
-msgid "Turbo Mode"
-msgstr "Turbo模式"
-
 msgid "Tx-Power"
 msgstr "传输功率"
 
@@ -3260,6 +3315,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB设备"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3363,6 +3421,11 @@ msgstr "已用"
 msgid "Used Key Slot"
 msgstr "启用密码组"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr "客户证书(PEM加密的)"
 
@@ -3515,9 +3578,6 @@ msgstr "将收到的DNS请求写入系统日志"
 msgid "Write system log to file"
 msgstr "将系统日志写入文件"
 
-msgid "XR Support"
-msgstr "XR支持"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3527,8 +3587,8 @@ msgstr ""
 "用了必要的启动脚本,比如\"network\",可能会导致设备无法访问!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
-msgstr "LUCI的正常运行需要开启浏览器的Java Script支持。"
+"You must enable JavaScript in your browser or LuCI will not work properly."
+msgstr "LUCI的正常运行需要开启浏览器的JavaScript支持。"
 
 msgid ""
 "Your Internet Explorer is too old to display this page correctly. Please "
@@ -3618,6 +3678,9 @@ msgstr "本地<abbr title=\"域名服务系统\">DNS</abbr>解析文件"
 msgid "minimum 1280, maximum 1480"
 msgstr "最小值1280,最大值1480"
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr "导航"
 
@@ -3672,6 +3735,9 @@ msgstr "有状态和无状态的"
 msgid "tagged"
 msgstr "关联"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "未知"
 
@@ -3693,6 +3759,57 @@ msgstr "是"
 msgid "« Back"
 msgstr "« 后退"
 
+#~ msgid "AR Support"
+#~ msgstr "AR支持"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Qualcomm/Atheros 802.11%s 无线网卡"
+
+#~ msgid "Background Scan"
+#~ msgstr "后台搜索"
+
+#~ msgid "Compression"
+#~ msgstr "压缩"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "停用HW-Beacon计时器"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "不回送探测响应"
+
+#~ msgid "Fast Frames"
+#~ msgstr "快速帧"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "最高速率"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "最低速率"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "多播速率"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "户外频道"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "无线网络国家区域"
+
+#~ msgid "Separate WDS"
+#~ msgstr "隔离WDS"
+
+#~ msgid "Static WDS"
+#~ msgstr "静态WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "Turbo模式"
+
+#~ msgid "XR Support"
+#~ msgstr "XR支持"
+
+#~ msgid "Required. Public key of peer."
+#~ msgstr "必须,Peer的公钥。"
+
 #~ msgid "An additional network will be created if you leave this checked."
 #~ msgstr "如果选中此复选框,则会创建一个附加网络。"
 
index 4acb190..4cb8416 100644 (file)
@@ -50,12 +50,36 @@ msgstr "1分鐘負載"
 msgid "15 Minute Load:"
 msgstr "15分鐘負載"
 
+msgid "4-character hexadecimal ID"
+msgstr ""
+
 msgid "464XLAT (CLAT)"
 msgstr ""
 
 msgid "5 Minute Load:"
 msgstr "5分鐘負載"
 
+msgid "6-octet identifier as a hex string - no colons"
+msgstr ""
+
+msgid "802.11r Fast Transition"
+msgstr ""
+
+msgid "802.11w Association SA Query maximum timeout"
+msgstr ""
+
+msgid "802.11w Association SA Query retry timeout"
+msgstr ""
+
+msgid "802.11w Management Frame Protection"
+msgstr ""
+
+msgid "802.11w maximum timeout"
+msgstr ""
+
+msgid "802.11w retry timeout"
+msgstr ""
+
 msgid "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 msgstr "<abbr title=\"Basic Service Set Identifier\">BSSID</abbr>"
 
@@ -141,9 +165,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "AR支援"
-
 msgid "ARP retry threshold"
 msgstr "ARP重試門檻"
 
@@ -381,9 +402,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "已連接站點"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s 無線控制器"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -462,9 +480,6 @@ msgstr "返回至總覽"
 msgid "Back to scan results"
 msgstr "返回至掃描結果"
 
-msgid "Background Scan"
-msgstr "背景搜尋"
-
 msgid "Backup / Flash Firmware"
 msgstr "備份/升級韌體"
 
@@ -627,9 +642,6 @@ msgstr "指令"
 msgid "Common Configuration"
 msgstr "一般設定"
 
-msgid "Compression"
-msgstr "壓縮"
-
 msgid "Configuration"
 msgstr "設定"
 
@@ -848,12 +860,12 @@ msgstr "關閉DNS設置"
 msgid "Disable Encryption"
 msgstr ""
 
-msgid "Disable HW-Beacon timer"
-msgstr "關閉硬體燈號計時器"
-
 msgid "Disabled"
 msgstr "關閉"
 
+msgid "Disabled (default)"
+msgstr ""
+
 msgid "Discard upstream RFC1918 responses"
 msgstr "丟棄上游RFC1918 虛擬IP網路的回應"
 
@@ -891,9 +903,6 @@ msgstr "對不被公用名稱伺服器回應的請求不轉發"
 msgid "Do not forward reverse lookups for local networks"
 msgstr "對本地網域不轉發反解析鎖定"
 
-msgid "Do not send probe responses"
-msgstr "不傳送探測回應"
-
 msgid "Domain required"
 msgstr "網域必要的"
 
@@ -1020,6 +1029,11 @@ msgstr "啟用/關閉"
 msgid "Enabled"
 msgstr "啟用"
 
+msgid ""
+"Enables fast roaming among access points that belong to the same Mobility "
+"Domain"
+msgstr ""
+
 msgid "Enables the Spanning Tree Protocol on this bridge"
 msgstr "在橋接器上啟用802.1d Spanning Tree協定"
 
@@ -1067,6 +1081,12 @@ msgstr "釋放位址的過期週期,最少兩分鐘 (<code>2m</code>)."
 msgid "External"
 msgstr ""
 
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
+msgstr ""
+
 msgid "External system log server"
 msgstr "外部系統日誌伺服器"
 
@@ -1079,9 +1099,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "快速迅框群"
-
 msgid "File"
 msgstr "檔案"
 
@@ -1117,6 +1134,9 @@ msgstr "完成"
 msgid "Firewall"
 msgstr "防火牆"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "防火牆設定"
 
@@ -1312,6 +1332,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP位址"
 
@@ -1405,6 +1428,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-位址"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6包覆在IPv4內(RFC4213)"
 
@@ -1554,7 +1580,7 @@ msgid ""
 "flash memory, please verify the image file!"
 msgstr "它顯示你正嘗試更新不適用於這個flash記憶體的映像檔,請檢查確認這個映像檔"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr "需要Java腳本"
 
 msgid "Join Network"
@@ -1667,6 +1693,22 @@ msgid ""
 "requests to"
 msgstr "列出 <abbr title=\"Domain Name System\">DNS</abbr> 伺服器以便轉發請求"
 
+msgid ""
+"List of R0KHs in the same Mobility Domain. <br />Format: MAC-address,NAS-"
+"Identifier,128-bit key as hex string. <br />This list is used to map R0KH-ID "
+"(NAS Identifier) to a destination MAC address when requesting PMK-R1 key "
+"from the R0KH that the STA used during the Initial Mobility Domain "
+"Association."
+msgstr ""
+
+msgid ""
+"List of R1KHs in the same Mobility Domain. <br />Format: MAC-address,R1KH-ID "
+"as 6 octets with colons,128-bit key as hex string. <br />This list is used "
+"to map R1KH-ID to a destination MAC address when sending PMK-R1 key from the "
+"R0KH. This is also the list of authorized R1KHs in the MD that can request "
+"PMK-R1 keys."
+msgstr ""
+
 msgid "List of SSH key files for auth"
 msgstr ""
 
@@ -1800,9 +1842,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "最快速度"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "允許啟用DHCP釋放的最大數量"
 
@@ -1838,9 +1877,6 @@ msgstr "記憶體使用 (%)"
 msgid "Metric"
 msgstr "公測單位"
 
-msgid "Minimum Rate"
-msgstr "最低速度"
-
 msgid "Minimum hold time"
 msgstr "可持有的最低時間"
 
@@ -1853,6 +1889,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "協定  %q 漏失的延伸協定"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "模式"
 
@@ -1909,9 +1948,6 @@ msgstr "往下移"
 msgid "Move up"
 msgstr "往上移"
 
-msgid "Multicast Rate"
-msgstr "多點群播速度"
-
 msgid "Multicast address"
 msgstr "多點群播位址"
 
@@ -2102,6 +2138,9 @@ msgstr "選項已變更"
 msgid "Option removed"
 msgstr "選項已移除"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
@@ -2112,8 +2151,13 @@ msgid "Optional."
 msgstr ""
 
 msgid ""
-"Optional. Adds in an additional layer of symmetric-key cryptography for post-"
-"quantum resistance."
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
 msgstr ""
 
 msgid "Optional. Create routes for Allowed IPs for this peer."
@@ -2150,9 +2194,6 @@ msgstr "出"
 msgid "Outbound:"
 msgstr "外連:"
 
-msgid "Outdoor Channels"
-msgstr "室外通道"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2200,6 +2241,9 @@ msgstr "PID碼"
 msgid "PIN"
 msgstr "PIN碼"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP協定"
 
@@ -2329,6 +2373,9 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefix Delegated"
+msgstr ""
+
 msgid "Preshared Key"
 msgstr ""
 
@@ -2394,6 +2441,12 @@ msgstr ""
 msgid "Quality"
 msgstr "品質"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2484,6 +2537,9 @@ msgstr "即時流量"
 msgid "Realtime Wireless"
 msgstr "即時無線網路"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "重新綁護"
 
@@ -2502,6 +2558,9 @@ msgstr "接收"
 msgid "Receiver Antenna"
 msgstr "接收天線"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "重新連接這個介面"
 
@@ -2511,9 +2570,6 @@ msgstr "重連這個介面中"
 msgid "References"
 msgstr "引用"
 
-msgid "Regulatory Domain"
-msgstr "監管網域"
-
 msgid "Relay"
 msgstr "延遲"
 
@@ -2553,19 +2609,27 @@ msgstr ""
 msgid "Require TLS"
 msgstr ""
 
+msgid "Required"
+msgstr ""
+
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
 msgstr "對特定的ISP需要,例如.DOCSIS 3 加速有線電視寬頻網路"
 
 msgid "Required. Base64-encoded private key for this interface."
 msgstr ""
 
+msgid "Required. Base64-encoded public key of peer."
+msgstr ""
+
 msgid ""
 "Required. IP addresses and prefixes that this peer is allowed to use inside "
 "the tunnel. Usually the peer's tunnel IP addresses and the networks the peer "
 "routes through the tunnel."
 msgstr ""
 
-msgid "Required. Public key of peer."
+msgid ""
+"Requires the 'full' version of wpad/hostapd and support from the wifi driver "
+"<br />(as of Feb 2017: ath9k and ath10k, in LEDE also mwlwifi and mt76)"
 msgstr ""
 
 msgid ""
@@ -2705,9 +2769,6 @@ msgstr "傳送LCP呼叫請求在這個給予的秒數間隔內, 僅影響關聯
 msgid "Separate Clients"
 msgstr "分隔用戶端"
 
-msgid "Separate WDS"
-msgstr "分隔WDS中繼"
-
 msgid "Server Settings"
 msgstr "伺服器設定值"
 
@@ -2868,9 +2929,6 @@ msgstr "靜態租約"
 msgid "Static Routes"
 msgstr "靜態路由"
 
-msgid "Static WDS"
-msgstr "靜態WDS"
-
 msgid "Static address"
 msgstr "靜態位址"
 
@@ -3266,9 +3324,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "渦輪爆衝模式"
-
 msgid "Tx-Power"
 msgstr "傳送-功率"
 
@@ -3287,6 +3342,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB設備"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "設備通用唯一識別碼UUID"
 
@@ -3393,6 +3451,11 @@ msgstr "已使用"
 msgid "Used Key Slot"
 msgstr "已使用的關鍵插槽"
 
+msgid ""
+"Used for two different purposes: RADIUS NAS ID and 802.11r R0KH-ID. Not "
+"needed with normal WPA(2)-PSK."
+msgstr ""
+
 msgid "User certificate (PEM encoded)"
 msgstr ""
 
@@ -3545,9 +3608,6 @@ msgstr "寫入已接收的DNS請求到系統日誌中"
 msgid "Write system log to file"
 msgstr ""
 
-msgid "XR Support"
-msgstr "支援XR無線陣列"
-
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
 "after a device reboot.<br /><strong>Warning: If you disable essential init "
@@ -3557,8 +3617,8 @@ msgstr ""
 "告: 假如你關閉必要的初始化腳本像\"網路\", 你的設備將可能無法存取!</strong>"
 
 msgid ""
-"You must enable Java Script in your browser or LuCI will not work properly."
-msgstr "在瀏覽器你必須啟用Java Script否則LuCI無法正常運作."
+"You must enable JavaScript in your browser or LuCI will not work properly."
+msgstr "在瀏覽器你必須啟用JavaScript否則LuCI無法正常運作."
 
 msgid ""
 "Your Internet Explorer is too old to display this page correctly. Please "
@@ -3648,6 +3708,9 @@ msgstr "本地<abbr title=\"Domain Name System\">DNS</abbr> 檔案"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3702,6 +3765,9 @@ msgstr ""
 msgid "tagged"
 msgstr "標籤"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "未知"
 
@@ -3723,6 +3789,54 @@ msgstr "是的"
 msgid "« Back"
 msgstr "« 倒退"
 
+#~ msgid "AR Support"
+#~ msgstr "AR支援"
+
+#~ msgid "Atheros 802.11%s Wireless Controller"
+#~ msgstr "Atheros 802.11%s 無線控制器"
+
+#~ msgid "Background Scan"
+#~ msgstr "背景搜尋"
+
+#~ msgid "Compression"
+#~ msgstr "壓縮"
+
+#~ msgid "Disable HW-Beacon timer"
+#~ msgstr "關閉硬體燈號計時器"
+
+#~ msgid "Do not send probe responses"
+#~ msgstr "不傳送探測回應"
+
+#~ msgid "Fast Frames"
+#~ msgstr "快速迅框群"
+
+#~ msgid "Maximum Rate"
+#~ msgstr "最快速度"
+
+#~ msgid "Minimum Rate"
+#~ msgstr "最低速度"
+
+#~ msgid "Multicast Rate"
+#~ msgstr "多點群播速度"
+
+#~ msgid "Outdoor Channels"
+#~ msgstr "室外通道"
+
+#~ msgid "Regulatory Domain"
+#~ msgstr "監管網域"
+
+#~ msgid "Separate WDS"
+#~ msgstr "分隔WDS中繼"
+
+#~ msgid "Static WDS"
+#~ msgstr "靜態WDS"
+
+#~ msgid "Turbo Mode"
+#~ msgstr "渦輪爆衝模式"
+
+#~ msgid "XR Support"
+#~ msgstr "支援XR無線陣列"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "取消選取將會另外建立一個新網路,而不會覆蓋目前的網路設定"
 
index 3b5f3eb..2cb2108 100644 (file)
@@ -238,6 +238,7 @@ function iface_status(ifaces)
                                ipaddrs    = net:ipaddrs(),
                                ip6addrs   = net:ip6addrs(),
                                dnsaddrs   = net:dnsaddrs(),
+                               ip6prefix  = net:ip6prefix(),
                                name       = device:shortname(),
                                type       = device:type(),
                                ifname     = device:name(),
index 2dff4dd..216162f 100644 (file)
@@ -42,6 +42,9 @@ end
 
 -- wireless toggle was requested, commit and reload page
 function m.parse(map)
+       local new_cc = m:formvalue("cbid.wireless.%s.country" % wdev:name())
+       local old_cc = m:get(wdev:name(), "country")
+
        if m:formvalue("cbid.wireless.%s.__toggle" % wdev:name()) then
                if wdev:get("disabled") == "1" or wnet:get("disabled") == "1" then
                        wnet:set("disabled", nil)
@@ -56,7 +59,14 @@ function m.parse(map)
                luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless", arg[1]))
                return
        end
+
        Map.parse(map)
+
+       if m:get(wdev:name(), "type") == "mac80211" and new_cc and new_cc ~= old_cc then
+               luci.sys.call("iw reg set %q" % new_cc)
+               luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless", arg[1]))
+               return
+       end
 end
 
 m.title = luci.util.pcdata(wnet:get_i18n())
@@ -94,7 +104,7 @@ local function txpower_current(pwr, list)
                        end
                end
        end
-       return (list[#list] and list[#list].driver_dbm) or pwr or 0
+       return pwr or ""
 end
 
 local iw = luci.sys.wifi.getiwinfo(arg[1])
@@ -191,7 +201,7 @@ end
 ------------------- MAC80211 Device ------------------
 
 if hwtype == "mac80211" then
-       if #tx_power_list > 1 then
+       if #tx_power_list > 0 then
                tp = s:taboption("general", ListValue,
                        "txpower", translate("Transmit Power"), "dBm")
                tp.rmempty = true
@@ -200,6 +210,7 @@ if hwtype == "mac80211" then
                        return txpower_current(Value.cfgvalue(...), tx_power_list)
                end
 
+               tp:value("", translate("auto"))
                for _, p in ipairs(tx_power_list) do
                        tp:value(p.driver_dbm, "%i dBm (%i mW)"
                                %{ p.display_dbm, p.display_mw })
@@ -237,63 +248,6 @@ if hwtype == "mac80211" then
 end
 
 
-------------------- Madwifi Device ------------------
-
-if hwtype == "atheros" then
-       tp = s:taboption("general",
-               (#tx_power_list > 0) and ListValue or Value,
-               "txpower", translate("Transmit Power"), "dBm")
-
-       tp.rmempty = true
-       tp.default = tx_power_cur
-
-       function tp.cfgvalue(...)
-               return txpower_current(Value.cfgvalue(...), tx_power_list)
-       end
-
-       for _, p in ipairs(tx_power_list) do
-               tp:value(p.driver_dbm, "%i dBm (%i mW)"
-                       %{ p.display_dbm, p.display_mw })
-       end
-
-       s:taboption("advanced", Flag, "diversity", translate("Diversity")).rmempty = false
-
-       if not nsantenna then
-               ant1 = s:taboption("advanced", ListValue, "txantenna", translate("Transmitter Antenna"))
-               ant1.widget = "radio"
-               ant1.orientation = "horizontal"
-               ant1:depends("diversity", "")
-               ant1:value("0", translate("auto"))
-               ant1:value("1", translate("Antenna 1"))
-               ant1:value("2", translate("Antenna 2"))
-
-               ant2 = s:taboption("advanced", ListValue, "rxantenna", translate("Receiver Antenna"))
-               ant2.widget = "radio"
-               ant2.orientation = "horizontal"
-               ant2:depends("diversity", "")
-               ant2:value("0", translate("auto"))
-               ant2:value("1", translate("Antenna 1"))
-               ant2:value("2", translate("Antenna 2"))
-
-       else -- NanoFoo
-               local ant = s:taboption("advanced", ListValue, "antenna", translate("Transmitter Antenna"))
-               ant:value("auto")
-               ant:value("vertical")
-               ant:value("horizontal")
-               ant:value("external")
-       end
-
-       s:taboption("advanced", Value, "distance", translate("Distance Optimization"),
-               translate("Distance to farthest network member in meters."))
-       s:taboption("advanced", Value, "regdomain", translate("Regulatory Domain"))
-       s:taboption("advanced", Value, "country", translate("Country Code"))
-       s:taboption("advanced", Flag, "outdoor", translate("Outdoor Channels"))
-
-       --s:option(Flag, "nosbeacon", translate("Disable HW-Beacon timer"))
-end
-
-
-
 ------------------- Broadcom Device ------------------
 
 if hwtype == "broadcom" then
@@ -308,6 +262,7 @@ if hwtype == "broadcom" then
                return txpower_current(Value.cfgvalue(...), tx_power_list)
        end
 
+       tp:value("", translate("auto"))
        for _, p in ipairs(tx_power_list) do
                tp:value(p.driver_dbm, "%i dBm (%i mW)"
                        %{ p.display_dbm, p.display_mw })
@@ -511,100 +466,6 @@ if hwtype == "mac80211" then
 end
 
 
-
--------------------- Madwifi Interface ----------------------
-
-if hwtype == "atheros" then
-       mode:value("ahdemo", translate("Pseudo Ad-Hoc (ahdemo)"))
-       mode:value("monitor", translate("Monitor"))
-       mode:value("ap-wds", "%s (%s)" % {translate("Access Point"), translate("WDS")})
-       mode:value("sta-wds", "%s (%s)" % {translate("Client"), translate("WDS")})
-       mode:value("wds", translate("Static WDS"))
-
-       function mode.write(self, section, value)
-               if value == "ap-wds" then
-                       ListValue.write(self, section, "ap")
-                       m.uci:set("wireless", section, "wds", 1)
-               elseif value == "sta-wds" then
-                       ListValue.write(self, section, "sta")
-                       m.uci:set("wireless", section, "wds", 1)
-               else
-                       ListValue.write(self, section, value)
-                       m.uci:delete("wireless", section, "wds")
-               end
-       end
-
-       function mode.cfgvalue(self, section)
-               local mode = ListValue.cfgvalue(self, section)
-               local wds  = m.uci:get("wireless", section, "wds") == "1"
-
-               if mode == "ap" and wds then
-                       return "ap-wds"
-               elseif mode == "sta" and wds then
-                       return "sta-wds"
-               else
-                       return mode
-               end
-       end
-
-       bssid:depends({mode="adhoc"})
-       bssid:depends({mode="ahdemo"})
-       bssid:depends({mode="wds"})
-
-       wdssep = s:taboption("advanced", Flag, "wdssep", translate("Separate WDS"))
-       wdssep:depends({mode="ap-wds"})
-
-       s:taboption("advanced", Flag, "doth", "802.11h")
-       hidden = s:taboption("general", Flag, "hidden", translate("Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"))
-       hidden:depends({mode="ap"})
-       hidden:depends({mode="adhoc"})
-       hidden:depends({mode="ap-wds"})
-       hidden:depends({mode="sta-wds"})
-       isolate = s:taboption("advanced", Flag, "isolate", translate("Separate Clients"),
-        translate("Prevents client-to-client communication"))
-       isolate:depends({mode="ap"})
-       s:taboption("advanced", Flag, "bgscan", translate("Background Scan"))
-
-       mp = s:taboption("macfilter", ListValue, "macpolicy", translate("MAC-Address Filter"))
-       mp:value("", translate("disable"))
-       mp:value("allow", translate("Allow listed only"))
-       mp:value("deny", translate("Allow all except listed"))
-
-       ml = s:taboption("macfilter", DynamicList, "maclist", translate("MAC-List"))
-       ml.datatype = "macaddr"
-       ml:depends({macpolicy="allow"})
-       ml:depends({macpolicy="deny"})
-       nt.mac_hints(function(mac, name) ml:value(mac, "%s (%s)" %{ mac, name }) end)
-
-       s:taboption("advanced", Value, "rate", translate("Transmission Rate"))
-       s:taboption("advanced", Value, "mcast_rate", translate("Multicast Rate"))
-       s:taboption("advanced", Value, "frag", translate("Fragmentation Threshold"))
-       s:taboption("advanced", Value, "rts", translate("RTS/CTS Threshold"))
-       s:taboption("advanced", Value, "minrate", translate("Minimum Rate"))
-       s:taboption("advanced", Value, "maxrate", translate("Maximum Rate"))
-       s:taboption("advanced", Flag, "compression", translate("Compression"))
-
-       s:taboption("advanced", Flag, "bursting", translate("Frame Bursting"))
-       s:taboption("advanced", Flag, "turbo", translate("Turbo Mode"))
-       s:taboption("advanced", Flag, "ff", translate("Fast Frames"))
-
-       s:taboption("advanced", Flag, "wmm", translate("WMM Mode"))
-       s:taboption("advanced", Flag, "xr", translate("XR Support"))
-       s:taboption("advanced", Flag, "ar", translate("AR Support"))
-
-       local swm = s:taboption("advanced", Flag, "sw_merge", translate("Disable HW-Beacon timer"))
-       swm:depends({mode="adhoc"})
-
-       local nos = s:taboption("advanced", Flag, "nosbeacon", translate("Disable HW-Beacon timer"))
-       nos:depends({mode="sta"})
-       nos:depends({mode="sta-wds"})
-
-       local probereq = s:taboption("advanced", Flag, "probereq", translate("Do not send probe responses"))
-       probereq.enabled  = "0"
-       probereq.disabled = "1"
-end
-
-
 -------------------- Broadcom Interface ----------------------
 
 if hwtype == "broadcom" then
@@ -725,7 +586,7 @@ encr:value("none", "No Encryption")
 encr:value("wep-open",   translate("WEP Open System"), {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"}, {mode="ahdemo"}, {mode="wds"})
 encr:value("wep-shared", translate("WEP Shared Key"),  {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}, {mode="adhoc"}, {mode="ahdemo"}, {mode="wds"})
 
-if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
+if hwtype == "mac80211" or hwtype == "prism2" then
        local supplicant = fs.access("/usr/sbin/wpa_supplicant")
        local hostapd = fs.access("/usr/sbin/hostapd")
 
@@ -886,14 +747,92 @@ for slot=1,4 do
 end
 
 
-if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
-       nasid = s:taboption("encryption", Value, "nasid", translate("NAS ID"))
+if hwtype == "mac80211" or hwtype == "prism2" then
+
+       -- Probe 802.11r support (and EAP support as a proxy for Openwrt)
+       local has_80211r = (os.execute("hostapd -v11r 2>/dev/null || hostapd -veap 2>/dev/null") == 0)
+
+       ieee80211r = s:taboption("encryption", Flag, "ieee80211r",
+               translate("802.11r Fast Transition"),
+               translate("Enables fast roaming among access points that belong " ..
+                       "to the same Mobility Domain"))
+       ieee80211r:depends({mode="ap", encryption="wpa"})
+       ieee80211r:depends({mode="ap", encryption="wpa2"})
+       ieee80211r:depends({mode="ap-wds", encryption="wpa"})
+       ieee80211r:depends({mode="ap-wds", encryption="wpa2"})
+       if has_80211r then
+               ieee80211r:depends({mode="ap", encryption="psk"})
+               ieee80211r:depends({mode="ap", encryption="psk2"})
+               ieee80211r:depends({mode="ap", encryption="psk-mixed"})
+       end
+       ieee80211r.rmempty = true
+
+       nasid = s:taboption("encryption", Value, "nasid", translate("NAS ID"),
+               translate("Used for two different purposes: RADIUS NAS ID and " ..
+                       "802.11r R0KH-ID. Not needed with normal WPA(2)-PSK."))
        nasid:depends({mode="ap", encryption="wpa"})
        nasid:depends({mode="ap", encryption="wpa2"})
        nasid:depends({mode="ap-wds", encryption="wpa"})
        nasid:depends({mode="ap-wds", encryption="wpa2"})
+       nasid:depends({ieee80211r="1"})
        nasid.rmempty = true
 
+       mobility_domain = s:taboption("encryption", Value, "mobility_domain",
+                       translate("Mobility Domain"),
+                       translate("4-character hexadecimal ID"))
+       mobility_domain:depends({ieee80211r="1"})
+       mobility_domain.placeholder = "4f57"
+       mobility_domain.datatype = "and(hexstring,rangelength(4,4))"
+       mobility_domain.rmempty = true
+
+       r0_key_lifetime = s:taboption("encryption", Value, "r0_key_lifetime",
+                       translate("R0 Key Lifetime"), translate("minutes"))
+       r0_key_lifetime:depends({ieee80211r="1"})
+       r0_key_lifetime.placeholder = "10000"
+       r0_key_lifetime.datatype = "uinteger"
+       r0_key_lifetime.rmempty = true
+
+       r1_key_holder = s:taboption("encryption", Value, "r1_key_holder",
+                       translate("R1 Key Holder"),
+                       translate("6-octet identifier as a hex string - no colons"))
+       r1_key_holder:depends({ieee80211r="1"})
+       r1_key_holder.placeholder = "00004f577274"
+       r1_key_holder.datatype = "and(hexstring,rangelength(12,12))"
+       r1_key_holder.rmempty = true
+
+       reassociation_deadline = s:taboption("encryption", Value, "reassociation_deadline",
+               translate("Reassociation Deadline"),
+               translate("time units (TUs / 1.024 ms) [1000-65535]"))
+       reassociation_deadline:depends({ieee80211r="1"})
+       reassociation_deadline.placeholder = "1000"
+       reassociation_deadline.datatype = "range(1000,65535)"
+       reassociation_deadline.rmempty = true
+
+       pmk_r1_push = s:taboption("encryption", Flag, "pmk_r1_push", translate("PMK R1 Push"))
+       pmk_r1_push:depends({ieee80211r="1"})
+       pmk_r1_push.placeholder = "0"
+       pmk_r1_push.rmempty = true
+
+       r0kh = s:taboption("encryption", DynamicList, "r0kh", translate("External R0 Key Holder List"),
+               translate("List of R0KHs in the same Mobility Domain. " ..
+                       "<br />Format: MAC-address,NAS-Identifier,128-bit key as hex string. " ..
+                       "<br />This list is used to map R0KH-ID (NAS Identifier) to a destination " ..
+                       "MAC address when requesting PMK-R1 key from the R0KH that the STA " ..
+                       "used during the Initial Mobility Domain Association."))
+
+       r0kh:depends({ieee80211r="1"})
+       r0kh.rmempty = true
+
+       r1kh = s:taboption("encryption", DynamicList, "r1kh", translate("External R1 Key Holder List"),
+               translate ("List of R1KHs in the same Mobility Domain. "..
+                       "<br />Format: MAC-address,R1KH-ID as 6 octets with colons,128-bit key as hex string. "..
+                       "<br />This list is used to map R1KH-ID to a destination MAC address " ..
+                       "when sending PMK-R1 key from the R0KH. This is also the " ..
+                       "list of authorized R1KHs in the MD that can request PMK-R1 keys."))
+       r1kh:depends({ieee80211r="1"})
+       r1kh.rmempty = true
+       -- End of 802.11r options
+
        eaptype = s:taboption("encryption", ListValue, "eap_type", translate("EAP-Method"))
        eaptype:value("tls",  "TLS")
        eaptype:value("ttls", "TTLS")
@@ -1032,7 +971,48 @@ if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
        password.password = true
 end
 
-if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
+-- ieee802.11w options
+if hwtype == "mac80211" then
+   local has_80211w = (os.execute("hostapd -v11w 2>/dev/null || hostapd -veap 2>/dev/null") == 0)
+   if has_80211w then
+       ieee80211w = s:taboption("encryption", ListValue, "ieee80211w",
+               translate("802.11w Management Frame Protection"),
+               translate("Requires the 'full' version of wpad/hostapd " ..
+                       "and support from the wifi driver <br />(as of Feb 2017: " ..
+                       "ath9k and ath10k, in LEDE also mwlwifi and mt76)"))
+       ieee80211w.default = ""
+       ieee80211w.rmempty = true
+       ieee80211w:value("", translate("Disabled (default)"))
+       ieee80211w:value("1", translate("Optional"))
+       ieee80211w:value("2", translate("Required"))
+       ieee80211w:depends({mode="ap", encryption="wpa2"})
+       ieee80211w:depends({mode="ap-wds", encryption="wpa2"})
+       ieee80211w:depends({mode="ap", encryption="psk2"})
+       ieee80211w:depends({mode="ap", encryption="psk-mixed"})
+       ieee80211w:depends({mode="ap-wds", encryption="psk2"})
+       ieee80211w:depends({mode="ap-wds", encryption="psk-mixed"})
+
+       max_timeout = s:taboption("encryption", Value, "ieee80211w_max_timeout",
+                       translate("802.11w maximum timeout"),
+                       translate("802.11w Association SA Query maximum timeout"))
+       max_timeout:depends({ieee80211w="1"})
+       max_timeout:depends({ieee80211w="2"})
+       max_timeout.datatype = "uinteger"
+       max_timeout.placeholder = "1000"
+       max_timeout.rmempty = true
+
+       retry_timeout = s:taboption("encryption", Value, "ieee80211w_retry_timeout",
+                       translate("802.11w retry timeout"),
+                       translate("802.11w Association SA Query retry timeout"))
+       retry_timeout:depends({ieee80211w="1"})
+       retry_timeout:depends({ieee80211w="2"})
+       retry_timeout.datatype = "uinteger"
+       retry_timeout.placeholder = "201"
+       retry_timeout.rmempty = true
+   end
+end
+
+if hwtype == "mac80211" or hwtype == "prism2" then
        local wpasupplicant = fs.access("/usr/sbin/wpa_supplicant")
        local hostcli = fs.access("/usr/sbin/hostapd_cli")
        if hostcli and wpasupplicant then
index 1e47564..493a735 100644 (file)
@@ -21,7 +21,7 @@ function s.cfgsections()
        return { "_pass" }
 end
 
-function m.on_commit(map)
+function m.parse(map)
        local v1 = pw1:formvalue("_pass")
        local v2 = pw2:formvalue("_pass")
 
@@ -36,6 +36,8 @@ function m.on_commit(map)
                        m.message = translate("Given password confirmation did not match, password not changed!")
                end
        end
+
+       Map.parse(map)
 end
 
 
index 8d9bcb1..74e2f1a 100644 (file)
@@ -7,10 +7,11 @@ local sysfs_path = "/sys/class/leds/"
 local leds = {}
 
 local fs   = require "nixio.fs"
-local util = require "nixio.util"
+local nu   = require "nixio.util"
+local util = require "luci.util"
 
 if fs.access(sysfs_path) then
-       leds = util.consume((fs.dir(sysfs_path)))
+       leds = nu.consume((fs.dir(sysfs_path)))
 end
 
 if #leds == 0 then
@@ -109,6 +110,33 @@ function usbdev.remove(self, section)
        end
 end
 
+
+usbport = s:option(MultiValue, "port", translate("USB Ports"))
+usbport:depends("trigger", "usbport")
+usbport.rmempty = true
+usbport.widget = "checkbox"
+usbport.cast = "table"
+usbport.size = 1
+
+function usbport.valuelist(self, section)
+       local port, ports = nil, {}
+       for port in util.imatch(m.uci:get("system", section, "port")) do
+               local b, n = port:match("^usb(%d+)-port(%d+)$")
+               if not (b and n) then
+                       b, n = port:match("^(%d+)-(%d+)$")
+               end
+               if b and n then
+                       ports[#ports+1] = "usb%u-port%u" %{ tonumber(b), tonumber(n) }
+               end
+       end
+       return ports
+end
+
+function usbport.validate(self, value)
+       return type(value) == "string" and { value } or value
+end
+
+
 for p in nixio.fs.glob("/sys/bus/usb/devices/[0-9]*/manufacturer") do
        local id = p:match("%d+-%d+")
        local mf = nixio.fs.readfile("/sys/bus/usb/devices/" .. id .. "/manufacturer") or "?"
@@ -116,4 +144,12 @@ for p in nixio.fs.glob("/sys/bus/usb/devices/[0-9]*/manufacturer") do
        usbdev:value(id, "%s (%s - %s)" %{ id, mf, pr })
 end
 
+for p in nixio.fs.glob("/sys/bus/usb/devices/*/usb[0-9]*-port[0-9]*") do
+       local bus, port = p:match("usb(%d+)-port(%d+)")
+       if bus and port then
+               usbport:value("usb%u-port%u" %{ tonumber(bus), tonumber(port) },
+                             "Hub %u, Port %u" %{ tonumber(bus), tonumber(port) })
+       end
+end
+
 return m
index 646d931..2512a35 100644 (file)
                                                                        ifc.ip6addrs[i]
                                                                );
                                                }
+                                               
+                                               if (ifc.ip6prefix)
+                                               {
+                                                       html += String.format('<strong><%:IPv6-PD%>:</strong> %s<br />', ifc.ip6prefix);
+                                               }
 
                                                d.innerHTML = html;
                                        }
index 8c3b1ab..b15dd13 100644 (file)
                                                                ifc.ip6addrs[i]
                                                        );
                                        }
+                                       
+                                       if (ifc.ip6prefix)
+                                       {
+                                               html += String.format('<strong><%:IPv6-PD%>:</strong> %s<br />', ifc.ip6prefix);
+                                       }
 
                                        d.innerHTML = html;
                                }
index 9c351d3..4465095 100644 (file)
 
                        return name
 
-               -- madwifi
-               elseif name == "ath" or name == "wifi" then
-                       return translatef("Atheros 802.11%s Wireless Controller", bands)
-
                -- ralink
                elseif name == "ra" then
                        return translatef("RaLink 802.11%s Wireless Controller", bands)
index 0b2e52e..b7ebc41 100644 (file)
                                                {
                                                        var c  = conn[i];
 
-                                                       if (c.src == '127.0.0.1' && c.dst == '127.0.0.1')
+                                                       if ((c.src == '127.0.0.1' && c.dst == '127.0.0.1')
+                                                       || (c.src == '::1' && c.dst == '::1'))
                                                                continue;
 
                                                        var tr = conn_table.rows[0].parentNode.insertRow(-1);
index 8976e30..206f9ef 100644 (file)
 
                if wan6 then
                        rv.wan6 = {
-                               ip6addr = wan6:ip6addr(),
-                               gw6addr = wan6:gw6addr(),
-                               dns     = wan6:dns6addrs(),
-                               uptime  = wan6:uptime(),
-                               ifname  = wan6:ifname(),
-                               link    = wan6:adminlink()
+                               ip6addr   = wan6:ip6addr(),
+                               gw6addr   = wan6:gw6addr(),
+                               dns       = wan6:dns6addrs(),
+                               ip6prefix = wan6:ip6prefix(),
+                               uptime    = wan6:uptime(),
+                               proto     = wan6:proto(),
+                               ifname    = wan6:ifname(),
+                               link      = wan6:adminlink()
                        }
                end
 
                        if (ifc6 && ifc6.ifname && ifc6.proto != 'none')
                        {
                                var s = String.format(
-                                       '<strong><%:Address%>: </strong>%s<br />' +
+                                       '<strong><%:Type%>: </strong>%s%s<br />',
+                                               ifc6.proto, (ifc6.ip6prefix) ? '-pd' : ''
+                               );
+                               
+                               if (!ifc6.ip6prefix)
+                               {
+                                       s += String.format(
+                                               '<strong><%:Address%>: </strong>%s<br />',
+                                               (ifc6.ip6addr) ? ifc6.ip6addr : '::'
+                                       );
+                               }
+                               else
+                               {
+                                       s += String.format(
+                                               '<strong><%:Prefix Delegated%>: </strong>%s<br />',
+                                               ifc6.ip6prefix
+                                       );
+                                       if (ifc6.ip6addr)
+                                       {
+                                               s += String.format(
+                                                       '<strong><%:Address%>: </strong>%s<br />',
+                                                       ifc6.ip6addr
+                                               );
+                                       }
+                               }
+
+                               s += String.format(
                                        '<strong><%:Gateway%>: </strong>%s<br />',
-                                               (ifc6.ip6addr) ? ifc6.ip6addr : '::',
                                                (ifc6.gw6addr) ? ifc6.gw6addr : '::'
                                );
 
index 63668d4..8ddd917 100644 (file)
@@ -521,8 +521,8 @@ 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 "))
+                               if ((strstr(line, "src=127.0.0.1 ") && strstr(line, "dst=127.0.0.1 ")) 
+                               || (strstr(line, "src=::1 ") && strstr(line, "dst=::1 ")))
                                        continue;
 
                                if (sscanf(line, "%*s %*d %s", ifname) || sscanf(line, "%s %*d", ifname))
index 19952cd..ec929f1 100644 (file)
@@ -156,18 +156,6 @@ end
 
 local hwtype = m:get(wifidevs[1], "type")
 
-if hwtype == "atheros" then
-       mode = s:option(ListValue, "hwmode", translate("Mode"))
-       mode.override_values = true
-       mode:value("", "auto")
-       mode:value("11b", "802.11b")
-       mode:value("11g", "802.11g")
-       mode:value("11a", "802.11a")
-       mode:value("11bg", "802.11b+g")
-       mode.rmempty = true
-end
-
-
 ch = s:option(Value, "channel", translate("Channel"))
 for i=1, 14 do
        ch:value(i, i .. " (2.4 GHz)")
@@ -224,7 +212,7 @@ encr.override_values = true
 encr:value("none", "No Encryption")
 encr:value("wep", "WEP")
 
-if hwtype == "atheros" or hwtype == "mac80211" then
+if hwtype == "mac80211" then
        local supplicant = fs.access("/usr/sbin/wpa_supplicant")
        local hostapd    = fs.access("/usr/sbin/hostapd")
 
@@ -288,7 +276,7 @@ port:depends({mode="ap", encryption="wpa2"})
 port.rmempty = true
 
 
-if hwtype == "atheros" or hwtype == "mac80211" then
+if hwtype == "mac80211" then
        nasid = s:option(Value, "nasid", translate("NAS ID"))
        nasid:depends({mode="ap", encryption="wpa"})
        nasid:depends({mode="ap", encryption="wpa2"})
@@ -339,7 +327,7 @@ if hwtype == "atheros" or hwtype == "mac80211" then
 end
 
 
-if hwtype == "atheros" or hwtype == "broadcom" then
+if hwtype == "broadcom" then
        iso = s:option(Flag, "isolate", translate("AP-Isolation"), translate("Prevents Client to Client communication"))
        iso.rmempty = true
        iso:depends("mode", "ap")
@@ -349,7 +337,7 @@ if hwtype == "atheros" or hwtype == "broadcom" then
        hide:depends("mode", "ap")
 end
 
-if hwtype == "mac80211" or hwtype == "atheros" then
+if hwtype == "mac80211" then
        bssid:depends({mode="adhoc"})
 end
 
index ed94a55..0dc70cf 100644 (file)
@@ -8,6 +8,7 @@ include $(TOPDIR)/rules.mk
 
 LUCI_TITLE:=Support for WireGuard VPN
 LUCI_DEPENDS:=+kmod-wireguard +wireguard-tools
+LUCI_PKGARCH:=all
 
 PKG_MAINTAINER:=Dan Luedtke <mail@danrl.com>
 
index e585324..11ef10b 100644 (file)
@@ -19,7 +19,7 @@ private_key = section:taboption(
   translate("Required. Base64-encoded private key for this interface.")
 )
 private_key.password = true
-private_key.datatype = "rangelength(44, 44)"
+private_key.datatype = "and(base64,rangelength(44,44))"
 private_key.optional = false
 
 
@@ -66,8 +66,8 @@ mtu = section:taboption(
   translate("MTU"),
   translate("Optional. Maximum Transmission Unit of tunnel interface.")
 )
-mtu.datatype = "range(1280,1423)"
-mtu.placeholder = "1423"
+mtu.datatype = "range(1280,1420)"
+mtu.placeholder = "1420"
 mtu.optional = true
 
 
@@ -76,14 +76,27 @@ preshared_key = section:taboption(
   Value,
   "preshared_key",
   translate("Preshared Key"),
-  translate("Optional. Adds in an additional layer of symmetric-key " ..
+  translate("Optional. Base64-encoded preshared key. " ..
+            "Adds in an additional layer of symmetric-key " ..
             "cryptography for post-quantum resistance.")
 )
 preshared_key.password = true
-preshared_key.datatype = "rangelength(44, 44)"
+preshared_key.datatype = "and(base64,rangelength(44,44))"
 preshared_key.optional = true
 
 
+fwmark = section:taboption(
+  "advanced",
+  Value,
+  "fwmark",
+  translate("Firewall Mark"),
+  translate("Optional. 32-bit mark for outgoing encrypted packets. " ..
+            "Enter value in hex, starting with <code>0x</code>.")
+)
+fwmark.datatype = "hex(4)"
+fwmark.optional = true
+
+
 -- peers -----------------------------------------------------------------------
 
 peers = map:section(
@@ -102,9 +115,9 @@ public_key = peers:option(
   Value,
   "public_key",
   translate("Public Key"),
-  translate("Required. Public key of peer.")
+  translate("Required. Base64-encoded public key of peer.")
 )
-public_key.datatype = "rangelength(44, 44)"
+public_key.datatype = "and(base64,rangelength(44,44))"
 public_key.optional = false
 
 
@@ -154,5 +167,5 @@ persistent_keepalive = peers:option(
   translate("Optional. Seconds between keep alive messages. " ..
             "Default is 0 (disabled). Recommended value if " ..
             "this device is behind a NAT is 25."))
-persistent_keepalive.datatype = "range(0, 65535)"
+persistent_keepalive.datatype = "range(0,65535)"
 persistent_keepalive.placeholder = "0"
index 6f09bfc..78b98e0 100644 (file)
                        </div>
                <%- end -%>
 
+               <noscript>
+                       <div class="alert-message warning">
+                               <strong><%:JavaScript required!%></strong><br />
+                               <%:You must enable JavaScript in your browser or LuCI will not work properly.%>
+                       </div>
+               </noscript>
+
                <div id="maincontent" class="container">
                        <% if category then render_tabmenu(category, cattree) end %>
index 20a41be..b453409 100644 (file)
@@ -216,8 +216,8 @@ if tree.nodes[category] and tree.nodes[category].ucidata then
 <% if category ~= "freifunk" and category ~= "splash" then %>
 <noscript>
        <div class="errorbox">
-               <strong><%:Java Script required!%></strong><br />
-               <%:You must enable Java Script in your browser or LuCI will not work properly.%>
+               <strong><%:JavaScript required!%></strong><br />
+               <%:You must enable JavaScript in your browser or LuCI will not work properly.%>
        </div>
 </noscript>
 <% end %>
index 505e64b..ae348f3 100644 (file)
        <div id="maincontent">
                <noscript>
                        <div class="errorbox">
-                               <strong><%:Java Script required!%></strong><br />
-                               <%:You must enable Java Script in your browser or LuCI will not work properly.%>
+                               <strong><%:JavaScript required!%></strong><br />
+                               <%:You must enable JavaScript in your browser or LuCI will not work properly.%>
                        </div>
                </noscript>