Merge pull request #1154 from stangri/luci-app-simple-adblock
authorHannu Nyman <hannu.nyman@iki.fi>
Mon, 8 May 2017 06:55:35 +0000 (09:55 +0300)
committerGitHub <noreply@github.com>
Mon, 8 May 2017 06:55:35 +0000 (09:55 +0300)
luci-app-simple-adblock: pt/pt-br translations.

472 files changed:
applications/luci-app-adblock/Makefile
applications/luci-app-adblock/luasrc/controller/adblock.lua
applications/luci-app-adblock/luasrc/model/cbi/adblock.lua [deleted file]
applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua [new file with mode: 0644]
applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua [new file with mode: 0644]
applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua [new file with mode: 0644]
applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua [new file with mode: 0644]
applications/luci-app-adblock/luasrc/view/adblock/config_css.htm [new file with mode: 0644]
applications/luci-app-adblock/luasrc/view/adblock/logread.htm [new file with mode: 0644]
applications/luci-app-adblock/luasrc/view/adblock/query.htm [new file with mode: 0644]
applications/luci-app-adblock/luasrc/view/adblock/runtime.htm [new file with mode: 0644]
applications/luci-app-adblock/po/ja/adblock.po [new file with mode: 0644]
applications/luci-app-adblock/po/pt-br/adblock.po [new file with mode: 0644]
applications/luci-app-adblock/po/sv/adblock.po
applications/luci-app-adblock/po/templates/adblock.pot
applications/luci-app-adblock/po/zh-cn/adblock.po
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-clamav/po/ja/clamav.po [new file with mode: 0644]
applications/luci-app-clamav/po/templates/clamav.pot [new file with mode: 0644]
applications/luci-app-clamav/po/zh-cn/clamav.po [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/Makefile
applications/luci-app-ddns/luasrc/controller/ddns.lua
applications/luci-app-ddns/luasrc/view/ddns/detail_lvalue.htm
applications/luci-app-ddns/luasrc/view/ddns/overview_enabled.htm
applications/luci-app-ddns/po/pt-br/ddns.po
applications/luci-app-diag-devinfo/Makefile
applications/luci-app-dynapoint/Makefile [new file with mode: 0644]
applications/luci-app-dynapoint/luasrc/controller/dynapoint.lua [new file with mode: 0644]
applications/luci-app-dynapoint/luasrc/model/cbi/dynapoint.lua [new file with mode: 0644]
applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_checkbox.htm [new file with mode: 0644]
applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_color.htm [new file with mode: 0644]
applications/luci-app-dynapoint/po/de/dynapoint.po [new file with mode: 0644]
applications/luci-app-dynapoint/po/ja/dynapoint.po [new file with mode: 0644]
applications/luci-app-dynapoint/po/pt-br/dynapoint.po [new file with mode: 0644]
applications/luci-app-dynapoint/po/templates/dynapoint.pot [new file with mode: 0644]
applications/luci-app-dynapoint/root/etc/uci-defaults/40_luci-dynapoint [new file with mode: 0644]
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/custom.lua
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/ca/firewall.po
applications/luci-app-firewall/po/cs/firewall.po
applications/luci-app-firewall/po/de/firewall.po
applications/luci-app-firewall/po/el/firewall.po
applications/luci-app-firewall/po/en/firewall.po
applications/luci-app-firewall/po/es/firewall.po
applications/luci-app-firewall/po/fr/firewall.po
applications/luci-app-firewall/po/he/firewall.po
applications/luci-app-firewall/po/hu/firewall.po
applications/luci-app-firewall/po/it/firewall.po
applications/luci-app-firewall/po/ja/firewall.po
applications/luci-app-firewall/po/ko/firewall.po [new file with mode: 0644]
applications/luci-app-firewall/po/ms/firewall.po
applications/luci-app-firewall/po/no/firewall.po
applications/luci-app-firewall/po/pl/firewall.po
applications/luci-app-firewall/po/pt-br/firewall.po
applications/luci-app-firewall/po/pt/firewall.po
applications/luci-app-firewall/po/ro/firewall.po
applications/luci-app-firewall/po/ru/firewall.po
applications/luci-app-firewall/po/sk/firewall.po
applications/luci-app-firewall/po/sv/firewall.po
applications/luci-app-firewall/po/templates/firewall.pot
applications/luci-app-firewall/po/tr/firewall.po
applications/luci-app-firewall/po/uk/firewall.po
applications/luci-app-firewall/po/vi/firewall.po
applications/luci-app-firewall/po/zh-cn/firewall.po
applications/luci-app-firewall/po/zh-tw/firewall.po
applications/luci-app-fwknopd/Makefile
applications/luci-app-fwknopd/luasrc/model/cbi/fwknopd.lua
applications/luci-app-fwknopd/luasrc/view/fwknopd-qr.htm
applications/luci-app-fwknopd/po/en/fwknopd.po
applications/luci-app-fwknopd/po/pt-br/fwknopd.po [new file with mode: 0644]
applications/luci-app-fwknopd/po/templates/fwknopd.pot
applications/luci-app-fwknopd/root/etc/uci-defaults/40_luci-fwknopd
applications/luci-app-fwknopd/root/usr/sbin/gen-qr.sh
applications/luci-app-hd-idle/luasrc/controller/hd_idle.lua
applications/luci-app-hd-idle/luasrc/model/cbi/hd_idle.lua
applications/luci-app-hd-idle/po/ca/hd_idle.po
applications/luci-app-hd-idle/po/cs/hd_idle.po
applications/luci-app-hd-idle/po/de/hd_idle.po
applications/luci-app-hd-idle/po/el/hd_idle.po
applications/luci-app-hd-idle/po/en/hd_idle.po
applications/luci-app-hd-idle/po/es/hd_idle.po
applications/luci-app-hd-idle/po/fr/hd_idle.po
applications/luci-app-hd-idle/po/he/hd_idle.po
applications/luci-app-hd-idle/po/hu/hd_idle.po
applications/luci-app-hd-idle/po/it/hd_idle.po
applications/luci-app-hd-idle/po/ja/hd_idle.po
applications/luci-app-hd-idle/po/ms/hd_idle.po
applications/luci-app-hd-idle/po/no/hd_idle.po
applications/luci-app-hd-idle/po/pl/hd_idle.po
applications/luci-app-hd-idle/po/pt-br/hd_idle.po
applications/luci-app-hd-idle/po/pt/hd_idle.po
applications/luci-app-hd-idle/po/ro/hd_idle.po
applications/luci-app-hd-idle/po/ru/hd_idle.po
applications/luci-app-hd-idle/po/sk/hd_idle.po
applications/luci-app-hd-idle/po/sv/hd_idle.po
applications/luci-app-hd-idle/po/templates/hd_idle.pot
applications/luci-app-hd-idle/po/tr/hd_idle.po
applications/luci-app-hd-idle/po/uk/hd_idle.po
applications/luci-app-hd-idle/po/vi/hd_idle.po
applications/luci-app-hd-idle/po/zh-cn/hd_idle.po
applications/luci-app-hd-idle/po/zh-tw/hd_idle.po
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/ja/mjpg-streamer.po [new file with mode: 0644]
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/po/ja/mwan3.po [new file with mode: 0644]
applications/luci-app-mwan3/po/templates/mwan3.pot [new file with mode: 0644]
applications/luci-app-mwan3/po/zh-cn/mwan3.po [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/luasrc/controller/olsr.lua
applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm
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-openvpn/po/zh-cn/openvpn.po
applications/luci-app-p910nd/po/ja/p910nd.po
applications/luci-app-privoxy/po/pt-br/privoxy.po [new file with mode: 0644]
applications/luci-app-privoxy/po/zh-cn/privoxy.po
applications/luci-app-qos/po/ja/qos.po
applications/luci-app-radicale/po/pt-br/radicale.po [new file with mode: 0644]
applications/luci-app-samba/luasrc/model/cbi/samba.lua
applications/luci-app-samba/po/ca/samba.po
applications/luci-app-samba/po/cs/samba.po
applications/luci-app-samba/po/de/samba.po
applications/luci-app-samba/po/el/samba.po
applications/luci-app-samba/po/en/samba.po
applications/luci-app-samba/po/es/samba.po
applications/luci-app-samba/po/fr/samba.po
applications/luci-app-samba/po/he/samba.po
applications/luci-app-samba/po/hu/samba.po
applications/luci-app-samba/po/it/samba.po
applications/luci-app-samba/po/ja/samba.po
applications/luci-app-samba/po/ms/samba.po
applications/luci-app-samba/po/no/samba.po
applications/luci-app-samba/po/pl/samba.po
applications/luci-app-samba/po/pt-br/samba.po
applications/luci-app-samba/po/pt/samba.po
applications/luci-app-samba/po/ro/samba.po
applications/luci-app-samba/po/ru/samba.po
applications/luci-app-samba/po/sk/samba.po
applications/luci-app-samba/po/sv/samba.po
applications/luci-app-samba/po/templates/samba.pot
applications/luci-app-samba/po/tr/samba.po
applications/luci-app-samba/po/uk/samba.po
applications/luci-app-samba/po/vi/samba.po
applications/luci-app-samba/po/zh-cn/samba.po
applications/luci-app-samba/po/zh-tw/samba.po
applications/luci-app-shadowsocks-libev/po/pt-br/shadowsocks-libev.po [new file with mode: 0644]
applications/luci-app-shairplay/po/ja/shairplay.po [new file with mode: 0644]
applications/luci-app-shairplay/po/pt-br/shairplay.po [new file with mode: 0644]
applications/luci-app-shairplay/po/templates/shairplay.pot [new file with mode: 0644]
applications/luci-app-simple-adblock/po/ja/simple-adblock.po [new file with mode: 0644]
applications/luci-app-splash/Makefile
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/Makefile
applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/contextswitch.lua [new file with mode: 0644]
applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/rrdtool.lua
applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/contextswitch.lua [new file with mode: 0644]
applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/df.lua
applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/processes.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/rrdtool.po
applications/luci-app-statistics/po/zh-cn/statistics.po
applications/luci-app-statistics/po/zh-tw/statistics.po
applications/luci-app-statistics/root/etc/config/luci_statistics
applications/luci-app-statistics/root/usr/bin/stat-genconfig
applications/luci-app-travelmate/Makefile
applications/luci-app-travelmate/luasrc/controller/travelmate.lua
applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua [deleted file]
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua [new file with mode: 0644]
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua [new file with mode: 0644]
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua [new file with mode: 0644]
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua [new file with mode: 0644]
applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua [new file with mode: 0644]
applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm [new file with mode: 0644]
applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm [new file with mode: 0644]
applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm [new file with mode: 0644]
applications/luci-app-travelmate/po/ja/travelmate.po [new file with mode: 0644]
applications/luci-app-travelmate/po/pt-br/travelmate.po [new file with mode: 0644]
applications/luci-app-travelmate/po/templates/travelmate.pot
applications/luci-app-uhttpd/Makefile
applications/luci-app-uhttpd/po/ja/uhttpd.po [new file with mode: 0644]
applications/luci-app-uhttpd/po/pt-br/uhttpd.po [new file with mode: 0644]
applications/luci-app-uhttpd/po/templates/uhttpd.pot [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/po/ja/upnp.po
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/luasrc/controller/wifischedule/wifi_schedule.lua
applications/luci-app-wifischedule/luasrc/model/cbi/wifischedule/wifi_schedule.lua
applications/luci-app-wifischedule/po/ja/wifischedule.po [new file with mode: 0644]
applications/luci-app-wifischedule/po/pt-br/wifischedule.po [new file with mode: 0644]
applications/luci-app-wifischedule/po/templates/wifischedule.pot [new file with mode: 0644]
applications/luci-app-wifischedule/po/zh-cn/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-wireguard/po/zh-cn/wireguard.po [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
collections/luci-ssl/Makefile
contrib/package/community-profiles/files/etc/config/profile_berlin
contrib/package/community-profiles/files/etc/config/profile_potsdam
contrib/package/freifunk-common/Makefile
contrib/package/freifunk-common/files/etc/config/freifunk
contrib/package/freifunk-common/files/usr/bin/neigh.sh
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/Makefile
modules/luci-base/htdocs/luci-static/resources/cbi.js
modules/luci-base/luasrc/cbi/datatypes.lua
modules/luci-base/luasrc/dispatcher.lua
modules/luci-base/luasrc/model/network.lua
modules/luci-base/luasrc/sys/iptparser.lua
modules/luci-base/luasrc/sys/zoneinfo/tzdata.lua
modules/luci-base/luasrc/sys/zoneinfo/tzoffset.lua
modules/luci-base/luasrc/tools/status.lua
modules/luci-base/luasrc/tools/webadmin.lua
modules/luci-base/luasrc/view/cbi/firewall_zonelist.htm
modules/luci-base/luasrc/view/cbi/fvalue.htm
modules/luci-base/luasrc/view/cbi/lvalue.htm
modules/luci-base/luasrc/view/cbi/mvalue.htm
modules/luci-base/luasrc/view/cbi/network_ifacelist.htm
modules/luci-base/luasrc/view/cbi/network_netlist.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 [new file with mode: 0644]
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/controller/admin/status.lua
modules/luci-mod-admin-full/luasrc/controller/admin/system.lua
modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/dhcp.lua
modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/ifaces.lua
modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/routes.lua
modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua
modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi_add.lua
modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/admin.lua
modules/luci-mod-admin-full/luasrc/model/cbi/admin_system/fstab/mount.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/luasrc/view/admin_system/flashops.htm
modules/luci-mod-admin-full/src/luci-bwc.c
modules/luci-mod-admin-mini/luasrc/model/cbi/mini/wifi.lua
modules/luci-mod-admin-mini/luasrc/view/mini/index.htm
modules/luci-mod-admin-mini/luasrc/view/mini/upgrade.htm
modules/luci-mod-failsafe/luasrc/view/failsafe/flashops.htm
modules/luci-mod-freifunk/luasrc/view/freifunk/remote_update.htm
protocols/luci-proto-ncm/Makefile [new file with mode: 0644]
protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua [new file with mode: 0644]
protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua [new file with mode: 0644]
protocols/luci-proto-qmi/Makefile [new file with mode: 0644]
protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua [new file with mode: 0644]
protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua [new file with mode: 0644]
protocols/luci-proto-vpnc/Makefile
protocols/luci-proto-wireguard/Makefile
protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua
themes/luci-theme-bootstrap/htdocs/luci-static/bootstrap/cascade.css
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-material/luasrc/view/themes/material/footer.htm
themes/luci-theme-material/luasrc/view/themes/material/header.htm [changed mode: 0755->0644]
themes/luci-theme-openwrt/luasrc/view/themes/openwrt.org/header.htm

index 8efe2d6..ae1eba2 100644 (file)
@@ -1,14 +1,12 @@
-# Copyright (C) 2016 Openwrt.org
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
-#
+# Copyright 2017 Dirk Brenken (dev@brenken.org)
+# This is free software, licensed under the Apache License, Version 2.0
 
 include $(TOPDIR)/rules.mk
 
 LUCI_TITLE:=LuCI support for Adblock
-LUCI_DEPENDS:=+adblock
+LUCI_DEPENDS:=+adblock +luci-lib-jsonc
 LUCI_PKGARCH:=all
 
 include ../../luci.mk
 
-# call BuildPackage - OpenWrt buildroot signature
+# call BuildPackage - OpenWrt buildroot signature
\ No newline at end of file
index d8b4718..b37fcd8 100644 (file)
@@ -1,12 +1,52 @@
--- Copyright 2016 Openwrt.org
--- Licensed to the public under the Apache License 2.0.
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
 
 module("luci.controller.adblock", package.seeall)
 
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local template = require("luci.template")
+local i18n = require("luci.i18n")
+
 function index()
        if not nixio.fs.access("/etc/config/adblock") then
                return
        end
+       entry({"admin", "services", "adblock"}, firstchild(), _("Adblock"), 30).dependent = false
+       entry({"admin", "services", "adblock", "tab_from_cbi"}, cbi("adblock/overview_tab"), _("Overview"), 10).leaf = true
+       entry({"admin", "services", "adblock", "logfile"}, call("logread"), _("View Logfile"), 20).leaf = true
+       entry({"admin", "services", "adblock", "advanced"}, firstchild(), _("Advanced"), 100)
+       entry({"admin", "services", "adblock", "advanced", "blacklist"}, cbi("adblock/blacklist_tab"), _("Edit Blacklist"), 110).leaf = true
+       entry({"admin", "services", "adblock", "advanced", "whitelist"}, cbi("adblock/whitelist_tab"), _("Edit Whitelist"), 120).leaf = true
+       entry({"admin", "services", "adblock", "advanced", "configuration"}, cbi("adblock/configuration_tab"), _("Edit Configuration"), 130).leaf = true
+       entry({"admin", "services", "adblock", "advanced", "query"}, call("query"), _("Query domains"), 140).leaf = true
+       entry({"admin", "services", "adblock", "advanced", "result"}, call("queryData"), nil, 150).leaf = true
+end
+
+function logread()
+       local logfile = util.trim(util.exec("logread -e 'adblock'"))
+       template.render("adblock/logread", {title = i18n.translate("Adblock Logfile"), content = logfile})
+end
 
-       entry({"admin", "services", "adblock"}, cbi("adblock"), _("Adblock"), 40)
+function query()
+       template.render("adblock/query", {title = i18n.translate("Adblock Domain Query")})
+end
+
+function queryData(domain)
+       if domain and domain:match("^[a-zA-Z0-9%-%._]+$") then
+               luci.http.prepare_content("text/plain")
+               local cmd = "/etc/init.d/adblock query %q 2>&1"
+               local util = io.popen(cmd % domain)
+               if util then
+                       while true do
+                               local line = util:read("*l")
+                               if not line then
+                                       break
+                               end
+                               luci.http.write(line)
+                               luci.http.write("\n")
+                       end
+                       util:close()
+               end
+       end
 end
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua
deleted file mode 100644 (file)
index 2cee302..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
--- Copyright 2016 Openwrt.org
--- Licensed to the public under the Apache License 2.0.
-
-m = Map("adblock", translate("Adblock"),
-       translate("Configuration of the adblock package to block ad/abuse domains by using DNS."))
-
--- General options
-
-s = m:section(NamedSection, "global", "adblock", translate("Global options"))
-
-o1 = s:option(Flag, "adb_enabled", translate("Enable adblock"))
-o1.rmempty = false
-o1.default = 0
-
-o3 = s:option(Value, "adb_whitelist", translate("Whitelist file"),
-     translate("File with whitelisted hosts/domains that are allowed despite being on a blocklist."))
-o3.rmempty = false
-o3.datatype = "file"
-
-fdns = s:option(Flag, "adb_forcedns", translate("Redirect all DNS queries to the local resolver"),
-        translate("When adblock is active, all DNS queries are redirected to the local resolver " ..
-        "in this server by default. You can disable that to allow queries to external DNS servers."))
-fdns.rmempty = false
-fdns.default = fdns.enabled
-
--- Statistics
-
-t = m:section(NamedSection, "global", "adblock", translate("Statistics"))
-
-dat = t:option(DummyValue, "adb_lastrun", translate("Last update of the blocklists"))
-tot = t:option(DummyValue, "adb_overall_count", translate("Total count of blocked domains"))
-prc = t:option(DummyValue, "adb_percentage", translate("Percentage of blocked packets (before last update, IPv4/IPv6)"))
-
--- Blocklist options
-
-bl = m:section(TypedSection, "source", translate("Blocklist sources"),
-       translate("Available blocklist sources (")
-       .. [[<a href="https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md" target="_blank">]]
-       .. translate("see list details")
-       .. [[</a>]]
-       .. translate("). Note that list URLs and Shallalist category selections are not configurable via Luci."))
-bl.template = "cbi/tblsection"
-
-name = bl:option(Flag, "enabled", translate("Enabled"))
-name.rmempty  = false
-
-des = bl:option(DummyValue, "adb_src_desc", translate("Description"))
-cou = bl:option(DummyValue, "adb_src_count", translate("Count"))
-upd = bl:option(DummyValue, "adb_src_timestamp", translate("List date/state"))
-
--- Additional options
-
-s2 = m:section(NamedSection, "backup", "service", translate("Backup options"))
-
-o4 = s2:option(Flag, "enabled", translate("Enable blocklist backup"))
-o4.rmempty = false
-o4.default = 0
-
-o5 = s2:option(Value, "adb_dir", translate("Backup directory"))
-o5.rmempty = false
-o5.datatype = "directory"
-
--- Extra options
-
-e = m:section(NamedSection, "global", "adblock", translate("Extra options"),
-       translate("Options for further tweaking in case the defaults are not suitable for you."))
-
-a0 = e:option(Flag, "adb_restricted", translate("Do not write status info to flash"),
-       translate("Skip writing update status information to the config file. Status fields on this page will not be updated."))
-a0.default = 0
-
-a1 = e:option(Value, "adb_nullport", translate("Port of the adblock uhttpd instance"))
-a1.optional = true
-a1.default = 65534
-a1.datatype = "port"
-
-a5 = e:option(Value, "adb_nullportssl", translate("Port of the adblock uhttpd instance for https links"))
-a5.optional = true
-a5.default = 65535
-a5.datatype = "port"
-
-a2 = e:option(Value, "adb_nullipv4", translate("IPv4 blackhole ip address"))
-a2.optional = true
-a2.default = "198.18.0.1"
-a2.datatype = "ip4addr"
-
-a3 = e:option(Value, "adb_nullipv6", translate("IPv6 blackhole ip address"))
-a3.optional = true
-a3.default = "::ffff:c612:0001"
-a3.datatype = "ip6addr"
-
-a4 = e:option(Value, "adb_fetchttl", translate("Timeout for blocklist fetch (seconds)"))
-a4.optional = true
-a4.default = 5
-a4.datatype = "range(2,60)"
-
-a7 = e:option(Value, "adb_lanif", translate("Name of the logical lan interface"))
-a7.optional = true
-a7.default = "lan"
-a7.datatype = "network"
-
-return m
-
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua
new file mode 100644 (file)
index 0000000..d540c77
--- /dev/null
@@ -0,0 +1,39 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local uci = require("uci")
+local adbinput = uci.get("adblock", "blacklist", "adb_src" or "/etc/adblock/adblock.blacklist")
+
+if not nixio.fs.access(adbinput) then
+       m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+       return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("adblock/config_css"))
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+       translatef("This form allows you to modify the content of the adblock blacklist (%s).<br />", adbinput)
+       .. translate("Please add only one domain per line. Comments introduced with '#' are allowed - ip addresses, wildcards and regex are not."))
+
+f = s:option(TextValue, "data")
+f.datatype = "string"
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+       return nixio.fs.readfile(adbinput) or ""
+end
+
+function f.write(self, section, data)
+       return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+       return true
+end
+
+return m
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua
new file mode 100644 (file)
index 0000000..1b83c94
--- /dev/null
@@ -0,0 +1,36 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local adbinput = "/etc/config/adblock"
+
+if not nixio.fs.access(adbinput) then
+       m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+       return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("adblock/config_css"))
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+       translate("This form allows you to modify the content of the main adblock configuration file (/etc/config/adblock)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+       return nixio.fs.readfile(adbinput) or ""
+end
+
+function f.write(self, section, data)
+       return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+       return true
+end
+
+return m
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua
new file mode 100644 (file)
index 0000000..d2740f4
--- /dev/null
@@ -0,0 +1,164 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local uci = require("uci")
+local sys = require("luci.sys")
+local json = require("luci.jsonc")
+local adbinput = uci.get("adblock", "global", "adb_rtfile") or "/tmp/adb_runtime.json"
+local parse = json.parse(fs.readfile(adbinput) or "")
+local dnsFile1 = sys.exec("find '/tmp/dnsmasq.d/.adb_hidden' -maxdepth 1 -type f -name 'adb_list*' -print 2>/dev/null")
+local dnsFile2 = sys.exec("find '/var/lib/unbound/.adb_hidden' -maxdepth 1 -type f -name 'adb_list*' -print 2>/dev/null")
+
+m = Map("adblock", translate("Adblock"),
+       translate("Configuration of the adblock package to block ad/abuse domains by using DNS. ")
+       .. translate("For further information ")
+       .. [[<a href="https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md" target="_blank">]]
+       .. translate("see online documentation")
+       .. [[</a>]]
+       .. translate("."))
+m.reset = false
+
+-- Main adblock options
+
+s = m:section(NamedSection, "global", "adblock")
+
+o1 = s:option(Flag, "adb_enabled", translate("Enable adblock"))
+o1.default = o1.enabled
+o1.rmempty = false
+
+btn = s:option(Button, "", translate("Suspend / Resume adblock"))
+if dnsFile1 ~= "" or dnsFile2 ~= "" then
+       btn.inputtitle = translate("Resume adblock")
+       btn.inputstyle = "apply"
+       btn.disabled = false
+       function btn.write()
+               luci.sys.call("/etc/init.d/adblock resume >/dev/null 2>&1")
+       end
+else
+       btn.inputtitle = translate("Suspend adblock")
+       btn.inputstyle = "reset"
+       btn.disabled = false
+       function btn.write()
+               luci.sys.call("/etc/init.d/adblock suspend >/dev/null 2>&1")
+       end
+end
+
+o2 = s:option(Value, "adb_iface", translate("Restrict interface trigger to certain interface(s)"),
+       translate("Space separated list of interfaces that trigger adblock processing. "..
+       "To disable event driven (re-)starts remove all entries."))
+o2.rmempty = true
+
+o3 = s:option(Value, "adb_triggerdelay", translate("Trigger delay"),
+       translate("Additional trigger delay in seconds before adblock processing begins."))
+o3.default = 2
+o3.datatype = "range(1,90)"
+o3.rmempty = false
+
+o4 = s:option(Flag, "adb_debug", translate("Enable verbose debug logging"))
+o4.default = o4.disabled
+o4.rmempty = false
+
+-- Runtime information
+
+ds = s:option(DummyValue, "_dummy", translate("Runtime information"))
+ds.template = "cbi/nullsection"
+
+dv1 = s:option(DummyValue, "status", translate("Status"))
+dv1.template = "adblock/runtime"
+if parse == nil then
+       dv1.value = translate("n/a")
+elseif parse.data.blocked_domains == "0" then
+       dv1.value = translate("no domains blocked")
+elseif dnsFile1 ~= "" or dnsFile2 ~= "" then
+       dv1.value = translate("suspended")
+else
+       dv1.value = translate("active")
+end
+dv2 = s:option(DummyValue, "adblock_version", translate("Adblock version"))
+dv2.template = "adblock/runtime"
+if parse ~= nil then
+       dv2.value = parse.data.adblock_version or translate("n/a")
+else
+       dv2.value = translate("n/a")
+end
+
+dv3 = s:option(DummyValue, "fetch_info", translate("Download Utility (SSL Library)"),
+       translate("For SSL protected blocklist sources you need a suitable SSL library, e.g. 'libustream-ssl' or the wget 'built-in'."))
+dv3.template = "adblock/runtime"
+if parse ~= nil then
+       dv3.value = parse.data.fetch_info or translate("n/a")
+else
+       dv3.value = translate("n/a")
+end
+
+dv4 = s:option(DummyValue, "dns_backend", translate("DNS backend"))
+dv4.template = "adblock/runtime"
+if parse ~= nil then
+       dv4.value = parse.data.dns_backend or translate("n/a")
+else
+       dv4.value = translate("n/a")
+end
+
+dv5 = s:option(DummyValue, "blocked_domains", translate("Blocked domains (overall)"))
+dv5.template = "adblock/runtime"
+if parse ~= nil then
+       dv5.value = parse.data.blocked_domains or translate("n/a")
+else
+       dv5.value = translate("n/a")
+end
+
+dv6 = s:option(DummyValue, "last_rundate", translate("Last rundate"))
+dv6.template = "adblock/runtime"
+if parse ~= nil then
+       dv6.value = parse.data.last_rundate or translate("n/a")
+else
+       dv6.value = translate("n/a")
+end
+
+-- Blocklist table
+
+bl = m:section(TypedSection, "source", translate("Blocklist sources"),
+       translate("Available blocklist sources. ")
+       .. translate("Note that list URLs and Shallalist category selections are configurable in the 'Advanced' section."))
+bl.template = "cbi/tblsection"
+
+name = bl:option(Flag, "enabled", translate("Enabled"))
+name.rmempty = false
+
+ssl = bl:option(DummyValue, "adb_src", translate("SSL req."))
+function ssl.cfgvalue(self, section)
+       local source = self.map:get(section, "adb_src")
+       if source and source:match("https://") then
+               return translate("Yes")
+       else
+               return translate("No")
+       end
+end
+
+des = bl:option(DummyValue, "adb_src_desc", translate("Description"))
+
+-- Extra options
+
+e = m:section(NamedSection, "global", "adblock", translate("Extra options"),
+       translate("Options for further tweaking in case the defaults are not suitable for you."))
+
+e1 = e:option(Flag, "adb_forcedns", translate("Force local DNS"),
+       translate("Redirect all DNS queries to the local resolver."))
+e1.default = e1.disabled
+e1.rmempty = false
+
+e2 = e:option(Flag, "adb_forcesrt", translate("Force Overall Sort"),
+       translate("Enable memory intense overall sort / duplicate removal on low memory devices (&lt; 64 MB RAM)"))
+e2.default = e2.disabled
+e2.rmempty = false
+
+e3 = e:option(Flag, "adb_backup", translate("Enable blocklist backup"))
+e3.default = e3.disabled
+e3.rmempty = false
+
+e4 = e:option(Value, "adb_backupdir", translate("Backup directory"))
+e4.datatype = "directory"
+e4.rmempty = false
+
+return m
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua
new file mode 100644 (file)
index 0000000..23c99a9
--- /dev/null
@@ -0,0 +1,39 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local uci = require("uci")
+local adbinput = uci.get("adblock", "global", "adb_whitelist") or "/etc/adblock/adblock.whitelist"
+
+if not nixio.fs.access(adbinput) then
+       m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+       return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("adblock/config_css"))
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+       translatef("This form allows you to modify the content of the adblock whitelist (%s).<br />", adbinput)
+       .. translate("Please add only one domain per line. Comments introduced with '#' are allowed - ip addresses, wildcards and regex are not."))
+
+f = s:option(TextValue, "data")
+f.datatype = "string"
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+       return nixio.fs.readfile(adbinput) or ""
+end
+
+function f.write(self, section, data)
+       return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+       return true
+end
+
+return m
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm b/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm
new file mode 100644 (file)
index 0000000..53493a1
--- /dev/null
@@ -0,0 +1,10 @@
+<style type="text/css">
+       textarea
+       {
+               border: 1px solid #cccccc;
+               padding: 5px;
+               font-size: 12px;
+               font-family: monospace;
+               resize: none;
+       }
+</style>
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/logread.htm b/applications/luci-app-adblock/luasrc/view/adblock/logread.htm
new file mode 100644 (file)
index 0000000..5e25a54
--- /dev/null
@@ -0,0 +1,14 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+header%>
+
+<div class="cbi-map">
+       <fieldset class="cbi-section">
+               <div class="cbi-section-descr"><%:This form shows the syslog output, pre-filtered for adblock related messages only.%></div>
+               <textarea id="logread_id" style="width: 100%; height: 450px; border: 1px solid #cccccc; padding: 5px; font-size: 12px; font-family: monospace; resize: none;" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+2%>"><%=content:pcdata()%></textarea>
+       </fieldset>
+</div>
+<%+footer%>
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/query.htm b/applications/luci-app-adblock/luasrc/view/adblock/query.htm
new file mode 100644 (file)
index 0000000..ce706e4
--- /dev/null
@@ -0,0 +1,65 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+header%>
+
+<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
+<script type="text/javascript">
+//<![CDATA[
+       var stxhr = new XHR();
+
+       function update_status(data)
+       {
+               var domain = data.value;
+               var input = document.getElementById('query_input');
+               var output = document.getElementById('query_output');
+
+               if (input && output)
+               {
+                       output.innerHTML =
+                               '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" /> ' +
+                               '<%:Waiting for command to complete...%>'
+                       ;
+                       input.parentNode.style.display = 'block';
+                       input.style.display = 'inline';
+                       stxhr.post('<%=luci.dispatcher.build_url('admin/services/adblock/advanced/result/')%>' + domain, { token: '<%=token%>' },
+                               function(x)
+                               {
+                                       if (x.responseText)
+                                       {
+                                               input.style.display = 'none';
+                                               output.innerHTML = String.format('<pre>%h</pre>', x.responseText);
+                                       }
+                                       else
+                                       {
+                                               input.style.display = 'none';
+                                               output.innerHTML = '<span class="error"><%:Invalid domain specified!%></span>';
+                                       }
+                               }
+                       );
+               }
+       }
+//]]>
+</script>
+
+<form method="post" action="<%=REQUEST_URI%>">
+       <div class="cbi-map">
+               <fieldset class="cbi-section">
+                       <div class="cbi-section-descr"><%:This form allows you to query active block lists for certain domains, e.g. for whitelisting.%></div>
+                       <div style="width:33%; float:left;">
+                               <input style="margin: 5px 0" type="text" value="www.lede-project.org" name="input" />
+                               <input type="button" value="<%:Query%>" class="cbi-button cbi-button-apply" onclick="update_status(this.form.input)" />
+                       </div>
+                       <br style="clear:both" />
+                       <br />
+               </fieldset>
+       </div>
+       <fieldset class="cbi-section" style="display:none">
+               <legend id="query_input"><%:Collecting data...%></legend>
+               <span id="query_output"></span>
+       </fieldset>
+</form>
+
+<%+footer%>
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm b/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm
new file mode 100644 (file)
index 0000000..ee3a455
--- /dev/null
@@ -0,0 +1,10 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+cbi/valueheader%>
+
+<input name="runtime" id="runtime" type="text" class="cbi-input-text" style="border: none; box-shadow: none; background-color: #ffffff; color: #0069d6;" value="<%=self:cfgvalue(section)%>" disabled="disabled" />
+
+<%+cbi/valuefooter%>
diff --git a/applications/luci-app-adblock/po/ja/adblock.po b/applications/luci-app-adblock/po/ja/adblock.po
new file mode 100644 (file)
index 0000000..6c89c5e
--- /dev/null
@@ -0,0 +1,364 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.0.1\n"
+"Language: ja\n"
+
+msgid "."
+msgstr "。"
+
+msgid "Adblock"
+msgstr "Adblock"
+
+msgid "Adblock Domain Query"
+msgstr "Adblock ドメイン検索"
+
+msgid "Adblock Logfile"
+msgstr "Adblock ログファイル"
+
+msgid "Adblock version"
+msgstr "Adblock バージョン"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr "Adblock の処理が開始されるまでの、追加の遅延時間(秒)です。"
+
+msgid "Advanced"
+msgstr "詳細設定"
+
+msgid "Available blocklist sources."
+msgstr "利用可能なブロックリスト提供元です。"
+
+msgid "Backup directory"
+msgstr "バックアップ先 ディレクトリ"
+
+msgid "Blocked domains (overall)"
+msgstr "ブロック済みドメイン(全体)"
+
+msgid "Blocklist sources"
+msgstr "ブロックリスト提供元"
+
+msgid "Collecting data..."
+msgstr "データ収集中です..."
+
+msgid ""
+"Configuration of the adblock package to block ad/abuse domains by using DNS."
+msgstr ""
+"DNS の利用によって広告/不正ドメインをブロックする、Adblock パッケージの設定で"
+"す。"
+
+msgid "DNS backend"
+msgstr "DNS バックエンド"
+
+msgid "Description"
+msgstr "説明"
+
+msgid "Download Utility (SSL Library)"
+msgstr "ダウンロード ユーティリティ(SSL ライブラリ)"
+
+msgid "Edit Blacklist"
+msgstr "ブラックリストの編集"
+
+msgid "Edit Configuration"
+msgstr "設定の編集"
+
+msgid "Edit Whitelist"
+msgstr "ホワイトリストの編集"
+
+msgid "Enable adblock"
+msgstr "Adblock の有効化"
+
+msgid "Enable blocklist backup"
+msgstr "ブロックリスト バックアップの有効化"
+
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(&lt; 64 MB RAM)"
+msgstr ""
+"メモリー容量の少ないデバイス(RAM 64MB 未満)において、一時ファイル内の全体的"
+"なソート及び重複の除去を有効にします。"
+
+msgid "Enable verbose debug logging"
+msgstr "詳細なデバッグ ログの有効化"
+
+msgid "Enabled"
+msgstr "有効"
+
+msgid "Extra options"
+msgstr "拡張設定"
+
+msgid ""
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
+"SSLで保護されているブロックリストの取得には、適切なSSL ライブラリが必要です。"
+"例: 'libustream-ssl' または wget 'ビルトイン'"
+
+msgid "For further information"
+msgstr "詳細な情報は"
+
+msgid "Force Overall Sort"
+msgstr "全体ソートの強制"
+
+msgid "Force local DNS"
+msgstr "ローカル DNS の強制"
+
+msgid "Input file not found, please check your configuration."
+msgstr "入力ファイルが見つかりません。設定を確認してください。"
+
+msgid "Invalid domain specified!"
+msgstr "無効なドメインが指定されています!"
+
+msgid "Last rundate"
+msgstr "最終実行日時"
+
+msgid "Loading"
+msgstr "読込中"
+
+msgid "No"
+msgstr "いいえ"
+
+msgid ""
+"Note that list URLs and Shallalist category selections are configurable in "
+"the 'Advanced' section."
+msgstr ""
+"リストの URL 及び \"Shalla\" リストのカテゴリー設定は、'詳細設定' セクション"
+"で設定することができます。"
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr "デフォルト設定が適切でない場合、追加で設定するためのオプションです。"
+
+msgid "Overview"
+msgstr "概要"
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+"1行に1つのドメインを追加してください。'#' から始まるコメントを記述できます"
+"が、IP アドレスやワイルドカード、正規表現を設定値として使用することはできませ"
+"ん。"
+
+msgid "Query"
+msgstr "検索"
+
+msgid "Query domains"
+msgstr "ドメインの検索"
+
+msgid "Redirect all DNS queries to the local resolver."
+msgstr "全ての DNS クエリをローカル リゾルバにリダイレクトします。"
+
+msgid "Restrict interface trigger to certain interface(s)"
+msgstr "インターフェース トリガーを特定のインターフェースに限定する"
+
+msgid "Resume adblock"
+msgstr "Adblock の再開"
+
+msgid "Runtime information"
+msgstr "実行情報"
+
+msgid "SSL req."
+msgstr "SSL 必須"
+
+msgid ""
+"Space separated list of interfaces that trigger adblock processing. To "
+"disable event driven (re-)starts remove all entries."
+msgstr ""
+"Adblock の処理のトリガーとなる、スペースで区切られたインターフェースのリスト"
+"です。処理を発生させるイベントを無効にするには、全てのエントリーを削除して空"
+"欄にします。"
+
+msgid "Status"
+msgstr "ステータス"
+
+msgid "Suspend / Resume adblock"
+msgstr "Adblock の一時停止/再開"
+
+msgid "Suspend adblock"
+msgstr "Adblock の一時停止"
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+"<br />"
+msgstr ""
+"このフォームでは、Adblock ブラックリスト (%s) の内容を変更することができま"
+"す。<br />"
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+"<br />"
+msgstr ""
+"このフォームでは、Adblock ホワイトリスト (%s) の内容を変更することができま"
+"す。<br />"
+
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+"このフォームでは、メインのAdblock 設定ファイル (/etc/config/adblock) の内容を"
+"変更することができます。"
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr ""
+"このフォームでは、現在有効なリスト内で特定のドメインを検索することができま"
+"す。例: ホワイトリスト内"
+
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr ""
+"このフォームには、システムログ内の Adblock に関連するメッセージのみが表示され"
+"ます。"
+
+msgid "Trigger delay"
+msgstr "トリガー遅延"
+
+msgid "View Logfile"
+msgstr "ログファイルを見る"
+
+msgid "Waiting for command to complete..."
+msgstr "コマンドの完了をお待ちください..."
+
+msgid "Yes"
+msgstr "はい"
+
+msgid "active"
+msgstr "動作中"
+
+msgid "n/a"
+msgstr "利用不可"
+
+msgid "no domains blocked"
+msgstr "ブロックされたドメインはありません"
+
+msgid "see online documentation"
+msgstr "オンライン ドキュメントを確認してください"
+
+msgid "suspended"
+msgstr "一時停止中"
+
+#~ msgid "Backup options"
+#~ msgstr "バックアップ オプション"
+
+#~ msgid "Restrict interface reload trigger to certain interface(s)"
+#~ msgstr "リロード トリガを特定のインターフェースに限定する"
+
+#~ msgid ""
+#~ "Space separated list of interfaces that trigger a reload action. To "
+#~ "disable reload trigger at all remove all entries."
+#~ msgstr ""
+#~ "リロードのトリガとなる、スペースで区切られたインターフェースのリストです。"
+#~ "リロード トリガを無効にするには、全てのエントリーを削除して空欄にします。"
+
+#~ msgid ""
+#~ "Space separated list of interfaces that trigger a reload action. To "
+#~ "disable reload trigger at all set it to 'false'."
+#~ msgstr ""
+#~ "リロードのトリガとなる、スペースで区切られたインターフェースのリストで"
+#~ "す。'false' に設定した場合、全てのリロード トリガは無効になります。"
+
+#~ msgid ""
+#~ "Please add only one domain per line. Comments introduced with '#' are "
+#~ "allowed - ip addresses, wildcards & regex are not."
+#~ msgstr ""
+#~ "一行に一つのドメインを追加してください。'#' から始まるコメントを記述できま"
+#~ "すが、IPアドレスやワイルドカード、正規表現を設定値として使用することはでき"
+#~ "ません。"
+
+#~ msgid ""
+#~ "). Note that list URLs and Shallalist category selections are not "
+#~ "configurable via Luci."
+#~ msgstr ""
+#~ ")。これらのリストのURLおよびshallaリストの選択済みカテゴリーは、Luciを通"
+#~ "して設定することができません。"
+
+#~ msgid "Available blocklist sources ("
+#~ msgstr "利用可能なブロックリスト提供元です("
+
+#~ msgid ""
+#~ "File with whitelisted hosts/domains that are allowed despite being on a "
+#~ "blocklist."
+#~ msgstr ""
+#~ "ホワイトリスト ファイル内のホスト/ドメインは、ブロックリストの登録に関わら"
+#~ "ず許可されます。"
+
+#~ msgid "Global options"
+#~ msgstr "一般設定"
+
+#~ msgid "Restrict reload trigger to certain interface(s)"
+#~ msgstr "リロードトリガを特定のインターフェースに限定する"
+
+#~ msgid ""
+#~ "Space separated list of wan interfaces that trigger reload action. To "
+#~ "disable reload trigger set it to 'false'. Default: empty"
+#~ msgstr ""
+#~ "リロード実行のトリガとなる、スペースで区切られたWANインターフェースのリス"
+#~ "トです。リロードトリガを無効にするには、 false を設定します。デフォルト:"
+#~ "(空)"
+
+#~ msgid "Whitelist file"
+#~ msgstr "ホワイトリスト ファイル"
+
+#~ msgid "see list details"
+#~ msgstr "リストの詳細を見る"
+
+#~ msgid "Count"
+#~ msgstr "カウント"
+
+#~ msgid "Do not write status info to flash"
+#~ msgstr "ステータス情報をフラッシュに書き込まない"
+
+#~ msgid "Last update of the blocklists"
+#~ msgstr "ブロックリストの最終更新日時"
+
+#~ msgid "List date/state"
+#~ msgstr "リスト日時/状態"
+
+#~ msgid "Name of the logical lan interface"
+#~ msgstr "論理LANインターフェース名"
+
+#~ msgid "Percentage of blocked packets (before last update, IPv4/IPv6)"
+#~ msgstr "ブロック済みパケットの割合(最終更新以前、IPv4/IPv6)"
+
+#~ msgid "Port of the adblock uhttpd instance"
+#~ msgstr "adblock uhttpdインスタンスのポート"
+
+#~ msgid "Port of the adblock uhttpd instance for https links"
+#~ msgstr "httpsリンク用adblock uhttpdインスタンスのポート"
+
+#~ msgid "Redirect all DNS queries to the local resolver"
+#~ msgstr "全てのDNSクエリをローカルリゾルバにリダイレクト"
+
+#~ msgid ""
+#~ "Skip writing update status information to the config file. Status fields "
+#~ "on this page will not be updated."
+#~ msgstr ""
+#~ "更新ステータス情報をコンフィグファイルに書き込まず、スキップします。この"
+#~ "ページのステータス画面は更新されなくなります。"
+
+#~ msgid "Statistics"
+#~ msgstr "ステータス"
+
+#~ msgid "Timeout for blocklist fetch (seconds)"
+#~ msgstr "ブロックリスト取得の制限時間(秒)"
+
+#~ msgid "Total count of blocked domains"
+#~ msgstr "ブロック済みドメインの合計"
+
+#~ msgid ""
+#~ "When adblock is active, all DNS queries are redirected to the local "
+#~ "resolver in this server by default. You can disable that to allow queries "
+#~ "to external DNS servers."
+#~ msgstr ""
+#~ "adblockがアクティブである時、全てのDNSクエリは既定でこのサーバー上のリゾル"
+#~ "バにリダイレクトされます。外部DNSサーバーへのクエリを許可する場合、この設"
+#~ "定を無効にすることもできます。"
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..05002b7
--- /dev/null
@@ -0,0 +1,268 @@
+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 "."
+msgstr ""
+
+msgid "Adblock"
+msgstr "Adblock"
+
+msgid "Adblock Domain Query"
+msgstr ""
+
+msgid "Adblock Logfile"
+msgstr ""
+
+msgid "Adblock version"
+msgstr ""
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid "Available blocklist sources."
+msgstr ""
+
+msgid "Backup directory"
+msgstr "Diretório da cópia de segurança"
+
+msgid "Blocked domains (overall)"
+msgstr ""
+
+msgid "Blocklist sources"
+msgstr "Fontes de listas de bloqueio"
+
+msgid "Collecting data..."
+msgstr ""
+
+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 "DNS backend"
+msgstr ""
+
+msgid "Description"
+msgstr "Descrição"
+
+msgid "Download Utility (SSL Library)"
+msgstr ""
+
+msgid "Edit Blacklist"
+msgstr ""
+
+msgid "Edit Configuration"
+msgstr ""
+
+msgid "Edit Whitelist"
+msgstr ""
+
+msgid "Enable adblock"
+msgstr "Habilitar adblock"
+
+msgid "Enable blocklist backup"
+msgstr "Habilitar cópia de segurança da lista de bloqueio"
+
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(&lt; 64 MB RAM)"
+msgstr ""
+
+msgid "Enable verbose debug logging"
+msgstr "Habilite registros detalhados para depuração"
+
+msgid "Enabled"
+msgstr "Habilitado"
+
+msgid "Extra options"
+msgstr "Opções adicionais"
+
+msgid ""
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
+
+msgid "For further information"
+msgstr ""
+
+msgid "Force Overall Sort"
+msgstr ""
+
+msgid "Force local DNS"
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr ""
+
+msgid "Invalid domain specified!"
+msgstr ""
+
+msgid "Last rundate"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "No"
+msgstr ""
+
+msgid ""
+"Note that list URLs and Shallalist category selections are configurable in "
+"the 'Advanced' section."
+msgstr ""
+
+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 "Overview"
+msgstr ""
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+
+msgid "Query"
+msgstr ""
+
+msgid "Query domains"
+msgstr ""
+
+msgid "Redirect all DNS queries to the local resolver."
+msgstr ""
+
+msgid "Restrict interface trigger to certain interface(s)"
+msgstr ""
+
+msgid "Resume adblock"
+msgstr ""
+
+msgid "Runtime information"
+msgstr ""
+
+msgid "SSL req."
+msgstr ""
+
+msgid ""
+"Space separated list of interfaces that trigger adblock processing. To "
+"disable event driven (re-)starts remove all entries."
+msgstr ""
+
+msgid "Status"
+msgstr ""
+
+msgid "Suspend / Resume adblock"
+msgstr ""
+
+msgid "Suspend adblock"
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+"<br />"
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+"<br />"
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr ""
+
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr ""
+
+msgid "Trigger delay"
+msgstr ""
+
+msgid "View Logfile"
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
+
+msgid "Yes"
+msgstr ""
+
+msgid "active"
+msgstr ""
+
+msgid "n/a"
+msgstr ""
+
+msgid "no domains blocked"
+msgstr ""
+
+msgid "see online documentation"
+msgstr ""
+
+msgid "suspended"
+msgstr ""
+
+#~ msgid "Backup options"
+#~ msgstr "Opções da cópia de segurança"
+
+#~ 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 "Available blocklist sources ("
+#~ msgstr "Fontes de listas de bloqueio disponíveis ("
+
+#~ 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 "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 9c0ca21..7a19f87 100644 (file)
@@ -1,47 +1,79 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=UTF-8\n"
 
-msgid ""
-"). Note that list URLs and Shallalist category selections are not "
-"configurable via Luci."
-msgstr ""
+msgid "."
+msgstr "."
 
 msgid "Adblock"
-msgstr "Blockering av annonser"
+msgstr "Adblock"
+
+msgid "Adblock Domain Query"
+msgstr ""
+
+msgid "Adblock Logfile"
+msgstr "Adblock's loggfil"
+
+msgid "Adblock version"
+msgstr "Version för Adblock"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr ""
 
-msgid "Available blocklist sources ("
-msgstr "Tillgängliga källor för blockeringslistor ("
+msgid "Advanced"
+msgstr "Avancerat"
+
+msgid "Available blocklist sources."
+msgstr "Tillgängliga källor för blockeringslistor"
 
 msgid "Backup directory"
 msgstr "Säkerhetskopiera mapp"
 
-msgid "Backup options"
-msgstr "Alternativ för säkerhetskopiering"
+msgid "Blocked domains (overall)"
+msgstr "Blockerade domäner (övergripande)"
 
 msgid "Blocklist sources"
 msgstr "Källor för blockeringslistor"
 
+msgid "Collecting data..."
+msgstr "Samlar in data..."
+
 msgid ""
 "Configuration of the adblock package to block ad/abuse domains by using DNS."
 msgstr ""
-"Konfiguration av paket adblock för att blockera annons/otillåtna domäner "
-"genom att användning DNS."
+"Konfiguration av paketet adblock för att blockera annons/otillåtna domäner genom att använda DNS."
 
-msgid "Count"
-msgstr "Räkna"
+msgid "DNS backend"
+msgstr "Bakände för DNS"
 
 msgid "Description"
 msgstr "Beskrivning"
 
-msgid "Do not write status info to flash"
-msgstr "Skriv inte status info till flash"
+msgid "Download Utility (SSL Library)"
+msgstr "Nerladdningsprogram (SSL-bibliotek)"
+
+msgid "Edit Blacklist"
+msgstr "Redigera svartlista"
+
+msgid "Edit Configuration"
+msgstr Redigerar konfigurationen""
+
+msgid "Edit Whitelist"
+msgstr "Redigera vitlista"
 
 msgid "Enable adblock"
-msgstr "Aktivera abblock"
+msgstr "Aktivera adblock"
 
 msgid "Enable blocklist backup"
 msgstr "Aktivera säkerhetskopiering av blockeringslistan"
 
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(&lt; 64 MB RAM)"
+msgstr ""
+
+msgid "Enable verbose debug logging"
+msgstr ""
+
 msgid "Enabled"
 msgstr "Aktiverad"
 
@@ -49,66 +81,158 @@ msgid "Extra options"
 msgstr "Extra alternativ"
 
 msgid ""
-"File with whitelisted hosts/domains that are allowed despite being on a "
-"blocklist."
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
 msgstr ""
 
-msgid "Global options"
-msgstr "Globala alternativ"
+msgid "For further information"
+msgstr "För mer information"
 
-msgid "IPv4 blackhole ip address"
+msgid "Force Overall Sort"
 msgstr ""
 
-msgid "IPv6 blackhole ip address"
-msgstr ""
+msgid "Force local DNS"
+msgstr "Tvinga lokal DNS"
 
-msgid "Last update of the blocklists"
-msgstr ""
+msgid "Input file not found, please check your configuration."
+msgstr "Inmatningsfilen hittades inte, var vänlig och kontrollera din konfiguration."
+
+msgid "Invalid domain specified!"
+msgstr "Ogiltig domän angiven!"
 
-msgid "List date/state"
+msgid "Last rundate"
 msgstr ""
 
-msgid "Name of the logical lan interface"
+msgid "Loading"
+msgstr "Laddar"
+
+msgid "No"
+msgstr "Nej"
+
+msgid ""
+"Note that list URLs and Shallalist category selections are configurable in "
+"the 'Advanced' section."
 msgstr ""
 
 msgid ""
 "Options for further tweaking in case the defaults are not suitable for you."
 msgstr ""
 
-msgid "Percentage of blocked packets (before last update, IPv4/IPv6)"
+msgid "Overview"
+msgstr "Översikt"
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+
+msgid "Query"
+msgstr ""
+
+msgid "Query domains"
 msgstr ""
 
-msgid "Port of the adblock uhttpd instance"
+msgid "Redirect all DNS queries to the local resolver."
 msgstr ""
 
-msgid "Port of the adblock uhttpd instance for https links"
+msgid "Restrict interface trigger to certain interface(s)"
 msgstr ""
 
-msgid "Redirect all DNS queries to the local resolver"
-msgstr "Dirigera om alla DNS-förfrågning till den lokala resolvern"
+msgid "Resume adblock"
+msgstr "Återuppta adblock"
+
+msgid "Runtime information"
+msgstr "Information om kör-tid"
+
+msgid "SSL req."
+msgstr ""
 
 msgid ""
-"Skip writing update status information to the config file. Status fields on "
-"this page will not be updated."
+"Space separated list of interfaces that trigger adblock processing. To "
+"disable event driven (re-)starts remove all entries."
 msgstr ""
 
-msgid "Statistics"
+msgid "Status"
+msgstr "Status"
+
+msgid "Suspend / Resume adblock"
+msgstr "Upphäv / Återuppta adblock"
+
+msgid "Suspend adblock"
+msgstr "Upphäv adblock"
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+"<br />"
 msgstr ""
 
-msgid "Timeout for blocklist fetch (seconds)"
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+"<br />"
 msgstr ""
 
-msgid "Total count of blocked domains"
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
 msgstr ""
 
 msgid ""
-"When adblock is active, all DNS queries are redirected to the local resolver "
-"in this server by default. You can disable that to allow queries to external "
-"DNS servers."
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
 msgstr ""
 
-msgid "Whitelist file"
-msgstr "Vitlista fil"
+msgid "Trigger delay"
+msgstr ""
+
+msgid "View Logfile"
+msgstr "Visa loggfil"
+
+msgid "Waiting for command to complete..."
+msgstr "Väntar på att kommandot ska slutföras..."
+
+msgid "Yes"
+msgstr "Ja"
+
+msgid "active"
+msgstr "aktiv"
+
+msgid "n/a"
+msgstr "n/a"
+
+msgid "no domains blocked"
+msgstr "inga domäner blockerades"
+
+msgid "see online documentation"
+msgstr ""
+
+msgid "suspended"
+msgstr "upphävd"
+
+#~ msgid "Backup options"
+#~ msgstr "Alternativ för säkerhetskopiering"
+
+#~ msgid "Available blocklist sources ("
+#~ msgstr "Tillgängliga källor för blockeringslistor ("
+
+#~ msgid "Global options"
+#~ msgstr "Globala alternativ"
+
+#~ msgid "Whitelist file"
+#~ msgstr "Vitlista fil"
+
+#~ msgid "see list details"
+#~ msgstr "se listans detaljer"
+
+#~ msgid "Count"
+#~ msgstr "Räkna"
+
+#~ msgid "Do not write status info to flash"
+#~ msgstr "Skriv inte status info till flash"
 
-msgid "see list details"
-msgstr "se listans detaljer"
+#~ msgid "Redirect all DNS queries to the local resolver"
+#~ msgstr "Dirigera om alla DNS-förfrågning till den lokala resolvern"
index eeb0d97..c755446 100644 (file)
@@ -1,37 +1,62 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=UTF-8"
 
-msgid ""
-"). Note that list URLs and Shallalist category selections are not "
-"configurable via Luci."
+msgid "."
 msgstr ""
 
 msgid "Adblock"
 msgstr ""
 
-msgid "Available blocklist sources ("
+msgid "Adblock Domain Query"
+msgstr ""
+
+msgid "Adblock Logfile"
+msgstr ""
+
+msgid "Adblock version"
+msgstr ""
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid "Available blocklist sources."
 msgstr ""
 
 msgid "Backup directory"
 msgstr ""
 
-msgid "Backup options"
+msgid "Blocked domains (overall)"
 msgstr ""
 
 msgid "Blocklist sources"
 msgstr ""
 
+msgid "Collecting data..."
+msgstr ""
+
 msgid ""
 "Configuration of the adblock package to block ad/abuse domains by using DNS."
 msgstr ""
 
-msgid "Count"
+msgid "DNS backend"
 msgstr ""
 
 msgid "Description"
 msgstr ""
 
-msgid "Do not write status info to flash"
+msgid "Download Utility (SSL Library)"
+msgstr ""
+
+msgid "Edit Blacklist"
+msgstr ""
+
+msgid "Edit Configuration"
+msgstr ""
+
+msgid "Edit Whitelist"
 msgstr ""
 
 msgid "Enable adblock"
@@ -40,6 +65,14 @@ msgstr ""
 msgid "Enable blocklist backup"
 msgstr ""
 
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(&lt; 64 MB RAM)"
+msgstr ""
+
+msgid "Enable verbose debug logging"
+msgstr ""
+
 msgid "Enabled"
 msgstr ""
 
@@ -47,66 +80,134 @@ msgid "Extra options"
 msgstr ""
 
 msgid ""
-"File with whitelisted hosts/domains that are allowed despite being on a "
-"blocklist."
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
+
+msgid "For further information"
 msgstr ""
 
-msgid "Global options"
+msgid "Force Overall Sort"
 msgstr ""
 
-msgid "IPv4 blackhole ip address"
+msgid "Force local DNS"
 msgstr ""
 
-msgid "IPv6 blackhole ip address"
+msgid "Input file not found, please check your configuration."
 msgstr ""
 
-msgid "Last update of the blocklists"
+msgid "Invalid domain specified!"
 msgstr ""
 
-msgid "List date/state"
+msgid "Last rundate"
 msgstr ""
 
-msgid "Name of the logical lan interface"
+msgid "Loading"
+msgstr ""
+
+msgid "No"
+msgstr ""
+
+msgid ""
+"Note that list URLs and Shallalist category selections are configurable in "
+"the 'Advanced' section."
 msgstr ""
 
 msgid ""
 "Options for further tweaking in case the defaults are not suitable for you."
 msgstr ""
 
-msgid "Percentage of blocked packets (before last update, IPv4/IPv6)"
+msgid "Overview"
+msgstr ""
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+
+msgid "Query"
+msgstr ""
+
+msgid "Query domains"
+msgstr ""
+
+msgid "Redirect all DNS queries to the local resolver."
+msgstr ""
+
+msgid "Restrict interface trigger to certain interface(s)"
+msgstr ""
+
+msgid "Resume adblock"
+msgstr ""
+
+msgid "Runtime information"
+msgstr ""
+
+msgid "SSL req."
+msgstr ""
+
+msgid ""
+"Space separated list of interfaces that trigger adblock processing. To "
+"disable event driven (re-)starts remove all entries."
 msgstr ""
 
-msgid "Port of the adblock uhttpd instance"
+msgid "Status"
 msgstr ""
 
-msgid "Port of the adblock uhttpd instance for https links"
+msgid "Suspend / Resume adblock"
 msgstr ""
 
-msgid "Redirect all DNS queries to the local resolver"
+msgid "Suspend adblock"
 msgstr ""
 
 msgid ""
-"Skip writing update status information to the config file. Status fields on "
-"this page will not be updated."
+"This form allows you to modify the content of the adblock blacklist (%s)."
+"<br />"
 msgstr ""
 
-msgid "Statistics"
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+"<br />"
 msgstr ""
 
-msgid "Timeout for blocklist fetch (seconds)"
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
 msgstr ""
 
-msgid "Total count of blocked domains"
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
 msgstr ""
 
 msgid ""
-"When adblock is active, all DNS queries are redirected to the local resolver "
-"in this server by default. You can disable that to allow queries to external "
-"DNS servers."
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr ""
+
+msgid "Trigger delay"
+msgstr ""
+
+msgid "View Logfile"
+msgstr ""
+
+msgid "Waiting for command to complete..."
+msgstr ""
+
+msgid "Yes"
+msgstr ""
+
+msgid "active"
+msgstr ""
+
+msgid "n/a"
+msgstr ""
+
+msgid "no domains blocked"
 msgstr ""
 
-msgid "Whitelist file"
+msgid "see online documentation"
 msgstr ""
 
-msgid "see list details"
+msgid "suspended"
 msgstr ""
index e57921d..7ef853b 100644 (file)
@@ -1,56 +1,90 @@
+# liushuyu <liushuyu_011@163.com>, 2017.
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: kuoruan@gmail.com\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2017-04-15 21:35-0600\n"
+"Last-Translator: liushuyu <liushuyu011@gmail.com>\n"
+"Language-Team: Chinese <kde-i18n-doc@kde.org>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.5\n"
+"X-Generator: Poedit 2.0.1\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-msgid ""
-"). Note that list URLs and Shallalist category selections are not "
-"configurable via Luci."
-msgstr ")。需要注意的是列表URL和列表类别选项无法通过Luci设置。"
+msgid "."
+msgstr "."
 
 msgid "Adblock"
 msgstr "Adblock"
 
-msgid "Available blocklist sources ("
-msgstr "可用拦截列表来源("
+msgid "Adblock Domain Query"
+msgstr ""
+
+msgid "Adblock Logfile"
+msgstr "Adblock 日志文件"
+
+msgid "Adblock version"
+msgstr "Adblock 版本"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr ""
+
+msgid "Advanced"
+msgstr "高级"
+
+msgid "Available blocklist sources."
+msgstr "可用的 blocklist 来源"
 
 msgid "Backup directory"
 msgstr "备份目录"
 
-msgid "Backup options"
-msgstr "备份选项"
+msgid "Blocked domains (overall)"
+msgstr ""
 
 msgid "Blocklist sources"
 msgstr "拦截列表来源"
 
+msgid "Collecting data..."
+msgstr "正在收集数据..."
+
 msgid ""
 "Configuration of the adblock package to block ad/abuse domains by using DNS."
 msgstr "Adblock 配置工具,通过 DNS 来拦截广告和阻止域名。"
 
-msgid "Count"
-msgstr "数量"
+msgid "DNS backend"
+msgstr "DNS 后端"
 
 msgid "Description"
 msgstr "描述"
 
-msgid "Do not write status info to flash"
+msgid "Download Utility (SSL Library)"
 msgstr ""
 
+msgid "Edit Blacklist"
+msgstr "编辑黑名单"
+
+msgid "Edit Configuration"
+msgstr "编辑设置"
+
+msgid "Edit Whitelist"
+msgstr "编辑白名单"
+
 msgid "Enable adblock"
 msgstr "启用Adblock"
 
 msgid "Enable blocklist backup"
 msgstr "启用拦截规则备份"
 
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(&lt; 64 MB RAM)"
+msgstr ""
+
+msgid "Enable verbose debug logging"
+msgstr "启用详细调试输出"
+
 msgid "Enabled"
 msgstr "启用"
 
@@ -58,68 +92,194 @@ msgid "Extra options"
 msgstr "额外选项"
 
 msgid ""
-"File with whitelisted hosts/domains that are allowed despite being on a "
-"blocklist."
-msgstr "允许的主机/域名列表"
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
 
-msgid "Global options"
-msgstr "全局选项"
+msgid "For further information"
+msgstr "更多信息"
 
-msgid "IPv4 blackhole ip address"
-msgstr "IPv4禁止列表"
+msgid "Force Overall Sort"
+msgstr ""
+
+msgid "Force local DNS"
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr ""
 
-msgid "IPv6 blackhole ip address"
-msgstr "IPv6禁止列表"
+msgid "Invalid domain specified!"
+msgstr "无效域名!"
 
-msgid "Last update of the blocklists"
+msgid "Last rundate"
 msgstr ""
 
-msgid "List date/state"
-msgstr "å\88\97表æ\97¥æ\9c\9f\8a¶æ\80\81"
+msgid "Loading"
+msgstr "å\8a è½½ä¸­"
 
-msgid "Name of the logical lan interface"
-msgstr "LAN接口名称"
+msgid "No"
+msgstr "否"
+
+msgid ""
+"Note that list URLs and Shallalist category selections are configurable in "
+"the 'Advanced' section."
+msgstr ""
 
 msgid ""
 "Options for further tweaking in case the defaults are not suitable for you."
 msgstr "在默认设置并不适合你时的额外选项。"
 
-msgid "Percentage of blocked packets (before last update, IPv4/IPv6)"
+msgid "Overview"
+msgstr "总览"
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
 msgstr ""
 
-msgid "Port of the adblock uhttpd instance"
-msgstr "Adblock uhttpd端口"
+msgid "Query"
+msgstr "查询"
+
+msgid "Query domains"
+msgstr ""
+
+msgid "Redirect all DNS queries to the local resolver."
+msgstr ""
 
-msgid "Port of the adblock uhttpd instance for https links"
+msgid "Restrict interface trigger to certain interface(s)"
 msgstr ""
 
-msgid "Redirect all DNS queries to the local resolver"
-msgstr "将所有DNS查询都重定向到本地解析器"
+msgid "Resume adblock"
+msgstr "恢复 Adblock"
+
+msgid "Runtime information"
+msgstr "运行信息"
+
+msgid "SSL req."
+msgstr ""
 
 msgid ""
-"Skip writing update status information to the config file. Status fields on "
-"this page will not be updated."
+"Space separated list of interfaces that trigger adblock processing. To "
+"disable event driven (re-)starts remove all entries."
 msgstr ""
 
-msgid "Statistics"
+msgid "Status"
+msgstr "状态"
+
+msgid "Suspend / Resume adblock"
+msgstr "暂停/恢复 Adblock"
+
+msgid "Suspend adblock"
+msgstr "暂停 Adblock"
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+"<br />"
 msgstr ""
 
-msgid "Timeout for blocklist fetch (seconds)"
-msgstr "列表查询超时时间(秒)"
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+"<br />"
+msgstr ""
 
-msgid "Total count of blocked domains"
-msgstr "阻止域名总数"
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr ""
 
 msgid ""
-"When adblock is active, all DNS queries are redirected to the local resolver "
-"in this server by default. You can disable that to allow queries to external "
-"DNS servers."
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
 msgstr ""
-"当Adblock处于活动状态时,默认情况下会将所有的DNS查询重定向到此服务器的本地解"
-"析器。您可以禁用以允许查询外部DNS服务器。"
 
-msgid "Whitelist file"
-msgstr "白名单文件"
+msgid "Trigger delay"
+msgstr "触发延迟"
+
+msgid "View Logfile"
+msgstr "查看日志文件"
+
+msgid "Waiting for command to complete..."
+msgstr "正在执行命令..."
+
+msgid "Yes"
+msgstr "是"
+
+msgid "active"
+msgstr "已启用"
+
+msgid "n/a"
+msgstr ""
+
+msgid "no domains blocked"
+msgstr "没有被拦截的域名"
+
+msgid "see online documentation"
+msgstr "查看在线文档"
+
+msgid "suspended"
+msgstr "已暂停"
+
+#~ msgid "Backup options"
+#~ msgstr "备份选项"
+
+#~ msgid ""
+#~ "). Note that list URLs and Shallalist category selections are not "
+#~ "configurable via Luci."
+#~ msgstr ")。需要注意的是列表URL和列表类别选项无法通过Luci设置。"
+
+#~ msgid "Available blocklist sources ("
+#~ msgstr "可用拦截列表来源("
+
+#~ msgid ""
+#~ "File with whitelisted hosts/domains that are allowed despite being on a "
+#~ "blocklist."
+#~ msgstr "允许的主机/域名列表"
+
+#~ msgid "Global options"
+#~ msgstr "全局选项"
+
+#~ msgid "Whitelist file"
+#~ msgstr "白名单文件"
+
+#~ msgid "see list details"
+#~ msgstr "查看列表详情"
+
+#~ msgid "Count"
+#~ msgstr "数量"
+
+#~ msgid "IPv4 blackhole ip address"
+#~ msgstr "IPv4禁止列表"
+
+#~ msgid "IPv6 blackhole ip address"
+#~ msgstr "IPv6禁止列表"
+
+#~ msgid "List date/state"
+#~ msgstr "列表日期/状态"
+
+#~ msgid "Name of the logical lan interface"
+#~ msgstr "LAN接口名称"
+
+#~ msgid "Port of the adblock uhttpd instance"
+#~ msgstr "Adblock uhttpd端口"
+
+#~ msgid "Redirect all DNS queries to the local resolver"
+#~ msgstr "将所有DNS查询都重定向到本地解析器"
+
+#~ msgid "Timeout for blocklist fetch (seconds)"
+#~ msgstr "列表查询超时时间(秒)"
+
+#~ msgid "Total count of blocked domains"
+#~ msgstr "阻止域名总数"
 
-msgid "see list details"
-msgstr "查看列表详情"
+#~ msgid ""
+#~ "When adblock is active, all DNS queries are redirected to the local "
+#~ "resolver in this server by default. You can disable that to allow queries "
+#~ "to external DNS servers."
+#~ msgstr ""
+#~ "当Adblock处于活动状态时,默认情况下会将所有的DNS查询重定向到此服务器的本地"
+#~ "解析器。您可以禁用以允许查询外部DNS服务器。"
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
diff --git a/applications/luci-app-clamav/po/ja/clamav.po b/applications/luci-app-clamav/po/ja/clamav.po
new file mode 100644 (file)
index 0000000..c54c7b1
--- /dev/null
@@ -0,0 +1,130 @@
+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.12\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid "10"
+msgstr "10"
+
+msgid "1024"
+msgstr "1024"
+
+msgid "15"
+msgstr "15"
+
+msgid "150M"
+msgstr "150M"
+
+msgid "1M"
+msgstr "1M"
+
+msgid "20"
+msgstr "20"
+
+msgid "2048"
+msgstr "2048"
+
+msgid "2M"
+msgstr "2M"
+
+msgid "50M"
+msgstr "50M"
+
+msgid "512K"
+msgstr "512K"
+
+msgid "600"
+msgstr "600"
+
+msgid "Block encrypted archives"
+msgstr "暗号化されたアーカイブのブロック"
+
+msgid "ClamAV"
+msgstr "ClamAV"
+
+msgid "Database check every N sec"
+msgstr "データベース チェック間隔(秒)"
+
+msgid "Detect broken executables"
+msgstr "破損した実行ファイルの検出"
+
+msgid "Detect possibly unwanted apps"
+msgstr "不必要と思われるアプリケーションの検出"
+
+msgid "Enable verbose logging"
+msgstr "詳細なログの有効化"
+
+msgid "Follow directory symlinks"
+msgstr "ディレクトリ シンボリックリンクに従う"
+
+msgid "Follow file symlinks"
+msgstr "ファイル シンボリックリンクに従う"
+
+msgid "Log"
+msgstr "ログ"
+
+msgid "Log additional infection info"
+msgstr "追加の感染情報ログ"
+
+msgid "Log time with each message"
+msgstr "ログ メッセージ毎に時刻を付加"
+
+msgid "Max directory scan depth"
+msgstr "ディレクトリ スキャンの最大深度"
+
+msgid "Max number of threads"
+msgstr "スレッドの最大数"
+
+msgid "Max size of log file"
+msgstr "ログの最大サイズ"
+
+msgid "Max size of scanned file"
+msgstr ""
+
+msgid "No"
+msgstr "いいえ"
+
+msgid "Port range, highest port"
+msgstr "ポート範囲(上限)"
+
+msgid "Port range, lowest port"
+msgstr "ポート範囲(下限)"
+
+msgid "Scan ELF files"
+msgstr "ELF ファイルのスキャン"
+
+msgid "Scan MS Office and .msi files"
+msgstr "MS Office と .msi ファイルのスキャン"
+
+msgid "Scan RFC1341 messages split over many emails"
+msgstr ""
+
+msgid "Scan archives"
+msgstr "アーカイブのスキャン"
+
+msgid "Scan emails"
+msgstr "E-mailのスキャン"
+
+msgid "Scan pdf files"
+msgstr "PDF ファイルのスキャン"
+
+msgid "Scan portable executables"
+msgstr "ポータブル 実行ファイルのスキャン"
+
+msgid "Scan swf files"
+msgstr "SWF ファイルのスキャン"
+
+msgid "Settings"
+msgstr "設定"
+
+msgid "Yes"
+msgstr "はい"
diff --git a/applications/luci-app-clamav/po/templates/clamav.pot b/applications/luci-app-clamav/po/templates/clamav.pot
new file mode 100644 (file)
index 0000000..768f730
--- /dev/null
@@ -0,0 +1,119 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "10"
+msgstr ""
+
+msgid "1024"
+msgstr ""
+
+msgid "15"
+msgstr ""
+
+msgid "150M"
+msgstr ""
+
+msgid "1M"
+msgstr ""
+
+msgid "20"
+msgstr ""
+
+msgid "2048"
+msgstr ""
+
+msgid "2M"
+msgstr ""
+
+msgid "50M"
+msgstr ""
+
+msgid "512K"
+msgstr ""
+
+msgid "600"
+msgstr ""
+
+msgid "Block encrypted archives"
+msgstr ""
+
+msgid "ClamAV"
+msgstr ""
+
+msgid "Database check every N sec"
+msgstr ""
+
+msgid "Detect broken executables"
+msgstr ""
+
+msgid "Detect possibly unwanted apps"
+msgstr ""
+
+msgid "Enable verbose logging"
+msgstr ""
+
+msgid "Follow directory symlinks"
+msgstr ""
+
+msgid "Follow file symlinks"
+msgstr ""
+
+msgid "Log"
+msgstr ""
+
+msgid "Log additional infection info"
+msgstr ""
+
+msgid "Log time with each message"
+msgstr ""
+
+msgid "Max directory scan depth"
+msgstr ""
+
+msgid "Max number of threads"
+msgstr ""
+
+msgid "Max size of log file"
+msgstr ""
+
+msgid "Max size of scanned file"
+msgstr ""
+
+msgid "No"
+msgstr ""
+
+msgid "Port range, highest port"
+msgstr ""
+
+msgid "Port range, lowest port"
+msgstr ""
+
+msgid "Scan ELF files"
+msgstr ""
+
+msgid "Scan MS Office and .msi files"
+msgstr ""
+
+msgid "Scan RFC1341 messages split over many emails"
+msgstr ""
+
+msgid "Scan archives"
+msgstr ""
+
+msgid "Scan emails"
+msgstr ""
+
+msgid "Scan pdf files"
+msgstr ""
+
+msgid "Scan portable executables"
+msgstr ""
+
+msgid "Scan swf files"
+msgstr ""
+
+msgid "Settings"
+msgstr ""
+
+msgid "Yes"
+msgstr ""
diff --git a/applications/luci-app-clamav/po/zh-cn/clamav.po b/applications/luci-app-clamav/po/zh-cn/clamav.po
new file mode 100644 (file)
index 0000000..6a2c5df
--- /dev/null
@@ -0,0 +1,131 @@
+# liushuyu <liushuyu_011@163.com>, 2017.
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2017-04-15 21:37-0600\n"
+"Language-Team: Chinese <kde-i18n-doc@kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.0.1\n"
+"Last-Translator: liushuyu <liushuyu011@gmail.com>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: zh_CN\n"
+
+msgid "10"
+msgstr "10"
+
+msgid "1024"
+msgstr "1024"
+
+msgid "15"
+msgstr "15"
+
+msgid "150M"
+msgstr "150M"
+
+msgid "1M"
+msgstr "1M"
+
+msgid "20"
+msgstr "20"
+
+msgid "2048"
+msgstr "2048"
+
+msgid "2M"
+msgstr "2M"
+
+msgid "50M"
+msgstr "50M"
+
+msgid "512K"
+msgstr "512K"
+
+msgid "600"
+msgstr "600"
+
+msgid "Block encrypted archives"
+msgstr "拦截加密的归档文件"
+
+msgid "ClamAV"
+msgstr "ClamAV"
+
+msgid "Database check every N sec"
+msgstr "每 N 秒检测一次数据库"
+
+msgid "Detect broken executables"
+msgstr "检测破损的可执行文件"
+
+msgid "Detect possibly unwanted apps"
+msgstr "检测不受欢迎的软件"
+
+msgid "Enable verbose logging"
+msgstr "启用详细日志输出"
+
+msgid "Follow directory symlinks"
+msgstr "跟随目录符号链接"
+
+msgid "Follow file symlinks"
+msgstr "跟随文件符号链接"
+
+msgid "Log"
+msgstr "日志"
+
+msgid "Log additional infection info"
+msgstr "记录详细的感染信息"
+
+msgid "Log time with each message"
+msgstr "记录消息时间戳"
+
+msgid "Max directory scan depth"
+msgstr "最大扫描深度"
+
+msgid "Max number of threads"
+msgstr "最大线程数"
+
+msgid "Max size of log file"
+msgstr "最大日志大小"
+
+msgid "Max size of scanned file"
+msgstr "最大可扫描的文件大小"
+
+msgid "No"
+msgstr "否"
+
+msgid "Port range, highest port"
+msgstr "端口范围,最大端口"
+
+msgid "Port range, lowest port"
+msgstr "端口范围,最小端口"
+
+msgid "Scan ELF files"
+msgstr "扫描 ELF 文件"
+
+msgid "Scan MS Office and .msi files"
+msgstr "扫描 MS Office 文档和 .msi 安装包文件"
+
+msgid "Scan RFC1341 messages split over many emails"
+msgstr "扫描符合 RFC1341 邮件分离规范的邮件"
+
+msgid "Scan archives"
+msgstr "扫描归档文件"
+
+msgid "Scan emails"
+msgstr "扫描电子邮件"
+
+msgid "Scan pdf files"
+msgstr "扫描 PDF 文件"
+
+msgid "Scan portable executables"
+msgstr "扫描 PE (Windows) 可执行文件"
+
+msgid "Scan swf files"
+msgstr "扫描 SWF 文件"
+
+msgid "Settings"
+msgstr "设置"
+
+msgid "Yes"
+msgstr "是"
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 3b01a35..307951c 100644 (file)
@@ -1,26 +1,24 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2013-10-05 17:15+0200\n"
-"Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
+"Project-Id-Version: \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"
 "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"
-msgstr ""
+msgstr "事前認証無しでのコマンドの実行と、結果出力のダウンロードを許可します。"
 
 msgid "Allow the user to provide additional command line arguments"
 msgstr "コマンドラインに対する引数の追記を許可するか設定します"
@@ -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,16 +86,30 @@ 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."
-msgstr "このページでは、ウェブインターフェースから簡単にシェル・コマンドを実行することができます。"
+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 88c905a..69f9880 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright 2008 Steven Barth <steven@midlink.org>
 # Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
 # Copyright 2013 Manuel Munz <freifunk at somakoma dot de>
-# Copyright 2014-2016 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
+# Copyright 2014-2017 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
 #
 # This is free software, licensed under the Apache License, Version 2.0
 
@@ -16,7 +16,7 @@ PKG_VERSION:=2.4.8
 
 # Release == build
 # increase on changes of translation files
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_LICENSE:=Apache-2.0
 PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
index 63bb8bf..1dfa625 100755 (executable)
@@ -1,7 +1,7 @@
 -- Copyright 2008 Steven Barth <steven@midlink.org>
 -- Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
 -- Copyright 2013 Manuel Munz <freifunk at somakoma dot de>
--- Copyright 2014-2016 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
+-- Copyright 2014-2017 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
 -- Licensed to the public under the Apache License 2.0.
 
 module("luci.controller.ddns", package.seeall)
@@ -24,7 +24,7 @@ local srv_ver_min = "2.7.6"                   -- minimum version of service required
 local srv_ver_cmd = luci_helper .. [[ -V | awk {'print $2'}]]
 local app_name    = "luci-app-ddns"
 local app_title   = "Dynamic DNS"
-local app_version = "2.4.8-1"
+local app_version = "2.4.8-2"
 
 function index()
        local nxfs      = require "nixio.fs"            -- global definitions not available
@@ -180,12 +180,10 @@ local function _get_status()
                end
 
                -- get/set monitored interface and IP version
-               local iface     = s["interface"] or "_nonet_"
+               local iface     = s["interface"] or "wan"
                local use_ipv6  = tonumber(s["use_ipv6"]) or 0
-               if iface ~= "_nonet_" then
-                       local ipv = (use_ipv6 == 1) and "IPv6" or "IPv4"
-                       iface = ipv .. " / " .. iface
-               end
+               local ipv = (use_ipv6 == 1) and "IPv6" or "IPv4"
+               iface = ipv .. " / " .. iface
 
                -- try to get registered IP
                local lookup_host = s["lookup_host"] or "_nolookup_"
index 0bcfd44..b69d780 100644 (file)
@@ -14,6 +14,7 @@
        c = c + 1
 %>
        <input class="cbi-input-radio" onclick="cbi_d_update(this.id)" onchange="cbi_d_update(this.id)" type="radio"<%= attr("id", cbid..c) .. attr("name", cbid) .. attr("value", key) .. ifattr((self:cfgvalue(section) or self.default) == key, "checked", "checked") %> />
+       <label<%= attr("for", cbid..c) %>></label>
        <label<%= attr("for", cbid..c) %>><%=self.vallist[i]%></label>
 <% if c == self.size then c = 0 %><% if self.orientation == "horizontal" then %>&#160;<% else %><br /><% end %>
 <% end end %>
index 64b3dae..2efc125 100644 (file)
@@ -10,6 +10,7 @@
        attr("id", cbid) .. attr("name", cbid) .. attr("value", self.enabled or 1) ..
        ifattr((self:cfgvalue(section) or self.default) == self.enabled, "checked", "checked")
 %> />
+<label<%= attr("for", cbid)%>></label>
 
 <%+cbi/valuefooter%>
 <!-- ++ END ++ Dynamic DNS ++ overview_enabled.htm ++ -->
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 0424fff..1505b62 100644 (file)
@@ -9,6 +9,10 @@ include $(TOPDIR)/rules.mk
 LUCI_TITLE:=LuCI Diagnostics Tools (Device Info)
 LUCI_DEPENDS:=+luci-app-diag-core +smap +netdiscover +mac-to-devinfo +httping +smap-to-devinfo +netdiscover-to-devinfo @BROKEN
 
+define Package/luci-app-diag-devinfo/conffiles
+/etc/config/luci_devinfo
+endef
+
 include ../../luci.mk
 
 # call BuildPackage - OpenWrt buildroot signature
diff --git a/applications/luci-app-dynapoint/Makefile b/applications/luci-app-dynapoint/Makefile
new file mode 100644 (file)
index 0000000..83512db
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2016 The LuCI Team <luci@lists.subsignal.org>
+#
+# This is free software, licensed under the GNU General Public License v3.
+#
+
+include $(TOPDIR)/rules.mk
+
+LUCI_TITLE:=LuCI Support for DynaPoint
+LUCI_DEPENDS:=+dynapoint
+
+PKG_LICENSE:=GPL-3.0+
+PKG_MAINTAINER:=Tobias Ilte <tobias.ilte@campus.tu-berlin.de>
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
+
diff --git a/applications/luci-app-dynapoint/luasrc/controller/dynapoint.lua b/applications/luci-app-dynapoint/luasrc/controller/dynapoint.lua
new file mode 100644 (file)
index 0000000..6534863
--- /dev/null
@@ -0,0 +1,9 @@
+module("luci.controller.dynapoint", package.seeall)
+
+function index()
+   if not nixio.fs.access("/etc/config/dynapoint") then
+      return
+   end
+   entry({"admin", "services", "dynapoint"}, cbi("dynapoint"), _("DynaPoint"))
+end
+
diff --git a/applications/luci-app-dynapoint/luasrc/model/cbi/dynapoint.lua b/applications/luci-app-dynapoint/luasrc/model/cbi/dynapoint.lua
new file mode 100644 (file)
index 0000000..e6871a5
--- /dev/null
@@ -0,0 +1,99 @@
+local uci = require "luci.model.uci".cursor()
+local a = require "luci.model.ipkg"
+local DISP = require "luci.dispatcher"
+
+local wlcursor = luci.model.uci.cursor_state()
+local wireless = wlcursor:get_all("wireless")
+local ifaces = {}
+
+for k, v in pairs(wireless) do
+  if v[".type"] == "wifi-iface" then
+    table.insert(ifaces, v)
+  end
+end
+
+m = Map("dynapoint")
+m:chain("wireless")
+
+s = m:section(NamedSection, "internet", "rule", translate("Configuration"), translate("Check Internet connectivity via HTTP header download"))
+
+hosts = s:option(DynamicList, "hosts", translate("List of host addresses"), translate("List of host addresses (url or IP) to track and request http headers from"))
+hosts.datatype = "string"
+
+interval = s:option(Value, "interval", translate("Test-run interval"), translate("Time interval in seconds to re-start a new test run"))
+interval.datatype = "uinteger"
+interval.default = "30"
+
+offline_treshold = s:option(Value, "offline_threshold", translate("Switch_to_offline threshold"), translate("Failure counter after how many failed download attempts, the state is considered as offline"))
+offline_treshold.datatype = "uinteger"
+offline_treshold.default = "1"
+
+add_hostname_to_ssid = s:option(Flag, "add_hostname_to_ssid", translate("Append hostname to ssid"), translate("Append the router's hostname to the SSID when connectivity check fails"))
+add_hostname_to_ssid.rmempty = false
+
+
+if (a.installed("curl") == true) then
+  use_curl = s:option(Flag, "use_curl", translate("Use curl"), translate("Use curl instead of wget for testing the connectivity."))
+  use_curl.rmempty = false
+
+  curl_interface = s:option(Value, "curl_interface", translate("Used interface"), translate("Which interface should curl use. (Use ifconfig to find out)"))
+  curl_interface.datatype = "string"
+  curl_interface:depends("use_curl","1")
+  curl_interface.placeholder = "eth0"
+else
+  use_curl = s:option(Flag, "use_curl", translate("Use curl instead of wget"), translate("Curl is currently not installed.")
+  .." Please install the package in the "
+  ..[[<a href="]] .. DISP.build_url("admin", "system", "packages")
+  .. "?display=available&query=curl"..[[">]]
+  .. "Software Section" .. [[</a>]]
+  .. "."
+  )
+  use_curl.rmempty = false
+  use_curl.template = "dynapoint/cbi_checkbox"
+end
+
+m1 = Map("wireless", "DynaPoint", translate("Dynamic Access Point Manager"))
+
+aps = m1:section(TypedSection, "wifi-iface", translate("List of Wireless Virtual Interfaces (wVIF)"))
+aps.addremove = false
+aps.anonymous = true
+aps.template  = "cbi/tblsection"
+
+status = aps:option(DummyValue, "disabled", translate("WiFi Status"))
+status.template = "dynapoint/cbi_color"
+
+function status.cfgvalue(self,section)
+  local val = m1:get(section, "disabled")
+  if val == "1" then return translate("Disabled") end
+  if (val == nil or val == "0") then return translate("Enabled") end
+  return val
+end
+
+device = aps:option(DummyValue, "device", translate("Device"))
+function device.cfgvalue(self,section)
+  local dev = m1:get(section, "device")
+  local val = m1:get(dev, "hwmode")
+  if val == "11a" then return dev .. " (5 GHz)"  else
+  return dev .. " (2,4 GHz)"
+  end
+  return val
+end
+
+
+
+
+
+mode = aps:option(DummyValue, "mode", translate("Mode"))
+
+ssid = aps:option(DummyValue, "ssid", translate("SSID"))
+
+
+action = aps:option(ListValue, "dynapoint_rule", translate("Activate this wVIF if status is:"))
+action.widget="select"
+action:value("internet",translate("Online"))
+action:value("!internet",translate("Offline"))
+action:value("",translate("Not used by DynaPoint"))
+action.default = ""
+
+return m1,m
+
diff --git a/applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_checkbox.htm b/applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_checkbox.htm
new file mode 100644 (file)
index 0000000..5f8bcd5
--- /dev/null
@@ -0,0 +1,6 @@
+<%+cbi/valueheader%>
+
+<input class="cbi-input-checkbox" disabled data-update="click change" type="checkbox" id="cbid.dynapoint.internet.use_curl" name="cbid.dynapoint.internet.use_curl" value="1" />
+
+
+<%+cbi/valuefooter%>
diff --git a/applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_color.htm b/applications/luci-app-dynapoint/luasrc/view/dynapoint/cbi_color.htm
new file mode 100644 (file)
index 0000000..bfc710e
--- /dev/null
@@ -0,0 +1,18 @@
+<%+cbi/valueheader%>
+
+
+<%
+if (self:cfgvalue(section) == translate("Disabled")) then
+%>
+
+<span id="<%=cbid%>.disabled" style="background-color:red;"><%=self:cfgvalue(section)%></span>
+
+<%
+else 
+%>
+<span id="<%=cbid%>.disabled" style="background-color:lime;"><%=self:cfgvalue(section)%></span>
+<%
+end
+%>
+
+<%+cbi/valuefooter%>
diff --git a/applications/luci-app-dynapoint/po/de/dynapoint.po b/applications/luci-app-dynapoint/po/de/dynapoint.po
new file mode 100644 (file)
index 0000000..e2507e4
--- /dev/null
@@ -0,0 +1,106 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"PO-Revision-Date: 2016-08-31 15:51+0200\n"
+"Language-Team: German\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Activate this wVIF if status is:"
+msgstr "Aktiviere diese drahtlose Schnittstelle wenn:"
+
+msgid "Append hostname to ssid"
+msgstr "Anfügen des hostname zur SSID"
+
+msgid "Append the router's hostname to the SSID when connectivity check fails"
+msgstr ""
+"Fügt den hostname des routers zur SSID an, wenn die Verbindungsüberprüfung "
+"fehl schlägt"
+
+msgid "Check Internet connectivity via HTTP header download"
+msgstr "Testen der Internetverfügbarkeit via HTTP header download"
+
+msgid "Configuration"
+msgstr "Konfiguration"
+
+msgid "Curl is currently not installed."
+msgstr "Curl ist momentan nicht installiert."
+
+msgid "Device"
+msgstr "Gerät"
+
+msgid "Disabled"
+msgstr "Deaktiviert"
+
+msgid "DynaPoint"
+msgstr ""
+
+msgid "Dynamic Access Point Manager"
+msgstr ""
+
+msgid "Enabled"
+msgstr "Aktiviert"
+
+msgid ""
+"Failure counter after how many failed download attempts, the state is "
+"considered as offline"
+msgstr ""
+"Anzahl der fehlgeschlagenen Downloadversuche, nach denen die Verbindung als offline angesehen wird"
+
+msgid "List of Wireless Virtual Interfaces (wVIF)"
+msgstr "Liste der Drahtlosen virtuellen Schnittstellen"
+
+msgid "List of host addresses"
+msgstr "Liste der Zieladressen"
+
+msgid ""
+"List of host addresses (url or IP) to track and request http headers from"
+msgstr "Liste der Zieladressen (URL oder IP) für den HTTP header download"
+
+msgid "Mode"
+msgstr "Modus"
+
+msgid "Not used by DynaPoint"
+msgstr "Nicht von DynaPoint benutzt"
+
+msgid "Offline"
+msgstr "Offline"
+
+msgid "Online"
+msgstr "Online"
+
+msgid "SSID"
+msgstr ""
+
+msgid "Switch_to_offline threshold"
+msgstr "Offline-Schwelle"
+
+msgid "Test-run interval"
+msgstr "Testlaufintervall"
+
+msgid "Time interval in seconds to re-start a new test run"
+msgstr "Zeitintervall in Sekunden für einen Testlauf"
+
+msgid "Use curl"
+msgstr "Curl benutzen"
+
+msgid "Use curl instead of wget"
+msgstr "Curl anstatt wget benutzen"
+
+msgid "Use curl instead of wget for testing the connectivity."
+msgstr "Curl anstatt wget benutzen, um die Internetverbindung zu überprüfen."
+
+msgid "Used interface"
+msgstr "Benutztes interface"
+
+msgid "Which interface should curl use. (Use ifconfig to find out)"
+msgstr ""
+"Welches Interface von curl benutzt werden soll. (ifconfig benutzen, um das "
+"herauszufinden"
+
+msgid "WiFi Status"
+msgstr ""
+
diff --git a/applications/luci-app-dynapoint/po/ja/dynapoint.po b/applications/luci-app-dynapoint/po/ja/dynapoint.po
new file mode 100644 (file)
index 0000000..7503198
--- /dev/null
@@ -0,0 +1,108 @@
+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: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid "Activate this wVIF if status is:"
+msgstr "wVIFを有効化する接続ステータス:"
+
+msgid "Append hostname to ssid"
+msgstr "ホスト名をSSIDに追加する"
+
+msgid "Append the router's hostname to the SSID when connectivity check fails"
+msgstr "接続性のチェックが失敗した場合、ルーターのホスト名をSSIDに追加します。"
+
+msgid "Check Internet connectivity via HTTP header download"
+msgstr ""
+"HTTP ヘッダーのダウンロードを通して、インターネットの接続性をチェックします。"
+
+msgid "Configuration"
+msgstr "設定"
+
+msgid "Curl is currently not installed."
+msgstr "curl は現在インストールされていません。"
+
+msgid "Device"
+msgstr "デバイス"
+
+msgid "Disabled"
+msgstr "無効"
+
+msgid "DynaPoint"
+msgstr "DynaPoint"
+
+msgid "Dynamic Access Point Manager"
+msgstr "ダイナミック アクセスポイント マネージャー"
+
+msgid "Enabled"
+msgstr "有効"
+
+msgid ""
+"Failure counter after how many failed download attempts, the state is "
+"considered as offline"
+msgstr "状態をオフラインと見なすまでの、ダウンロード試行の失敗回数です。"
+
+msgid "List of Wireless Virtual Interfaces (wVIF)"
+msgstr "無線仮想インターフェース (wVIF) のリスト"
+
+msgid "List of host addresses"
+msgstr "ホストアドレスのリスト"
+
+msgid ""
+"List of host addresses (url or IP) to track and request http headers from"
+msgstr ""
+"HTTP ヘッダーの追跡およびリクエストを行う、ホスト アドレス(URLまたはIP)のリ"
+"ストです。"
+
+msgid "Mode"
+msgstr "モード"
+
+msgid "Not used by DynaPoint"
+msgstr "DynaPointで使用しない"
+
+msgid "Offline"
+msgstr "オフライン"
+
+msgid "Online"
+msgstr "オンライン"
+
+msgid "SSID"
+msgstr "SSID"
+
+msgid "Switch_to_offline threshold"
+msgstr "オフライン化閾値"
+
+msgid "Test-run interval"
+msgstr "テスト実行間隔"
+
+msgid "Time interval in seconds to re-start a new test run"
+msgstr "接続性テストを再実行するまでの時間間隔(秒)です。"
+
+msgid "Use curl"
+msgstr "curl を使用する"
+
+msgid "Use curl instead of wget"
+msgstr "wget の代わりに curl を使用する"
+
+msgid "Use curl instead of wget for testing the connectivity."
+msgstr "接続性のテストの際、wget の代わりに curl を使用します。"
+
+msgid "Used interface"
+msgstr "使用するインターフェース"
+
+msgid "Which interface should curl use. (Use ifconfig to find out)"
+msgstr ""
+"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-dynapoint/po/templates/dynapoint.pot b/applications/luci-app-dynapoint/po/templates/dynapoint.pot
new file mode 100644 (file)
index 0000000..f352425
--- /dev/null
@@ -0,0 +1,92 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Activate this wVIF if status is:"
+msgstr ""
+
+msgid "Append hostname to ssid"
+msgstr ""
+
+msgid "Append the router's hostname to the SSID when connectivity check fails"
+msgstr ""
+
+msgid "Check Internet connectivity via HTTP header download"
+msgstr ""
+
+msgid "Configuration"
+msgstr ""
+
+msgid "Curl is currently not installed."
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Disabled"
+msgstr ""
+
+msgid "DynaPoint"
+msgstr ""
+
+msgid "Dynamic Access Point Manager"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid ""
+"Failure counter after how many failed download attempts, the state is "
+"considered as offline"
+msgstr ""
+
+msgid "List of Wireless Virtual Interfaces (wVIF)"
+msgstr ""
+
+msgid "List of host addresses"
+msgstr ""
+
+msgid ""
+"List of host addresses (url or IP) to track and request http headers from"
+msgstr ""
+
+msgid "Mode"
+msgstr ""
+
+msgid "Not used by DynaPoint"
+msgstr ""
+
+msgid "Offline"
+msgstr ""
+
+msgid "Online"
+msgstr ""
+
+msgid "SSID"
+msgstr ""
+
+msgid "Switch_to_offline threshold"
+msgstr ""
+
+msgid "Test-run interval"
+msgstr ""
+
+msgid "Time interval in seconds to re-start a new test run"
+msgstr ""
+
+msgid "Use curl"
+msgstr ""
+
+msgid "Use curl instead of wget"
+msgstr ""
+
+msgid "Use curl instead of wget for testing the connectivity."
+msgstr ""
+
+msgid "Used interface"
+msgstr ""
+
+msgid "Which interface should curl use. (Use ifconfig to find out)"
+msgstr ""
+
+msgid "WiFi Status"
+msgstr ""
diff --git a/applications/luci-app-dynapoint/root/etc/uci-defaults/40_luci-dynapoint b/applications/luci-app-dynapoint/root/etc/uci-defaults/40_luci-dynapoint
new file mode 100644 (file)
index 0000000..7287ccd
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# needed for "Save and Apply" to restart dynapoint
+uci -q batch <<-EOF >/dev/null
+       delete ucitrack.@dynapoint[-1]
+       add ucitrack dynapoint
+       set ucitrack.@dynapoint[-1].init="dynapoint"
+       commit dynapoint
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
+
diff --git a/applications/luci-app-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 968ac36..2b3cee3 100644 (file)
@@ -22,6 +22,10 @@ end
 function o.write(self, section, value)
        value = value:gsub("\r\n?", "\n")
        fs.writefile("/etc/firewall.user", value)
+       require("luci.sys").call("/etc/init.d/firewall restart >/dev/null 2<&1")
+       require("nixio").syslog('info', 'Restarting firewall on custom /etc/firewall.user change')
 end
 
+f.submit = translate("Restart Firewall")
+
 return f
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 5d62f02..913fb75 100644 (file)
@@ -295,6 +295,9 @@ msgstr "Redirigeix trànsit entrant coincidit al port donat en el host intern"
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Redirigeix trànsit entrant coincidit al host intern especificat"
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "Restringeix la mascarada a les subxarxes de destí donades"
 
index 2d4b251..1ab1360 100644 (file)
@@ -292,6 +292,9 @@ msgstr ""
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Přesměrovat vybraný příchozí provoz na uvedeného vnitřního hostitele."
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "Omezit maškarádování na uvedené cílové podsítě"
 
index c9237d7..448f951 100644 (file)
@@ -292,6 +292,9 @@ msgstr ""
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Gefilterte Verbindungen an den angegeben internen Host weiterleiten"
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "NAT auf die angegebenen Ziel-Subnetze beschränken"
 
index f54e3d6..2229bf0 100644 (file)
@@ -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 ""
 
index 6e3b9eb..9dc277d 100644 (file)
@@ -285,6 +285,9 @@ msgstr ""
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Redirect matched incoming traffic to the specified internal host"
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr ""
 
index 4a3e182..670b4db 100644 (file)
@@ -294,6 +294,9 @@ msgstr ""
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Redirigir el tráfico de entrada que coincida a la máquina interna"
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "Restringir enmascaramiento a las subredes destino"
 
index 6d3111a..cdff282 100644 (file)
@@ -290,6 +290,9 @@ msgstr ""
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Rediriger le trafic entrant correspondant vers l'hôte interne spécifié"
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr ""
 "Restreindre la substitution d'adresses (Masquerade) à ces sous-réseaux "
index 54316ad..ce0ad04 100644 (file)
@@ -275,6 +275,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 ""
 
index 78c4b26..c201e3d 100644 (file)
@@ -296,6 +296,9 @@ msgstr "Átirányítja az egyező bejövő forgalmat a belső gép megadott port
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Átirányítja az egyező bejövő forgalmat a megadott belső géphez"
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "Álcázás korlátozása a megadott cél alhálózatokra"
 
index 064f63d..8853524 100644 (file)
@@ -272,8 +272,10 @@ msgstr ""
 msgid ""
 "Port forwarding allows remote computers on the Internet to connect to a "
 "specific computer or service within the private LAN."
-msgstr "L'inoltro delle porte permette ai computer in remoto su Internet di" 
-"connettersi a uno specifico computer o servizio presente nella tua LAN privata"
+msgstr ""
+"L'inoltro delle porte permette ai computer in remoto su Internet "
+"diconnettersi a uno specifico computer o servizio presente nella tua LAN "
+"privata"
 
 msgid "Protocol"
 msgstr "Protocollo"
@@ -285,6 +287,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 ""
 
@@ -380,8 +385,9 @@ msgstr ""
 msgid ""
 "The firewall creates zones over your network interfaces to control network "
 "traffic flow."
-msgstr "Il firewall crea delle zone nelle tue interfacce di rete per controllare" 
-"il flusso del traffico."
+msgstr ""
+"Il firewall crea delle zone nelle tue interfacce di rete per controllareil "
+"flusso del traffico."
 
 msgid ""
 "The options below control the forwarding policies between this zone (%s) and "
index 4e88189..0e8d71c 100644 (file)
@@ -1,26 +1,26 @@
 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: 2012-11-14 17:32+0200\n"
-"Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2016-12-24 02:55+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: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "%s in %s"
-msgstr ""
+msgstr "%s (%s)"
 
 msgid "%s%s with %s"
 msgstr "%s%s ,%s"
 
 msgid "%s, %s in %s"
-msgstr ""
+msgstr "%s, %s (%s)"
 
 msgid "(Unnamed Entry)"
 msgstr "(名前設定の無いエントリー)"
@@ -142,10 +142,10 @@ msgid "Forward"
 msgstr "転送"
 
 msgid "Forward to"
-msgstr ""
+msgstr "転送先"
 
 msgid "Friday"
-msgstr ""
+msgstr "金曜日"
 
 msgid "From %s in %s"
 msgstr "送信元 %s (%s)"
@@ -199,7 +199,7 @@ msgid "Masquerading"
 msgstr "マスカレード"
 
 msgid "Match"
-msgstr ""
+msgstr "対象"
 
 msgid "Match ICMP type"
 msgstr "ICMPタイプの一致"
@@ -224,10 +224,10 @@ msgstr ""
 "フィックと一致したトラフィックが対象になります。"
 
 msgid "Monday"
-msgstr ""
+msgstr "月曜日"
 
 msgid "Month Days"
-msgstr ""
+msgstr "月間"
 
 msgid "Name"
 msgstr "名前"
@@ -301,6 +301,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 "設定された宛先サブネットへのマスカレードを制限する"
 
@@ -334,7 +337,7 @@ msgid "SNAT port"
 msgstr "SNAT ポート"
 
 msgid "Saturday"
-msgstr ""
+msgstr "土曜日"
 
 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 # Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua      #
@@ -394,19 +397,19 @@ msgid "Source zone"
 msgstr "送信元ゾーン"
 
 msgid "Start Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "開始日 (yyyy-mm-dd)"
 
 msgid "Start Time (hh:mm:ss)"
-msgstr ""
+msgstr "開始時刻 (hh:mm:ss)"
 
 msgid "Stop Date (yyyy-mm-dd)"
-msgstr ""
+msgstr "停止日 (yyyy-mm-dd)"
 
 msgid "Stop Time (hh:mm:ss)"
-msgstr ""
+msgstr "停止時刻 (hh:mm:ss)"
 
 msgid "Sunday"
-msgstr ""
+msgstr "日曜日"
 
 msgid ""
 "The firewall creates zones over your network interfaces to control network "
@@ -444,7 +447,6 @@ msgstr ""
 "このページでは、各トラフィックルールの送信元・宛先ホストの設定などの詳細設定"
 "を行うことができます。"
 
-#, 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 "
@@ -459,10 +461,10 @@ msgstr ""
 "のゾーンに属するかを設定します。"
 
 msgid "Thursday"
-msgstr ""
+msgstr "木曜日"
 
 msgid "Time in UTC"
-msgstr ""
+msgstr "UTC時刻を使用"
 
 msgid "To %s at %s on <var>this device</var>"
 msgstr "宛先 %s, %s (<var>デバイス</var>)"
@@ -495,19 +497,19 @@ msgstr ""
 "設定することができます。"
 
 msgid "Tuesday"
-msgstr ""
+msgstr "火曜日"
 
 msgid "Via %s"
-msgstr ""
+msgstr "経由 %s"
 
 msgid "Via %s at %s"
-msgstr ""
+msgstr "経由 %s , %s"
 
 msgid "Wednesday"
-msgstr ""
+msgstr "水曜日"
 
 msgid "Week Days"
-msgstr ""
+msgstr "曜日"
 
 msgid ""
 "You may specify multiple by selecting \"-- custom --\" and then entering "
@@ -550,4 +552,4 @@ msgid "reject"
 msgstr "拒否"
 
 msgid "traffic"
-msgstr ""
+msgstr "トラフィック"
diff --git a/applications/luci-app-firewall/po/ko/firewall.po b/applications/luci-app-firewall/po/ko/firewall.po
new file mode 100644 (file)
index 0000000..f43fdc8
--- /dev/null
@@ -0,0 +1,505 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-03-30 17:00+0200\n"
+"PO-Revision-Date: 2012-11-14 17:32+0200\n"
+"Last-Translator: Weongyo Jeong <weongyo@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Pootle 2.0.6\n"
+
+msgid "%s in %s"
+msgstr ""
+
+msgid "%s%s with %s"
+msgstr "%s%s ,%s"
+
+msgid "%s, %s in %s"
+msgstr ""
+
+msgid "(Unnamed Entry)"
+msgstr ""
+
+msgid "(Unnamed Rule)"
+msgstr ""
+
+msgid "(Unnamed SNAT)"
+msgstr ""
+
+msgid "<var>%d</var> pkts. per <var>%s</var>"
+msgstr ""
+
+msgid "<var>%d</var> pkts. per <var>%s</var>, burst <var>%d</var> pkts."
+msgstr ""
+
+msgid "<var>%s</var> and limit to %s"
+msgstr ""
+
+msgid "Action"
+msgstr ""
+
+msgid "Add"
+msgstr ""
+
+msgid "Add and edit..."
+msgstr "추가 후 수정..."
+
+msgid "Advanced Settings"
+msgstr ""
+
+msgid "Allow forward from <em>source zones</em>:"
+msgstr "<em>Source zone</em> 로부터의 forward 허용:"
+
+msgid "Allow forward to <em>destination zones</em>:"
+msgstr "<em>Destination zone</em> 으로 forward 허용:"
+
+msgid "Any"
+msgstr ""
+
+msgid "Covered networks"
+msgstr ""
+
+msgid "Custom Rules"
+msgstr "Custom Rule"
+
+msgid ""
+"Custom rules allow you to execute arbritary iptables commands which are not "
+"otherwise covered by the firewall framework. The commands are executed after "
+"each firewall restart, right after the default ruleset has been loaded."
+msgstr ""
+"Custom rule 은 방화벽 UI 로 해결이 되지 않는 임의의 iptables 명령을 실행할 "
+"수 있도록 합니다.  입력된 명령어들은 매 방화벽 재시작시 실행되는데 default "
+"ruleset 이 load 된 후 시점입니다."
+
+msgid "Destination IP address"
+msgstr "Destination IP 주소"
+
+msgid "Destination address"
+msgstr "Destination 주소"
+
+msgid "Destination port"
+msgstr ""
+
+msgid "Destination zone"
+msgstr ""
+
+msgid "Do not rewrite"
+msgstr ""
+
+msgid "Drop invalid packets"
+msgstr ""
+
+msgid "Enable"
+msgstr "활성화"
+
+msgid "Enable NAT Loopback"
+msgstr "NAT Loopback 활성화"
+
+msgid "Enable SYN-flood protection"
+msgstr "SYN-flood protection 활성화"
+
+msgid "Enable logging on this zone"
+msgstr "zone 의 logging 활성화"
+
+msgid "External IP address"
+msgstr "외부 IP 주소"
+
+msgid "External port"
+msgstr "외부 port"
+
+msgid "External zone"
+msgstr "외부 zone"
+
+msgid "Extra arguments"
+msgstr "추가 argument"
+
+msgid "Firewall"
+msgstr "방화벽"
+
+msgid "Firewall - Custom Rules"
+msgstr "방화벽 - Custom Rules"
+
+msgid "Firewall - Port Forwards"
+msgstr "방화벽 - Port Forwards"
+
+msgid "Firewall - Traffic Rules"
+msgstr "방화벽 - Traffic Rules"
+
+msgid "Firewall - Zone Settings"
+msgstr "방화벽 - Zone 설정"
+
+msgid "Force connection tracking"
+msgstr ""
+
+msgid "Forward"
+msgstr ""
+
+msgid "Forward to"
+msgstr ""
+
+msgid "Friday"
+msgstr "금요일"
+
+msgid "From %s in %s"
+msgstr ""
+
+msgid "From %s in %s with source %s"
+msgstr ""
+
+msgid "From %s in %s with source %s and %s"
+msgstr ""
+
+msgid "General Settings"
+msgstr ""
+
+msgid "IPv4"
+msgstr ""
+
+msgid "IPv4 and IPv6"
+msgstr ""
+
+msgid "IPv4 only"
+msgstr ""
+
+msgid "IPv6"
+msgstr ""
+
+msgid "IPv6 only"
+msgstr ""
+
+msgid "Input"
+msgstr ""
+
+msgid "Inter-Zone Forwarding"
+msgstr ""
+
+msgid "Internal IP address"
+msgstr "내부 IP 주소"
+
+msgid "Internal port"
+msgstr "내부 port"
+
+msgid "Internal zone"
+msgstr "내부 zone"
+
+msgid "Limit log messages"
+msgstr ""
+
+msgid "MSS clamping"
+msgstr ""
+
+msgid "Masquerading"
+msgstr ""
+
+msgid "Match"
+msgstr ""
+
+msgid "Match ICMP type"
+msgstr ""
+
+msgid "Match forwarded traffic to the given destination port or port range."
+msgstr ""
+
+msgid ""
+"Match incoming traffic directed at the given destination port or port range "
+"on this host"
+msgstr ""
+
+msgid ""
+"Match incoming traffic originating from the given source port or port range "
+"on the client host."
+msgstr ""
+
+msgid "Monday"
+msgstr "월요일"
+
+msgid "Month Days"
+msgstr ""
+
+msgid "Name"
+msgstr "이름"
+
+msgid "New SNAT rule"
+msgstr "새로운 SNAT rule"
+
+msgid "New forward rule"
+msgstr "새로운 forward rule"
+
+msgid "New input rule"
+msgstr "새로운 input rule"
+
+msgid "New port forward"
+msgstr "새로운 port forward"
+
+msgid "New source NAT"
+msgstr "새로운 source NAT"
+
+msgid "Only match incoming traffic directed at the given IP address."
+msgstr ""
+
+msgid "Only match incoming traffic from these MACs."
+msgstr ""
+
+msgid "Only match incoming traffic from this IP or range."
+msgstr ""
+
+msgid ""
+"Only match incoming traffic originating from the given source port or port "
+"range on the client host"
+msgstr ""
+
+msgid "Open ports on router"
+msgstr ""
+
+msgid "Other..."
+msgstr ""
+
+msgid "Output"
+msgstr ""
+
+msgid "Passes additional arguments to iptables. Use with care!"
+msgstr "iptables 명령에 추가 인자들을 더합니다.  조심해 사용하세요!"
+
+msgid "Port Forwards"
+msgstr "Port Forward"
+
+msgid ""
+"Port forwarding allows remote computers on the Internet to connect to a "
+"specific computer or service within the private LAN."
+msgstr ""
+"Port forwarding 기능은 인터넷 상의 원격 컴퓨터가 내부 LAN 에 속한 특정 컴퓨터"
+"나 서비스에 접속할 수 있도록 합니다."
+
+msgid "Protocol"
+msgstr ""
+
+msgid ""
+"Redirect matched incoming traffic to the given port on the internal host"
+msgstr ""
+
+msgid "Redirect matched incoming traffic to the specified internal host"
+msgstr ""
+
+msgid "Restart Firewall"
+msgstr ""
+
+msgid "Restrict Masquerading to given destination subnets"
+msgstr "주어진 destination subnet 으로 Masquerading 제한"
+
+msgid "Restrict Masquerading to given source subnets"
+msgstr "주어진 source subnet 으로 Masquerading 제한"
+
+msgid "Restrict to address family"
+msgstr "Address family 제한"
+
+msgid "Rewrite matched traffic to the given address."
+msgstr ""
+
+msgid ""
+"Rewrite matched traffic to the given source port. May be left empty to only "
+"rewrite the IP address."
+msgstr ""
+
+msgid "Rewrite to source %s"
+msgstr ""
+
+msgid "Rewrite to source %s, %s"
+msgstr ""
+
+msgid "SNAT IP address"
+msgstr ""
+
+msgid "SNAT port"
+msgstr ""
+
+msgid "Saturday"
+msgstr "토요일"
+
+msgid "Source IP address"
+msgstr "Source IP 주소"
+
+msgid "Source MAC address"
+msgstr "Source MAC 주소"
+
+msgid "Source NAT"
+msgstr ""
+
+msgid ""
+"Source NAT is a specific form of masquerading which allows fine grained "
+"control over the source IP used for outgoing traffic, for example to map "
+"multiple WAN addresses to internal subnets."
+msgstr ""
+"Source NAT 기능은 masquerading 의 한 형태로써 outgoing 트래픽이 사용할 "
+"source IP 를 세밀하게 제어할 수 있습니다.  예를 들어 다수의 WAN 주소들을 내"
+"부 subnet 에 매핑(mapping) 할 경우 사용됩니다."
+
+msgid "Source address"
+msgstr "Source 주소"
+
+msgid "Source port"
+msgstr ""
+
+msgid "Source zone"
+msgstr ""
+
+msgid "Start Date (yyyy-mm-dd)"
+msgstr "시작 날짜 (yyyy-mm-dd)"
+
+msgid "Start Time (hh:mm:ss)"
+msgstr "시작 시간 (hh:mm:ss)"
+
+msgid "Stop Date (yyyy-mm-dd)"
+msgstr "종료 날짜 (yyyy-mm-dd)"
+
+msgid "Stop Time (hh:mm:ss)"
+msgstr "종료 시간 (hh:mm:ss)"
+
+msgid "Sunday"
+msgstr "일요일"
+
+msgid ""
+"The firewall creates zones over your network interfaces to control network "
+"traffic flow."
+msgstr ""
+"방화벽 기능을 이용하여 네트워크 인터페이스와 연결된 zone 을 생성할 수 있고 이"
+"를 이용하여 네트워크 traffic flow 를 제어할 수 있습니다."
+
+msgid ""
+"The options below control the forwarding policies between this zone (%s) and "
+"other zones. <em>Destination zones</em> cover forwarded traffic "
+"<strong>originating from %q</strong>. <em>Source zones</em> match forwarded "
+"traffic from other zones <strong>targeted at %q</strong>. The forwarding "
+"rule is <em>unidirectional</em>, e.g. a forward from lan to wan does "
+"<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 를 허락하는 것이 아닙니다."
+
+msgid ""
+"This page allows you to change advanced properties of the port forwarding "
+"entry. In most cases there is no need to modify those settings."
+msgstr ""
+"이 메뉴에서는 port forwarding 의 고급 설정 정보를 변경할 수 있습니다. 대부분"
+"의 경우 이 설정을 수정할 일이 없습니다."
+
+msgid ""
+"This page allows you to change advanced properties of the traffic rule "
+"entry, such as matched source and destination hosts."
+msgstr ""
+"이 메뉴에서는 traffic rule 항목의 고급 설정, 예를 들어 source host 와 "
+"destination host 매칭, 을 변경할 수 있습니다."
+
+#, fuzzy
+msgid ""
+"This section defines common properties of %q. The <em>input</em> and "
+"<em>output</em> options set the default policies for traffic entering and "
+"leaving this zone while the <em>forward</em> option describes the policy for "
+"forwarded traffic between different networks within the zone. <em>Covered "
+"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 의 영향을 받을 네트워크들을 지정할 수 있습니다."
+
+msgid "Thursday"
+msgstr "목요일"
+
+msgid "Time in UTC"
+msgstr "UTC 기준시"
+
+msgid "To %s at %s on <var>this device</var>"
+msgstr ""
+
+msgid "To %s in %s"
+msgstr ""
+
+msgid "To %s on <var>this device</var>"
+msgstr ""
+
+msgid "To %s, %s in %s"
+msgstr ""
+
+msgid "To source IP"
+msgstr ""
+
+msgid "To source port"
+msgstr ""
+
+msgid "Traffic Rules"
+msgstr "Traffic Rule"
+
+msgid ""
+"Traffic rules define policies for packets traveling between different zones, "
+"for example to reject traffic between certain hosts or to open WAN ports on "
+"the router."
+msgstr ""
+"Traffic rule 은 서로 다른 zone 사이를 오가는 패킷들에 대한 정책을 정의합니"
+"다. 예를 들어 특정 host 들 사이의 트래픽을 차단하거나 공유기의 WAN port 를 "
+"open 할때 사용됩니다."
+
+msgid "Tuesday"
+msgstr "화요일"
+
+msgid "Via %s"
+msgstr ""
+
+msgid "Via %s at %s"
+msgstr ""
+
+msgid "Wednesday"
+msgstr "수요일"
+
+msgid "Week Days"
+msgstr "주일"
+
+msgid ""
+"You may specify multiple by selecting \"-- custom --\" and then entering "
+"protocols separated by space."
+msgstr ""
+
+msgid "Zone %q"
+msgstr ""
+
+msgid "Zone ⇒ Forwardings"
+msgstr ""
+
+msgid "Zones"
+msgstr "Zone 내역"
+
+msgid "accept"
+msgstr ""
+
+msgid "any"
+msgstr ""
+
+msgid "any host"
+msgstr ""
+
+msgid "any router IP"
+msgstr ""
+
+msgid "any zone"
+msgstr ""
+
+msgid "don't track"
+msgstr ""
+
+msgid "drop"
+msgstr ""
+
+msgid "reject"
+msgstr ""
+
+msgid "traffic"
+msgstr ""
index 185aeb9..b82e2c1 100644 (file)
@@ -274,6 +274,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 ""
 
index e39eee7..59167db 100644 (file)
@@ -291,6 +291,9 @@ msgstr ""
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Viderekoble matchet innkommende trafikk til den angitte interne vert"
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "Begrens Masquerading til oppgitt destinasjons subnett"
 
index 7a598d8..2eea8c3 100644 (file)
@@ -300,6 +300,9 @@ msgstr ""
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Przekieruj ruch przychodzący do wskazanego hosta w sieci wewnętrznej"
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "Ogranicz maskaradę do wskazanych sieci docelowych"
 
index c1cfb42..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"
@@ -295,6 +295,9 @@ msgstr ""
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Redireciona tráfego entrante para o computador interno especificado"
 
+msgid "Restart Firewall"
+msgstr "Reiniciar o Firewall"
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr "Restringe o mascaramento para uma subrede de destino específica"
 
@@ -327,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"
@@ -357,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 "
@@ -408,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 "
@@ -424,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>"
@@ -460,7 +462,7 @@ msgstr ""
 "ou abrir portas WAN no roteador."
 
 msgid "Tuesday"
-msgstr ""
+msgstr "Terça-feira"
 
 msgid "Via %s"
 msgstr "Via %s"
@@ -469,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 "
index 70bf2fa..f552616 100644 (file)
@@ -297,6 +297,9 @@ msgstr ""
 msgid "Redirect matched incoming traffic to the specified internal host"
 msgstr "Redirecionar o tráfego de entrada correspondente para o host interno"
 
+msgid "Restart Firewall"
+msgstr ""
+
 msgid "Restrict Masquerading to given destination subnets"
 msgstr ""
 
index 432a41b..69b911e 100644 (file)
@@ -279,6 +279,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 ""
 
index 294d9db..98bc92d 100644 (file)
@@ -300,6 +300,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 "Использовать маскарадинг только для указанных подсетей-получателей"
 
index 59613a8..f45e74b 100644 (file)
@@ -275,6 +275,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 ""
 
index 79af5a2..2e169fb 100644 (file)
@@ -276,6 +276,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 ""
 
index 7ea06e0..d1e8eec 100644 (file)
@@ -268,6 +268,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 ""
 
index 89cbfe1..1b5444f 100644 (file)
@@ -275,6 +275,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 ""
 
index b946d6b..1c4117f 100644 (file)
@@ -295,6 +295,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 "Обмежити підміну заданими підмережами призначення"
 
index 93d6d66..6c00a6f 100644 (file)
@@ -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 ""
 
index 48d22b0..d36eeea 100644 (file)
@@ -282,6 +282,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 "要限制IP动态伪装的目标子网"
 
index b768d43..b89cfab 100644 (file)
@@ -280,6 +280,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 "限制偽裝到已給予的目標子網路"
 
index 3fbd88a..ba7a856 100644 (file)
@@ -8,8 +8,6 @@ include $(TOPDIR)/rules.mk
 
 LUCI_TITLE:=Fwknopd config - web config for the firewall knock daemon
 LUCI_DEPENDS:=+fwknopd +qrencode
-PKG_VERSION:=1.0
-PKG_RELEASE:=1
 PKG_LICENSE:=GPLv2
 PKG_MAINTAINER:=Jonathan Bennett <JBennett@incomsystems.biz>
 include ../../luci.mk
index 096724f..4358374 100644 (file)
@@ -1,19 +1,19 @@
 -- Copyright 2015 Jonathan Bennett <jbennett@incomsystems.biz>
 -- Licensed to the public under the GNU General Public License v2.
-
+tmp = 0
 m = Map("fwknopd", translate("Firewall Knock Operator"))
 
 s = m:section(TypedSection, "global", translate("Enable Uci/Luci control")) -- Set uci control on or off
 s.anonymous=true
 s:option(Flag, "uci_enabled", translate("Enable config overwrite"), translate("When unchecked, the config files in /etc/fwknopd will be used as is, ignoring any settings here."))
-qr = s:option(DummyValue, "note0", "dummy")
-qr.template = "fwknopd-qr"
-qr:depends("uci_enabled", "1")
 
 s = m:section(TypedSection, "access", translate("access.conf stanzas")) -- set the access.conf settings
 s.anonymous=true
 s.addremove=true
-s.dynamic=true
+qr = s:option(DummyValue, "note0", "dummy")
+qr.tmp = tmp
+qr.template = "fwknopd-qr"
+qr:depends("uci_enabled", "1")
 s:option(Value, "SOURCE", "SOURCE", translate("Use ANY for any source ip"))
 k1 = s:option(Value, "KEY", "KEY", translate("Define the symmetric key used for decrypting an incoming SPA packet that is encrypted by the fwknop client with Rijndael."))
 k1:depends("keytype", translate("Normal Key"))
@@ -40,15 +40,13 @@ s:option(Value, "REQUIRE_SOURCE_ADDRESS", "REQUIRE_SOURCE_ADDRESS", translate("F
                                        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."))
-s:option(DummyValue, "note1", translate("Enter custom access.conf variables below:"))
 
 s = m:section(TypedSection, "config", translate("fwknopd.conf config options")) 
 s.anonymous=true
-s.dynamic=true
 s:option(Value, "MAX_SPA_PACKET_AGE", "MAX_SPA_PACKET_AGE", translate("Maximum age in seconds that an SPA packet will be accepted. defaults to 120 seconds"))
 s:option(Value, "PCAP_INTF", "PCAP_INTF", translate("Specify the ethernet interface on which fwknopd will sniff packets."))
 s:option(Value, "ENABLE_IPT_FORWARDING", "ENABLE_IPT_FORWARDING", translate("Allow SPA clients to request access to services through an iptables firewall instead of just to it."))
-s:option(DummyValue, "note2", translate("Enter custom fwknopd.conf variables below:"))
+s:option(Value, "ENABLE_NAT_DNS", "ENABLE_NAT_DNS", translate("Allow SPA clients to request forwarding destination by DNS name."))
 
 return m
 
index 9e6e818..5773f52 100644 (file)
@@ -1 +1,2 @@
-<% print(luci.sys.exec("sh /usr/sbin/gen-qr.sh")) %>
+<% print(luci.sys.exec("sh /usr/sbin/gen-qr.sh " .. self.tmp)) %>
+<% self.tmp = self.tmp + 1 %>
index d75c99d..fbdd8d7 100644 (file)
@@ -17,6 +17,9 @@ msgstr ""
 "Allow SPA clients to request access to services through an iptables firewall "
 "instead of just to it."
 
+msgid "Allow SPA clients to request forwarding destination by DNS name."
+msgstr ""
+
 msgid "Base 64 key"
 msgstr "Base 64 key"
 
@@ -55,12 +58,6 @@ msgstr "Enable Uci/Luci control"
 msgid "Enable config overwrite"
 msgstr "Enable config overwrite"
 
-msgid "Enter custom access.conf variables below:"
-msgstr "Enter custom access.conf variables below:"
-
-msgid "Enter custom fwknopd.conf variables below:"
-msgstr "Enter custom fwknopd.conf variables below:"
-
 msgid "Firewall Knock Daemon"
 msgstr "Firewall Knock Daemon"
 
@@ -111,3 +108,9 @@ msgstr "access.conf stanzas"
 
 msgid "fwknopd.conf config options"
 msgstr "fwknopd.conf config options"
+
+#~ msgid "Enter custom access.conf variables below:"
+#~ msgstr "Enter custom access.conf variables below:"
+
+#~ msgid "Enter custom fwknopd.conf variables below:"
+#~ msgstr "Enter custom fwknopd.conf variables below:"
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"
index 4fb616f..1010ba7 100644 (file)
@@ -6,6 +6,9 @@ msgid ""
 "instead of just to it."
 msgstr ""
 
+msgid "Allow SPA clients to request forwarding destination by DNS name."
+msgstr ""
+
 msgid "Base 64 key"
 msgstr ""
 
@@ -34,12 +37,6 @@ msgstr ""
 msgid "Enable config overwrite"
 msgstr ""
 
-msgid "Enter custom access.conf variables below:"
-msgstr ""
-
-msgid "Enter custom fwknopd.conf variables below:"
-msgstr ""
-
 msgid "Firewall Knock Daemon"
 msgstr ""
 
index 01b85de..65ef012 100644 (file)
@@ -16,6 +16,7 @@ uci set fwknopd.@access[0].hkeytype='Base 64 key'
 uci set fwknopd.@access[0].KEY_BASE64=`fwknopd --key-gen | awk '/^KEY/ {print $2;}'`
 uci set fwknopd.@access[0].HMAC_KEY_BASE64=`fwknopd --key-gen | awk '/^HMAC/ {print $2;}'`
 uci set fwknopd.@config[0].ENABLE_IPT_FORWARDING='y'
+uci set fwknopd.@config[0].ENABLE_NAT_DNS='y'
 
 uci commit fwknopd
 rm -f /tmp/luci-indexcache
index 97493da..abca5d3 100644 (file)
@@ -1,9 +1,13 @@
 #!/bin/sh
+entry_num=0
+if [ "$1" != "" ]; then
+entry_num=$1
+fi
 
-key_base64=$(uci get fwknopd.@access[0].KEY_BASE64)
-key=$(uci get fwknopd.@access[0].KEY)
-hmac_key_base64=$(uci get fwknopd.@access[0].HMAC_KEY_BASE64)
-hmac_key=$(uci get fwknopd.@access[0].HMAC_KEY)
+key_base64=$(uci get fwknopd.@access[$entry_num].KEY_BASE64)
+key=$(uci get fwknopd.@access[$entry_num].KEY)
+hmac_key_base64=$(uci get fwknopd.@access[$entry_num].HMAC_KEY_BASE64)
+hmac_key=$(uci get fwknopd.@access[$entry_num].HMAC_KEY)
 
 if [ $key_base64 != "" ]; then
 qr="KEY_BASE64:$key_base64"
index f273a55..9a981ac 100644 (file)
@@ -10,6 +10,6 @@ function index()
 
        local page
 
-       page = entry({"admin", "services", "hd_idle"}, cbi("hd_idle"), _("hd-idle"), 60)
+       page = entry({"admin", "services", "hd_idle"}, cbi("hd_idle"), _("HDD Idle"), 60)
        page.dependent = true
 end
index 70b04af..c15fdc0 100644 (file)
@@ -3,8 +3,8 @@
 
 require("nixio.fs")
 
-m = Map("hd-idle", "hd-idle",
-       translate("hd-idle is a utility program for spinning-down external " ..
+m = Map("hd-idle", translate("HDD Idle"),
+       translate("HDD Idle is a utility program for spinning-down external " ..
                "disks after a period of idle time."))
 
 s = m:section(TypedSection, "hd-idle", translate("Settings"))
@@ -18,9 +18,9 @@ for dev in nixio.fs.glob("/dev/[sh]d[a-z]") do
        disk:value(nixio.fs.basename(dev))
 end
 
-s:option(Value, "idle_time_interval", translate("Idle-time")).default = 10
+s:option(Value, "idle_time_interval", translate("Idle time")).default = 10
 s.rmempty = true
-unit = s:option(ListValue, "idle_time_unit", translate("Idle-time unit"))
+unit = s:option(ListValue, "idle_time_unit", translate("Idle time unit"))
 unit.default = "minutes"
 unit:value("minutes", translate("min"))
 unit:value("hours", translate("h"))
index 29618a8..10ca4cd 100644 (file)
@@ -21,10 +21,20 @@ msgstr "Disc"
 msgid "Enable"
 msgstr "Habilita"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle és un programa per ralentitzar els discos externs després d'un "
+"període de temps inactiu."
+
+msgid "Idle time"
 msgstr "Temps d'inactivitat"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Unitat de temps d'inactivitat"
 
 msgid "Settings"
@@ -34,16 +44,6 @@ msgstr "Ajusts"
 msgid "h"
 msgstr "h"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle és un programa per ralentitzar els discos externs després d'un "
-"període de temps inactiu."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "min"
index e2deb9b..b775392 100644 (file)
@@ -21,10 +21,20 @@ msgstr "Disk"
 msgid "Enable"
 msgstr "Povolit"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle je utilita pro vypnutí externích pevných disků po určité době "
+"nečinnosti."
+
+msgid "Idle time"
 msgstr "Čas nečinnosti"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Čas nečinnosti - jednotka"
 
 msgid "Settings"
@@ -34,16 +44,6 @@ msgstr "Nastavení"
 msgid "h"
 msgstr "h"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle je utilita pro vypnutí externích pevných disků po určité době "
-"nečinnosti."
-
 # Minut (ne minimum)
 msgid "min"
 msgstr "min"
index fa54896..79fa603 100644 (file)
@@ -19,10 +19,20 @@ msgstr "Festplatte"
 msgid "Enable"
 msgstr "Aktivieren"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle ist ein Hilfsprogramm um externe Festplatten nach einer "
+"festgelegten Leerlaufzeit herunter zu fahren."
+
+msgid "Idle time"
 msgstr "Leerlaufzeit"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Leerlaufzeiteinheit"
 
 msgid "Settings"
@@ -32,16 +42,6 @@ msgstr "Einstellungen"
 msgid "h"
 msgstr "Stunden"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle ist ein Hilfsprogramm um externe Festplatten nach einer festgelegten "
-"Leerlaufzeit herunter zu fahren."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "Minuten"
index 4d7c23d..e4f006a 100644 (file)
@@ -19,10 +19,18 @@ msgstr "Δίσκος"
 msgid "Enable"
 msgstr "Ενεργοποίηση"
 
-msgid "Idle-time"
+msgid "HDD Idle"
 msgstr ""
 
-msgid "Idle-time unit"
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+
+msgid "Idle time"
+msgstr ""
+
+msgid "Idle time unit"
 msgstr ""
 
 msgid "Settings"
@@ -32,14 +40,6 @@ msgstr "Ρυθμίσεις"
 msgid "h"
 msgstr "ω"
 
-msgid "hd-idle"
-msgstr ""
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "λεπτά"
index 7aa4db5..3ed519f 100644 (file)
@@ -17,11 +17,21 @@ msgstr "Disk"
 msgid "Enable"
 msgstr "Enable"
 
-msgid "Idle-time"
-msgstr "Idle-time"
+msgid "HDD Idle"
+msgstr ""
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+
+msgid "Idle time"
+msgstr "Idle time"
 
-msgid "Idle-time unit"
-msgstr "Idle-time unit"
+msgid "Idle time unit"
+msgstr "Idle time unit"
 
 msgid "Settings"
 msgstr "Settings"
@@ -30,16 +40,6 @@ msgstr "Settings"
 msgid "h"
 msgstr "h"
 
-msgid "hd-idle"
-msgstr ""
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "min"
index d2bb017..09dd3b8 100644 (file)
@@ -19,10 +19,20 @@ msgstr "Disco"
 msgid "Enable"
 msgstr "Activar"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle es un programa que gestiona el reposo de discos externos tras un "
+"tiempo de inactividad."
+
+msgid "Idle time"
 msgstr "Tiempo de inactividad"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Unidad de tiempo"
 
 msgid "Settings"
@@ -32,16 +42,6 @@ msgstr "Configuración"
 msgid "h"
 msgstr "h"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle es un programa que gestiona el reposo de discos externos tras un "
-"tiempo de inactividad."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "minutos"
index 00c092d..ea30bf1 100644 (file)
@@ -19,10 +19,20 @@ msgstr "Disque"
 msgid "Enable"
 msgstr "Activer"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle est un utilitaire pour arrêter la rotation des disques externes "
+"après une période d'inactivité."
+
+msgid "Idle time"
 msgstr "Temps d'inactivité"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Unité de temps"
 
 msgid "Settings"
@@ -32,16 +42,6 @@ msgstr "Réglages"
 msgid "h"
 msgstr "h"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle est un utilitaire pour arrêter la rotation des disques externes "
-"après une période d'inactivité."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "min"
index 0ffde90..8a73d5f 100644 (file)
@@ -21,10 +21,20 @@ msgstr "כונן"
 msgid "Enable"
 msgstr "אפשר"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr ""
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle הינה תוכנת שירות שמטרתה להקטין את מהירות הסיבוב של כוננים חיצוניים "
+"לאחר זמן מסוים של חוסר פעילות."
+
+msgid "Idle time"
 msgstr "זמן חוסר פעילות"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "יחידת זמן חוסר פעילות"
 
 msgid "Settings"
@@ -34,16 +44,6 @@ msgstr "הגדרות"
 msgid "h"
 msgstr "ש'"
 
-msgid "hd-idle"
-msgstr ""
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle הינה תוכנת שירות שמטרתה להקטין את מהירות הסיבוב של כוננים חיצוניים "
-"לאחר זמן מסוים של חוסר פעילות."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "דק'"
index 543a8fc..d902ee0 100644 (file)
@@ -21,10 +21,20 @@ msgstr "Lemez"
 msgid "Enable"
 msgstr "Engedélyezés"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle egy a külső lemezek adott üresjárati idő után történő leállítására "
+"szolgáló segédprogram."
+
+msgid "Idle time"
 msgstr "Üresjárati idő"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Üresjárati idő egysége"
 
 msgid "Settings"
@@ -34,16 +44,6 @@ msgstr "Beállítások"
 msgid "h"
 msgstr "óra"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle egy a külső lemezek adott üresjárati idő után történő leállítására "
-"szolgáló segédprogram."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "perc"
index ffd118d..63751c3 100644 (file)
@@ -19,10 +19,20 @@ msgstr "Disco"
 msgid "Enable"
 msgstr "Abilita"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle è un programma per mettere in standby i dischi esterni dopo un "
+"periodo di inattività."
+
+msgid "Idle time"
 msgstr "Tempo di inattività"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Unità di misura del tempo di inattività"
 
 msgid "Settings"
@@ -32,16 +42,6 @@ msgstr "Opzioni"
 msgid "h"
 msgstr "ora/e"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"HD-idle è un programma per mettere in standby i dischi esterni dopo un "
-"periodo di inattività."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "min"
index 9e724eb..6023778 100644 (file)
@@ -19,10 +19,20 @@ msgstr "ディスク"
 msgid "Enable"
 msgstr "有効"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idleはアイドル時に外部ディスクをスピンダウンさせるための、ユーティリティ"
+"プログラムです。"
+
+msgid "Idle time"
 msgstr "アイドル時間"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "アイドル時間 (単位)"
 
 msgid "Settings"
@@ -32,16 +42,6 @@ msgstr "設定"
 msgid "h"
 msgstr "時"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idleはアイドル時に外部ディスクをスピンダウンさせるための、ユーティリティプ"
-"ログラムです。"
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "分"
index 45402b8..361f1ac 100644 (file)
@@ -18,25 +18,25 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
-msgid "Idle-time"
+msgid "HDD Idle"
 msgstr ""
 
-msgid "Idle-time unit"
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
 msgstr ""
 
-msgid "Settings"
+msgid "Idle time"
 msgstr ""
 
-# Hours
-msgid "h"
+msgid "Idle time unit"
 msgstr ""
 
-msgid "hd-idle"
+msgid "Settings"
 msgstr ""
 
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
+# Hours
+msgid "h"
 msgstr ""
 
 # Minutes (not minimum)
index dc0c2f8..6482a29 100644 (file)
@@ -10,10 +10,20 @@ msgstr "Disk"
 msgid "Enable"
 msgstr "Aktiver"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle er et verktøy for å spinne ned eksterne disker etter en periode med "
+"inaktivitet."
+
+msgid "Idle time"
 msgstr "Tid inaktiv"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Tidsenhet"
 
 msgid "Settings"
@@ -22,16 +32,6 @@ msgstr "Innstillinger"
 msgid "h"
 msgstr "timer"
 
-msgid "hd-idle"
-msgstr "Hd-Idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle er et verktøy for å spinne ned eksterne disker etter en periode med "
-"inaktivitet."
-
 msgid "min"
 msgstr "minutter"
 
index c6522c1..29c286f 100644 (file)
@@ -20,10 +20,20 @@ msgstr "Dysk"
 msgid "Enable"
 msgstr "Włącz"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle jest narzędziem do zwalniania obrotów zewnętrznych dysków po "
+"określonym czasie bezczynności."
+
+msgid "Idle time"
 msgstr "Czas bezczynności"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Jednostka czasu bezczynności"
 
 msgid "Settings"
@@ -33,16 +43,6 @@ msgstr "Ustawienia"
 msgid "h"
 msgstr "godz."
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle jest narzędziem do zwalniania obrotów zewnętrznych dysków po "
-"określonym czasie bezczynności."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "min"
index 0aaca93..adcf063 100644 (file)
@@ -19,10 +19,20 @@ msgstr "Disco"
 msgid "Enable"
 msgstr "Habilitar"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle é um programa utilitário para ativar o modo \"economia de energia"
+"\" (spinning-down) de discos externos após um período de ociosidade."
+
+msgid "Idle time"
 msgstr "Tempo de ociosidade"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Unidade do tempo da ociosidade"
 
 msgid "Settings"
@@ -32,16 +42,6 @@ msgstr "Configurações"
 msgid "h"
 msgstr "horas"
 
-msgid "hd-idle"
-msgstr "Hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"Hd-idle é um programa utilitário para ativar o modo \"economia de energia"
-"\" (spinning-down) de discos externos após um período de ociosidade."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "minutos"
index 16cb085..81a6ae2 100644 (file)
@@ -19,10 +19,20 @@ msgstr "Disco"
 msgid "Enable"
 msgstr "Ativar"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle é um programa utilitário para activar o modo \"economia de energia"
+"\" (spinning-down) de discos externos após um período de ociosidade."
+
+msgid "Idle time"
 msgstr "Tempo de ociosidade"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Unidade de tempo de ociosidade"
 
 msgid "Settings"
@@ -32,16 +42,6 @@ msgstr "Configurações"
 msgid "h"
 msgstr "h"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle é um programa utilitário para activar o modo \"economia de energia"
-"\" (spinning-down) de discos externos após um período de ociosidade."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "min"
index ae6a8b0..31311ce 100644 (file)
@@ -22,10 +22,20 @@ msgstr "Disc"
 msgid "Enable"
 msgstr "Activeaza"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle este un utilitar pentru a oprit din rotatie hard disc-urile externe "
+"dupa o anumita perioada de inactivitate."
+
+msgid "Idle time"
 msgstr "Timp de inactivitate"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Unitatea de timp pentru masurarea inactivitatii"
 
 msgid "Settings"
@@ -35,16 +45,6 @@ msgstr "Setari"
 msgid "h"
 msgstr "ore"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle este un utilitar pentru a oprit din rotatie hard disc-urile externe "
-"dupa o anumita perioada de inactivitate."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "minute"
index 45d4a51..e58a32f 100644 (file)
@@ -21,10 +21,20 @@ msgstr "Диск"
 msgid "Enable"
 msgstr "Включить"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"Утилита HDD Idle позволяет замедлять внешние диски после определённого "
+"времени бездействия."
+
+msgid "Idle time"
 msgstr "Время бездействия"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Единицы времени бездействия"
 
 msgid "Settings"
@@ -34,16 +44,6 @@ msgstr "Настройки"
 msgid "h"
 msgstr "ч"
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"Утилита hd-idle позволяет замедлять внешние диски после определённого "
-"времени бездействия."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "мин"
index 0ae82d8..aa82e96 100644 (file)
@@ -14,24 +14,24 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
-msgid "Idle-time"
+msgid "HDD Idle"
 msgstr ""
 
-msgid "Idle-time unit"
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
 msgstr ""
 
-msgid "Settings"
+msgid "Idle time"
 msgstr ""
 
-msgid "h"
+msgid "Idle time unit"
 msgstr ""
 
-msgid "hd-idle"
+msgid "Settings"
 msgstr ""
 
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
+msgid "h"
 msgstr ""
 
 msgid "min"
index 1d63095..f2ce8f1 100644 (file)
@@ -15,24 +15,24 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
-msgid "Idle-time"
+msgid "HDD Idle"
 msgstr ""
 
-msgid "Idle-time unit"
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
 msgstr ""
 
-msgid "Settings"
+msgid "Idle time"
 msgstr ""
 
-msgid "h"
+msgid "Idle time unit"
 msgstr ""
 
-msgid "hd-idle"
+msgid "Settings"
 msgstr ""
 
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
+msgid "h"
 msgstr ""
 
 msgid "min"
index 56079ed..b8aedcd 100644 (file)
@@ -7,24 +7,24 @@ msgstr ""
 msgid "Enable"
 msgstr ""
 
-msgid "Idle-time"
+msgid "HDD Idle"
 msgstr ""
 
-msgid "Idle-time unit"
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
 msgstr ""
 
-msgid "Settings"
+msgid "Idle time"
 msgstr ""
 
-msgid "h"
+msgid "Idle time unit"
 msgstr ""
 
-msgid "hd-idle"
+msgid "Settings"
 msgstr ""
 
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
+msgid "h"
 msgstr ""
 
 msgid "min"
index f9ace87..aed11b6 100644 (file)
@@ -21,10 +21,20 @@ msgstr "Disk"
 msgid "Enable"
 msgstr "Kullanıma Aç"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "Harddisk-Park"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"Harddisk-Park belirli bir zaman sonra diskleri beklemeye alan bir yardımcı "
+"programdır"
+
+msgid "Idle time"
 msgstr "Bekleme Zamanı"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "bekleme zamanı birimi"
 
 msgid "Settings"
@@ -34,16 +44,6 @@ msgstr "Ayarlar"
 msgid "h"
 msgstr "s"
 
-msgid "hd-idle"
-msgstr "Harddisk-Park"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"Harddisk-Park belirli bir zaman sonra diskleri beklemeye alan bir yardımcı "
-"programdır"
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "d"
index 129fd7b..3d8e45c 100644 (file)
@@ -22,10 +22,19 @@ msgstr "Диск"
 msgid "Enable"
 msgstr "Активувати"
 
-msgid "Idle-time"
+#, fuzzy
+msgid "HDD Idle"
+msgstr "HD-простій"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+
+msgid "Idle time"
 msgstr "Час простою"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr ""
 
 msgid "Settings"
@@ -35,15 +44,6 @@ msgstr "Налаштування"
 msgid "h"
 msgstr ""
 
-#, fuzzy
-msgid "hd-idle"
-msgstr "HD-простій"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "хв"
index 03ee2c1..a5d4ffe 100644 (file)
@@ -20,12 +20,22 @@ msgstr "Ổ đĩa"
 msgid "Enable"
 msgstr "Kích hoạt debug"
 
+msgid "HDD Idle"
+msgstr "HDD Idle"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr ""
+"HDD Idle là một chương trình tiện ích để quay các đĩa ngoài sau một khoảng "
+"thời gian idle."
+
 #, fuzzy
-msgid "Idle-time"
+msgid "Idle time"
 msgstr "Thời gian Idle"
 
 #, fuzzy
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "Đơn vị thời gian Idle"
 
 msgid "Settings"
@@ -35,16 +45,6 @@ msgstr "Sắp đặt"
 msgid "h"
 msgstr ""
 
-msgid "hd-idle"
-msgstr "hd-idle"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr ""
-"hd-idle là một chương trình tiện ích để quay các đĩa ngoài sau một khoảng "
-"thời gian idle."
-
 # Minutes (not minimum)
 msgid "min"
 msgstr ""
index 8bc14dc..d67abfd 100644 (file)
@@ -19,10 +19,18 @@ msgstr "硬盘"
 msgid "Enable"
 msgstr "开启"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "硬盘休眠"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr "硬盘休眠是一个让硬盘在空闲一段时间后休眠的工具"
+
+msgid "Idle time"
 msgstr "空闲时间"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "空闲时间单位"
 
 msgid "Settings"
@@ -32,14 +40,6 @@ msgstr "设置"
 msgid "h"
 msgstr "小时"
 
-msgid "hd-idle"
-msgstr "硬盘休眠"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr "硬盘休眠是一个让硬盘在空闲一段时间后休眠的工具"
-
 # Minutes (not minimum)
 msgid "min"
 msgstr "分钟"
index bd69785..dee14cb 100644 (file)
@@ -17,10 +17,18 @@ msgstr "磁碟"
 msgid "Enable"
 msgstr "啟用"
 
-msgid "Idle-time"
+msgid "HDD Idle"
+msgstr "硬碟休眠"
+
+msgid ""
+"HDD Idle is a utility program for spinning-down external disks after a "
+"period of idle time."
+msgstr "硬碟休眠是控制當硬碟閒置一段時間後進入休眠模式的工具"
+
+msgid "Idle time"
 msgstr "休眠時間"
 
-msgid "Idle-time unit"
+msgid "Idle time unit"
 msgstr "休眠時間單位"
 
 msgid "Settings"
@@ -29,14 +37,6 @@ msgstr "設定"
 msgid "h"
 msgstr "小時"
 
-msgid "hd-idle"
-msgstr "硬碟休眠"
-
-msgid ""
-"hd-idle is a utility program for spinning-down external disks after a period "
-"of idle time."
-msgstr "硬碟休眠是控制當硬碟閒置一段時間後進入休眠模式的工具"
-
 msgid "min"
 msgstr "分鐘"
 
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/ja/mjpg-streamer.po b/applications/luci-app-mjpg-streamer/po/ja/mjpg-streamer.po
new file mode 100644 (file)
index 0000000..7da3444
--- /dev/null
@@ -0,0 +1,171 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ja\n"
+"X-Generator: Poedit 1.8.11\n"
+
+msgid "Allow ringbuffer to exceed limit by this amount"
+msgstr "リングバッファーがこの量だけ制限を超過することを許可します。"
+
+msgid "Ask for username and password on connect"
+msgstr "接続時にユーザー名とパスワードを確認します。"
+
+msgid "Authentication required"
+msgstr "認証が必要"
+
+msgid "Auto"
+msgstr "自動"
+
+msgid "Automatic disabling of MJPEG mode"
+msgstr "MJPEGモードの自動無効化"
+
+msgid "Blink"
+msgstr "点滅"
+
+msgid "Check to save the stream to an mjpeg file"
+msgstr "MJPEGファイルに保存するにはチェックします。"
+
+msgid "Command to run"
+msgstr "実行するコマンド"
+
+msgid "Device"
+msgstr "デバイス"
+
+msgid "Do not initalize dynctrls of Linux-UVC driver"
+msgstr "Linux-UVCドライバのdynctrlsを初期化しません。"
+
+msgid "Don't initalize dynctrls"
+msgstr "dynctrlsを初期化しない"
+
+msgid "Drop frames smaller then this limit"
+msgstr "この制限よりも小さいフレームをドロップする"
+
+msgid "Enable MJPG-streamer"
+msgstr "MJPG-streamerを有効化します。"
+
+msgid "Enable YUYV format"
+msgstr "YUYV形式を有効化"
+
+msgid "Enabled"
+msgstr "有効"
+
+msgid "Exceed"
+msgstr "超過"
+
+msgid ""
+"Execute command after saving picture. Mjpg-streamer parse the filename as "
+"first parameter to your script."
+msgstr ""
+"画像保存後にコマンドを実行します。Mjpg-streamerは、ファイル名をスクリプトの最"
+"初の引数として解釈します。"
+
+msgid "File input"
+msgstr "ファイル入力"
+
+msgid "File output"
+msgstr "ファイル出力"
+
+msgid "Folder"
+msgstr "フォルダー"
+
+msgid "Folder that contains webpages"
+msgstr "ウェブページを含むフォルダー"
+
+msgid "Frames per second"
+msgstr "1秒当たりのフレーム数"
+
+msgid "General"
+msgstr "一般設定"
+
+msgid "HTTP output"
+msgstr "HTTP 出力"
+
+msgid "Input plugin"
+msgstr "入力プラグイン"
+
+msgid "Interval between saving pictures"
+msgstr "画像の保存間隔"
+
+msgid "JPEG compression quality"
+msgstr "JPEG 圧縮品質"
+
+msgid "Led control"
+msgstr "LED 制御"
+
+msgid "MJPG-streamer"
+msgstr "MJPG-streamer"
+
+msgid "Max. number of pictures to hold"
+msgstr "保持する画像の最大数です。"
+
+msgid "Mjpeg output"
+msgstr "MJPEG 出力"
+
+msgid "Off"
+msgstr "消灯"
+
+msgid "On"
+msgstr "点灯"
+
+msgid "Output plugin"
+msgstr "出力プラグイン"
+
+msgid "Password"
+msgstr "パスワード"
+
+msgid "Plugin settings"
+msgstr "プラグイン設定"
+
+msgid "Port"
+msgstr "ポート"
+
+msgid "Resolution"
+msgstr "解像度"
+
+msgid "Ring buffer size"
+msgstr "リングバッファー サイズ"
+
+msgid "Set folder to save pictures"
+msgstr "画像を保存するフォルダーを設定します。"
+
+msgid "Set the inteval in millisecond"
+msgstr "間隔をミリ秒で設定します。"
+
+msgid ""
+"Set the minimum size if the webcam produces small-sized garbage frames. May "
+"happen under low light conditions"
+msgstr ""
+"もしウェブカメラが小さなサイズの余分なフレームを生成する場合は、最小サイズを"
+"設定します。光量の低い条件下で発生することがあります。"
+
+msgid ""
+"Set the quality in percent. This setting activates YUYV format, disables "
+"MJPEG"
+msgstr ""
+"品質をパーセントで設定します。この設定はYUYV形式を有効にし、MJPEGを無効にしま"
+"す。"
+
+msgid "TCP port for this HTTP server"
+msgstr "このHTTPサーバーのTCPポートです。"
+
+msgid "UVC input"
+msgstr "UVC 入力"
+
+msgid "Username"
+msgstr "ユーザー名"
+
+msgid "WWW folder"
+msgstr "WWW フォルダー"
+
+msgid ""
+"mjpg streamer is a streaming application for Linux-UVC compatible webcams"
+msgstr ""
+"Mjpg streamerは、Linux-UVC互換ウェブカメラのためのストリーミング アプリケー"
+"ションです。"
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..d65cd3a
--- /dev/null
@@ -0,0 +1,19 @@
+#
+# 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> \
+               Florian Eckert <fe@dev.tdt.de>
+
+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..d3fd150
--- /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 -q -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 -q -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 -q -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' 2>/dev/null"))
+       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 -q -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 -q -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' 2>/dev/null | 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 -q -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..7e863a3
--- /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>" .. translatef("There are currently %d of 250 supported interfaces configured", interfaceNumber) .. "</strong>"
+       else
+               warnings = "<font color=\"ff0000\"><strong>" .. translatef("WARNING: %d interfaces are configured exceeding the maximum of 250!", interfaceNumber) .. "</strong></font>"
+       end
+       if errorReliabilityList ~= " " then
+               warnings = warnings .. "<br /><br /><font color=\"ff0000\"><strong>" .. translate("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>" .. translate("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>" .. translate("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>" .. translate("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>" .. translate("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"),
+       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..e7c16fd
--- /dev/null
@@ -0,0 +1,250 @@
+-- ------ 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>" .. translate("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>" .. translate("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>" .. translate("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>" .. translate("WARNING: this interface has no metric configured in /etc/config/network!") .. "</strong></font>"
+       elseif errorDuplicateMetric == 1 then
+               warns = warns .. lineBreak .. "<font color=\"ff0000\"><strong>" .. translate("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", translatef("MWAN Interface Configuration - %s", arg[1]),
+       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"))
+
+family = mwan_interface:option(ListValue, "family", translate("Internet Protocol"))
+       family.default = "ipv4"
+       family:value("ipv4", translate("IPv4"))
+       family:value("ipv6", translate("IPv6"))
+
+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")
+
+size = mwan_interface:option(Value, "size", translate("Ping size"))
+       size.default = "56"
+       size:value("8")
+       size:value("24")
+       size:value("56")
+       size:value("120")
+       size:value("248")
+       size:value("504")
+       size:value("1016")
+       size:value("1472")
+       size:value("2040")
+       size.datatype = "range(1, 65507)"
+       size.rmempty = false
+       size.optional = false
+
+timeout = mwan_interface:option(ListValue, "timeout", translate("Ping timeout"))
+       timeout.default = "2"
+       timeout:value("1", translatef("%d second", 1))
+       timeout:value("2", translatef("%d seconds", 2))
+       timeout:value("3", translatef("%d seconds", 3))
+       timeout:value("4", translatef("%d seconds", 4))
+       timeout:value("5", translatef("%d seconds", 5))
+       timeout:value("6", translatef("%d seconds", 6))
+       timeout:value("7", translatef("%d seconds", 7))
+       timeout:value("8", translatef("%d seconds", 8))
+       timeout:value("9", translatef("%d seconds", 9))
+       timeout:value("10", translatef("%d seconds", 10))
+
+interval = mwan_interface:option(ListValue, "interval", translate("Ping interval"))
+       interval.default = "5"
+       interval:value("1", translatef("%d second", 1))
+       interval:value("3", translatef("%d seconds", 3))
+       interval:value("5", translatef("%d seconds", 5))
+       interval:value("10", translatef("%d seconds", 10))
+       interval:value("20", translatef("%d seconds", 20))
+       interval:value("30", translatef("%d seconds", 30))
+       interval:value("60", translatef("%d minute", 1))
+       interval:value("300", translatef("%d minutes", 5))
+       interval:value("600", translatef("%d minutes", 10))
+       interval:value("900", translatef("%d minutes", 15))
+       interval:value("1800", translatef("%d minutes", 30))
+       interval:value("3600", translatef("%d hour", 1))
+
+failure = mwan_interface:option(Value, "failure_interval", translate("Failure interval"),
+       translate("Ping interval during failure detection"))
+       failure.default = "5"
+       failure:value("1", translatef("%d second", 1))
+       failure:value("3", translatef("%d seconds", 3))
+       failure:value("5", translatef("%d seconds", 5))
+       failure:value("10", translatef("%d seconds", 10))
+       failure:value("20", translatef("%d seconds", 20))
+       failure:value("30", translatef("%d seconds", 30))
+       failure:value("60", translatef("%d minute", 1))
+       failure:value("300", translatef("%d minutes", 5))
+       failure:value("600", translatef("%d minutes", 10))
+       failure:value("900", translatef("%d minutes", 15))
+       failure:value("1800", translatef("%d minutes", 30))
+       failure:value("3600", translatef("%d hour", 1))
+
+recovery = mwan_interface:option(Value, "recovery_interval", translate("Recovery interval"),
+       translate("Ping interval during failure recovering"))
+       recovery.default = "5"
+       recovery:value("1", translatef("%d second", 1))
+       recovery:value("3", translatef("%d seconds", 3))
+       recovery:value("5", translatef("%d seconds", 5))
+       recovery:value("10", translatef("%d seconds", 10))
+       recovery:value("20", translatef("%d seconds", 20))
+       recovery:value("30", translatef("%d seconds", 30))
+       recovery:value("60", translatef("%d minute", 1))
+       recovery:value("300", translatef("%d minutes", 5))
+       recovery:value("600", translatef("%d minutes", 10))
+       recovery:value("900", translatef("%d minutes", 15))
+       recovery:value("1800", translatef("%d minutes", 30))
+       recovery:value("3600", translatef("%d hour", 1))
+
+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")
+
+flush = mwan_interface:option(ListValue, "flush_conntrack", translate("Flush conntrack table"),
+       translate("Flush global firewall conntrack table on interface events"))
+       flush.default = "never"
+       flush:value("ifup", translate("ifup"))
+       flush:value("ifdown", translate("ifdown"))
+       flush:value("never", translate("never"))
+       flush:value("always", translate("always"))
+
+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..eb6f417
--- /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", translatef("MWAN Member Configuration - %s", 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..08c3f69
--- /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>" .. translate("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"),
+       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..06a0fec
--- /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>" .. translatef("WARNING: this policy's name is %d characters exceeding the maximum of 15!", policyNameLength) .. "</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", translatef("MWAN Policy Configuration - %s", arg[1]),
+       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..412f369
--- /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>" .. translate("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"),
+       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..25a96f5
--- /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>" .. translate("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", translatef("MWAN Rule Configuration - %s", arg[1]),
+       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/po/ja/mwan3.po b/applications/luci-app-mwan3/po/ja/mwan3.po
new file mode 100644 (file)
index 0000000..cae45b8
--- /dev/null
@@ -0,0 +1,562 @@
+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 2.0\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid "%d hour"
+msgstr "%d 時間"
+
+msgid "%d minute"
+msgstr "%d 分"
+
+msgid "%d minutes"
+msgstr "%d 分"
+
+msgid "%d second"
+msgstr "%d 秒"
+
+msgid "%d seconds"
+msgstr "%d 秒"
+
+msgid ""
+"Acceptable values: 1-100. This many Tracking IP addresses must respond for "
+"the link to be deemed up"
+msgstr ""
+"利用可能な値: 1-100。上記の追跡 IP の合計個数のうち、Up 状態と判定するために"
+"に必要な、レスポンスが返された追跡 IP アドレスの個数です。"
+
+msgid "Acceptable values: 1-1000. Defaults to 1 if not set"
+msgstr "利用可能な値: 1-1000。空欄の場合のデフォルトは1です。"
+
+msgid "Advanced"
+msgstr "詳細設定"
+
+msgid "Check IP rules"
+msgstr "IP ルールのチェック"
+
+msgid "Check routing table"
+msgstr "ルーティング テーブルのチェック"
+
+msgid "Configuration"
+msgstr "設定"
+
+msgid "Currently Configured Interfaces"
+msgstr "設定済みインターフェース"
+
+msgid "Currently Configured Members"
+msgstr "設定済みメンバー"
+
+msgid "Currently Configured Policies"
+msgstr "設定済みポリシー"
+
+msgid "Destination address"
+msgstr "宛先アドレス"
+
+msgid "Destination port"
+msgstr "宛先ポート"
+
+msgid "Detailed Status"
+msgstr "詳細ステータス"
+
+msgid "Diagnostic Results"
+msgstr "診断結果"
+
+msgid "Diagnostics"
+msgstr "診断機能"
+
+msgid ""
+"Downed interface will be deemed up after this many successful ping tests"
+msgstr ""
+"Down 状態のインターフェースが Up 状態と判断されるまでに要する ping テストの成"
+"功回数です。"
+
+msgid "Enabled"
+msgstr "有効"
+
+msgid "Errors"
+msgstr "エラー"
+
+msgid "Failure interval"
+msgstr "障害検出 インターバル"
+
+msgid "Flush conntrack table"
+msgstr ""
+
+msgid "Flush global firewall conntrack table on interface events"
+msgstr ""
+
+msgid "Hotplug Script"
+msgstr "ホットプラグ スクリプト"
+
+msgid "Hotplug ifdown"
+msgstr "ホットプラグ ifdown"
+
+msgid "Hotplug ifup"
+msgstr "ホットプラグ ifup"
+
+msgid "IPset"
+msgstr "IPset"
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "Interface"
+msgstr "インターフェース"
+
+msgid "Interface Status"
+msgstr "インターフェース ステータス"
+
+msgid "Interface down"
+msgstr "インターフェース Down"
+
+msgid "Interface up"
+msgstr "インターフェース Up"
+
+msgid "Interface will be deemed down after this many failed ping tests"
+msgstr ""
+"インターフェースが Down 状態と判断されるまでに要する ping テストの失敗回数で"
+"す。"
+
+msgid "Interfaces"
+msgstr "インターフェース"
+
+msgid "Internet Protocol"
+msgstr "インターネット プロトコル"
+
+msgid "Last resort"
+msgstr "最終手段"
+
+msgid "Load Balancing"
+msgstr "負荷分散"
+
+msgid "Loading"
+msgstr "読込中"
+
+msgid "MWAN Config"
+msgstr "MWAN 設定"
+
+msgid "MWAN Detailed Status"
+msgstr "MWAN 詳細ステータス"
+
+msgid "MWAN Interface Configuration"
+msgstr "MWAN インターフェース設定"
+
+msgid "MWAN Interface Configuration - %s"
+msgstr "MWAN インターフェース設定 - %s"
+
+msgid "MWAN Interface Diagnostics"
+msgstr "MWAN インターフェース診断"
+
+msgid "MWAN Interface Live Status"
+msgstr "MWAN インターフェース Live ステータス"
+
+msgid "MWAN Interface Systemlog"
+msgstr "MWAN インターフェース システムログ"
+
+msgid "MWAN Member Configuration"
+msgstr "MWAN メンバー設定"
+
+msgid "MWAN Member Configuration - %s"
+msgstr "MWAN メンバー設定 - %s"
+
+msgid "MWAN Policy Configuration"
+msgstr "MWAN ポリシー設定"
+
+msgid "MWAN Policy Configuration - %s"
+msgstr "MWAN ポリシー設定 - %s"
+
+msgid "MWAN Rule Configuration"
+msgstr "MWAN ルール設定"
+
+msgid "MWAN Rule Configuration - %s"
+msgstr "MWAN ルール設定 - %s"
+
+msgid "MWAN Service Control"
+msgstr "MWAN サービス コントロール"
+
+msgid ""
+"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"
+msgstr ""
+"MWAN は、250個までの物理または論理、あるいは両方のインターフェースをサポート"
+"します。<br />MWAN は、全てのインターフェースが /etc/config/network で設定さ"
+"れるユニークなメトリックを持つことを必要とします。<br />下記 \"インターフェー"
+"ス\" の名前は、 /etc/config/network に存在するインターフェース名と同じでなけ"
+"ればなりません(詳細設定タブを確認)。<br />名前は A-Z, a-z, 0-9, _ を含むこ"
+"とができますが、スペースは使用できません。<br />インターフェースには、設定済"
+"みのメンバーやポリシー、ルールと同じ名前を使用することはできません。"
+
+msgid ""
+"May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or "
+"as a portrange (eg \"1024:2048\") without quotes"
+msgstr ""
+"単一または複数のポート(例: \"22\" または \"80,443\")、あるいはポートの範囲"
+"(例: \"1024:2048\")を、クオーテーション無しで指定することができます。"
+
+msgid "Member used"
+msgstr "使用されるメンバー"
+
+msgid "Members"
+msgstr "メンバー"
+
+msgid ""
+"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"
+msgstr ""
+"メンバーは、MWAN インターフェースのメトリックおよびウエイトを関連付けたプロ"
+"ファイルです。<br />名前は A-Z, a-z, 0-9, _ を含むことができますが、スペース"
+"は使用できません。<br />メンバーには、設定済みのインターフェースやポリシー、"
+"ルールと同じ名前を使用することはできません。"
+
+msgid "Members assigned"
+msgstr "アサイン済みメンバー"
+
+msgid "Metric"
+msgstr "メトリック"
+
+msgid ""
+"Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/"
+"youtube.com/youtube\")"
+msgstr ""
+"IPset ルールの名前です。このルールは、 /etc/dnsmasq.conf で必要です。(例: "
+"\"ipset=/youtube.com/youtube\")"
+
+msgid "Network Config"
+msgstr "ネットワーク設定"
+
+msgid "No"
+msgstr "いいえ"
+
+msgid "Overview"
+msgstr "概要"
+
+msgid "Ping count"
+msgstr "Ping 回数"
+
+msgid "Ping default gateway"
+msgstr "Ping デフォルト ゲートウェイ"
+
+msgid "Ping interval"
+msgstr "Ping インターバル"
+
+msgid "Ping interval during failure detection"
+msgstr "障害検出動作中の Ping 実行間隔です。"
+
+msgid "Ping interval during failure recovering"
+msgstr "障害復旧中の Ping 実行間隔です。"
+
+msgid "Ping size"
+msgstr "Ping サイズ"
+
+msgid "Ping timeout"
+msgstr "Ping タイムアウト"
+
+msgid "Ping tracking IP"
+msgstr "Ping トラッキング IP"
+
+msgid "Policies"
+msgstr "ポリシー"
+
+msgid ""
+"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"
+msgstr ""
+"ポリシーは、MWANがどのようにトラフィックの分配を行うかを制御する、1つ以上のメ"
+"ンバーをグループ化するプロファイルです。<br />最小のメトリックを持つメンバー "
+"インターフェースが最初に使用されます。同じメトリックを持つ複数のインター"
+"フェースでは、負荷分散を行います。<br />負荷分散に設定されたメンバー インター"
+"フェースでは、ウェイトの値が大きい方により多くのトラフィックを分配します。"
+"<br />名前は A-Z, a-z, 0-9, _ を含むことができますが、スペースは使用できませ"
+"ん。また、15文字以内でなければなりません。<br />ポリシーでは、設定済みのイン"
+"ターフェースやメンバー、ルールと同じ名前を使用することはできません。"
+
+msgid "Policy assigned"
+msgstr "アサイン済みポリシー"
+
+msgid "Protocol"
+msgstr "プロトコル"
+
+msgid "Recovery interval"
+msgstr "障害復旧 インターバル"
+
+msgid "Restart MWAN"
+msgstr "MWAN の再起動"
+
+msgid "Restore default hotplug script"
+msgstr "デフォルトのホットプラグ スクリプトの復元"
+
+msgid "Restore..."
+msgstr "復元..."
+
+msgid "Rules"
+msgstr "ルール"
+
+msgid ""
+"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"
+msgstr ""
+"ルールは IP アドレスやポート、プロトコルを基に、トラフィックがどの MWAN ポリ"
+"シーを使用するかを設定します。<br />ルールは上から下へマッチングが行われ、合"
+"致したルールより下のルールは無視されます。全てのルールに合致しないトラフィッ"
+"クは、メインのルーティング テーブルを使用してルートが決定されます。<br />既知"
+"(デフォルト以外)のネットワークへのトラフィックは、メインのルーティング テー"
+"ブルによって制御されます。ルールに合致したトラフィックでも、当該ポリシーの全 "
+"WAN インターフェースが Down 状態の場合は blackhole 状態となります。<br />名前"
+"は A-Z, a-z, 0-9, _ を含むことができますが、スペースは使用できません。<br />"
+"ルールは、設定済みのインターフェースやメンバー、ポリシーと同じ名前を使用する"
+"ことはできません。"
+
+msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"
+msgstr "秒。利用可能な値: 1-1000000。空欄の場合のデフォルト値は600です。"
+
+msgid "Source address"
+msgstr "送信元アドレス"
+
+msgid "Source port"
+msgstr "送信元ポート"
+
+msgid "Start MWAN"
+msgstr "MWAN の起動"
+
+msgid "Sticky"
+msgstr "Sticky"
+
+msgid "Sticky timeout"
+msgstr "Sticky タイムアウト"
+
+msgid "Stop MWAN"
+msgstr "MWAN の停止"
+
+msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"
+msgstr "CIDR 表記のサポート(例: \"192.168.100.0/24\")"
+
+msgid "There are currently %d of 250 supported interfaces configured"
+msgstr "現在、250個中 %d 個のサポートされたインターフェースが設定済みです。"
+
+msgid ""
+"This IP address will be pinged to dermine if the link is up or down. Leave "
+"blank to assume interface is always online"
+msgstr ""
+"これらは、リンクの Up または Down を判定するために Ping が送信されるIP アドレ"
+"スです。常にオンラインとする場合、空欄のままにします。"
+
+msgid ""
+"This displays the metric assigned to this interface in /etc/config/network"
+msgstr ""
+"/etc/config/network で、このインターフェースに割り当てられたメトリックです。"
+
+msgid "This section allows you to modify the contents of /etc/config/mwan3"
+msgstr ""
+"このセクションでは、 /etc/config/mwan3 の内容を変更することができます。"
+
+msgid "This section allows you to modify the contents of /etc/config/network"
+msgstr ""
+"このセクションでは、 /etc/config/network の内容を変更することができます。"
+
+msgid "This section allows you to modify the contents of /etc/config/wireless"
+msgstr ""
+"このセクションでは、 /etc/config/wireless の内容を変更することができます。"
+
+msgid ""
+"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.)"
+msgstr ""
+"このセクションでは、 /etc/hotplug.d/iface/16-mwancustom の内容を変更すること"
+"ができます。<br />これは、インターフェースの ifup または ifdown ホットプラグ "
+"イベント時にシステムコマンドまたはスクリプト、もしくはその両方を実行すること"
+"に役立ちます。<br /><br />注意:<br />スクリプトの1行目は、&#34;#!bin/sh&#34; "
+"である必要があります(クオーテーション不要)。<br /># で始まる行はコメントと"
+"して認識され、実行されません。<br /><br />利用可能な変数:<br />$ACTION - ホッ"
+"トプラグ イベント (ifup, ifdown)<br />$INTERFACE - インターフェース名(wan1, "
+"wan2, その他)<br />$DEVICE - インターフェースにアタッチされたデバイスの名前"
+"(eth0.1, eth1, その他)"
+
+msgid "Tracking IP"
+msgstr "追跡 IP"
+
+msgid "Tracking reliability"
+msgstr "追跡の信頼性"
+
+msgid "Traffic Rules"
+msgstr "トラフィック ルール"
+
+msgid ""
+"Traffic from the same source IP address that previously matched this rule "
+"within the sticky timeout period will use the same WAN interface"
+msgstr ""
+"以前このルールにマッチした同じアクセス元 IP アドレスからのトラフィックが、再"
+"度 Sticky 制限時間内にマッチした場合には、同じ WAN インターフェースが使用され"
+"ます。"
+
+msgid "Troubleshooting"
+msgstr "トラブルシューティング"
+
+msgid "Troubleshooting Data"
+msgstr "トラブルシューティング データ"
+
+msgid "View the contents of /etc/protocols for protocol descriptions"
+msgstr "プロトコルの説明については、 /etc/protocols の内容を確認してください。"
+
+msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!"
+msgstr ""
+"警告: %d 個のインターフェースが、最大個数の 250個 を超えて設定されています!"
+
+msgid ""
+"WARNING: Some policies have names exceeding the maximum of 15 characters!"
+msgstr ""
+"警告: 最大文字数の 15 文字を超える名前が設定されているポリシーがあります!"
+
+msgid ""
+"WARNING: some interfaces are configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr ""
+"警告: 設定を誤っているか、もしくは完全に設定されていないインターフェースがあ"
+"ります!"
+
+msgid ""
+"WARNING: some interfaces have a higher reliability requirement than there "
+"are tracking IP addresses!"
+msgstr ""
+"警告: 追跡 IP アドレスの個数より大きい追跡信頼性の値が設定されたインター"
+"フェースがあります!"
+
+msgid ""
+"WARNING: some interfaces have duplicate metrics configured in /etc/config/"
+"network!"
+msgstr ""
+"警告: /etc/config/network で、重複するメトリックを設定されているインター"
+"フェースがあります!"
+
+msgid ""
+"WARNING: some interfaces have no default route in the main routing table!"
+msgstr ""
+"警告: メインのルーティング テーブルで、デフォルト ルートを設定されていないイ"
+"ンターフェースがあります!"
+
+msgid ""
+"WARNING: some interfaces have no metric configured in /etc/config/network!"
+msgstr ""
+"警告: /etc/config/network で、メトリックを設定されていないインターフェースが"
+"あります!"
+
+msgid ""
+"WARNING: some rules have a port configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+"警告: 不適切なプロトコルが指定されている、または何も指定されていないポートを"
+"設定されたルールがあります!プロトコルを指定し直してください!"
+
+msgid ""
+"WARNING: this and other interfaces have duplicate metrics configured in /etc/"
+"config/network!"
+msgstr ""
+"警告: これと他のインターフェースで重複するメトリックが /etc/config/network に"
+"設定されています!"
+
+msgid ""
+"WARNING: this interface has a higher reliability requirement than there are "
+"tracking IP addresses!"
+msgstr ""
+"警告: このインターフェースは、追跡 IP アドレスの個数より大きい追跡信頼性の値"
+"を設定されています!"
+
+msgid "WARNING: this interface has no default route in the main routing table!"
+msgstr ""
+"警告: このインターフェースは、メインのルーティング テーブルにデフォルト ルー"
+"トが設定されていません!"
+
+msgid ""
+"WARNING: this interface has no metric configured in /etc/config/network!"
+msgstr ""
+"警告: このインターフェースは、 /etc/config/network でメトリックが設定されてい"
+"ません!"
+
+msgid ""
+"WARNING: this interface is configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr ""
+"警告: このインターフェースは /etc/config/network で設定が誤っているか、もしく"
+"は完全に設定されていません!"
+
+msgid ""
+"WARNING: this policy's name is %d characters exceeding the maximum of 15!"
+msgstr ""
+"警告: このポリシーの名前は、最大文字数 15 文字を超える %d 文字が設定されてい"
+"ます!"
+
+msgid ""
+"WARNING: this rule is incorrectly configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+"警告: このルールは不適切なプロトコルが指定されているか、または何も指定されて"
+"いません!プロトコルを指定し直してください!"
+
+msgid "Weight"
+msgstr "ウエイト"
+
+msgid ""
+"When all policy members are offline use this behavior for matched traffic"
+msgstr ""
+"ポリシーの全メンバーがオフラインの場合、合致したトラフィックに対してこのふる"
+"まいが使用されます。"
+
+msgid "Wireless Config"
+msgstr "無線設定"
+
+msgid "Yes"
+msgstr "はい"
+
+msgid "always"
+msgstr "always"
+
+msgid "blackhole (drop)"
+msgstr "blackhole (drop)"
+
+msgid "default (use main routing table)"
+msgstr "デフォルト(メインのルーティング テーブルを使用)"
+
+msgid "ifdown"
+msgstr "ifdown"
+
+msgid "ifup"
+msgstr "ifup"
+
+msgid "never"
+msgstr "never"
+
+msgid "unreachable (reject)"
+msgstr "unreachable (reject)"
diff --git a/applications/luci-app-mwan3/po/templates/mwan3.pot b/applications/luci-app-mwan3/po/templates/mwan3.pot
new file mode 100644 (file)
index 0000000..0bda248
--- /dev/null
@@ -0,0 +1,464 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "%d hour"
+msgstr ""
+
+msgid "%d minute"
+msgstr ""
+
+msgid "%d minutes"
+msgstr ""
+
+msgid "%d second"
+msgstr ""
+
+msgid "%d seconds"
+msgstr ""
+
+msgid ""
+"Acceptable values: 1-100. This many Tracking IP addresses must respond for "
+"the link to be deemed up"
+msgstr ""
+
+msgid "Acceptable values: 1-1000. Defaults to 1 if not set"
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid "Check IP rules"
+msgstr ""
+
+msgid "Check routing table"
+msgstr ""
+
+msgid "Configuration"
+msgstr ""
+
+msgid "Currently Configured Interfaces"
+msgstr ""
+
+msgid "Currently Configured Members"
+msgstr ""
+
+msgid "Currently Configured Policies"
+msgstr ""
+
+msgid "Destination address"
+msgstr ""
+
+msgid "Destination port"
+msgstr ""
+
+msgid "Detailed Status"
+msgstr ""
+
+msgid "Diagnostic Results"
+msgstr ""
+
+msgid "Diagnostics"
+msgstr ""
+
+msgid ""
+"Downed interface will be deemed up after this many successful ping tests"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "Errors"
+msgstr ""
+
+msgid "Failure interval"
+msgstr ""
+
+msgid "Flush conntrack table"
+msgstr ""
+
+msgid "Flush global firewall conntrack table on interface events"
+msgstr ""
+
+msgid "Hotplug Script"
+msgstr ""
+
+msgid "Hotplug ifdown"
+msgstr ""
+
+msgid "Hotplug ifup"
+msgstr ""
+
+msgid "IPset"
+msgstr ""
+
+msgid "IPv4"
+msgstr ""
+
+msgid "IPv6"
+msgstr ""
+
+msgid "Interface"
+msgstr ""
+
+msgid "Interface Status"
+msgstr ""
+
+msgid "Interface down"
+msgstr ""
+
+msgid "Interface up"
+msgstr ""
+
+msgid "Interface will be deemed down after this many failed ping tests"
+msgstr ""
+
+msgid "Interfaces"
+msgstr ""
+
+msgid "Internet Protocol"
+msgstr ""
+
+msgid "Last resort"
+msgstr ""
+
+msgid "Load Balancing"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "MWAN Config"
+msgstr ""
+
+msgid "MWAN Detailed Status"
+msgstr ""
+
+msgid "MWAN Interface Configuration"
+msgstr ""
+
+msgid "MWAN Interface Configuration - %s"
+msgstr ""
+
+msgid "MWAN Interface Diagnostics"
+msgstr ""
+
+msgid "MWAN Interface Live Status"
+msgstr ""
+
+msgid "MWAN Interface Systemlog"
+msgstr ""
+
+msgid "MWAN Member Configuration"
+msgstr ""
+
+msgid "MWAN Member Configuration - %s"
+msgstr ""
+
+msgid "MWAN Policy Configuration"
+msgstr ""
+
+msgid "MWAN Policy Configuration - %s"
+msgstr ""
+
+msgid "MWAN Rule Configuration"
+msgstr ""
+
+msgid "MWAN Rule Configuration - %s"
+msgstr ""
+
+msgid "MWAN Service Control"
+msgstr ""
+
+msgid ""
+"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"
+msgstr ""
+
+msgid ""
+"May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or "
+"as a portrange (eg \"1024:2048\") without quotes"
+msgstr ""
+
+msgid "Member used"
+msgstr ""
+
+msgid "Members"
+msgstr ""
+
+msgid ""
+"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"
+msgstr ""
+
+msgid "Members assigned"
+msgstr ""
+
+msgid "Metric"
+msgstr ""
+
+msgid ""
+"Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/"
+"youtube.com/youtube\")"
+msgstr ""
+
+msgid "Network Config"
+msgstr ""
+
+msgid "No"
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid "Ping count"
+msgstr ""
+
+msgid "Ping default gateway"
+msgstr ""
+
+msgid "Ping interval"
+msgstr ""
+
+msgid "Ping interval during failure detection"
+msgstr ""
+
+msgid "Ping interval during failure recovering"
+msgstr ""
+
+msgid "Ping size"
+msgstr ""
+
+msgid "Ping timeout"
+msgstr ""
+
+msgid "Ping tracking IP"
+msgstr ""
+
+msgid "Policies"
+msgstr ""
+
+msgid ""
+"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"
+msgstr ""
+
+msgid "Policy assigned"
+msgstr ""
+
+msgid "Protocol"
+msgstr ""
+
+msgid "Recovery interval"
+msgstr ""
+
+msgid "Restart MWAN"
+msgstr ""
+
+msgid "Restore default hotplug script"
+msgstr ""
+
+msgid "Restore..."
+msgstr ""
+
+msgid "Rules"
+msgstr ""
+
+msgid ""
+"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"
+msgstr ""
+
+msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"
+msgstr ""
+
+msgid "Source address"
+msgstr ""
+
+msgid "Source port"
+msgstr ""
+
+msgid "Start MWAN"
+msgstr ""
+
+msgid "Sticky"
+msgstr ""
+
+msgid "Sticky timeout"
+msgstr ""
+
+msgid "Stop MWAN"
+msgstr ""
+
+msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"
+msgstr ""
+
+msgid "There are currently %d of 250 supported interfaces configured"
+msgstr ""
+
+msgid ""
+"This IP address will be pinged to dermine if the link is up or down. Leave "
+"blank to assume interface is always online"
+msgstr ""
+
+msgid ""
+"This displays the metric assigned to this interface in /etc/config/network"
+msgstr ""
+
+msgid "This section allows you to modify the contents of /etc/config/mwan3"
+msgstr ""
+
+msgid "This section allows you to modify the contents of /etc/config/network"
+msgstr ""
+
+msgid "This section allows you to modify the contents of /etc/config/wireless"
+msgstr ""
+
+msgid ""
+"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.)"
+msgstr ""
+
+msgid "Tracking IP"
+msgstr ""
+
+msgid "Tracking reliability"
+msgstr ""
+
+msgid "Traffic Rules"
+msgstr ""
+
+msgid ""
+"Traffic from the same source IP address that previously matched this rule "
+"within the sticky timeout period will use the same WAN interface"
+msgstr ""
+
+msgid "Troubleshooting"
+msgstr ""
+
+msgid "Troubleshooting Data"
+msgstr ""
+
+msgid "View the contents of /etc/protocols for protocol descriptions"
+msgstr ""
+
+msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!"
+msgstr ""
+
+msgid ""
+"WARNING: Some policies have names exceeding the maximum of 15 characters!"
+msgstr ""
+
+msgid ""
+"WARNING: some interfaces are configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: some interfaces have a higher reliability requirement than there "
+"are tracking IP addresses!"
+msgstr ""
+
+msgid ""
+"WARNING: some interfaces have duplicate metrics configured in /etc/config/"
+"network!"
+msgstr ""
+
+msgid ""
+"WARNING: some interfaces have no default route in the main routing table!"
+msgstr ""
+
+msgid ""
+"WARNING: some interfaces have no metric configured in /etc/config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: some rules have a port configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+
+msgid ""
+"WARNING: this and other interfaces have duplicate metrics configured in /etc/"
+"config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: this interface has a higher reliability requirement than there are "
+"tracking IP addresses!"
+msgstr ""
+
+msgid "WARNING: this interface has no default route in the main routing table!"
+msgstr ""
+
+msgid ""
+"WARNING: this interface has no metric configured in /etc/config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: this interface is configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: this policy's name is %d characters exceeding the maximum of 15!"
+msgstr ""
+
+msgid ""
+"WARNING: this rule is incorrectly configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+
+msgid "Weight"
+msgstr ""
+
+msgid ""
+"When all policy members are offline use this behavior for matched traffic"
+msgstr ""
+
+msgid "Wireless Config"
+msgstr ""
+
+msgid "Yes"
+msgstr ""
+
+msgid "always"
+msgstr ""
+
+msgid "blackhole (drop)"
+msgstr ""
+
+msgid "default (use main routing table)"
+msgstr ""
+
+msgid "ifdown"
+msgstr ""
+
+msgid "ifup"
+msgstr ""
+
+msgid "never"
+msgstr ""
+
+msgid "unreachable (reject)"
+msgstr ""
diff --git a/applications/luci-app-mwan3/po/zh-cn/mwan3.po b/applications/luci-app-mwan3/po/zh-cn/mwan3.po
new file mode 100644 (file)
index 0000000..b8948b3
--- /dev/null
@@ -0,0 +1,510 @@
+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"
+"Last-Translator: Hsing-Wang Liao <kuoruan@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.0\n"
+"Last-Translator: \n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: zh_CN\n"
+
+msgid "%d hour"
+msgstr "%d 小时"
+
+msgid "%d minute"
+msgstr "%d 分钟"
+
+msgid "%d minutes"
+msgstr "%d 分钟"
+
+msgid "%d second"
+msgstr "%d 秒"
+
+msgid "%d seconds"
+msgstr "%d 秒"
+
+msgid ""
+"Acceptable values: 1-100. This many Tracking IP addresses must respond for "
+"the link to be deemed up"
+msgstr ""
+"接受的值: 1-100。这个设置项指定了当多少个IP地址能够连通时接口会被认为在线"
+
+msgid "Acceptable values: 1-1000. Defaults to 1 if not set"
+msgstr "接受的值: 1-100。如果不填写,默认值为 1"
+
+msgid "Advanced"
+msgstr "高级"
+
+msgid "Check IP rules"
+msgstr "检查IP规则"
+
+msgid "Check routing table"
+msgstr "检查路由表"
+
+msgid "Configuration"
+msgstr "配置"
+
+msgid "Currently Configured Interfaces"
+msgstr "当前配置的接口"
+
+msgid "Currently Configured Members"
+msgstr "当前配置的成员"
+
+msgid "Currently Configured Policies"
+msgstr "当前配置的策略"
+
+msgid "Destination address"
+msgstr "目标地址"
+
+msgid "Destination port"
+msgstr "目标端口"
+
+msgid "Detailed Status"
+msgstr "详细状态"
+
+msgid "Diagnostic Results"
+msgstr "诊断结果"
+
+msgid "Diagnostics"
+msgstr "诊断"
+
+msgid ""
+"Downed interface will be deemed up after this many successful ping tests"
+msgstr "当 Ping 成功次数达到这个数值后,已经被认为离线的接口将会重新上线"
+
+msgid "Enabled"
+msgstr "启用"
+
+msgid "Errors"
+msgstr "错误"
+
+msgid "Failure interval"
+msgstr "故障检测间隔"
+
+msgid "Flush conntrack table"
+msgstr "刷新连接跟踪表"
+
+msgid "Flush global firewall conntrack table on interface events"
+msgstr "在接口事件触发时刷新全局防火墙连接跟踪表"
+
+msgid "Hotplug Script"
+msgstr "Hotplug 脚本"
+
+msgid "Hotplug ifdown"
+msgstr "Hotplug ifdown"
+
+msgid "Hotplug ifup"
+msgstr "Hotplug ifup"
+
+msgid "IPset"
+msgstr "IPset"
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "Interface"
+msgstr "接口"
+
+msgid "Interface Status"
+msgstr "接口状态"
+
+msgid "Interface down"
+msgstr "接口离线"
+
+msgid "Interface up"
+msgstr "接口上线"
+
+msgid "Interface will be deemed down after this many failed ping tests"
+msgstr "当 Ping 失败次数达到这个数值后接口会被认为离线"
+
+msgid "Interfaces"
+msgstr "接口"
+
+msgid "Internet Protocol"
+msgstr "互联网协议"
+
+msgid "Last resort"
+msgstr "备用成员"
+
+msgid "Load Balancing"
+msgstr "负载均衡"
+
+msgid "Loading"
+msgstr "载入中"
+
+msgid "MWAN Config"
+msgstr "MWAN 配置文件"
+
+msgid "MWAN Detailed Status"
+msgstr "MWAN 详细状态"
+
+msgid "MWAN Interface Configuration"
+msgstr "MWAN 接口配置"
+
+msgid "MWAN Interface Configuration - %s"
+msgstr "MWAN 接口配置 - %s"
+
+msgid "MWAN Interface Diagnostics"
+msgstr "MWAN 接口诊断"
+
+msgid "MWAN Interface Live Status"
+msgstr "MWAN 接口实时状态"
+
+msgid "MWAN Interface Systemlog"
+msgstr "MWAN 接口系统日志"
+
+msgid "MWAN Member Configuration"
+msgstr "MWAN 成员配置"
+
+msgid "MWAN Member Configuration - %s"
+msgstr "MWAN 成员配置 - %s"
+
+msgid "MWAN Policy Configuration"
+msgstr "MWAN 策略配置"
+
+msgid "MWAN Policy Configuration - %s"
+msgstr "MWAN 策略配置 - %s"
+
+msgid "MWAN Rule Configuration"
+msgstr "MWAN 规则配置"
+
+msgid "MWAN Rule Configuration - %s"
+msgstr "MWAN 规则配置 - %s"
+
+msgid "MWAN Service Control"
+msgstr "MWAN 服务控制"
+
+msgid ""
+"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"
+msgstr ""
+"MWAN 支持最多 250 个物理或逻辑接口。<br />MWAN 要求所有接口必须在 /etc/"
+"config/network 中设定唯一的网关跃点。<br />名称必须与 /etc/config/network 中"
+"的接口名称匹配。(可查看“高级”选项卡)<br />名称允许包括A-Z、a-z、0-9、_ 但是不"
+"能有空格。<br />接口不应该与成员、策略、规则中的任意一个设置项使用相同的名称"
+
+msgid ""
+"May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or "
+"as a portrange (eg \"1024:2048\") without quotes"
+msgstr ""
+"可以输入一个或多个端口 (例如 \"22\" 或者 \"80,443\") 或者是一个端口范围 (例"
+"如 \"1024:2048\") 不含引号"
+
+msgid "Member used"
+msgstr "使用的成员"
+
+msgid "Members"
+msgstr "成员"
+
+msgid ""
+"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"
+msgstr ""
+"“成员”用来设置每一个 MWAN 接口的跃点数 (即接口优先级) 和所占比重。<br />名称"
+"允许包括 A-Z、 a-、0-9、_ 但是不能有空格。<br />成员不应该与接口、策略、规则"
+"中的任意一个设置项使用相同的名称"
+
+msgid "Members assigned"
+msgstr "分配的成员"
+
+msgid "Metric"
+msgstr "跃点数"
+
+msgid ""
+"Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/"
+"youtube.com/youtube\")"
+msgstr ""
+"匹配 IPset 规则列表名称。需要先配置 /etc/dnsmasq.conf 中的 IPset 规则 (例如: "
+"\"ipset=/youtube.com/youtube\")"
+
+msgid "Network Config"
+msgstr "网络配置文件"
+
+msgid "No"
+msgstr "否"
+
+msgid "Overview"
+msgstr "概况"
+
+msgid "Ping count"
+msgstr "Ping 计数"
+
+msgid "Ping default gateway"
+msgstr "Ping 默认网关"
+
+msgid "Ping interval"
+msgstr "Ping 间隔"
+
+msgid "Ping interval during failure detection"
+msgstr "故障检测期间的 Ping 间隔"
+
+msgid "Ping interval during failure recovering"
+msgstr "故障恢复期间的 Ping 间隔"
+
+msgid "Ping size"
+msgstr "Ping 大小"
+
+msgid "Ping timeout"
+msgstr "Ping 超时"
+
+msgid "Ping tracking IP"
+msgstr "Ping 跟踪 IP"
+
+msgid "Policies"
+msgstr "策略"
+
+msgid ""
+"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"
+msgstr ""
+"“策略”把成员进行分组,告诉 MWAN 如何分配“规则”中使用这一策略的流量<br />拥有"
+"较低跃点数的成员将会被优先使用。拥有相同跃点数的成员把流量进行负载均衡。<br /"
+">进行负载均衡的成员之间拥有较高比重的成员将会被分配到更多流量。<br />名称允许"
+"包括A-Z、a-z、0-9、_ 但是不能有空格。名称应该在 15 个字符以内<br />策略不应该"
+"与接口、成员、规则中的任意一个设置项使用相同的名称"
+
+msgid "Policy assigned"
+msgstr "分配的策略"
+
+msgid "Protocol"
+msgstr "通信协议"
+
+msgid "Recovery interval"
+msgstr "故障恢复间隔"
+
+msgid "Restart MWAN"
+msgstr "重启 MWAN"
+
+msgid "Restore default hotplug script"
+msgstr "恢复默认的 hotplug 脚本"
+
+msgid "Restore..."
+msgstr "恢复..."
+
+msgid "Rules"
+msgstr "规则"
+
+msgid ""
+"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"
+msgstr ""
+"“规则”基于 IP 地址、协议、端口把流量划分到指定的“策略”中。<br />规则按照从上"
+"到下的顺序进行匹配。除了第一条能够匹配一次通信的规则以外,其它规则将被忽略。"
+"不匹配任何规则的通信将会由系统默认路由表进行。<br />来自已知的网络的转发流量"
+"由系统默认路由表接手,然后 MWAN 从中匹配出相应的流量并转移到 MWAN 自己的路由"
+"表。但是所有被划分到一个无法使用的策略的流量将会无法正常进行路由。<br />名称"
+"允许包括A-Z、a-z、0-9、_ 但是不能有空格。<br />规则不应该与接口、成员、策略中"
+"的任意一个设置项使用相同的名称"
+
+msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"
+msgstr "单位为秒。接受的值: 1-1000000。留空则使用默认值 600 秒"
+
+msgid "Source address"
+msgstr "源地址"
+
+msgid "Source port"
+msgstr "源端口"
+
+msgid "Start MWAN"
+msgstr "启动 MWAN"
+
+msgid "Sticky"
+msgstr "粘滞模式"
+
+msgid "Sticky timeout"
+msgstr "粘滞超时"
+
+msgid "Stop MWAN"
+msgstr "停止 MWAN"
+
+msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes"
+msgstr "支持 CIDR 记法 (例如: \"192.168.100.0/24\") 不含引号"
+
+msgid "There are currently %d of 250 supported interfaces configured"
+msgstr ""
+
+msgid ""
+"This IP address will be pinged to dermine if the link is up or down. Leave "
+"blank to assume interface is always online"
+msgstr ""
+"MWAN 将会通过 Ping 这些 IP 地址来确定接口是否上线。如果留空,则 MWAN 认为该接"
+"口永远在线"
+
+msgid ""
+"This displays the metric assigned to this interface in /etc/config/network"
+msgstr "这里显示了这个接口在 /etc/config/network 中配置的跃点数"
+
+msgid "This section allows you to modify the contents of /etc/config/mwan3"
+msgstr "这里允许你修改 /etc/config/mwan3 的内容"
+
+msgid "This section allows you to modify the contents of /etc/config/network"
+msgstr "这里允许你修改 /etc/config/network 的内容"
+
+msgid "This section allows you to modify the contents of /etc/config/wireless"
+msgstr "这里允许你修改 /etc/config/wireless 的内容"
+
+msgid ""
+"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.)"
+msgstr ""
+"这里允许你修改/etc/hotplug.d/iface/16-mwancustom 的内容<br />这可以在接口 "
+"ifup 或 ifdown Hotplug 事件时运行系统命令或脚本<br /><br />注意:<br />脚本的"
+"第一行必须是 &#34;#!/bin/sh&#34; 不含引号<br />以#开头的行是注释,不会执行"
+"<br /><br />可用变量:<br />$ACTION 是 Hotplug 事件 (ifup, ifdown)<br />"
+"$INTERFACE 是接口名称 (wan1、wan2 等)<br />$DEVICE 是连接到接口的设备名称 "
+"(eth0.1、eth1 等)"
+
+msgid "Tracking IP"
+msgstr "跟踪的 IP"
+
+msgid "Tracking reliability"
+msgstr "跟踪可靠性"
+
+msgid "Traffic Rules"
+msgstr "流量规则"
+
+msgid ""
+"Traffic from the same source IP address that previously matched this rule "
+"within the sticky timeout period will use the same WAN interface"
+msgstr ""
+"来自相同源 IP 的流量,如果已经匹配过此规则并且在粘滞超时时间内,将会使用相同"
+"的 WAN 接口"
+
+msgid "Troubleshooting"
+msgstr "故障排除"
+
+msgid "Troubleshooting Data"
+msgstr "故障排除数据"
+
+msgid "View the contents of /etc/protocols for protocol descriptions"
+msgstr "请查看 /etc/protocols 获取可选协议详情"
+
+msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!"
+msgstr ""
+
+msgid ""
+"WARNING: Some policies have names exceeding the maximum of 15 characters!"
+msgstr ""
+
+msgid ""
+"WARNING: some interfaces are configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: some interfaces have a higher reliability requirement than there "
+"are tracking IP addresses!"
+msgstr ""
+
+msgid ""
+"WARNING: some interfaces have duplicate metrics configured in /etc/config/"
+"network!"
+msgstr ""
+
+msgid ""
+"WARNING: some interfaces have no default route in the main routing table!"
+msgstr ""
+
+msgid ""
+"WARNING: some interfaces have no metric configured in /etc/config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: some rules have a port configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+
+msgid ""
+"WARNING: this and other interfaces have duplicate metrics configured in /etc/"
+"config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: this interface has a higher reliability requirement than there are "
+"tracking IP addresses!"
+msgstr ""
+
+msgid "WARNING: this interface has no default route in the main routing table!"
+msgstr ""
+
+msgid ""
+"WARNING: this interface has no metric configured in /etc/config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: this interface is configured incorrectly or not at all in /etc/"
+"config/network!"
+msgstr ""
+
+msgid ""
+"WARNING: this policy's name is %d characters exceeding the maximum of 15!"
+msgstr ""
+
+msgid ""
+"WARNING: this rule is incorrectly configured with no or improper protocol "
+"specified! Please configure a specific protocol!"
+msgstr ""
+
+msgid "Weight"
+msgstr "比重"
+
+msgid ""
+"When all policy members are offline use this behavior for matched traffic"
+msgstr "当所有策略成员都无法使用的时候,对使用该策略的流量使用这个操作"
+
+msgid "Wireless Config"
+msgstr "无线配置"
+
+msgid "Yes"
+msgstr "是"
+
+msgid "always"
+msgstr "总是"
+
+msgid "blackhole (drop)"
+msgstr "黑洞 (丢弃)"
+
+msgid "default (use main routing table)"
+msgstr "默认 (使用主路由表)"
+
+msgid "ifdown"
+msgstr "ifdown"
+
+msgid "ifup"
+msgstr "ifup"
+
+msgid "never"
+msgstr "从不"
+
+msgid "unreachable (reject)"
+msgstr "不可达 (拒绝)"
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 9a997bd..0564bd4 100644 (file)
@@ -87,8 +87,8 @@ function action_json()
        local v4_port = uci:get("olsrd", "olsrd_jsoninfo", "port") or 9090
        local v6_port = uci:get("olsrd6", "olsrd_jsoninfo", "port") or 9090
 
-       jsonreq4 = utl.exec("(echo /status | nc 127.0.0.1 " .. v4_port .. ") 2>/dev/null" )
-       jsonreq6 = utl.exec("(echo /status | nc ::1 " .. v6_port .. ") 2>/dev/null")
+       jsonreq4 = utl.exec("(echo /status | nc 127.0.0.1 " .. v4_port .. " | sed -n '/^[}{ ]/p') 2>/dev/null" )
+       jsonreq6 = utl.exec("(echo /status | nc ::1 " .. v6_port .. " | sed -n '/^[}{ ]/p') 2>/dev/null")
        http.prepare_content("application/json")
        if not jsonreq4 or jsonreq4 == "" then
                jsonreq4 = "{}"
@@ -375,8 +375,8 @@ function fetch_jsoninfo(otable)
        local v4_port = uci:get("olsrd", "olsrd_jsoninfo", "port") or 9090
        local v6_port = uci:get("olsrd6", "olsrd_jsoninfo", "port") or 9090
 
-       jsonreq4 = utl.exec("(echo /" .. otable .. " | nc 127.0.0.1 " .. v4_port .. ") 2>/dev/null")
-       jsonreq6 = utl.exec("(echo /" .. otable .. " | nc ::1 " .. v6_port .. ") 2>/dev/null")
+       jsonreq4 = utl.exec("(echo /" .. otable .. " | nc 127.0.0.1 " .. v4_port .. " | sed -n '/^[}{ ]/p') 2>/dev/null")
+       jsonreq6 = utl.exec("(echo /" .. otable .. " | nc ::1 " .. v6_port .. " | sed -n '/^[}{ ]/p') 2>/dev/null")
        local jsondata4 = {}
        local jsondata6 = {}
        local data4 = {}
index 31dd7d0..c077c20 100644 (file)
@@ -12,8 +12,8 @@ local i = 1
 if luci.http.formvalue("status") == "1" then
        local rv = {}
        for k, link in ipairs(links) do
-               link.linkCost = tonumber(link.linkCost)/1024 or 0
-               if link.linkCost == 4096 then
+               link.linkCost = tonumber(link.linkCost) or 0
+               if link.linkCost == 4194304 then
                        link.linkCost = 0
                end
                local color = olsrtools.etx_color(link.linkCost)
@@ -129,8 +129,8 @@ end
                <tbody id="olsr_neigh_table">
                <%      local i = 1
                        for k, link in ipairs(links) do
-                       link.linkCost = tonumber(link.linkCost)/1024 or 0
-                       if link.linkCost == 4096 then
+                       link.linkCost = tonumber(link.linkCost) or 0
+                       if link.linkCost == 4194304 then
                                link.linkCost = 0
                        end
 
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..7865881 100644 (file)
@@ -7,192 +7,721 @@ 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"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "server_bridge",
+                       "10.200.200.1 255.255.255.0 10.200.200.200 10.200.200.250",
+                       translate("Configure server bridge"),
+                       { client="0" }, { client="" } },
+               { DynamicList,
+                       "push",
+                       { "redirect-gateway", "comp-lzo" },
+                       translate("Push options to peer"),
+                       { client="0" }, { client="" } },
+               { Flag,
+                       "push_reset",
+                       0,
+                       translate("Don't inherit global push options"),
+                       { client="0" }, { client="" } },
+               { Flag,
+                       "disable",
+                       0,
+                       translate("Client is disabled"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "ifconfig_pool",
+                       "10.200.200.100 10.200.200.150 255.255.255.0",
+                       translate("Set aside a pool of subnets"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "ifconfig_pool_persist",
+                       "/etc/openvpn/ipp.txt 600",
+                       translate("Persist/unpersist ifconfig-pool"),
+                       { client="0" }, { client="" } },
+       -- deprecated and replaced by --topology p2p
+       --      { Flag,
+       --              "ifconfig_pool_linear",
+       --              0,
+       --              translate("Use individual addresses rather than /30 subnets"),
+       --              { client="0" }, { client="" } },
+               { Value,
+                       "ifconfig_push",
+                       "10.200.200.1 255.255.255.255",
+                       translate("Push an ifconfig option to remote"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "iroute",
+                       "10.200.200.0 255.255.255.0",
+                       translate("Route subnet to client"),
+                       { client="0" }, { client="" } },
+               { Flag,
+                       "client_to_client",
+                       0,
+                       translate("Allow client-to-client traffic"),
+                       { client="0" }, { client="" } },
+               { Flag,
+                       "duplicate_cn",
+                       0,
+                       translate("Allow multiple clients with same certificate"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "client_config_dir",
+                       "/etc/openvpn/ccd",
+                       translate("Directory for custom client config files"),
+                       { client="0" }, { client="" } },
+               { Flag,
+                       "ccd_exclusive",
+                       0,
+                       translate("Refuse connection if no custom client config"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "tmp_dir",
+                       "/var/run/openvpn",
+                       translate("Temporary directory for client-connect return file"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "hash_size",
+                       "256 256",
+                       translate("Set size of real and virtual address hash tables"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "bcast_buffers",
+                       256,
+                       translate("Number of allocated broadcast buffers"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "tcp_queue_limit",
+                       64,
+                       translate("Maximum number of queued TCP output packets"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "max_clients",
+                       10,
+                       translate("Allowed maximum of connected clients"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "max_routes_per_client",
+                       256,
+                       translate("Allowed maximum of internal"),
+                       { client="0" }, { client="" } },
+               { Value,
+                       "connect_freq",
+                       "3 10",
+                       translate("Allowed maximum of new connections"),
+                       { client="0" }, { client="" } },
+               { Flag,
+                       "client_cert_not_required",
+                       0,
+                       translate("Don't require client certificate"),
+                       { client="0" }, { client="" } },
+               { Flag,
+                       "username_as_common_name",
+                       0,
+                       translate("Use username as common name"),
+                       { client="0" }, { client="" } },
+               { Flag,
+                       "client",
+                       0,
+                       translate("Configure client 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",
+                       0,
+                       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"
index 899b4d2..3904ac4 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-05-19 19:35+0200\n"
-"PO-Revision-Date: 2013-10-10 06:09+0200\n"
-"Last-Translator: Tanyingyu <Tanyingyu@163.com>\n"
+"PO-Revision-Date: 2017-04-14 17:26-0600\n"
+"Last-Translator: liushuyu <liushuyu011@gmail.com>\n"
 "Language-Team: QQ Group 75543259 <axishero@foxmail.com>\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 2.0.1\n"
 
 msgid "%s"
 msgstr "%s"
@@ -498,13 +498,13 @@ msgid "Temporary directory for client-connect return file"
 msgstr "客户端连接返回文件的临时目录"
 
 msgid "The highest supported TLS version"
-msgstr ""
+msgstr "最高支持的 TLS 版本"
 
 msgid "The key direction for 'tls-auth' and 'secret' options"
 msgstr ""
 
 msgid "The lowest supported TLS version"
-msgstr ""
+msgstr "最低支持的 TLS 版本"
 
 msgid "Timeframe for key exchange"
 msgstr "密钥交换时间表"
index 42335ce..28ffc38 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-05-19 19:36+0200\n"
-"PO-Revision-Date: 2011-11-04 18:11+0200\n"
-"Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2016-12-22 01:08+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: Pootle 2.0.4\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "Bidirectional mode"
 msgstr "双方向モード"
@@ -27,7 +27,7 @@ msgstr ""
 "るためのパッケージをインストールしてください。"
 
 msgid "Interface"
-msgstr ""
+msgstr "インターフェース"
 
 msgid "Port"
 msgstr "ポート番号"
@@ -36,7 +36,7 @@ msgid "Settings"
 msgstr "設定"
 
 msgid "Specifies the interface to listen on."
-msgstr ""
+msgstr "待ち受けるインターフェースを指定します。"
 
 msgid "TCP listener port."
 msgstr "TCP接続待ちポート"
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"
index 75d1a92..778422b 100644 (file)
@@ -2,14 +2,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: luci-app-privoxy\n"
 "POT-Creation-Date: 2015-06-10 20:16+0100\n"
-"PO-Revision-Date: 2015-06-10 20:16+0100\n"
+"PO-Revision-Date: 2017-01-05 18:01+0800\n"
 "Last-Translator: maz-1 <ohmygod19993 at gmail dotcom>\n"
 "Language-Team: \n"
-"Language: zh-cn\n"
+"Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.8.11\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
@@ -21,10 +21,10 @@ msgstr "当用户试图访问不受信任的页面时,错误页面所显示的
 msgid ""
 "A URL to documentation about the local Privoxy setup, configuration or "
 "policies."
-msgstr "指向Privoxy安装、设置和规则说明文档的URL"
+msgstr "指向 Privoxy 安装、设置和规则说明文档的 URL"
 
 msgid "A directory where Privoxy can create temporary files."
-msgstr "Privoxy存放临时文件的目录。"
+msgstr "Privoxy 存放临时文件的目录。"
 
 msgid "Access Control"
 msgstr "访问控制"
@@ -36,18 +36,18 @@ msgid "An alternative directory where the templates are loaded from."
 msgstr "可选的目录,放在里面的模板会被加载。"
 
 msgid "An email address to reach the Privoxy administrator."
-msgstr "用于联系privoxy管理员的邮箱地址。"
+msgstr "用于联系 Privoxy 管理员的邮箱地址。"
 
 msgid ""
 "Assumed server-side keep-alive timeout (in seconds) if not specified by the "
 "server."
-msgstr "当服务端没有指定超时时间时假定的超时时间(单位秒)。"
+msgstr "当服务端没有指定超时时间时假定的超时时间(单位秒)。"
 
 msgid "Boot delay"
-msgstr ""
+msgstr "启动延时"
 
 msgid "CGI user interface"
-msgstr "CGI用户界面"
+msgstr "CGI 用户界面"
 
 msgid "Common Log Format"
 msgstr "通用日志格式"
@@ -57,14 +57,14 @@ msgid ""
 "proxies. Note that parent proxies can severely decrease your privacy level. "
 "Also specified here are SOCKS proxies."
 msgstr ""
-"在这里设置http请求所经过的多重代理链。注意父级代理可能严重降低你的隐私安全"
-"度ã\80\82å\9c¨è¿\99é\87\8cè¿\98å\8f¯ä»¥è®¾ç½®SOCKS代理。"
+"在这里设置 HTTP 请求所经过的多重代理链。注意:父级代理可能严重降低你的隐私安"
+"å\85¨åº¦ã\80\82å\9c¨è¿\99é\87\8cè¿\98å\8f¯ä»¥è®¾ç½® SOCKS 代理。"
 
 msgid "Debug GIF de-animation"
 msgstr "GIF动画日志"
 
 msgid "Debug force feature"
-msgstr "force feature日志"
+msgstr "Force feature 日志"
 
 msgid "Debug redirects"
 msgstr "重定向日志"
@@ -73,7 +73,7 @@ msgid "Debug regular expression filters"
 msgstr "正则表达式日志"
 
 msgid "Delay (in seconds) during system boot before Privoxy start"
-msgstr ""
+msgstr "Privoxy 自启动延迟时间(单位:秒)"
 
 msgid "Directory does not exist!"
 msgstr "目录不存在!"
@@ -82,20 +82,20 @@ msgid "Disabled == Transparent Proxy Mode"
 msgstr "禁用 == 透明代理模式"
 
 msgid "Documentation"
-msgstr ""
+msgstr "记录信息"
 
 msgid "During delay ifup-events are not monitored !"
-msgstr ""
+msgstr "在延迟期间无法检测到 ifup 事件!"
 
 msgid "Enable proxy authentication forwarding"
 msgstr "允许转发代理认证"
 
 msgid ""
 "Enable/Disable autostart of Privoxy on system startup and interface events"
-msgstr "开启/关闭Privoxy在系统启动或者设置界面更改时自动启动。"
+msgstr "开启/关闭 Privoxy 在系统启动或接口事件时自动启动。"
 
 msgid "Enable/Disable filtering when Privoxy starts."
-msgstr "Privoxy启动时开启/关闭过滤。"
+msgstr "Privoxy 启动时开启/关闭过滤。"
 
 msgid "Enabled"
 msgstr "已开启"
@@ -103,10 +103,10 @@ msgstr "已开启"
 msgid ""
 "Enabling this option is NOT recommended if there is no parent proxy that "
 "requires authentication!"
-msgstr "父级代理不需要认证时不推荐开启这个选项!"
+msgstr "如果没有需要认证的父级代理时,不推荐开启这个选项!"
 
 msgid "File '%s' not found inside Configuration Directory"
-msgstr "文件 '%s' 没有在设置目录中找到!"
+msgstr "在设置目录中未找到文件 '%S'!"
 
 msgid "File not found or empty"
 msgstr "文件不存在或为空"
@@ -115,7 +115,7 @@ msgid "Files and Directories"
 msgstr "文件和目录"
 
 msgid "For help use link at the relevant option"
-msgstr "在相应选项下的连接可获取帮助。"
+msgstr "点击相应选项的连接可获取帮助。"
 
 msgid "Forwarding"
 msgstr "转发"
@@ -123,15 +123,15 @@ msgstr "转发"
 msgid ""
 "If enabled, Privoxy hides the 'go there anyway' link. The user obviously "
 "should not be able to bypass any blocks."
-msgstr "如果启用,Privoxy会隐藏'go there anyway'链接。用户显然不应能绕过屏蔽。"
+msgstr "如果启用,Privoxy 会隐藏 'go there anyway' 链接,用户就不能绕过屏蔽。"
 
 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 ""
-"如果除了你还有其他用户通过privoxy连接,让他们知道如何联系你、什么内容被屏蔽"
-"äº\86ã\80\81你为ä»\80ä¹\88è¦\81è¿\99ä¹\88å\81\9aã\80\81ä½ æ\89\80å\88¶å®\9aç\9a\84è§\84è\8c\83ç­\89ç­\89æ\98¯ä¸\80个好主æ\84\8f。"
+"如果除了你还有其他用户使用 Privoxy 连接,最好让他们知道如何联系你,你屏蔽什"
+"ä¹\88ï¼\8c你为ä»\80ä¹\88è¿\99æ ·å\81\9aï¼\8cä½ ç\9a\84æ\94¿ç­\96ç­\89ç­\89。"
 
 msgid "Invalid email address"
 msgstr "邮箱地址无效"
@@ -140,29 +140,29 @@ msgid "It is NOT recommended for the casual user."
 msgstr "不推荐新手使用。"
 
 msgid "Location of the Privoxy User Manual."
-msgstr "Privoxy用户手册位置"
+msgstr "Privoxy 用户手册位置"
 
 msgid "Log File Viewer"
 msgstr "日志查看器"
 
 msgid "Log all data read from the network"
-msgstr "记录所有从网络接收的数据"
+msgstr "记录所有接收的网络数据"
 
 msgid "Log all data written to the network"
-msgstr "è®°å½\95æ\89\80æ\9c\89å\8f\91é\80\81ç»\99ç½\91ç»\9cç\9a\84数据"
+msgstr "è®°å½\95æ\89\80æ\9c\89å\8f\91é\80\81ç\9a\84ç½\91ç»\9c数据"
 
 msgid "Log the applying actions"
-msgstr "记录被应用的规则"
+msgstr "记录配置保存动作"
 
 msgid ""
 "Log the destination for each request Privoxy let through. See also 'Debug "
 "1024'."
-msgstr "记录Privoxy所允许的所有请求。另请参考'Debug 1024'。"
+msgstr "记录 Privoxy 允许的所有请求。另请参考 'Debug 1024'。"
 
 msgid ""
 "Log the destination for requests Privoxy didn't let through, and the reason "
 "why."
-msgstr "记录被Privoxy拒绝的请求目标以及拒绝原因。"
+msgstr "记录 Privoxy 拒绝的请求目标以及拒绝原因。"
 
 msgid "Logging"
 msgstr "日志"
@@ -198,40 +198,40 @@ msgid "Maximum number of client connections that will be served."
 msgstr "客户端数量上限。"
 
 msgid "Maximum size (in KB) of the buffer for content filtering."
-msgstr "内容过滤的最大缓冲(单位KB)。"
+msgstr "内容过滤的最大缓冲(单位KB)。"
 
 msgid "Miscellaneous"
 msgstr "杂项"
 
 msgid "NOT installed"
-msgstr ""
+msgstr "未安装"
 
 msgid "No trailing '/', please."
-msgstr "路径结尾不要加'/' ."
+msgstr "路径结尾不要加 '/' 。"
 
 msgid "Non-fatal errors - *we highly recommended enabling this*"
-msgstr "非致命性错误 - * 建议开启 *"
+msgstr "é\9d\9eè\87´å\91½æ\80§é\94\99误 - * å¼ºç\83\88建议å¼\80å\90¯ *"
 
 msgid ""
 "Number of seconds after which a socket times out if no data is received."
-msgstr "socket连接未收到数据的超时时间。"
+msgstr "Socket 连接未收到数据的超时时间。"
 
 msgid ""
 "Number of seconds after which an open connection will no longer be reused."
-msgstr "一个开放的连接不再重复使用的超时时间。"
+msgstr "开放的连接不再重复使用的超时时间。"
 
 msgid ""
 "Only when using 'external filters', Privoxy has to create temporary files."
-msgstr "只有使用外置规则时,privoxy才需要创建临时文件。"
+msgstr "只有使用外置规则时,Privoxy 才需要创建临时文件。"
 
 msgid "Please install current version !"
-msgstr ""
+msgstr "请安装当前版本!"
 
 msgid "Please press [Read] button"
-msgstr "请点击[读取]按钮"
+msgstr "请点击 [读取] 按钮"
 
 msgid "Please read Privoxy manual for details!"
-msgstr "请阅读Privoxy手册以了解详情!"
+msgstr "请阅读 Privoxy 手册以了解详情!"
 
 msgid "Please update to the current version!"
 msgstr "请升级到当前版本!"
@@ -244,16 +244,16 @@ msgid ""
 "configuration, help and logging. This section of the configuration file "
 "tells Privoxy where to find those other files."
 msgstr ""
-"Privoxy可以使用其他一些文件用于附加设置,帮助和日志。这个区域用来告诉Privoxy"
-"从哪里找到这些文件。"
+"Privoxy 可以使用其他一些文件用于附加设置,帮助和日志。这个区域用来告诉 "
+"Privoxy 从哪里找到这些文件。"
 
 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是一个无缓存的网络代理,具有高级过滤功能,能够修改网页数据和HTTP头,控"
-"制访问,移除广告等。"
+"Privoxy 是一个无缓存的网络代理,具有高级过滤功能,能够修改网页数据和 HTTP 请"
+"求头,控制访问,移除广告等。"
 
 msgid "Read / Reread log file"
 msgstr "读取/刷新日志文件"
@@ -265,13 +265,13 @@ msgid "Show each connection status"
 msgstr "显示每个连接的状态"
 
 msgid "Show header parsing"
-msgstr "Show header parsing"
+msgstr "显示请求头 解析"
 
 msgid "Software package '%s' is not installed."
-msgstr ""
+msgstr "软件包 '%s' 未安装"
 
 msgid "Software package '%s' is outdated."
-msgstr ""
+msgstr "软件包 '%s' 已过时"
 
 msgid "Start"
 msgstr "启动"
@@ -289,7 +289,7 @@ msgid "Syntax:"
 msgstr "格式:"
 
 msgid "Syntax: Client header names delimited by spaces."
-msgstr "格式: Client header names delimited by spaces."
+msgstr "格式: 由空格分隔的客户端请求头名称。"
 
 msgid "Syntax: target_pattern http_parent[:port]"
 msgstr "格式: target_pattern http_parent[:port]"
@@ -298,7 +298,7 @@ msgid "Syntax: target_pattern socks_proxy[:port] http_parent[:port]"
 msgstr "格式: target_pattern socks_proxy[:port] http_parent[:port]"
 
 msgid "System"
-msgstr ""
+msgstr "系统"
 
 msgid ""
 "The actions file(s) to use. Multiple actionsfile lines are permitted, and "
@@ -307,12 +307,12 @@ msgstr "所使用的规则文件。允许并且推荐使用多个规则文件。
 
 msgid ""
 "The address and TCP port on which Privoxy will listen for client requests."
-msgstr "Privoxy接收客户端请求时监听的地址和TCP端口。"
+msgstr "Privoxy 接收客户端请求时监听的地址和 TCP 端口。"
 
 msgid ""
 "The compression level that is passed to the zlib library when compressing "
 "buffered content."
-msgstr "使用zlib压缩缓冲内容时的压缩级别。"
+msgstr "使用 zlib 压缩缓冲内容时的压缩级别。"
 
 msgid ""
 "The directory where all logging takes place (i.e. where the logfile is "
@@ -334,14 +334,14 @@ msgid "The log file to use. File name, relative to log directory."
 msgstr "日志文件名称,与日志路径相对。"
 
 msgid "The order in which client headers are sorted before forwarding them."
-msgstr "转发数据前,client headers的排序。"
+msgstr "转发数据前,客户端请求头的排序。"
 
 msgid ""
 "The status code Privoxy returns for pages blocked with +handle-as-empty-"
 "document."
 msgstr ""
-"当页面因为handle-as-empty-document规则被阻止时返回的状态码(选上为200 OK,不"
-"选上为403 Forbidden)"
+"当页面因为 handle-as-empty-document 规则被阻止时返回的状态码(选上为 200 OK,"
+"不选上为 403 Forbidden)"
 
 msgid ""
 "The trust mechanism is an experimental feature for building white-lists and "
@@ -361,19 +361,20 @@ msgstr "这个选项仅用于调试,开启后会极大地降低性能。"
 msgid ""
 "This option will be removed in future releases as it has been obsoleted by "
 "the more general header taggers."
-msgstr "这个选项在以后的版本中将被移除,因为它被header taggers所取代了。"
+msgstr "这个选项在以后的版本中将被移除,因为它被 header taggers 所取代了。"
 
 msgid ""
 "This tab controls the security-relevant aspects of Privoxy's configuration."
-msgstr "这个标签用于设置与安全相关的Privoxy选项。"
+msgstr "这个标签用于设置与安全相关的 Privoxy 选项。"
 
 msgid ""
 "Through which SOCKS proxy (and optionally to which parent HTTP proxy) "
 "specific requests should be routed."
-msgstr "指定的请求应该通过哪一个SOCKS代理(并且通过哪一个HTTP父代理,可选)"
+msgstr ""
+"指定的请求应该通过哪一个 SOCKS 代理(并且通过哪一个 HTTP 父代理,可选)"
 
 msgid "To which parent HTTP proxy specific requests should be routed."
-msgstr "请求应转发至哪一个父级HTTP代理。"
+msgstr "请求应转发至哪一个父级 HTTP 代理。"
 
 msgid "User customizations"
 msgstr "用户自定义"
@@ -382,10 +383,10 @@ msgid "Value is not a number"
 msgstr "输入值不是数字"
 
 msgid "Value not between 0 and 300"
-msgstr ""
+msgstr "输入值不在0和300之间"
 
 msgid "Value not between 0 and 9"
-msgstr "输入值不在0和9之间"
+msgstr "输入值不在0和9之间"
 
 msgid "Value not between 1 and 4096"
 msgstr "输入值不在1和4096之间"
@@ -408,7 +409,7 @@ msgstr "被拦截的请求是否应被当作有效的。"
 msgid ""
 "Whether or not Privoxy recognizes special HTTP headers to change toggle "
 "state."
-msgstr "Privoxy是否识别特殊的HTTP头以切换状态。"
+msgstr "Privoxy 是否识别特殊的 HTTP 请求头以切换状态。"
 
 msgid "Whether or not buffered content is compressed before delivery."
 msgstr "缓冲内容在传递之前是否压缩。"
@@ -422,7 +423,7 @@ msgid "Whether or not pipelined requests should be served."
 msgstr "是否处理管道化的请求。"
 
 msgid "Whether or not proxy authentication through Privoxy should work."
-msgstr "是否可以通过Privoxy进行代理验证。"
+msgstr "是否可以通过 Privoxy 进行代理验证。"
 
 msgid "Whether or not the web-based actions file editor may be used."
 msgstr "是否使用基于网页的规则编辑器。"
@@ -431,11 +432,11 @@ msgid "Whether or not the web-based toggle feature may be used."
 msgstr "是否启用基于网页的切换功能。"
 
 msgid "Whether requests to Privoxy's CGI pages can be blocked or redirected."
-msgstr "访问Privoxy CGI页面的请求是否可以被拦截或重定向。"
+msgstr "访问 Privoxy CGI 页面的请求是否可以被拦截或重定向。"
 
 msgid ""
 "Whether the CGI interface should stay compatible with broken HTTP clients."
-msgstr "CGI界面是否应兼容过时的HTTP客户端。"
+msgstr "CGI 界面是否应兼容过时的HTTP客户端。"
 
 msgid "Whether to run only one server thread."
 msgstr "是否只运行一个服务线程。"
index deeb23f..a81a6e1 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-25 22:10+0100\n"
-"PO-Revision-Date: 2011-10-28 11:02+0200\n"
-"Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2016-12-22 01:54+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: Pootle 2.0.4\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "Calculate overhead"
 msgstr "オーバーヘッドを考慮する"
@@ -23,7 +23,7 @@ msgid "Classification group"
 msgstr "区分グループ"
 
 msgid "Comment"
-msgstr ""
+msgstr "コメント"
 
 msgid "Destination host"
 msgstr "宛先ホスト"
@@ -50,7 +50,7 @@ msgid "Protocol"
 msgstr "プロトコル"
 
 msgid "QoS"
-msgstr ""
+msgstr "QoS"
 
 msgid "Quality of Service"
 msgstr "Quality of Service"
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"
+
index 721191a..68a5b3a 100644 (file)
@@ -13,9 +13,10 @@ s:tab("template", translate("Edit Template"))
 s:taboption("general", Value, "name", translate("Hostname"))
 s:taboption("general", Value, "description", translate("Description"))
 s:taboption("general", Value, "workgroup", translate("Workgroup"))
-s:taboption("general", Value, "homes", translate("Share home-directories"),
+h = s:taboption("general", Flag, "homes", translate("Share home-directories"),
         translate("Allow system users to reach their home directories via " ..
                 "network shares"))
+h.rmempty = false
 
 tmpl = s:taboption("template", Value, "_tmpl",
        translate("Edit the template that is used for generating the samba configuration."), 
@@ -53,6 +54,12 @@ ro.rmempty = false
 ro.enabled = "yes"
 ro.disabled = "no"
 
+br = s:option(Flag, "browseable", translate("Browseable"))
+br.rmempty = false
+br.default = "yes"
+br.enabled = "yes"
+br.disabled = "no"
+
 go = s:option(Flag, "guest_ok", translate("Allow guests"))
 go.rmempty = false
 go.enabled = "yes"
index 0668b1b..fadcbdf 100644 (file)
@@ -26,6 +26,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Usuaris permesos"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Crea màscara"
 
index fefb7ff..4a00124 100644 (file)
@@ -22,6 +22,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Povolení uživatelé"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Vytvořit masku"
 
index a5ceb05..1bcac0c 100644 (file)
@@ -24,6 +24,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Legitimierte Benutzer"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Berechtigungsmaske für neue Dateien"
 
index 7cc722d..9a15ad1 100644 (file)
@@ -22,6 +22,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr ""
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr ""
 
index f524c14..94cfdb5 100644 (file)
@@ -22,6 +22,9 @@ msgstr "Allow system users to reach their home directories via network shares"
 msgid "Allowed users"
 msgstr "Allowed users"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Create mask"
 
index 950a817..c14ebd2 100644 (file)
@@ -24,6 +24,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Usuarios permitidos"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Crear máscara"
 
index 8877900..ff040b5 100644 (file)
@@ -24,6 +24,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Utilisateurs autorisés"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Maque de création"
 
index dd21a4a..620f56c 100644 (file)
@@ -17,6 +17,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr ""
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr ""
 
index 64d1e22..38a9a08 100644 (file)
@@ -22,6 +22,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Engedélyezett felhasználók"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Létrehozási maszk"
 
index 4645782..a2bb9b6 100644 (file)
@@ -24,6 +24,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Utenti ammessi"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Mask di creazione dei file"
 
index c527507..9f338de 100644 (file)
@@ -22,6 +22,9 @@ msgstr "sambaを介してユーザーのホームディレクトリへのアク
 msgid "Allowed users"
 msgstr "許可されたユーザー"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "マスクの作成"
 
index e29133e..de4ed7c 100644 (file)
@@ -16,6 +16,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr ""
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr ""
 
index 1c5c807..7059d77 100644 (file)
@@ -13,6 +13,9 @@ msgstr "Tillat systembrukere å nå sine hjemmekataloger via nettverks mapper."
 msgid "Allowed users"
 msgstr "Tillatte brukere"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Opprett Maske"
 
index 7482622..bf54e78 100644 (file)
@@ -23,6 +23,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Użytkownicy z prawem dostępu"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Utwórz maskę"
 
index a753152..43ea3b9 100644 (file)
@@ -24,6 +24,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Usuários permitidos"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Máscara de criação"
 
index 4c5a2cd..6d4f003 100644 (file)
@@ -24,6 +24,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Utilizadores Permitidos"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Criar Máscara"
 
index 4bc3415..78c55e4 100644 (file)
@@ -23,6 +23,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Utilizatori acceptati"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Creaza masca"
 
index 82906e3..4823dc4 100644 (file)
@@ -25,6 +25,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Разрешённые пользователи"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Создать маску"
 
index 66ec9e0..2c511c8 100644 (file)
@@ -17,6 +17,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr ""
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr ""
 
index b83dec5..549a69c 100644 (file)
@@ -18,6 +18,9 @@ msgstr "Tillåt systemanvändare att nå deras hem-mappar via nätverksdelningar
 msgid "Allowed users"
 msgstr "Tillåtna användare"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Skapa mask"
 
index d91400b..9e4ab7f 100644 (file)
@@ -10,6 +10,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr ""
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr ""
 
index fda2f6e..486768f 100644 (file)
@@ -17,6 +17,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr ""
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr ""
 
index 6f2a920..077315e 100644 (file)
@@ -23,6 +23,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Дозволені користувачі"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "Створити маску"
 
index 4e5638d..c5f6e02 100644 (file)
@@ -28,6 +28,9 @@ msgstr ""
 msgid "Allowed users"
 msgstr "Người sử dụng được cho phép"
 
+msgid "Browseable"
+msgstr ""
+
 #, fuzzy
 msgid "Create mask"
 msgstr "Tạo Mask"
index 4ff671b..2294b61 100644 (file)
@@ -22,6 +22,9 @@ msgstr "允许系统用户通过网络共享访问他们的主目录"
 msgid "Allowed users"
 msgstr "允许用户"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "创建权限"
 
index 6ec99ee..bfa2d7d 100644 (file)
@@ -20,6 +20,9 @@ msgstr "允許系統使用者透過網路分享家目錄"
 msgid "Allowed users"
 msgstr "允許使用者"
 
+msgid "Browseable"
+msgstr ""
+
 msgid "Create mask"
 msgstr "建立權限"
 
@@ -70,7 +73,9 @@ msgid ""
 "your samba configuration will be generated. Values enclosed by pipe symbols "
 "('|') should not be changed. They get their values from the 'General "
 "Settings' tab."
-msgstr "建立Samba設定的 \"/etc/samba/smb.conf.template\" 檔案內容。被('|')包圍的值可以在基本設定中進行設定"
+msgstr ""
+"建立Samba設定的 \"/etc/samba/smb.conf.template\" 檔案內容。被('|')包圍的值可"
+"以在基本設定中進行設定"
 
 msgid "Workgroup"
 msgstr "工作群組"
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/ja/shairplay.po b/applications/luci-app-shairplay/po/ja/shairplay.po
new file mode 100644 (file)
index 0000000..07fa7be
--- /dev/null
@@ -0,0 +1,54 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2017-01-03 15:06+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.11\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "AO Device ID"
+msgstr "オーディオ出力 デバイスID"
+
+msgid "AO Device Name"
+msgstr "オーディオ出力 デバイス名"
+
+msgid "AO Driver"
+msgstr "オーディオ出力 デバイスドライバー"
+
+msgid "Airport Name"
+msgstr "Airport名"
+
+msgid "Default"
+msgstr "デフォルト"
+
+msgid "Enabled"
+msgstr "有効"
+
+msgid "HW Address"
+msgstr "ハードウェア アドレス"
+
+msgid "Password"
+msgstr "パスワード"
+
+msgid "Port"
+msgstr "ポート"
+
+msgid "Respawn"
+msgstr "リスポーン"
+
+msgid "Shairplay"
+msgstr ""
+
+msgid ""
+"Shairplay is a simple AirPlay server implementation, here you can configure "
+"the settings."
+msgstr ""
+"Shairplayは、シンプルなAirPlay サーバー実装です。ここでは、設定を行うことがで"
+"きます。"
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-shairplay/po/templates/shairplay.pot b/applications/luci-app-shairplay/po/templates/shairplay.pot
new file mode 100644 (file)
index 0000000..b3da99e
--- /dev/null
@@ -0,0 +1,40 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "AO Device ID"
+msgstr ""
+
+msgid "AO Device Name"
+msgstr ""
+
+msgid "AO Driver"
+msgstr ""
+
+msgid "Airport Name"
+msgstr ""
+
+msgid "Default"
+msgstr ""
+
+msgid "Enabled"
+msgstr ""
+
+msgid "HW Address"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Port"
+msgstr ""
+
+msgid "Respawn"
+msgstr ""
+
+msgid "Shairplay"
+msgstr ""
+
+msgid ""
+"Shairplay is a simple AirPlay server implementation, here you can configure "
+"the settings."
+msgstr ""
diff --git a/applications/luci-app-simple-adblock/po/ja/simple-adblock.po b/applications/luci-app-simple-adblock/po/ja/simple-adblock.po
new file mode 100644 (file)
index 0000000..7926595
--- /dev/null
@@ -0,0 +1,93 @@
+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.12\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid "Blacklisted Domain URLs"
+msgstr "ドメイン ブラックリストのURL"
+
+msgid "Blacklisted Domains"
+msgstr "ブラックリスト ドメイン"
+
+msgid "Blacklisted Hosts URLs"
+msgstr "hosts ブラックリストのURL"
+
+msgid "Controls system log and console output verbosity"
+msgstr "システム ログとコンソール出力の冗長性を設定します。"
+
+msgid "Enable/start service"
+msgstr "サービスの有効化/開始"
+
+msgid "Force Router DNS"
+msgstr "ルーターDNSの強制"
+
+msgid "Force Router DNS server to all local devices"
+msgstr "全ローカル デバイスにルーター DNSサーバーの使用を強制"
+
+msgid "Forces Router DNS use on local devices, also known as DNS Hijacking"
+msgstr ""
+"ローカル デバイスに対し、ルーター上のDNSサーバーの使用を強制します。これは、"
+"DNS ハイジャックとしても知られています。"
+
+msgid "Individual domains to be blacklisted"
+msgstr "ブラックリストに登録する、個々のドメインです。"
+
+msgid "Individual domains to be whitelisted"
+msgstr "ホワイトリストに登録する、個々のドメインです。"
+
+msgid "LED to indicate status"
+msgstr "ステータスを表示するLED"
+
+msgid "Let local devices use their own DNS servers if set"
+msgstr "DNSサーバーの使用を強制しない"
+
+msgid "Output Verbosity Setting"
+msgstr "出力詳細度の設定"
+
+msgid "Pick the LED not already used in"
+msgstr "右の設定で既に使用されていないLEDを選択します:"
+
+msgid "Simple AdBlock"
+msgstr "Simple AdBlock"
+
+msgid "Simple AdBlock Settings"
+msgstr "Simple AdBlock 設定"
+
+msgid "Some output"
+msgstr "軽量出力"
+
+msgid "Suppress output"
+msgstr "出力の抑制"
+
+msgid "System LED Configuration"
+msgstr "LED 設定"
+
+msgid "URLs to lists of domains to be blacklisted"
+msgstr "ブラックリストに登録するドメインのリストのURLです。"
+
+msgid "URLs to lists of domains to be whitelisted"
+msgstr "ホワイトリストに登録するドメインのリストのURLです。"
+
+msgid "URLs to lists of hosts to be blacklisted"
+msgstr "ブラックリストに登録するドメインが列挙された、hostsファイルのURLです。"
+
+msgid "Verbose output"
+msgstr "詳細出力"
+
+msgid "Whitelisted Domain URLs"
+msgstr "ドメイン ホワイトリストのURL"
+
+msgid "Whitelisted Domains"
+msgstr "ホワイトリスト ドメイン"
+
+msgid "none"
+msgstr "なし"
index 345f891..5740aa5 100644 (file)
@@ -9,6 +9,12 @@ include $(TOPDIR)/rules.mk
 LUCI_TITLE:=Freifunk DHCP-Splash application
 LUCI_DEPENDS:=+luci-lib-nixio +tc +kmod-sched +iptables-mod-nat-extra +iptables-mod-ipopt
 
+define Package/luci-app-splash/conffiles
+/etc/config/luci_splash
+/usr/lib/luci-splash/splashtext.html
+/usr/lib/luci-splash/splashtextinclude.html
+endef
+
 include ../../luci.mk
 
 # call BuildPackage - OpenWrt buildroot signature
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 6c0121e..008792a 100644 (file)
@@ -12,6 +12,10 @@ LUCI_DEPENDS:= \
        +collectd-mod-cpu +collectd-mod-memory \
        +collectd-mod-interface +collectd-mod-load +collectd-mod-network
 
+define Package/luci-app-statistics/conffiles
+/etc/config/luci_statistics
+endef
+
 include ../../luci.mk
 
 # call BuildPackage - OpenWrt buildroot signature
index 36c5554..1bc0714 100644 (file)
@@ -24,6 +24,7 @@ function index()
                s_network       = _("Network plugins"),
 
                conntrack       = _("Conntrack"),
+               contextswitch   = _("Context Switches"),
                cpu                     = _("Processor"),
                cpufreq         = _("CPU Frequency"),
                csv                     = _("CSV Output"),
@@ -58,7 +59,7 @@ function index()
        -- our collectd menu
        local collectd_menu = {
                output  = { "csv", "network", "rrdtool", "unixsock" },
-               general = { "cpu", "cpufreq", "df", "disk", "email",
+               general = { "contextswitch", "cpu", "cpufreq", "df", "disk", "email",
                        "entropy", "exec", "irq", "load", "memory",
                        "nut", "processes", "sensors", "thermal", "uptime" },
                network = { "conntrack", "dns", "interface", "iptables",
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/contextswitch.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/contextswitch.lua
new file mode 100644 (file)
index 0000000..7ae6b24
--- /dev/null
@@ -0,0 +1,14 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("luci_statistics",
+       translate("CPU Context Switches Plugin Configuration"),
+       translate("This plugin collects statistics about the processor context switches."))
+
+-- collectd_contextswitch config section
+s = m:section( NamedSection, "collectd_contextswitch", "luci_statistics" )
+
+-- collectd_contextswitch.enable
+enable = s:option( Flag, "enable", translate("Enable this plugin") )
+enable.default = 0
+
+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
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/contextswitch.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/contextswitch.lua
new file mode 100644 (file)
index 0000000..6826e12
--- /dev/null
@@ -0,0 +1,23 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.statistics.rrdtool.definitions.contextswitch",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+       return {
+               title = "%H: Context switches",
+               alt_autoscale = true,
+               vlabel = "Switches/s",
+               number_format = "%5.0lf",
+               data = {
+                       types = { "contextswitch" },
+                       sources = {
+                               contextswitch = { "value" }
+                       },
+                       options = {
+                               contextswitch = { color = "0000ff", title = "Context switches", noarea=true, overlay=true }
+                       }
+               }
+       }
+end
+
index fbc3884..b5633c1 100644 (file)
@@ -8,7 +8,6 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
        return {
                title = "%H: Disk space usage on %pi",
                vlabel = "Bytes",
-               per_instance  = true,
                number_format = "%5.1lf%sB",
 
                data = {
index d48441a..323c3c2 100644 (file)
@@ -12,17 +12,18 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
                        data = {
                                instances = {
                                        ps_state = {
-                                               "sleeping", "running", "paging", "blocked", "stopped", "zombies"
+                                               "sleeping", "running", "paging",
+                                               "blocked", "stopped", "zombies"
                                        }
                                },
 
                                options = {
-                                       ps_state_sleeping = { color = "0000ff" },
-                                       ps_state_running  = { color = "008000" },
-                                       ps_state_paging   = { color = "ffff00" },
-                                       ps_state_blocked  = { color = "ff5000" },
-                                       ps_state_stopped  = { color = "555555" },
-                                       ps_state_zombies  = { color = "ff0000" }
+                                       ps_state_sleeping = { color = "0000ff", title = "Sleeping" },
+                                       ps_state_running  = { color = "008000", title = "Running" },
+                                       ps_state_paging   = { color = "ffff00", title = "Paging" },
+                                       ps_state_blocked  = { color = "ff5000", title = "Blocked" },
+                                       ps_state_stopped  = { color = "555555", title = "Stopped" },
+                                       ps_state_zombies  = { color = "ff0000", title = "Zombies" }
                                }
                        }
                },
@@ -38,11 +39,13 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
                                options = {
                                        ps_cputime__user = {
                                                color   = "0000ff",
+                                               title   = "User",
                                                overlay = true
                                        },
 
                                        ps_cputime__syst = {
                                                color   = "ff0000",
+                                               title   = "System",
                                                overlay = true
                                        }
                                }
@@ -59,15 +62,15 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
                                },
 
                                options = {
-                                       ps_count__threads   = { color = "00ff00" },
-                                       ps_count__processes = { color = "0000bb" }
+                                       ps_count__threads   = { color = "00ff00", title = "Threads" },
+                                       ps_count__processes = { color = "0000bb", title = "Processes" }
                                }
                        }
                },
 
                {
                        title = "%H: Page faults in %pi",
-                       vlabel = "Pagefaults",
+                       vlabel = "Page faults",
                        detail = true,
                        data = {
                                sources = {
@@ -75,14 +78,14 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
                                },
 
                                options = {
-                                       ps_pagefaults__minflt = { color = "ff0000" },
-                                       ps_pagefaults__majflt = { color = "ff5500" }
+                                       ps_pagefaults__minflt = { color = "0000ff", title = "Minor" },
+                                       ps_pagefaults__majflt = { color = "ff0000", title = "Major" }
                                }
                        }
                },
 
                {
-                       title = "%H: Virtual memory size of %pi",
+                       title = "%H: Resident segment size (RSS) of %pi",
                        vlabel = "Bytes",
                        detail = true,
                        number_format = "%5.1lf%sB",
@@ -90,7 +93,21 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
                                types = { "ps_rss" },
 
                                options = {
-                                       ps_rss = { color = "0000ff" }
+                                       ps_rss = { color = "0000ff", title = "Resident segment" }
+                               }
+                       }
+               },
+
+               {
+                       title = "%H: Virtual memory size (VSZ) of %pi",
+                       vlabel = "Bytes",
+                       detail = true,
+                       number_format = "%5.1lf%sB",
+                       data = {
+                               types = { "ps_vm" },
+
+                               options = {
+                                       ps_vm = { color = "0000ff", title = "Virtual memory" }
                                }
                        }
                }
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 2c648ce..33d5051 100644 (file)
@@ -39,6 +39,15 @@ msgstr "Directori base"
 msgid "Basic monitoring"
 msgstr "Monitoreig bàsic"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "Configuració del connector de CPU"
 
@@ -84,6 +93,9 @@ msgstr "Conntrack"
 msgid "Conntrack Plugin Configuration"
 msgstr "Configuració del connector Conntrack"
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "Configuració del connector DF"
 
@@ -129,6 +141,9 @@ msgstr "Configuració del connector d'adreça electrònica"
 msgid "Email"
 msgstr "Adreça electrònica"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Activa aquest connector"
 
@@ -268,6 +283,9 @@ msgstr "Monitoritza tots els ports locals que reben connexions"
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Monitoritza dispositius"
 
@@ -319,6 +337,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"
 
@@ -658,6 +681,12 @@ msgstr ""
 "els ports seleccionats."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -667,6 +696,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 2a72546..8498316 100644 (file)
@@ -35,6 +35,15 @@ msgstr "Základní adresář"
 msgid "Basic monitoring"
 msgstr "Základní sledování"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "Nastavení CPU pluginu"
 
@@ -80,6 +89,9 @@ msgstr "Conntrack"
 msgid "Conntrack Plugin Configuration"
 msgstr "Nastavení pluginu Conntrack"
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "Nastavení pluginu DF"
 
@@ -125,6 +137,9 @@ msgstr "Nastavení E-Mail pluginu"
 msgid "Email"
 msgstr "Email"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Povolit tento plugin"
 
@@ -263,6 +278,9 @@ msgstr "Monitorovat všechny naslouchající porty"
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Sledovat zařízení"
 
@@ -314,6 +332,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"
 
@@ -644,6 +667,12 @@ msgstr ""
 "vybraných portech."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -653,6 +682,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 51697bf..196433e 100644 (file)
@@ -37,6 +37,15 @@ msgstr "Basisverzeichnis"
 msgid "Basic monitoring"
 msgstr "Schnittstellen einfach überwachen"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "CPU Plugin Konfiguration"
 
@@ -82,6 +91,9 @@ msgstr "Conntrack"
 msgid "Conntrack Plugin Configuration"
 msgstr "Conntrack Plugin Einstellungen"
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "DF Plugin Konfiguration"
 
@@ -127,6 +139,9 @@ msgstr "E-Mail Plugin Konfiguration"
 msgid "Email"
 msgstr "Email"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Plugin aktivieren"
 
@@ -270,6 +285,9 @@ msgstr "Alle durch lokale Dienste genutzten Ports überwachen"
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Geräte überwachen"
 
@@ -321,6 +339,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"
 
@@ -663,6 +686,12 @@ msgstr ""
 "ausgewählten Ports."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -672,6 +701,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 3388ea5..da54cda 100644 (file)
@@ -38,6 +38,15 @@ msgstr "Κατάλογος βάσης"
 msgid "Basic monitoring"
 msgstr ""
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr ""
 
@@ -83,6 +92,9 @@ msgstr "Conntrack"
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr ""
 
@@ -129,6 +141,9 @@ msgstr ""
 msgid "Email"
 msgstr "Ηλ. Ταχυδρομείο"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr ""
 
@@ -261,6 +276,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr ""
 
@@ -312,6 +330,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 "Αριθμός νημάτων για τη συλλογή δεδομένων"
 
@@ -606,6 +629,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -613,6 +642,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index fe1f8be..d9ab59c 100644 (file)
@@ -37,6 +37,15 @@ msgstr "Base Directory"
 msgid "Basic monitoring"
 msgstr "Basic monitoring"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "CPU Plugin Configuration"
 
@@ -82,6 +91,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "DF Plugin Configuration"
 
@@ -127,6 +139,9 @@ msgstr "E-Mail Plugin Configuration"
 msgid "Email"
 msgstr "Email"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Enable this plugin"
 
@@ -266,6 +281,9 @@ msgstr "Monitor all local listen ports"
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Monitor devices"
 
@@ -317,6 +335,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"
 
@@ -646,6 +669,12 @@ msgstr ""
 "selected ports."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -655,6 +684,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 0d47b65..18c2581 100644 (file)
@@ -37,6 +37,15 @@ msgstr "Directorio Base"
 msgid "Basic monitoring"
 msgstr "Monitorización básica"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "Configuración del plugin de CPU"
 
@@ -82,6 +91,9 @@ msgstr "Seguimiento"
 msgid "Conntrack Plugin Configuration"
 msgstr "Configuración del seguimiento"
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "Configuración del plugin DF"
 
@@ -127,6 +139,9 @@ msgstr "Configuración del plugin email"
 msgid "Email"
 msgstr "Correo electrónico"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Activar este plugin"
 
@@ -265,6 +280,9 @@ msgstr "Monitorizar todos los puertos de escucha locales"
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Dispositivos a monitonizar"
 
@@ -316,6 +334,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"
 
@@ -659,6 +682,12 @@ msgstr ""
 "puertos seleccionados."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -668,6 +697,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index b7ace0c..b657bd3 100644 (file)
@@ -37,6 +37,15 @@ msgstr "Répertoire de base"
 msgid "Basic monitoring"
 msgstr "Surveillance de base"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "Configuration du greffon sur le CPU"
 
@@ -82,6 +91,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "Configuration du greffon DF"
 
@@ -127,6 +139,9 @@ msgstr "Configuration du greffon des courriels"
 msgid "Email"
 msgstr "Courriel"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Activer ce greffon"
 
@@ -267,6 +282,9 @@ msgstr "Surveiller tous les ports en écoute locaux"
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Périphériques à surveiller"
 
@@ -318,6 +336,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"
 
@@ -654,6 +677,12 @@ msgstr ""
 "de connexions TCP sur les ports spécifiés."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -661,6 +690,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index a5da218..6f40a47 100644 (file)
@@ -37,6 +37,15 @@ msgstr ""
 msgid "Basic monitoring"
 msgstr ""
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr ""
 
@@ -79,6 +88,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr ""
 
@@ -124,6 +136,9 @@ msgstr ""
 msgid "Email"
 msgstr ""
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr ""
 
@@ -256,6 +271,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr ""
 
@@ -307,6 +325,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 ""
 
@@ -601,6 +624,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -608,6 +637,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index bf4dd53..979c72f 100644 (file)
@@ -35,6 +35,15 @@ msgstr "Alapkönyvtár"
 msgid "Basic monitoring"
 msgstr "Általános figyelés"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "CPU bővítmény beállítása"
 
@@ -80,6 +89,9 @@ msgstr "Conntrack"
 msgid "Conntrack Plugin Configuration"
 msgstr "Conntrack bővítmény beállítása"
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "DF bővítmény beállítása"
 
@@ -125,6 +137,9 @@ msgstr "E-Mail bővítmény beállítása"
 msgid "Email"
 msgstr "E-mail"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Bővítmény engedélyezése"
 
@@ -268,6 +283,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Eszközök figyelése"
 
@@ -319,6 +337,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"
 
@@ -646,6 +669,12 @@ msgstr ""
 "információkat."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -655,6 +684,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 1313336..b0ae3d6 100644 (file)
@@ -37,6 +37,15 @@ msgstr ""
 msgid "Basic monitoring"
 msgstr ""
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr ""
 
@@ -82,6 +91,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr ""
 
@@ -127,6 +139,9 @@ msgstr ""
 msgid "Email"
 msgstr ""
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Abilita questo plugin"
 
@@ -266,6 +281,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr ""
 
@@ -317,6 +335,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 ""
 
@@ -611,6 +634,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -618,6 +647,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 7469fe6..690d920 100644 (file)
@@ -1,59 +1,68 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-05-19 19:36+0200\n"
-"PO-Revision-Date: 2012-04-20 08:55+0200\n"
-"Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\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"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Pootle 2.0.4\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid "Action (target)"
-msgstr ""
+msgstr "アクション(対象)"
 
 msgid "Add command for reading values"
-msgstr ""
+msgstr "値読み取りコマンドの追加"
 
 msgid "Add matching rule"
-msgstr ""
+msgstr "マッチング規則の追加"
 
 msgid "Add multiple hosts separated by space."
-msgstr ""
+msgstr "スペースで区切られた複数のホストを追加します。"
 
 msgid "Add notification command"
-msgstr ""
+msgstr "通知コマンドの追加"
 
 msgid "Aggregate number of connected users"
-msgstr ""
+msgstr "接続ユーザー数の総計"
 
 msgid "Base Directory"
 msgstr "ベース・ディレクトリ"
 
 msgid "Basic monitoring"
+msgstr "基本モニタリング"
+
+msgid "CPU Context Switches Plugin Configuration"
 msgstr ""
 
+msgid "CPU Frequency"
+msgstr "CPU 周波数"
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr "CPU 周波数プラグイン設定"
+
 msgid "CPU Plugin Configuration"
-msgstr ""
+msgstr "CPU プラグイン設定"
 
 msgid "CSV Output"
-msgstr ""
+msgstr "CSV 出力"
 
 msgid "CSV Plugin Configuration"
 msgstr "CSV プラグイン設定"
 
 msgid "Cache collected data for"
-msgstr ""
+msgstr "収集されたデータをキャッシュする"
 
 msgid "Cache flush interval"
 msgstr ""
 
 msgid "Chain"
-msgstr ""
+msgstr "チェイン"
 
 msgid "CollectLinks"
 msgstr ""
@@ -72,11 +81,16 @@ msgid ""
 "different plugins. On this page you can change general settings for the "
 "collectd daemon."
 msgstr ""
+"Collectd は、様々なソースから別々のプラグインを通してデータを収集する軽量デー"
+"モンです。"
 
 msgid "Conntrack"
-msgstr ""
+msgstr "Conntrack"
 
 msgid "Conntrack Plugin Configuration"
+msgstr "Conntrack プラグイン設定"
+
+msgid "Context Switches"
 msgstr ""
 
 msgid "DF Plugin Configuration"
@@ -86,7 +100,7 @@ msgid "DNS"
 msgstr "DNS"
 
 msgid "DNS Plugin Configuration"
-msgstr ""
+msgstr "DNS プラグイン設定"
 
 msgid "Data collection interval"
 msgstr "データの収集間隔"
@@ -95,7 +109,7 @@ msgid "Datasets definition file"
 msgstr "データベース定義ファイル"
 
 msgid "Destination ip range"
-msgstr ""
+msgstr "対象IPの範囲"
 
 msgid "Directory for collectd plugins"
 msgstr "collectd プラグインディレクトリ"
@@ -107,13 +121,13 @@ msgid "Disk Plugin Configuration"
 msgstr "ディスクプラグイン設定"
 
 msgid "Disk Space Usage"
-msgstr ""
+msgstr "ディスクスペース使用量"
 
 msgid "Disk Usage"
-msgstr ""
+msgstr "ディスクの使用"
 
 msgid "Display Host »"
-msgstr ""
+msgstr "ホストを表示 »"
 
 msgid "Display timespan »"
 msgstr "時間帯表示 »"
@@ -124,20 +138,23 @@ msgstr "E-メールプラグイン設定"
 msgid "Email"
 msgstr "Eメール"
 
+msgid "Empty value = monitor all"
+msgstr "空の値 = 全てをモニターする"
+
 msgid "Enable this plugin"
 msgstr "プラグイン設定を有効にする"
 
 msgid "Entropy"
-msgstr ""
+msgstr "エントロピー"
 
 msgid "Entropy Plugin Configuration"
-msgstr ""
+msgstr "エントロピー プラグイン設定"
 
 msgid "Exec"
 msgstr ""
 
 msgid "Exec Plugin Configuration"
-msgstr ""
+msgstr "Exec プラグイン設定"
 
 msgid "Filter class monitoring"
 msgstr ""
@@ -155,10 +172,10 @@ msgid "Gather compression statistics"
 msgstr ""
 
 msgid "General plugins"
-msgstr ""
+msgstr "一般プラグイン"
 
 msgid "Generate a separate graph for each logged user"
-msgstr ""
+msgstr "ログインユーザーごとの分離されたグラフを生成します。"
 
 msgid "Graphs"
 msgstr "グラフ"
@@ -170,23 +187,30 @@ msgid ""
 "Here you can define external commands which will be started by collectd in "
 "order to read certain values. The values will be read from stdout."
 msgstr ""
+"ここでは、特定の値を読み込むためにcollectによって順番に開始される外部コマンド"
+"を設定することができます。値は標準出力から読み込まれます。"
 
 msgid ""
 "Here you can define external commands which will be started by collectd when "
 "certain threshold values have been reached. The values leading to invokation "
 "will be feeded to the the called programs stdin."
 msgstr ""
+"ここでは、特定の閾値に到達したときにcollectによって開始される外部コマンドを設"
+"定することができます。呼び出しにつながる値は、呼び出されたプログラムの標準入"
+"力に送られます。"
 
 msgid ""
 "Here you can define various criteria by which the monitored iptables rules "
 "are selected."
 msgstr ""
+"ここでは、モニターするiptable規則が選択される様々な基準を設定することができま"
+"す。"
 
 msgid "Hold Ctrl to select multiple items or to deselect entries."
-msgstr ""
+msgstr "複数の項目を選択または解除するには、Ctrlキーを押したままにします。"
 
 msgid "Host"
-msgstr ""
+msgstr "ホスト"
 
 msgid "Hostname"
 msgstr "ホスト名"
@@ -198,96 +222,102 @@ msgid "IRQ Plugin Configuration"
 msgstr "IRQ プラグイン設定"
 
 msgid "Ignore source addresses"
-msgstr ""
+msgstr "無視するアクセス元アドレス"
 
 msgid "Incoming interface"
-msgstr ""
+msgstr "着信インターフェース"
 
 msgid "Interface Plugin Configuration"
-msgstr ""
+msgstr "インターフェース プラグイン設定"
 
 msgid "Interfaces"
-msgstr ""
+msgstr "インターフェース"
 
 msgid "Interrupts"
-msgstr ""
+msgstr "割込み"
 
 msgid "Interval for pings"
-msgstr ""
+msgstr "ping間隔"
 
 msgid "Iptables Plugin Configuration"
-msgstr ""
+msgstr "Iptables プラグイン設定"
 
 msgid "Leave unselected to automatically determine interfaces to monitor."
 msgstr ""
+"モニターするインターフェースを自動的に決定するには、未選択のままにします。"
 
 msgid "Listen host"
-msgstr ""
+msgstr "待ち受けホスト"
 
 msgid "Listen port"
-msgstr ""
+msgstr "待ち受けポート"
 
 msgid "Listener interfaces"
-msgstr ""
+msgstr "待ち受けインターフェース"
 
 msgid "Load Plugin Configuration"
-msgstr ""
+msgstr "負荷プラグイン設定"
 
 msgid ""
 "Max values for a period can be used instead of averages when not using 'only "
 "average RRAs'"
 msgstr ""
+"'RRAの平均のみ' を使用しないとき、平均値の代わりに一定期間の最大値を使用でき"
+"ます。"
 
 msgid "Maximum allowed connections"
-msgstr ""
+msgstr "許可された最大接続数"
 
 msgid "Memory"
-msgstr ""
+msgstr "メモリー"
 
 msgid "Memory Plugin Configuration"
-msgstr ""
+msgstr "メモリー プラグイン設定"
 
 msgid "Monitor all except specified"
 msgstr "設定値以外の全てのインターフェースをモニターする"
 
 msgid "Monitor all local listen ports"
-msgstr ""
+msgstr "ローカルの全待ち受けポートをモニターする"
 
 msgid "Monitor all sensors"
+msgstr "全てのセンサーをモニターする"
+
+msgid "Monitor device(s) / thermal zone(s)"
 msgstr ""
 
 msgid "Monitor devices"
-msgstr ""
+msgstr "デバイスをモニターする"
 
 msgid "Monitor disks and partitions"
-msgstr ""
+msgstr "ディスクとパーティションをモニターする"
 
 msgid "Monitor filesystem types"
-msgstr ""
+msgstr "ファイルシステム タイプをモニターする"
 
 msgid "Monitor hosts"
-msgstr ""
+msgstr "ホストをモニターする"
 
 msgid "Monitor interfaces"
 msgstr "モニターするインターフェースの設定"
 
 msgid "Monitor interrupts"
-msgstr ""
+msgstr "割込みをモニターする"
 
 msgid "Monitor local ports"
-msgstr ""
+msgstr "ローカルのポートをモニターする"
 
 msgid "Monitor mount points"
-msgstr ""
+msgstr "マウントポイントをモニターする"
 
 msgid "Monitor processes"
-msgstr ""
+msgstr "プロセスをモニターする"
 
 msgid "Monitor remote ports"
-msgstr ""
+msgstr "リモートのポートをモニターする"
 
 msgid "Name of the rule"
-msgstr ""
+msgstr "ルール名"
 
 msgid "Netlink"
 msgstr "Netlink"
@@ -307,6 +337,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 "データ収集用スレッド数"
 
@@ -320,19 +358,19 @@ msgid "Only create average RRAs"
 msgstr "平均値のRRAsのみ作成する"
 
 msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
 
 msgid "OpenVPN Plugin Configuration"
-msgstr ""
+msgstr "OpenVPN プラグイン設定"
 
 msgid "OpenVPN status files"
-msgstr ""
+msgstr "OpenVPN ステータスファイル"
 
 msgid "Options"
 msgstr "オプション"
 
 msgid "Outgoing interface"
-msgstr ""
+msgstr "送信インターフェース"
 
 msgid "Output plugins"
 msgstr "出力プラグイン"
@@ -347,28 +385,28 @@ msgid "Port"
 msgstr "ポート"
 
 msgid "Processes"
-msgstr ""
+msgstr "プロセス"
 
 msgid "Processes Plugin Configuration"
-msgstr ""
+msgstr "プロセス プラグイン設定"
 
 msgid "Processes to monitor separated by space"
-msgstr ""
+msgstr "スペースで区切られた、モニターするプロセスです。"
 
 msgid "Processor"
-msgstr ""
+msgstr "プロセッサー"
 
 msgid "Qdisc monitoring"
-msgstr ""
+msgstr "Qdisc モニタリング"
 
 msgid "RRD XFiles Factor"
 msgstr ""
 
 msgid "RRD heart beat interval"
-msgstr ""
+msgstr "RRD ハートビート間隔"
 
 msgid "RRD step interval"
-msgstr ""
+msgstr "RRD stepインターバル"
 
 msgid "RRDTool"
 msgstr "RRDTool"
@@ -386,46 +424,46 @@ msgid "Seconds"
 msgstr "秒"
 
 msgid "Sensor list"
-msgstr ""
+msgstr "センサー一覧"
 
 msgid "Sensors"
-msgstr ""
+msgstr "センサー"
 
 msgid "Sensors Plugin Configuration"
-msgstr ""
+msgstr "センサー プラグイン設定"
 
 msgid "Server host"
-msgstr ""
+msgstr "サーバー ホスト"
 
 msgid "Server port"
-msgstr ""
+msgstr "サーバー ポート"
 
 msgid "Setup"
-msgstr ""
+msgstr "設定"
 
 msgid "Shaping class monitoring"
 msgstr ""
 
 msgid "Show max values instead of averages"
-msgstr ""
+msgstr "平均値の代わりに最大値を表示する"
 
 msgid "Socket file"
-msgstr ""
+msgstr "ソケット ファイル"
 
 msgid "Socket group"
-msgstr ""
+msgstr "ソケット グループ"
 
 msgid "Socket permissions"
-msgstr ""
+msgstr "ソケット パーミッション"
 
 msgid "Source ip range"
-msgstr ""
+msgstr "ソースIPの範囲"
 
 msgid "Specifies what information to collect about links."
-msgstr ""
+msgstr "リンクについて、どのような情報を収集するか設定します。"
 
 msgid "Specifies what information to collect about routes."
-msgstr ""
+msgstr "ルートについて、どのような情報を収集するか設定します。"
 
 msgid "Specifies what information to collect about the global topology."
 msgstr ""
@@ -437,40 +475,40 @@ msgid "Splash Leases Plugin Configuration"
 msgstr ""
 
 msgid "Statistics"
-msgstr ""
+msgstr "統計"
 
 msgid "Storage directory"
 msgstr "保存先ディレクトリ"
 
 msgid "Storage directory for the csv files"
-msgstr ""
+msgstr "CSVファイルの保存先ディレクトリ"
 
 msgid "Store data values as rates instead of absolute values"
-msgstr ""
+msgstr "データ値を絶対値の代わりにレートとして保存します。"
 
 msgid "Stored timespans"
-msgstr ""
+msgstr "保存する期間の範囲"
 
 msgid "System Load"
-msgstr ""
+msgstr "システム負荷"
 
 msgid "TCP Connections"
-msgstr ""
+msgstr "TCP 接続"
 
 msgid "TCPConns Plugin Configuration"
-msgstr ""
+msgstr "TCP接続プラグイン設定"
 
 msgid "TTL for network packets"
-msgstr ""
+msgstr "ネットワークパケットのTTL"
 
 msgid "TTL for ping packets"
-msgstr ""
+msgstr "pingパケットのTTL"
 
 msgid "Table"
-msgstr ""
+msgstr "テーブル"
 
 msgid "The NUT plugin reads information about Uninterruptible Power Supplies."
-msgstr ""
+msgstr "NUT プラグインは、無停電電源装置についての情報を読み取ります。"
 
 msgid ""
 "The OLSRd plugin reads information about meshed networks from the txtinfo "
@@ -481,34 +519,43 @@ msgid ""
 "The OpenVPN plugin gathers information about the current vpn connection "
 "status."
 msgstr ""
+"OpenVPN プラグインは、現在のVPN接続ステータスについての情報を収集します。"
 
 msgid ""
 "The conntrack plugin collects statistics about the number of tracked "
 "connections."
-msgstr ""
+msgstr "Conntrack プラグインは、追跡された接続の数についての統計を収集します。"
 
 msgid "The cpu plugin collects basic statistics about the processor usage."
-msgstr ""
+msgstr "CPU プラグインは、プロセッサー使用についての基本的な統計を収集します。"
 
 msgid ""
 "The csv plugin stores collected data in csv file format for further "
 "processing by external programs."
 msgstr ""
+"CSV プラグインは、外部プログラムがさらに利用するために、収集されたデータをCSV"
+"ファイル形式で保存します。"
 
 msgid ""
 "The df plugin collects statistics about the disk space usage on different "
 "devices, mount points or filesystem types."
 msgstr ""
+"df プラグインは、個別のデバイスまたはマウントポイント、ファイルシステム形式の"
+"ディスク使用量についての統計を収集します。"
 
 msgid ""
 "The disk plugin collects detailled usage statistics for selected partitions "
 "or whole disks."
 msgstr ""
+"ディスク プラグインは、選択されたパーティションまたはディスク全体の詳細な使用"
+"統計を収集します。"
 
 msgid ""
 "The dns plugin collects detailled statistics about dns related traffic on "
 "selected interfaces."
 msgstr ""
+"DNS プラグインは、選択されたインターフェースでのDNSに関連したトラフィックにつ"
+"いての詳細な統計を収集します。"
 
 msgid ""
 "The email plugin creates a unix socket which can be used to transmit email-"
@@ -516,14 +563,21 @@ msgid ""
 "to be used in conjunction with Mail::SpamAssasin::Plugin::Collectd but can "
 "be used in other ways as well."
 msgstr ""
+"Eメール プラグインは、実行中のcollectd デーモンへの電子メール統計の送信に利用"
+"可能なUNIX ソケットを作成するプラグインです。このプラグインは、メール、"
+"SpamAssasin、プラグイン、Collectdを一緒に使うことを主に意図していますが、ほか"
+"の方法にも同様に使用することができます。"
 
 msgid "The entropy plugin collects statistics about the available entropy."
 msgstr ""
+"エントロピー プラグインは、利用可能なエントロピーについての統計を収集します。"
 
 msgid ""
 "The exec plugin starts external commands to read values from or to notify "
 "external processes when certain threshold values have been reached."
 msgstr ""
+"Exec プラグインは、特定の閾値に到達したときに外部プロセスから値の読み込み、も"
+"しくは外部プロセスへ通知する外部コマンドを開始します。"
 
 msgid ""
 "The interface plugin collects traffic statistics on selected interfaces."
@@ -535,11 +589,15 @@ msgid ""
 "The iptables plugin will monitor selected firewall rules and collect "
 "informations about processed bytes and packets per rule."
 msgstr ""
+"iptables プラグインは、選択されたファイアウォール規をモニターし、規則ごとの処"
+"理されたバイト数とパケット数についての情報を収集します。"
 
 msgid ""
 "The irq plugin will monitor the rate of issues per second for each selected "
 "interrupt. If no interrupt is selected then all interrupts are monitored."
 msgstr ""
+"IRQ プラグインは、選択された割り込みごとに1秒当たりの発行レートをモニターしま"
+"す。選択された割り込みが無い場合、すべての割り込みがモニターされます。"
 
 msgid ""
 "The iwinfo plugin collects statistics about wireless signal strength, noise "
@@ -551,12 +609,14 @@ msgid "The load plugin collects statistics about the general system load."
 msgstr "負荷プラグインは、システム負荷の統計情報を収集します。"
 
 msgid "The memory plugin collects statistics about the memory usage."
-msgstr ""
+msgstr "メモリー プラグインは、メモリー使用についての統計を収集します。"
 
 msgid ""
 "The netlink plugin collects extended informations like qdisc-, class- and "
 "filter-statistics for selected interfaces."
 msgstr ""
+"Netlink プラグインは、選択されたインターフェースの qdisc- や class- 、filter-"
+"statistics のような拡張的な情報を収集します。"
 
 msgid ""
 "The network plugin provides network based communication between different "
@@ -564,16 +624,25 @@ msgid ""
 "client mode locally collected data is transferred to a collectd server "
 "instance, in server mode the local instance receives data from other hosts."
 msgstr ""
+"ネットワークプラグインは、異なるcollectd間のネットワークベースの通信を提供し"
+"ます。collectdは、クライアントモードとサーバーモードの両方で動作することがで"
+"きます。クライアントモードでは、ローカルの収集データはcollectdサーバーに転送"
+"され、サーバーモードではローカルのインスタンスは他のホストからデータを受信し"
+"ます。"
 
 msgid ""
 "The ping plugin will send icmp echo replies to selected hosts and measure "
 "the roundtrip time for each host."
 msgstr ""
+"ping プラグインは、ICMP Echo Replyを選択されたホストに送信し、各ホストとの往"
+"復時間を計測します。"
 
 msgid ""
 "The processes plugin collects informations like cpu time, page faults and "
 "memory usage of selected processes."
 msgstr ""
+"プロセス プラグインは、選択されたプロセスのCPU時間やページフォルト、メモリー"
+"使用率などの情報を収集します。"
 
 msgid ""
 "The rrdtool plugin stores the collected data in rrd database files, the "
@@ -581,11 +650,17 @@ msgid ""
 "values will result in a very high memory consumption in the temporary "
 "directory. This can render the device unusable!</strong>"
 msgstr ""
+"rrdtool プラグインは、収集したデータをrrd データベースファイルに保存します。"
+"これが統計図の基礎です。<br /><br /><strong>警告: 間違った値を設定すると、一"
+"時的なディレクトリによってメモリー消費量が非常に高くなります。これはデバイス"
+"を使用不能にする可能性があります!</strong>"
 
 msgid ""
 "The sensors plugin uses the Linux Sensors framework to gather environmental "
 "statistics."
 msgstr ""
+"センサー プラグインは、環境統計の収集に Linux センサーフレームワークを使用し"
+"ます。"
 
 msgid ""
 "The splash leases plugin uses libuci to collect statistics about splash "
@@ -597,52 +672,82 @@ msgid ""
 "to gather data and <a href=\"http://oss.oetiker.ch/rrdtool/\">RRDtool</a> to "
 "render diagram images."
 msgstr ""
+"statistics パッケージは、データの収集に<a href=\"https://collectd.org/"
+"\">Collectd</a>を、統計図のレンダリングに<a href=\"http://oss.oetiker.ch/"
+"rrdtool/\">RRDtool</a>を使用します。"
 
 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 "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr "サーマル プラグインは、システムの温度をモニターします。"
 
 msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
+"unixsock プラグインは、実行中のcollectd インスタンスから収集データの読み取り"
+"に使用可能なUNIX ソケットを作成します。"
 
 msgid "The uptime plugin collects statistics about the uptime of the system."
+msgstr "稼働時間 プラグインは、システムの稼働時間についての統計を収集します。"
+
+msgid "Thermal"
+msgstr "サーマル"
+
+msgid "Thermal Plugin Configuration"
+msgstr "サーマル プラグイン設定"
+
+msgid "This plugin collects statistics about the processor context switches."
 msgstr ""
 
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+"このプラグインは、プロセッサー周波数スケーリングについての統計を収集します。"
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
 msgstr ""
+"このセクションでは、collectdが着信接続を待ち受けるインターフェースを設定しま"
+"す。"
 
 msgid ""
 "This section defines to which servers the locally collected data is sent to."
 msgstr ""
+"このセクションでは、ローカルに収集されたデータを送信するサーバーを設定しま"
+"す。"
 
 msgid "Try to lookup fully qualified hostname"
 msgstr ""
 
 msgid "UPS"
-msgstr ""
+msgstr "UPS"
 
 msgid "UPS Plugin Configuration"
-msgstr ""
+msgstr "UPS プラグイン設定"
 
 msgid "UPS name in NUT ups@host format"
-msgstr ""
+msgstr "ups@host 形式のNUT内のUPS名"
 
 msgid "UnixSock"
-msgstr ""
+msgstr "UnixSock"
 
 msgid "Unixsock Plugin Configuration"
-msgstr ""
+msgstr "Unixsock プラグイン設定"
 
 msgid "Uptime"
-msgstr ""
+msgstr "稼働時間"
 
 msgid "Uptime Plugin Configuration"
-msgstr ""
+msgstr "稼働時間プラグイン設定"
 
 msgid "Use improved naming schema"
 msgstr ""
@@ -651,13 +756,13 @@ msgid "Used PID file"
 msgstr "使用するPIDファイルの保存場所"
 
 msgid "User"
-msgstr ""
+msgstr "ユーザー"
 
 msgid "Verbose monitoring"
-msgstr ""
+msgstr "詳細モニタリング"
 
 msgid "Wireless"
-msgstr ""
+msgstr "無線"
 
 msgid "Wireless iwinfo Plugin Configuration"
 msgstr "無線LAN iwinfo プラグイン設定"
@@ -665,18 +770,20 @@ msgstr "無線LAN iwinfo プラグイン設定"
 msgid ""
 "You can install additional collectd-mod-* plugins to enable more statistics."
 msgstr ""
+"追加の collectd-mod-* プラグインをインストールすることで、より多くの統計を有"
+"効にできます。"
 
 msgid "e.g. br-ff"
-msgstr ""
+msgstr "例: br-ff"
 
 msgid "e.g. br-lan"
-msgstr ""
+msgstr "例: br-lan"
 
 msgid "e.g. reject-with tcp-reset"
-msgstr ""
+msgstr "例: reject-with tcp-reset"
 
 msgid "max. 16 chars"
-msgstr ""
+msgstr "最大16文字"
 
 msgid "reduces rrd size"
 msgstr "rrdファイルのサイズを小さくします。"
@@ -685,7 +792,7 @@ msgid "seconds; multiple separated by space"
 msgstr ""
 
 msgid "server interfaces"
-msgstr ""
+msgstr "サーバー インターフェース"
 
 #~ msgid "Collectd"
 #~ msgstr "Collectd"
index 3f32b63..582314c 100644 (file)
@@ -34,6 +34,15 @@ msgstr ""
 msgid "Basic monitoring"
 msgstr ""
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr ""
 
@@ -76,6 +85,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr ""
 
@@ -121,6 +133,9 @@ msgstr ""
 msgid "Email"
 msgstr ""
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr ""
 
@@ -253,6 +268,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr ""
 
@@ -304,6 +322,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 ""
 
@@ -598,6 +621,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -605,6 +634,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 945fa79..d37bc48 100644 (file)
@@ -28,6 +28,15 @@ msgstr "Hoved Katalog"
 msgid "Basic monitoring"
 msgstr "Enkel overvåking"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "CPU plugin konfigurasjon"
 
@@ -73,6 +82,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "DF plugin konfigurasjon"
 
@@ -118,6 +130,9 @@ msgstr "E-Post plugin konfigurasjon"
 msgid "Email"
 msgstr "Epost"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Aktiver denne plugin"
 
@@ -255,6 +270,9 @@ msgstr "Overvåk alle lokale lyttende porter"
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Overvåk enheter"
 
@@ -306,6 +324,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"
 
@@ -634,6 +657,12 @@ msgstr ""
 "porter."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -643,6 +672,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index f8176b6..bf2ec93 100644 (file)
@@ -38,6 +38,15 @@ msgstr "Główny katalog"
 msgid "Basic monitoring"
 msgstr "Podstawowy monitoring"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "Konfiguracja CPU"
 
@@ -83,6 +92,9 @@ msgstr "Conntrack"
 msgid "Conntrack Plugin Configuration"
 msgstr "Konfiguracja wtyczki Conntrack"
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "Konfiguracja wtyczki DF"
 
@@ -128,6 +140,9 @@ msgstr "Konfiguracja wtyczki E-mail"
 msgid "Email"
 msgstr "E-mail"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Włącz tę wtyczkę"
 
@@ -269,6 +284,9 @@ msgstr "Monitoruj wszystkie lokalne otwarte porty"
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Monitoruj urządzenia"
 
@@ -320,6 +338,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"
 
@@ -654,6 +677,12 @@ msgstr ""
 "wybranych portów."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -663,6 +692,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 92213a8..74c4a26 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"
@@ -37,6 +37,15 @@ msgstr "Diretório Base"
 msgid "Basic monitoring"
 msgstr "Monitoramento básico"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr "Frequência da CPU"
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr "Configuração do Plugin da Frequência da CPU"
+
 msgid "CPU Plugin Configuration"
 msgstr "Configuração do plugin CPU"
 
@@ -82,6 +91,9 @@ msgstr "Conntrack"
 msgid "Conntrack Plugin Configuration"
 msgstr "Configuração do Plugin do Conntrack"
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "Configuração do plugin DF"
 
@@ -127,14 +139,17 @@ msgstr "Configuração do plugin E-Mail"
 msgid "Email"
 msgstr "Email"
 
+msgid "Empty value = monitor all"
+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"
@@ -156,13 +171,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"
@@ -195,6 +210,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"
@@ -250,6 +266,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"
@@ -267,7 +285,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 "Dispositivo(s) de monitoramento / zona(s) térmica(s)"
 
 msgid "Monitor devices"
 msgstr "Monitorar dispositivos"
@@ -320,6 +341,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"
 
@@ -333,13 +362,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"
@@ -399,13 +428,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"
@@ -414,13 +443,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"
@@ -444,10 +473,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"
@@ -496,6 +525,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 "
@@ -548,7 +578,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 "
@@ -639,17 +669,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 "
@@ -659,6 +696,15 @@ msgstr ""
 "portas selecionadas."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"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 "
 "collected data from a running collectd instance."
 msgstr ""
@@ -667,6 +713,22 @@ 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 "Térmico"
+
+msgid "Thermal Plugin Configuration"
+msgstr "Configuração do Plugin Térmico"
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+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 "
@@ -700,13 +762,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"
@@ -726,6 +788,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 e215df8..79c7bd0 100644 (file)
@@ -37,6 +37,15 @@ msgstr "Diretório Base"
 msgid "Basic monitoring"
 msgstr "Monitoramento básico"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "Configuração do plugin CPU"
 
@@ -82,6 +91,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "Configuração do plugin DF"
 
@@ -127,6 +139,9 @@ msgstr "Configuração do plugin E-Mail"
 msgid "Email"
 msgstr "Email"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Habilitar este plugin"
 
@@ -268,6 +283,9 @@ msgstr "Monitorar todas as portas locais"
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Monitorar dispositivos"
 
@@ -319,6 +337,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"
 
@@ -652,6 +675,12 @@ msgstr ""
 "portas selecionadas."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -661,6 +690,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index a8042b4..c5dfcfe 100644 (file)
@@ -38,6 +38,15 @@ msgstr "Directorul de baza"
 msgid "Basic monitoring"
 msgstr ""
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "Configurarea pluginului CPU"
 
@@ -83,6 +92,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr ""
 
@@ -128,6 +140,9 @@ msgstr ""
 msgid "Email"
 msgstr "Email"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr ""
 
@@ -260,6 +275,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr ""
 
@@ -311,6 +329,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"
 
@@ -607,6 +630,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -614,6 +643,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 41f8110..3a418de 100644 (file)
@@ -39,6 +39,15 @@ msgstr "Базовая директория"
 msgid "Basic monitoring"
 msgstr "Базовая статистика"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "Конфигурация модуля CPU"
 
@@ -83,6 +92,9 @@ msgstr "Отслеживание подключения (Conntrack)"
 msgid "Conntrack Plugin Configuration"
 msgstr "Настройка плагина Conntrack"
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "Конфигурация модуля DF"
 
@@ -128,6 +140,9 @@ msgstr "Конфигурация модуля E-Mail"
 msgid "Email"
 msgstr "E-mail"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Включить этот модуль"
 
@@ -270,6 +285,9 @@ msgstr "Собирать статистику со всех портов, ожи
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Собирать статистику с устройств"
 
@@ -321,6 +339,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 "Количество потоков сбора данных"
 
@@ -650,6 +673,12 @@ msgstr ""
 "портах."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -659,6 +688,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index c8100e3..6dba7d0 100644 (file)
@@ -32,6 +32,15 @@ msgstr ""
 msgid "Basic monitoring"
 msgstr ""
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr ""
 
@@ -74,6 +83,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr ""
 
@@ -119,6 +131,9 @@ msgstr ""
 msgid "Email"
 msgstr ""
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr ""
 
@@ -251,6 +266,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr ""
 
@@ -302,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 ""
 
@@ -596,6 +619,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -603,6 +632,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index a7443b3..bef0f2d 100644 (file)
@@ -33,6 +33,15 @@ msgstr "Basmapp"
 msgid "Basic monitoring"
 msgstr "Standardövervakning"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr ""
 
@@ -78,6 +87,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "Konfiguration av insticksprogrammet DF"
 
@@ -123,6 +135,9 @@ msgstr "Konfiguration av insticksprogrammet E-post"
 msgid "Email"
 msgstr "E-post"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Aktivera det här insticksprogrammet"
 
@@ -256,6 +271,9 @@ msgstr "Övervaka alla lokala lyssningsportar"
 msgid "Monitor all sensors"
 msgstr "Övervaka alla sensorer"
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Övervaka enheter"
 
@@ -307,6 +325,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"
 
@@ -601,6 +624,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -608,6 +637,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index c07f4dc..c57a85b 100644 (file)
@@ -25,6 +25,15 @@ msgstr ""
 msgid "Basic monitoring"
 msgstr ""
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr ""
 
@@ -67,6 +76,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr ""
 
@@ -112,6 +124,9 @@ msgstr ""
 msgid "Email"
 msgstr ""
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr ""
 
@@ -244,6 +259,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr ""
 
@@ -295,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 ""
 
@@ -589,6 +612,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -596,6 +625,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 235ad1c..6d7056f 100644 (file)
@@ -33,6 +33,15 @@ msgstr ""
 msgid "Basic monitoring"
 msgstr ""
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr ""
 
@@ -75,6 +84,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr ""
 
@@ -120,6 +132,9 @@ msgstr ""
 msgid "Email"
 msgstr ""
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr ""
 
@@ -252,6 +267,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr ""
 
@@ -303,6 +321,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 ""
 
@@ -597,6 +620,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -604,6 +633,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 0be5b36..de17a3c 100644 (file)
@@ -38,6 +38,15 @@ msgstr ""
 msgid "Basic monitoring"
 msgstr ""
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr ""
 
@@ -80,6 +89,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr ""
 
@@ -125,6 +137,9 @@ msgstr ""
 msgid "Email"
 msgstr ""
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr ""
 
@@ -257,6 +272,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr ""
 
@@ -308,6 +326,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 ""
 
@@ -602,6 +625,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -609,6 +638,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index ef99e55..bdb7f1a 100644 (file)
@@ -38,6 +38,15 @@ msgstr "Thư mục Cơ sở"
 msgid "Basic monitoring"
 msgstr "Monitoring căn bản"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr "Cấu hình Plugin CPU"
 
@@ -83,6 +92,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "Cấu hình DF plugin"
 
@@ -128,6 +140,9 @@ msgstr "Cấu hình e-mail plugin"
 msgid "Email"
 msgstr "Email"
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr "Kích hoạt plugin này"
 
@@ -267,6 +282,9 @@ msgstr "Monitor tất cả local listen port"
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr "Monitor devices"
 
@@ -318,6 +336,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"
 
@@ -652,6 +675,12 @@ msgstr ""
 "chọn."
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -661,6 +690,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 4e6ee4b..d55398a 100644 (file)
@@ -2,16 +2,17 @@
 #  generated from ./applications/luci-statistics/luasrc/i18n/rrdtool.en.lua
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"PO-Revision-Date: 2014-07-23 02:08+0200\n"
-"Last-Translator: Tanyingyu <Tanyingyu@163.com>\n"
+"Project-Id-Version: \n"
+"PO-Revision-Date: 2017-04-15 21:41-0600\n"
+"Last-Translator: liushuyu <liushuyu011@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 2.0.1\n"
+"POT-Creation-Date: \n"
 
 #. %H: Wireless - Signal Noise Ratio
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:1
@@ -36,12 +37,12 @@ msgstr "信号强度"
 #. %H: Wireless - Signal Quality
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:5
 msgid "stat_dg_title_wireless__signal_quality"
-msgstr "无线信号质量"
+msgstr "%H: 无线 - 信号质量"
 
 #. n
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:6
 msgid "stat_dg_label_wireless__signal_quality"
-msgstr "无线信号质量"
+msgstr "n"
 
 #. Signal Quality
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:7
@@ -51,7 +52,7 @@ msgstr "信号质量"
 #. %H: ICMP Roundtrip Times
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:8
 msgid "stat_dg_title_ping"
-msgstr "ping"
+msgstr "%H: ICMP 往返时间"
 
 #. ms
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:9
@@ -61,299 +62,299 @@ msgstr "响应"
 #. %di
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:10
 msgid "stat_ds_ping"
-msgstr "ping"
+msgstr "%di"
 
 #. %H: Firewall - Processed Packets
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:11
 msgid "stat_dg_title_iptables__ipt_packets"
-msgstr "iptables包"
+msgstr "%H: 防火墙 - 已处理的数据包"
 
 #. Packets/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:12
 msgid "stat_dg_label_iptables__ipt_packets"
-msgstr ""
+msgstr "Packets/s"
 
 #. Chain \"%di\"
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:13
 msgid "stat_ds_ipt_packets"
-msgstr ""
+msgstr "Chain \\\"%di\\\""
 
 #. %H: Netlink - Transfer on %pi
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:14
 msgid "stat_dg_title_netlink__if_octets"
-msgstr ""
+msgstr "%H: Netlink - %pi 上的数据传输"
 
 #. Bytes/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:15
 msgid "stat_dg_label_netlink__if_octets"
-msgstr ""
+msgstr "字节/秒"
 
 #. Bytes (%ds)
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:16
 msgid "stat_ds_if_octets"
-msgstr ""
+msgstr "字节 (%ds)"
 
 #. %H: Netlink - Packets on %pi
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:17
 msgid "stat_dg_title_netlink__if_packets"
-msgstr ""
+msgstr "%H: Netlink - %pi 的数据包"
 
 #. Packets/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:18
 msgid "stat_dg_label_netlink__if_packets"
-msgstr ""
+msgstr "Packets/s"
 
 #. Processed (%ds)
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:19
 msgid "stat_ds_if_packets"
-msgstr ""
+msgstr "已处理 (%ds)"
 
 #. Dropped   (%ds)
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:20
 msgid "stat_ds_if_dropped"
-msgstr ""
+msgstr "丢弃 (%ds)"
 
 #. Errors    (%ds)
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:21
 msgid "stat_ds_if_errors"
-msgstr ""
+msgstr "错误 (%ds)"
 
 #. %H: Netlink - Multicast on %pi
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:22
 msgid "stat_dg_title_netlink__if_multicast"
-msgstr ""
+msgstr "%H: Netlink - %pi 上的多播"
 
 #. Packets/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:23
 msgid "stat_dg_label_netlink__if_multicast"
-msgstr ""
+msgstr "Packets/s"
 
 #. Packets
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:24
 msgid "stat_ds_if_multicast"
-msgstr ""
+msgstr "数据包"
 
 #. %H: Netlink - Collisions on %pi
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:25
 msgid "stat_dg_title_netlink__if_collisions"
-msgstr ""
+msgstr "%H: Netlink - %pi 上的 Collisions"
 
 #. Collisions/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:26
 msgid "stat_dg_label_netlink__if_collisions"
-msgstr ""
+msgstr "Collisions/s"
 
 #. Collisions
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:27
 msgid "stat_ds_if_collisions"
-msgstr ""
+msgstr "Collisions"
 
 #. %H: Netlink - Errors on %pi
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:28
 msgid "stat_dg_title_netlink__if_tx_errors"
-msgstr ""
+msgstr "%H: Netlink - %pi 上发生的错误"
 
 #. Errors/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:29
 msgid "stat_dg_label_netlink__if_tx_errors"
-msgstr ""
+msgstr "错误/秒"
 
 #. %di
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:30
 msgid "stat_ds_if_tx_errors"
-msgstr ""
+msgstr "%di"
 
 #. %di
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:31
 msgid "stat_ds_if_rx_errors"
-msgstr ""
+msgstr "%di"
 
 #. %H: Processes
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:32
 msgid "stat_dg_title_processes"
-msgstr ""
+msgstr "%H: 进程"
 
 #. Processes/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:33
 msgid "stat_dg_label_processes"
-msgstr ""
+msgstr "进程/秒"
 
 #. %di
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:34
 msgid "stat_ds_ps_state"
-msgstr ""
+msgstr "%di"
 
 #. %H: Process %pi - used cpu time
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:35
 msgid "stat_dg_title_processes__ps_cputime"
-msgstr ""
+msgstr "%H: 进程 %s - 占用的 CPU 时间"
 
 #. Jiffies
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:36
 msgid "stat_dg_label_processes__ps_cputime"
-msgstr ""
+msgstr "Jiffies"
 
 #. system
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:37
 msgid "stat_ds_ps_cputime__syst"
-msgstr ""
+msgstr "系统"
 
 #. user
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:38
 msgid "stat_ds_ps_cputime__user"
-msgstr ""
+msgstr "用户"
 
 #. %H: Process %pi - threads and processes
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:39
 msgid "stat_dg_title_processes__ps_count"
-msgstr ""
+msgstr "%H: 进程 %pi - 进程与线程"
 
 #. Count
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:40
 msgid "stat_dg_label_processes__ps_count"
-msgstr ""
+msgstr ""
 
 #. %ds
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:41
 msgid "stat_ds_ps_count"
-msgstr ""
+msgstr "%ds"
 
 #. %H: Process %pi - page faults
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:42
 msgid "stat_dg_title_processes__ps_pagefaults"
-msgstr ""
+msgstr "%H: 进程 %pi - 分页错误"
 
 #. Pagefaults
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:43
 msgid "stat_dg_label_processes__ps_pagefaults"
-msgstr ""
+msgstr "分页错误"
 
 #. page faults
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:44
 msgid "stat_ds_ps_pagefaults"
-msgstr ""
+msgstr "分页错误"
 
 #. %H: Process %pi - virtual memory size
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:45
 msgid "stat_dg_title_processes__ps_rss"
-msgstr ""
+msgstr "%H: 进程 %pi - 虚拟内存大小"
 
 #. Bytes
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:46
 msgid "stat_dg_label_processes__ps_rss"
-msgstr ""
+msgstr "字节"
 
 #. virtual memory
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:47
 msgid "stat_ds_ps_rss"
-msgstr ""
+msgstr "虚拟内存"
 
 #. %H: Usage on Processor #%pi
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:48
 msgid "stat_dg_title_cpu"
-msgstr ""
+msgstr "%H: 对处理器 #%pi 的占用"
 
 #. %
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:49
 msgid "stat_dg_label_cpu"
-msgstr ""
+msgstr "%"
 
 #. %di
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:50
 msgid "stat_ds_cpu"
-msgstr ""
+msgstr "%di"
 
 #. %H: Transfer on %di
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:51
 msgid "stat_dg_title_interface__if_octets"
-msgstr ""
+msgstr "%H: %di 上的数据传输情况"
 
 #. Bytes/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:52
 msgid "stat_dg_label_interface__if_octets"
-msgstr ""
+msgstr "字节/秒"
 
 #. %H: Packets on %di
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:53
 msgid "stat_dg_title_interface__if_packets"
-msgstr ""
+msgstr "%H: %di 上的数据包"
 
 #. Packets/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:54
 msgid "stat_dg_label_interface__if_packets"
-msgstr ""
+msgstr "Packets/s"
 
 #. %H: TCP-Connections to Port %pi
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:55
 msgid "stat_dg_title_tcpconns"
-msgstr ""
+msgstr "%H: 到端口 %pi 的 TCP 连接"
 
 #. Connections/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:56
 msgid "stat_dg_label_tcpconns"
-msgstr ""
+msgstr "连接/秒"
 
 #. %di
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:57
 msgid "stat_ds_tcp_connections"
-msgstr ""
+msgstr "%di"
 
 #. %H: Disk Space Usage on %di
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:58
 msgid "stat_dg_title_df"
-msgstr ""
+msgstr "%H: %di 上的磁盘占用情况"
 
 #. Bytes
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:59
 msgid "stat_dg_label_df"
-msgstr ""
+msgstr "字节"
 
 #. %ds
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:60
 msgid "stat_ds_df__free"
-msgstr ""
+msgstr "%ds"
 
 #. %ds
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:61
 msgid "stat_ds_df__used"
-msgstr ""
+msgstr "%ds"
 
 #. %H: Interrupts
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:62
 msgid "stat_dg_title_irq"
-msgstr ""
+msgstr "%H: 中断"
 
 #. Issues/s
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:63
 msgid "stat_dg_label_irq"
-msgstr ""
+msgstr "Issues/s"
 
 #. IRQ %di
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:64
 msgid "stat_ds_irq"
-msgstr ""
+msgstr "IRQ %di"
 
 #. %H: System Load
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:65
 msgid "stat_dg_title_load"
-msgstr ""
+msgstr "%H: 系统负载"
 
 #. Load
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:66
 msgid "stat_dg_label_load"
-msgstr ""
+msgstr "负载"
 
 #. 1 min
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:67
 msgid "stat_ds_load__shortterm"
-msgstr ""
+msgstr "1 分钟"
 
 #. 5 min
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:68
 msgid "stat_ds_load__midterm"
-msgstr ""
+msgstr "5 分钟"
 
 #. 15 min
 #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:69
 msgid "stat_ds_load__longterm"
-msgstr ""
+msgstr "15 分钟"
index 7b3bbfc..46cf59f 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: 2014-06-13 15:04+0200\n"
-"Last-Translator: phantasm131 <phantasm131@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2017-04-15 21:46-0600\n"
+"Last-Translator: liushuyu <liushuyu011@gmail.com>\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 2.0.1\n"
+"Language-Team: \n"
 
 msgid "Action (target)"
 msgstr "动作(目标)"
@@ -37,6 +37,15 @@ msgstr "基本目录"
 msgid "Basic monitoring"
 msgstr "基本监控"
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr "CPU 频率"
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr "CPU 频率插件配置"
+
 msgid "CPU Plugin Configuration"
 msgstr "CPU插件配置"
 
@@ -81,6 +90,9 @@ msgstr "Conntrack"
 msgid "Conntrack Plugin Configuration"
 msgstr "Conntrack插件设置"
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr "DF插件设置"
 
@@ -126,14 +138,17 @@ msgstr "E-Mail插件配置"
 msgid "Email"
 msgstr "电子邮件"
 
+msgid "Empty value = monitor all"
+msgstr "留空 = 监控所有"
+
 msgid "Enable this plugin"
 msgstr "启用该插件"
 
 msgid "Entropy"
-msgstr ""
+msgstr ""
 
 msgid "Entropy Plugin Configuration"
-msgstr ""
+msgstr "熵值插件配置"
 
 msgid "Exec"
 msgstr "Exec"
@@ -157,7 +172,7 @@ msgid "Gather compression statistics"
 msgstr ""
 
 msgid "General plugins"
-msgstr ""
+msgstr "通用插件"
 
 msgid "Generate a separate graph for each logged user"
 msgstr ""
@@ -189,7 +204,7 @@ msgid ""
 msgstr "在这里,你可以定义各种监控iptables规则临界值。"
 
 msgid "Hold Ctrl to select multiple items or to deselect entries."
-msgstr ""
+msgstr "按住 Ctrl 键来选择或取消选择多个项目。"
 
 msgid "Host"
 msgstr "主机"
@@ -260,7 +275,10 @@ msgid "Monitor all local listen ports"
 msgstr "监测所有本地监听端口"
 
 msgid "Monitor all sensors"
-msgstr ""
+msgstr "监控所有传感器"
+
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr "监控设备/温感区域"
 
 msgid "Monitor devices"
 msgstr "监测设备"
@@ -313,6 +331,13 @@ 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 ""
+"注意:由于页面是以 'nobody' 身份生成的,因此 *.rrd 文件以及包含此文件的所有父"
+"目录必须全局可读。"
+
 msgid "Number of threads for data collection"
 msgstr "收集程序使用线程数"
 
@@ -326,13 +351,13 @@ msgid "Only create average RRAs"
 msgstr "仅创建平均RRAs"
 
 msgid "OpenVPN"
-msgstr ""
+msgstr "OpenVPN"
 
 msgid "OpenVPN Plugin Configuration"
-msgstr ""
+msgstr "OpenVPN 插件配置"
 
 msgid "OpenVPN status files"
-msgstr ""
+msgstr "OpenVPN 状态文件"
 
 msgid "Options"
 msgstr "选项"
@@ -392,13 +417,13 @@ msgid "Seconds"
 msgstr "秒"
 
 msgid "Sensor list"
-msgstr ""
+msgstr "传感器列表"
 
 msgid "Sensors"
-msgstr ""
+msgstr "传感器"
 
 msgid "Sensors Plugin Configuration"
-msgstr ""
+msgstr "传感器插件配置"
 
 msgid "Server host"
 msgstr "服务器主机"
@@ -407,7 +432,7 @@ msgid "Server port"
 msgstr "服务器端口"
 
 msgid "Setup"
-msgstr ""
+msgstr "设置"
 
 msgid "Shaping class monitoring"
 msgstr "整形类监控"
@@ -486,7 +511,7 @@ msgstr "OLSRd插件通过txtinfo获取meshed网络信息。"
 msgid ""
 "The OpenVPN plugin gathers information about the current vpn connection "
 "status."
-msgstr ""
+msgstr "OpenVPN 插件可以获取 VPN 连接当前状态"
 
 msgid ""
 "The conntrack plugin collects statistics about the number of tracked "
@@ -612,6 +637,9 @@ msgid ""
 "to gather data and <a href=\"http://oss.oetiker.ch/rrdtool/\">RRDtool</a> to "
 "render diagram images."
 msgstr ""
+"Statistics 软件包使用 <a href=\"https://collectd.org/\">Collectd</a> 来收集数"
+"据,并用 <a href=\"http://oss.oetiker.ch/rrdtool/\">RRDtool</a> 生成统计图"
+"表。"
 
 msgid ""
 "The tcpconns plugin collects informations about open tcp connections on "
@@ -619,6 +647,14 @@ msgid ""
 msgstr "tcpconns插件,收集选定端口TCP连接信息。"
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+"温感插件将会监控系统温度。数据主要取自 /sys/class/thermal/*/temp ('*' 表示温"
+"感设备的名字,比如 thermal_zone1) 。"
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr "unixsock插件,创建一个unix套接字可用于读取Collectd实例的收集信息。"
@@ -626,6 +662,18 @@ msgstr "unixsock插件,创建一个unix套接字可用于读取Collectd实例
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr "温感"
+
+msgid "Thermal Plugin Configuration"
+msgstr "温感插件配置"
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr "此插件会获取 CPU 频率调整的数据。"
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
@@ -654,13 +702,13 @@ msgid "Unixsock Plugin Configuration"
 msgstr "Unixsock插件配置"
 
 msgid "Uptime"
-msgstr ""
+msgstr "运行时间"
 
 msgid "Uptime Plugin Configuration"
-msgstr ""
+msgstr "运行时间插件配置"
 
 msgid "Use improved naming schema"
-msgstr ""
+msgstr "使用更高级的命名规则"
 
 msgid "Used PID file"
 msgstr "正在使用的PID文件"
@@ -679,7 +727,7 @@ msgstr "无线iwinfo插件配置"
 
 msgid ""
 "You can install additional collectd-mod-* plugins to enable more statistics."
-msgstr ""
+msgstr "您可以安装更多的 collectd-mod-* 插件以获得更多的统计数据。"
 
 msgid "e.g. br-ff"
 msgstr "例如:br-ff"
index 9a9ca34..cbd6d9d 100644 (file)
@@ -31,6 +31,15 @@ msgstr ""
 msgid "Basic monitoring"
 msgstr ""
 
+msgid "CPU Context Switches Plugin Configuration"
+msgstr ""
+
+msgid "CPU Frequency"
+msgstr ""
+
+msgid "CPU Frequency Plugin Configuration"
+msgstr ""
+
 msgid "CPU Plugin Configuration"
 msgstr ""
 
@@ -73,6 +82,9 @@ msgstr ""
 msgid "Conntrack Plugin Configuration"
 msgstr ""
 
+msgid "Context Switches"
+msgstr ""
+
 msgid "DF Plugin Configuration"
 msgstr ""
 
@@ -118,6 +130,9 @@ msgstr ""
 msgid "Email"
 msgstr ""
 
+msgid "Empty value = monitor all"
+msgstr ""
+
 msgid "Enable this plugin"
 msgstr ""
 
@@ -250,6 +265,9 @@ msgstr ""
 msgid "Monitor all sensors"
 msgstr ""
 
+msgid "Monitor device(s) / thermal zone(s)"
+msgstr ""
+
 msgid "Monitor devices"
 msgstr ""
 
@@ -301,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 ""
 
@@ -595,6 +618,12 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The thermal plugin will monitor temperature of the system. Data is typically "
+"read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be "
+"read, e.g. thermal_zone1 )"
+msgstr ""
+
+msgid ""
 "The unixsock plugin creates a unix socket which can be used to read "
 "collected data from a running collectd instance."
 msgstr ""
@@ -602,6 +631,18 @@ msgstr ""
 msgid "The uptime plugin collects statistics about the uptime of the system."
 msgstr ""
 
+msgid "Thermal"
+msgstr ""
+
+msgid "Thermal Plugin Configuration"
+msgstr ""
+
+msgid "This plugin collects statistics about the processor context switches."
+msgstr ""
+
+msgid "This plugin collects statistics about the processor frequency scaling."
+msgstr ""
+
 msgid ""
 "This section defines on which interfaces collectd will wait for incoming "
 "connections."
index 774a838..c081a8e 100644 (file)
@@ -52,6 +52,9 @@ config statistics 'collectd_unixsock'
 config statistics 'collectd_conntrack'
        option enable '0'
 
+config statistics 'collectd_contextswitch'
+       option enable '0'
+
 config statistics 'collectd_cpu'
        option enable '1'
 
index df9af15..090344c 100755 (executable)
@@ -279,6 +279,12 @@ plugins = {
                { }
        },
 
+        contextswitch = {
+                { },
+                { },
+                { }
+        },
+
        csv     = {
                { "DataDir" },
                { "StoreRates" },
@@ -349,12 +355,6 @@ plugins = {
                { }
        },
 
-       madwifi = {
-               { "WatchSet" },
-               { },
-               { "Interfaces", "WatchAdds" }
-       },
-
        memory = { 
                { },
                { },
index f4b1b0a..6170f9d 100644 (file)
@@ -1,11 +1,11 @@
-#
-# This is free software, licensed under the Apache License, Version 2.0 .
+# Copyright 2017 Dirk Brenken (dev@brenken.org)
+# This is free software, licensed under the Apache License, Version 2.0
 #
 
 include $(TOPDIR)/rules.mk
 
 LUCI_TITLE:=LuCI support for Travelmate
-LUCI_DEPENDS:=+travelmate
+LUCI_DEPENDS:=+travelmate +luci-lib-jsonc
 LUCI_PKGARCH:=all
 
 include ../../luci.mk
index 27c19c4..86382f6 100644 (file)
@@ -1,11 +1,28 @@
--- Licensed to the public under the Apache License 2.0.
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
 
 module("luci.controller.travelmate", package.seeall)
 
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local template = require("luci.template")
+local i18n = require("luci.i18n")
+
 function index()
        if not nixio.fs.access("/etc/config/travelmate") then
                return
        end
+       entry({"admin", "services", "travelmate"}, firstchild(), _("Travelmate"), 40).dependent = false
+       entry({"admin", "services", "travelmate", "tab_from_cbi"}, cbi("travelmate/overview_tab", {hideresetbtn=true, hidesavebtn=true}), _("Overview"), 10).leaf = true
+       entry({"admin", "services", "travelmate", "logfile"}, call("logread"), _("View Logfile"), 20).leaf = true
+       entry({"admin", "services", "travelmate", "advanced"}, firstchild(), _("Advanced"), 100)
+       entry({"admin", "services", "travelmate", "advanced", "configuration"}, cbi("travelmate/configuration_tab"), _("Edit Travelmate Configuration"), 110).leaf = true
+       entry({"admin", "services", "travelmate", "advanced", "cfg_wireless"}, cbi("travelmate/cfg_wireless_tab"), _("Edit Wireless Configuration"), 120).leaf = true
+       entry({"admin", "services", "travelmate", "advanced", "cfg_network"}, cbi("travelmate/cfg_network_tab"), _("Edit Network Configuration"), 130).leaf = true
+       entry({"admin", "services", "travelmate", "advanced", "cfg_firewall"}, cbi("travelmate/cfg_firewall_tab"), _("Edit Firewall Configuration"), 140).leaf = true
+end
 
-       entry({"admin", "services", "travelmate"}, cbi("travelmate"), _("Travelmate"), 60)
+function logread()
+       local logfile = util.trim(util.exec("logread -e 'travelmate'"))
+       template.render("travelmate/logread", {title = i18n.translate("Travelmate Logfile"), content = logfile})
 end
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate.lua
deleted file mode 100644 (file)
index 9050ae9..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
--- Licensed to the public under the Apache License 2.0.
-
-m = Map("travelmate", translate("Travelmate"),
-       translate("Configuration of the Travelmate package to enable travel router functionality. ") .. [[</p>]] ..
-       translate("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. ") ..
-       [[<a href="https://github.com/openwrt/packages/tree/master/net/travelmate/files/README.md" target="_blank">]] 
-       .. translate("Link to detailed advice")
-       .. [[</a>]] )
-
--- General options
-
-s = m:section(NamedSection, "global", "travelmate", translate("Global options"))
-
-o = s:option(Flag, "trm_enabled", translate("Enable Travelmate"))
-o.rmempty = false
-o.default = 0
-
-o = s:option(Value, "trm_loop", translate("Loop timeout in seconds for wlan monitoring"),
-       translate("Default 30, range 5-60"))
-o.rmempty = false
-o.default = 30
-o.datatype = "range(5,60)"
-
-o = s:option(Value, "trm_maxretry", translate("Max. number of connection retries to an uplink"),
-       translate("Default 3, range 0-10. Set to 0 to allow unlimited retries"))
-o.rmempty = false
-o.default = 3
-o.datatype = "range(0,10)"
-
--- Extra options
-
-e = m:section(NamedSection, "global", "travelmate", translate("Extra options"))
-
-a = e:option(Flag, "trm_debug", translate("Debug logging"))
-a.rmempty = true
-a.default = a.disabled
-
-a = e:option(Value, "trm_device", translate("Use only one radio, e.g. 'radio0'"),
-       translate("Default: empty = use all radios."))
-a.rmempty = true
-a.default = ""
-a.datatype = "uciname"
-
-a = e:option(Flag, "trm_iw", translate("Use iw for scanning"),
-       translate("Disable this if you want to use iwinfo instead of iw"))
-a.rmempty = true
-a.default = a.enabled
-
-return m
-
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua
new file mode 100644 (file)
index 0000000..009ed80
--- /dev/null
@@ -0,0 +1,36 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local trminput = "/etc/config/firewall"
+
+if not nixio.fs.access(trminput) then
+       m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+       return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("travelmate/config_css"))
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+       translate("This form allows you to modify the content of the main firewall configuration file (/etc/config/firewall)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+       return nixio.fs.readfile(trminput) or ""
+end
+
+function f.write(self, section, data)
+       return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+       return true
+end
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua
new file mode 100644 (file)
index 0000000..4d43637
--- /dev/null
@@ -0,0 +1,36 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local trminput = "/etc/config/network"
+
+if not nixio.fs.access(trminput) then
+       m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+       return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("travelmate/config_css"))
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+       translate("This form allows you to modify the content of the main network configuration file (/etc/config/network)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+       return nixio.fs.readfile(trminput) or ""
+end
+
+function f.write(self, section, data)
+       return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+       return true
+end
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua
new file mode 100644 (file)
index 0000000..a025c13
--- /dev/null
@@ -0,0 +1,36 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local trminput = "/etc/config/wireless"
+
+if not nixio.fs.access(trminput) then
+       m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+       return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("travelmate/config_css"))
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+       translate("This form allows you to modify the content of the main wireless configuration file (/etc/config/wireless)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+       return nixio.fs.readfile(trminput) or ""
+end
+
+function f.write(self, section, data)
+       return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+       return true
+end
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua
new file mode 100644 (file)
index 0000000..4233da6
--- /dev/null
@@ -0,0 +1,38 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local util = require("luci.util")
+local trminput = "/etc/config/travelmate"
+
+if not nixio.fs.access(trminput) then
+       m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
+       m.reset = false
+       m.submit = false
+       return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("travelmate/config_css"))
+m.reset = false
+
+s = m:section(SimpleSection, nil,
+       translate("This form allows you to modify the content of the main travelmate configuration file (/etc/config/travelmate)."))
+
+f = s:option(TextValue, "data")
+f.rows = 20
+f.rmempty = true
+
+function f.cfgvalue()
+       return nixio.fs.readfile(trminput) or ""
+end
+
+function f.write(self, section, data)
+       return nixio.fs.writefile(trminput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
+end
+
+function s.handle(self, state, data)
+       return true
+end
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua
new file mode 100644 (file)
index 0000000..6b07aab
--- /dev/null
@@ -0,0 +1,165 @@
+-- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- This is free software, licensed under the Apache License, Version 2.0
+
+local fs = require("nixio.fs")
+local uci = require("uci")
+local json = require("luci.jsonc")
+local nw  = require("luci.model.network").init()
+local fw  = require("luci.model.firewall").init()
+local uplink = uci.get("network", "trm_wwan") or ""
+local trminput = uci.get("travelmate", "global", "trm_rtfile") or "/tmp/trm_runtime.json"
+local parse = json.parse(fs.readfile(trminput) or "")
+
+m = Map("travelmate", translate("Travelmate"),
+       translate("Configuration of the travelmate package to to enable travel router functionality. ")
+       .. translatef("For further information "
+       .. "<a href=\"%s\" target=\"_blank\">"
+       .. "see online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md"))
+
+-- Main travelmate options
+
+s = m:section(NamedSection, "global", "travelmate")
+
+o1 = s:option(Flag, "trm_enabled", translate("Enable travelmate"))
+o1.default = o1.disabled
+o1.rmempty = false
+
+o2 = s:option(Flag, "trm_automatic", translate("Enable 'automatic' mode"),
+       translate("Keep travelmate in an active state."))
+o2.default = o2.enabled
+o2.rmempty = false
+
+o3 = s:option(Value, "trm_iface", translate("Restrict interface trigger to certain interface(s)"),
+       translate("Space separated list of interfaces that trigger travelmate processing. "..
+       "To disable event driven (re-)starts remove all entries."))
+o3.rmempty = true
+
+o4 = s:option(Value, "trm_triggerdelay", translate("Trigger delay"),
+       translate("Additional trigger delay in seconds before travelmate processing begins."))
+o4.default = 2
+o4.datatype = "range(1,90)"
+o4.rmempty = false
+
+o5 = s:option(Flag, "trm_debug", translate("Enable verbose debug logging"))
+o5.default = o5.disabled
+o5.rmempty = false
+
+-- Interface setup
+
+if uplink == "" then
+       dv = s:option(DummyValue, "_dummy", translate("Interface Setup"))
+       dv.template = "cbi/nullsection"
+       btn = s:option(Button, "", translate("Create Uplink Interface"),
+               translate("Automatically create a new wireless wan uplink interface 'trm_wwan', configure it to use dhcp and ")
+               .. translate("add it to the wan zone of the firewall. This step has only to be done once."))
+       btn.inputtitle = translate("Add Interface")
+       btn.inputstyle = "apply"
+       btn.disabled = false
+       function btn.write()
+               local name = "trm_wwan"
+               local net = nw:add_network(name, { proto = "dhcp" })
+               if net then
+                       nw:save("network")
+                       nw:commit("network")
+                       local zone = fw:get_zone_by_network("wan")
+                       if zone then
+                               zone:add_network(name)
+                               fw:save("firewall")
+                               fw:commit("firewall")
+                       end
+                       luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1")
+                       luci.http.redirect(luci.dispatcher.build_url("admin", "services", "travelmate"))
+               end
+       end
+else
+       dv = s:option(DummyValue, "_dummy", translate("Interface Setup"),
+               translate("<br />&nbsp;Network Interface 'trm_wwan' created successfully. ")
+               .. translatef("Scan &amp; Add new wireless stations via standard "
+               .. "<a href=\"%s\">"
+               .. "Wireless Setup</a>", luci.dispatcher.build_url("admin/network/wireless")))
+       dv.template = "cbi/nullsection"
+end
+
+-- Runtime information
+
+ds = s:option(DummyValue, "_dummy", translate("Runtime information"))
+ds.template = "cbi/nullsection"
+
+dv1 = s:option(DummyValue, "status", translate("Online Status"))
+dv1.template = "travelmate/runtime"
+if parse == nil then
+       dv1.value = translate("n/a")
+elseif parse.data.station_connection == "true" then
+       dv1.value = translate("connected")
+else
+       dv1.value = translate("not connected")
+end
+
+dv2 = s:option(DummyValue, "travelmate_version", translate("Travelmate version"))
+dv2.template = "travelmate/runtime"
+if parse ~= nil then
+       dv2.value = parse.data.travelmate_version or translate("n/a")
+else
+       dv2.value = translate("n/a")
+end
+
+dv3 = s:option(DummyValue, "station_ssid", translate("Station SSID"))
+dv3.template = "travelmate/runtime"
+if parse ~= nil then
+       dv3.value = parse.data.station_ssid or translate("n/a")
+else
+       dv3.value = translate("n/a")
+end
+
+dv4 = s:option(DummyValue, "station_interface", translate("Station Interface"))
+dv4.template = "travelmate/runtime"
+if parse ~= nil then
+       dv4.value = parse.data.station_interface or translate("n/a")
+else
+       dv4.value = translate("n/a")
+end
+
+dv5 = s:option(DummyValue, "station_radio", translate("Station Radio"))
+dv5.template = "travelmate/runtime"
+if parse ~= nil then
+       dv5.value = parse.data.station_radio or translate("n/a")
+else
+       dv5.value = translate("n/a")
+end
+
+dv6 = s:option(DummyValue, "last_rundate", translate("Last rundate"))
+dv6.template = "travelmate/runtime"
+if parse ~= nil then
+       dv6.value = parse.data.last_rundate or translate("n/a")
+else
+       dv6.value = translate("n/a")
+end
+
+-- Extra options
+
+e = m:section(NamedSection, "global", "travelmate", translate("Extra options"),
+translate("Options for further tweaking in case the defaults are not suitable for you."))
+
+e1 = e:option(Value, "trm_radio", translate("Radio selection"),
+       translate("Restrict travelmate to a dedicated radio, e.g. 'radio0'"))
+e1.rmempty = true
+
+e2 = e:option(Value, "trm_maxretry", translate("Connection Limit"),
+       translate("How many times should travelmate try to connect to an Uplink"))
+e2.default = 3
+e2.datatype = "range(1,10)"
+e2.rmempty = false
+
+e3 = e:option(Value, "trm_maxwait", translate("Interface Timeout"),
+       translate("How long should travelmate wait for a successful wlan interface reload"))
+e3.default = 30
+e3.datatype = "range(5,60)"
+e3.rmempty = false
+
+e4 = e:option(Value, "trm_timeout", translate("Overall Timeout"),
+       translate("Timeout in seconds between retries in 'automatic' mode"))
+e4.default = 60
+e4.datatype = "range(5,300)"
+e4.rmempty = false
+
+return m
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/config_css.htm
new file mode 100644 (file)
index 0000000..53493a1
--- /dev/null
@@ -0,0 +1,10 @@
+<style type="text/css">
+       textarea
+       {
+               border: 1px solid #cccccc;
+               padding: 5px;
+               font-size: 12px;
+               font-family: monospace;
+               resize: none;
+       }
+</style>
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/logread.htm
new file mode 100644 (file)
index 0000000..7f6ff77
--- /dev/null
@@ -0,0 +1,15 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+header%>
+
+<div class="cbi-map">
+       <fieldset class="cbi-section">
+               <div class="cbi-section-descr"><%:This form shows the syslog output, pre-filtered for travelmate related messages only.%></div>
+               <textarea id="logread_id" style="width: 100%; height: 450px; border: 1px solid #cccccc; padding: 5px; font-size: 12px; font-family: monospace; resize: none;" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+2%>"><%=content:pcdata()%></textarea>
+       </fieldset>
+</div>
+
+<%+footer%>
diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/runtime.htm
new file mode 100644 (file)
index 0000000..ee3a455
--- /dev/null
@@ -0,0 +1,10 @@
+<%#
+Copyright 2017 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%+cbi/valueheader%>
+
+<input name="runtime" id="runtime" type="text" class="cbi-input-text" style="border: none; box-shadow: none; background-color: #ffffff; color: #0069d6;" value="<%=self:cfgvalue(section)%>" disabled="disabled" />
+
+<%+cbi/valuefooter%>
diff --git a/applications/luci-app-travelmate/po/ja/travelmate.po b/applications/luci-app-travelmate/po/ja/travelmate.po
new file mode 100644 (file)
index 0000000..edb041e
--- /dev/null
@@ -0,0 +1,298 @@
+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 2.0.1\n"
+"Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: ja\n"
+
+msgid "."
+msgstr "。"
+
+msgid ""
+"Additional trigger delay in seconds before travelmate processing begins."
+msgstr "Travelmate の処理が開始されるまでの、追加の遅延時間(秒)です。"
+
+msgid "Advanced"
+msgstr "詳細設定"
+
+msgid ""
+"Automatically create a new wireless wan interface, configure it to use dhcp "
+"and add it to the wan zone of the firewall. This step has only to be done "
+"once."
+msgstr ""
+"新しい無線 WAN インターフェースを自動的に作成し、DHCP を使用するよう構成して"
+"ファイアウォールの wan ゾーンに追加します。このステップは、一度だけ実行する必"
+"要があります。"
+
+msgid ""
+"Configuration of the travelmate package to to enable travel router "
+"functionality."
+msgstr ""
+"トラベル ルーター機能を有効化するための、 Travelmate パッケージの設定です。"
+
+msgid "Connection Limit"
+msgstr "接続制限"
+
+msgid "Direct Link: <a href=\"%s\">Wireless Setup</a>"
+msgstr "ダイレクト リンク: <a href=\"%s\">無線設定</a>"
+
+msgid "Edit Firewall Configuration"
+msgstr "ファイアウォール設定の編集"
+
+msgid "Edit Network Configuration"
+msgstr "ネットワーク設定の編集"
+
+msgid "Edit Travelmate Configuration"
+msgstr "Travelmate 設定の編集"
+
+msgid "Edit Wireless Configuration"
+msgstr "無線設定の編集"
+
+msgid "Enable 'automatic' mode"
+msgstr "'automatic' モードの有効化"
+
+msgid "Enable travelmate"
+msgstr "Travelmate の有効化"
+
+msgid "Enable verbose debug logging"
+msgstr "詳細なデバッグ ログの有効化"
+
+msgid "Extra options"
+msgstr "拡張オプション"
+
+msgid "For further information"
+msgstr "詳細情報は"
+
+msgid "How long should travelmate wait for a successful wlan interface reload"
+msgstr ""
+"無線LAN インターフェースのリロードが成功するまでの、Travelmate の待機時間で"
+"す。"
+
+msgid "How many times should travelmate try to connect to an Uplink"
+msgstr "Travelmate がアップリンクに対して接続を試行する回数です。"
+
+msgid "Input file not found, please check your configuration."
+msgstr "入力ファイルが見つかりません。設定を確認してください。"
+
+msgid "Interface Setup"
+msgstr "インターフェース設定"
+
+msgid "Interface Timeout"
+msgstr "インターフェース タイムアウト"
+
+msgid "Keep travelmate in an active state."
+msgstr "Travelmate をアクティブ状態で維持します。"
+
+msgid "Last rundate"
+msgstr "最終実行日時"
+
+msgid "Name of the new wireless wan interface"
+msgstr "新しい無線 WAN のインターフェース名"
+
+msgid ""
+"Network Interface '%s' created successfully. Feel free to scan & add new "
+"stations via standard wireless setup."
+msgstr ""
+"ネットワーク インターフェース '%s' の作成に成功しました。通常の無線設定にて、"
+"スキャン及び新規ステーションの追加が可能です。"
+
+msgid "Online Status"
+msgstr "オンライン ステータス"
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr "デフォルトの設定が適切でない場合、さらに設定するためのオプションです。"
+
+msgid "Overall Timeout"
+msgstr "全体タイムアウト"
+
+msgid "Overview"
+msgstr "概要"
+
+msgid "Radio selection"
+msgstr "無線の選択"
+
+msgid "Restrict interface trigger to certain interface(s)"
+msgstr "インターフェース トリガーを特定のインターフェースに限定する"
+
+msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'"
+msgstr "Travelmate が特定の無線に接続するようにします。例: 'radio0'"
+
+msgid "Runtime information"
+msgstr "実行情報"
+
+msgid "Setup WWAN Interface"
+msgstr "WWAN インターフェース設定"
+
+msgid ""
+"Space separated list of interfaces that trigger travelmate processing. To "
+"disable event driven (re-)starts remove all entries."
+msgstr ""
+"Travelmate の処理のトリガーとなる、スペースで区切られたインターフェースのリス"
+"トです。処理を発生させるイベントを無効にするには、全てのエントリーを削除して"
+"空欄にします。"
+
+msgid "Station Interface"
+msgstr "ステーション インターフェース"
+
+msgid "Station Radio"
+msgstr "ステーション 無線"
+
+msgid "Station SSID"
+msgstr "ステーション SSID"
+
+msgid ""
+"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
+"code> and <code>_</code> (3-15 characters)."
+msgstr ""
+"使用可能文字: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> and "
+"<code>_</code>(3 - 15文字)"
+
+msgid "The given network interface name already exist"
+msgstr "入力されたネットワーク インターフェース名は、既に存在しています。"
+
+msgid ""
+"This form allows you to modify the content of the main firewall "
+"configuration file (/etc/config/firewall)."
+msgstr ""
+"このフォームでは、ファイアウォール 設定ファイル (/etc/config/firewall) の内容"
+"を変更することができます。"
+
+msgid ""
+"This form allows you to modify the content of the main network configuration "
+"file (/etc/config/network)."
+msgstr ""
+"このフォームでは、ネットワーク 設定ファイル (/etc/config/network) の内容を変"
+"更することができます。"
+
+msgid ""
+"This form allows you to modify the content of the main travelmate "
+"configuration file (/etc/config/travelmate)."
+msgstr ""
+"このフォームでは、 Travelmate 設定ファイル (/etc/config/travelmate) の内容を"
+"変更することができます。"
+
+msgid ""
+"This form allows you to modify the content of the main wireless "
+"configuration file (/etc/config/wireless)."
+msgstr ""
+"このフォームでは、無線 設定ファイル (/etc/config/wireless) の内容を変更するこ"
+"とができます。"
+
+msgid ""
+"This form shows the syslog output, pre-filtered for travelmate related "
+"messages only."
+msgstr ""
+"このフォームには、システムログ内の Travelmate に関するメッセージのみが表示さ"
+"れます。"
+
+msgid "Timeout in seconds between retries in 'automatic' mode"
+msgstr "'automatic' モード時に接続を再試行する間隔(秒)です。"
+
+msgid "Travelmate"
+msgstr "Travelmate"
+
+msgid "Travelmate Logfile"
+msgstr "Travelmate ログファイル"
+
+msgid "Travelmate version"
+msgstr "Travelmate バージョン"
+
+msgid "Trigger delay"
+msgstr "トリガー遅延"
+
+msgid "View Logfile"
+msgstr "ログファイルの確認"
+
+msgid "connected"
+msgstr "接続済み"
+
+msgid "n/a"
+msgstr "利用不可"
+
+msgid "not connected"
+msgstr "未接続"
+
+msgid "see online documentation"
+msgstr "オンライン ドキュメントを確認してください"
+
+#~ 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 ""
+#~ "簡単な解説: 予めWWANインターフェースを作成し、DHCPを使用するよう構成して"
+#~ "ファイアウォールのWANゾーンに追加します。また、使用される無線インター"
+#~ "フェースを作成しておきます(\"クライアント\" モード、WWANに割り当て、無効"
+#~ "状態)。Travelmateは、登録されている順序で既知の無線クライアント インター"
+#~ "フェースへの接続を試行します。"
+
+#~ msgid ""
+#~ "Configuration of the Travelmate package to enable travel router "
+#~ "functionality."
+#~ msgstr "トラベル ルータ機能を有効にする、Travelmate パッケージの設定です。"
+
+#~ msgid "Debug logging"
+#~ msgstr "デバッグ ログ"
+
+#~ msgid "Default 20, range 10-60"
+#~ msgstr "既定値 20、範囲 10 - 60"
+
+#~ msgid "Default 3, range 1-10"
+#~ msgstr "既定値 3、範囲 1 - 10"
+
+#~ msgid "Disable this if you want to use iwinfo instead of iw"
+#~ msgstr "iw の代わりに iwinfo を使用したい場合、この設定を無効にします。"
+
+#~ msgid "Enable Travelmate"
+#~ msgstr "Travelmateの有効化"
+
+#~ msgid "Global options"
+#~ msgstr "全般オプション"
+
+#~ msgid "Link to detailed advice"
+#~ msgstr "詳細な解説へのリンク"
+
+#~ msgid "Max. number of connection retries to an uplink"
+#~ msgstr "確立までの接続試行回数"
+
+#~ msgid "Max. timeout in seconds for wlan interface reload"
+#~ msgstr "無線LANインターフェース リロード時の最大待機時間(秒)"
+
+#~ msgid "Restrict reload trigger to certain interface(s)"
+#~ msgstr "リロード トリガを特定のインターフェースに限定する"
+
+#~ msgid ""
+#~ "Space separated list of wwan interfaces that trigger reload action. To "
+#~ "disable reload trigger set it to 'false'. Default: empty"
+#~ msgstr ""
+#~ "リロード動作のトリガとなる、スペースで区切られたWWAN インターフェースのリ"
+#~ "ストです。リロードのトリガを無効にするには、'false' を設定します。既定値:"
+#~ "(空)"
+
+#~ msgid "Use iw for scanning"
+#~ msgstr "スキャンに iw を使用する"
+
+#~ msgid "Default 3, range 0-10. Set to 0 to allow unlimited retries"
+#~ msgstr "既定値 3、範囲 0 - 10。再試行回数を制限しない場合、0 に設定します。"
+
+#~ msgid "Default 30, range 5-60"
+#~ msgstr "既定値 30、範囲 5 - 60"
+
+#~ msgid "Default: empty = use all radios."
+#~ msgstr "デフォルト:(空)= 全ての無線を使用"
+
+#~ msgid "Loop timeout in seconds for wlan monitoring"
+#~ msgstr "無線LAN モニターのループ タイムアウト(秒)"
+
+#~ msgid "Use only one radio, e.g. 'radio0'"
+#~ msgstr "単一の無線のみ使用する 例: 'radio0'"
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..906c698
--- /dev/null
@@ -0,0 +1,262 @@
+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 "."
+msgstr ""
+
+msgid ""
+"Additional trigger delay in seconds before travelmate processing begins."
+msgstr ""
+
+msgid "Advanced"
+msgstr ""
+
+msgid ""
+"Automatically create a new wireless wan interface, configure it to use dhcp "
+"and add it to the wan zone of the firewall. This step has only to be done "
+"once."
+msgstr ""
+
+msgid ""
+"Configuration of the travelmate package to to enable travel router "
+"functionality."
+msgstr ""
+
+msgid "Connection Limit"
+msgstr ""
+
+msgid "Direct Link: <a href=\"%s\">Wireless Setup</a>"
+msgstr ""
+
+msgid "Edit Firewall Configuration"
+msgstr ""
+
+msgid "Edit Network Configuration"
+msgstr ""
+
+msgid "Edit Travelmate Configuration"
+msgstr ""
+
+msgid "Edit Wireless Configuration"
+msgstr ""
+
+msgid "Enable 'automatic' mode"
+msgstr ""
+
+msgid "Enable travelmate"
+msgstr ""
+
+msgid "Enable verbose debug logging"
+msgstr ""
+
+msgid "Extra options"
+msgstr "Opções adicionais"
+
+msgid "For further information"
+msgstr ""
+
+msgid "How long should travelmate wait for a successful wlan interface reload"
+msgstr ""
+
+msgid "How many times should travelmate try to connect to an Uplink"
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr ""
+
+msgid "Interface Setup"
+msgstr ""
+
+msgid "Interface Timeout"
+msgstr ""
+
+msgid "Keep travelmate in an active state."
+msgstr ""
+
+msgid "Last rundate"
+msgstr ""
+
+msgid "Name of the new wireless wan interface"
+msgstr ""
+
+msgid ""
+"Network Interface '%s' created successfully. Feel free to scan & add new "
+"stations via standard wireless setup."
+msgstr ""
+
+msgid "Online Status"
+msgstr ""
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+
+msgid "Overall Timeout"
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid "Radio selection"
+msgstr ""
+
+msgid "Restrict interface trigger to certain interface(s)"
+msgstr ""
+
+msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'"
+msgstr ""
+
+msgid "Runtime information"
+msgstr ""
+
+msgid "Setup WWAN Interface"
+msgstr ""
+
+msgid ""
+"Space separated list of interfaces that trigger travelmate processing. To "
+"disable event driven (re-)starts remove all entries."
+msgstr ""
+
+msgid "Station Interface"
+msgstr ""
+
+msgid "Station Radio"
+msgstr ""
+
+msgid "Station SSID"
+msgstr ""
+
+msgid ""
+"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
+"code> and <code>_</code> (3-15 characters)."
+msgstr ""
+
+msgid "The given network interface name already exist"
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main firewall "
+"configuration file (/etc/config/firewall)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main network configuration "
+"file (/etc/config/network)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main travelmate "
+"configuration file (/etc/config/travelmate)."
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main wireless "
+"configuration file (/etc/config/wireless)."
+msgstr ""
+
+msgid ""
+"This form shows the syslog output, pre-filtered for travelmate related "
+"messages only."
+msgstr ""
+
+msgid "Timeout in seconds between retries in 'automatic' mode"
+msgstr ""
+
+msgid "Travelmate"
+msgstr "Travelmate"
+
+msgid "Travelmate Logfile"
+msgstr ""
+
+msgid "Travelmate version"
+msgstr ""
+
+msgid "Trigger delay"
+msgstr ""
+
+msgid "View Logfile"
+msgstr ""
+
+msgid "connected"
+msgstr ""
+
+msgid "n/a"
+msgstr ""
+
+msgid "not connected"
+msgstr ""
+
+msgid "see online documentation"
+msgstr ""
+
+#~ 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 "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 "Use iw for scanning"
+#~ msgstr "Use o iw para escaneamento"
index 533b3e2..4542ec8 100644 (file)
 msgid ""
 msgstr "Content-Type: text/plain; charset=UTF-8"
 
+msgid "."
+msgstr ""
+
 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."
+"Additional trigger delay in seconds before travelmate processing begins."
+msgstr ""
+
+msgid "Advanced"
 msgstr ""
 
 msgid ""
-"Configuration of the Travelmate package to enable travel router "
+"Automatically create a new wireless wan interface, configure it to use dhcp "
+"and add it to the wan zone of the firewall. This step has only to be done "
+"once."
+msgstr ""
+
+msgid ""
+"Configuration of the travelmate package to to enable travel router "
 "functionality."
 msgstr ""
 
-msgid "Debug logging"
+msgid "Connection Limit"
+msgstr ""
+
+msgid "Direct Link: <a href=\"%s\">Wireless Setup</a>"
+msgstr ""
+
+msgid "Edit Firewall Configuration"
 msgstr ""
 
-msgid "Default 3, range 0-10. Set to 0 to allow unlimited retries"
+msgid "Edit Network Configuration"
 msgstr ""
 
-msgid "Default 30, range 5-60"
+msgid "Edit Travelmate Configuration"
 msgstr ""
 
-msgid "Default: empty = use all radios."
+msgid "Edit Wireless Configuration"
 msgstr ""
 
-msgid "Disable this if you want to use iwinfo instead of iw"
+msgid "Enable 'automatic' mode"
 msgstr ""
 
-msgid "Enable Travelmate"
+msgid "Enable travelmate"
+msgstr ""
+
+msgid "Enable verbose debug logging"
 msgstr ""
 
 msgid "Extra options"
 msgstr ""
 
-msgid "Global options"
+msgid "For further information"
+msgstr ""
+
+msgid "How long should travelmate wait for a successful wlan interface reload"
+msgstr ""
+
+msgid "How many times should travelmate try to connect to an Uplink"
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr ""
+
+msgid "Interface Setup"
+msgstr ""
+
+msgid "Interface Timeout"
+msgstr ""
+
+msgid "Keep travelmate in an active state."
+msgstr ""
+
+msgid "Last rundate"
+msgstr ""
+
+msgid "Name of the new wireless wan interface"
+msgstr ""
+
+msgid ""
+"Network Interface '%s' created successfully. Feel free to scan & add new "
+"stations via standard wireless setup."
+msgstr ""
+
+msgid "Online Status"
+msgstr ""
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+
+msgid "Overall Timeout"
+msgstr ""
+
+msgid "Overview"
+msgstr ""
+
+msgid "Radio selection"
+msgstr ""
+
+msgid "Restrict interface trigger to certain interface(s)"
+msgstr ""
+
+msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'"
+msgstr ""
+
+msgid "Runtime information"
+msgstr ""
+
+msgid "Setup WWAN Interface"
+msgstr ""
+
+msgid ""
+"Space separated list of interfaces that trigger travelmate processing. To "
+"disable event driven (re-)starts remove all entries."
+msgstr ""
+
+msgid "Station Interface"
+msgstr ""
+
+msgid "Station Radio"
+msgstr ""
+
+msgid "Station SSID"
+msgstr ""
+
+msgid ""
+"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
+"code> and <code>_</code> (3-15 characters)."
+msgstr ""
+
+msgid "The given network interface name already exist"
+msgstr ""
+
+msgid ""
+"This form allows you to modify the content of the main firewall "
+"configuration file (/etc/config/firewall)."
 msgstr ""
 
-msgid "Link to detailed advice"
+msgid ""
+"This form allows you to modify the content of the main network configuration "
+"file (/etc/config/network)."
 msgstr ""
 
-msgid "Loop timeout in seconds for wlan monitoring"
+msgid ""
+"This form allows you to modify the content of the main travelmate "
+"configuration file (/etc/config/travelmate)."
 msgstr ""
 
-msgid "Max. number of connection retries to an uplink"
+msgid ""
+"This form allows you to modify the content of the main wireless "
+"configuration file (/etc/config/wireless)."
+msgstr ""
+
+msgid ""
+"This form shows the syslog output, pre-filtered for travelmate related "
+"messages only."
+msgstr ""
+
+msgid "Timeout in seconds between retries in 'automatic' mode"
 msgstr ""
 
 msgid "Travelmate"
 msgstr ""
 
-msgid "Use iw for scanning"
+msgid "Travelmate Logfile"
+msgstr ""
+
+msgid "Travelmate version"
+msgstr ""
+
+msgid "Trigger delay"
+msgstr ""
+
+msgid "View Logfile"
+msgstr ""
+
+msgid "connected"
+msgstr ""
+
+msgid "n/a"
+msgstr ""
+
+msgid "not connected"
 msgstr ""
 
-msgid "Use only one radio, e.g. 'radio0'"
+msgid "see online documentation"
 msgstr ""
index 9a2cf46..3014770 100644 (file)
@@ -11,16 +11,9 @@ LUCI_TITLE:=uHTTPd Webserver Configuration
 LUCI_DEPENDS:=+uhttpd
 LUCI_PKGARCH:=all
 
-PKG_NAME:=luci-app-uhttpd
-PKG_VERSION:=1.0.0
-PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_MAINTAINER:=Daniel Dickinson <openwrt@daniel.thecshore.com>
 
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
 LUA_TARGET:=source
 
 include ../../luci.mk
diff --git a/applications/luci-app-uhttpd/po/ja/uhttpd.po b/applications/luci-app-uhttpd/po/ja/uhttpd.po
new file mode 100644 (file)
index 0000000..5729034
--- /dev/null
@@ -0,0 +1,213 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2017-01-01 18:11+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.11\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid ""
+"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
+msgstr ""
+"(/old/path=/new/path) または (just /old/path which becomes /cgi-prefix/old/"
+"path)"
+
+msgid "404 Error"
+msgstr "404 エラー"
+
+msgid "A lightweight single-threaded HTTP(S) server"
+msgstr "軽量なシングル スレッド HTTP(S) サーバーです。"
+
+msgid "Advanced Settings"
+msgstr "詳細設定"
+
+msgid "Aliases"
+msgstr "エイリアス"
+
+msgid "Base directory for files to be served"
+msgstr "サーバーがホストするファイルのベースディレクトリです。"
+
+msgid "Bind to specific interface:port (by specifying interface address"
+msgstr ""
+"インターフェースのアドレスを使用して、特定のインターフェースとポートに関連付"
+"けます。"
+
+msgid "CGI filetype handler"
+msgstr "CGIファイル形式 ハンドラー"
+
+msgid "CGI is disabled if not present."
+msgstr "指定しない場合、CGIは無効になります。"
+
+msgid "Config file (e.g. for credentials for Basic Auth)"
+msgstr "設定ファイル(例: 基本認証用の資格情報)"
+
+msgid "Connection reuse"
+msgstr "接続の再使用"
+
+msgid "Country"
+msgstr "国"
+
+msgid "Disable JSON-RPC authorization via ubus session API"
+msgstr "ubus セッションAPI経由のJSON-RPC認証を無効にする"
+
+msgid "Do not follow symlinks outside document root"
+msgstr "ドキュメント ルート外へのシンボリックリンクを追随しない"
+
+msgid "Do not generate directory listings."
+msgstr "ディレクトリの待ち受けを生成しない"
+
+msgid "Document root"
+msgstr "ドキュメント ルート"
+
+msgid "E.g specify with index.html and index.php when using PHP"
+msgstr "index.html や、PHPを使用しているときは index.php を設定します。"
+
+msgid "Embedded Lua interpreter is disabled if not present."
+msgstr "指定しない場合、組込みLua インタープリタは無効になります。"
+
+msgid "Enable JSON-RPC Cross-Origin Resource Support"
+msgstr ""
+
+msgid "For settings primarily geared to serving more than the web UI"
+msgstr "主に、Web UI以上のものを提供することを対象とした設定です。"
+
+msgid "Full Web Server Settings"
+msgstr "完全なWebサーバー設定"
+
+msgid "Full real path to handler for Lua scripts"
+msgstr "Lua スクリプトへの絶対パス"
+
+msgid "General Settings"
+msgstr "一般設定"
+
+msgid "HTTP listeners (address:port)"
+msgstr "HTTP 待ち受け(アドレス:ポート)"
+
+msgid "HTTPS Certificate (DER Encoded)"
+msgstr "HTTPS 証明書(DER エンコード)"
+
+msgid "HTTPS Private Key (DER Encoded)"
+msgstr "HTTPS 秘密鍵(DER エンコード)"
+
+msgid "HTTPS listener (address:port)"
+msgstr "HTTPS 待ち受け(アドレス:ポート)"
+
+msgid "Ignore private IPs on public interface"
+msgstr "公開側インターフェースでのプライベートIPを無視する"
+
+msgid "Index page(s)"
+msgstr "インデックス ページ"
+
+msgid ""
+"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
+"usr/bin/php-cgi')"
+msgstr ""
+"ファイル拡張子に関連付けるインタープリタです。('suffix=handler'、例: '.php=/"
+"usr/bin/php-cgi')"
+
+msgid "Length of key in bits"
+msgstr "鍵のビット数"
+
+msgid "Location"
+msgstr "場所"
+
+msgid "Maximum number of connections"
+msgstr "最大接続数"
+
+msgid "Maximum number of script requests"
+msgstr "スクリプトの最大リクエスト数"
+
+msgid "Maximum wait time for Lua, CGI, or ubus execution"
+msgstr "LuaやCGI、ubus実行の最大待機時間"
+
+msgid "Maximum wait time for network activity"
+msgstr "ネットワークアクティビティの最大待機時間"
+
+msgid "Override path for ubus socket"
+msgstr "ubus ソケットのパスを上書きする"
+
+msgid "Path prefix for CGI scripts"
+msgstr "CGI スクリプトのパスプレフィクス"
+
+msgid ""
+"Prevent access from private (RFC1918) IPs on an interface if it has an "
+"public IP address"
+msgstr ""
+"グローバル IPアドレスを持つインターフェースでは、プライベート IP (RFC1918) か"
+"らのアクセスをブロックします。"
+
+msgid "Realm for Basic Auth"
+msgstr "基本認証の領域名"
+
+msgid "Redirect all HTTP to HTTPS"
+msgstr "全てのHTTPをHTTPSにリダイレクトする"
+
+msgid "Remove configuration for certificate and key"
+msgstr "証明書と鍵の設定を削除する"
+
+msgid "Remove old certificate and key"
+msgstr "古い証明書と鍵を削除する"
+
+msgid "Server Hostname"
+msgstr "サーバー ホスト名"
+
+msgid ""
+"Settings which are either rarely needed or which affect serving the WebUI"
+msgstr "まれに必要とされる設定、またはWeb UIに影響する設定です。"
+
+msgid "State"
+msgstr "ステータス"
+
+msgid "TCP Keepalive"
+msgstr "TCP キープアライブ"
+
+msgid "This permanently deletes the cert, key, and configuration to use same."
+msgstr ""
+
+msgid "Valid for # of Days"
+msgstr "有効日数"
+
+msgid ""
+"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
+"with '/'"
+msgstr ""
+
+msgid "Virtual path prefix for Lua scripts"
+msgstr "Lua スクリプトへの仮想パスプレフィクス"
+
+msgid "Virtual path prefix for ubus via JSON-RPC integration"
+msgstr ""
+
+msgid "Will not use HTTP authentication if not present"
+msgstr "指定しない場合、HTTP 認証は使用されません。"
+
+msgid "a.k.a CommonName"
+msgstr "共通名"
+
+msgid "uHTTPd"
+msgstr "uHTTPd"
+
+msgid "uHTTPd Self-signed Certificate Parameters"
+msgstr "uHTTPd 自己署名証明書 パラメーター"
+
+msgid ""
+"uHTTPd will generate a new self-signed certificate using the configuration "
+"shown below."
+msgstr "uHTTPd は、以下に表示した設定で新しい自己署名証明書を生成します。"
+
+msgid "ubus integration is disabled if not present"
+msgstr ""
+
+#~ msgid ""
+#~ "Virtual URL or CGI script to display on status '404 Not Found'.  Must "
+#~ "begin with '/'"
+#~ msgstr ""
+#~ "'404 Not Found' ステータスを表示する、仮想URLまたはCGIスクリプトです。'/' "
+#~ "から始まる必要があります。"
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"
diff --git a/applications/luci-app-uhttpd/po/templates/uhttpd.pot b/applications/luci-app-uhttpd/po/templates/uhttpd.pot
new file mode 100644 (file)
index 0000000..5503450
--- /dev/null
@@ -0,0 +1,186 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid ""
+"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)"
+msgstr ""
+
+msgid "404 Error"
+msgstr ""
+
+msgid "A lightweight single-threaded HTTP(S) server"
+msgstr ""
+
+msgid "Advanced Settings"
+msgstr ""
+
+msgid "Aliases"
+msgstr ""
+
+msgid "Base directory for files to be served"
+msgstr ""
+
+msgid "Bind to specific interface:port (by specifying interface address"
+msgstr ""
+
+msgid "CGI filetype handler"
+msgstr ""
+
+msgid "CGI is disabled if not present."
+msgstr ""
+
+msgid "Config file (e.g. for credentials for Basic Auth)"
+msgstr ""
+
+msgid "Connection reuse"
+msgstr ""
+
+msgid "Country"
+msgstr ""
+
+msgid "Disable JSON-RPC authorization via ubus session API"
+msgstr ""
+
+msgid "Do not follow symlinks outside document root"
+msgstr ""
+
+msgid "Do not generate directory listings."
+msgstr ""
+
+msgid "Document root"
+msgstr ""
+
+msgid "E.g specify with index.html and index.php when using PHP"
+msgstr ""
+
+msgid "Embedded Lua interpreter is disabled if not present."
+msgstr ""
+
+msgid "Enable JSON-RPC Cross-Origin Resource Support"
+msgstr ""
+
+msgid "For settings primarily geared to serving more than the web UI"
+msgstr ""
+
+msgid "Full Web Server Settings"
+msgstr ""
+
+msgid "Full real path to handler for Lua scripts"
+msgstr ""
+
+msgid "General Settings"
+msgstr ""
+
+msgid "HTTP listeners (address:port)"
+msgstr ""
+
+msgid "HTTPS Certificate (DER Encoded)"
+msgstr ""
+
+msgid "HTTPS Private Key (DER Encoded)"
+msgstr ""
+
+msgid "HTTPS listener (address:port)"
+msgstr ""
+
+msgid "Ignore private IPs on public interface"
+msgstr ""
+
+msgid "Index page(s)"
+msgstr ""
+
+msgid ""
+"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/"
+"usr/bin/php-cgi')"
+msgstr ""
+
+msgid "Length of key in bits"
+msgstr ""
+
+msgid "Location"
+msgstr ""
+
+msgid "Maximum number of connections"
+msgstr ""
+
+msgid "Maximum number of script requests"
+msgstr ""
+
+msgid "Maximum wait time for Lua, CGI, or ubus execution"
+msgstr ""
+
+msgid "Maximum wait time for network activity"
+msgstr ""
+
+msgid "Override path for ubus socket"
+msgstr ""
+
+msgid "Path prefix for CGI scripts"
+msgstr ""
+
+msgid ""
+"Prevent access from private (RFC1918) IPs on an interface if it has an "
+"public IP address"
+msgstr ""
+
+msgid "Realm for Basic Auth"
+msgstr ""
+
+msgid "Redirect all HTTP to HTTPS"
+msgstr ""
+
+msgid "Remove configuration for certificate and key"
+msgstr ""
+
+msgid "Remove old certificate and key"
+msgstr ""
+
+msgid "Server Hostname"
+msgstr ""
+
+msgid ""
+"Settings which are either rarely needed or which affect serving the WebUI"
+msgstr ""
+
+msgid "State"
+msgstr ""
+
+msgid "TCP Keepalive"
+msgstr ""
+
+msgid "This permanently deletes the cert, key, and configuration to use same."
+msgstr ""
+
+msgid "Valid for # of Days"
+msgstr ""
+
+msgid ""
+"Virtual URL or CGI script to display on status '404 Not Found'. Must begin "
+"with '/'"
+msgstr ""
+
+msgid "Virtual path prefix for Lua scripts"
+msgstr ""
+
+msgid "Virtual path prefix for ubus via JSON-RPC integration"
+msgstr ""
+
+msgid "Will not use HTTP authentication if not present"
+msgstr ""
+
+msgid "a.k.a CommonName"
+msgstr ""
+
+msgid "uHTTPd"
+msgstr ""
+
+msgid "uHTTPd Self-signed Certificate Parameters"
+msgstr ""
+
+msgid ""
+"uHTTPd will generate a new self-signed certificate using the configuration "
+"shown below."
+msgstr ""
+
+msgid "ubus integration is disabled if not present"
+msgstr ""
index 22f0200..847c98a 100644 (file)
@@ -1,29 +1,33 @@
 -- Copyright 2008 Steven Barth <steven@midlink.org>
 -- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com>
+-- Copyright 2016 Dan Luedtke <mail@danrl.com>
 -- Licensed to the public under the Apache License 2.0.
 
 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")
@@ -35,61 +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
 
+--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 = 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 = 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"))
@@ -97,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"
index ec9208d..f0aff73 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-05-19 19:36+0200\n"
-"PO-Revision-Date: 2013-10-05 17:27+0200\n"
-"Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2016-12-24 19:55+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: Pootle 2.0.6\n"
+"X-Generator: Poedit 1.8.11\n"
+"Language-Team: \n"
 
 msgid ""
 "ACLs specify which external ports may be redirected to which internal "
@@ -30,7 +30,7 @@ msgid "Advanced Settings"
 msgstr "詳細設定"
 
 msgid "Allow adding forwards only to requesting ip addresses"
-msgstr ""
+msgstr "要求元IPアドレスへの転送のみ、追加を許可します。"
 
 msgid "Announced model number"
 msgstr "通知するモデル番号"
@@ -136,18 +136,20 @@ msgid "UPnP lease file"
 msgstr "UPnP リースファイル"
 
 msgid "Universal Plug & Play"
-msgstr "ユニバーサル プラグ &#38; プレイ"
+msgstr "ユニバーサル プラグ & プレイ"
 
 msgid "Uplink"
 msgstr "アップリンク"
 
 msgid "Value in KByte/s, informational only"
-msgstr ""
+msgstr "クライアントへの情報提供のみに使用される、KByte/sの値です。"
 
 #~ msgid ""
 #~ "UPNP allows clients in the local network to automatically configure the "
 #~ "router."
-#~ msgstr "UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルータを構成することができます。"
+#~ msgstr ""
+#~ "UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルータ"
+#~ "を構成することができます。"
 
 #~ msgid "enable"
 #~ msgstr "有効"
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..e9636f9
--- /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].init=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..9f3fa2a
--- /dev/null
@@ -0,0 +1,90 @@
+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/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 "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 "Enable VPN Bypass"
+#~ msgstr "Habilitar o VPN Bypass"
+
+#~ 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 "
index a33c7aa..261cf36 100644 (file)
 --
 -- Author: Nils Koenig <openwrt@newk.it>
 
-module("luci.controller.wifischedule.wifi_schedule", package.seeall)  
+module("luci.controller.wifischedule.wifi_schedule", package.seeall)
+
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
+local template = require "luci.template"
+local i18n = require "luci.i18n"
 
 function index()
-     entry({"admin", "wifi_schedule"}, firstchild(), "Wifi Schedule", 60).dependent=false  
-     entry({"admin", "wifi_schedule", "tab_from_cbi"}, cbi("wifischedule/wifi_schedule"), "Schedule", 1)
-     entry({"admin", "wifi_schedule", "wifi_schedule"}, call("wifi_schedule_log"), "View Logfile", 2) 
-     entry({"admin", "wifi_schedule", "cronjob"}, call("view_crontab"), "View Cron Jobs", 3) 
+    if not nixio.fs.access("/etc/config/wifi_schedule") then
+        return
+    end
+    entry({"admin", "services", "wifi_schedule"}, firstchild(), _("Wifi Schedule"), 60).dependent=false
+    entry({"admin", "services", "wifi_schedule", "tab_from_cbi"}, cbi("wifischedule/wifi_schedule"), _("Schedule"), 1)
+    entry({"admin", "services", "wifi_schedule", "wifi_schedule"}, call("wifi_schedule_log"), _("View Logfile"), 2)
+    entry({"admin", "services", "wifi_schedule", "cronjob"}, call("view_crontab"), _("View Cron Jobs"), 3)
 end
 
 function wifi_schedule_log()
-        local logfile = luci.sys.exec("cat /tmp/log/wifi_schedule.log")
-        luci.template.render("wifischedule/file_viewer", {title="Wifi Schedule Logfile", content=logfile})
+    local logfile = fs.readfile("/tmp/log/wifi_schedule.log") or ""
+    template.render("wifischedule/file_viewer",
+        {title = i18n.translate("Wifi Schedule Logfile"), content = logfile})
 end
 
 function view_crontab()
-        local crontab = luci.sys.exec("cat /etc/crontabs/root")
-        luci.template.render("wifischedule/file_viewer", {title="Cron Jobs", content=crontab})
+    local crontab = fs.readfile("/etc/crontabs/root") or ""
+    template.render("wifischedule/file_viewer",
+        {title = i18n.translate("Cron Jobs"), content = crontab})
 end
index 2cca476..1d30121 100644 (file)
 --
 -- Author: Nils Koenig <openwrt@newk.it>
 
-function file_exists(name)
-   local f=io.open(name,"r")
-   if f~=nil then io.close(f) return true else return false end
-end
-
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
 
 function time_validator(self, value, desc)
     if value ~= nil then
-        
         h_str, m_str = string.match(value, "^(%d%d?):(%d%d?)$")
         h = tonumber(h_str)
         m = tonumber(m_str)
@@ -32,21 +28,21 @@ function time_validator(self, value, desc)
              m <= 59) then
             return value
         end
-    end 
-    return nil, translate("The value '" .. desc .. "' is invalid")
+    end
+    return nil, translatef("The value %s is invalid", desc)
 end
 
 -- -------------------------------------------------------------------------------------------------
 
 -- BEGIN Map
-m = Map("wifi_schedule", translate("Wifi Schedule"), translate("Defines a schedule when to turn on and off wifi.")) 
+m = Map("wifi_schedule", translate("Wifi Schedule"), translate("Defines a schedule when to turn on and off wifi."))
 function m.on_commit(self)
-    luci.sys.exec("/usr/bin/wifi_schedule.sh cron")
+    sys.exec("/usr/bin/wifi_schedule.sh cron")
 end
 -- END Map
 
 -- BEGIN Global Section
-global_section = m:section(TypedSection, "global", "Global Settings")
+global_section = m:section(TypedSection, "global", translate("Global Settings"))
 global_section.optional = false
 global_section.rmempty = false
 global_section.anonymous = true
@@ -54,13 +50,13 @@ global_section.anonymous = true
 
 -- BEGIN Global Enable Checkbox
 global_enable = global_section:option(Flag, "enabled", translate("Enable Wifi Schedule"))
-global_enable.optional=false; 
-global_enable.rmempty = false;
+global_enable.optional = false
+global_enable.rmempty = false
 
 function global_enable.validate(self, value, global_section)
     if value == "1" then
-        if ( file_exists("/sbin/wifi") and
-             file_exists("/usr/bin/wifi_schedule.sh") )then
+        if ( fs.access("/sbin/wifi") and
+             fs.access("/usr/bin/wifi_schedule.sh") )then
             return value
         else
             return nil, translate("Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi")
@@ -71,39 +67,38 @@ function global_enable.validate(self, value, global_section)
 end
 -- END Global Enable Checkbox
 
-
 -- BEGIN Global Logging Checkbox
 global_logging = global_section:option(Flag, "logging", translate("Enable logging"))
-global_logging.optional=false; 
-global_logging.rmempty = false;
+global_logging.optional = false
+global_logging.rmempty = false
 global_logging.default = 0
 -- END Global Enable Checkbox
 
 -- BEGIN Global Activate WiFi Button
 enable_wifi = global_section:option(Button, "enable_wifi", translate("Activate wifi"))
 function enable_wifi.write()
-    luci.sys.exec("/usr/bin/wifi_schedule.sh start manual")
+    sys.exec("/usr/bin/wifi_schedule.sh start manual")
 end
 -- END Global Activate Wifi Button
 
 -- BEGIN Global Disable WiFi Gracefully Button
 disable_wifi_gracefully = global_section:option(Button, "disable_wifi_gracefully", translate("Disable wifi gracefully"))
 function disable_wifi_gracefully.write()
-    luci.sys.exec("/usr/bin/wifi_schedule.sh stop manual")
+    sys.exec("/usr/bin/wifi_schedule.sh stop manual")
 end
--- END Global Disable Wifi Gracefully Button 
+-- END Global Disable Wifi Gracefully Button
 
 -- BEGIN Disable WiFi Forced Button
 disable_wifi_forced = global_section:option(Button, "disable_wifi_forced", translate("Disabled wifi forced"))
 function disable_wifi_forced.write()
-    luci.sys.exec("/usr/bin/wifi_schedule.sh forcestop manual")
+    sys.exec("/usr/bin/wifi_schedule.sh forcestop manual")
 end
 -- END Global Disable WiFi Forced Button
 
 -- BEGIN Global Unload Modules Checkbox
 global_unload_modules = global_section:option(Flag, "unload_modules", translate("Unload Modules (experimental; saves more power)"))
-global_unload_modules.optional = false;
-global_unload_modules.rmempty = false;
+global_unload_modules.optional = false
+global_unload_modules.rmempty = false
 global_unload_modules.default = 0
 -- END Global Unload Modules Checkbox
 
@@ -111,13 +106,13 @@ global_unload_modules.default = 0
 -- BEGIN Modules
 modules = global_section:option(TextValue, "modules", "")
 modules:depends("unload_modules", global_unload_modules.enabled);
-modules.wrap    = "off"
-modules.rows    = 10
+modules.wrap = "off"
+modules.rows = 10
 
 function modules.cfgvalue(self, section)
-    mod=uci.get("wifi_schedule", section, "modules")
+    mod = uci.get("wifi_schedule", section, "modules")
     if mod == nil then
-        mod=""
+        mod = ""
     end
     return mod:gsub(" ", "\r\n")
 end
@@ -131,45 +126,44 @@ function modules.write(self, section, value)
 end
 -- END Modules
 
--- BEGIN Determine Modules 
+-- BEGIN Determine Modules
 determine_modules = global_section:option(Button, "determine_modules", translate("Determine Modules Automatically"))
 determine_modules:depends("unload_modules", global_unload_modules.enabled);
 function determine_modules.write(self, section)
-    output = luci.sys.exec("/usr/bin/wifi_schedule.sh getmodules")
+    output = sys.exec("/usr/bin/wifi_schedule.sh getmodules")
     modules:write(section, output)
 end
 -- END Determine Modules
 
-
 -- BEGIN Section
-d = m:section(TypedSection, "entry", "Schedule events")
-d.addremove = true  
+d = m:section(TypedSection, "entry", translate("Schedule events"))
+d.addremove = true
 --d.anonymous = true
 -- END Section
 
 -- BEGIN Enable Checkbox
 c = d:option(Flag, "enabled", translate("Enable"))
-c.optional=false; c.rmempty = false;
+c.optional = false
+c.rmempty = false
 -- END Enable Checkbox
 
-
 -- BEGIN Day(s) of Week
 dow = d:option(MultiValue, "daysofweek", translate("Day(s) of Week"))
 dow.optional = false
 dow.rmempty = false
-dow:value("Monday")
-dow:value("Tuesday")
-dow:value("Wednesday")
-dow:value("Thursday")
-dow:value("Friday")
-dow:value("Saturday")
-dow:value("Sunday")
+dow:value("Monday", translate("Monday"))
+dow:value("Tuesday", translate("Tuesday"))
+dow:value("Wednesday", translate("Wednesday"))
+dow:value("Thursday", translate("Thursday"))
+dow:value("Friday", translate("Friday"))
+dow:value("Saturday", translate("Saturday"))
+dow:value("Sunday", translate("Sunday"))
 -- END Day(s) of Weel
 
 -- BEGIN Start Wifi Dropdown
 starttime =  d:option(Value, "starttime", translate("Start WiFi"))
-starttime.optional=false; 
-starttime.rmempty = false;
+starttime.optional = false
+starttime.rmempty = false
 starttime:value("00:00")
 starttime:value("01:00")
 starttime:value("02:00")
@@ -198,14 +192,12 @@ starttime:value("23:00")
 function starttime.validate(self, value, d)
     return time_validator(self, value, translate("Start Time"))
 end
-
 -- END Start Wifi Dropdown
 
-
 -- BEGIN Stop Wifi Dropdown
-stoptime =  d:option(Value, "stoptime", translate("Stop WiFi"))
-stoptime.optional=false;
-stoptime.rmempty = false;
+stoptime = d:option(Value, "stoptime", translate("Stop WiFi"))
+stoptime.optional = false
+stoptime.rmempty = false
 stoptime:value("00:00")
 stoptime:value("01:00")
 stoptime:value("02:00")
@@ -236,15 +228,14 @@ function stoptime.validate(self, value, d)
 end
 -- END Stop Wifi Dropdown
 
-
 -- BEGIN Force Wifi Stop Checkbox
 force_wifi = d:option(Flag, "forcewifidown", translate("Force disabling wifi even if stations associated"))
 force_wifi.default = false
-force_wifi.rmempty = false;
+force_wifi.rmempty = false
 
 function force_wifi.validate(self, value, d)
     if value == "0" then
-        if file_exists("/usr/bin/iwinfo") then
+        if fs.access("/usr/bin/iwinfo") then
             return value
         else
             return nil, translate("Could not find required programm /usr/bin/iwinfo")
@@ -255,5 +246,4 @@ function force_wifi.validate(self, value, d)
 end
 -- END Force Wifi Checkbox
 
-
 return m
diff --git a/applications/luci-app-wifischedule/po/ja/wifischedule.po b/applications/luci-app-wifischedule/po/ja/wifischedule.po
new file mode 100644 (file)
index 0000000..3bc7864
--- /dev/null
@@ -0,0 +1,112 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \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.11\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgid "Activate wifi"
+msgstr "WiFiのアクティブ化"
+
+msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
+msgstr "必須の /usr/bin/wifi_schedule.sh または /sbin/wifi が見つかりませんでした。"
+
+msgid "Could not find required programm /usr/bin/iwinfo"
+msgstr "必須のプログラム /usr/bin/iwinfo が見つかりませんでした。"
+
+msgid "Cron Jobs"
+msgstr "Cronジョブ"
+
+msgid "Day(s) of Week"
+msgstr "曜日"
+
+msgid "Defines a schedule when to turn on and off wifi."
+msgstr "WiFiのオンとオフを切り替えるスケジュールを設定します。"
+
+msgid "Determine Modules Automatically"
+msgstr "モジュールを自動的に決定する"
+
+msgid "Disable wifi gracefully"
+msgstr "WiFiの通常終了"
+
+msgid "Disabled wifi forced"
+msgstr "WiFiの強制終了"
+
+msgid "Enable"
+msgstr "有効"
+
+msgid "Enable Wifi Schedule"
+msgstr "WiFi スケジュールの有効化"
+
+msgid "Enable logging"
+msgstr "ログの有効化"
+
+msgid "Force disabling wifi even if stations associated"
+msgstr "ステーションが関連付けられていてもWiFiを強制終了する"
+
+msgid "Friday"
+msgstr "金曜日"
+
+msgid "Global Settings"
+msgstr "全体設定"
+
+msgid "Monday"
+msgstr "月曜日"
+
+msgid "Saturday"
+msgstr "土曜日"
+
+msgid "Schedule"
+msgstr "スケジュール"
+
+msgid "Schedule events"
+msgstr "実行スケジュール"
+
+msgid "Start Time"
+msgstr "開始時刻"
+
+msgid "Start WiFi"
+msgstr "WiFiの開始"
+
+msgid "Stop Time"
+msgstr "停止時刻"
+
+msgid "Stop WiFi"
+msgstr "WiFiの停止"
+
+msgid "Sunday"
+msgstr "日曜日"
+
+msgid "The value %s is invalid"
+msgstr "%s の値が無効です"
+
+msgid "Thursday"
+msgstr "木曜日"
+
+msgid "Tuesday"
+msgstr "火曜日"
+
+msgid "Unload Modules (experimental; saves more power)"
+msgstr "モジュールのアンロード(実験的、より省電力)"
+
+msgid "View Cron Jobs"
+msgstr "Cronジョブの確認"
+
+msgid "View Logfile"
+msgstr "ログファイルの確認"
+
+msgid "Wednesday"
+msgstr "水曜日"
+
+msgid "Wifi Schedule"
+msgstr "WiFi スケジュール"
+
+msgid "Wifi Schedule Logfile"
+msgstr "WiFiスケジュール ログファイル"
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-wifischedule/po/templates/wifischedule.pot b/applications/luci-app-wifischedule/po/templates/wifischedule.pot
new file mode 100644 (file)
index 0000000..639c432
--- /dev/null
@@ -0,0 +1,101 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Activate wifi"
+msgstr ""
+
+msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
+msgstr ""
+
+msgid "Could not find required programm /usr/bin/iwinfo"
+msgstr ""
+
+msgid "Cron Jobs"
+msgstr ""
+
+msgid "Day(s) of Week"
+msgstr ""
+
+msgid "Defines a schedule when to turn on and off wifi."
+msgstr ""
+
+msgid "Determine Modules Automatically"
+msgstr ""
+
+msgid "Disable wifi gracefully"
+msgstr ""
+
+msgid "Disabled wifi forced"
+msgstr ""
+
+msgid "Enable"
+msgstr ""
+
+msgid "Enable Wifi Schedule"
+msgstr ""
+
+msgid "Enable logging"
+msgstr ""
+
+msgid "Force disabling wifi even if stations associated"
+msgstr ""
+
+msgid "Friday"
+msgstr ""
+
+msgid "Global Settings"
+msgstr ""
+
+msgid "Monday"
+msgstr ""
+
+msgid "Saturday"
+msgstr ""
+
+msgid "Schedule"
+msgstr ""
+
+msgid "Schedule events"
+msgstr ""
+
+msgid "Start Time"
+msgstr ""
+
+msgid "Start WiFi"
+msgstr ""
+
+msgid "Stop Time"
+msgstr ""
+
+msgid "Stop WiFi"
+msgstr ""
+
+msgid "Sunday"
+msgstr ""
+
+msgid "The value %s is invalid"
+msgstr ""
+
+msgid "Thursday"
+msgstr ""
+
+msgid "Tuesday"
+msgstr ""
+
+msgid "Unload Modules (experimental; saves more power)"
+msgstr ""
+
+msgid "View Cron Jobs"
+msgstr ""
+
+msgid "View Logfile"
+msgstr ""
+
+msgid "Wednesday"
+msgstr ""
+
+msgid "Wifi Schedule"
+msgstr ""
+
+msgid "Wifi Schedule Logfile"
+msgstr ""
diff --git a/applications/luci-app-wifischedule/po/zh-cn/wifischedule.po b/applications/luci-app-wifischedule/po/zh-cn/wifischedule.po
new file mode 100644 (file)
index 0000000..ab3a8d0
--- /dev/null
@@ -0,0 +1,101 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "Activate wifi"
+msgstr "激活 WiFi"
+
+msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi"
+msgstr "无法找到必需的 /usr/bin/wifi_schedule.sh 或 /sbin/wifi"
+
+msgid "Could not find required programm /usr/bin/iwinfo"
+msgstr "无法找到必需程序:/usr/bin/iwinfo"
+
+msgid "Cron Jobs"
+msgstr "计划任务"
+
+msgid "Day(s) of Week"
+msgstr "星期"
+
+msgid "Defines a schedule when to turn on and off wifi."
+msgstr "定义自动打开和关闭 WiFi 的计划表"
+
+msgid "Determine Modules Automatically"
+msgstr "自动确定模块"
+
+msgid "Disable wifi gracefully"
+msgstr "正常关闭 WiFi"
+
+msgid "Disabled wifi forced"
+msgstr "强制关闭 WiFi"
+
+msgid "Enable"
+msgstr "启用"
+
+msgid "Enable Wifi Schedule"
+msgstr "启用 WiFi 计划"
+
+msgid "Enable logging"
+msgstr "启用日志"
+
+msgid "Force disabling wifi even if stations associated"
+msgstr "即使有设备连接也强制关闭 WiFi"
+
+msgid "Friday"
+msgstr "星期五"
+
+msgid "Global Settings"
+msgstr "全局设置"
+
+msgid "Monday"
+msgstr "星期一"
+
+msgid "Saturday"
+msgstr "星期六"
+
+msgid "Schedule"
+msgstr "计划表"
+
+msgid "Schedule events"
+msgstr "计划事件"
+
+msgid "Start Time"
+msgstr "启动时间"
+
+msgid "Start WiFi"
+msgstr "启动 WiFi"
+
+msgid "Stop Time"
+msgstr "关闭时间"
+
+msgid "Stop WiFi"
+msgstr "关闭 WiFi"
+
+msgid "Sunday"
+msgstr "星期日"
+
+msgid "The value %s is invalid"
+msgstr "%s 的值无效"
+
+msgid "Thursday"
+msgstr "星期四"
+
+msgid "Tuesday"
+msgstr "星期二"
+
+msgid "Unload Modules (experimental; saves more power)"
+msgstr "卸载模块(实验性的,节省更多电量)"
+
+msgid "View Cron Jobs"
+msgstr "查看计划任务"
+
+msgid "View Logfile"
+msgstr "查看日志文件"
+
+msgid "Wednesday"
+msgstr "星期三"
+
+msgid "Wifi Schedule"
+msgstr "WiFi 计划"
+
+msgid "Wifi Schedule Logfile"
+msgstr "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 ""
diff --git a/applications/luci-app-wireguard/po/zh-cn/wireguard.po b/applications/luci-app-wireguard/po/zh-cn/wireguard.po
new file mode 100644 (file)
index 0000000..e873a83
--- /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 2.0.1\n"
+"Last-Translator: liushuyu <liushuyu011@gmail.com>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language: zh_CN\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 "Keepalive 间隔(秒)"
+
+msgid "Public Key"
+msgstr "公钥"
+
+msgid "WireGuard Status"
+msgstr "WireGuard 状态"
+
+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 37442a3..d1e752e 100644 (file)
@@ -11,8 +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 libpolarssl
-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 f25e311..8fb8ff4 100644 (file)
@@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk
 LUCI_TYPE:=col
 LUCI_BASENAME:=ssl
 
-LUCI_TITLE:=LuCI with HTTPS support (PolarSSL as SSL backend)
-LUCI_DEPENDS:=+luci +libustream-polarssl +px5g
+LUCI_TITLE:=LuCI with HTTPS support (mbedTLS as SSL backend)
+LUCI_DEPENDS:=+luci +libustream-mbedtls +px5g
 
 include ../../luci.mk
 
index 7fff870..1bfc8ed 100644 (file)
@@ -8,6 +8,7 @@ config 'community' 'profile'
        option 'splash_prefix' '27'
        option 'latitude' '52.52075'
        option 'longitude' '13.40948'
+       option 'owm_api' 'http://util.berlin.freifunk.net'
 
 config 'defaults' 'wifi_device'
        option 'channel' '13'
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 c15f02d..2b9336f 100644 (file)
@@ -4,7 +4,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=freifunk-common
-PKG_RELEASE:=1
+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 b1dc01a..468ed7a 100755 (executable)
@@ -66,7 +66,8 @@ VARS="$VARS neighborLinkQuality:NLQ linkCost:Cost remoteHostname:Host"
 
 for HOST in '127.0.0.1' '::1';do
        json_init
-       json_load "$(echo /links|nc ${HOST} 9090)"
+       json_load "$( echo /links | nc $HOST 9090 | sed -n '/^[}{ ]/p' )"       # remove header/non-json
+
        if json_is_a links array;then
                json_select links
                for v in ${VARS};do
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 2235cc5..7674825 100644 (file)
--- a/luci.mk
+++ b/luci.mk
@@ -23,6 +23,7 @@ LUCI_LANG.he=עִבְרִית (Hebrew)
 LUCI_LANG.hu=Magyar (Hungarian)
 LUCI_LANG.it=Italiano (Italian)
 LUCI_LANG.ja=日本語 (Japanese)
+LUCI_LANG.ko=한국어 (Korean)
 LUCI_LANG.ms=Bahasa Melayu (Malay)
 LUCI_LANG.no=Norsk (Norwegian)
 LUCI_LANG.pl=Polski (Polish)
@@ -55,7 +56,7 @@ PKG_VERSION?=$(if $(DUMP),x,$(strip $(shell \
        elif git log -1 >/dev/null 2>/dev/null; then \
                revision="svn-r$$(LC_ALL=C git log -1 | sed -ne 's/.*git-svn-id: .*@\([0-9]\+\) .*/\1/p')"; \
                if [ "$$revision" = "svn-r" ]; then \
-                       set -- $$(git log -1 --format="%ct %h"); \
+                       set -- $$(git log -1 --format="%ct %h" --abbrev=7); \
                        secs="$$(($$1 % 86400))"; \
                        yday="$$(date --utc --date="@$$1" "+%y.%j")"; \
                        revision="$$(printf 'git-%s.%05d-%s' "$$yday" "$$secs" "$$2")"; \
@@ -69,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 972a451..753ff25 100644 (file)
@@ -15,8 +15,8 @@ LUCI_TITLE:=LuCI core libraries
 LUCI_DEPENDS:=+lua +libuci-lua +luci-lib-nixio +luci-lib-ip +rpcd +libubus-lua +luci-lib-jsonc
 
 PKG_SOURCE:=LuaSrcDiet-0.12.1.tar.bz2
-PKG_SOURCE_URL:=https://luasrcdiet.googlecode.com/files
-PKG_MD5SUM:=8a0812701e29b6715e4d76f2f118264a
+PKG_SOURCE_URL:=https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/luasrcdiet
+PKG_MD5SUM:=ed7680f2896269ae8633756e7edcf09050812f78c8f49e280e63c30d14f35aea
 
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/LuaSrcDiet-0.12.1
 
@@ -24,6 +24,7 @@ include $(INCLUDE_DIR)/host-build.mk
 
 define Package/luci-base/conffiles
 /etc/luci-uploads
+/etc/config/luci
 endef
 
 include ../../luci.mk
index 5790e30..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);
@@ -523,13 +567,6 @@ function cbi_init() {
                }
        }
 
-       nodes = document.querySelectorAll('[data-type]');
-
-       for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
-               cbi_validate_field(node, node.getAttribute('data-optional') === 'true',
-                                  node.getAttribute('data-type'));
-       }
-
        nodes = document.querySelectorAll('[data-choices]');
 
        for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
@@ -562,6 +599,13 @@ function cbi_init() {
                cbi_dynlist_init(node, choices[2], choices[3], options);
        }
 
+       nodes = document.querySelectorAll('[data-type]');
+
+       for (var i = 0, node; (node = nodes[i]) !== undefined; i++) {
+               cbi_validate_field(node, node.getAttribute('data-optional') === 'true',
+                                  node.getAttribute('data-type'));
+       }
+
        cbi_d_update();
 }
 
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 0876ce6..0bd1945 100644 (file)
@@ -101,7 +101,7 @@ function error500(message)
        return false
 end
 
-function authenticator.htmlauth(validator, accs, default)
+function authenticator.htmlauth(validator, accs, default, template)
        local user = http.formvalue("luci_username")
        local pass = http.formvalue("luci_password")
 
@@ -113,7 +113,7 @@ function authenticator.htmlauth(validator, accs, default)
        require("luci.template")
        context.path = {}
        http.status(403, "Forbidden")
-       luci.template.render("sysauth", {duser=default, fuser=user})
+       luci.template.render(template or "sysauth", {duser=default, fuser=user})
 
        return false
 
@@ -360,7 +360,7 @@ function dispatch(request)
 
                if not util.contains(accs, user) then
                        if authen then
-                               local user, sess = authen(sys.user.checkpasswd, accs, def)
+                               local user, sess = authen(sys.user.checkpasswd, accs, def, track.sysauth_template)
                                local token
                                if not user or not util.contains(accs, user) then
                                        return
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 a9dbc30..7ff665e 100644 (file)
@@ -31,29 +31,43 @@ function IptParser.__init__( self, family )
        self._family = (tonumber(family) == 6) and 6 or 4
        self._rules  = { }
        self._chains = { }
+       self._tables = { }
+
+       local t = self._tables
+       local s = self:_supported_tables(self._family)
+
+       if s.filter then t[#t+1] = "filter" end
+       if s.nat    then t[#t+1] = "nat"    end
+       if s.mangle then t[#t+1] = "mangle" end
+       if s.raw    then t[#t+1] = "raw"    end
 
        if self._family == 4 then
                self._nulladdr = "0.0.0.0/0"
-               self._tables   = { "filter", "nat", "mangle", "raw" }
                self._command  = "iptables -t %s --line-numbers -nxvL"
        else
                self._nulladdr = "::/0"
-               self._tables   = { "filter", "mangle", "raw" }
-               local ok, lines = pcall(io.lines, "/proc/net/ip6_tables_names")
-               if ok and lines then
-                       local line
-                       for line in lines do
-                               if line == "nat" then
-                                       self._tables = { "filter", "nat", "mangle", "raw" }
-                               end
-                       end
-               end
                self._command  = "ip6tables -t %s --line-numbers -nxvL"
        end
 
        self:_parse_rules()
 end
 
+function IptParser._supported_tables( self, family )
+       local tables = { }
+       local ok, lines = pcall(io.lines,
+               (family == 6) and "/proc/net/ip6_tables_names"
+                              or "/proc/net/ip_tables_names")
+
+       if ok and lines then
+               local line
+               for line in lines do
+                       tables[line] = true
+               end
+       end
+
+       return tables
+end
+
 -- search criteria as only argument. If args is nil or an empty table then all
 -- rules will be returned.
 --
index 465d7df..2d32b39 100644 (file)
@@ -59,42 +59,42 @@ TZ = {
        { 'America/Anchorage', 'AKST9AKDT,M3.2.0,M11.1.0' },
        { 'America/Anguilla', 'AST4' },
        { 'America/Antigua', 'AST4' },
-       { 'America/Araguaina', 'BRT3' },
-       { 'America/Argentina/Buenos Aires', 'ART3' },
-       { 'America/Argentina/Catamarca', 'ART3' },
-       { 'America/Argentina/Cordoba', 'ART3' },
-       { 'America/Argentina/Jujuy', 'ART3' },
-       { 'America/Argentina/La Rioja', 'ART3' },
-       { 'America/Argentina/Mendoza', 'ART3' },
-       { 'America/Argentina/Rio Gallegos', 'ART3' },
-       { 'America/Argentina/Salta', 'ART3' },
-       { 'America/Argentina/San Juan', 'ART3' },
-       { 'America/Argentina/San Luis', 'ART3' },
-       { 'America/Argentina/Tucuman', 'ART3' },
-       { 'America/Argentina/Ushuaia', 'ART3' },
+       { 'America/Araguaina', '<-03>3' },
+       { 'America/Argentina/Buenos Aires', '<-03>3' },
+       { 'America/Argentina/Catamarca', '<-03>3' },
+       { 'America/Argentina/Cordoba', '<-03>3' },
+       { 'America/Argentina/Jujuy', '<-03>3' },
+       { 'America/Argentina/La Rioja', '<-03>3' },
+       { 'America/Argentina/Mendoza', '<-03>3' },
+       { 'America/Argentina/Rio Gallegos', '<-03>3' },
+       { 'America/Argentina/Salta', '<-03>3' },
+       { 'America/Argentina/San Juan', '<-03>3' },
+       { 'America/Argentina/San Luis', '<-03>3' },
+       { 'America/Argentina/Tucuman', '<-03>3' },
+       { 'America/Argentina/Ushuaia', '<-03>3' },
        { 'America/Aruba', 'AST4' },
-       { 'America/Asuncion', 'PYT4PYST,M10.1.0/0,M3.4.0/0' },
+       { 'America/Asuncion', '<-04>4<-03>,M10.1.0/0,M3.4.0/0' },
        { 'America/Atikokan', 'EST5' },
-       { 'America/Bahia', 'BRT3' },
+       { 'America/Bahia', '<-03>3' },
        { 'America/Bahia Banderas', 'CST6CDT,M4.1.0,M10.5.0' },
        { 'America/Barbados', 'AST4' },
-       { 'America/Belem', 'BRT3' },
+       { 'America/Belem', '<-03>3' },
        { 'America/Belize', 'CST6' },
        { 'America/Blanc-Sablon', 'AST4' },
-       { 'America/Boa Vista', 'AMT4' },
-       { 'America/Bogota', 'COT5' },
+       { 'America/Boa Vista', '<-04>4' },
+       { 'America/Bogota', '<-05>5' },
        { 'America/Boise', 'MST7MDT,M3.2.0,M11.1.0' },
        { 'America/Cambridge Bay', 'MST7MDT,M3.2.0,M11.1.0' },
-       { 'America/Campo Grande', 'AMT4AMST,M10.3.0/0,M2.3.0/0' },
+       { 'America/Campo Grande', '<-04>4<-03>,M10.3.0/0,M2.3.0/0' },
        { 'America/Cancun', 'EST5' },
-       { 'America/Caracas', 'VET4' },
-       { 'America/Cayenne', 'GFT3' },
+       { 'America/Caracas', '<-04>4' },
+       { 'America/Cayenne', '<-03>3' },
        { 'America/Cayman', 'EST5' },
        { 'America/Chicago', 'CST6CDT,M3.2.0,M11.1.0' },
        { 'America/Chihuahua', 'MST7MDT,M4.1.0,M10.5.0' },
        { 'America/Costa Rica', 'CST6' },
        { 'America/Creston', 'MST7' },
-       { 'America/Cuiaba', 'AMT4AMST,M10.3.0/0,M2.3.0/0' },
+       { 'America/Cuiaba', '<-04>4<-03>,M10.3.0/0,M2.3.0/0' },
        { 'America/Curacao', 'AST4' },
        { 'America/Danmarkshavn', 'GMT0' },
        { 'America/Dawson', 'PST8PDT,M3.2.0,M11.1.0' },
@@ -103,19 +103,19 @@ TZ = {
        { 'America/Detroit', 'EST5EDT,M3.2.0,M11.1.0' },
        { 'America/Dominica', 'AST4' },
        { 'America/Edmonton', 'MST7MDT,M3.2.0,M11.1.0' },
-       { 'America/Eirunepe', 'ACT5' },
+       { 'America/Eirunepe', '<-05>5' },
        { 'America/El Salvador', 'CST6' },
        { 'America/Fort Nelson', 'MST7' },
-       { 'America/Fortaleza', 'BRT3' },
+       { 'America/Fortaleza', '<-03>3' },
        { 'America/Glace Bay', 'AST4ADT,M3.2.0,M11.1.0' },
-       { 'America/Godthab', 'WGT3WGST,M3.5.0/-2,M10.5.0/-1' },
+       { 'America/Godthab', '<-03>3<-02>,M3.5.0/-2,M10.5.0/-1' },
        { 'America/Goose Bay', 'AST4ADT,M3.2.0,M11.1.0' },
        { 'America/Grand Turk', 'AST4' },
        { 'America/Grenada', 'AST4' },
        { 'America/Guadeloupe', 'AST4' },
        { 'America/Guatemala', 'CST6' },
-       { 'America/Guayaquil', 'ECT5' },
-       { 'America/Guyana', 'GYT4' },
+       { 'America/Guayaquil', '<-05>5' },
+       { 'America/Guyana', '<-04>4' },
        { 'America/Halifax', 'AST4ADT,M3.2.0,M11.1.0' },
        { 'America/Havana', 'CST5CDT,M3.2.0/0,M11.1.0/1' },
        { 'America/Hermosillo', 'MST7' },
@@ -134,13 +134,13 @@ TZ = {
        { 'America/Kentucky/Louisville', 'EST5EDT,M3.2.0,M11.1.0' },
        { 'America/Kentucky/Monticello', 'EST5EDT,M3.2.0,M11.1.0' },
        { 'America/Kralendijk', 'AST4' },
-       { 'America/La Paz', 'BOT4' },
-       { 'America/Lima', 'PET5' },
+       { 'America/La Paz', '<-04>4' },
+       { 'America/Lima', '<-05>5' },
        { 'America/Los Angeles', 'PST8PDT,M3.2.0,M11.1.0' },
        { 'America/Lower Princes', 'AST4' },
-       { 'America/Maceio', 'BRT3' },
+       { 'America/Maceio', '<-03>3' },
        { 'America/Managua', 'CST6' },
-       { 'America/Manaus', 'AMT4' },
+       { 'America/Manaus', '<-04>4' },
        { 'America/Marigot', 'AST4' },
        { 'America/Martinique', 'AST4' },
        { 'America/Matamoros', 'CST6CDT,M3.2.0,M11.1.0' },
@@ -149,39 +149,40 @@ TZ = {
        { 'America/Merida', 'CST6CDT,M4.1.0,M10.5.0' },
        { 'America/Metlakatla', 'AKST9AKDT,M3.2.0,M11.1.0' },
        { 'America/Mexico City', 'CST6CDT,M4.1.0,M10.5.0' },
-       { 'America/Miquelon', 'PMST3PMDT,M3.2.0,M11.1.0' },
+       { 'America/Miquelon', '<-03>3<-02>,M3.2.0,M11.1.0' },
        { 'America/Moncton', 'AST4ADT,M3.2.0,M11.1.0' },
        { 'America/Monterrey', 'CST6CDT,M4.1.0,M10.5.0' },
-       { 'America/Montevideo', 'UYT3' },
+       { 'America/Montevideo', '<-03>3' },
        { 'America/Montserrat', 'AST4' },
        { 'America/Nassau', 'EST5EDT,M3.2.0,M11.1.0' },
        { 'America/New York', 'EST5EDT,M3.2.0,M11.1.0' },
        { 'America/Nipigon', 'EST5EDT,M3.2.0,M11.1.0' },
        { 'America/Nome', 'AKST9AKDT,M3.2.0,M11.1.0' },
-       { 'America/Noronha', 'FNT2' },
+       { 'America/Noronha', '<-02>2' },
        { 'America/North Dakota/Beulah', 'CST6CDT,M3.2.0,M11.1.0' },
        { 'America/North Dakota/Center', 'CST6CDT,M3.2.0,M11.1.0' },
        { 'America/North Dakota/New Salem', 'CST6CDT,M3.2.0,M11.1.0' },
        { 'America/Ojinaga', 'MST7MDT,M3.2.0,M11.1.0' },
        { 'America/Panama', 'EST5' },
        { 'America/Pangnirtung', 'EST5EDT,M3.2.0,M11.1.0' },
-       { 'America/Paramaribo', 'SRT3' },
+       { 'America/Paramaribo', '<-03>3' },
        { 'America/Phoenix', 'MST7' },
        { 'America/Port of Spain', 'AST4' },
-       { 'America/Port-au-Prince', 'EST5' },
-       { 'America/Porto Velho', 'AMT4' },
+       { 'America/Port-au-Prince', 'EST5EDT,M3.2.0,M11.1.0' },
+       { 'America/Porto Velho', '<-04>4' },
        { 'America/Puerto Rico', 'AST4' },
+       { 'America/Punta Arenas', '<-03>3' },
        { 'America/Rainy River', 'CST6CDT,M3.2.0,M11.1.0' },
        { 'America/Rankin Inlet', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Recife', 'BRT3' },
+       { 'America/Recife', '<-03>3' },
        { 'America/Regina', 'CST6' },
        { 'America/Resolute', 'CST6CDT,M3.2.0,M11.1.0' },
-       { 'America/Rio Branco', 'ACT5' },
-       { 'America/Santarem', 'BRT3' },
-       { 'America/Santiago', 'CLT4CLST,M8.2.6/24,M5.2.6/24' },
+       { 'America/Rio Branco', '<-05>5' },
+       { 'America/Santarem', '<-03>3' },
+       { 'America/Santiago', '<-04>4<-03>,M8.2.6/24,M5.2.6/24' },
        { 'America/Santo Domingo', 'AST4' },
-       { 'America/Sao Paulo', 'BRT3BRST,M10.3.0/0,M2.3.0/0' },
-       { 'America/Scoresbysund', 'EGT1EGST,M3.5.0/0,M10.5.0/1' },
+       { 'America/Sao Paulo', '<-03>3<-02>,M10.3.0/0,M2.3.0/0' },
+       { 'America/Scoresbysund', '<-01>1<+00>,M3.5.0/0,M10.5.0/1' },
        { 'America/Sitka', 'AKST9AKDT,M3.2.0,M11.1.0' },
        { 'America/St Barthelemy', 'AST4' },
        { 'America/St Johns', 'NST3:30NDT,M3.2.0,M11.1.0' },
@@ -204,16 +205,16 @@ TZ = {
        { 'Antarctica/Casey', '<+11>-11' },
        { 'Antarctica/Davis', '<+07>-7' },
        { 'Antarctica/DumontDUrville', '<+10>-10' },
-       { 'Antarctica/Macquarie', 'MIST-11' },
+       { 'Antarctica/Macquarie', '<+11>-11' },
        { 'Antarctica/Mawson', '<+05>-5' },
        { 'Antarctica/McMurdo', 'NZST-12NZDT,M9.5.0,M4.1.0/3' },
-       { 'Antarctica/Palmer', 'CLT4CLST,M8.2.6/24,M5.2.6/24' },
+       { 'Antarctica/Palmer', '<-03>3' },
        { 'Antarctica/Rothera', '<-03>3' },
        { 'Antarctica/Syowa', '<+03>-3' },
        { 'Antarctica/Troll', '<+00>0<+02>-2,M3.5.0/1,M10.5.0/3' },
        { 'Antarctica/Vostok', '<+06>-6' },
        { 'Arctic/Longyearbyen', 'CET-1CEST,M3.5.0,M10.5.0/3' },
-       { 'Asia/Aden', 'AST-3' },
+       { 'Asia/Aden', '<+03>-3' },
        { 'Asia/Almaty', '<+06>-6' },
        { 'Asia/Amman', 'EET-2EEST,M3.5.4/24,M10.5.5/1' },
        { 'Asia/Anadyr', '<+12>-12' },
@@ -221,99 +222,99 @@ TZ = {
        { 'Asia/Aqtobe', '<+05>-5' },
        { 'Asia/Ashgabat', '<+05>-5' },
        { 'Asia/Atyrau', '<+05>-5' },
-       { 'Asia/Baghdad', 'AST-3' },
-       { 'Asia/Bahrain', 'AST-3' },
+       { 'Asia/Baghdad', '<+03>-3' },
+       { 'Asia/Bahrain', '<+03>-3' },
        { 'Asia/Baku', '<+04>-4' },
-       { 'Asia/Bangkok', 'ICT-7' },
+       { 'Asia/Bangkok', '<+07>-7' },
        { 'Asia/Barnaul', '<+07>-7' },
        { 'Asia/Beirut', 'EET-2EEST,M3.5.0/0,M10.5.0/0' },
        { 'Asia/Bishkek', '<+06>-6' },
-       { 'Asia/Brunei', 'BNT-8' },
+       { 'Asia/Brunei', '<+08>-8' },
        { 'Asia/Chita', '<+09>-9' },
-       { 'Asia/Choibalsan', 'CHOT-8CHOST,M3.5.6,M9.5.6/0' },
+       { 'Asia/Choibalsan', '<+08>-8' },
        { 'Asia/Colombo', '<+0530>-5:30' },
        { 'Asia/Damascus', 'EET-2EEST,M3.5.5/0,M10.5.5/0' },
-       { 'Asia/Dhaka', 'BDT-6' },
-       { 'Asia/Dili', 'TLT-9' },
-       { 'Asia/Dubai', 'GST-4' },
+       { 'Asia/Dhaka', '<+06>-6' },
+       { 'Asia/Dili', '<+09>-9' },
+       { 'Asia/Dubai', '<+04>-4' },
        { 'Asia/Dushanbe', '<+05>-5' },
        { 'Asia/Famagusta', '<+03>-3' },
        { 'Asia/Gaza', 'EET-2EEST,M3.5.6/1,M10.5.6/1' },
        { 'Asia/Hebron', 'EET-2EEST,M3.5.6/1,M10.5.6/1' },
-       { 'Asia/Ho Chi Minh', 'ICT-7' },
+       { 'Asia/Ho Chi Minh', '<+07>-7' },
        { 'Asia/Hong Kong', 'HKT-8' },
-       { 'Asia/Hovd', 'HOVT-7HOVST,M3.5.6,M9.5.6/0' },
+       { 'Asia/Hovd', '<+07>-7' },
        { 'Asia/Irkutsk', '<+08>-8' },
        { 'Asia/Jakarta', 'WIB-7' },
        { 'Asia/Jayapura', 'WIT-9' },
        { 'Asia/Jerusalem', 'IST-2IDT,M3.4.4/26,M10.5.0' },
-       { 'Asia/Kabul', 'AFT-4:30' },
+       { 'Asia/Kabul', '<+0430>-4:30' },
        { 'Asia/Kamchatka', '<+12>-12' },
        { 'Asia/Karachi', 'PKT-5' },
-       { 'Asia/Kathmandu', 'NPT-5:45' },
+       { 'Asia/Kathmandu', '<+0545>-5:45' },
        { 'Asia/Khandyga', '<+09>-9' },
        { 'Asia/Kolkata', 'IST-5:30' },
        { 'Asia/Krasnoyarsk', '<+07>-7' },
-       { 'Asia/Kuala Lumpur', 'MYT-8' },
-       { 'Asia/Kuching', 'MYT-8' },
-       { 'Asia/Kuwait', 'AST-3' },
+       { 'Asia/Kuala Lumpur', '<+08>-8' },
+       { 'Asia/Kuching', '<+08>-8' },
+       { 'Asia/Kuwait', '<+03>-3' },
        { 'Asia/Macau', 'CST-8' },
        { 'Asia/Magadan', '<+11>-11' },
        { 'Asia/Makassar', 'WITA-8' },
-       { 'Asia/Manila', 'PHT-8' },
-       { 'Asia/Muscat', 'GST-4' },
+       { 'Asia/Manila', '<+08>-8' },
+       { 'Asia/Muscat', '<+04>-4' },
        { 'Asia/Nicosia', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
        { 'Asia/Novokuznetsk', '<+07>-7' },
        { 'Asia/Novosibirsk', '<+07>-7' },
        { 'Asia/Omsk', '<+06>-6' },
        { 'Asia/Oral', '<+05>-5' },
-       { 'Asia/Phnom Penh', 'ICT-7' },
+       { 'Asia/Phnom Penh', '<+07>-7' },
        { 'Asia/Pontianak', 'WIB-7' },
        { 'Asia/Pyongyang', 'KST-8:30' },
-       { 'Asia/Qatar', 'AST-3' },
+       { 'Asia/Qatar', '<+03>-3' },
        { 'Asia/Qyzylorda', '<+06>-6' },
-       { 'Asia/Riyadh', 'AST-3' },
+       { 'Asia/Riyadh', '<+03>-3' },
        { 'Asia/Sakhalin', '<+11>-11' },
        { 'Asia/Samarkand', '<+05>-5' },
        { 'Asia/Seoul', 'KST-9' },
        { 'Asia/Shanghai', 'CST-8' },
-       { 'Asia/Singapore', 'SGT-8' },
+       { 'Asia/Singapore', '<+08>-8' },
        { 'Asia/Srednekolymsk', '<+11>-11' },
        { 'Asia/Taipei', 'CST-8' },
        { 'Asia/Tashkent', '<+05>-5' },
        { 'Asia/Tbilisi', '<+04>-4' },
-       { 'Asia/Tehran', 'IRST-3:30IRDT,J80/0,J264/0' },
-       { 'Asia/Thimphu', 'BTT-6' },
+       { 'Asia/Tehran', '<+0330>-3:30<+0430>,J80/0,J264/0' },
+       { 'Asia/Thimphu', '<+06>-6' },
        { 'Asia/Tokyo', 'JST-9' },
        { 'Asia/Tomsk', '<+07>-7' },
-       { 'Asia/Ulaanbaatar', 'ULAT-8ULAST,M3.5.6,M9.5.6/0' },
-       { 'Asia/Urumqi', 'XJT-6' },
+       { 'Asia/Ulaanbaatar', '<+08>-8' },
+       { 'Asia/Urumqi', '<+06>-6' },
        { 'Asia/Ust-Nera', '<+10>-10' },
-       { 'Asia/Vientiane', 'ICT-7' },
+       { 'Asia/Vientiane', '<+07>-7' },
        { 'Asia/Vladivostok', '<+10>-10' },
        { 'Asia/Yakutsk', '<+09>-9' },
-       { 'Asia/Yangon', 'MMT-6:30' },
+       { 'Asia/Yangon', '<+0630>-6:30' },
        { 'Asia/Yekaterinburg', '<+05>-5' },
        { 'Asia/Yerevan', '<+04>-4' },
-       { 'Atlantic/Azores', 'AZOT1AZOST,M3.5.0/0,M10.5.0/1' },
+       { 'Atlantic/Azores', '<-01>1<+00>,M3.5.0/0,M10.5.0/1' },
        { 'Atlantic/Bermuda', 'AST4ADT,M3.2.0,M11.1.0' },
        { 'Atlantic/Canary', 'WET0WEST,M3.5.0/1,M10.5.0' },
-       { 'Atlantic/Cape Verde', 'CVT1' },
+       { 'Atlantic/Cape Verde', '<-01>1' },
        { 'Atlantic/Faroe', 'WET0WEST,M3.5.0/1,M10.5.0' },
        { 'Atlantic/Madeira', 'WET0WEST,M3.5.0/1,M10.5.0' },
        { 'Atlantic/Reykjavik', 'GMT0' },
-       { 'Atlantic/South Georgia', 'GST2' },
+       { 'Atlantic/South Georgia', '<-02>2' },
        { 'Atlantic/St Helena', 'GMT0' },
-       { 'Atlantic/Stanley', 'FKST3' },
+       { 'Atlantic/Stanley', '<-03>3' },
        { 'Australia/Adelaide', 'ACST-9:30ACDT,M10.1.0,M4.1.0/3' },
        { 'Australia/Brisbane', 'AEST-10' },
        { 'Australia/Broken Hill', 'ACST-9:30ACDT,M10.1.0,M4.1.0/3' },
        { 'Australia/Currie', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
        { 'Australia/Darwin', 'ACST-9:30' },
-       { 'Australia/Eucla', 'ACWST-8:45' },
+       { 'Australia/Eucla', '<+0845>-8:45' },
        { 'Australia/Hobart', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
        { 'Australia/Lindeman', 'AEST-10' },
-       { 'Australia/Lord Howe', 'LHST-10:30LHDT-11,M10.1.0,M4.1.0' },
+       { 'Australia/Lord Howe', '<+1030>-10:30<+11>-11,M10.1.0,M4.1.0' },
        { 'Australia/Melbourne', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
        { 'Australia/Perth', 'AWST-8' },
        { 'Australia/Sydney', 'AEST-10AEDT,M10.1.0,M4.1.0/3' },
@@ -378,53 +379,52 @@ TZ = {
        { 'Europe/Zaporozhye', 'EET-2EEST,M3.5.0/3,M10.5.0/4' },
        { 'Europe/Zurich', 'CET-1CEST,M3.5.0,M10.5.0/3' },
        { 'Indian/Antananarivo', 'EAT-3' },
-       { 'Indian/Chagos', 'IOT-6' },
-       { 'Indian/Christmas', 'CXT-7' },
-       { 'Indian/Cocos', 'CCT-6:30' },
+       { 'Indian/Chagos', '<+06>-6' },
+       { 'Indian/Christmas', '<+07>-7' },
+       { 'Indian/Cocos', '<+0630>-6:30' },
        { 'Indian/Comoro', 'EAT-3' },
        { 'Indian/Kerguelen', '<+05>-5' },
-       { 'Indian/Mahe', 'SCT-4' },
-       { 'Indian/Maldives', 'MVT-5' },
-       { 'Indian/Mauritius', 'MUT-4' },
+       { 'Indian/Mahe', '<+04>-4' },
+       { 'Indian/Maldives', '<+05>-5' },
+       { 'Indian/Mauritius', '<+04>-4' },
        { 'Indian/Mayotte', 'EAT-3' },
-       { 'Indian/Reunion', 'RET-4' },
-       { 'Pacific/Apia', 'WSST-13WSDT,M9.5.0/3,M4.1.0/4' },
+       { 'Indian/Reunion', '<+04>-4' },
+       { 'Pacific/Apia', '<+13>-13<+14>,M9.5.0/3,M4.1.0/4' },
        { 'Pacific/Auckland', 'NZST-12NZDT,M9.5.0,M4.1.0/3' },
-       { 'Pacific/Bougainville', 'BST-11' },
-       { 'Pacific/Chatham', 'CHAST-12:45CHADT,M9.5.0/2:45,M4.1.0/3:45' },
-       { 'Pacific/Chuuk', 'CHUT-10' },
-       { 'Pacific/Easter', 'EAST6EASST,M8.2.6/22,M5.2.6/22' },
-       { 'Pacific/Efate', 'VUT-11' },
-       { 'Pacific/Enderbury', 'PHOT-13' },
-       { 'Pacific/Fakaofo', 'TKT-13' },
-       { 'Pacific/Fiji', 'FJT-12FJST,M11.1.0,M1.3.0/3' },
-       { 'Pacific/Funafuti', 'TVT-12' },
-       { 'Pacific/Galapagos', 'GALT6' },
-       { 'Pacific/Gambier', 'GAMT9' },
-       { 'Pacific/Guadalcanal', 'SBT-11' },
+       { 'Pacific/Bougainville', '<+11>-11' },
+       { 'Pacific/Chatham', '<+1245>-12:45<+1345>,M9.5.0/2:45,M4.1.0/3:45' },
+       { 'Pacific/Chuuk', '<+10>-10' },
+       { 'Pacific/Easter', '<-06>6<-05>,M8.2.6/22,M5.2.6/22' },
+       { 'Pacific/Efate', '<+11>-11' },
+       { 'Pacific/Enderbury', '<+13>-13' },
+       { 'Pacific/Fakaofo', '<+13>-13' },
+       { 'Pacific/Fiji', '<+12>-12<+13>,M11.1.0,M1.3.0/3' },
+       { 'Pacific/Funafuti', '<+12>-12' },
+       { 'Pacific/Galapagos', '<-06>6' },
+       { 'Pacific/Gambier', '<-09>9' },
+       { 'Pacific/Guadalcanal', '<+11>-11' },
        { 'Pacific/Guam', 'ChST-10' },
        { 'Pacific/Honolulu', 'HST10' },
-       { 'Pacific/Johnston', 'HST10' },
-       { 'Pacific/Kiritimati', 'LINT-14' },
-       { 'Pacific/Kosrae', 'KOST-11' },
-       { 'Pacific/Kwajalein', 'MHT-12' },
-       { 'Pacific/Majuro', 'MHT-12' },
-       { 'Pacific/Marquesas', 'MART9:30' },
+       { 'Pacific/Kiritimati', '<+14>-14' },
+       { 'Pacific/Kosrae', '<+11>-11' },
+       { 'Pacific/Kwajalein', '<+12>-12' },
+       { 'Pacific/Majuro', '<+12>-12' },
+       { 'Pacific/Marquesas', '<-0930>9:30' },
        { 'Pacific/Midway', 'SST11' },
-       { 'Pacific/Nauru', 'NRT-12' },
-       { 'Pacific/Niue', 'NUT11' },
-       { 'Pacific/Norfolk', 'NFT-11' },
-       { 'Pacific/Noumea', 'NCT-11' },
+       { 'Pacific/Nauru', '<+12>-12' },
+       { 'Pacific/Niue', '<-11>11' },
+       { 'Pacific/Norfolk', '<+11>-11' },
+       { 'Pacific/Noumea', '<+11>-11' },
        { 'Pacific/Pago Pago', 'SST11' },
-       { 'Pacific/Palau', 'PWT-9' },
-       { 'Pacific/Pitcairn', 'PST8' },
-       { 'Pacific/Pohnpei', 'PONT-11' },
-       { 'Pacific/Port Moresby', 'PGT-10' },
-       { 'Pacific/Rarotonga', 'CKT10' },
+       { 'Pacific/Palau', '<+09>-9' },
+       { 'Pacific/Pitcairn', '<-08>8' },
+       { 'Pacific/Pohnpei', '<+11>-11' },
+       { 'Pacific/Port Moresby', '<+10>-10' },
+       { 'Pacific/Rarotonga', '<-10>10' },
        { 'Pacific/Saipan', 'ChST-10' },
-       { 'Pacific/Tahiti', 'TAHT10' },
-       { 'Pacific/Tarawa', 'GILT-12' },
+       { 'Pacific/Tahiti', '<-10>10' },
+       { 'Pacific/Tarawa', '<+12>-12' },
        { 'Pacific/Tongatapu', '<+13>-13<+14>,M11.1.0,M1.3.0/3' },
-       { 'Pacific/Wake', 'WAKT-12' },
-       { 'Pacific/Wallis', 'WFT-12' },
+       { 'Pacific/Wake', '<+12>-12' },
+       { 'Pacific/Wallis', '<+12>-12' },
 }
index e5da7c6..cf5afeb 100644 (file)
@@ -16,123 +16,30 @@ OFFSET = {
        akst  = -32400, -- AKST
        akdt  = -28800, -- AKDT
        ast   = -14400, -- AST
-       brt   = -10800, -- BRT
-       art   = -10800, -- ART
-       pyt   = -14400, -- PYT
-       pyst  = -10800, -- PYST
        est   = -18000, -- EST
        cst   = -21600, -- CST
        cdt   = -18000, -- CDT
-       amt   = -14400, -- AMT
-       cot   = -18000, -- COT
        mst   = -25200, -- MST
        mdt   = -21600, -- MDT
-       vet   = -14400, -- VET
-       gft   = -10800, -- GFT
        pst   = -28800, -- PST
        pdt   = -25200, -- PDT
-       act   = -18000, -- ACT
-       wgt   = -10800, -- WGT
-       wgst  =  -7200, -- WGST
-       ect   = -18000, -- ECT
-       gyt   = -14400, -- GYT
-       bot   = -14400, -- BOT
-       pet   = -18000, -- PET
-       pmst  = -10800, -- PMST
-       pmdt  =  -7200, -- PMDT
-       uyt   = -10800, -- UYT
-       fnt   =  -7200, -- FNT
-       srt   = -10800, -- SRT
-       clt   = -14400, -- CLT
-       clst  = -10800, -- CLST
-       egt   =  -3600, -- EGT
-       egst  =      0, -- EGST
        nst   = -12600, -- NST
        ndt   =  -9000, -- NDT
-       mist  =  39600, -- MIST
        nzst  =  43200, -- NZST
        nzdt  =  46800, -- NZDT
-       ict   =  25200, -- ICT
-       bnt   =  28800, -- BNT
-       chot  =  28800, -- CHOT
-       chost =  32400, -- CHOST
-       bdt   =  21600, -- BDT
-       tlt   =  32400, -- TLT
-       gst   =  14400, -- GST
        hkt   =  28800, -- HKT
-       hovt  =  25200, -- HOVT
-       hovst =  28800, -- HOVST
        wib   =  25200, -- WIB
        wit   =  32400, -- WIT
        ist   =   7200, -- IST
        idt   =  10800, -- IDT
-       aft   =  16200, -- AFT
        pkt   =  18000, -- PKT
-       npt   =  20700, -- NPT
-       myt   =  28800, -- MYT
        wita  =  28800, -- WITA
-       pht   =  28800, -- PHT
        kst   =  30600, -- KST
-       sgt   =  28800, -- SGT
-       irst  =  12600, -- IRST
-       irdt  =  16200, -- IRDT
-       btt   =  21600, -- BTT
        jst   =  32400, -- JST
-       ulat  =  28800, -- ULAT
-       ulast =  32400, -- ULAST
-       xjt   =  21600, -- XJT
-       mmt   =  23400, -- MMT
-       azot  =  -3600, -- AZOT
-       azost =      0, -- AZOST
-       cvt   =  -3600, -- CVT
-       fkst  = -10800, -- FKST
        acst  =  34200, -- ACST
        acdt  =  37800, -- ACDT
        aest  =  36000, -- AEST
-       acwst =  31500, -- ACWST
-       lhst  =  37800, -- LHST
-       lhdt  =  39600, -- LHDT
        awst  =  28800, -- AWST
        msk   =  10800, -- MSK
-       iot   =  21600, -- IOT
-       cxt   =  25200, -- CXT
-       cct   =  23400, -- CCT
-       sct   =  14400, -- SCT
-       mvt   =  18000, -- MVT
-       mut   =  14400, -- MUT
-       ret   =  14400, -- RET
-       wsst  =  46800, -- WSST
-       wsdt  =  50400, -- WSDT
-       bst   =  39600, -- BST
-       chast =  45900, -- CHAST
-       chadt =  49500, -- CHADT
-       chut  =  36000, -- CHUT
-       east  = -21600, -- EAST
-       easst = -18000, -- EASST
-       vut   =  39600, -- VUT
-       phot  =  46800, -- PHOT
-       tkt   =  46800, -- TKT
-       fjt   =  43200, -- FJT
-       fjst  =  46800, -- FJST
-       tvt   =  43200, -- TVT
-       galt  = -21600, -- GALT
-       gamt  = -32400, -- GAMT
-       sbt   =  39600, -- SBT
-       lint  =  50400, -- LINT
-       kost  =  39600, -- KOST
-       mht   =  43200, -- MHT
-       mart  = -34200, -- MART
        sst   = -39600, -- SST
-       nrt   =  43200, -- NRT
-       nut   = -39600, -- NUT
-       nft   =  39600, -- NFT
-       nct   =  39600, -- NCT
-       pwt   =  32400, -- PWT
-       pont  =  39600, -- PONT
-       pgt   =  36000, -- PGT
-       ckt   = -36000, -- CKT
-       taht  = -36000, -- TAHT
-       gilt  =  43200, -- GILT
-       wakt  =  43200, -- WAKT
-       wft   =  43200, -- WFT
 }
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 8273175..106810a 100644 (file)
@@ -96,7 +96,7 @@ function iface_get_network(iface)
                        if net.l3_device == iface or net.device == iface then
                                -- cross check with uci to filter out @name style aliases
                                local uciname = cur:get("network", net.interface, "ifname")
-                               if not uciname or uciname:sub(1, 1) ~= "@" then
+                               if type(uciname) == "string" and uciname:sub(1,1) ~= "@" or uciname then
                                        return net.interface
                                end
                        end
index b3b4540..5cb3151 100644 (file)
@@ -28,6 +28,7 @@
        <% if self.allowlocal then %>
        <li style="padding:0.5em">
                <input class="cbi-input-radio" data-update="click change"<%=attr("type", self.widget or "radio") .. attr("id", cbid .. "_empty") .. attr("name", cbid) .. attr("value", "") .. ifattr(checked[""], "checked", "checked")%> /> &#160;
+               <label<%=attr("for", cbid .. "_empty")%>></label>
                <label<%=attr("for", cbid .. "_empty")%> style="background-color:<%=fwm.zone.get_color()%>" class="zonebadge">
                        <strong><%:Device%></strong>
                        <% if self.allowany and self.allowlocal then %>(<%:input%>)<% end %>
@@ -37,6 +38,7 @@
        <% if self.allowany then %>
        <li style="padding:0.5em">
                <input class="cbi-input-radio" data-update="click change"<%=attr("type", self.widget or "radio") .. attr("id", cbid .. "_any") .. attr("name", cbid) .. attr("value", "*") .. ifattr(checked["*"], "checked", "checked")%> /> &#160;
+               <label<%=attr("for", cbid .. "_any")%>></label>
                <label<%=attr("for", cbid .. "_any")%> style="background-color:<%=fwm.zone.get_color()%>" class="zonebadge">
                        <strong><%:Any zone%></strong>
                        <% if self.allowany and self.allowlocal then %>(<%:forward%>)<% end %>
@@ -50,6 +52,7 @@
        %>
        <li style="padding:0.5em">
                <input class="cbi-input-radio" data-update="click change"<%=attr("type", self.widget or "radio") .. attr("id", cbid .. "." .. zone:name()) .. attr("name", cbid) .. attr("value", zone:name()) .. ifattr(checked[zone:name()], "checked", "checked")%> /> &#160;
+               <label<%=attr("for", cbid .. "." .. zone:name())%>></label>
                <label<%=attr("for", cbid .. "." .. zone:name())%> style="background-color:<%=zone:get_color()%>" class="zonebadge">
                        <strong><%=zone:name()%>:</strong>
                        <%
@@ -78,6 +81,7 @@
        <% if self.widget ~= "checkbox" and not self.nocreate then %>
        <li style="padding:0.5em">
                <input class="cbi-input-radio" data-update="click change" type="radio"<%=attr("id", cbid .. "_new") .. attr("name", cbid) .. attr("value", "-") .. ifattr(not selected, "checked", "checked")%> /> &#160;
+               <label<%=attr("for", cbid .. "_new")%>></label>
                <div onclick="document.getElementById('<%=cbid%>_new').checked=true" class="zonebadge" style="background-color:<%=fwm.zone.get_color()%>">
                        <em><%:unspecified -or- create:%>&#160;</em>
                        <input type="text"<%=attr("name", cbid .. ".newzone") .. ifattr(not selected, "value", luci.http.formvalue(cbid .. ".newzone") or self.default)%> onfocus="document.getElementById('<%=cbid%>_new').checked=true" />
index 5eddcf2..197d03c 100644 (file)
@@ -6,4 +6,5 @@
                attr("id", cbid) .. attr("name", cbid) .. attr("value", self.enabled or 1) ..
                ifattr((self:cfgvalue(section) or self.default) == self.enabled, "checked", "checked")
        %> />
+       <label<%= attr("for", cbid)%>></label>
 <%+cbi/valuefooter%>
index 99f456d..34d02ee 100644 (file)
        <div>
                <% for i, key in pairs(self.keylist) do %>
                        <label<%=
-                               attr("id", cbid.."-"..key) ..
                                attr("data-index", i) ..
                                attr("data-depends", self:deplist2json(section, self.deplist[i]))
                        %>>
                                <input class="cbi-input-radio" data-update="click change" type="radio"<%=
+                                       attr("id", cbid.."-"..key) ..
                                        attr("name", cbid) ..
                                        attr("value", key) ..
                                        ifattr((self:cfgvalue(section) or self.default) == key, "checked", "checked")
                                %> />
+                               <label<%= attr("for", cbid.."-"..key)%>></label>
                                <%=pcdata(self.vallist[i])%>
                        </label>
                        <% if i == self.size then write(br) end %>
index ca7b94c..db17450 100644 (file)
        <div>
                <% for i, key in pairs(self.keylist) do %>
                        <label<%=
-                               attr("id", cbid.."-"..key) ..
                                attr("data-index", i) ..
                                attr("data-depends", self:deplist2json(section, self.deplist[i]))
                        %>>
                                <input class="cbi-input-checkbox" type="checkbox" data-update="click change"<%=
+                                       attr("id", cbid.."-"..key) ..
                                        attr("name", cbid) ..
                                        attr("value", key) ..
                                        ifattr(luci.util.contains(v, key), "checked", "checked")
                                %> />
+                               <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 db61129..62dbde7 100644 (file)
                        attr("id", cbid .. "." .. iface:name()) ..
                        attr("name", cbid) .. attr("value", iface:name()) ..
                        ifattr(checked[iface:name()], "checked", "checked")
-               %> /> &#160;
+               %> />
+               <%- if not self.widget or self.widget == "checkbox" or self.widget == "radio" then -%>
+                       <label<%=attr("for", cbid .. "." .. iface:name())%>></label>
+               <%- end -%>
+               &#160;
                <label<%=attr("for", cbid .. "." .. iface:name())%>>
                        <% if link then -%><a href="<%=link%>"><% end -%>
                        <img<%=attr("title", iface:get_i18n())%> style="width:16px; height:16px; vertical-align:middle" src="<%=resource%>/icons/<%=iface:type()%><%=iface:is_up() and "" or "_disabled"%>.png" />
                        attr("id", cbid .. "_custom") ..
                        attr("name", cbid) ..
                        attr("value", " ")
-               %> /> &#160;
+               %> />
+               <%- if not self.widget or self.widget == "checkbox" or self.widget == "radio" then -%>
+                       <label<%=attr("for", cbid .. "_custom")%>></label>
+               <%- end -%>
+               &#160;
                <label<%=attr("for", cbid .. "_custom")%>>
                        <img title="<%:Custom Interface%>" style="width:16px; height:16px; vertical-align:middle" src="<%=resource%>/icons/ethernet_disabled.png" />
                        <%:Custom Interface%>:
index f8a2b72..8bf1a70 100644 (file)
@@ -52,6 +52,9 @@
        <% if not self.nocreate then %>
        <li style="padding:0.25em 0">
                <input class="cbi-input-<%=self.widget or "radio"%>" data-update="click change"<%=attr("type", self.widget or "radio") .. attr("id", cbid .. "_new") .. attr("name", cbid) .. attr("value", "-") .. ifattr(not value and self.widget ~= "checkbox", "checked", "checked")%> /> &#160;
+               <%- if not self.widget or self.widget == "checkbox" or self.widget == "radio" then -%>
+                       <label<%=attr("for", cbid .. "_new")%>></label>
+               <%- end -%>
                <div style="padding:0.5em; display:inline">
                        <label<%=attr("for", cbid .. "_new")%>><em>
                                <%- if self.widget == "checkbox" then -%>
index 3012e8e..186aa21 100644 (file)
@@ -43,18 +43,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -143,9 +170,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Suport AR"
-
 msgid "ARP retry threshold"
 msgstr "Llindar de reintent ARP"
 
@@ -281,6 +305,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr "Permet respostes del rang 127.0.0.0/8, p.e. per serveis RBL"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -289,9 +316,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -387,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 ""
 
@@ -399,6 +420,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Autenticació"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Autoritzada"
 
@@ -466,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"
 
@@ -496,9 +517,15 @@ msgstr ""
 "en els fitxers de configuració canviats i marcats per l'opkg, fitxers base "
 "essencials i els patrons de còpia de seguretat definits per l'usuari."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Velocitat de bits"
 
@@ -567,6 +594,9 @@ msgstr "Comprovació"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Suma de verificació"
 
@@ -623,9 +653,6 @@ msgstr "Ordre"
 msgid "Common Configuration"
 msgstr "Configuració comuna"
 
-msgid "Compression"
-msgstr "Compressió"
-
 msgid "Configuration"
 msgstr "Configuració"
 
@@ -843,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"
 
@@ -887,15 +914,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr ""
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -966,6 +993,9 @@ msgstr "Habilita l'<abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr ""
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Habilita negociació IPv6 en la enllaç PPP"
 
@@ -996,6 +1026,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr ""
 
@@ -1008,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"
 
@@ -1017,6 +1055,12 @@ msgstr "Mode d'encapsulació"
 msgid "Encryption"
 msgstr "Encriptació"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Esborrant..."
 
@@ -1048,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 ""
 
@@ -1060,9 +1110,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Fast Frames"
-
 msgid "File"
 msgstr "Fitxer"
 
@@ -1098,6 +1145,9 @@ msgstr "Acaba"
 msgid "Firewall"
 msgstr "Tallafocs"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Ajusts de tallafocs"
 
@@ -1143,6 +1193,9 @@ msgstr "Força el TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Força el TKIP i el CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1173,6 +1226,11 @@ msgstr "Lliures"
 msgid "Free space"
 msgstr "Espai lliure"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "GHz"
 
@@ -1232,6 +1290,9 @@ msgstr "Contrasenya de HE.net"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr ""
 
@@ -1290,6 +1351,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Adreça IP"
 
@@ -1332,6 +1396,9 @@ msgstr "Longitud de prefix IPv4"
 msgid "IPv4-Address"
 msgstr "Adreça IPv6"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1380,6 +1447,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Adreça IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-en-IPv4 (RFC4213)"
 
@@ -1525,6 +1595,9 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "Usuari i/o contrasenya invàlids! Si us plau prova-ho de nou."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1533,7 +1606,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"
@@ -1646,6 +1719,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 ""
 
@@ -1658,6 +1747,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1775,9 +1867,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 ""
 
@@ -1813,9 +1902,6 @@ msgstr "Ús de Memòria (%)"
 msgid "Metric"
 msgstr "Mètric"
 
-msgid "Minimum Rate"
-msgstr "Velocitat mínima"
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1828,6 +1914,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"
 
@@ -1886,9 +1975,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"
 
@@ -1901,6 +1987,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2081,12 +2170,50 @@ msgstr "Opció canviada"
 msgid "Option removed"
 msgstr "Opció treta"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Opcions"
 
@@ -2099,9 +2226,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr "Sortint:"
 
-msgid "Outdoor Channels"
-msgstr "Canals d'exteriors"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2111,6 +2235,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2143,6 +2273,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2227,6 +2360,9 @@ msgstr "Màxim:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2236,6 +2372,9 @@ msgstr "Executa un reinici"
 msgid "Perform reset"
 msgstr "Executa un reinici"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Velocitat física:"
 
@@ -2266,6 +2405,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2280,6 +2431,9 @@ msgstr "Evita la comunicació client a client"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "continua"
 
@@ -2313,12 +2467,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Calidad"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2400,6 +2566,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2418,6 +2587,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"
 
@@ -2427,9 +2599,6 @@ msgstr "Reconnectant la interfície"
 msgid "References"
 msgstr "Referències"
 
-msgid "Regulatory Domain"
-msgstr "Domini regulatori"
-
 msgid "Relay"
 msgstr "Relé"
 
@@ -2445,6 +2614,9 @@ msgstr "Pont de relé"
 msgid "Remote IPv4 address"
 msgstr "Adreça IPv6 remota"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Treu"
 
@@ -2466,9 +2638,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2513,6 +2705,12 @@ msgstr "Directori arrel dels fitxers servits per TFTP"
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2602,9 +2800,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Clients separats"
 
-msgid "Separate WDS"
-msgstr "WDS separat"
-
 msgid "Server Settings"
 msgstr "Ajusts de servidor"
 
@@ -2628,6 +2823,11 @@ msgstr "Tipus de servei"
 msgid "Services"
 msgstr "Serveis"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Sincronització de hora"
@@ -2694,8 +2894,8 @@ msgstr "Tristament, el servidor ha encontrat un error inesperat."
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2726,6 +2926,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Especifiqueu el clau de xifració secret aquí."
 
@@ -2750,9 +2963,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"
 
@@ -2871,6 +3081,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2935,6 +3149,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr "La longitud del prefix IPv6 en bits"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3139,9 +3356,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Mode Turbo"
-
 msgid "Tx-Power"
 msgstr "Potència Tx"
 
@@ -3160,6 +3374,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Dispositiu USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3192,8 +3409,8 @@ msgstr "Actualitza les llistes"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3261,6 +3478,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 ""
 
@@ -3371,6 +3593,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Sense fils"
 
@@ -3410,9 +3635,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 "
@@ -3424,9 +3646,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 ""
@@ -3518,6 +3740,9 @@ msgstr "fitxer <abbr title=\"Domain Name System\">DNS</abbr> local"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3572,6 +3797,9 @@ msgstr ""
 msgid "tagged"
 msgstr "etiquetat"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "desconegut"
 
@@ -3593,6 +3821,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 082f0bb..200ec59 100644 (file)
@@ -41,18 +41,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -140,9 +167,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Podpora AR"
-
 msgid "ARP retry threshold"
 msgstr "ARP limit opakování"
 
@@ -281,6 +305,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr "Povolit upstream odpovědi na 127.0.0.0/8 rozsah, např. pro RBL služby"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -289,9 +316,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -387,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 ""
 
@@ -399,6 +420,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Autentizace"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Autoritativní"
 
@@ -465,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"
 
@@ -495,9 +516,15 @@ msgstr ""
 "souborů označených opkg, nezbyných systémových souborů a souborů "
 "vyhovujících uživatelem určeným vzorům."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Přenosová rychlost"
 
@@ -566,6 +593,9 @@ msgstr "Kontrola"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Kontrolní součet"
 
@@ -627,9 +657,6 @@ msgstr "Příkaz"
 msgid "Common Configuration"
 msgstr "Společná nastavení"
 
-msgid "Compression"
-msgstr "Komprese"
-
 msgid "Configuration"
 msgstr "Nastavení"
 
@@ -849,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"
 
@@ -895,15 +922,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr "Whitelist domén"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -976,6 +1003,9 @@ msgstr "Povolit <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Povolit dynamickou aktualizaci koncového bodu HE.net"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Na PPP spoji povolit vyjednání IPv6"
 
@@ -1006,6 +1036,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Povolit tento přípojný bod"
 
@@ -1018,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"
 
@@ -1027,6 +1065,12 @@ msgstr "Režim zapouzdření"
 msgid "Encryption"
 msgstr "Šifrování"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Odstraňování..."
 
@@ -1060,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"
 
@@ -1072,9 +1122,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Rychlé rámce"
-
 msgid "File"
 msgstr "Soubor"
 
@@ -1110,6 +1157,9 @@ msgstr "Dokončit"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Nastavení firewallu"
 
@@ -1155,6 +1205,9 @@ msgstr "Vynutit TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Vynutit TKIP a CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1185,6 +1238,11 @@ msgstr "Volné"
 msgid "Free space"
 msgstr "Volné místo"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "GHz"
 
@@ -1242,6 +1300,9 @@ msgstr "Heslo HE.net"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Handler"
 
@@ -1301,6 +1362,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP adresy"
 
@@ -1343,6 +1407,9 @@ msgstr "Délka IPv4 prefixu"
 msgid "IPv4-Address"
 msgstr "IPv4 adresa"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1391,6 +1458,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6 adresa"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1538,6 +1608,9 @@ msgstr "Uvedené VLAN ID je neplatné! Každé ID musí být jedinečné"
 msgid "Invalid username and/or password! Please try again."
 msgstr "Špatné uživatelské jméno a/nebo heslo! Prosím zkuste to znovu."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1546,7 +1619,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"
@@ -1661,6 +1734,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 ""
 
@@ -1673,6 +1762,9 @@ msgstr "Seznam hostitelů, kteří udávají falešné hodnoty NX domén"
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 "Poslouchat pouze na daném rozhraní, nebo pokud není specifikováno, na všech"
@@ -1797,9 +1889,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"
 
@@ -1835,9 +1924,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"
 
@@ -1850,6 +1936,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"
 
@@ -1908,9 +1997,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í"
 
@@ -1923,6 +2009,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2102,12 +2191,50 @@ 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 ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Možnosti"
 
@@ -2120,9 +2247,6 @@ msgstr "Ven"
 msgid "Outbound:"
 msgstr "Odchozí:"
 
-msgid "Outdoor Channels"
-msgstr "Venkovní kanály"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2132,6 +2256,12 @@ msgstr "Přepsat MAC adresu"
 msgid "Override MTU"
 msgstr "Přepsat MTU"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2166,6 +2296,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2250,6 +2383,9 @@ msgstr "Špička:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2259,6 +2395,9 @@ msgstr "Provést restart"
 msgid "Perform reset"
 msgstr "Provést reset"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Fyzická rychlost:"
 
@@ -2289,6 +2428,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2305,6 +2456,9 @@ msgstr "Zabraňuje komunikaci klient-klient"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Prism2/2.5/3 802.11b Wireless Controller"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Pokračovat"
 
@@ -2338,12 +2492,24 @@ msgstr "Poskytování nové sítě"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Kvalita"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2438,6 +2604,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"
 
@@ -2456,6 +2625,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í"
 
@@ -2465,9 +2637,6 @@ msgstr "Přepojuji rozhraní"
 msgid "References"
 msgstr "Reference"
 
-msgid "Regulatory Domain"
-msgstr "Doména regulátora"
-
 msgid "Relay"
 msgstr "Přenos"
 
@@ -2483,6 +2652,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr "Vzdálená IPv4 adresa"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Odstranit"
 
@@ -2504,10 +2676,30 @@ 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"
 
+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 ""
+"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 "
 "come from unsigned domains"
@@ -2552,6 +2744,12 @@ msgstr "Kořenový adresář souborů, přístupných přes TFTP"
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2642,9 +2840,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Oddělovat klienty"
 
-msgid "Separate WDS"
-msgstr "Oddělovat WDS"
-
 msgid "Server Settings"
 msgstr "Nastavení serveru"
 
@@ -2668,6 +2863,11 @@ msgstr "Typ služby"
 msgid "Services"
 msgstr "Služby"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Nastavit synchronizaci času"
@@ -2732,15 +2932,14 @@ msgstr "Omlouváme se, ale požadovaný objekt nebyl nalezen."
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "Omlouváme se, na serveru došlo k neočekávané vyjímce."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "Omlouváme se, ale v tomto zařízení není přítomná podpora pro upgrade "
 "systému. Nový obraz firmwaru musí být zapsán ručně. Prosím, obraťte se na "
-"OpenWRT wiki pro zařízení specifické instalační instrukce."
+"wiki pro zařízení specifické instalační instrukce."
 
 msgid "Sort"
 msgstr "Seřadit"
@@ -2772,6 +2971,19 @@ msgid ""
 "dead"
 msgstr "Určuje počet sekund, po kterém je hostitel považovám za mrtvého"
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Zde nastavte soukromý šifrovací klíč."
 
@@ -2796,9 +3008,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"
 
@@ -2808,7 +3017,7 @@ msgid ""
 "configurations where only hosts with a corresponding lease are served."
 msgstr ""
 "Statické zápůjčky se používají pro přiřazení fixních IP adres a symbolických "
-"jmen DHCP klientům. Jsou také vyžadvány pro nedynamické konfigurace "
+"jmen DHCP klientům. Jsou také vyžadovány pro nedynamické konfigurace "
 "rozhraní, kde jsou povoleni pouze hosté s odpovídajícím nastavením."
 
 msgid "Status"
@@ -2824,7 +3033,7 @@ msgid "Submit"
 msgstr "Odeslat"
 
 msgid "Suppress logging"
-msgstr ""
+msgstr "Potlačit logování"
 
 msgid "Suppress logging of the routine operation of these protocols"
 msgstr ""
@@ -2926,6 +3135,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr "IPv6 prefix přidělený poskytovatelm většinou končí  <code>::</code>"
 
@@ -2992,6 +3205,9 @@ msgstr "Délka IPv4 prefixu v bitech, zbytek se používá v IPv6 adresách"
 msgid "The length of the IPv6 prefix in bits"
 msgstr "Délka IPv6 prefixu v bitech"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3104,8 +3320,8 @@ msgid ""
 "This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
 "abbr> in the local network"
 msgstr ""
-"Toto je jedný <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>v mistní síti"
+"Toto je jediný <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
+"abbr> v mistní síti"
 
 msgid "This is the plain username for logging into the account"
 msgstr ""
@@ -3206,9 +3422,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbo mód"
-
 msgid "Tx-Power"
 msgstr "Tx-Power"
 
@@ -3227,6 +3440,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB zařízení"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3259,12 +3475,12 @@ msgstr "Aktualizovat seznamy"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Nahrát obraz pro upgrade systému, jímž bude přepsán běžící firmware. "
 "Zkontrolujte \"Keep settings\" za účelem udržení aktuální konfigurace "
-"(vyžaduje obraz OpenWrt kompatabilního firmwaru)."
+"(vyžaduje obraz kompatabilního firmwaru)."
 
 msgid "Upload archive..."
 msgstr "Nahrát archiv..."
@@ -3334,6 +3550,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 ""
 
@@ -3444,6 +3665,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Bezdrátová síť"
 
@@ -3483,9 +3707,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 "
@@ -3496,9 +3717,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 "
@@ -3588,6 +3809,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 ""
 
@@ -3642,6 +3866,9 @@ msgstr ""
 msgid "tagged"
 msgstr "označený"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "neznámý"
 
@@ -3663,6 +3890,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 2fe3b80..d30cd2f 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"
@@ -43,18 +43,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -141,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"
 
@@ -247,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"
@@ -280,6 +306,9 @@ msgstr ""
 "Dies erlaubt DNS-Antworten im 127.0.0.0/8 Bereich der z.B. für RBL Dienste "
 "genutzt wird"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -288,9 +317,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -386,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 ""
 
@@ -398,6 +421,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Authentifizierung"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Authoritativ"
 
@@ -464,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"
 
@@ -495,9 +518,15 @@ msgstr ""
 "markierten Konfigurationsdateien. Des Weiteren sind die durch "
 "benutzerdefinierte Dateiemuster betroffenen Dateien enthalten."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Bitrate"
 
@@ -566,6 +595,9 @@ msgstr "Prüfen"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Prüfsumme"
 
@@ -624,9 +656,6 @@ msgstr "Befehl"
 msgid "Common Configuration"
 msgstr "Allgemeine Konfiguration"
 
-msgid "Compression"
-msgstr "Kompression"
-
 msgid "Configuration"
 msgstr "Konfiguration"
 
@@ -844,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"
 
@@ -893,15 +922,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr "Domain-Whitelist"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -971,6 +1000,9 @@ msgstr "<abbr title=\"Spanning Tree Protocol\">STP</abbr> aktivieren"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Dynamisches HE.net IP-Adress-Update aktivieren"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Aushandeln von IPv6-Adressen auf der PPP-Verbindung aktivieren"
 
@@ -1001,6 +1033,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Diesen Mountpunkt aktivieren"
 
@@ -1013,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"
 
@@ -1022,6 +1062,12 @@ msgstr "Kapselung"
 msgid "Encryption"
 msgstr "Verschlüsselung"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Lösche..."
 
@@ -1056,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"
 
@@ -1068,9 +1120,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Schnelle Frames"
-
 msgid "File"
 msgstr "Datei"
 
@@ -1106,6 +1155,9 @@ msgstr "Fertigstellen"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Firewall Einstellungen"
 
@@ -1153,6 +1205,9 @@ msgstr "Erzwinge TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Erzwinge TKIP und CCMP (AES)"
 
+msgid "Force link"
+msgstr "Erzwinge Verbindung"
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1183,6 +1238,11 @@ msgstr "Frei"
 msgid "Free space"
 msgstr "Freier Platz"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "GHz"
 
@@ -1242,6 +1302,9 @@ msgstr "HE.net Passwort"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Handler"
 
@@ -1300,6 +1363,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP-Adresse"
 
@@ -1342,6 +1408,9 @@ msgstr "Länge des IPv4 Präfix"
 msgid "IPv4-Address"
 msgstr "IPv4-Adresse"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1390,6 +1459,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-Adresse"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1538,6 +1610,9 @@ msgid "Invalid username and/or password! Please try again."
 msgstr ""
 "Ungültiger Benutzername oder ungültiges Passwort! Bitte erneut versuchen. "
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1546,8 +1621,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"
@@ -1661,6 +1736,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 ""
 
@@ -1673,6 +1764,9 @@ msgstr "Liste von Servern die falsche \"NX Domain\" Antworten liefern"
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 "Nur auf die gegebene Schnittstelle reagieren, nutze alle wenn nicht "
@@ -1800,9 +1894,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"
 
@@ -1838,9 +1929,6 @@ msgstr "Speichernutzung (%)"
 msgid "Metric"
 msgstr "Metrik"
 
-msgid "Minimum Rate"
-msgstr "Mindestübertragungsrate"
-
 msgid "Minimum hold time"
 msgstr "Minimalzeit zum Halten der Verbindung"
 
@@ -1853,6 +1941,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Erweiterung für Protokoll %q fehlt"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Modus"
 
@@ -1911,9 +2002,6 @@ msgstr "Nach unten schieben"
 msgid "Move up"
 msgstr "Nach oben schieben"
 
-msgid "Multicast Rate"
-msgstr "Multicastrate"
-
 msgid "Multicast address"
 msgstr "Multicast-Adresse"
 
@@ -1926,6 +2014,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2107,12 +2198,50 @@ msgstr "Option geändert"
 msgid "Option removed"
 msgstr "Option entfernt"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Optionen"
 
@@ -2125,9 +2254,6 @@ msgstr "Aus"
 msgid "Outbound:"
 msgstr "Ausgehend:"
 
-msgid "Outdoor Channels"
-msgstr "Funkkanal für den Ausseneinsatz"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2137,6 +2263,12 @@ msgstr "MAC-Adresse überschreiben"
 msgid "Override MTU"
 msgstr "MTU-Wert überschreiben"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2171,6 +2303,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2255,6 +2390,9 @@ msgstr "Spitze:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2264,6 +2402,9 @@ msgstr "Neustart durchführen"
 msgid "Perform reset"
 msgstr "Reset durchführen"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Phy-Rate:"
 
@@ -2294,6 +2435,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2310,6 +2463,9 @@ msgstr "Unterbindet Client-Client-Verkehr"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Prism2/2.5/3 802.11b W-LAN Adapter"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Fortfahren"
 
@@ -2343,12 +2499,24 @@ msgstr "Neues Netzwerk anbieten"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Qualität"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2444,6 +2612,9 @@ msgstr "Echtzeitverkehr"
 msgid "Realtime Wireless"
 msgstr "Echtzeit-WLAN-Signal"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "DNS-Rebind-Schutz"
 
@@ -2462,6 +2633,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"
 
@@ -2471,9 +2645,6 @@ msgstr "Verbinde Schnittstelle neu"
 msgid "References"
 msgstr "Verweise"
 
-msgid "Regulatory Domain"
-msgstr "Geltungsbereich (Regulatory Domain)"
-
 msgid "Relay"
 msgstr "Relay"
 
@@ -2489,6 +2660,9 @@ msgstr "Relay-Brücke"
 msgid "Remote IPv4 address"
 msgstr "Entfernte IPv4-Adresse"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Entfernen"
 
@@ -2510,10 +2684,30 @@ 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"
 
+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 ""
+"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 "
 "come from unsigned domains"
@@ -2558,6 +2752,12 @@ msgstr "Wurzelverzeichnis für über TFTP ausgelieferte Dateien "
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2649,9 +2849,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Clients isolieren"
 
-msgid "Separate WDS"
-msgstr "Separates WDS"
-
 msgid "Server Settings"
 msgstr "Servereinstellungen"
 
@@ -2675,6 +2872,14 @@ msgstr "Service-Typ"
 msgid "Services"
 msgstr "Dienste"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+"Schnittstelleneigenschaften werden unabhängig vom Link gesetzt (ist die "
+"Option ausgewählt, so werden die Hotplug-Skripte bei Änderung nicht "
+"aufgerufen)"
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Zeitsynchronisierung einrichten"
@@ -2740,15 +2945,14 @@ msgid "Sorry, the server encountered an unexpected error."
 msgstr ""
 "Entschuldigung, auf dem Server ist ein unerwarteter Fehler aufgetreten."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "Aufgrund des fehlenden sysupgrade-Supports muss die neue Firmware manuell "
-"geflasht werden. Weitere  Informationen sowie gerätespezifische "
-"Installationsanleitungen entnehmen Sie bitte dem OpenWrt Wiki."
+"geflasht werden. Weitere Informationen sowie gerätespezifische "
+"Installationsanleitungen entnehmen Sie bitte dem Wiki."
 
 msgid "Sort"
 msgstr "Sortieren"
@@ -2782,6 +2986,19 @@ msgstr ""
 "Spezifiziert die maximale Anzahl an Sekunde nach denen Hoss als tot erachtet "
 "werden"
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Geben Sie hier den geheimen Netzwerkschlüssel an"
 
@@ -2806,9 +3023,6 @@ msgstr "Statische Einträge"
 msgid "Static Routes"
 msgstr "Statische Routen"
 
-msgid "Static WDS"
-msgstr "Statisches WDS"
-
 msgid "Static address"
 msgstr "Statische Adresse"
 
@@ -2835,10 +3049,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 ""
@@ -2938,6 +3153,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 "Vom Provider zugewiesener IPv6 Präfix, endet normalerweise mit <code>::</"
@@ -3004,6 +3223,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr "Länge des IPv6 Präfix in Bits"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3229,9 +3451,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbo Modus"
-
 msgid "Tx-Power"
 msgstr "Sendestärke"
 
@@ -3250,6 +3469,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB-Gerät"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3282,8 +3504,8 @@ msgstr "Listen aktualisieren"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Zum Ersetzen der aktuellen Firmware kann hier ein sysupgrade-Kompatibles "
 "Image hochgeladen werden. Wenn die vorhandene Konfiguration auch nach dem "
@@ -3358,6 +3580,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 ""
 
@@ -3468,6 +3695,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "WLAN"
 
@@ -3507,9 +3737,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 "
@@ -3521,9 +3748,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 ""
@@ -3612,6 +3839,9 @@ msgstr "Lokale DNS-Datei"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3666,6 +3896,9 @@ msgstr ""
 msgid "tagged"
 msgstr "tagged"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "unbekannt"
 
@@ -3687,6 +3920,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 0d35022..dc8c331 100644 (file)
@@ -43,18 +43,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -143,9 +170,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Υποστήριξη AR"
-
 msgid "ARP retry threshold"
 msgstr "Όριο επαναδοκιμών ARP"
 
@@ -288,6 +312,9 @@ msgstr ""
 "Να επιτρέπονται απαντήσεις από ανώτερο επίπεδο εντός του εύρους 127.0.0.0/8, "
 "π.χ. για υπηρεσίες RBL"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -296,9 +323,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -394,9 +418,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Συνδεδεμένοι Σταθμοί"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -406,6 +427,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Εξουσιοδότηση"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Κύριος"
 
@@ -472,9 +496,6 @@ msgstr "Πίσω προς επισκόπηση"
 msgid "Back to scan results"
 msgstr "Πίσω στα αποτελέσματα σάρωσης"
 
-msgid "Background Scan"
-msgstr "Σάρωση Παρασκηνίου"
-
 msgid "Backup / Flash Firmware"
 msgstr "Αντίγραφο ασφαλείας / Εγγραφή FLASH Υλικολογισμικό"
 
@@ -504,9 +525,15 @@ msgstr ""
 "ουσιώδη βασικά αρχεία καθώς και καθορισμένα από το χρήστη μοτίβα αντιγράφων "
 "ασφαλείας."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Ρυθμός δεδομένων"
 
@@ -575,6 +602,9 @@ msgstr "Έλεγχος"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Άθροισμα Ελέγχου"
 
@@ -636,9 +666,6 @@ msgstr "Εντολή"
 msgid "Common Configuration"
 msgstr "Κοινή Παραμετροποίηση"
 
-msgid "Compression"
-msgstr "Συμπίεση"
-
 msgid "Configuration"
 msgstr "Παραμετροποίηση"
 
@@ -858,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"
 
@@ -906,15 +933,15 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr "Να μην στέλνονται απαντήσεις σε probes"
-
 msgid "Domain required"
 msgstr "Απαίτηση για όνομα τομέα"
 
 msgid "Domain whitelist"
 msgstr "Λευκή λίστα τομέων"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -988,6 +1015,9 @@ msgstr "Ενεργοποίηση <abbr title=\"Spanning Tree Protocol\">STP</abb
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Ενεργοποίηση ενημέρωσης δυναμικού τερματικού σημείου HE.net."
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Ενεργοποίηση διαπραγμάτευσης IPv6 πάνω στη PPP ζεύξη"
 
@@ -1018,6 +1048,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Ενεργοποίηση αυτής της προσάρτησης"
 
@@ -1030,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 ""
 
@@ -1039,6 +1077,12 @@ msgstr "Λειτουργία ενθυλάκωσης"
 msgid "Encryption"
 msgstr "Κρυπτογράφηση"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Διαγράφεται..."
 
@@ -1073,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 "Εξωτερικός εξυπηρετητής καταγραφής συστήματος"
 
@@ -1085,9 +1135,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Γρήγορα Πλαίσια"
-
 msgid "File"
 msgstr "Αρχείο"
 
@@ -1123,6 +1170,9 @@ msgstr "Τέλος"
 msgid "Firewall"
 msgstr "Τείχος Προστασίας"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Ρυθμίσεις Τείχους Προστασίας"
 
@@ -1169,6 +1219,9 @@ msgstr "Επιβολή TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Επιβολή TKIP και CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1199,6 +1252,11 @@ msgstr ""
 msgid "Free space"
 msgstr "Ελεύθερος χώρος"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr ""
 
@@ -1256,6 +1314,9 @@ msgstr ""
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr ""
 
@@ -1314,6 +1375,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Διεύθυνση IP"
 
@@ -1356,6 +1420,9 @@ msgstr ""
 msgid "IPv4-Address"
 msgstr "IPv4-Διεύθυνση"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1404,6 +1471,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1553,6 +1623,9 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "Άκυρο όνομα χρήστη και/ή κωδικός πρόσβασης! Παρακαλώ προσπαθήστε ξανά."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1561,8 +1634,8 @@ msgstr ""
 "Φαίνεται πως προσπαθείτε να φλασάρετε μια εικόνα που δεν χωράει στην μνήμη "
 "flash, παρακαλώ επιβεβαιώστε το αρχείο εικόνας!"
 
-msgid "Java Script required!"
-msgstr "Απαιτείται Javascript!"
+msgid "JavaScript required!"
+msgstr "Απαιτείται JavaScript!"
 
 msgid "Join Network"
 msgstr ""
@@ -1674,6 +1747,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 ""
 
@@ -1686,6 +1775,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1803,9 +1895,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Μέγιστος Ρυθμός"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Μέγιστος επιτρεπόμενος αριθμός ενεργών DHCP leases"
 
@@ -1842,9 +1931,6 @@ msgstr "Χρήση Μνήμης (%)"
 msgid "Metric"
 msgstr "Μέτρο"
 
-msgid "Minimum Rate"
-msgstr "Ελάχιστος Ρυθμός"
-
 msgid "Minimum hold time"
 msgstr "Ελάχιστος χρόνος κράτησης"
 
@@ -1857,6 +1943,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Λειτουργία"
 
@@ -1916,9 +2005,6 @@ msgstr "Μετακίνηση κάτω"
 msgid "Move up"
 msgstr "Μετακίνηση πάνω"
 
-msgid "Multicast Rate"
-msgstr "Ρυθμός Multicast"
-
 msgid "Multicast address"
 msgstr "Διεύθυνση Multicast"
 
@@ -1931,6 +2017,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2111,12 +2200,50 @@ msgstr "Η επιλογή άλλαξε"
 msgid "Option removed"
 msgstr "Η επιλογή αφαιρέθηκε"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Επιλογές"
 
@@ -2129,9 +2256,6 @@ msgstr "Έξοδος"
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr "Εξωτερικά Κανάλια"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2141,6 +2265,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2173,6 +2303,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2257,6 +2390,9 @@ msgstr ""
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2266,6 +2402,9 @@ msgstr "Εκτέλεση επανεκκίνησης"
 msgid "Perform reset"
 msgstr "Διενέργεια αρχικοποίησης"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2296,6 +2435,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2311,6 +2462,9 @@ msgstr "Αποτρέπει την επικοινωνία μεταξύ πελατ
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Συνέχεια"
 
@@ -2344,12 +2498,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Ψευδό Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2431,6 +2597,9 @@ msgstr "Κίνηση πραγματικού χρόνου"
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2449,6 +2618,9 @@ msgstr "Λήψη"
 msgid "Receiver Antenna"
 msgstr "Κεραία Λήψης"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Επανασύνδεση της διεπαφής"
 
@@ -2458,9 +2630,6 @@ msgstr "Επανασύνδεση της διεπαφής"
 msgid "References"
 msgstr "Αναφορές"
 
-msgid "Regulatory Domain"
-msgstr "Ρυθμιστική Περιοχή"
-
 msgid "Relay"
 msgstr ""
 
@@ -2476,6 +2645,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr "Απομακρυσμένη διεύθυνση IPv4"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Αφαίρεση"
 
@@ -2497,9 +2669,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2544,6 +2736,12 @@ msgstr "Κατάλογος Root για αρχεία που σερβίροντα
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2635,9 +2833,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Απομόνωση Πελατών"
 
-msgid "Separate WDS"
-msgstr "Ξεχωριστά WDS"
-
 msgid "Server Settings"
 msgstr "Ρυθμίσεις Εξυπηρετητή"
 
@@ -2661,6 +2856,11 @@ msgstr "Είδος Υπηρεσίας"
 msgid "Services"
 msgstr "Υπηρεσίες"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
 msgstr ""
 
@@ -2726,8 +2926,8 @@ msgstr ""
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2760,6 +2960,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Ορίστε το κρυφό κλειδί κρυπτογράφησης."
 
@@ -2784,9 +2997,6 @@ msgstr "Στατικά Leases"
 msgid "Static Routes"
 msgstr "Στατικές Διαδρομές"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr "Στατική διεύθυνση"
 
@@ -2903,6 +3113,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2963,6 +3177,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3164,9 +3381,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Λειτουργία Turbo"
-
 msgid "Tx-Power"
 msgstr "Ισχύς Εκπομπής"
 
@@ -3185,6 +3399,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Συσκευή USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3217,8 +3434,8 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3286,6 +3503,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 ""
 
@@ -3394,6 +3616,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Ασύρματο"
 
@@ -3433,9 +3658,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 "
@@ -3447,7 +3669,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 ""
@@ -3540,6 +3762,9 @@ msgstr "τοπικό αρχείο <abbr title=\"Domain Name System\">DNS</abbr>"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3594,6 +3819,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3615,6 +3843,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 b032f49..c5edff4 100644 (file)
@@ -43,18 +43,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -143,9 +170,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "AR Support"
-
 msgid "ARP retry threshold"
 msgstr "ARP retry threshold"
 
@@ -279,6 +303,9 @@ msgid ""
 msgstr ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -287,9 +314,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -385,9 +409,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Associated Stations"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -397,6 +418,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Authentication"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Authoritative"
 
@@ -463,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"
 
@@ -493,9 +514,15 @@ msgstr ""
 "configuration files marked by opkg, essential base files and the user "
 "defined backup patterns."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Bitrate"
 
@@ -564,6 +591,9 @@ msgstr "Check"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Checksum"
 
@@ -623,9 +653,6 @@ msgstr "Command"
 msgid "Common Configuration"
 msgstr "Common Configuration"
 
-msgid "Compression"
-msgstr "Compression"
-
 msgid "Configuration"
 msgstr "Configuration"
 
@@ -844,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 ""
 
@@ -888,15 +915,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr ""
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -967,6 +994,9 @@ msgstr "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr ""
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr ""
 
@@ -997,6 +1027,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr ""
 
@@ -1009,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"
 
@@ -1018,6 +1056,12 @@ msgstr ""
 msgid "Encryption"
 msgstr "Encryption"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr ""
 
@@ -1049,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 ""
 
@@ -1061,9 +1111,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Fast Frames"
-
 msgid "File"
 msgstr ""
 
@@ -1099,6 +1146,9 @@ msgstr ""
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Firewall Settings"
 
@@ -1144,6 +1194,9 @@ msgstr ""
 msgid "Force TKIP and CCMP (AES)"
 msgstr ""
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1174,6 +1227,11 @@ msgstr ""
 msgid "Free space"
 msgstr ""
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr ""
 
@@ -1231,6 +1289,9 @@ msgstr ""
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Handler"
 
@@ -1288,6 +1349,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP address"
 
@@ -1330,6 +1394,9 @@ msgstr ""
 msgid "IPv4-Address"
 msgstr ""
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1378,6 +1445,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1522,6 +1592,9 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "Invalid username and/or password! Please try again."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1530,7 +1603,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"
@@ -1643,6 +1716,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 ""
 
@@ -1655,6 +1744,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1772,9 +1864,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Maximum Rate"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1810,9 +1899,6 @@ msgstr "Memory usage (%)"
 msgid "Metric"
 msgstr "Metric"
 
-msgid "Minimum Rate"
-msgstr "Minimum Rate"
-
 msgid "Minimum hold time"
 msgstr "Minimum hold time"
 
@@ -1825,6 +1911,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Mode"
 
@@ -1883,9 +1972,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr "Multicast Rate"
-
 msgid "Multicast address"
 msgstr ""
 
@@ -1898,6 +1984,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2078,12 +2167,50 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Options"
 
@@ -2096,9 +2223,6 @@ msgstr "Out"
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr "Outdoor Channels"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2108,6 +2232,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2140,6 +2270,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2224,6 +2357,9 @@ msgstr ""
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2233,6 +2369,9 @@ msgstr "Perform reboot"
 msgid "Perform reset"
 msgstr ""
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2263,6 +2402,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2277,6 +2428,9 @@ msgstr "Prevents client-to-client communication"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Proceed"
 
@@ -2310,12 +2464,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2397,6 +2563,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2415,6 +2584,9 @@ msgstr "Receive"
 msgid "Receiver Antenna"
 msgstr "Receiver Antenna"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2424,9 +2596,6 @@ msgstr ""
 msgid "References"
 msgstr "References"
 
-msgid "Regulatory Domain"
-msgstr "Regulatory Domain"
-
 msgid "Relay"
 msgstr ""
 
@@ -2442,6 +2611,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr ""
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Remove"
 
@@ -2463,9 +2635,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2510,6 +2702,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2599,9 +2797,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Separate Clients"
 
-msgid "Separate WDS"
-msgstr "Separate WDS"
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2625,6 +2820,11 @@ msgstr ""
 msgid "Services"
 msgstr "Services"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
 msgstr ""
 
@@ -2690,8 +2890,8 @@ msgstr ""
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2722,6 +2922,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr ""
 
@@ -2746,9 +2959,6 @@ msgstr "Static Leases"
 msgid "Static Routes"
 msgstr "Static Routes"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -2865,6 +3075,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2923,6 +3137,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3121,9 +3338,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbo Mode"
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3142,6 +3356,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3174,8 +3391,8 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3243,6 +3460,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 ""
 
@@ -3353,6 +3575,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr ""
 
@@ -3392,9 +3617,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 "
@@ -3405,7 +3627,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 ""
@@ -3496,6 +3718,9 @@ msgstr "local <abbr title=\"Domain Name System\">DNS</abbr> file"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3550,6 +3775,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3571,6 +3799,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 f69add2..82f082c 100644 (file)
@@ -43,18 +43,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
@@ -145,9 +172,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Soporte a AR"
-
 msgid "ARP retry threshold"
 msgstr "Umbral de reintento ARP"
 
@@ -285,6 +309,9 @@ msgid ""
 msgstr ""
 "Permitir respuestas en el rango 127.0.0.0/8, por ejemplo para servicios RBL"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -293,9 +320,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -391,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 ""
 
@@ -403,6 +424,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Autentificación"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Autorizado"
 
@@ -469,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"
 
@@ -500,9 +521,15 @@ msgstr ""
 "esenciales base y los patrones de copia de seguridad definidos por el "
 "usuario."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Bitrate"
 
@@ -571,6 +598,9 @@ msgstr "Comprobar"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Comprobación"
 
@@ -632,9 +662,6 @@ msgstr "Comando"
 msgid "Common Configuration"
 msgstr "Configuración común"
 
-msgid "Compression"
-msgstr "Compresión"
-
 msgid "Configuration"
 msgstr "Configuración"
 
@@ -855,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"
 
@@ -901,15 +928,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr "Lista blanca de dominios"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -982,6 +1009,9 @@ msgstr "Activar <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Activar actualización dinámica de punto final HE.net"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Activar negociación IPv6 en el enlace PPP"
 
@@ -1012,6 +1042,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Active este punto de montaje"
 
@@ -1024,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"
 
@@ -1033,6 +1071,12 @@ msgstr "Modo de encapsulado"
 msgid "Encryption"
 msgstr "Encriptación"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Borrando..."
 
@@ -1067,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"
 
@@ -1079,9 +1129,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Tramas rápidas"
-
 msgid "File"
 msgstr "Fichero"
 
@@ -1117,6 +1164,9 @@ msgstr "Terminar"
 msgid "Firewall"
 msgstr "Cortafuegos"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Configuración del cortafuegos"
 
@@ -1162,6 +1212,9 @@ msgstr "Forzar TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Forzar TKIP y CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1193,6 +1246,11 @@ msgstr "Libre"
 msgid "Free space"
 msgstr "Espacio libre"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "GHz"
 
@@ -1252,6 +1310,9 @@ msgstr "Contraseña HE.net"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Manejador"
 
@@ -1310,6 +1371,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Dirección IP"
 
@@ -1352,6 +1416,9 @@ msgstr "Longitud de prefijo IPv4"
 msgid "IPv4-Address"
 msgstr "Dirección IPv4"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1400,6 +1467,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Dirección IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-en-IPv4 (RFC4213)"
 
@@ -1552,6 +1622,9 @@ msgid "Invalid username and/or password! Please try again."
 msgstr ""
 "¡Nombre de usuario o contraseña no válidos!. Pruebe de nuevo, por favor."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1560,7 +1633,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"
@@ -1675,6 +1748,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 ""
 
@@ -1687,6 +1776,9 @@ msgstr "Lista de máquinas que proporcionan resultados de dominio NX falsos"
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr "Escucha solo en la interfaz dada o, si no se especifica, en todas"
 
@@ -1811,9 +1903,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"
 
@@ -1849,9 +1938,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"
 
@@ -1864,6 +1950,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"
 
@@ -1922,9 +2011,6 @@ msgstr "Bajar"
 msgid "Move up"
 msgstr "Subir"
 
-msgid "Multicast Rate"
-msgstr "Ratio multicast"
-
 msgid "Multicast address"
 msgstr "Dirección multicast"
 
@@ -1937,6 +2023,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2116,12 +2205,50 @@ 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 ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Opciones"
 
@@ -2134,9 +2261,6 @@ msgstr "Salida"
 msgid "Outbound:"
 msgstr "Saliente:"
 
-msgid "Outdoor Channels"
-msgstr "Canales al aire libre"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2146,6 +2270,12 @@ msgstr "Ignorar dirección MAC"
 msgid "Override MTU"
 msgstr "Ignorar MTU"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2180,6 +2310,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2264,6 +2397,9 @@ msgstr "Pico:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2273,6 +2409,9 @@ msgstr "Rearrancar"
 msgid "Perform reset"
 msgstr "Reiniciar"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Ratio Phy:"
 
@@ -2303,6 +2442,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2319,6 +2470,9 @@ msgstr "Impide la comunicación cliente a cliente"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Controlador inalámbrico 802.11n Prism2/2.5/3"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Proceder"
 
@@ -2352,12 +2506,24 @@ msgstr "Introduzca una nueva red"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Calidad"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2451,6 +2617,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"
 
@@ -2469,6 +2638,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"
 
@@ -2478,9 +2650,6 @@ msgstr "Reconectando la interfaz"
 msgid "References"
 msgstr "Referencias"
 
-msgid "Regulatory Domain"
-msgstr "Dominio Regulador"
-
 msgid "Relay"
 msgstr "Relé"
 
@@ -2496,6 +2665,9 @@ msgstr "Puente relé"
 msgid "Remote IPv4 address"
 msgstr "Dirección IPv4 remota"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Desinstalar"
 
@@ -2517,9 +2689,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2564,6 +2756,12 @@ msgstr "Directorio raíz para los ficheros servidos por TFTP"
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2655,9 +2853,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Aislar clientes"
 
-msgid "Separate WDS"
-msgstr "WDS aislado"
-
 msgid "Server Settings"
 msgstr "Configuración del servidor"
 
@@ -2681,6 +2876,11 @@ msgstr "Tipo de servicio"
 msgid "Services"
 msgstr "Servicios"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Sincronización horaria"
@@ -2745,15 +2945,14 @@ msgstr "Objeto no encontrado."
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "El servidor encontró un error inesperado."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "No está instalado el soporte para el sysupgrade, la nueva imagen debe "
-"grabarse manualmente. Por favor, mire el wiki de OpenWrt para instrucciones "
-"de instalación específicas."
+"grabarse manualmente. Por favor, mire el wiki para instrucciones de "
+"instalación específicas."
 
 msgid "Sort"
 msgstr "Ordenar"
@@ -2788,6 +2987,19 @@ msgstr ""
 "Especifica la cantidad de segundos a transcurrir hasta suponer muerta una "
 "máquina"
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Especifica la clave secreta de encriptado."
 
@@ -2812,9 +3024,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"
 
@@ -2945,6 +3154,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 "El prefijo IPv6 asignado por el proveedor, suele termina con <code>::</code>"
@@ -3013,6 +3226,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr "Longitud del prefijo IPv6 en bits"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3231,9 +3447,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Modo Turbo"
-
 msgid "Tx-Power"
 msgstr "Potencia-TX"
 
@@ -3252,6 +3465,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Dispositivo USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3284,12 +3500,12 @@ msgstr "Actualizar listas"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Suba una imagen compatible con sysupgrade para reemplazar el firmware "
 "actual. Puede marcar \"Conservar la configuración\" si lo desea (es "
-"necesario que la imagen de OpenWrt sea compatible)."
+"necesario que la imagen sea compatible)."
 
 msgid "Upload archive..."
 msgstr "Subir archivo..."
@@ -3360,6 +3576,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 ""
 
@@ -3470,6 +3691,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Red inalámbrica"
 
@@ -3509,9 +3733,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 "
@@ -3523,9 +3744,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 "
@@ -3616,6 +3837,9 @@ msgstr "Archvo <abbr title=\"Domain Name System\">DNS</abbr> local"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3670,6 +3894,9 @@ msgstr ""
 msgid "tagged"
 msgstr "marcado"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "desconocido"
 
@@ -3691,6 +3918,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 b7d8119..4624ab7 100644 (file)
@@ -43,18 +43,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -144,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"
 
@@ -291,6 +315,9 @@ msgstr ""
 "Autorise les réponses de l'amont dans la plage 127.0.0.0/8, par ex. pour les "
 "services RBL"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -299,9 +326,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -397,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 ""
 
@@ -409,6 +430,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Authentification"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Autoritaire"
 
@@ -475,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"
 
@@ -505,9 +526,15 @@ msgstr ""
 "de configuration modifiés marqués par opkg, des fichiers de base essentiels, "
 "et des motifs de sauvegarde définis par l'utilisateur."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Débit"
 
@@ -576,6 +603,9 @@ msgstr "Vérification"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Somme de contrôle"
 
@@ -639,9 +669,6 @@ msgstr "Commande"
 msgid "Common Configuration"
 msgstr "Configuration commune"
 
-msgid "Compression"
-msgstr "Compression"
-
 msgid "Configuration"
 msgstr "Configuration"
 
@@ -862,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"
 
@@ -911,15 +938,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr "Liste blanche de domaines"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -992,6 +1019,9 @@ msgstr "Activer le protocole <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Activer la mise à jour dynamique de l'extrémité du tunnel chez HE.net"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Activer la négociation IPv6 sur le lien PPP"
 
@@ -1022,6 +1052,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Activer ce montage"
 
@@ -1034,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 "
@@ -1045,6 +1083,12 @@ msgstr "Mode encapsulé"
 msgid "Encryption"
 msgstr "Chiffrement"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Effacement…"
 
@@ -1079,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"
 
@@ -1091,9 +1141,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Trames rapides"
-
 msgid "File"
 msgstr "Fichier"
 
@@ -1129,6 +1176,9 @@ msgstr "Terminer"
 msgid "Firewall"
 msgstr "Pare-feu"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Paramètres du pare-feu"
 
@@ -1174,6 +1224,9 @@ msgstr "Forcer TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Forcer TKIP et CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1204,6 +1257,11 @@ msgstr "Libre"
 msgid "Free space"
 msgstr "Espace libre"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "Ghz"
 
@@ -1263,6 +1321,9 @@ msgstr "Mot de passe HE.net"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Gestionnaire"
 
@@ -1322,6 +1383,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Adresse IP"
 
@@ -1364,6 +1428,9 @@ msgstr "longueur du préfixe IPv4"
 msgid "IPv4-Address"
 msgstr "Adresse IPv4"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1412,6 +1479,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Adresse IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6 dans IPv4 (RFC 4213)"
 
@@ -1562,6 +1632,9 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "Nom d'utilisateur et/ou mot de passe invalides ! Réessayez !"
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1571,7 +1644,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"
@@ -1686,6 +1759,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 ""
 
@@ -1699,6 +1788,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr "Écouter seulement sur l'interface spécifié, sinon sur toutes"
 
@@ -1825,9 +1917,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"
 
@@ -1863,9 +1952,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"
 
@@ -1878,6 +1964,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"
 
@@ -1936,9 +2025,6 @@ msgstr "Descendre"
 msgid "Move up"
 msgstr "Monter"
 
-msgid "Multicast Rate"
-msgstr "Débit multidiffusion"
-
 msgid "Multicast address"
 msgstr "Adresse multidiffusion"
 
@@ -1951,6 +2037,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2129,12 +2218,50 @@ 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 ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Options"
 
@@ -2147,9 +2274,6 @@ msgstr "Sortie"
 msgid "Outbound:"
 msgstr "Extérieur :"
 
-msgid "Outdoor Channels"
-msgstr "Canaux en extérieur"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2159,6 +2283,12 @@ msgstr "Modifier l'adresse MAC"
 msgid "Override MTU"
 msgstr "Modifier le MTU"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2193,6 +2323,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "code PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2277,6 +2410,9 @@ msgstr "Pic :"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2286,6 +2422,9 @@ msgstr "Redémarrer"
 msgid "Perform reset"
 msgstr "Réinitialiser"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Débit de la puce:"
 
@@ -2316,6 +2455,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2332,6 +2483,9 @@ msgstr "Empêche la communication directe entre clients"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Contrôleur sans fil Prism2/2.5/3 802.11b"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Continuer"
 
@@ -2365,12 +2519,24 @@ msgstr "Donner un nouveau réseau"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Qualitée"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2464,6 +2630,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 »"
 
@@ -2482,6 +2651,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"
 
@@ -2491,9 +2663,6 @@ msgstr "Reconnecte cet interface"
 msgid "References"
 msgstr "Références"
 
-msgid "Regulatory Domain"
-msgstr "Domaine de certification"
-
 msgid "Relay"
 msgstr "Relais"
 
@@ -2509,6 +2678,9 @@ msgstr "Pont-relais"
 msgid "Remote IPv4 address"
 msgstr "Adresse IPv4 distante"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Désinstaller"
 
@@ -2530,9 +2702,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2577,6 +2769,12 @@ msgstr "Répertoire racine des fichiers fournis par TFTP"
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2669,9 +2867,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Isoler les clients"
 
-msgid "Separate WDS"
-msgstr "WDS séparé"
-
 msgid "Server Settings"
 msgstr "Paramètres du serveur"
 
@@ -2695,6 +2890,11 @@ msgstr "Type du service"
 msgid "Services"
 msgstr "Services"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Configurer la synchronisation de l'heure"
@@ -2759,16 +2959,15 @@ msgstr "Désolé, l'objet que vous avez demandé n'as pas été trouvé."
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "Désolé, le serveur à rencontré une erreur inattendue."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "Désolé, il n'y a pas de gestion de mise à jour disponible, une nouvelle "
 "image du micrologiciel doit être écrite manuellement. Reportez-vous S.V.P. "
-"au wiki OpenWrt pour connaître les instructions d'installation spécifiques à "
-"votre matériel."
+"au wiki pour connaître les instructions d'installation spécifiques à votre "
+"matériel."
 
 msgid "Sort"
 msgstr "Trier"
@@ -2800,6 +2999,19 @@ msgid ""
 "dead"
 msgstr "Indique le délai après quoi les hôtes seront supposés disparus"
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Spécifiez ici la clé secrète de chiffrage."
 
@@ -2824,9 +3036,6 @@ msgstr "Baux Statiques"
 msgid "Static Routes"
 msgstr "Routes statiques"
 
-msgid "Static WDS"
-msgstr "WDS statique"
-
 msgid "Static address"
 msgstr "Adresse statique"
 
@@ -2956,6 +3165,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 "Le préfixe IPv6 attribué par le fournisseur, se termine généralement par "
@@ -3024,6 +3237,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr "La longueur du préfixe IPv6 en bits"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3249,9 +3465,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Mode Turbo"
-
 msgid "Tx-Power"
 msgstr "Puissance d'émission"
 
@@ -3270,6 +3483,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Périphérique USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3302,13 +3518,13 @@ msgstr "Mettre les listes à jour"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Envoyer ici une image compatible avec le système de mise à jour pour "
 "remplacer le micrologiciel actuel. Cochez \"Garder la configuration\" pour "
 "maintenir la configuration actuelle (nécessite une image de micrologiciel "
-"OpenWRT compatible)."
+"compatible)."
 
 msgid "Upload archive..."
 msgstr "Envoi de l'archive…"
@@ -3379,6 +3595,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 ""
 
@@ -3489,6 +3710,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Sans-fil"
 
@@ -3528,9 +3752,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 "
@@ -3542,10 +3763,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 "
@@ -3634,6 +3855,9 @@ msgstr "fichier de résolution local"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3688,6 +3912,9 @@ msgstr ""
 msgid "tagged"
 msgstr "marqué"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "inconnu"
 
@@ -3709,6 +3936,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 71fe9ce..cf12a03 100644 (file)
@@ -41,18 +41,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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 ""
 
@@ -134,9 +161,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr "תמיכת AR"
-
 #, fuzzy
 msgid "ARP retry threshold"
 msgstr "סף נסיונות של ARP"
@@ -278,6 +302,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr ""
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -286,9 +313,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -386,9 +410,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "תחנות קשורות"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "שלט אלחוטי Atheros 802.11%s"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -398,6 +419,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "אימות"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "מוסמך"
 
@@ -464,9 +488,6 @@ msgstr "חזרה לסקירה"
 msgid "Back to scan results"
 msgstr "חזרה לתוצאות סריקה"
 
-msgid "Background Scan"
-msgstr "סריקת רקע"
-
 msgid "Backup / Flash Firmware"
 msgstr "גיבוי / קושחת פלאש"
 
@@ -494,9 +515,15 @@ msgstr ""
 "המסומנים ב opkg ׁOpen PacKaGe Managementׂ, קבצי בסיס חיוניים ותבניות הגיבוי "
 "המוגדרות ע\"י המשתמש."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr ""
 
@@ -566,6 +593,9 @@ msgstr "לבדוק"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr ""
 
@@ -616,9 +646,6 @@ msgstr "פקודה"
 msgid "Common Configuration"
 msgstr "הגדרות נפוצות"
 
-msgid "Compression"
-msgstr "דחיסה"
-
 msgid "Configuration"
 msgstr "הגדרות"
 
@@ -836,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"
@@ -876,15 +903,15 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
 msgid "Domain whitelist"
 msgstr ""
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -952,6 +979,9 @@ msgstr "אפשר <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr ""
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr ""
 
@@ -982,6 +1012,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr ""
 
@@ -994,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 ""
 
@@ -1003,6 +1041,12 @@ msgstr ""
 msgid "Encryption"
 msgstr "הצפנה"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "מוחק..."
 
@@ -1034,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 ""
 
@@ -1046,9 +1096,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1084,6 +1131,9 @@ msgstr ""
 msgid "Firewall"
 msgstr ""
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1129,6 +1179,9 @@ msgstr ""
 msgid "Force TKIP and CCMP (AES)"
 msgstr ""
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1159,6 +1212,11 @@ msgstr ""
 msgid "Free space"
 msgstr ""
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr ""
 
@@ -1216,6 +1274,9 @@ msgstr ""
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr ""
 
@@ -1271,6 +1332,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr ""
 
@@ -1313,6 +1377,9 @@ msgstr ""
 msgid "IPv4-Address"
 msgstr ""
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr ""
 
@@ -1361,6 +1428,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1500,12 +1570,15 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "שם משתמש ו/או סיסמה שגויים! אנא נסה שנית."
 
+msgid "Isolate Clients"
+msgstr ""
+
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1618,6 +1691,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 ""
 
@@ -1630,6 +1719,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1747,9 +1839,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1785,9 +1874,6 @@ msgstr ""
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1800,6 +1886,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1856,9 +1945,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -1871,6 +1957,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2045,12 +2134,50 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr ""
 
@@ -2063,9 +2190,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2075,6 +2199,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2107,6 +2237,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2191,6 +2324,9 @@ msgstr ""
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2200,6 +2336,9 @@ msgstr ""
 msgid "Perform reset"
 msgstr ""
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2230,6 +2369,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2244,6 +2395,9 @@ msgstr ""
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr ""
 
@@ -2277,12 +2431,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr ""
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2365,6 +2531,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2383,6 +2552,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2392,9 +2564,6 @@ msgstr ""
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2410,6 +2579,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr ""
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr ""
 
@@ -2431,9 +2603,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2478,6 +2670,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2565,9 +2763,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2591,6 +2786,11 @@ msgstr ""
 msgid "Services"
 msgstr "שירותים"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "סנכרון זמן"
@@ -2655,14 +2855,13 @@ msgstr "סליחה, אך האובייקט שביקשת אינו נמצא."
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "סליחה, השרת נתקל בשגיאה לא צפויה."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "סליחה, אין תמיכה בעדכון מערכת, ולכן קושחה חדשה חייבת להיצרב ידנית. אנא פנה "
-"אל ה-wiki של OpenWrt עבור הוראות ספציפיות למכשיר שלך."
+"אל ה-wiki של OpenWrt/LEDE עבור הוראות ספציפיות למכשיר שלך."
 
 msgid "Sort"
 msgstr "מיין"
@@ -2692,6 +2891,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr ""
 
@@ -2716,9 +2928,6 @@ msgstr "הקצאות סטטיות"
 msgid "Static Routes"
 msgstr "ניתובים סטטיים"
 
-msgid "Static WDS"
-msgstr "WDS סטטי"
-
 msgid "Static address"
 msgstr "כתובת סטטית"
 
@@ -2838,6 +3047,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2892,6 +3105,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3080,9 +3296,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr "עוצמת שידור"
 
@@ -3101,6 +3314,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3133,8 +3349,8 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3202,6 +3418,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 ""
 
@@ -3310,6 +3531,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr ""
 
@@ -3349,9 +3573,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 "
@@ -3359,8 +3580,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 "
@@ -3448,6 +3669,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3502,6 +3726,9 @@ msgstr ""
 msgid "tagged"
 msgstr "מתויג"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3523,6 +3750,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 4ce0351..a0605f2 100644 (file)
@@ -41,18 +41,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -141,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"
 
@@ -284,6 +308,9 @@ msgstr ""
 "A 127.0.0.0/8-as tartományba eső DNS válaszok engedélyezése (pl. RBL "
 "szervizek)"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -292,9 +319,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -390,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 ""
 
@@ -402,6 +423,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Hitelesítés"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Hiteles"
 
@@ -468,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"
 
@@ -499,9 +520,15 @@ msgstr ""
 "fájlokból valamint a felhasználó által megadott mintáknak megfelelő "
 "fájlokból áll."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Bitráta"
 
@@ -571,6 +598,9 @@ msgstr "Ellenőrzés"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Ellenőrző összeg"
 
@@ -634,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"
 
@@ -856,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. "
 
@@ -902,15 +929,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr "Tartomány fehérlista"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -985,6 +1012,9 @@ msgstr "<abbr title=\"Spanning Tree Protocol\">STP</abbr> engedélyezése"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "HE.net dinamikus végpont frissítésének engedélyezése"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "IPv6 egyeztetés engedélyezése a PPP linken"
 
@@ -1015,6 +1045,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "A csatolás engedélyezése"
 
@@ -1027,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"
 
@@ -1036,6 +1074,12 @@ msgstr "Beágyazási mód"
 msgid "Encryption"
 msgstr "Titkosítás"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Törlés..."
 
@@ -1068,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ó"
 
@@ -1080,9 +1130,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Gyors keretek"
-
 msgid "File"
 msgstr "Fájl"
 
@@ -1118,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"
 
@@ -1165,6 +1215,9 @@ msgstr "TKIP kényszerítése"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "TKIP és CCMP (AES) kényszerítése"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1195,6 +1248,11 @@ msgstr "Szabad"
 msgid "Free space"
 msgstr "Szabad hely"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "GHz"
 
@@ -1252,6 +1310,9 @@ msgstr "HE.net jelszó"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Kezelő"
 
@@ -1311,6 +1372,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP cím"
 
@@ -1353,6 +1417,9 @@ msgstr "IPv4 prefix hossza"
 msgid "IPv4-Address"
 msgstr "IPv4-cím"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1401,6 +1468,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-cím"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6 IPv4-ben (RFC4213)"
 
@@ -1552,6 +1622,9 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "Érvénytelen felhasználói név és/vagy jelszó! Kérem próbálja újra!"
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1560,8 +1633,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"
@@ -1675,6 +1748,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 ""
 
@@ -1687,6 +1776,9 @@ msgstr "A hamis NX tartomány eredményeket szolgáltató gépek listája"
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 "Csak a megadott interfészen hallgat, vagy az összesen, amennyiben nem adja "
@@ -1814,9 +1906,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"
 
@@ -1852,9 +1941,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ő"
 
@@ -1867,6 +1953,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"
 
@@ -1925,9 +2014,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"
 
@@ -1940,6 +2026,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2119,12 +2208,50 @@ 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 ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Lehetőségek"
 
@@ -2137,9 +2264,6 @@ msgstr "Ki"
 msgid "Outbound:"
 msgstr "Kimenő:"
 
-msgid "Outdoor Channels"
-msgstr "Kültéri csatornák"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2149,6 +2273,12 @@ msgstr "MAC cím felülbírálása"
 msgid "Override MTU"
 msgstr "MTU felülbíráslás"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2183,6 +2313,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2267,6 +2400,9 @@ msgstr "Csúcs:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2276,6 +2412,9 @@ msgstr "Újraindítás végrehajtása"
 msgid "Perform reset"
 msgstr "Visszaállítás végrehajtása"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Phy sebesség:"
 
@@ -2306,6 +2445,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2322,6 +2473,9 @@ msgstr "Ügyfél-ügyfél közötti kommunikáció megakadályozása"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Prism2/2.5/3 802.11b vezeték nélküli vezérlő"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Folytatás"
 
@@ -2355,12 +2509,24 @@ msgstr "Új hálózat nyújtása"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Ál Ad-hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Minőség"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2455,6 +2621,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"
 
@@ -2473,6 +2642,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"
 
@@ -2482,9 +2654,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"
 
@@ -2500,6 +2669,9 @@ msgstr "Átjátszó híd"
 msgid "Remote IPv4 address"
 msgstr "Távoli IPv4 cím"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Eltávolítás"
 
@@ -2521,10 +2693,30 @@ 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"
 
+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 ""
+"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 "
 "come from unsigned domains"
@@ -2569,6 +2761,12 @@ msgstr "TFTP-n keresztül megosztott fájlok gyökérkönyvtára"
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2660,9 +2858,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"
 
@@ -2686,6 +2881,11 @@ msgstr "Szolgáltatás típusa"
 msgid "Services"
 msgstr "Szolgáltatások"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Idő szinkronizálás beállítása"
@@ -2750,15 +2950,14 @@ msgstr "Sajnálom, a kért objektum nem található."
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "Sajnálom, a szerver váratlan hibát észlelt."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "Sajnáljuk, a 'sysupgrade' támogatás nem elérhető, az új firmware fájl "
 "telepítését manuálisan kell elvégezni. Az eszközhöz tartozó telepítési "
-"utasításokért keresse fel az OpenWrt wiki-t."
+"utasításokért keresse fel az wiki-t."
 
 msgid "Sort"
 msgstr "Sorbarendezés"
@@ -2791,6 +2990,19 @@ msgid ""
 msgstr ""
 "Megadja a másodpercek számát, amik után a host nem elérhetőnek tekinthető"
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Itt adja meg a titkosító kulcsot."
 
@@ -2815,9 +3027,6 @@ msgstr "Statikus bérletek"
 msgid "Static Routes"
 msgstr "Statikus útvonalak"
 
-msgid "Static WDS"
-msgstr "Statikus WDS"
-
 msgid "Static address"
 msgstr "Statikus cím"
 
@@ -2946,6 +3155,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 "A szolgáltatóhoz rendelt IPv6 előtag, általában így végződik: <code>::</code>"
@@ -3015,6 +3228,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr "Az IPv6 előtag hossza bitekben"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3237,9 +3453,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbó mód"
-
 msgid "Tx-Power"
 msgstr "Adóteljesítmény"
 
@@ -3258,6 +3471,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB eszköz"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3290,13 +3506,12 @@ msgstr "Listák frissítése"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Itt tölthet fel egy új sysupgrade-kompatibilis képet a futó firmware "
 "lecseréléséhez. A jelenlegi beállítások megtartásához jelölje be a "
-"\"Beállítások megtartása\" négyzetet (OpenWrt-vel kompatibilis firmware kép "
-"szükséges)."
+"\"Beállítások megtartása\" négyzetet (kompatibilis firmware kép szükséges)."
 
 msgid "Upload archive..."
 msgstr "Archívum feltöltése..."
@@ -3367,6 +3582,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 ""
 
@@ -3477,6 +3697,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Vezetéknélküli rész"
 
@@ -3516,9 +3739,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 "
@@ -3530,7 +3750,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."
@@ -3623,6 +3843,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 ""
 
@@ -3677,6 +3900,9 @@ msgstr ""
 msgid "tagged"
 msgstr "cimkézett"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "ismeretlen"
 
@@ -3698,6 +3924,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 db7c4b4..c05994f 100644 (file)
@@ -43,18 +43,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
@@ -146,9 +173,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Supporto AR"
-
 msgid "ARP retry threshold"
 msgstr "riprova soglia ARP"
 
@@ -291,6 +315,9 @@ msgstr ""
 "Permetti le risposte upstream nell'intervallo 127.0.0.0/8, per esempio nei "
 "servizi RBL"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -299,9 +326,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -397,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 ""
 
@@ -409,6 +430,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Autenticazione PEAP"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Autoritativo"
 
@@ -475,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"
 
@@ -505,9 +526,15 @@ msgstr ""
 "composta dai file di configurazione modificati installati da opkg, file di "
 "base essenziali e i file di backup definiti dall'utente."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Bitrate"
 
@@ -576,6 +603,9 @@ msgstr "Verifica"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Checksum"
 
@@ -637,9 +667,6 @@ msgstr "Comando"
 msgid "Common Configuration"
 msgstr "Configurazioni Comuni"
 
-msgid "Compression"
-msgstr "Compressione"
-
 msgid "Configuration"
 msgstr "Configurazione"
 
@@ -860,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"
 
@@ -905,15 +932,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr "Elenco Domini consentiti"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -986,6 +1013,9 @@ msgstr "Abilita <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Abilitazione aggiornamento endpoint dinamico HE.net"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Attiva la negoziazione IPv6 sul collegamento PPP"
 
@@ -1016,6 +1046,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Abilita questo mount"
 
@@ -1028,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"
 
@@ -1037,6 +1075,12 @@ msgstr "Modalità di incapsulamento"
 msgid "Encryption"
 msgstr "Crittografia"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Cancellazione..."
 
@@ -1070,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"
 
@@ -1082,9 +1132,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Frame veloci"
-
 msgid "File"
 msgstr "File"
 
@@ -1120,6 +1167,9 @@ msgstr "Fine"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Impostazioni Firewall"
 
@@ -1165,6 +1215,9 @@ msgstr "Forza TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Forza TKIP e CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1195,6 +1248,11 @@ msgstr "Disponibile"
 msgid "Free space"
 msgstr "Spazio libero"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "GHz"
 
@@ -1254,6 +1312,9 @@ msgstr "Password HE.net"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Gestore"
 
@@ -1314,6 +1375,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Indirizzo IP"
 
@@ -1356,6 +1420,9 @@ msgstr "Lunghezza prefisso IPv4"
 msgid "IPv4-Address"
 msgstr "Indirizzo-IPv4"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1404,6 +1471,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Indirizzo-IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1554,6 +1624,9 @@ msgstr "ID VLAN non valido! Solo gli ID unici sono consentiti"
 msgid "Invalid username and/or password! Please try again."
 msgstr "Username o password non validi! Per favore riprova."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1562,8 +1635,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"
@@ -1677,6 +1750,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 ""
 
@@ -1689,6 +1778,9 @@ msgstr "Elenco degli host che forniscono falsi risultati di dominio NX"
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr "Ascolta solo l'interfaccia data o, se non specificato, su tutte"
 
@@ -1812,9 +1904,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Velocità massima"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1850,9 +1939,6 @@ msgstr "Uso Memory (%)"
 msgid "Metric"
 msgstr "Metrica"
 
-msgid "Minimum Rate"
-msgstr "Velocità minima"
-
 msgid "Minimum hold time"
 msgstr "Velocità minima"
 
@@ -1865,6 +1951,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Modalità"
 
@@ -1923,9 +2012,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr "Velocità multicast"
-
 msgid "Multicast address"
 msgstr ""
 
@@ -1938,6 +2024,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2117,12 +2206,50 @@ msgstr "Opzione cambiata"
 msgid "Option removed"
 msgstr "Opzione cancellata"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Opzioni"
 
@@ -2135,9 +2262,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr "In uscita:"
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2147,6 +2271,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr "Sovrascivi MTU"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2179,6 +2309,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2263,6 +2396,9 @@ msgstr "Picco:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2272,6 +2408,9 @@ msgstr "Esegui un riavvio"
 msgid "Perform reset"
 msgstr ""
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2302,6 +2441,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2316,6 +2467,9 @@ msgstr "Impedisci la comunicazione fra Client"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Continuare"
 
@@ -2349,12 +2503,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2439,6 +2605,9 @@ msgstr "Traffico in tempo reale"
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2457,6 +2626,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"
 
@@ -2466,9 +2638,6 @@ msgstr "Sto ricollegando l'interfaccia"
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2484,6 +2653,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr ""
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Rimuovi"
 
@@ -2505,9 +2677,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2552,6 +2744,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2641,9 +2839,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Isola utenti"
 
-msgid "Separate WDS"
-msgstr "WDS separati"
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2667,6 +2862,11 @@ msgstr ""
 msgid "Services"
 msgstr "Servizi"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
 msgstr ""
 
@@ -2730,16 +2930,15 @@ msgstr "Siamo spiacenti, l'oggetto che hai richiesto non è stato trovato."
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "Spiacente, il server ha rilevato un errore imprevisto."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "Spiacenti, non è presente alcun supporto sysupgrade, una nuova immagine "
 "firmware deve essere memorizzata (Flash) manualmente. Si prega di fare "
-"riferimento al wiki di OpenWrt per le istruzioni di installazione di "
-"dispositivi specifici."
+"riferimento al wiki per le istruzioni di installazione di dispositivi "
+"specifici."
 
 msgid "Sort"
 msgstr "Elenca"
@@ -2773,6 +2972,19 @@ msgstr ""
 "Specifica la quantità massima di secondi dopo di che si presume che gli host "
 "siano morti."
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Specificare la chiave di cifratura qui."
 
@@ -2797,9 +3009,6 @@ msgstr "Leases statici"
 msgid "Static Routes"
 msgstr "Instradamenti Statici"
 
-msgid "Static WDS"
-msgstr "WDS statico"
-
 msgid "Static address"
 msgstr "Indirizzo Statico"
 
@@ -2929,6 +3138,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 "Il prefisso IPv6 assegnati dal provider, si conclude di solito con <code>::</"
@@ -2988,6 +3201,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3188,9 +3404,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Modalità turbo"
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3209,6 +3422,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3241,13 +3457,12 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Carica un'immagine sysupgrade compatibile quì per sostituire il firmware in "
 "esecuzione. Attivare la spunta \"Mantieni Impostazioni\" per mantenere la "
-"configurazione corrente (richiede un immagine del firmware OpenWrt "
-"compatibile)."
+"configurazione corrente (richiede un immagine del firmware compatibile)."
 
 msgid "Upload archive..."
 msgstr "Carica archivio..."
@@ -3318,6 +3533,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 ""
 
@@ -3428,6 +3648,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Wireless"
 
@@ -3467,9 +3690,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 "
@@ -3482,9 +3702,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 ""
@@ -3576,6 +3796,9 @@ msgstr "File <abbr title=\"Sistema Nome Dominio\">DNS</abbr> locale"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3630,6 +3853,9 @@ msgstr ""
 msgid "tagged"
 msgstr "etichettato"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "sconosciuto"
 
@@ -3651,6 +3877,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 d2a953f..91d9e1b 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:40+0200\n"
-"PO-Revision-Date: 2013-10-06 02:29+0200\n"
-"Last-Translator: Kentaro <kentaro.matsuyama@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"PO-Revision-Date: 2017-04-03 02:32+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: Pootle 2.0.6\n"
+"X-Generator: Poedit 2.0\n"
+"Language-Team: \n"
 
 msgid "%s is untagged in multiple VLANs!"
-msgstr ""
+msgstr "%s は複数のVLANにUntaggedしています!"
 
 msgid "(%d minute window, %d second interval)"
 msgstr "(%d 分幅, %d 秒間隔)"
@@ -38,10 +38,13 @@ msgid "-- custom --"
 msgstr "-- 手動設定 --"
 
 msgid "-- match by device --"
-msgstr ""
+msgstr "-- デバイスを指定 --"
 
 msgid "-- match by label --"
-msgstr ""
+msgstr "-- ラベルを指定 --"
+
+msgid "-- match by uuid --"
+msgstr "-- UUIDを指定 --"
 
 msgid "1 Minute Load:"
 msgstr "過去1分の負荷:"
@@ -49,12 +52,36 @@ msgstr "過去1分の負荷:"
 msgid "15 Minute Load:"
 msgstr "過去15分の負荷:"
 
-msgid "464XLAT (CLAT)"
+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 "802.11r 高速ローミング"
+
+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>"
 
@@ -95,6 +122,7 @@ msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-ゲートウェ
 
 msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
 msgstr ""
+"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-サフィックス (16進数)"
 
 msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
 msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 設定"
@@ -132,7 +160,7 @@ msgid "A43C + J43 + A43 + V43"
 msgstr ""
 
 msgid "ADSL"
-msgstr ""
+msgstr "ADSL"
 
 msgid "AICCU (SIXXS)"
 msgstr ""
@@ -143,9 +171,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "ARサポート"
-
 msgid "ARP retry threshold"
 msgstr "ARP再試行しきい値"
 
@@ -200,7 +225,7 @@ msgstr ""
 "稼働中の <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-経路情報"
 
 msgid "Active Connections"
-msgstr "アクティブコネクション"
+msgstr "アクティブ コネクション"
 
 msgid "Active DHCP Leases"
 msgstr "アクティブなDHCPリース"
@@ -224,13 +249,13 @@ msgid "Additional Hosts files"
 msgstr "追加のホストファイル"
 
 msgid "Additional servers file"
-msgstr ""
+msgstr "追加のサーバー ファイル"
 
 msgid "Address"
 msgstr "アドレス"
 
 msgid "Address to access local relay bridge"
-msgstr "ローカルリレーブリッジにアクセスするためのIPアドレス"
+msgstr "ローカル リレーブリッジにアクセスするためのIPアドレス"
 
 msgid "Administration"
 msgstr "管理画面"
@@ -278,16 +303,16 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr ""
 
+msgid "Allowed IPs"
+msgstr "許可されるIP"
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
 msgstr ""
 
 msgid "Always announce default router"
-msgstr ""
-
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
+msgstr "常にデフォルト ルーターとして通知する"
 
 msgid "Annex"
 msgstr ""
@@ -336,6 +361,8 @@ msgstr ""
 
 msgid "Announce as default router even if no public prefix is available."
 msgstr ""
+"利用可能なパブリック プレフィクスが無くても、デフォルトのルーターとして通知し"
+"ます。"
 
 msgid "Announced DNS domains"
 msgstr ""
@@ -347,10 +374,10 @@ msgid "Anonymous Identity"
 msgstr ""
 
 msgid "Anonymous Mount"
-msgstr ""
+msgstr "アノニマス マウント"
 
 msgid "Anonymous Swap"
-msgstr ""
+msgstr "アノニマス スワップ"
 
 msgid "Antenna 1"
 msgstr "アンテナ 1"
@@ -384,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 ""
@@ -396,6 +420,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "認証"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Authoritative"
 
@@ -406,25 +433,25 @@ msgid "Auto Refresh"
 msgstr "自動更新"
 
 msgid "Automatic"
-msgstr ""
+msgstr "自動"
 
 msgid "Automatic Homenet (HNCP)"
 msgstr ""
 
 msgid "Automatically check filesystem for errors before mounting"
-msgstr ""
+msgstr "マウント実行前にファイルシステムのエラーを自動的にチェックします。"
 
 msgid "Automatically mount filesystems on hotplug"
-msgstr ""
+msgstr "ホットプラグによってファイルシステムを自動的にマウントします。"
 
 msgid "Automatically mount swap on hotplug"
-msgstr ""
+msgstr "ホットプラグによってスワップ パーティションを自動的にマウントします。"
 
 msgid "Automount Filesystem"
-msgstr ""
+msgstr "ファイルシステム 自動マウント"
 
 msgid "Automount Swap"
-msgstr ""
+msgstr "スワップ 自動マウント"
 
 msgid "Available"
 msgstr "使用可"
@@ -462,9 +489,6 @@ msgstr "概要へ戻る"
 msgid "Back to scan results"
 msgstr "スキャン結果へ戻る"
 
-msgid "Background Scan"
-msgstr "バックグラウンドスキャン"
-
 msgid "Backup / Flash Firmware"
 msgstr "バックアップ / ファームウェア更新"
 
@@ -472,7 +496,7 @@ msgid "Backup / Restore"
 msgstr "バックアップ / 復元"
 
 msgid "Backup file list"
-msgstr "ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97ã\83»ã\83\95ã\82¡ã\82¤ã\83«リスト"
+msgstr "ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97ã\83\95ã\82¡ã\82¤ã\83« リスト"
 
 msgid "Bad address specified!"
 msgstr "無効なアドレスです!"
@@ -488,12 +512,19 @@ msgid ""
 "configuration files marked by opkg, essential base files and the user "
 "defined backup patterns."
 msgstr ""
-"以下はバックアップの際に含まれるファイルリストです。このリストは、opkgによっ"
-"て認識されている設定ファイル、重要なベースファイル、ユーザーが設定した正規表"
-"現に一致したファイルの一覧です。"
+"以下は、バックアップの際に含まれるファイルのリストです。このリストは、opkgに"
+"よって認識されている設定ファイル、重要なベースファイル、ユーザーが設定した正"
+"規表現に一致したファイルの一覧です。"
+
+msgid "Bind interface"
+msgstr ""
 
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
+"ワイルドカード アドレスではなく、特定のインターフェースのみにバインドします。"
+
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
 
 msgid "Bitrate"
 msgstr "ビットレート"
@@ -505,10 +536,10 @@ msgid "Bridge"
 msgstr "ブリッジ"
 
 msgid "Bridge interfaces"
-msgstr "ブリッジインターフェース"
+msgstr "ブリッジ インターフェース"
 
 msgid "Bridge unit number"
-msgstr "ブリッジユニット番号"
+msgstr "ブリッジ ユニット番号"
 
 msgid "Bring up on boot"
 msgstr "デフォルトで起動する"
@@ -526,12 +557,14 @@ msgid ""
 "Build/distribution specific feed definitions. This file will NOT be "
 "preserved in any sysupgrade."
 msgstr ""
+"ビルド/ディストリビューション固有のフィード定義です。このファイルはsysupgrade"
+"の際に引き継がれません。"
 
 msgid "Buttons"
 msgstr "ボタン"
 
 msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr ""
+msgstr "CA証明書(空白の場合、初回の接続後に保存されます。)"
 
 msgid "CPU usage (%)"
 msgstr "CPU使用率 (%)"
@@ -540,7 +573,7 @@ msgid "Cancel"
 msgstr "キャンセル"
 
 msgid "Category"
-msgstr ""
+msgstr "カテゴリー"
 
 msgid "Chain"
 msgstr "チェイン"
@@ -561,7 +594,11 @@ msgid "Check"
 msgstr "チェック"
 
 msgid "Check fileystems before mount"
+msgstr "マウント前にファイルシステムをチェックする"
+
+msgid "Check this option to delete the existing networks from this radio."
 msgstr ""
+"この無線から既存のネットワークを削除する場合、このオプションを有効にします。"
 
 msgid "Checksum"
 msgstr "チェックサム"
@@ -572,10 +609,10 @@ msgid ""
 "fill out the <em>create</em> field to define a new zone and attach the "
 "interface to it."
 msgstr ""
-"このインターフェースに設定するファイウォール・ゾーンを選択してください。<em>"
-"設定しない</em>を選択すると、設定済みのゾーンを削除します。また、<em>作成</"
-"em>フィールドにゾーン名を入力すると、新しくゾーンを作成し、このインターフェー"
-"ã\82¹ã\81«è¨­å®\9aã\81\97ã\81¾ã\81\99ã\80\82"
+"このインターフェースに設定するファイウォール ゾーンを選択してください。<em>設"
+"定しない</em>を選択すると、設定済みのゾーンを削除します。また、<em>作成</em>"
+"フィールドにゾーン名を入力すると、新しくゾーンを作成し、このインターフェース"
+"に設定します。"
 
 msgid ""
 "Choose the network(s) you want to attach to this wireless interface or fill "
@@ -595,10 +632,10 @@ msgid ""
 "configuration files. To reset the firmware to its initial state, click "
 "\"Perform reset\" (only possible with squashfs images)."
 msgstr ""
-"\"バックアップアーカイブの作成\"をクリックすると、現在の設定ファイルをtar形式"
-"のアーカイブファイルとしてダウンロードします。設定のリセットを行う場合、\"設"
-"å®\9aã\83ªã\82»ã\83\83ã\83\88\"ã\82\92ã\82¯ã\83ªã\83\83ã\82¯ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82\81\9fã\81 ã\81\97ã\80\81squashfsã\82\92ã\81\8a使ã\81\84ã\81®å ´å\90\88ã\81®ã\81¿ä½¿ç\94¨å\8f¯"
-"能です)"
+"\"バックアップ アーカイブの作成\"をクリックすると、現在の設定ファイルをtar形"
+"式のアーカイブファイルとしてダウンロードします。設定のリセットを行う場"
+"å\90\88ã\80\81\"設å®\9aã\83ªã\82»ã\83\83ã\83\88\"ã\82\92ã\82¯ã\83ªã\83\83ã\82¯ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82\81\9fã\81 ã\81\97ã\80\81squashfsã\82\92ã\81\8a使ã\81\84ã\81®å ´å\90\88ã\81®"
+"み使用可能です)"
 
 msgid "Client"
 msgstr "クライアント"
@@ -625,9 +662,6 @@ msgstr "コマンド"
 msgid "Common Configuration"
 msgstr "一般設定"
 
-msgid "Compression"
-msgstr "圧縮"
-
 msgid "Configuration"
 msgstr "設定"
 
@@ -650,7 +684,7 @@ msgid "Connection Limit"
 msgstr "接続制限"
 
 msgid "Connection to server fails when TLS cannot be used"
-msgstr ""
+msgstr "TLSが使用できないとき、サーバーへの接続は失敗します。"
 
 msgid "Connections"
 msgstr "ネットワーク接続"
@@ -668,7 +702,7 @@ msgid "Cover the following interfaces"
 msgstr "インターフェースの指定"
 
 msgid "Create / Assign firewall-zone"
-msgstr "ファイアウォールゾーンの作成 / 割り当て"
+msgstr "ファイアウォール ゾーンの作成 / 割り当て"
 
 msgid "Create Interface"
 msgstr "インターフェースの作成"
@@ -692,9 +726,11 @@ msgid ""
 "Custom feed definitions, e.g. private feeds. This file can be preserved in a "
 "sysupgrade."
 msgstr ""
+"プライベート フィードなどのカスタム フィード定義です。このファイルは"
+"sysupgrade時に引き継ぐことができます。"
 
 msgid "Custom feeds"
-msgstr ""
+msgstr "カスタム フィード"
 
 msgid ""
 "Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
@@ -722,13 +758,13 @@ msgid "DHCPv6 Leases"
 msgstr "DHCPv6 リース"
 
 msgid "DHCPv6 client"
-msgstr ""
+msgstr "DHCPv6 クライアント"
 
 msgid "DHCPv6-Mode"
-msgstr ""
+msgstr "DHCPv6-モード"
 
 msgid "DHCPv6-Service"
-msgstr ""
+msgstr "DHCPv6-サービス"
 
 msgid "DNS"
 msgstr "DNS"
@@ -740,7 +776,7 @@ msgid "DNS-Label / FQDN"
 msgstr ""
 
 msgid "DNSSEC"
-msgstr ""
+msgstr "DNSSEC"
 
 msgid "DNSSEC check unsigned"
 msgstr ""
@@ -749,13 +785,13 @@ msgid "DPD Idle Timeout"
 msgstr ""
 
 msgid "DS-Lite AFTR address"
-msgstr ""
+msgstr "DS-Lite AFTR アドレス"
 
 msgid "DSL"
-msgstr ""
+msgstr "DSL"
 
 msgid "DSL Status"
-msgstr ""
+msgstr "DSL ステータス"
 
 msgid "DSL line mode"
 msgstr ""
@@ -773,13 +809,13 @@ msgid "Default %d"
 msgstr "標準設定 %d"
 
 msgid "Default gateway"
-msgstr "デフォルトゲートウェイ"
+msgstr "デフォルト ゲートウェイ"
 
 msgid "Default is stateless + stateful"
-msgstr ""
+msgstr "デフォルトは ステートレス + ステートフル です。"
 
 msgid "Default route"
-msgstr ""
+msgstr "デフォルト ルート"
 
 msgid "Default state"
 msgstr "標準状態"
@@ -817,7 +853,7 @@ msgid "Device Configuration"
 msgstr "デバイス設定"
 
 msgid "Device is rebooting..."
-msgstr ""
+msgstr "デバイスを再起動中です..."
 
 msgid "Device unreachable"
 msgstr ""
@@ -845,19 +881,19 @@ 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の応答を破棄します"
 
 msgid "Displaying only packages containing"
-msgstr "右記の表示を含んだパッケージのみを表示中"
+msgstr "右記の文字列を含んだパッケージのみを表示中"
 
 msgid "Distance Optimization"
 msgstr "距離の最適化"
@@ -866,7 +902,7 @@ msgid "Distance to farthest network member in meters."
 msgstr "最も遠い端末との距離(メートル)を設定してください。"
 
 msgid "Distribution feeds"
-msgstr ""
+msgstr "ディストリビューション フィード"
 
 msgid "Diversity"
 msgstr "ダイバシティ"
@@ -887,19 +923,19 @@ msgstr ""
 "無効なリプライをキャッシュしません (例:存在しないドメインからの返答など)"
 
 msgid "Do not forward requests that cannot be answered by public name servers"
-msgstr "パブリックDNSサーバーが返答できなかったリクエストを転送しません"
+msgstr "パブリック DNSサーバーが返答できなかったリクエストを転送しません"
 
 msgid "Do not forward reverse lookups for local networks"
-msgstr "ローカルネットワークへの逆引きを転送しません"
-
-msgid "Do not send probe responses"
-msgstr "プローブレスポンスを送信しない"
+msgstr "ローカル ネットワークへの逆引きを転送しません"
 
 msgid "Domain required"
 msgstr "ドメイン必須"
 
 msgid "Domain whitelist"
-msgstr "ドメイン・ホワイトリスト"
+msgstr "ドメイン ホワイトリスト"
+
+msgid "Don't Fragment"
+msgstr ""
 
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
@@ -912,7 +948,7 @@ msgid "Download and install package"
 msgstr "パッケージのダウンロードとインストール"
 
 msgid "Download backup"
-msgstr "バックアップアーカイブのダウンロード"
+msgstr "バックアップ アーカイブのダウンロード"
 
 msgid "Dropbear Instance"
 msgstr "Dropbear設定"
@@ -926,11 +962,10 @@ msgstr ""
 "す。"
 
 msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
+msgstr "Dual-Stack Lite (RFC6333)"
 
 msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr ""
-"ダイナミック <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
+msgstr "動的 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
 
 msgid "Dynamic tunnel"
 msgstr "動的トンネル機能"
@@ -974,17 +1009,20 @@ msgstr "<abbr title=\"Spanning Tree Protocol\">STP</abbr>を有効にする"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "HE.netの動的endpoint更新を有効にします"
 
+msgid "Enable IPv6 negotiation"
+msgstr "IPv6 ネゴシエーションの有効化"
+
 msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "PPPリンクのIPv6ネゴシエーションを有効にする"
+msgstr "PPPリンクのIPv6 ネゴシエーションを有効にする"
 
 msgid "Enable Jumbo Frame passthrough"
-msgstr "ジャンボフレームパススルーを有効にする"
+msgstr "ジャンボフレーム パススルーを有効にする"
 
 msgid "Enable NTP client"
 msgstr "NTPクライアント機能を有効にする"
 
 msgid "Enable Single DES"
-msgstr ""
+msgstr "シングルDESの有効化"
 
 msgid "Enable TFTP server"
 msgstr "TFTPサーバーを有効にする"
@@ -993,10 +1031,10 @@ 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 "ラーニングエイジング機能を有効にする"
+msgstr "ラーニング エイジング機能を有効にする"
 
 msgid "Enable mirroring of incoming packets"
 msgstr ""
@@ -1004,6 +1042,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "マウント設定を有効にする"
 
@@ -1016,8 +1057,13 @@ 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 "スパニングツリープロトコルを有効にする"
+msgstr "スパニングツリー プロトコルを有効にする"
 
 msgid "Encapsulation mode"
 msgstr "カプセル化モード"
@@ -1025,6 +1071,12 @@ msgstr "カプセル化モード"
 msgid "Encryption"
 msgstr "暗号化モード"
 
+msgid "Endpoint Host"
+msgstr "エンドポイント ホスト"
+
+msgid "Endpoint Port"
+msgstr "エンドポイント ポート"
+
 msgid "Erasing..."
 msgstr "消去中..."
 
@@ -1041,7 +1093,7 @@ msgid "Ethernet Switch"
 msgstr "イーサネットスイッチ"
 
 msgid "Exclude interfaces"
-msgstr ""
+msgstr "除外インターフェース"
 
 msgid "Expand hosts"
 msgstr "拡張ホスト設定"
@@ -1049,7 +1101,6 @@ msgstr "拡張ホスト設定"
 msgid "Expires"
 msgstr "期限切れ"
 
-#, fuzzy
 msgid ""
 "Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
 msgstr ""
@@ -1057,22 +1108,25 @@ msgstr ""
 "code>)."
 
 msgid "External"
+msgstr "外部"
+
+msgid "External R0 Key Holder List"
+msgstr ""
+
+msgid "External R1 Key Holder List"
 msgstr ""
 
 msgid "External system log server"
-msgstr "外部システムログサーバー"
+msgstr "外部システムログ サーバー"
 
 msgid "External system log server port"
-msgstr "外部システムログ・サーバーポート"
+msgstr "外部システムログ・サーバー ポート"
 
 msgid "External system log server protocol"
-msgstr ""
+msgstr "外部システムログ・サーバー プロトコル"
 
 msgid "Extra SSH command options"
-msgstr ""
-
-msgid "Fast Frames"
-msgstr "ファスト・フレーム"
+msgstr "拡張 SSHコマンドオプション"
 
 msgid "File"
 msgstr "ファイル"
@@ -1090,15 +1144,17 @@ msgid "Filter private"
 msgstr "プライベートフィルター"
 
 msgid "Filter useless"
-msgstr "Filter useless"
+msgstr ""
 
 msgid ""
 "Find all currently attached filesystems and swap and replace configuration "
 "with defaults based on what was detected"
 msgstr ""
+"現在アタッチされている全てのファイルシステムとスワップを検索し、検出結果に基"
+"づいてデフォルト設定を置き換えます。"
 
 msgid "Find and join network"
-msgstr "ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82\92æ¤\9cç´¢ã\81\97ã\81¦参加"
+msgstr "ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\81®æ¤\9cç´¢ã\81¨参加"
 
 msgid "Find package"
 msgstr "パッケージを検索"
@@ -1109,17 +1165,20 @@ msgstr "終了"
 msgid "Firewall"
 msgstr "ファイアウォール"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "ファイアウォール設定"
 
 msgid "Firewall Status"
-msgstr "ファイアウォールステータス"
+msgstr "ファイアウォール ステータス"
 
 msgid "Firmware File"
-msgstr ""
+msgstr "ファームウェア ファイル"
 
 msgid "Firmware Version"
-msgstr "ファームウェアバージョン"
+msgstr "ファームウェア バージョン"
 
 msgid "Fixed source port for outbound DNS queries"
 msgstr "DNSクエリを送信する送信元ポートを固定します"
@@ -1155,9 +1214,12 @@ msgstr "TKIP を使用"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "TKIP 及びCCMP (AES) を使用"
 
-msgid "Force use of NAT-T"
+msgid "Force link"
 msgstr ""
 
+msgid "Force use of NAT-T"
+msgstr "NAT-Tの強制使用"
+
 msgid "Form token mismatch"
 msgstr ""
 
@@ -1168,13 +1230,13 @@ msgid "Forward Error Correction Seconds (FECS)"
 msgstr ""
 
 msgid "Forward broadcast traffic"
-msgstr "ブロードキャストトラフィックを転送する"
+msgstr "ブロードキャスト トラフィックを転送する"
 
 msgid "Forwarding mode"
 msgstr "転送モード"
 
 msgid "Fragmentation Threshold"
-msgstr "フラグメンテーション値"
+msgstr "フラグメンテーションしきい値"
 
 msgid "Frame Bursting"
 msgstr "フレームバースト"
@@ -1185,6 +1247,13 @@ msgstr "空き"
 msgid "Free space"
 msgstr "ディスクの空き容量"
 
+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"
 
@@ -1195,7 +1264,7 @@ msgid "Gateway"
 msgstr "ゲートウェイ"
 
 msgid "Gateway ports"
-msgstr "ゲートウェイポート"
+msgstr "ゲートウェイ ポート"
 
 msgid "General Settings"
 msgstr "一般設定"
@@ -1204,13 +1273,13 @@ msgid "General Setup"
 msgstr "一般設定"
 
 msgid "General options for opkg"
-msgstr ""
+msgstr "opkgの一般設定"
 
 msgid "Generate Config"
-msgstr ""
+msgstr "コンフィグ生成"
 
 msgid "Generate archive"
-msgstr "バックアップアーカイブの作成"
+msgstr "バックアップ アーカイブの作成"
 
 msgid "Generic 802.11%s Wireless Controller"
 msgstr "802.11%s 無線LANコントローラ"
@@ -1219,10 +1288,10 @@ msgid "Given password confirmation did not match, password not changed!"
 msgstr "入力されたパスワードが一致しません。パスワードは変更されませんでした!"
 
 msgid "Global Settings"
-msgstr ""
+msgstr "全体設定"
 
 msgid "Global network options"
-msgstr ""
+msgstr "グローバル ネットワークオプション"
 
 msgid "Go to password configuration..."
 msgstr "パスワード設定へ移動..."
@@ -1231,16 +1300,19 @@ msgid "Go to relevant configuration page"
 msgstr "関連する設定ページへ移動"
 
 msgid "Group Password"
-msgstr ""
+msgstr "グループ パスワード"
 
 msgid "Guest"
-msgstr ""
+msgstr "ゲスト"
 
 msgid "HE.net password"
 msgstr "HE.net パスワード"
 
 msgid "HE.net username"
-msgstr ""
+msgstr "HE.net ユーザー名"
+
+msgid "HT mode (802.11n)"
+msgstr "HT モード (802.11n)"
 
 msgid "Handler"
 msgstr "ハンドラ"
@@ -1252,7 +1324,7 @@ msgid "Header Error Code Errors (HEC)"
 msgstr ""
 
 msgid "Heartbeat"
-msgstr ""
+msgstr "ハートビート"
 
 msgid ""
 "Here you can configure the basic aspects of your device like its hostname or "
@@ -1272,10 +1344,10 @@ msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
 msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>の隠匿"
 
 msgid "Host"
-msgstr ""
+msgstr "ホスト"
 
 msgid "Host entries"
-msgstr "ホストエントリー"
+msgstr "ホスト エントリー"
 
 msgid "Host expiry timeout"
 msgstr ""
@@ -1294,10 +1366,13 @@ msgid "Hostnames"
 msgstr "ホスト名"
 
 msgid "Hybrid"
-msgstr ""
+msgstr "ハイブリッド"
 
 msgid "IKE DH Group"
-msgstr ""
+msgstr "IKE DHグループ"
+
+msgid "IP Addresses"
+msgstr "IPアドレス"
 
 msgid "IP address"
 msgstr "IPアドレス"
@@ -1318,7 +1393,7 @@ msgid "IPv4 and IPv6"
 msgstr "IPv4及びIPv6"
 
 msgid "IPv4 assignment length"
-msgstr ""
+msgstr "IPv4 割り当て長"
 
 msgid "IPv4 broadcast"
 msgstr "IPv4 ブロードキャスト"
@@ -1333,7 +1408,7 @@ msgid "IPv4 only"
 msgstr "IPv4のみ"
 
 msgid "IPv4 prefix"
-msgstr ""
+msgstr "IPv4 プレフィクス"
 
 msgid "IPv4 prefix length"
 msgstr "IPv4 プレフィクス長"
@@ -1341,6 +1416,9 @@ msgstr "IPv4 プレフィクス長"
 msgid "IPv4-Address"
 msgstr "IPv4-アドレス"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr "IPv4-in-IPv4 (RFC2003)"
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1351,10 +1429,10 @@ msgid "IPv6 Neighbours"
 msgstr ""
 
 msgid "IPv6 Settings"
-msgstr ""
+msgstr "IPv6 設定"
 
 msgid "IPv6 ULA-Prefix"
-msgstr ""
+msgstr "IPv6 ULA-プレフィクス"
 
 msgid "IPv6 WAN Status"
 msgstr "IPv6 WAN ステータス"
@@ -1369,7 +1447,7 @@ msgid "IPv6 assignment hint"
 msgstr ""
 
 msgid "IPv6 assignment length"
-msgstr ""
+msgstr "IPv6 割り当て長"
 
 msgid "IPv6 gateway"
 msgstr "IPv6 ゲートウェイ"
@@ -1389,6 +1467,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-アドレス"
 
+msgid "IPv6-PD"
+msgstr "IPv6-PD"
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1405,24 +1486,25 @@ 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"
-msgstr "固定のデバイスノード名のかわりに、設定したUUIDを使用してマウントします"
+msgstr ""
+"固定のデバイス ノード名のかわりに、設定されたUUIDを使用してマウントします"
 
 msgid ""
 "If specified, mount the device by the partition label instead of a fixed "
 "device node"
 msgstr ""
-"固定のデバイスã\83\8eã\83¼ã\83\89å\90\8dã\81®ã\81\8bã\82\8fã\82\8aã\81«ã\80\81設å®\9aã\81\97ã\81\9fã\83\91ã\83¼ã\83\86ã\82£ã\82·ã\83§ã\83³ã\83©ã\83\99ã\83«ã\82\92使ç\94¨ã\81\97ã\81¦ã\83\9eã\82¦"
-"ントします。"
+"固定のデバイス ã\83\8eã\83¼ã\83\89å\90\8dã\81®ã\81\8bã\82\8fã\82\8aã\81«ã\80\81設å®\9aã\81\95ã\82\8cã\81\9fã\83\91ã\83¼ã\83\86ã\82£ã\82·ã\83§ã\83³ ã\83©ã\83\99ã\83«ã\82\92使ç\94¨ã\81\97ã\81¦"
+"ã\83\9eã\82¦ã\83³ã\83\88ã\81\97ã\81¾ã\81\99ã\80\82"
 
 msgid "If unchecked, no default route is configured"
-msgstr "チェックされていない場合、デフォルトルートを設定しません"
+msgstr "チェックされていない場合、デフォルト ルートを設定しません"
 
 msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "チェックされていない場合、通知されたDNSサーバーアドレスを無視します"
+msgstr "チェックされていない場合、通知されたDNSサーバー アドレスを無視します"
 
 msgid ""
 "If your physical memory is insufficient unused data can be temporarily "
@@ -1431,11 +1513,11 @@ msgid ""
 "slow process as the swap-device cannot be accessed with the high datarates "
 "of the <abbr title=\"Random Access Memory\">RAM</abbr>."
 msgstr ""
-"ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\81\8cä¸\8d足ã\81\99ã\82\8bå ´å\90\88ã\80\81ä¸\80æ\99\82ç\9a\84ã\81«ã\83\87ã\83¼ã\82¿ã\82\92ã\82\88ã\82\8a大容é\87\8fã\81ª<abbr title=\"Random "
-"Access Memory\">RAM</abbr>デバイスにスワップすることが出来ます。ただし、デー"
-"ã\82¿ã\81®ã\82¹ã\83¯ã\83\83ã\83\97ã\81¯é\9d\9e常ã\81«é\81\85ã\81\84å\87¦ç\90\86ã\81§ã\81\82ã\82\8bã\81\9fã\82\81ã\80\81ã\82¹ã\83¯ã\83\83ã\83\97ã\81\99ã\82\8bã\83\87ã\83\90ã\82¤ã\82¹ã\81«ã\81¯é«\98é\80\9fã\81«<abbr "
-"title=\"Random Access Memory\">RAM</abbr>にアクセスすることができなくなる恐れ"
-"ã\81\8cã\81\82ã\82\8aます。"
+"ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\81\8cä¸\8d足ã\81\99ã\82\8bå ´å\90\88ã\80\81使ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83\87ã\83¼ã\82¿ã\82\92ä¸\80æ\99\82ç\9a\84ã\81«ã\82¹ã\83¯ã\83\83ã\83\97 ã\83\87ã\83\90ã\82¤ã\82¹ã\81«"
+"スワップし、<abbr title=\"Random Access Memory\">RAM</abbr>の使用可能領域を増"
+"ã\82\84ã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81¾ã\81\99ã\80\82ã\81\9fã\81 ã\81\97ã\80\81ã\82¹ã\83¯ã\83\83ã\83\97 ã\83\87ã\83\90ã\82¤ã\82¹ã\81¯<abbr title=\"Random Access "
+"Memory\">RAM</abbr>から高速にアクセスすることができないため、データのスワップ"
+"ã\81¯é\9d\9e常ã\81«é\81\85ã\81\84å\87¦ç\90\86ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ます。"
 
 msgid "Ignore <code>/etc/hosts</code>"
 msgstr "<code>/etc/hosts</code>を無視"
@@ -1444,7 +1526,7 @@ msgid "Ignore interface"
 msgstr "インターフェースを無視する"
 
 msgid "Ignore resolve file"
-msgstr "リゾルバファイルを無視する"
+msgstr "リゾルバ ファイルを無視する"
 
 msgid "Image"
 msgstr "イメージ"
@@ -1503,7 +1585,7 @@ msgid "Interface is shutting down..."
 msgstr "インターフェース終了中..."
 
 msgid "Interface name"
-msgstr ""
+msgstr "インターフェース名"
 
 msgid "Interface not present or not connected yet."
 msgstr "インターフェースが存在しないか、接続していません"
@@ -1518,10 +1600,10 @@ msgid "Interfaces"
 msgstr "インターフェース"
 
 msgid "Internal"
-msgstr ""
+msgstr "内部"
 
 msgid "Internal Server Error"
-msgstr "内部サーバーエラー"
+msgstr "内部サーバー エラー"
 
 msgid "Invalid"
 msgstr "入力値が不正です"
@@ -1533,17 +1615,20 @@ msgid "Invalid VLAN ID given! Only unique IDs are allowed"
 msgstr "無効なVLAN IDです! ユニークなIDを入力してください。"
 
 msgid "Invalid username and/or password! Please try again."
-msgstr "ユーザー名とパスワードが不正です! もう一度入力してください。"
+msgstr ""
+"ユーザー名かパスワード、もしくは両方が不正です!もう一度入力してください。"
+
+msgid "Isolate Clients"
+msgstr ""
 
-#, 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!"
 msgstr ""
-"æ\9b´æ\96°ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\82¤ã\83¡ã\83¼ã\82¸ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\81\93ã\81®ã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\83¡ã\83¢ã\83ªã\81«é\81©å\90\88ã\81\97ã\81¾ã\81\9bã\82\93ã\80\82ã\82\82ã\81\86ä¸\80"
-"度イメージファイルを確認してください!"
+"æ\9b´æ\96°ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\82¤ã\83¡ã\83¼ã\82¸ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\81\93ã\81®ã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\83¡ã\83¢ã\83ªã\81«é\81©å\90\88ã\81\97ã\81¾ã\81\9bã\82\93ã\80\82ã\82¤ã\83¡ã\83¼"
+"ジファイルを確認してください!"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr "JavaScriptを有効にしてください!"
 
 msgid "Join Network"
@@ -1553,16 +1638,16 @@ msgid "Join Network: Wireless Scan"
 msgstr "ネットワークに接続する: 無線LANスキャン"
 
 msgid "Joining Network: %q"
-msgstr ""
+msgstr "ネットワークに接続: %q"
 
 msgid "Keep settings"
 msgstr "設定を保持する"
 
 msgid "Kernel Log"
-msgstr "カーネルログ"
+msgstr "カーネル ログ"
 
 msgid "Kernel Version"
-msgstr "カーネルバージョン"
+msgstr "カーネル バージョン"
 
 msgid "Key"
 msgstr "暗号キー"
@@ -1598,13 +1683,13 @@ msgid "Language and Style"
 msgstr "言語とスタイル"
 
 msgid "Latency"
-msgstr ""
+msgstr "レイテンシー"
 
 msgid "Leaf"
 msgstr ""
 
 msgid "Lease time"
-msgstr ""
+msgstr "リース時間"
 
 msgid "Lease validity time"
 msgstr "リース有効時間"
@@ -1634,7 +1719,7 @@ msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
 msgstr ""
 
 msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
+msgstr "待ち受けをこれらのインターフェースとループバックに制限します。"
 
 msgid "Line Attenuation (LATN)"
 msgstr ""
@@ -1658,9 +1743,25 @@ msgstr ""
 "問い合わせを転送する<abbr title=\"Domain Name System\">DNS</abbr> サーバーの"
 "リストを設定します"
 
-msgid "List of SSH key files for auth"
+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暗号キー ファイルのリスト"
+
 msgid "List of domains to allow RFC1918 responses for"
 msgstr "RFC1918の応答を許可するリスト"
 
@@ -1668,7 +1769,10 @@ msgid "List of hosts that supply bogus NX domain results"
 msgstr ""
 
 msgid "Listen Interfaces"
-msgstr ""
+msgstr "待ち受けインターフェース"
+
+msgid "Listen Port"
+msgstr "待ち受けポート"
 
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
@@ -1688,7 +1792,7 @@ msgid "Loading"
 msgstr "ロード中"
 
 msgid "Local IP address to assign"
-msgstr ""
+msgstr "割り当てるローカル IPアドレス"
 
 msgid "Local IPv4 address"
 msgstr "ローカル IPv4 アドレス"
@@ -1700,13 +1804,13 @@ msgid "Local Service Only"
 msgstr ""
 
 msgid "Local Startup"
-msgstr "ローカル Startup"
+msgstr "ローカル スタートアップ"
 
 msgid "Local Time"
 msgstr "時刻"
 
 msgid "Local domain"
-msgstr "ローカルドメイン"
+msgstr "ローカル ドメイン"
 
 msgid ""
 "Local domain specification. Names matching this domain are never forwarded "
@@ -1715,9 +1819,11 @@ msgstr ""
 
 msgid "Local domain suffix appended to DHCP names and hosts file entries"
 msgstr ""
+"DHCP名とhostsファイルのエントリーに付される、ローカルドメイン サフィックスで"
+"す。"
 
 msgid "Local server"
-msgstr "ローカルサーバー"
+msgstr "ローカル サーバー"
 
 msgid ""
 "Localise hostname depending on the requesting subnet if multiple IPs are "
@@ -1728,13 +1834,13 @@ msgid "Localise queries"
 msgstr "ローカライズクエリ"
 
 msgid "Locked to channel %s used by: %s"
-msgstr ""
+msgstr "チャネル %s にロックされています。次で使用されています: %s"
 
 msgid "Log output level"
 msgstr "ログ出力レベル"
 
 msgid "Log queries"
-msgstr "ログクエリー"
+msgstr "ログ クエリ"
 
 msgid "Logging"
 msgstr "ログ"
@@ -1756,7 +1862,7 @@ msgid "MAC-Address"
 msgstr "MAC-アドレス"
 
 msgid "MAC-Address Filter"
-msgstr "MAC-アドレスフィルタ"
+msgstr "MAC-アドレス フィルタ"
 
 msgid "MAC-Filter"
 msgstr "MAC-フィルタ"
@@ -1765,13 +1871,13 @@ msgid "MAC-List"
 msgstr "MAC-リスト"
 
 msgid "MAP / LW4over6"
-msgstr ""
+msgstr "MAP / LW4over6"
 
 msgid "MB/s"
 msgstr "MB/s"
 
 msgid "MD5"
-msgstr ""
+msgstr "MD5"
 
 msgid "MHz"
 msgstr "MHz"
@@ -1783,16 +1889,14 @@ msgid ""
 "Make sure to clone the root filesystem using something like the commands "
 "below:"
 msgstr ""
+"以下のようなコマンドを使用して、ルート ファイルシステムを複製してください:"
 
 msgid "Manual"
-msgstr ""
+msgstr "手動"
 
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "最大レート"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "DHCPリースの許可される最大数"
 
@@ -1812,6 +1916,8 @@ msgid ""
 "Maximum length of the name is 15 characters including the automatic protocol/"
 "bridge prefix (br-, 6in4-, pppoe- etc.)"
 msgstr ""
+"名前の長さは、自動的に含まれるプロトコル/ブリッジ プレフィックス (br-, "
+"6in4-, pppoe- など)と合わせて最大15文字です。"
 
 msgid "Maximum number of leased addresses."
 msgstr "リースするアドレスの最大数です"
@@ -1828,9 +1934,6 @@ msgstr "メモリ使用率 (%)"
 msgid "Metric"
 msgstr "メトリック"
 
-msgid "Minimum Rate"
-msgstr "最小レート"
-
 msgid "Minimum hold time"
 msgstr "最短保持時間"
 
@@ -1843,14 +1946,17 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "プロトコル %qのプロトコル拡張が見つかりません"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "モード"
 
 msgid "Model"
-msgstr ""
+msgstr "モデル"
 
 msgid "Modem device"
-msgstr "モデムデバイス"
+msgstr "モデム デバイス"
 
 msgid "Modem init timeout"
 msgstr "モデム初期化タイムアウト"
@@ -1881,7 +1987,7 @@ msgstr ""
 "表示しています。"
 
 msgid "Mount filesystems not specifically configured"
-msgstr ""
+msgstr "明確に設定されていないファイルシステムをマウントします。"
 
 msgid "Mount options"
 msgstr "マウントオプション"
@@ -1890,7 +1996,7 @@ msgid "Mount point"
 msgstr "マウントポイント"
 
 msgid "Mount swap not specifically configured"
-msgstr ""
+msgstr "明確に設定されていないスワップ パーティションをマウントします。"
 
 msgid "Mounted file systems"
 msgstr "マウント中のファイルシステム"
@@ -1901,32 +2007,32 @@ msgstr "下へ"
 msgid "Move up"
 msgstr "上へ"
 
-msgid "Multicast Rate"
-msgstr "マルチキャストレート"
-
 msgid "Multicast address"
-msgstr "マルチキャストアドレス"
+msgstr "マルチキャスト アドレス"
 
 msgid "NAS ID"
 msgstr "NAS ID"
 
 msgid "NAT-T Mode"
-msgstr ""
+msgstr "NAT-T モード"
 
 msgid "NAT64 Prefix"
+msgstr "NAT64 プレフィクス"
+
+msgid "NCM"
 msgstr ""
 
 msgid "NDP-Proxy"
-msgstr ""
+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 "名前"
@@ -1947,10 +2053,10 @@ msgid "Network"
 msgstr "ネットワーク"
 
 msgid "Network Utilities"
-msgstr "ネットワークユーティリティ"
+msgstr "ネットワーク ユーティリティ"
 
 msgid "Network boot image"
-msgstr "ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83»ã\83\96ã\83¼ã\83\88ç\94¨ã\82¤ã\83¡ã\83¼ã\82¸"
+msgstr "ネットワークブート用イメージ"
 
 msgid "Network without interfaces."
 msgstr ""
@@ -1962,7 +2068,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 "チェイン内にルールがありません"
@@ -1983,7 +2089,7 @@ msgid "No network name specified"
 msgstr "ネットワーク名が設定されていません"
 
 msgid "No package lists available"
-msgstr "パッケージリストがありません"
+msgstr "パッケージ リストがありません"
 
 msgid "No password set!"
 msgstr "パスワードが設定されていません!"
@@ -2007,7 +2113,7 @@ msgid "Non Pre-emtive CRC errors (CRC_P)"
 msgstr ""
 
 msgid "Non-wildcard"
-msgstr ""
+msgstr "非ワイルドカード"
 
 msgid "None"
 msgstr "なし"
@@ -2028,7 +2134,7 @@ msgid "Note: Configuration files will be erased."
 msgstr "注意: 設定ファイルは消去されます。"
 
 msgid "Note: interface name length"
-msgstr ""
+msgstr "注意: インターフェース名の長さ"
 
 msgid "Notice"
 msgstr "注意"
@@ -2059,24 +2165,24 @@ msgid ""
 "<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
 "<samp>eth0.1</samp>)."
 msgstr ""
-"このページではネットワークインターフェースの設定を行うことが出来ます。\"ブ"
-"ã\83ªã\83\83ã\82¸ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹\"ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\97ã\80\81è¤\87æ\95°ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¤ã\83³ã\82¿ã\83¼"
-"ã\83\95ã\82§ã\83¼ã\82¹å\90\8dã\82\92ã\82¹ã\83\9aã\83¼ã\82¹ã\81§å\8cºå\88\87ã\82\8aã\81§å\85¥å\8a\9bã\81\99ã\82\8bã\81\93ã\81¨ã\81§è¤\87æ\95°ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92ã\83\96ã\83ªã\83\83ã\82¸"
-"ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cå\87ºæ\9d¥ã\81¾ã\81\99ã\80\82ã\81¾ã\81\9fã\80\81<samp>INTERFACE.VLANNR</samp>ã\81¨ã\81\84ã\81\86表è¨\98ã\81«ã\82\88ã\82\8a<abbr "
-"title=\"Virtual Local Area Network\">VLAN</abbr>も使用することが出来ます。"
-"(<abbr title=\"for example\">例</abbr>: <samp>eth0.1</samp>)"
+"このページではネットワーク インターフェースの設定を行うことが出来ます。\"ブ"
+"ã\83ªã\83\83ã\82¸ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹\"ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\83\81ã\82§ã\83\83ã\82¯ã\82\92ä»\98ã\81\91ã\80\81è¤\87æ\95°ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ ã\82¤ã\83³"
+"ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92ã\83ªã\82¹ã\83\88ã\81\8bã\82\89é\81¸æ\8a\9eã\81\99ã\82\8bã\81\93ã\81¨ã\81§è¤\87æ\95°ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92ã\83\96ã\83ªã\83\83ã\82¸ã\81\99ã\82\8bã\81\93"
+"ã\81¨ã\81\8cå\87ºæ\9d¥ã\81¾ã\81\99ã\80\82ã\81¾ã\81\9fã\80\81<samp>INTERFACE.VLANNR</samp>ã\81¨ã\81\84ã\81\86表è¨\98ã\81«ã\82\88ã\82\8a<abbr title="
+"\"Virtual Local Area Network\">VLAN</abbr>も使用することが出来ます。(<abbr "
+"title=\"for example\">例</abbr>: <samp>eth0.1</samp>)"
 
 msgid "On-State Delay"
 msgstr "点灯時間"
 
 msgid "One of hostname or mac address must be specified!"
-msgstr "1つ以上のホスト名またはmacアドレスを設定してください!"
+msgstr "1つ以上のホスト名またはMACアドレスを設定してください!"
 
 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つ以上のフィールドに値が設定されていません!"
@@ -2085,10 +2191,10 @@ msgid "Open list..."
 msgstr "リストを開く"
 
 msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
+msgstr "OpenConnect (CISCO AnyConnect)"
 
 msgid "Operating frequency"
-msgstr ""
+msgstr "動作周波数"
 
 msgid "Option changed"
 msgstr "変更されるオプション"
@@ -2096,12 +2202,54 @@ msgstr "変更されるオプション"
 msgid "Option removed"
 msgstr "削除されるオプション"
 
+msgid "Optional"
+msgstr "オプション"
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+"ピアのホストです。名前はインターフェースの起動前に解決されます。(オプショ"
+"ン)"
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr "トンネル インターフェースのMaximum Transmission Unit(オプション)"
+
+msgid "Optional. Port of peer."
+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 "発信パケットと受信パケットに使用されるUDPポート(オプション)"
+
 msgid "Options"
 msgstr "オプション"
 
@@ -2114,11 +2262,8 @@ msgstr "アウト"
 msgid "Outbound:"
 msgstr "送信:"
 
-msgid "Outdoor Channels"
-msgstr "屋外用周波数"
-
 msgid "Output Interface"
-msgstr ""
+msgstr "出力インターフェース"
 
 msgid "Override MAC address"
 msgstr "MACアドレスを上書きする"
@@ -2126,9 +2271,15 @@ msgstr "MACアドレスを上書きする"
 msgid "Override MTU"
 msgstr "MTUを上書きする"
 
-msgid "Override default interface name"
+msgid "Override TOS"
 msgstr ""
 
+msgid "Override TTL"
+msgstr ""
+
+msgid "Override default interface name"
+msgstr "デフォルトのインターフェース名を上書きします。"
+
 msgid "Override the gateway in DHCP responses"
 msgstr "DHCPレスポンス内のゲートウェイアドレスを上書きする"
 
@@ -2160,6 +2311,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2173,7 +2327,7 @@ msgid "PPPoE"
 msgstr "PPPoE"
 
 msgid "PPPoSSH"
-msgstr ""
+msgstr "PPPoSSH"
 
 msgid "PPtP"
 msgstr "PPtP"
@@ -2191,7 +2345,7 @@ msgid "Package libiwinfo required!"
 msgstr "libiwinfo パッケージをインストールしてください!"
 
 msgid "Package lists are older than 24 hours"
-msgstr "パッケージリストは24時間以上前のものです"
+msgstr "パッケージ リストは24時間以上前のものです"
 
 msgid "Package name"
 msgstr "パッケージ名"
@@ -2244,6 +2398,9 @@ msgstr "ピーク:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr "ピア"
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2253,6 +2410,9 @@ msgstr "再起動を実行"
 msgid "Perform reset"
 msgstr "設定リセットを実行"
 
+msgid "Persistent Keep Alive"
+msgstr "永続的なキープアライブ"
+
 msgid "Phy Rate:"
 msgstr "物理レート:"
 
@@ -2283,6 +2443,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr "委任されたプレフィクス (PD)"
+
+msgid "Preshared Key"
+msgstr "事前共有鍵"
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2291,7 +2463,7 @@ msgstr ""
 "を設定した場合、失敗しても無視します"
 
 msgid "Prevent listening on these interfaces."
-msgstr ""
+msgstr "これらのインターフェースでの待ち受けを停止します。"
 
 msgid "Prevents client-to-client communication"
 msgstr "クライアント同士の通信を制限します"
@@ -2299,6 +2471,9 @@ msgstr "クライアント同士の通信を制限します"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Prism2/2.5/3 802.11b 無線LANコントローラ"
 
+msgid "Private Key"
+msgstr "秘密鍵"
+
 msgid "Proceed"
 msgstr "続行"
 
@@ -2306,7 +2481,7 @@ msgid "Processes"
 msgstr "プロセス"
 
 msgid "Profile"
-msgstr ""
+msgstr "プロファイル"
 
 msgid "Prot."
 msgstr "プロトコル"
@@ -2321,7 +2496,7 @@ msgid "Protocol of the new interface"
 msgstr "新しいインターフェースのプロトコル"
 
 msgid "Protocol support is not installed"
-msgstr "プロトコルサポートがインストールされていません"
+msgstr "プロトコル サポートがインストールされていません"
 
 msgid "Provide NTP server"
 msgstr "NTPサーバー機能を有効にする"
@@ -2332,17 +2507,29 @@ msgstr "新しいネットワークを設定する"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "擬似アドホック (ahdemo)"
 
+msgid "Public Key"
+msgstr "公開鍵"
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+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値"
+msgstr "RTS/CTSしきい値"
 
 msgid "RX"
 msgstr "RX"
@@ -2354,7 +2541,7 @@ msgid "RaLink 802.11%s Wireless Controller"
 msgstr "RaLink 802.11%s 無線LANコントローラ"
 
 msgid "Radius-Accounting-Port"
-msgstr "Radiusアカウントサーバーポート番号"
+msgstr "Radiusアカウントサーバー ポート番号"
 
 msgid "Radius-Accounting-Secret"
 msgstr "Radiusアカウント秘密鍵"
@@ -2363,7 +2550,7 @@ msgid "Radius-Accounting-Server"
 msgstr "Radiusアカウントサーバー"
 
 msgid "Radius-Authentication-Port"
-msgstr "Radius認証サーバーポート番号"
+msgstr "Radius認証サーバー ポート番号"
 
 msgid "Radius-Authentication-Secret"
 msgstr "Radius認証秘密鍵"
@@ -2399,7 +2586,6 @@ msgstr ""
 msgid "Really reset all changes?"
 msgstr "本当に全ての変更をリセットしますか?"
 
-#, fuzzy
 msgid ""
 "Really shut down network?\\nYou might lose access to this device if you are "
 "connected via this interface."
@@ -2423,7 +2609,7 @@ msgid "Realtime Connections"
 msgstr "リアルタイム・コネクション"
 
 msgid "Realtime Graphs"
-msgstr "リアルタイムグラフ"
+msgstr "リアルタイム グラフ"
 
 msgid "Realtime Load"
 msgstr "リアルタイム・ロード"
@@ -2434,6 +2620,9 @@ msgstr "リアルタイム・トラフィック"
 msgid "Realtime Wireless"
 msgstr "リアルタイム・無線LAN"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "DNSリバインディング・プロテクション"
 
@@ -2452,6 +2641,9 @@ msgstr "受信"
 msgid "Receiver Antenna"
 msgstr "受信アンテナ"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr "WireGuard インターフェースのIPアドレスです。(推奨)"
+
 msgid "Reconnect this interface"
 msgstr "インターフェースの再接続"
 
@@ -2461,9 +2653,6 @@ msgstr "インターフェース再接続中"
 msgid "References"
 msgstr "参照カウンタ"
 
-msgid "Regulatory Domain"
-msgstr "規制ドメイン"
-
 msgid "Relay"
 msgstr "リレー"
 
@@ -2477,7 +2666,10 @@ msgid "Relay bridge"
 msgstr "リレーブリッジ"
 
 msgid "Remote IPv4 address"
-msgstr "リモートIPv4アドレス"
+msgstr "リモート IPv4アドレス"
+
+msgid "Remote IPv4 address or FQDN"
+msgstr "リモート IPv4アドレス または FQDN"
 
 msgid "Remove"
 msgstr "削除"
@@ -2492,17 +2684,39 @@ msgid "Replace wireless configuration"
 msgstr "無線設定を置換する"
 
 msgid "Request IPv6-address"
-msgstr ""
+msgstr "IPv6-アドレスのリクエスト"
 
 msgid "Request IPv6-prefix of length"
-msgstr ""
+msgstr "リクエストするIPv6-プレフィクス長"
 
 msgid "Require TLS"
-msgstr ""
+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 ""
+"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 ""
+"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 "
 "come from unsigned domains"
@@ -2545,16 +2759,22 @@ msgid "Root directory for files served via TFTP"
 msgstr "TFTP経由でファイルを取り扱う際のルートディレクトリ"
 
 msgid "Root preparation"
+msgstr "ルートの準備"
+
+msgid "Route Allowed IPs"
 msgstr ""
 
+msgid "Route type"
+msgstr "ルート タイプ"
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
 msgid "Router Advertisement-Service"
-msgstr ""
+msgstr "ルーター アドバタイズメント-サービス"
 
 msgid "Router Password"
-msgstr "ルーターパスワード"
+msgstr "ルーター パスワード"
 
 msgid "Routes"
 msgstr "経路情報"
@@ -2573,7 +2793,7 @@ msgid "Run filesystem check"
 msgstr "ファイルシステムチェックを行う"
 
 msgid "SHA256"
-msgstr ""
+msgstr "SHA256"
 
 msgid ""
 "SIXXS supports TIC only, for static tunnels using IP protocol 41 (RFC4213) "
@@ -2584,19 +2804,19 @@ msgid "SIXXS-handle[/Tunnel-ID]"
 msgstr ""
 
 msgid "SNR"
-msgstr ""
+msgstr "SNR"
 
 msgid "SSH Access"
 msgstr "SSHアクセス"
 
 msgid "SSH server address"
-msgstr ""
+msgstr "SSH サーバーアドレス"
 
 msgid "SSH server port"
-msgstr ""
+msgstr "SSH サーバーポート"
 
 msgid "SSH username"
-msgstr ""
+msgstr "SSH ユーザー名"
 
 msgid "SSH-Keys"
 msgstr "SSHキー"
@@ -2638,14 +2858,11 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "クライアントの分離"
 
-msgid "Separate WDS"
-msgstr "WDSを分離する"
-
 msgid "Server Settings"
 msgstr "サーバー設定"
 
 msgid "Server password"
-msgstr ""
+msgstr "サーバー パスワード"
 
 msgid ""
 "Server password, enter the specific password of the tunnel when the username "
@@ -2653,7 +2870,7 @@ msgid ""
 msgstr ""
 
 msgid "Server username"
-msgstr ""
+msgstr "サーバー ユーザー名"
 
 msgid "Service Name"
 msgstr "サービス名"
@@ -2664,9 +2881,13 @@ msgstr "サービスタイプ"
 msgid "Services"
 msgstr "サービス"
 
-#, fuzzy
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
-msgstr "時刻設定"
+msgstr "時刻同期設定"
 
 msgid "Setup DHCP Server"
 msgstr "DHCPサーバーを設定"
@@ -2675,7 +2896,7 @@ msgid "Severely Errored Seconds (SES)"
 msgstr ""
 
 msgid "Short GI"
-msgstr ""
+msgstr "Short GI"
 
 msgid "Show current backup file list"
 msgstr "現在のバックアップファイルのリストを表示する"
@@ -2699,7 +2920,7 @@ msgid "Size"
 msgstr "サイズ"
 
 msgid "Size (.ipk)"
-msgstr ""
+msgstr "サイズ (.ipk)"
 
 msgid "Skip"
 msgstr "スキップ"
@@ -2728,15 +2949,14 @@ msgstr "申し訳ありません。リクエストされたオブジェクトは
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "申し訳ありません。サーバーに予期せぬエラーが発生しました。"
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "申し訳ありません。現在このボードではsysupgradeがサポートがされていないため、"
-"ファームウェア更新は手動で行っていただく必要があります。OpenWrt wikiを参照し"
-"ã\81¦ã\80\81ã\81\93ã\81®ã\83\87ã\83\90ã\82¤ã\82¹ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«æ\89\8bé \86ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82"
+"ファームウェア更新は手動で行っていただく必要があります。wikiを参照して、この"
+"デバイスのインストール手順を参照してください。"
 
 msgid "Sort"
 msgstr "ソート"
@@ -2766,6 +2986,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "暗号鍵を設定します。"
 
@@ -2776,7 +3009,7 @@ msgid "Start priority"
 msgstr "優先順位"
 
 msgid "Startup"
-msgstr "Startup"
+msgstr "スタートアップ"
 
 msgid "Static IPv4 Routes"
 msgstr "IPv4 静的ルーティング"
@@ -2790,9 +3023,6 @@ msgstr "静的リース"
 msgid "Static Routes"
 msgstr "静的ルーティング"
 
-msgid "Static WDS"
-msgstr "静的WDS"
-
 msgid "Static address"
 msgstr "静的アドレス"
 
@@ -2824,7 +3054,7 @@ msgid "Suppress logging of the routine operation of these protocols"
 msgstr ""
 
 msgid "Swap"
-msgstr ""
+msgstr "スワップ"
 
 msgid "Swap Entry"
 msgstr "スワップ機能"
@@ -2861,10 +3091,10 @@ msgid "System Log"
 msgstr "システムログ"
 
 msgid "System Properties"
-msgstr "システムプロパティ"
+msgstr "システム プロパティ"
 
 msgid "System log buffer size"
-msgstr "システムログバッファサイズ"
+msgstr "システムログ バッファサイズ"
 
 msgid "TCP:"
 msgstr "TCP:"
@@ -2888,12 +3118,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 "
@@ -2920,6 +3149,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2970,12 +3203,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 ""
@@ -2986,6 +3218,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3006,7 +3241,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 "
@@ -3084,21 +3318,21 @@ msgid ""
 "This is the content of /etc/rc.local. Insert your own commands here (in "
 "front of 'exit 0') to execute them at the end of the boot process."
 msgstr ""
-"/etc/rc.localを表示しています。あなたの実行したいコマンドを'exit 0'行より上に"
-"入力してください。これらのコマンドはブートプロセスの最後に実行されます。"
+"/etc/rc.localを表示しています。実行したいコマンドを'exit 0'行より上に入力して"
+"ください。これらのコマンドはブートプロセスの最後に実行されます。"
 
 msgid ""
 "This is the local endpoint address assigned by the tunnel broker, it usually "
 "ends with <code>:2</code>"
 msgstr ""
-"プロバイダからアサインされた、ローカルのエンドポイントアドレスです。通常、"
+"プロバイダからアサインされた、ローカルのエンドポイント アドレスです。通常、"
 "<code>:2</code>が終端に設定されます。"
 
 msgid ""
 "This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
 "abbr> in the local network"
 msgstr ""
-"ローカルネットワーク内のみの <abbr title=\"Dynamic Host Configuration "
+"ローカル ネットワーク内のみの <abbr title=\"Dynamic Host Configuration "
 "Protocol\">DHCP</abbr>として使用する"
 
 msgid "This is the plain username for logging into the account"
@@ -3110,7 +3344,7 @@ msgstr ""
 
 msgid "This is the system crontab in which scheduled tasks can be defined."
 msgstr ""
-"スケジュールタスクシステムを使用することで、定期的に特定のタスクの実行を行う"
+"スケジュールタスク システムを使用することで、定期的に特定のタスクの実行を行う"
 "ことが可能です。"
 
 msgid ""
@@ -3146,7 +3380,7 @@ msgid ""
 "To restore configuration files, you can upload a previously generated backup "
 "archive here."
 msgstr ""
-"設定を復元するには、作成しておいたバックアップアーカイブをアップロードしてく"
+"設定を復元するには、作成しておいたバックアップ アーカイブをアップロードしてく"
 "ださい。"
 
 msgid "Tone"
@@ -3189,19 +3423,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 "送信電力"
@@ -3221,6 +3452,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USBデバイス"
 
+msgid "USB Ports"
+msgstr "USB ポート"
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3240,7 +3474,7 @@ msgid "Unmanaged"
 msgstr "Unmanaged"
 
 msgid "Unmount"
-msgstr ""
+msgstr "アンマウント"
 
 msgid "Unsaved Changes"
 msgstr "保存されていない変更"
@@ -3253,16 +3487,16 @@ msgstr "リストの更新"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
-"システムをアップデートする場合、sysupgrade機能に互換性のあるファームウェアイ"
-"ã\83¡ã\83¼ã\82¸ã\82\92ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82\"設å®\9aã\81®ä¿\9dæ\8c\81\"ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81ç\8f¾å\9c¨ã\81®è¨­å®\9aã\82\92"
-"維持してアップデートを行います。ただし、OpenWrt互換のファームウェアイメージが"
-"アップロードされた場合のみ、設定は保持されます。"
+"システムをアップデートする場合、sysupgrade機能に互換性のあるファームウェア イ"
+"ã\83¡ã\83¼ã\82¸ã\82\92ã\81\93ã\81\93ã\81«ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82\"設å®\9aã\81®ä¿\9dæ\8c\81\"ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81ç\8f¾å\9c¨ã\81®"
+"設定を維持してアップデートを行います(互換性のあるファームウェア イメージが必"
+"要)。"
 
 msgid "Upload archive..."
-msgstr "アーカイブをアップロード"
+msgstr "アーカイブをアップロード..."
 
 msgid "Uploaded File"
 msgstr "アップロード完了"
@@ -3283,31 +3517,31 @@ msgid "Use ISO/IEC 3166 alpha2 country codes."
 msgstr "ISO/IEC 3166 alpha2の国コードを使用します。"
 
 msgid "Use MTU on tunnel interface"
-msgstr "トンネルインターフェースのMTUを設定"
+msgstr "トンネル インターフェースのMTUを設定"
 
 msgid "Use TTL on tunnel interface"
-msgstr "トンネルインターフェースのTTLを設定"
+msgstr "トンネル インターフェースのTTLを設定"
 
 msgid "Use as external overlay (/overlay)"
-msgstr ""
+msgstr "外部オーバーレイとして使用する (/overlay)"
 
 msgid "Use as root filesystem (/)"
-msgstr ""
+msgstr "ルート ファイルシステムとして使用する (/)"
 
 msgid "Use broadcast flag"
-msgstr "ブロードキャストフラグを使用する"
+msgstr "ブロードキャスト フラグを使用する"
 
 msgid "Use builtin IPv6-management"
-msgstr ""
+msgstr "ビルトインのIPv6-マネジメントを使用する"
 
 msgid "Use custom DNS servers"
 msgstr "DNSサーバーを手動で設定"
 
 msgid "Use default gateway"
-msgstr "デフォルトゲートウェイを使用する"
+msgstr "デフォルト ゲートウェイを使用する"
 
 msgid "Use gateway metric"
-msgstr "ゲートウェイメトリックを使用する"
+msgstr "ゲートウェイ メトリックを使用する"
 
 msgid "Use routing table"
 msgstr ""
@@ -3330,6 +3564,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 ""
 
@@ -3343,7 +3582,7 @@ msgid "VC-Mux"
 msgstr "VC-Mux"
 
 msgid "VDSL"
-msgstr ""
+msgstr "VDSL"
 
 msgid "VLANs on %q"
 msgstr "%q上のVLANs"
@@ -3352,25 +3591,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リクエスト送信時のベンダークラスを設定"
@@ -3424,13 +3663,13 @@ msgid "Waiting for command to complete..."
 msgstr "コマンド実行中です..."
 
 msgid "Waiting for device..."
-msgstr ""
+msgstr "デバイスの起動をお待ちください..."
 
 msgid "Warning"
 msgstr "警告"
 
 msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr ""
+msgstr "警告: 再起動すると消えてしまう、保存されていない設定があります!"
 
 msgid "Whether to create an IPv6 default route over the tunnel"
 msgstr ""
@@ -3439,7 +3678,10 @@ msgid "Whether to route only packets from delegated prefixes"
 msgstr ""
 
 msgid "Width"
-msgstr ""
+msgstr "帯域幅"
+
+msgid "WireGuard VPN"
+msgstr "WireGuard VPN"
 
 msgid "Wireless"
 msgstr "無線"
@@ -3478,10 +3720,7 @@ msgid "Write received DNS requests to syslog"
 msgstr "受信したDNSリクエストをsyslogへ記録します"
 
 msgid "Write system log to file"
-msgstr ""
-
-msgid "XR Support"
-msgstr "XRサポート"
+msgstr "システムログをファイルに書き込む"
 
 msgid ""
 "You can enable or disable installed init scripts here. Changes will applied "
@@ -3494,14 +3733,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 "全て"
@@ -3509,9 +3751,8 @@ msgstr "全て"
 msgid "auto"
 msgstr "自動"
 
-#, fuzzy
 msgid "automatic"
-msgstr "static"
+msgstr "自動"
 
 msgid "baseT"
 msgstr "baseT"
@@ -3535,7 +3776,7 @@ msgid "disable"
 msgstr "無効"
 
 msgid "disabled"
-msgstr ""
+msgstr "無効"
 
 msgid "expired"
 msgstr "期限切れ"
@@ -3560,16 +3801,16 @@ msgid "help"
 msgstr "ヘルプ"
 
 msgid "hidden"
-msgstr ""
+msgstr "(不明)"
 
 msgid "hybrid mode"
-msgstr ""
+msgstr "ハイブリッド モード"
 
 msgid "if target is a network"
 msgstr "ターゲットがネットワークの場合"
 
 msgid "input"
-msgstr ""
+msgstr "入力"
 
 msgid "kB"
 msgstr "kB"
@@ -3584,6 +3825,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"
@@ -3608,19 +3852,19 @@ msgid "on"
 msgstr "オン"
 
 msgid "open"
-msgstr ""
+msgstr "オープン"
 
 msgid "overlay"
-msgstr ""
+msgstr "オーバーレイ"
 
 msgid "relay mode"
-msgstr ""
+msgstr "リレー モード"
 
 msgid "routed"
 msgstr "routed"
 
 msgid "server mode"
-msgstr ""
+msgstr "サーバー モード"
 
 msgid "skiplink1 Skip to navigation"
 msgstr ""
@@ -3629,20 +3873,23 @@ msgid "skiplink2 Skip to content"
 msgstr ""
 
 msgid "stateful-only"
-msgstr ""
+msgstr "ステートフルのみ"
 
 msgid "stateless"
-msgstr ""
+msgstr "ステートレス"
 
 msgid "stateless + stateful"
-msgstr ""
+msgstr "ステートレス + ステートフル"
 
 msgid "tagged"
 msgstr "tagged"
 
-msgid "unknown"
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
 msgstr ""
 
+msgid "unknown"
+msgstr "不明"
+
 msgid "unlimited"
 msgstr "無期限"
 
@@ -3661,6 +3908,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 "チェックボックスがオフの場合、追加のネットワークが作成されます。"
 
diff --git a/modules/luci-base/po/ko/base.po b/modules/luci-base/po/ko/base.po
new file mode 100644 (file)
index 0000000..c0f82c3
--- /dev/null
@@ -0,0 +1,3809 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-06-10 03:40+0200\n"
+"PO-Revision-Date: 2012-04-03 08:44+0200\n"
+"Last-Translator: Weongyo Jeong <weongyo@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en\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 "%s is untagged in multiple VLANs!"
+msgstr ""
+
+msgid "(%d minute window, %d second interval)"
+msgstr "(%d 분 window, %d 초 간격)"
+
+msgid "(%s available)"
+msgstr ""
+
+msgid "(empty)"
+msgstr ""
+
+msgid "(no interfaces attached)"
+msgstr ""
+
+msgid "-- Additional Field --"
+msgstr ""
+
+msgid "-- Please choose --"
+msgstr ""
+
+msgid "-- custom --"
+msgstr ""
+
+msgid "-- match by device --"
+msgstr ""
+
+msgid "-- match by label --"
+msgstr ""
+
+msgid "-- match by uuid --"
+msgstr ""
+
+msgid "1 Minute Load:"
+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 ""
+
+msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
+msgstr "<abbr title=\"Domain Name System\">DNS</abbr> query 포트"
+
+msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
+msgstr "<abbr title=\"Domain Name System\">DNS</abbr> 서버 포트"
+
+msgid ""
+"<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
+"order of the resolvfile"
+msgstr ""
+
+msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgstr ""
+
+msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
+msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-주소"
+
+msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
+msgstr ""
+
+msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
+msgstr ""
+
+msgid ""
+"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
+"(CIDR)"
+msgstr ""
+
+msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
+msgstr ""
+
+msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
+msgstr ""
+
+msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
+msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 설정"
+
+msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
+msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr> 이름"
+
+msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
+msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-주소"
+
+msgid ""
+"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
+"Protocol\">DHCP</abbr> leases"
+msgstr ""
+"<abbr title=\"maximal\">최대</abbr> <abbr title=\"Dynamic Host Configuration "
+"Protocol\">DHCP</abbr> lease 수"
+
+msgid ""
+"<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
+"Domain Name System\">EDNS0</abbr> packet size"
+msgstr ""
+"<abbr title=\"maximal\">최대</abbr> <abbr title=\"Extension Mechanisms for "
+"Domain Name System\">EDNS0</abbr> 패킷 크기"
+
+msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
+msgstr "<abbr title=\"maximal\">최대</abbr> 동시 처리 query 수"
+
+msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
+msgstr ""
+
+msgid "A43C + J43 + A43"
+msgstr ""
+
+msgid "A43C + J43 + A43 + V43"
+msgstr ""
+
+msgid "ADSL"
+msgstr ""
+
+msgid "AICCU (SIXXS)"
+msgstr ""
+
+msgid "ANSI T1.413"
+msgstr ""
+
+msgid "APN"
+msgstr ""
+
+msgid "ARP retry threshold"
+msgstr ""
+
+msgid "ATM (Asynchronous Transfer Mode)"
+msgstr ""
+
+msgid "ATM Bridges"
+msgstr ""
+
+msgid "ATM Virtual Channel Identifier (VCI)"
+msgstr ""
+
+msgid "ATM Virtual Path Identifier (VPI)"
+msgstr ""
+
+msgid ""
+"ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
+"Linux network interfaces which can be used in conjunction with DHCP or PPP "
+"to dial into the provider network."
+msgstr ""
+
+msgid "ATM device number"
+msgstr ""
+
+msgid "ATU-C System Vendor ID"
+msgstr ""
+
+msgid "AYIYA"
+msgstr ""
+
+msgid "Access Concentrator"
+msgstr ""
+
+msgid "Access Point"
+msgstr ""
+
+msgid "Action"
+msgstr ""
+
+msgid "Actions"
+msgstr "관리 도구"
+
+msgid "Activate this network"
+msgstr "이 네트워를 활성화합니다"
+
+msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
+msgstr ""
+"Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Route 경로"
+
+msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
+msgstr ""
+"Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Route 경로"
+
+msgid "Active Connections"
+msgstr "Active 연결수"
+
+msgid "Active DHCP Leases"
+msgstr "Active DHCP 임대 목록"
+
+msgid "Active DHCPv6 Leases"
+msgstr "Active DHCPv6 임대 목록"
+
+msgid "Ad-Hoc"
+msgstr ""
+
+msgid "Add"
+msgstr "추가"
+
+msgid "Add local domain suffix to names served from hosts files"
+msgstr ""
+
+msgid "Add new interface..."
+msgstr "새로운 인터페이스 추가..."
+
+msgid "Additional Hosts files"
+msgstr "추가적인 Hosts 파일들"
+
+msgid "Additional servers file"
+msgstr ""
+
+msgid "Address"
+msgstr "주소"
+
+msgid "Address to access local relay bridge"
+msgstr ""
+
+msgid "Administration"
+msgstr "관리"
+
+msgid "Advanced Settings"
+msgstr "고급 설정"
+
+msgid "Aggregate Transmit Power(ACTATP)"
+msgstr ""
+
+msgid "Alert"
+msgstr ""
+
+msgid ""
+"Allocate IP addresses sequentially, starting from the lowest available "
+"address"
+msgstr ""
+
+msgid "Allocate IP sequentially"
+msgstr ""
+
+msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
+msgstr "<abbr title=\"Secure Shell\">SSH</abbr> 암호 인증을 허용합니다"
+
+msgid "Allow all except listed"
+msgstr ""
+
+msgid "Allow listed only"
+msgstr ""
+
+msgid "Allow localhost"
+msgstr ""
+
+msgid "Allow remote hosts to connect to local SSH forwarded ports"
+msgstr ""
+
+msgid "Allow root logins with password"
+msgstr "암호를 이용한 root 접근 허용"
+
+msgid "Allow the <em>root</em> user to login with password"
+msgstr "암호를 이용한 <em>root</em> 사용자 접근을 허용합니다"
+
+msgid ""
+"Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
+msgstr ""
+
+msgid "Allowed IPs"
+msgstr ""
+
+msgid ""
+"Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
+"\">Tunneling Comparison</a> on SIXXS"
+msgstr ""
+
+msgid "Always announce default router"
+msgstr ""
+
+msgid "Annex"
+msgstr ""
+
+msgid "Annex A + L + M (all)"
+msgstr ""
+
+msgid "Annex A G.992.1"
+msgstr ""
+
+msgid "Annex A G.992.2"
+msgstr ""
+
+msgid "Annex A G.992.3"
+msgstr ""
+
+msgid "Annex A G.992.5"
+msgstr ""
+
+msgid "Annex B (all)"
+msgstr ""
+
+msgid "Annex B G.992.1"
+msgstr ""
+
+msgid "Annex B G.992.3"
+msgstr ""
+
+msgid "Annex B G.992.5"
+msgstr ""
+
+msgid "Annex J (all)"
+msgstr ""
+
+msgid "Annex L G.992.3 POTS 1"
+msgstr ""
+
+msgid "Annex M (all)"
+msgstr ""
+
+msgid "Annex M G.992.3"
+msgstr ""
+
+msgid "Annex M G.992.5"
+msgstr ""
+
+msgid "Announce as default router even if no public prefix is available."
+msgstr ""
+
+msgid "Announced DNS domains"
+msgstr ""
+
+msgid "Announced DNS servers"
+msgstr ""
+
+msgid "Anonymous Identity"
+msgstr ""
+
+msgid "Anonymous Mount"
+msgstr ""
+
+msgid "Anonymous Swap"
+msgstr ""
+
+msgid "Antenna 1"
+msgstr ""
+
+msgid "Antenna 2"
+msgstr ""
+
+msgid "Antenna Configuration"
+msgstr ""
+
+msgid "Any zone"
+msgstr ""
+
+msgid "Apply"
+msgstr "적용"
+
+msgid "Applying changes"
+msgstr ""
+
+msgid ""
+"Assign a part of given length of every public IPv6-prefix to this interface"
+msgstr ""
+
+msgid "Assign interfaces..."
+msgstr ""
+
+msgid ""
+"Assign prefix parts using this hexadecimal subprefix ID for this interface."
+msgstr ""
+
+msgid "Associated Stations"
+msgstr "연결된 station 들"
+
+msgid "Auth Group"
+msgstr ""
+
+msgid "AuthGroup"
+msgstr ""
+
+msgid "Authentication"
+msgstr ""
+
+msgid "Authentication Type"
+msgstr ""
+
+msgid "Authoritative"
+msgstr ""
+
+msgid "Authorization Required"
+msgstr "인증이 필요합니다"
+
+msgid "Auto Refresh"
+msgstr "자동 Refresh"
+
+msgid "Automatic"
+msgstr ""
+
+msgid "Automatic Homenet (HNCP)"
+msgstr ""
+
+msgid "Automatically check filesystem for errors before mounting"
+msgstr ""
+
+msgid "Automatically mount filesystems on hotplug"
+msgstr ""
+
+msgid "Automatically mount swap on hotplug"
+msgstr ""
+
+msgid "Automount Filesystem"
+msgstr ""
+
+msgid "Automount Swap"
+msgstr ""
+
+msgid "Available"
+msgstr ""
+
+msgid "Available packages"
+msgstr "이용 가능한 패키지"
+
+msgid "Average:"
+msgstr "평균:"
+
+msgid "B43 + B43C"
+msgstr ""
+
+msgid "B43 + B43C + V43"
+msgstr ""
+
+msgid "BR / DMR / AFTR"
+msgstr ""
+
+msgid "BSSID"
+msgstr ""
+
+msgid "Back"
+msgstr "뒤로"
+
+msgid "Back to Overview"
+msgstr "개요로 이동"
+
+msgid "Back to configuration"
+msgstr "설정으로 돌아가기"
+
+msgid "Back to overview"
+msgstr ""
+
+msgid "Back to scan results"
+msgstr ""
+
+msgid "Backup / Flash Firmware"
+msgstr "Firmware 백업 / Flash"
+
+msgid "Backup / Restore"
+msgstr "백업 / 복구"
+
+msgid "Backup file list"
+msgstr ""
+
+msgid "Bad address specified!"
+msgstr ""
+
+msgid "Band"
+msgstr ""
+
+msgid "Behind NAT"
+msgstr ""
+
+msgid ""
+"Below is the determined list of files to backup. It consists of changed "
+"configuration files marked by opkg, essential base files and the user "
+"defined backup patterns."
+msgstr ""
+"아래는 백업할 파일 목록입니다.   이 목록은 opkg 이 수정되었다고 판단한 파일, "
+"필수 기본 파일 그리고 사용자가 패턴 정의로 백업하도록 지정한 것로 이루어져 있"
+"습니다."
+
+msgid "Bind interface"
+msgstr ""
+
+msgid "Bind only to specific interfaces rather than wildcard address."
+msgstr ""
+
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
+msgid "Bitrate"
+msgstr ""
+
+msgid "Bogus NX Domain Override"
+msgstr ""
+
+msgid "Bridge"
+msgstr ""
+
+msgid "Bridge interfaces"
+msgstr "Bridge 인터페이스"
+
+msgid "Bridge unit number"
+msgstr ""
+
+msgid "Bring up on boot"
+msgstr "부팅시 활성화"
+
+msgid "Broadcom 802.11%s Wireless Controller"
+msgstr ""
+
+msgid "Broadcom BCM%04x 802.11 Wireless Controller"
+msgstr ""
+
+msgid "Buffered"
+msgstr "버퍼된 양"
+
+msgid ""
+"Build/distribution specific feed definitions. This file will NOT be "
+"preserved in any sysupgrade."
+msgstr ""
+"Build/distribution 지정 feed 목록입니다.  이 파일의 내용은 sysupgrade 시 초기"
+"화됩니다."
+
+msgid "Buttons"
+msgstr ""
+
+msgid "CA certificate; if empty it will be saved after the first connection."
+msgstr ""
+
+msgid "CPU usage (%)"
+msgstr "CPU 사용량 (%)"
+
+msgid "Cancel"
+msgstr ""
+
+msgid "Category"
+msgstr ""
+
+msgid "Chain"
+msgstr ""
+
+msgid "Changes"
+msgstr "변경 사항"
+
+msgid "Changes applied."
+msgstr ""
+
+msgid "Changes the administrator password for accessing the device"
+msgstr "장비 접근을 위한 관리자 암호를 변경합니다"
+
+msgid "Channel"
+msgstr ""
+
+msgid "Check"
+msgstr ""
+
+msgid "Check fileystems before mount"
+msgstr ""
+
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
+msgid "Checksum"
+msgstr ""
+
+msgid ""
+"Choose the firewall zone you want to assign to this interface. Select "
+"<em>unspecified</em> to remove the interface from the associated zone or "
+"fill out the <em>create</em> field to define a new zone and attach the "
+"interface to it."
+msgstr ""
+"이 인터페이스에 할당하고자 하는 firewall zone 을 선택하세요. 연결된 zone 으로"
+"부터 인터페이스를 제거하고 싶다면 <em>unspecified</em> 를 선택하세요.  새로"
+"운 zone 을 정의하고 인터페이스 연결을 원한다면 <em>create</em> 항목을 입력하"
+"세요."
+
+msgid ""
+"Choose the network(s) you want to attach to this wireless interface or fill "
+"out the <em>create</em> field to define a new network."
+msgstr ""
+"이 무선랜 인터페이스와 연결하고자 하는 네트워크(들)을 선택하세요. 혹은 새로"
+"운 네트워크를 정의할려면 <em>create</em> 을 작성하세요."
+
+msgid "Cipher"
+msgstr ""
+
+msgid "Cisco UDP encapsulation"
+msgstr ""
+
+msgid ""
+"Click \"Generate archive\" to download a tar archive of the current "
+"configuration files. To reset the firmware to its initial state, click "
+"\"Perform reset\" (only possible with squashfs images)."
+msgstr ""
+"현재 설정 파일에 대한 tar 아카이브 다운로드를 원한다면 \"아카이브 생성\" 버튼"
+"을 클릭하세요.  Firmware 의 초기 설정 reset 을 원한다면 \"Reset 하기\" 를 클"
+"릭하세요. (squashfs 이미지들만 가능)."
+
+msgid "Client"
+msgstr ""
+
+msgid "Client ID to send when requesting DHCP"
+msgstr "DHCP 요청시 전송할 Client ID"
+
+msgid ""
+"Close inactive connection after the given amount of seconds, use 0 to "
+"persist connection"
+msgstr ""
+
+msgid "Close list..."
+msgstr "목록 닫기..."
+
+msgid "Collecting data..."
+msgstr "Data 를 수집중입니다..."
+
+msgid "Command"
+msgstr "명령어"
+
+msgid "Common Configuration"
+msgstr "공통 설정"
+
+msgid "Configuration"
+msgstr "설정"
+
+msgid "Configuration applied."
+msgstr ""
+
+msgid "Configuration files will be kept."
+msgstr ""
+
+msgid "Confirmation"
+msgstr "다시 확인"
+
+msgid "Connect"
+msgstr "연결"
+
+msgid "Connected"
+msgstr "연결 시간"
+
+msgid "Connection Limit"
+msgstr ""
+
+msgid "Connection to server fails when TLS cannot be used"
+msgstr ""
+
+msgid "Connections"
+msgstr "연결"
+
+msgid "Country"
+msgstr ""
+
+msgid "Country Code"
+msgstr ""
+
+msgid "Cover the following interface"
+msgstr ""
+
+msgid "Cover the following interfaces"
+msgstr ""
+
+msgid "Create / Assign firewall-zone"
+msgstr "Firewall-zone 생성 / 할당"
+
+msgid "Create Interface"
+msgstr ""
+
+msgid "Create a bridge over multiple interfaces"
+msgstr ""
+
+msgid "Critical"
+msgstr ""
+
+msgid "Cron Log Level"
+msgstr ""
+
+msgid "Custom Interface"
+msgstr "임의의 인터페이스"
+
+msgid "Custom delegated IPv6-prefix"
+msgstr ""
+
+msgid ""
+"Custom feed definitions, e.g. private feeds. This file can be preserved in a "
+"sysupgrade."
+msgstr ""
+"개인이 운영하는 feed 같은 정보를 입력할 수 있는 custom feed 목록입니다. 이 파"
+"일은 sysupgrade 시 입력된 정보가 유지됩니다."
+
+msgid "Custom feeds"
+msgstr "Custom feed 들"
+
+msgid ""
+"Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
+"\">LED</abbr>s if possible."
+msgstr ""
+"원한다면 장치에 부착된 <abbr title=\"Light Emitting Diode\">LED</abbr> 들의 "
+"행동을 마음대로 변경할 수 있습니다."
+
+msgid "DHCP Leases"
+msgstr "DHCP 임대 정보"
+
+msgid "DHCP Server"
+msgstr "DHCP 서버"
+
+msgid "DHCP and DNS"
+msgstr "DHCP 와 DNS"
+
+msgid "DHCP client"
+msgstr "DHCP client"
+
+msgid "DHCP-Options"
+msgstr "DHCP-옵션들"
+
+msgid "DHCPv6 Leases"
+msgstr "DHCPv6 임대 정보"
+
+msgid "DHCPv6 client"
+msgstr ""
+
+msgid "DHCPv6-Mode"
+msgstr ""
+
+msgid "DHCPv6-Service"
+msgstr ""
+
+msgid "DNS"
+msgstr ""
+
+msgid "DNS forwardings"
+msgstr ""
+
+msgid "DNS-Label / FQDN"
+msgstr ""
+
+msgid "DNSSEC"
+msgstr ""
+
+msgid "DNSSEC check unsigned"
+msgstr ""
+
+msgid "DPD Idle Timeout"
+msgstr ""
+
+msgid "DS-Lite AFTR address"
+msgstr ""
+
+msgid "DSL"
+msgstr ""
+
+msgid "DSL Status"
+msgstr ""
+
+msgid "DSL line mode"
+msgstr ""
+
+msgid "DUID"
+msgstr ""
+
+msgid "Data Rate"
+msgstr ""
+
+msgid "Debug"
+msgstr ""
+
+msgid "Default %d"
+msgstr ""
+
+msgid "Default gateway"
+msgstr ""
+
+msgid "Default is stateless + stateful"
+msgstr ""
+
+msgid "Default route"
+msgstr ""
+
+msgid "Default state"
+msgstr "기본 상태"
+
+msgid "Define a name for this network."
+msgstr ""
+
+msgid ""
+"Define additional DHCP options, for example "
+"\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
+"servers to clients."
+msgstr ""
+"추가적인 DHCP 옵션을 정의합니다. 예를 들어 "
+"\"<code>6,192.168.2.1,192.168.2.2</code>\" 는 client 에게 다른 DNS 서버를 세"
+"팅하도록 권고할 수 있습니다."
+
+msgid "Delete"
+msgstr "삭제"
+
+msgid "Delete this network"
+msgstr "이 네트워크를 삭제합니다"
+
+msgid "Description"
+msgstr "설명"
+
+msgid "Design"
+msgstr "디자인"
+
+msgid "Destination"
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Device Configuration"
+msgstr "장치 설정"
+
+msgid "Device is rebooting..."
+msgstr ""
+
+msgid "Device unreachable"
+msgstr ""
+
+msgid "Diagnostics"
+msgstr "진단"
+
+msgid "Dial number"
+msgstr ""
+
+msgid "Directory"
+msgstr ""
+
+msgid "Disable"
+msgstr "비활성화"
+
+msgid ""
+"Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
+"this interface."
+msgstr ""
+"이 인터페이스에 대해 <abbr title=\"Dynamic Host Configuration Protocol"
+"\">DHCP</abbr> 기능을 비활성합니다."
+
+msgid "Disable DNS setup"
+msgstr ""
+
+msgid "Disable Encryption"
+msgstr ""
+
+msgid "Disabled"
+msgstr ""
+
+msgid "Disabled (default)"
+msgstr ""
+
+msgid "Discard upstream RFC1918 responses"
+msgstr ""
+
+msgid "Displaying only packages containing"
+msgstr ""
+
+msgid "Distance Optimization"
+msgstr ""
+
+msgid "Distance to farthest network member in meters."
+msgstr ""
+
+msgid "Distribution feeds"
+msgstr "Distribution feed 들"
+
+msgid "Diversity"
+msgstr ""
+
+msgid ""
+"Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
+"\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
+"Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
+"firewalls"
+msgstr ""
+"Dnsmasq 는 <abbr title=\"Network Address Translation\">NAT</abbr> 방화벽을 위"
+"한 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>-서버와 "
+"<abbr title=\"Domain Name System\">DNS</abbr>-Forwarder 기능을 제공합니다."
+
+msgid "Do not cache negative replies, e.g. for not existing domains"
+msgstr ""
+
+msgid "Do not forward requests that cannot be answered by public name servers"
+msgstr ""
+
+msgid "Do not forward reverse lookups for local networks"
+msgstr ""
+
+msgid "Domain required"
+msgstr ""
+
+msgid "Domain whitelist"
+msgstr ""
+
+msgid "Don't Fragment"
+msgstr ""
+
+msgid ""
+"Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
+"<abbr title=\"Domain Name System\">DNS</abbr>-Name"
+msgstr ""
+
+msgid "Download and install package"
+msgstr "패키지 다운로드 후 설치"
+
+msgid "Download backup"
+msgstr "백업 다운로드"
+
+msgid "Dropbear Instance"
+msgstr ""
+
+msgid ""
+"Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
+"and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
+msgstr ""
+"Dropbear 는 <abbr title=\"Secure Shell\">SSH</abbr> network shell 접근과 "
+"<abbr title=\"Secure Copy\">SCP</abbr> 서버 기능을 제공합니다"
+
+msgid "Dual-Stack Lite (RFC6333)"
+msgstr ""
+
+msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
+msgstr ""
+
+msgid "Dynamic tunnel"
+msgstr ""
+
+msgid ""
+"Dynamically allocate DHCP addresses for clients. If disabled, only clients "
+"having static leases will be served."
+msgstr ""
+"동적으로 DHCP 주소를 client 에게 할당합니다.  만약 비활성화시, static lease "
+"가 설정된 client 만 주소 제공이 이루어집니다."
+
+msgid "EA-bits length"
+msgstr ""
+
+msgid "EAP-Method"
+msgstr ""
+
+msgid "Edit"
+msgstr "수정"
+
+msgid ""
+"Edit the raw configuration data above to fix any error and hit \"Save\" to "
+"reload the page."
+msgstr ""
+
+msgid "Edit this interface"
+msgstr "이 인터페이스를 수정합니다"
+
+msgid "Edit this network"
+msgstr "이 네트워크를 수정합니다"
+
+msgid "Emergency"
+msgstr ""
+
+msgid "Enable"
+msgstr "활성화"
+
+msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
+msgstr "<abbr title=\"Spanning Tree Protocol\">STP</abbr> 활성화"
+
+msgid "Enable HE.net dynamic endpoint update"
+msgstr ""
+
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
+msgid "Enable IPv6 negotiation on the PPP link"
+msgstr ""
+
+msgid "Enable Jumbo Frame passthrough"
+msgstr ""
+
+msgid "Enable NTP client"
+msgstr "NTP client 활성화"
+
+msgid "Enable Single DES"
+msgstr ""
+
+msgid "Enable TFTP server"
+msgstr "TFTP 서버 활성화"
+
+msgid "Enable VLAN functionality"
+msgstr "VLAN 기능 활성화"
+
+msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
+msgstr ""
+
+msgid "Enable learning and aging"
+msgstr ""
+
+msgid "Enable mirroring of incoming packets"
+msgstr ""
+
+msgid "Enable mirroring of outgoing packets"
+msgstr ""
+
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
+msgid "Enable this mount"
+msgstr ""
+
+msgid "Enable this swap"
+msgstr ""
+
+msgid "Enable/Disable"
+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 활성화합니다"
+
+msgid "Encapsulation mode"
+msgstr ""
+
+msgid "Encryption"
+msgstr "암호화"
+
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
+msgid "Erasing..."
+msgstr ""
+
+msgid "Error"
+msgstr ""
+
+msgid "Errored seconds (ES)"
+msgstr ""
+
+msgid "Ethernet Adapter"
+msgstr ""
+
+msgid "Ethernet Switch"
+msgstr "Ethernet 스위치"
+
+msgid "Exclude interfaces"
+msgstr ""
+
+msgid "Expand hosts"
+msgstr ""
+
+msgid "Expires"
+msgstr "만료 시간"
+
+msgid ""
+"Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
+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 서버"
+
+msgid "External system log server port"
+msgstr "외부 system log 서버 포트"
+
+msgid "External system log server protocol"
+msgstr "외부 system log 서버 프로토콜"
+
+msgid "Extra SSH command options"
+msgstr ""
+
+msgid "File"
+msgstr ""
+
+msgid "Filename of the boot image advertised to clients"
+msgstr ""
+
+msgid "Filesystem"
+msgstr ""
+
+msgid "Filter"
+msgstr "필터"
+
+msgid "Filter private"
+msgstr ""
+
+msgid "Filter useless"
+msgstr ""
+
+msgid ""
+"Find all currently attached filesystems and swap and replace configuration "
+"with defaults based on what was detected"
+msgstr ""
+
+msgid "Find and join network"
+msgstr "네트워크 검색 및 연결합니다"
+
+msgid "Find package"
+msgstr "패키지 찾기"
+
+msgid "Finish"
+msgstr ""
+
+msgid "Firewall"
+msgstr "방화벽"
+
+msgid "Firewall Mark"
+msgstr ""
+
+msgid "Firewall Settings"
+msgstr "방화벽 설정"
+
+msgid "Firewall Status"
+msgstr "방화벽 상태"
+
+msgid "Firmware File"
+msgstr ""
+
+msgid "Firmware Version"
+msgstr "Firmware 버전"
+
+msgid "Fixed source port for outbound DNS queries"
+msgstr ""
+
+msgid "Flash Firmware"
+msgstr ""
+
+msgid "Flash image..."
+msgstr "이미지로 Flash..."
+
+msgid "Flash new firmware image"
+msgstr "새로운 firmware 이미지로 flash"
+
+msgid "Flash operations"
+msgstr "Flash 작업"
+
+msgid "Flashing..."
+msgstr ""
+
+msgid "Force"
+msgstr "강제하기"
+
+msgid "Force CCMP (AES)"
+msgstr ""
+
+msgid "Force DHCP on this network even if another server is detected."
+msgstr "다른 DHCP 서버가 탐지되더라도 이 네트워크에 DHCP 를 강제합니다."
+
+msgid "Force TKIP"
+msgstr ""
+
+msgid "Force TKIP and CCMP (AES)"
+msgstr ""
+
+msgid "Force link"
+msgstr ""
+
+msgid "Force use of NAT-T"
+msgstr ""
+
+msgid "Form token mismatch"
+msgstr ""
+
+msgid "Forward DHCP traffic"
+msgstr ""
+
+msgid "Forward Error Correction Seconds (FECS)"
+msgstr ""
+
+msgid "Forward broadcast traffic"
+msgstr ""
+
+msgid "Forwarding mode"
+msgstr ""
+
+msgid "Fragmentation Threshold"
+msgstr ""
+
+msgid "Frame Bursting"
+msgstr ""
+
+msgid "Free"
+msgstr "이용 가능한 양"
+
+msgid "Free space"
+msgstr "여유 공간"
+
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
+msgid "GHz"
+msgstr ""
+
+msgid "GPRS only"
+msgstr ""
+
+msgid "Gateway"
+msgstr ""
+
+msgid "Gateway ports"
+msgstr ""
+
+msgid "General Settings"
+msgstr "기본 설정"
+
+msgid "General Setup"
+msgstr "기본 설정"
+
+msgid "General options for opkg"
+msgstr "opkg 명령의 기본 옵션들"
+
+msgid "Generate Config"
+msgstr ""
+
+msgid "Generate archive"
+msgstr "아카이브 생성"
+
+msgid "Generic 802.11%s Wireless Controller"
+msgstr ""
+
+msgid "Given password confirmation did not match, password not changed!"
+msgstr ""
+
+msgid "Global Settings"
+msgstr ""
+
+msgid "Global network options"
+msgstr ""
+
+msgid "Go to password configuration..."
+msgstr "암호 설정 하기"
+
+msgid "Go to relevant configuration page"
+msgstr ""
+
+msgid "Group Password"
+msgstr ""
+
+msgid "Guest"
+msgstr ""
+
+msgid "HE.net password"
+msgstr ""
+
+msgid "HE.net username"
+msgstr ""
+
+msgid "HT mode (802.11n)"
+msgstr ""
+
+msgid "Handler"
+msgstr ""
+
+msgid "Hang Up"
+msgstr ""
+
+msgid "Header Error Code Errors (HEC)"
+msgstr ""
+
+msgid "Heartbeat"
+msgstr ""
+
+msgid ""
+"Here you can configure the basic aspects of your device like its hostname or "
+"the timezone."
+msgstr ""
+"여기서 호스트이름이나 시간대와 같은 기본적인 장비 설정을 할 수 있습니다."
+
+msgid ""
+"Here you can paste public SSH-Keys (one per line) for SSH public-key "
+"authentication."
+msgstr ""
+"아래에 SSH public-key 인증을 위한 공개 SSH-Key 들 (한 줄당 한개) 를 입력할 "
+"수 있습니다."
+
+msgid "Hermes 802.11b Wireless Controller"
+msgstr ""
+
+msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr> 숨기기"
+
+msgid "Host"
+msgstr "호스트"
+
+msgid "Host entries"
+msgstr "호스트 목록들"
+
+msgid "Host expiry timeout"
+msgstr ""
+
+msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
+msgstr "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> 혹은 Network"
+
+msgid "Hostname"
+msgstr "호스트이름"
+
+msgid "Hostname to send when requesting DHCP"
+msgstr "DHCP 요청시 전달할 호스트이름"
+
+msgid "Hostnames"
+msgstr "호스트이름"
+
+msgid "Hybrid"
+msgstr ""
+
+msgid "IKE DH Group"
+msgstr ""
+
+msgid "IP Addresses"
+msgstr ""
+
+msgid "IP address"
+msgstr "IP 주소"
+
+msgid "IPv4"
+msgstr ""
+
+msgid "IPv4 Firewall"
+msgstr "IPv4 방화벽"
+
+msgid "IPv4 WAN Status"
+msgstr "IPv4 WAN 상태"
+
+msgid "IPv4 address"
+msgstr "IPv4 주소"
+
+msgid "IPv4 and IPv6"
+msgstr "IPv4 와 IPv6"
+
+msgid "IPv4 assignment length"
+msgstr ""
+
+msgid "IPv4 broadcast"
+msgstr ""
+
+msgid "IPv4 gateway"
+msgstr ""
+
+msgid "IPv4 netmask"
+msgstr ""
+
+msgid "IPv4 only"
+msgstr ""
+
+msgid "IPv4 prefix"
+msgstr ""
+
+msgid "IPv4 prefix length"
+msgstr ""
+
+msgid "IPv4-Address"
+msgstr "IPv4-주소"
+
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv6 Firewall"
+msgstr "IPv6 방화벽"
+
+msgid "IPv6 Neighbours"
+msgstr "IPv6 Neighbour 들"
+
+msgid "IPv6 Settings"
+msgstr "IPv6 설정"
+
+msgid "IPv6 ULA-Prefix"
+msgstr ""
+
+msgid "IPv6 WAN Status"
+msgstr "IPv6 WAN 상태"
+
+msgid "IPv6 address"
+msgstr ""
+
+msgid "IPv6 address delegated to the local tunnel endpoint (optional)"
+msgstr ""
+
+msgid "IPv6 assignment hint"
+msgstr ""
+
+msgid "IPv6 assignment length"
+msgstr ""
+
+msgid "IPv6 gateway"
+msgstr ""
+
+msgid "IPv6 only"
+msgstr ""
+
+msgid "IPv6 prefix"
+msgstr ""
+
+msgid "IPv6 prefix length"
+msgstr ""
+
+msgid "IPv6 routed prefix"
+msgstr ""
+
+msgid "IPv6-Address"
+msgstr "IPv6-주소"
+
+msgid "IPv6-PD"
+msgstr ""
+
+msgid "IPv6-in-IPv4 (RFC4213)"
+msgstr ""
+
+msgid "IPv6-over-IPv4 (6rd)"
+msgstr ""
+
+msgid "IPv6-over-IPv4 (6to4)"
+msgstr ""
+
+msgid "Identity"
+msgstr ""
+
+msgid "If checked, 1DES is enaled"
+msgstr ""
+
+msgid "If checked, encryption is disabled"
+msgstr ""
+
+msgid ""
+"If specified, mount the device by its UUID instead of a fixed device node"
+msgstr ""
+
+msgid ""
+"If specified, mount the device by the partition label instead of a fixed "
+"device node"
+msgstr ""
+
+msgid "If unchecked, no default route is configured"
+msgstr "체크하지 않을 경우, 기본 route 가 설정되지 않습니다"
+
+msgid "If unchecked, the advertised DNS server addresses are ignored"
+msgstr "체크하지 않을 경우, 사용하도록 권장된 DNS 주소는 무시됩니다"
+
+msgid ""
+"If your physical memory is insufficient unused data can be temporarily "
+"swapped to a swap-device resulting in a higher amount of usable <abbr title="
+"\"Random Access Memory\">RAM</abbr>. Be aware that swapping data is a very "
+"slow process as the swap-device cannot be accessed with the high datarates "
+"of the <abbr title=\"Random Access Memory\">RAM</abbr>."
+msgstr ""
+
+msgid "Ignore <code>/etc/hosts</code>"
+msgstr "<code>/etc/hosts</code> 파일 무시"
+
+msgid "Ignore interface"
+msgstr "인터페이스 무시"
+
+msgid "Ignore resolve file"
+msgstr "resolve 파일 무시"
+
+msgid "Image"
+msgstr "이미지"
+
+msgid "In"
+msgstr "In"
+
+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 ""
+
+msgid "Inactivity timeout"
+msgstr ""
+
+msgid "Inbound:"
+msgstr ""
+
+msgid "Info"
+msgstr ""
+
+msgid "Initscript"
+msgstr ""
+
+msgid "Initscripts"
+msgstr "Initscript 들"
+
+msgid "Install"
+msgstr "설치"
+
+msgid "Install iputils-traceroute6 for IPv6 traceroute"
+msgstr ""
+
+msgid "Install package %q"
+msgstr ""
+
+msgid "Install protocol extensions..."
+msgstr ""
+
+msgid "Installed packages"
+msgstr "설치된 패키지"
+
+msgid "Interface"
+msgstr "인터페이스"
+
+msgid "Interface Configuration"
+msgstr "인터페이스 설정"
+
+msgid "Interface Overview"
+msgstr "인터페이스 개요"
+
+msgid "Interface is reconnecting..."
+msgstr ""
+
+msgid "Interface is shutting down..."
+msgstr ""
+
+msgid "Interface name"
+msgstr "인터페이스 이름"
+
+msgid "Interface not present or not connected yet."
+msgstr ""
+
+msgid "Interface reconnected"
+msgstr ""
+
+msgid "Interface shut down"
+msgstr ""
+
+msgid "Interfaces"
+msgstr "인터페이스"
+
+msgid "Internal"
+msgstr ""
+
+msgid "Internal Server Error"
+msgstr ""
+
+msgid "Invalid"
+msgstr ""
+
+msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
+msgstr ""
+
+msgid "Invalid VLAN ID given! Only unique IDs are allowed"
+msgstr ""
+
+msgid "Invalid username and/or password! Please try again."
+msgstr ""
+
+msgid "Isolate Clients"
+msgstr ""
+
+msgid ""
+"It appears that you are trying to flash an image that does not fit into the "
+"flash memory, please verify the image file!"
+msgstr ""
+
+msgid "JavaScript required!"
+msgstr ""
+
+msgid "Join Network"
+msgstr "네트워크 연결"
+
+msgid "Join Network: Wireless Scan"
+msgstr "네트워크 연결: 무선랜 스캔 결과"
+
+msgid "Joining Network: %q"
+msgstr "네트워크 연결중: %q"
+
+msgid "Keep settings"
+msgstr "설정 유지"
+
+msgid "Kernel Log"
+msgstr "Kernel 로그"
+
+msgid "Kernel Version"
+msgstr "Kernel 버전"
+
+msgid "Key"
+msgstr ""
+
+msgid "Key #%d"
+msgstr ""
+
+msgid "Kill"
+msgstr ""
+
+msgid "L2TP"
+msgstr ""
+
+msgid "L2TP Server"
+msgstr ""
+
+msgid "LCP echo failure threshold"
+msgstr ""
+
+msgid "LCP echo interval"
+msgstr ""
+
+msgid "LLC"
+msgstr ""
+
+msgid "Label"
+msgstr ""
+
+msgid "Language"
+msgstr "언어"
+
+msgid "Language and Style"
+msgstr "언어와 스타일"
+
+msgid "Latency"
+msgstr ""
+
+msgid "Leaf"
+msgstr ""
+
+msgid "Lease time"
+msgstr "임대 시간"
+
+msgid "Lease validity time"
+msgstr ""
+
+msgid "Leasefile"
+msgstr ""
+
+msgid "Leasetime"
+msgstr "임대 시간"
+
+msgid "Leasetime remaining"
+msgstr "남아있는 임대 시간"
+
+msgid "Leave empty to autodetect"
+msgstr ""
+
+msgid "Leave empty to use the current WAN address"
+msgstr ""
+
+msgid "Legend:"
+msgstr ""
+
+msgid "Limit"
+msgstr "제한"
+
+msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
+msgstr ""
+"DNS 를 제공하기로한 subnet 인터페이스들에 대해서만 DNS 서비스를 제공합니다."
+
+msgid "Limit listening to these interfaces, and loopback."
+msgstr ""
+
+msgid "Line Attenuation (LATN)"
+msgstr ""
+
+msgid "Line Mode"
+msgstr ""
+
+msgid "Line State"
+msgstr ""
+
+msgid "Line Uptime"
+msgstr ""
+
+msgid "Link On"
+msgstr ""
+
+msgid ""
+"List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
+"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 ""
+
+msgid "List of domains to allow RFC1918 responses for"
+msgstr ""
+
+msgid "List of hosts that supply bogus NX domain results"
+msgstr ""
+
+msgid "Listen Interfaces"
+msgstr ""
+
+msgid "Listen Port"
+msgstr ""
+
+msgid "Listen only on the given interface or, if unspecified, on all"
+msgstr ""
+"지정한 인터페이스에만 listening 하며 미지정시 모든 인터페이스에 적용됩니다"
+
+msgid "Listening port for inbound DNS queries"
+msgstr ""
+
+msgid "Load"
+msgstr "부하"
+
+msgid "Load Average"
+msgstr "부하 평균"
+
+msgid "Loading"
+msgstr ""
+
+msgid "Local IP address to assign"
+msgstr ""
+
+msgid "Local IPv4 address"
+msgstr ""
+
+msgid "Local IPv6 address"
+msgstr ""
+
+msgid "Local Service Only"
+msgstr ""
+
+msgid "Local Startup"
+msgstr "Local 시작 프로그램"
+
+msgid "Local Time"
+msgstr "지역 시간"
+
+msgid "Local domain"
+msgstr ""
+
+msgid ""
+"Local domain specification. Names matching this domain are never forwarded "
+"and are resolved from DHCP or hosts files only"
+msgstr ""
+
+msgid "Local domain suffix appended to DHCP names and hosts file entries"
+msgstr ""
+
+msgid "Local server"
+msgstr ""
+
+msgid ""
+"Localise hostname depending on the requesting subnet if multiple IPs are "
+"available"
+msgstr ""
+
+msgid "Localise queries"
+msgstr ""
+
+msgid "Locked to channel %s used by: %s"
+msgstr ""
+
+msgid "Log output level"
+msgstr "Log output 레벨"
+
+msgid "Log queries"
+msgstr ""
+
+msgid "Logging"
+msgstr ""
+
+msgid "Login"
+msgstr "로그인"
+
+msgid "Logout"
+msgstr "로그아웃"
+
+msgid "Loss of Signal Seconds (LOSS)"
+msgstr ""
+
+msgid "Lowest leased address as offset from the network address."
+msgstr "임대되는 주소의 최소 시작점. (네트워크 주소로 부터의 offset)"
+
+msgid "MAC-Address"
+msgstr "MAC-주소"
+
+msgid "MAC-Address Filter"
+msgstr "MAC-주소 필터"
+
+msgid "MAC-Filter"
+msgstr "MAC-필터"
+
+msgid "MAC-List"
+msgstr ""
+
+msgid "MAP / LW4over6"
+msgstr ""
+
+msgid "MB/s"
+msgstr ""
+
+msgid "MD5"
+msgstr ""
+
+msgid "MHz"
+msgstr ""
+
+msgid "MTU"
+msgstr ""
+
+msgid ""
+"Make sure to clone the root filesystem using something like the commands "
+"below:"
+msgstr ""
+
+msgid "Manual"
+msgstr ""
+
+msgid "Max. Attainable Data Rate (ATTNDR)"
+msgstr ""
+
+msgid "Maximum allowed number of active DHCP leases"
+msgstr "Active DHCP lease 건의 최대 허용 숫자"
+
+msgid "Maximum allowed number of concurrent DNS queries"
+msgstr "허용되는 최대 동시 DNS query 수"
+
+msgid "Maximum allowed size of EDNS.0 UDP packets"
+msgstr "허용된 최대 EDNS.0 UDP 패킷 크기"
+
+msgid "Maximum amount of seconds to wait for the modem to become ready"
+msgstr ""
+
+msgid "Maximum hold time"
+msgstr ""
+
+msgid ""
+"Maximum length of the name is 15 characters including the automatic protocol/"
+"bridge prefix (br-, 6in4-, pppoe- etc.)"
+msgstr ""
+
+msgid "Maximum number of leased addresses."
+msgstr "임대될 수 있는 주소의 최대 숫자."
+
+msgid "Mbit/s"
+msgstr ""
+
+msgid "Memory"
+msgstr "메모리"
+
+msgid "Memory usage (%)"
+msgstr "메모리 사용량 (%)"
+
+msgid "Metric"
+msgstr ""
+
+msgid "Minimum hold time"
+msgstr ""
+
+msgid "Mirror monitor port"
+msgstr ""
+
+msgid "Mirror source port"
+msgstr ""
+
+msgid "Missing protocol extension for proto %q"
+msgstr ""
+
+msgid "Mobility Domain"
+msgstr ""
+
+msgid "Mode"
+msgstr ""
+
+msgid "Model"
+msgstr "모델"
+
+msgid "Modem device"
+msgstr ""
+
+msgid "Modem init timeout"
+msgstr ""
+
+msgid "Monitor"
+msgstr ""
+
+msgid "Mount Entry"
+msgstr ""
+
+msgid "Mount Point"
+msgstr ""
+
+msgid "Mount Points"
+msgstr ""
+
+msgid "Mount Points - Mount Entry"
+msgstr ""
+
+msgid "Mount Points - Swap Entry"
+msgstr ""
+
+msgid ""
+"Mount Points define at which point a memory device will be attached to the "
+"filesystem"
+msgstr ""
+
+msgid "Mount filesystems not specifically configured"
+msgstr ""
+
+msgid "Mount options"
+msgstr ""
+
+msgid "Mount point"
+msgstr ""
+
+msgid "Mount swap not specifically configured"
+msgstr ""
+
+msgid "Mounted file systems"
+msgstr ""
+
+msgid "Move down"
+msgstr ""
+
+msgid "Move up"
+msgstr ""
+
+msgid "Multicast address"
+msgstr ""
+
+msgid "NAS ID"
+msgstr ""
+
+msgid "NAT-T Mode"
+msgstr ""
+
+msgid "NAT64 Prefix"
+msgstr ""
+
+msgid "NCM"
+msgstr ""
+
+msgid "NDP-Proxy"
+msgstr ""
+
+msgid "NT Domain"
+msgstr ""
+
+msgid "NTP server candidates"
+msgstr "NTP 서버 목록"
+
+msgid "NTP sync time-out"
+msgstr ""
+
+msgid "Name"
+msgstr "이름"
+
+msgid "Name of the new interface"
+msgstr ""
+
+msgid "Name of the new network"
+msgstr ""
+
+msgid "Navigation"
+msgstr ""
+
+msgid "Netmask"
+msgstr ""
+
+msgid "Network"
+msgstr "네트워크"
+
+msgid "Network Utilities"
+msgstr "네트워크 유틸리티"
+
+msgid "Network boot image"
+msgstr "네트워크 boot 이미지"
+
+msgid "Network without interfaces."
+msgstr ""
+
+msgid "Next »"
+msgstr ""
+
+msgid "No DHCP Server configured for this interface"
+msgstr ""
+
+msgid "No NAT-T"
+msgstr ""
+
+msgid "No chains in this table"
+msgstr "이 table 에는 정의된 chain 이 없음"
+
+msgid "No files found"
+msgstr ""
+
+msgid "No information available"
+msgstr "이용 가능한 정보가 없습니다"
+
+msgid "No negative cache"
+msgstr ""
+
+msgid "No network configured on this device"
+msgstr ""
+
+msgid "No network name specified"
+msgstr ""
+
+msgid "No package lists available"
+msgstr ""
+
+msgid "No password set!"
+msgstr "암호 설정을 해주세요!"
+
+msgid "No rules in this chain"
+msgstr ""
+
+msgid "No zone assigned"
+msgstr ""
+
+msgid "Noise"
+msgstr "노이즈"
+
+msgid "Noise Margin (SNR)"
+msgstr ""
+
+msgid "Noise:"
+msgstr ""
+
+msgid "Non Pre-emtive CRC errors (CRC_P)"
+msgstr ""
+
+msgid "Non-wildcard"
+msgstr ""
+
+msgid "None"
+msgstr ""
+
+msgid "Normal"
+msgstr ""
+
+msgid "Not Found"
+msgstr ""
+
+msgid "Not associated"
+msgstr ""
+
+msgid "Not connected"
+msgstr "연결되지 않음"
+
+msgid "Note: Configuration files will be erased."
+msgstr ""
+
+msgid "Note: interface name length"
+msgstr ""
+
+msgid "Notice"
+msgstr ""
+
+msgid "Nslookup"
+msgstr ""
+
+msgid "OK"
+msgstr ""
+
+msgid "OPKG-Configuration"
+msgstr "OPKG-설정"
+
+msgid "Obfuscated Group Password"
+msgstr ""
+
+msgid "Obfuscated Password"
+msgstr ""
+
+msgid "Off-State Delay"
+msgstr ""
+
+msgid ""
+"On this page you can configure the network interfaces. You can bridge "
+"several interfaces by ticking the \"bridge interfaces\" field and enter the "
+"names of several network interfaces separated by spaces. You can also use "
+"<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
+"<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
+"<samp>eth0.1</samp>)."
+msgstr ""
+"이 페이지에서는 네트워크 인터페이스를 설정할 수 있습니다. \"Bridge 인터페이스"
+"\" 항목을 클릭하고, 공백으로 구분된 네트워크 인터페이스들의 이름을 적는 방식"
+"으로 여러 인터페이스들을 bridge 할 수 있습니다.  또한 <abbr title=\"Virtual "
+"Local Area Network\">VLAN</abbr> 표기법인 <samp>INTERFACE.VLANNR</samp> "
+"(<abbr title=\"for example\">예</abbr>: <samp>eth0.1</samp>) 를 사용하실 수 "
+"있습니다."
+
+msgid "On-State Delay"
+msgstr ""
+
+msgid "One of hostname or mac address must be specified!"
+msgstr ""
+
+msgid "One or more fields contain invalid values!"
+msgstr ""
+
+msgid "One or more invalid/required values on tab"
+msgstr ""
+
+msgid "One or more required fields have no value!"
+msgstr ""
+
+msgid "Open list..."
+msgstr "목록 열람..."
+
+msgid "OpenConnect (CISCO AnyConnect)"
+msgstr ""
+
+msgid "Operating frequency"
+msgstr "동작 주파수"
+
+msgid "Option changed"
+msgstr "변경된 option"
+
+msgid "Option removed"
+msgstr "삭제된 option"
+
+msgid "Optional"
+msgstr ""
+
+msgid "Optional, specify to override default server (tic.sixxs.net)"
+msgstr ""
+
+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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
+msgid "Options"
+msgstr ""
+
+msgid "Other:"
+msgstr ""
+
+msgid "Out"
+msgstr ""
+
+msgid "Outbound:"
+msgstr ""
+
+msgid "Output Interface"
+msgstr ""
+
+msgid "Override MAC address"
+msgstr "MAC 주소 덮어쓰기"
+
+msgid "Override MTU"
+msgstr "MTU 덮어쓰기"
+
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
+msgid "Override default interface name"
+msgstr "기본 인터페이스 이름을 덮어씁니다"
+
+msgid "Override the gateway in DHCP responses"
+msgstr ""
+
+msgid ""
+"Override the netmask sent to clients. Normally it is calculated from the "
+"subnet that is served."
+msgstr ""
+"Client 에 전달될 netmask 를 덮어 쓸 수 있습니다.  보통 해당 값은 제공되는 "
+"subnet 에 따라 자동 계산됩니다."
+
+msgid "Override the table used for internal routes"
+msgstr ""
+
+msgid "Overview"
+msgstr "개요"
+
+msgid "Owner"
+msgstr ""
+
+msgid "PAP/CHAP password"
+msgstr ""
+
+msgid "PAP/CHAP username"
+msgstr ""
+
+msgid "PID"
+msgstr ""
+
+msgid "PIN"
+msgstr ""
+
+msgid "PMK R1 Push"
+msgstr ""
+
+msgid "PPP"
+msgstr ""
+
+msgid "PPPoA Encapsulation"
+msgstr ""
+
+msgid "PPPoATM"
+msgstr ""
+
+msgid "PPPoE"
+msgstr ""
+
+msgid "PPPoSSH"
+msgstr ""
+
+msgid "PPtP"
+msgstr ""
+
+msgid "PSID offset"
+msgstr ""
+
+msgid "PSID-bits length"
+msgstr ""
+
+msgid "PTM/EFM (Packet Transfer Mode)"
+msgstr ""
+
+msgid "Package libiwinfo required!"
+msgstr ""
+
+msgid "Package lists are older than 24 hours"
+msgstr ""
+
+msgid "Package name"
+msgstr "패키지 이름"
+
+msgid "Packets"
+msgstr ""
+
+msgid "Part of zone %q"
+msgstr ""
+
+msgid "Password"
+msgstr "암호"
+
+msgid "Password authentication"
+msgstr "암호 인증"
+
+msgid "Password of Private Key"
+msgstr ""
+
+msgid "Password of inner Private Key"
+msgstr ""
+
+msgid "Password successfully changed!"
+msgstr ""
+
+msgid "Path to CA-Certificate"
+msgstr ""
+
+msgid "Path to Client-Certificate"
+msgstr ""
+
+msgid "Path to Private Key"
+msgstr ""
+
+msgid "Path to executable which handles the button event"
+msgstr ""
+
+msgid "Path to inner CA-Certificate"
+msgstr ""
+
+msgid "Path to inner Client-Certificate"
+msgstr ""
+
+msgid "Path to inner Private Key"
+msgstr ""
+
+msgid "Peak:"
+msgstr "최고치:"
+
+msgid "Peer IP address to assign"
+msgstr ""
+
+msgid "Peers"
+msgstr ""
+
+msgid "Perfect Forward Secrecy"
+msgstr ""
+
+msgid "Perform reboot"
+msgstr "재부팅하기"
+
+msgid "Perform reset"
+msgstr "Reset 하기"
+
+msgid "Persistent Keep Alive"
+msgstr ""
+
+msgid "Phy Rate:"
+msgstr ""
+
+msgid "Physical Settings"
+msgstr "Physical 설정"
+
+msgid "Ping"
+msgstr ""
+
+msgid "Pkts."
+msgstr "Pkts."
+
+msgid "Please enter your username and password."
+msgstr "사용자이름과 암호를 입력해 주세요."
+
+msgid "Policy"
+msgstr ""
+
+msgid "Port"
+msgstr "포트"
+
+msgid "Port status:"
+msgstr "포트 상태:"
+
+msgid "Power Management Mode"
+msgstr ""
+
+msgid "Pre-emtive CRC errors (CRCP_P)"
+msgstr ""
+
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
+msgid ""
+"Presume peer to be dead after given amount of LCP echo failures, use 0 to "
+"ignore failures"
+msgstr ""
+
+msgid "Prevent listening on these interfaces."
+msgstr ""
+
+msgid "Prevents client-to-client communication"
+msgstr ""
+
+msgid "Prism2/2.5/3 802.11b Wireless Controller"
+msgstr ""
+
+msgid "Private Key"
+msgstr ""
+
+msgid "Proceed"
+msgstr ""
+
+msgid "Processes"
+msgstr "프로세스"
+
+msgid "Profile"
+msgstr ""
+
+msgid "Prot."
+msgstr "Prot."
+
+msgid "Protocol"
+msgstr "프로토콜"
+
+msgid "Protocol family"
+msgstr ""
+
+msgid "Protocol of the new interface"
+msgstr ""
+
+msgid "Protocol support is not installed"
+msgstr ""
+
+msgid "Provide NTP server"
+msgstr ""
+
+msgid "Provide new network"
+msgstr "새로운 네트워크를 추가합니다"
+
+msgid "Pseudo Ad-Hoc (ahdemo)"
+msgstr ""
+
+msgid "Public Key"
+msgstr ""
+
+msgid "Public prefix routed to this device for distribution to clients."
+msgstr ""
+
+msgid "QMI Cellular"
+msgstr ""
+
+msgid "Quality"
+msgstr ""
+
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
+msgid "RFC3947 NAT-T mode"
+msgstr ""
+
+msgid "RTS/CTS Threshold"
+msgstr ""
+
+msgid "RX"
+msgstr ""
+
+msgid "RX Rate"
+msgstr ""
+
+msgid "RaLink 802.11%s Wireless Controller"
+msgstr ""
+
+msgid "Radius-Accounting-Port"
+msgstr ""
+
+msgid "Radius-Accounting-Secret"
+msgstr ""
+
+msgid "Radius-Accounting-Server"
+msgstr ""
+
+msgid "Radius-Authentication-Port"
+msgstr ""
+
+msgid "Radius-Authentication-Secret"
+msgstr ""
+
+msgid "Radius-Authentication-Server"
+msgstr ""
+
+msgid ""
+"Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
+"Configuration Protocol\">DHCP</abbr>-Server"
+msgstr ""
+"<code>/etc/ethers</code> 파일을 읽어 <abbr title=\"Dynamic Host "
+"Configuration Protocol\">DHCP</abbr>-서버를 설정합니다"
+
+msgid ""
+"Really delete this interface? The deletion cannot be undone!\\nYou might "
+"lose access to this device if you are connected via this interface."
+msgstr ""
+
+msgid ""
+"Really delete this wireless network? The deletion cannot be undone!\\nYou "
+"might lose access to this device if you are connected via this network."
+msgstr ""
+
+msgid "Really reset all changes?"
+msgstr ""
+
+msgid ""
+"Really shut down network?\\nYou might lose access to this device if you are "
+"connected via this interface."
+msgstr ""
+"정말로 네트워크를 shutdown 하시겠습니까?\\n이 인터페이스를 통해 연결하였다면 "
+"접속이 끊어질 수 있습니다."
+
+msgid ""
+"Really shutdown interface \"%s\" ?\\nYou might lose access to this device if "
+"you are connected via this interface."
+msgstr ""
+
+msgid "Really switch protocol?"
+msgstr "정말 프로토콜 변경을 원하세요?"
+
+msgid "Realtime Connections"
+msgstr "실시간 연결수"
+
+msgid "Realtime Graphs"
+msgstr "실시간 그래프"
+
+msgid "Realtime Load"
+msgstr "실시간 부하"
+
+msgid "Realtime Traffic"
+msgstr "실시간 트래픽"
+
+msgid "Realtime Wireless"
+msgstr ""
+
+msgid "Reassociation Deadline"
+msgstr ""
+
+msgid "Rebind protection"
+msgstr ""
+
+msgid "Reboot"
+msgstr "재부팅"
+
+msgid "Rebooting..."
+msgstr ""
+
+msgid "Reboots the operating system of your device"
+msgstr "장치의 운영체제를 재부팅합니다"
+
+msgid "Receive"
+msgstr ""
+
+msgid "Receiver Antenna"
+msgstr ""
+
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
+msgid "Reconnect this interface"
+msgstr "이 인터페이스를 재연결합니다"
+
+msgid "Reconnecting interface"
+msgstr "인터페이스 재연결중입니다"
+
+msgid "References"
+msgstr ""
+
+msgid "Relay"
+msgstr ""
+
+msgid "Relay Bridge"
+msgstr ""
+
+msgid "Relay between networks"
+msgstr ""
+
+msgid "Relay bridge"
+msgstr ""
+
+msgid "Remote IPv4 address"
+msgstr ""
+
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
+msgid "Remove"
+msgstr "제거"
+
+msgid "Repeat scan"
+msgstr ""
+
+msgid "Replace entry"
+msgstr ""
+
+msgid "Replace wireless configuration"
+msgstr ""
+
+msgid "Request IPv6-address"
+msgstr ""
+
+msgid "Request IPv6-prefix of length"
+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 ""
+"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 "
+"come from unsigned domains"
+msgstr ""
+
+msgid "Reset"
+msgstr "초기화"
+
+msgid "Reset Counters"
+msgstr "Counter 초기화"
+
+msgid "Reset to defaults"
+msgstr "초기값으로 reset"
+
+msgid "Resolv and Hosts Files"
+msgstr "Resolv 와 Hosts 파일"
+
+msgid "Resolve file"
+msgstr "Resolve 파일"
+
+msgid "Restart"
+msgstr "재시작"
+
+msgid "Restart Firewall"
+msgstr "방화벽 재시작"
+
+msgid "Restore backup"
+msgstr "백업 복구"
+
+msgid "Reveal/hide password"
+msgstr "암호 보이기/숨기기"
+
+msgid "Revert"
+msgstr "변경 취소"
+
+msgid "Root"
+msgstr ""
+
+msgid "Root directory for files served via TFTP"
+msgstr "TFTP 를 통해 제공되는 파일들의 root 디렉토리"
+
+msgid "Root preparation"
+msgstr ""
+
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
+msgid "Routed IPv6 prefix for downstream interfaces"
+msgstr ""
+
+msgid "Router Advertisement-Service"
+msgstr ""
+
+msgid "Router Password"
+msgstr "라우터 암호"
+
+msgid "Routes"
+msgstr "Route 경로"
+
+msgid ""
+"Routes specify over which interface and gateway a certain host or network "
+"can be reached."
+msgstr ""
+"Route 경로는 특정 호스트 혹은 네트워크가 사용해야 할 인터페이스와 gateway 정"
+"보를 나타냅니다."
+
+msgid "Run a filesystem check before mounting the device"
+msgstr ""
+
+msgid "Run filesystem check"
+msgstr ""
+
+msgid "SHA256"
+msgstr ""
+
+msgid ""
+"SIXXS supports TIC only, for static tunnels using IP protocol 41 (RFC4213) "
+"use 6in4 instead"
+msgstr ""
+
+msgid "SIXXS-handle[/Tunnel-ID]"
+msgstr ""
+
+msgid "SNR"
+msgstr ""
+
+msgid "SSH Access"
+msgstr ""
+
+msgid "SSH server address"
+msgstr ""
+
+msgid "SSH server port"
+msgstr ""
+
+msgid "SSH username"
+msgstr ""
+
+msgid "SSH-Keys"
+msgstr ""
+
+msgid "SSID"
+msgstr "SSID"
+
+msgid "Save"
+msgstr "저장"
+
+msgid "Save & Apply"
+msgstr "저장 & 적용"
+
+msgid "Save &#38; Apply"
+msgstr "저장 &#38; 적용"
+
+msgid "Scan"
+msgstr "Scan 하기"
+
+msgid "Scheduled Tasks"
+msgstr "작업 관리"
+
+msgid "Section added"
+msgstr "추가된 section"
+
+msgid "Section removed"
+msgstr "삭제된 section"
+
+msgid "See \"mount\" manpage for details"
+msgstr ""
+
+msgid ""
+"Send LCP echo requests at the given interval in seconds, only effective in "
+"conjunction with failure threshold"
+msgstr ""
+
+msgid "Separate Clients"
+msgstr ""
+
+msgid "Server Settings"
+msgstr "서버 설정"
+
+msgid "Server password"
+msgstr ""
+
+msgid ""
+"Server password, enter the specific password of the tunnel when the username "
+"contains the tunnel ID"
+msgstr ""
+
+msgid "Server username"
+msgstr ""
+
+msgid "Service Name"
+msgstr ""
+
+msgid "Service Type"
+msgstr ""
+
+msgid "Services"
+msgstr "서비스"
+
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
+msgid "Set up Time Synchronization"
+msgstr ""
+
+msgid "Setup DHCP Server"
+msgstr ""
+
+msgid "Severely Errored Seconds (SES)"
+msgstr ""
+
+msgid "Short GI"
+msgstr ""
+
+msgid "Show current backup file list"
+msgstr "현재 백업 파일 목록 보기"
+
+msgid "Shutdown this interface"
+msgstr "이 인터페이스를 정지합니다"
+
+msgid "Shutdown this network"
+msgstr "이 네트워크를 shutdown 합니다"
+
+msgid "Signal"
+msgstr "신호"
+
+msgid "Signal Attenuation (SATN)"
+msgstr ""
+
+msgid "Signal:"
+msgstr ""
+
+msgid "Size"
+msgstr "Size"
+
+msgid "Size (.ipk)"
+msgstr "크기 (.ipk)"
+
+msgid "Skip"
+msgstr ""
+
+msgid "Skip to content"
+msgstr ""
+
+msgid "Skip to navigation"
+msgstr ""
+
+msgid "Slot time"
+msgstr ""
+
+msgid "Software"
+msgstr "소프트웨어"
+
+msgid "Software VLAN"
+msgstr ""
+
+msgid "Some fields are invalid, cannot save values!"
+msgstr ""
+
+msgid "Sorry, the object you requested was not found."
+msgstr ""
+
+msgid "Sorry, the server encountered an unexpected error."
+msgstr ""
+
+msgid ""
+"Sorry, there is no sysupgrade support present; a new firmware image must be "
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
+msgstr ""
+
+msgid "Sort"
+msgstr "순서"
+
+msgid "Source"
+msgstr ""
+
+msgid "Source routing"
+msgstr ""
+
+msgid "Specifies the button state to handle"
+msgstr ""
+
+msgid "Specifies the directory the device is attached to"
+msgstr ""
+
+msgid "Specifies the listening port of this <em>Dropbear</em> instance"
+msgstr "<em>Dropbear</em> instance 의 listening 포트를 지정합니다"
+
+msgid ""
+"Specifies the maximum amount of failed ARP requests until hosts are presumed "
+"to be dead"
+msgstr ""
+
+msgid ""
+"Specifies the maximum amount of seconds after which hosts are presumed to be "
+"dead"
+msgstr ""
+
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
+msgid "Specify the secret encryption key here."
+msgstr ""
+
+msgid "Start"
+msgstr "시작"
+
+msgid "Start priority"
+msgstr "시작 우선순위"
+
+msgid "Startup"
+msgstr "시작 프로그램"
+
+msgid "Static IPv4 Routes"
+msgstr "Static IPv4 Route 경로"
+
+msgid "Static IPv6 Routes"
+msgstr "Static IPv6 Route 경로"
+
+msgid "Static Leases"
+msgstr "Static Lease 들"
+
+msgid "Static Routes"
+msgstr "Static Route 경로"
+
+msgid "Static address"
+msgstr ""
+
+msgid ""
+"Static leases are used to assign fixed IP addresses and symbolic hostnames "
+"to DHCP clients. They are also required for non-dynamic interface "
+"configurations where only hosts with a corresponding lease are served."
+msgstr ""
+"Static Lease 는 DHCP client 에게 고정된 IP 주소와 symbolic hostname 을 할당"
+"할 때 사용됩니다.  이 기능은 또한 지정된 host 에 대해서만 주소 임대를 하도록 "
+"하는 non-dynamic 인터페이스 설정에도 사용됩니다."
+
+msgid "Status"
+msgstr "상태"
+
+msgid "Stop"
+msgstr "정지"
+
+msgid "Strict order"
+msgstr "Strict order"
+
+msgid "Submit"
+msgstr "제출하기"
+
+msgid "Suppress logging"
+msgstr ""
+
+msgid "Suppress logging of the routine operation of these protocols"
+msgstr ""
+
+msgid "Swap"
+msgstr ""
+
+msgid "Swap Entry"
+msgstr ""
+
+msgid "Switch"
+msgstr "스위치"
+
+msgid "Switch %q"
+msgstr "스위치 %q"
+
+msgid "Switch %q (%s)"
+msgstr "스위치 %q (%s)"
+
+msgid ""
+"Switch %q has an unknown topology - the VLAN settings might not be accurate."
+msgstr ""
+
+msgid "Switch VLAN"
+msgstr "스위치 VLAN"
+
+msgid "Switch protocol"
+msgstr "프로토콜 변경"
+
+msgid "Sync with browser"
+msgstr "브라우저 시간대로 동기화"
+
+msgid "Synchronizing..."
+msgstr ""
+
+msgid "System"
+msgstr "시스템"
+
+msgid "System Log"
+msgstr "시스템 로그"
+
+msgid "System Properties"
+msgstr "시스템 등록 정보"
+
+msgid "System log buffer size"
+msgstr "System log 버퍼 크기"
+
+msgid "TCP:"
+msgstr ""
+
+msgid "TFTP Settings"
+msgstr "TFTP 설정"
+
+msgid "TFTP server root"
+msgstr "TFTP 서버 root"
+
+msgid "TX"
+msgstr "TX"
+
+msgid "TX Rate"
+msgstr ""
+
+msgid "Table"
+msgstr ""
+
+msgid "Target"
+msgstr ""
+
+msgid "Target network"
+msgstr ""
+
+msgid "Terminate"
+msgstr ""
+
+msgid ""
+"The <em>Device Configuration</em> section covers physical settings of the "
+"radio hardware such as channel, transmit power or antenna selection which "
+"are shared among all defined wireless networks (if the radio hardware is "
+"multi-SSID capable). Per network settings like encryption or operation mode "
+"are grouped in the <em>Interface Configuration</em>."
+msgstr ""
+"<em>장치 설정<em> 섹션은 channel, transmit power 혹은 antenna 선택과 같은 물"
+"리적인 설정 내용을 다룹니다.  이 설정은 (만약 radio 하드웨어가 multi-SSID 지"
+"원이 가능하다면) 정의된 모든 무선 네트워크에 공통적으로 적용됩니다. 암호화 혹"
+"은 operation mode 와 같은 각 네트워크 설정들은 <em>인터페이스 설정</em>에서 "
+"다루어집니다."
+
+msgid ""
+"The <em>libiwinfo-lua</em> package is not installed. You must install this "
+"component for working wireless configuration!"
+msgstr ""
+
+msgid ""
+"The HE.net endpoint update configuration changed, you must now use the plain "
+"username instead of the user ID!"
+msgstr ""
+
+msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
+"The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
+msgstr ""
+
+msgid ""
+"The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
+"code> and <code>_</code>"
+msgstr ""
+
+msgid "The configuration file could not be loaded due to the following error:"
+msgstr ""
+
+msgid ""
+"The device file of the memory or partition (<abbr title=\"for example\">e.g."
+"</abbr> <code>/dev/sda1</code>)"
+msgstr ""
+
+msgid ""
+"The filesystem that was used to format the memory (<abbr title=\"for example"
+"\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
+"samp>)"
+msgstr ""
+
+msgid ""
+"The flash image was uploaded. Below is the checksum and file size listed, "
+"compare them with the original file to ensure data integrity.<br /> Click "
+"\"Proceed\" below to start the flash procedure."
+msgstr ""
+
+msgid "The following changes have been committed"
+msgstr ""
+
+msgid "The following changes have been reverted"
+msgstr "다음의 변경 사항들이 취소되었습니다"
+
+msgid "The following rules are currently active on this system."
+msgstr "다음의 rule 들이 현재 이 시스템에 적용 중입니다."
+
+msgid "The given network name is not unique"
+msgstr ""
+
+msgid ""
+"The hardware is not multi-SSID capable and the existing configuration will "
+"be replaced if you proceed."
+msgstr ""
+
+msgid ""
+"The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
+"addresses."
+msgstr ""
+
+msgid "The length of the IPv6 prefix in bits"
+msgstr ""
+
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
+msgid ""
+"The network ports on this device can be combined to several <abbr title="
+"\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
+"communicate directly with each other. <abbr title=\"Virtual Local Area "
+"Network\">VLAN</abbr>s are often used to separate different network "
+"segments. Often there is by default one Uplink port for a connection to the "
+"next greater network like the internet and other ports for a local network."
+msgstr ""
+"이 장치의 네트워크 포트들은 컴퓨터끼리 직접 통신을 할 수 있도록 여러 <abbr "
+"title=\"Virtual Local Area Network\">VLAN</abbr> 으로 구성될 수 있습니다. "
+"<abbr title=\"Virtual Local Area Network\">VLAN</abbr>은 종종 다른 네트워크 "
+"segment 들을 분리하는데 사용되기도 합니다. 한 개의 uplink 포트가 인터넷에 연"
+"결되어 있고 나머지 포트들은 local 네트워크로 연결되는 구성에 자주 사용됩니다."
+
+msgid "The selected protocol needs a device assigned"
+msgstr ""
+
+msgid "The submitted security token is invalid or already expired!"
+msgstr ""
+
+msgid ""
+"The system is erasing the configuration partition now and will reboot itself "
+"when finished."
+msgstr ""
+
+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 "
+"address of your computer to reach the device again, depending on your "
+"settings."
+msgstr ""
+
+msgid ""
+"The tunnel end-point is behind NAT, defaults to disabled and only applies to "
+"AYIYA"
+msgstr ""
+
+msgid ""
+"The uploaded image file does not contain a supported format. Make sure that "
+"you choose the generic image format for your platform."
+msgstr ""
+
+msgid "There are no active leases."
+msgstr ""
+
+msgid "There are no pending changes to apply!"
+msgstr ""
+
+msgid "There are no pending changes to revert!"
+msgstr ""
+
+msgid "There are no pending changes!"
+msgstr ""
+
+msgid ""
+"There is no device assigned yet, please attach a network device in the "
+"\"Physical Settings\" tab"
+msgstr ""
+
+msgid ""
+"There is no password set on this router. Please configure a root password to "
+"protect the web interface and enable SSH."
+msgstr ""
+"이 공유기에 암호 설정이 되지 않았습니다. 웹 UI 와 SSH 부분을 보호하기 위해서 "
+"꼭 root 암호를 설정해 주세요."
+
+msgid "This IPv4 address of the relay"
+msgstr ""
+
+msgid ""
+"This file may contain lines like 'server=/domain/1.2.3.4' or "
+"'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
+"Name System\">DNS</abbr> servers."
+msgstr ""
+
+msgid ""
+"This is a list of shell glob patterns for matching files and directories to "
+"include during sysupgrade. Modified files in /etc/config/ and certain other "
+"configurations are automatically preserved."
+msgstr ""
+"이것은 sysupgrade 시 유지되어야 하는 파일과 디렉토리 목록에 대한 shell glob "
+"패턴들입니다.  /etc/config/ 하위의 수정된 파일이나 특정 다른 설정들은 자동적"
+"으로 변경 사항이 보존됩니다."
+
+msgid ""
+"This is either the \"Update Key\" configured for the tunnel or the account "
+"password if no update key has been configured"
+msgstr ""
+
+msgid ""
+"This is the content of /etc/rc.local. Insert your own commands here (in "
+"front of 'exit 0') to execute them at the end of the boot process."
+msgstr ""
+"이것은 /etc/rc.local 파일의 내용입니다.  여기에 ('exit 0' 앞에) 부팅 절차가 "
+"끝날 때 실행하고자 하는 명령들을 삽입하세요."
+
+msgid ""
+"This is the local endpoint address assigned by the tunnel broker, it usually "
+"ends with <code>:2</code>"
+msgstr ""
+
+msgid ""
+"This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
+"abbr> in the local network"
+msgstr ""
+
+msgid "This is the plain username for logging into the account"
+msgstr ""
+
+msgid ""
+"This is the prefix routed to you by the tunnel broker for use by clients"
+msgstr ""
+
+msgid "This is the system crontab in which scheduled tasks can be defined."
+msgstr "아래는 예정된 작업들이 정의된 시스템 crontab 내용입니다."
+
+msgid ""
+"This is usually the address of the nearest PoP operated by the tunnel broker"
+msgstr ""
+
+msgid ""
+"This list gives an overview over currently running system processes and "
+"their status."
+msgstr ""
+"이 목록은 현재 실행중인 시스템 프로세스와 해당 상태에 대한 개요를 보여줍니다."
+
+msgid "This page allows the configuration of custom button actions"
+msgstr ""
+
+msgid "This page gives an overview over currently active network connections."
+msgstr "이 페이지는 현재 active 상태인 네트워크 연결을 보여줍니다."
+
+msgid "This section contains no values yet"
+msgstr "이 section 은 아직 입력된 값이 없습니다"
+
+msgid "Time Synchronization"
+msgstr "시간 동기화"
+
+msgid "Time Synchronization is not configured yet."
+msgstr "시간 동기화가 아직 설정되지 않았습니다."
+
+msgid "Timezone"
+msgstr "시간대"
+
+msgid ""
+"To restore configuration files, you can upload a previously generated backup "
+"archive here."
+msgstr ""
+"설정 파일을 복구하고자 한다면 이전에 백업하신 아카이브 파일을 여기로 업로드"
+"할 수 있습니다."
+
+msgid "Tone"
+msgstr ""
+
+msgid "Total Available"
+msgstr "총 이용 가능한 양"
+
+msgid "Traceroute"
+msgstr ""
+
+msgid "Traffic"
+msgstr "트래픽"
+
+msgid "Transfer"
+msgstr "전송량"
+
+msgid "Transmission Rate"
+msgstr ""
+
+msgid "Transmit"
+msgstr ""
+
+msgid "Transmit Power"
+msgstr ""
+
+msgid "Transmitter Antenna"
+msgstr ""
+
+msgid "Trigger"
+msgstr ""
+
+msgid "Trigger Mode"
+msgstr ""
+
+msgid "Tunnel ID"
+msgstr ""
+
+msgid "Tunnel Interface"
+msgstr ""
+
+msgid "Tunnel Link"
+msgstr ""
+
+msgid "Tunnel broker protocol"
+msgstr ""
+
+msgid "Tunnel setup server"
+msgstr ""
+
+msgid "Tunnel type"
+msgstr ""
+
+msgid "Tx-Power"
+msgstr ""
+
+msgid "Type"
+msgstr "유형"
+
+msgid "UDP:"
+msgstr ""
+
+msgid "UMTS only"
+msgstr ""
+
+msgid "UMTS/GPRS/EV-DO"
+msgstr ""
+
+msgid "USB Device"
+msgstr ""
+
+msgid "USB Ports"
+msgstr ""
+
+msgid "UUID"
+msgstr ""
+
+msgid "Unable to dispatch"
+msgstr ""
+
+msgid "Unavailable Seconds (UAS)"
+msgstr ""
+
+msgid "Unknown"
+msgstr "알수없음"
+
+msgid "Unknown Error, password not changed!"
+msgstr ""
+
+msgid "Unmanaged"
+msgstr ""
+
+msgid "Unmount"
+msgstr ""
+
+msgid "Unsaved Changes"
+msgstr "적용 안된 변경 사항"
+
+msgid "Unsupported protocol type."
+msgstr ""
+
+msgid "Update lists"
+msgstr ""
+
+msgid ""
+"Upload a sysupgrade-compatible image here to replace the running firmware. "
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
+msgstr ""
+"실행중인 firmware 변경을 하고자 한다면 여기에 sysupgrade 호환성이 유지되는 이"
+"미지를 업로드하세요.  현재의 설정을 유지하고자 한다면 \"설정 유지\" 를 체크하"
+"세요. (이를 지원하는 firmware 이미지 필요)"
+
+msgid "Upload archive..."
+msgstr "아카이브 업로드..."
+
+msgid "Uploaded File"
+msgstr "Uploaded File"
+
+msgid "Uptime"
+msgstr "가동 시간"
+
+msgid "Use <code>/etc/ethers</code>"
+msgstr "<code>/etc/ethers</code> 사용"
+
+msgid "Use DHCP gateway"
+msgstr ""
+
+msgid "Use DNS servers advertised by peer"
+msgstr "Peer 가 권장한 DNS 서버 사용"
+
+msgid "Use ISO/IEC 3166 alpha2 country codes."
+msgstr ""
+
+msgid "Use MTU on tunnel interface"
+msgstr ""
+
+msgid "Use TTL on tunnel interface"
+msgstr ""
+
+msgid "Use as external overlay (/overlay)"
+msgstr ""
+
+msgid "Use as root filesystem (/)"
+msgstr ""
+
+msgid "Use broadcast flag"
+msgstr "Broadcast flag 사용"
+
+msgid "Use builtin IPv6-management"
+msgstr "자체 내장 IPv6-관리 기능 사용"
+
+msgid "Use custom DNS servers"
+msgstr "임의의 DNS 서버 사용"
+
+msgid "Use default gateway"
+msgstr "Default gateway 사용"
+
+msgid "Use gateway metric"
+msgstr "Gateway metric 사용"
+
+msgid "Use routing table"
+msgstr "Routing table 사용"
+
+msgid ""
+"Use the <em>Add</em> Button to add a new lease entry. The <em>MAC-Address</"
+"em> indentifies the host, the <em>IPv4-Address</em> specifies to the fixed "
+"address to use and the <em>Hostname</em> is assigned as symbolic name to the "
+"requesting host. The optional <em>Lease time</em> can be used to set non-"
+"standard host-specific lease time, e.g. 12h, 3d or infinite."
+msgstr ""
+"새로운 항목을 추가하기 위해서는 <em>추가</em> 버튼을 사용하세요. <em>MAC-주소"
+"</em>는 host 를 나타내며, <em>IPv4-주소</em>는 사용할 고정 주소를 나타내고, "
+"요청하는 host 에 대해 <em>hostname</em> 이 symbolic name 으로 부여됩니다. 선"
+"택 사항인 <em>임대 시간</em>은 해당 host 에만 해당되는 시각을 설정하는데 사용"
+"될 수 있습니다.  예를 들어 12h, 3d 혹은 infinite 값들이 가능합니다."
+
+msgid "Used"
+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 ""
+
+msgid "User key (PEM encoded)"
+msgstr ""
+
+msgid "Username"
+msgstr "사용자이름"
+
+msgid "VC-Mux"
+msgstr ""
+
+msgid "VDSL"
+msgstr ""
+
+msgid "VLANs on %q"
+msgstr ""
+
+msgid "VLANs on %q (%s)"
+msgstr "VLAN 설정: %q (%s)"
+
+msgid "VPN Local address"
+msgstr ""
+
+msgid "VPN Local port"
+msgstr ""
+
+msgid "VPN Server"
+msgstr ""
+
+msgid "VPN Server port"
+msgstr ""
+
+msgid "VPN Server's certificate SHA1 hash"
+msgstr ""
+
+msgid "VPNC (CISCO 3000 (and others) VPN)"
+msgstr ""
+
+msgid "Vendor"
+msgstr ""
+
+msgid "Vendor Class to send when requesting DHCP"
+msgstr "DHCP 요청시 전송할 Vendor Class"
+
+msgid "Verbose"
+msgstr ""
+
+msgid "Verbose logging by aiccu daemon"
+msgstr ""
+
+msgid "Verify"
+msgstr ""
+
+msgid "Version"
+msgstr "버전"
+
+msgid "WDS"
+msgstr "WDS"
+
+msgid "WEP Open System"
+msgstr ""
+
+msgid "WEP Shared Key"
+msgstr ""
+
+msgid "WEP passphrase"
+msgstr ""
+
+msgid "WMM Mode"
+msgstr "WMM Mode"
+
+msgid "WPA passphrase"
+msgstr ""
+
+msgid ""
+"WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
+"and ad-hoc mode) to be installed."
+msgstr ""
+
+msgid ""
+"Wait for NTP sync that many seconds, seting to 0 disables waiting (optional)"
+msgstr ""
+
+msgid "Waiting for changes to be applied..."
+msgstr "변경 사항이 적용되기를 기다리는 중입니다..."
+
+msgid "Waiting for command to complete..."
+msgstr "실행한 명령이 끝나기를 기다리는 중입니다..."
+
+msgid "Waiting for device..."
+msgstr ""
+
+msgid "Warning"
+msgstr ""
+
+msgid "Warning: There are unsaved changes that will get lost on reboot!"
+msgstr ""
+
+msgid "Whether to create an IPv6 default route over the tunnel"
+msgstr ""
+
+msgid "Whether to route only packets from delegated prefixes"
+msgstr ""
+
+msgid "Width"
+msgstr ""
+
+msgid "WireGuard VPN"
+msgstr ""
+
+msgid "Wireless"
+msgstr "무선"
+
+msgid "Wireless Adapter"
+msgstr ""
+
+msgid "Wireless Network"
+msgstr "무선랜 네트워크"
+
+msgid "Wireless Overview"
+msgstr "무선랜 개요"
+
+msgid "Wireless Security"
+msgstr "무선랜 보안"
+
+msgid "Wireless is disabled or not associated"
+msgstr "무선이 비활성화되어 있거나 연결되어 있지 않습니다"
+
+msgid "Wireless is restarting..."
+msgstr "무선랜이 재시작중입니다..."
+
+msgid "Wireless network is disabled"
+msgstr "무선 네트워크가 꺼져 있음"
+
+msgid "Wireless network is enabled"
+msgstr "무선 네트워크가 켜져 있음"
+
+msgid "Wireless restarted"
+msgstr "무선랜이 재시작되었습니다"
+
+msgid "Wireless shut down"
+msgstr "무선랜이 shutdown 되었습니다"
+
+msgid "Write received DNS requests to syslog"
+msgstr "받은 DNS 요청 내용을 systlog 에 기록합니다"
+
+msgid "Write system log to file"
+msgstr "System log 출력 파일 경로"
+
+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 "
+"scripts like \"network\", your device might become inaccessible!</strong>"
+msgstr ""
+"이 메뉴에서 설치된 init script 를 활성화/비활성화 할 수 있습니다. 변경 사항"
+"은 장치가 재부팅 될 때 적용되게 됩니다.<br /><strong>경고: 만약 \"network\" "
+"와 같은 중요 init script 를 비활성화 할 경우, 장치에 접속을 못하실 수 있습니"
+"다!</strong>"
+
+msgid ""
+"You must enable JavaScript in your browser or LuCI will not work properly."
+msgstr ""
+
+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 ""
+
+msgid "any"
+msgstr ""
+
+msgid "auto"
+msgstr ""
+
+msgid "automatic"
+msgstr ""
+
+msgid "baseT"
+msgstr ""
+
+msgid "bridged"
+msgstr ""
+
+msgid "create:"
+msgstr ""
+
+msgid "creates a bridge over specified interface(s)"
+msgstr "지정한 인터페이스(들)로 구성된 bridge 를 생성합니다"
+
+msgid "dB"
+msgstr ""
+
+msgid "dBm"
+msgstr ""
+
+msgid "disable"
+msgstr ""
+
+msgid "disabled"
+msgstr ""
+
+msgid "expired"
+msgstr "만료됨"
+
+msgid ""
+"file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
+"abbr>-leases will be stored"
+msgstr ""
+"할당된 <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>-lease "
+"정보가 저장되는 파일"
+
+msgid "forward"
+msgstr ""
+
+msgid "full-duplex"
+msgstr ""
+
+msgid "half-duplex"
+msgstr ""
+
+msgid "help"
+msgstr ""
+
+msgid "hidden"
+msgstr ""
+
+msgid "hybrid mode"
+msgstr ""
+
+msgid "if target is a network"
+msgstr "Target 이 네트워크일 경우"
+
+msgid "input"
+msgstr ""
+
+msgid "kB"
+msgstr ""
+
+msgid "kB/s"
+msgstr ""
+
+msgid "kbit/s"
+msgstr ""
+
+msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
+msgstr "local <abbr title=\"Domain Name System\">DNS</abbr> 파일"
+
+msgid "minimum 1280, maximum 1480"
+msgstr ""
+
+msgid "minutes"
+msgstr ""
+
+msgid "navigation Navigation"
+msgstr ""
+
+msgid "no"
+msgstr ""
+
+msgid "no link"
+msgstr "link 없음"
+
+msgid "none"
+msgstr ""
+
+msgid "not present"
+msgstr ""
+
+msgid "off"
+msgstr ""
+
+msgid "on"
+msgstr ""
+
+msgid "open"
+msgstr ""
+
+msgid "overlay"
+msgstr ""
+
+msgid "relay mode"
+msgstr ""
+
+msgid "routed"
+msgstr ""
+
+msgid "server mode"
+msgstr ""
+
+msgid "skiplink1 Skip to navigation"
+msgstr ""
+
+msgid "skiplink2 Skip to content"
+msgstr ""
+
+msgid "stateful-only"
+msgstr ""
+
+msgid "stateless"
+msgstr ""
+
+msgid "stateless + stateful"
+msgstr ""
+
+msgid "tagged"
+msgstr ""
+
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+msgid "unlimited"
+msgstr ""
+
+msgid "unspecified"
+msgstr ""
+
+msgid "unspecified -or- create:"
+msgstr "unspecified -혹은- create:"
+
+msgid "untagged"
+msgstr ""
+
+msgid "yes"
+msgstr ""
+
+msgid "« Back"
+msgstr ""
index 3aaf0c0..521d95d 100644 (file)
@@ -43,18 +43,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -136,9 +163,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr "AR-Penyokong"
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -268,6 +292,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr ""
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -276,9 +303,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -374,9 +398,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Associated Stesen"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -386,6 +407,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Authentifizierung"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Pengesahan"
 
@@ -452,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 ""
 
@@ -479,9 +500,15 @@ msgid ""
 "defined backup patterns."
 msgstr ""
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr ""
 
@@ -550,6 +577,9 @@ msgstr ""
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Jumlah disemak "
 
@@ -601,9 +631,6 @@ msgstr "Perintah"
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr "Mampatan"
-
 msgid "Configuration"
 msgstr "Konfigurasi"
 
@@ -817,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 ""
 
@@ -862,15 +889,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr ""
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -937,6 +964,9 @@ msgstr "Mengaktifkan <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr ""
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr ""
 
@@ -967,6 +997,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr ""
 
@@ -979,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"
 
@@ -988,6 +1026,12 @@ msgstr ""
 msgid "Encryption"
 msgstr "Enkripsi"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr ""
 
@@ -1019,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 ""
 
@@ -1031,9 +1081,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Frame Cepat"
-
 msgid "File"
 msgstr ""
 
@@ -1069,6 +1116,9 @@ msgstr "Selesai"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Tetapan Firewall"
 
@@ -1114,6 +1164,9 @@ msgstr ""
 msgid "Force TKIP and CCMP (AES)"
 msgstr ""
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1144,6 +1197,11 @@ msgstr ""
 msgid "Free space"
 msgstr ""
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr ""
 
@@ -1201,6 +1259,9 @@ msgstr ""
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Kawalan"
 
@@ -1258,6 +1319,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Alamat IP"
 
@@ -1300,6 +1364,9 @@ msgstr ""
 msgid "IPv4-Address"
 msgstr ""
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "Konfigurasi IPv6"
 
@@ -1348,6 +1415,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1492,6 +1562,9 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "Username dan / atau password tak sah! Sila cuba lagi."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1500,7 +1573,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
@@ -1614,6 +1687,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 ""
 
@@ -1626,6 +1715,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1743,9 +1835,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Rate Maksimum"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1782,9 +1871,6 @@ msgstr "Penggunaan Memori (%)"
 msgid "Metric"
 msgstr "Metrik"
 
-msgid "Minimum Rate"
-msgstr "Rate Minimum"
-
 #, fuzzy
 msgid "Minimum hold time"
 msgstr "Memegang masa minimum"
@@ -1798,6 +1884,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Mode"
 
@@ -1856,9 +1945,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr "Multicast Rate"
-
 msgid "Multicast address"
 msgstr ""
 
@@ -1871,6 +1957,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2050,12 +2139,50 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Pilihan"
 
@@ -2068,9 +2195,6 @@ msgstr "Keluar"
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr "Saluran Outdoor"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2080,6 +2204,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2112,6 +2242,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2196,6 +2329,9 @@ msgstr ""
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2205,6 +2341,9 @@ msgstr "Lakukan reboot"
 msgid "Perform reset"
 msgstr ""
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2235,6 +2374,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2249,6 +2400,9 @@ msgstr "Mencegah komunikasi sesama Pelanggan"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Teruskan"
 
@@ -2282,12 +2436,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2368,6 +2534,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2386,6 +2555,9 @@ msgstr "Menerima"
 msgid "Receiver Antenna"
 msgstr "Antena Penerima"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2395,9 +2567,6 @@ msgstr ""
 msgid "References"
 msgstr "Rujukan"
 
-msgid "Regulatory Domain"
-msgstr "Peraturan Domain"
-
 msgid "Relay"
 msgstr ""
 
@@ -2413,6 +2582,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr ""
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Menghapuskan"
 
@@ -2434,9 +2606,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2481,6 +2673,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2570,9 +2768,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Pisahkan Pelanggan"
 
-msgid "Separate WDS"
-msgstr "Pisahkan WDS"
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2596,6 +2791,11 @@ msgstr ""
 msgid "Services"
 msgstr "Perkhidmatan"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
 msgstr ""
 
@@ -2661,8 +2861,8 @@ msgstr ""
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2694,6 +2894,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr ""
 
@@ -2718,9 +2931,6 @@ msgstr "Statische Einträge"
 msgid "Static Routes"
 msgstr "Laluan Statik"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -2838,6 +3048,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2897,6 +3111,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3097,9 +3314,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Mod Turbo"
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3118,6 +3332,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3150,8 +3367,8 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3219,6 +3436,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 ""
 
@@ -3329,6 +3551,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr ""
 
@@ -3368,9 +3593,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 "
@@ -3378,7 +3600,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 ""
@@ -3467,6 +3689,9 @@ msgstr "Fail DNS tempatan"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3521,6 +3746,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3541,3 +3769,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 579ea24..8e94388 100644 (file)
@@ -38,18 +38,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -138,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"
 
@@ -277,6 +301,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr "Tillat oppstrøms svar i 127.0.0.0/8 nettet, f.eks for RBL tjenester"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -285,9 +312,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -383,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 ""
 
@@ -395,6 +416,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Godkjenning"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Autoritativ"
 
@@ -461,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"
 
@@ -491,9 +512,15 @@ msgstr ""
 "konfigurasjonsfiler som er merket av opkg, essensielle enhets filer og andre "
 "filer valgt av bruker."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Bitrate"
 
@@ -562,6 +589,9 @@ msgstr "Kontroller"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Kontrollsum"
 
@@ -623,9 +653,6 @@ msgstr "Kommando"
 msgid "Common Configuration"
 msgstr "Vanlige Innstillinger"
 
-msgid "Compression"
-msgstr "Komprimering"
-
 msgid "Configuration"
 msgstr "Konfigurasjon"
 
@@ -845,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"
 
@@ -891,15 +918,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr "Domene hviteliste"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -972,6 +999,9 @@ msgstr "Aktiver <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Aktiver HE,net dynamisk endepunkt oppdatering"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Aktiver IPv6 på PPP lenke"
 
@@ -1002,6 +1032,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Aktiver dette monteringspunktet"
 
@@ -1014,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"
 
@@ -1023,6 +1061,12 @@ msgstr "Innkapsling modus"
 msgid "Encryption"
 msgstr "Kryptering"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Sletter..."
 
@@ -1055,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"
 
@@ -1067,9 +1117,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Fast Frames"
-
 msgid "File"
 msgstr "Fil"
 
@@ -1105,6 +1152,9 @@ msgstr "Fullfør"
 msgid "Firewall"
 msgstr "Brannmur"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Brannmur Innstillinger"
 
@@ -1151,6 +1201,9 @@ msgstr "Bruk TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Bruk TKIP og CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1181,6 +1234,11 @@ msgstr "Ledig"
 msgid "Free space"
 msgstr "Ledig plass"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "GHz"
 
@@ -1238,6 +1296,9 @@ msgstr "HE.net passord"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Behandler"
 
@@ -1297,6 +1358,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP adresse"
 
@@ -1339,6 +1403,9 @@ msgstr "IPv4 prefikslengde"
 msgid "IPv4-Address"
 msgstr "IPv4-Adresse"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1387,6 +1454,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-Adresse"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-i-IPv4 (RFC4213)"
 
@@ -1530,6 +1600,9 @@ msgstr "Ugyldig VLAN ID gitt! Bare unike ID'er er tillatt"
 msgid "Invalid username and/or password! Please try again."
 msgstr "Ugyldig brukernavn og/eller passord! Vennligst prøv igjen."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1538,8 +1611,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"
@@ -1653,6 +1726,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 ""
 
@@ -1665,6 +1754,9 @@ msgstr "Liste over verter som returneren falske NX domene resultater"
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 "Lytt kun på det angitte grensesnitt, om ingen er angitt lyttes det på alle"
@@ -1788,9 +1880,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"
 
@@ -1826,9 +1915,6 @@ msgstr "Minne forbruk (%)"
 msgid "Metric"
 msgstr "Metrisk"
 
-msgid "Minimum Rate"
-msgstr "Minimum hastighet"
-
 msgid "Minimum hold time"
 msgstr "Minimum holde tid"
 
@@ -1841,6 +1927,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Mangler protokoll utvidelse for proto %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Modus"
 
@@ -1899,9 +1988,6 @@ msgstr "Flytt ned"
 msgid "Move up"
 msgstr "Flytt opp"
 
-msgid "Multicast Rate"
-msgstr "Multicast hastighet"
-
 msgid "Multicast address"
 msgstr "Multicast adresse"
 
@@ -1914,6 +2000,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2094,12 +2183,50 @@ msgstr "Innstilling endret"
 msgid "Option removed"
 msgstr "Innstilling fjernet"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Alternativer"
 
@@ -2112,9 +2239,6 @@ msgstr "Ut"
 msgid "Outbound:"
 msgstr "Ugående:"
 
-msgid "Outdoor Channels"
-msgstr "Utendørs Kanaler"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2124,6 +2248,12 @@ msgstr "Overstyr MAC adresse"
 msgid "Override MTU"
 msgstr "Overstyr MTU"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2158,6 +2288,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2242,6 +2375,9 @@ msgstr "Maksimalt:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2251,6 +2387,9 @@ msgstr "Omstart nå"
 msgid "Perform reset"
 msgstr "Foreta nullstilling"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Phy Hastighet:"
 
@@ -2281,6 +2420,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2297,6 +2448,9 @@ msgstr "Hindrer klient-til-klient kommunikasjon"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Prism2/2.5/3 802.11b Trådløs Kontroller"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Fortsett"
 
@@ -2330,12 +2484,24 @@ msgstr "Lag nytt nettverk"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Kvalitet"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2429,6 +2595,9 @@ msgstr "Trafikk Sanntid"
 msgid "Realtime Wireless"
 msgstr "Trådløst i sanntid"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Binde beskyttelse"
 
@@ -2447,6 +2616,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"
 
@@ -2456,9 +2628,6 @@ msgstr "Kobler til igjen"
 msgid "References"
 msgstr "Referanser"
 
-msgid "Regulatory Domain"
-msgstr "Regulerende Domene"
-
 msgid "Relay"
 msgstr "Relay"
 
@@ -2474,6 +2643,9 @@ msgstr "Relay bro"
 msgid "Remote IPv4 address"
 msgstr "Ekstern IPv4 adresse"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Avinstaller"
 
@@ -2495,9 +2667,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2542,6 +2734,12 @@ msgstr "Rot katalog for filer gitt fra TFTP"
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2633,9 +2831,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Separerte Klienter"
 
-msgid "Separate WDS"
-msgstr "Separert WDS"
-
 msgid "Server Settings"
 msgstr "Server Innstillinger"
 
@@ -2659,6 +2854,11 @@ msgstr "Tjeneste type"
 msgid "Services"
 msgstr "Tjenester"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Oppsett tidssynkronisering"
@@ -2723,15 +2923,14 @@ msgstr "Beklager, objektet du spurte om ble ikke funnet."
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "Beklager, det oppstod en uventet feil på serveren."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "Beklager, men finner ikke støtte for 'sysupgrade', ny firmware må derfor "
-"flashes manuelt. Viser til OpenWrt wiki for installering av firmare på "
-"forskjellige enheter."
+"flashes manuelt. Viser til wiki for installering av firmare på forskjellige "
+"enheter."
 
 msgid "Sort"
 msgstr "Sortering"
@@ -2762,6 +2961,19 @@ msgid ""
 "dead"
 msgstr "Angir maksimalt antall sekunder før verter ansees som frakoblet"
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Angi krypteringsnøkkelen her."
 
@@ -2786,9 +2998,6 @@ msgstr "Statiske Leier"
 msgid "Static Routes"
 msgstr "Statiske Ruter"
 
-msgid "Static WDS"
-msgstr "Statisk WDS"
-
 msgid "Static address"
 msgstr "Statisk adresse"
 
@@ -2917,6 +3126,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 "IPv6 prefikset tilordnet mot leverandør, ender som regel med <code>::</code>"
@@ -2984,6 +3197,9 @@ msgstr "Lengden IPv4 prefikset i bits, resten brukt i IPv6-adresser."
 msgid "The length of the IPv6 prefix in bits"
 msgstr "Lengden på IPv6 prefikset i bits"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3203,9 +3419,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbo Modus"
-
 msgid "Tx-Power"
 msgstr "Tx-Styrke"
 
@@ -3224,6 +3437,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB Enhet"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3256,12 +3472,12 @@ msgstr "Oppdater lister"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Last her opp en sysupgrade-kompatibel firmware som skal erstatte den "
 "kjørende firmware. Merk av \"Behold innstillinger\" for å beholde gjeldene "
-"konfigurasjon. (en OpenWrt kompatibel firmware er nødvendig)"
+"konfigurasjon. (en kompatibel firmware er nødvendig)"
 
 msgid "Upload archive..."
 msgstr "Last opp arkiv..."
@@ -3332,6 +3548,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 ""
 
@@ -3442,6 +3663,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Trådløs"
 
@@ -3481,9 +3705,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 "
@@ -3495,9 +3716,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 ""
@@ -3588,6 +3809,9 @@ msgstr "lokal <abbr title=\"Domain Navn System\">DNS</abbr>-fil"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3642,6 +3866,9 @@ msgstr ""
 msgid "tagged"
 msgstr "tagget"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "ukjent"
 
@@ -3663,6 +3890,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 4619ad2..3043b8f 100644 (file)
@@ -44,18 +44,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -143,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"
 
@@ -292,6 +315,9 @@ msgid ""
 msgstr ""
 "Pozwól na ruch wychodzący (odpowiedzi) z podsieci 127.0.0.0/8, np. usługi RBL"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -300,9 +326,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -398,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 ""
 
@@ -410,6 +430,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Uwierzytelnianie"
 
+msgid "Authentication Type"
+msgstr ""
+
 # Nawet M$ tego nie tłumaczy;)
 msgid "Authoritative"
 msgstr "Autorytatywny"
@@ -477,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"
 
@@ -508,9 +528,15 @@ msgstr ""
 "Zawiera ona zmienione pliki konfiguracyjne oznaczone przez opkg, podstawowe "
 "pliki systemowe, oraz pliki oznaczone do kopiowania przez użytkownika."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Przepływność"
 
@@ -580,6 +606,9 @@ msgstr "Sprawdź"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Suma kontrolna"
 
@@ -642,9 +671,6 @@ msgstr "Polecenie"
 msgid "Common Configuration"
 msgstr "Konfiguracja podstawowa"
 
-msgid "Compression"
-msgstr "Kompresja"
-
 msgid "Configuration"
 msgstr "Konfiguracja"
 
@@ -867,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"
 
@@ -915,15 +941,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr "Whitelist domen (Dozwolone domeny)"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -999,6 +1025,9 @@ msgstr "Włącz <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Włącz dynamiczną aktualizację punktu końcowego sieci HE.net"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Włącz negocjację IPv6 na łączu PPP"
 
@@ -1029,6 +1058,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Włącz ten punkt montowania"
 
@@ -1041,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 "
@@ -1053,6 +1090,12 @@ msgstr "Sposób Enkapsulacji"
 msgid "Encryption"
 msgstr "Szyfrowanie"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Usuwanie..."
 
@@ -1086,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"
 
@@ -1098,9 +1147,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Szybkie ramki (Fast Frames)"
-
 msgid "File"
 msgstr "Plik"
 
@@ -1136,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"
@@ -1183,6 +1232,9 @@ msgstr "Wymuś TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Wymuś TKIP i CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1213,6 +1265,11 @@ msgstr "Wolna"
 msgid "Free space"
 msgstr "Wolna przestrzeń"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "GHz"
 
@@ -1272,6 +1329,9 @@ msgstr "Hasło HE.net"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Uchwyt"
 
@@ -1334,6 +1394,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Adres IP"
 
@@ -1376,6 +1439,9 @@ msgstr "Długość prefiksu IPv4"
 msgid "IPv4-Address"
 msgstr "Adres IPv4"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1424,6 +1490,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Adres IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-w-IPv4 (RFC4213)"
 
@@ -1575,6 +1644,9 @@ msgstr "Podano niewłaściwy ID VLAN`u! Dozwolone są tylko unikalne ID."
 msgid "Invalid username and/or password! Please try again."
 msgstr "Niewłaściwy login i/lub hasło! Spróbuj ponownie."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1583,8 +1655,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ą"
@@ -1698,6 +1770,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 ""
 
@@ -1710,6 +1798,9 @@ msgstr "Lista hostów które dostarczają zafałszowane wyniki NX domain"
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 "Słuchaj tylko na podanym interfejsie, lub jeśli nie podano na wszystkich"
@@ -1834,9 +1925,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"
 
@@ -1872,9 +1960,6 @@ msgstr "Użycie pamięci (%)"
 msgid "Metric"
 msgstr "Metryka"
 
-msgid "Minimum Rate"
-msgstr "Minimalna Szybkość"
-
 msgid "Minimum hold time"
 msgstr "Minimalny czas podtrzymania"
 
@@ -1887,6 +1972,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"
 
@@ -1945,9 +2033,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"
 
@@ -1960,6 +2045,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2139,12 +2227,50 @@ msgstr "Wartość zmieniona"
 msgid "Option removed"
 msgstr "Usunięto wartość"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Opcje"
 
@@ -2157,9 +2283,6 @@ msgstr "Wychodzące"
 msgid "Outbound:"
 msgstr "Wychodzący:"
 
-msgid "Outdoor Channels"
-msgstr "Kanały zewnętrzne"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2169,6 +2292,12 @@ msgstr "Nadpisz adres MAC"
 msgid "Override MTU"
 msgstr "Nadpisz MTU"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2203,6 +2332,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2289,6 +2421,9 @@ msgstr "Szczyt:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2298,6 +2433,9 @@ msgstr "Wykonaj restart"
 msgid "Perform reset"
 msgstr "Wykonaj reset"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Szybkość Phy:"
 
@@ -2328,6 +2466,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2344,6 +2494,9 @@ msgstr "Zapobiegaj komunikacji klientów pomiędzy sobą"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Kontroler bezprzewodowy Prism2/2.5/3 802.11b"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Wykonaj"
 
@@ -2378,12 +2531,24 @@ msgstr "Utwórz nową sieć"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Jakość"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2478,6 +2643,9 @@ msgstr "Ruch w czasie rzeczywistym"
 msgid "Realtime Wireless"
 msgstr "WiFi w czasie rzeczywistym"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Przypisz ochronę"
 
@@ -2496,6 +2664,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"
 
@@ -2505,9 +2676,6 @@ msgstr "Łączę ponownie interfejs"
 msgid "References"
 msgstr "Referencje"
 
-msgid "Regulatory Domain"
-msgstr "Domena regulacji"
-
 msgid "Relay"
 msgstr "Przekaźnik"
 
@@ -2523,6 +2691,9 @@ msgstr "Most przekaźnikowy"
 msgid "Remote IPv4 address"
 msgstr "Zdalny adres IPv4"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Usuń"
 
@@ -2544,9 +2715,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2591,6 +2782,12 @@ msgstr "Katalog Root`a dla plików udostępnianych przez TFTP"
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2684,9 +2881,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Rozdziel klientów"
 
-msgid "Separate WDS"
-msgstr "Rozdziel WDS"
-
 msgid "Server Settings"
 msgstr "Ustawienia serwera"
 
@@ -2710,6 +2904,11 @@ msgstr "Typ serwisu"
 msgid "Services"
 msgstr "Serwisy"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Ustawienia synchronizacji czasu"
@@ -2774,15 +2973,14 @@ msgstr "Przepraszamy, ale żądany obiekt nie został znaleziony."
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "Przepraszamy, ale serwer napotkał nieoczekiwany błąd."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "Przepraszamy, ale nie ma wsparcia dla trybu sysupgrade. Nowy firmware musi "
-"być wgrany ręcznie. Sprawdź stronę OpenWrt wiki, aby uzyskać instrukcję dla "
-"danego urządzenia."
+"być wgrany ręcznie. Sprawdź stronę wiki, aby uzyskać instrukcję dla danego "
+"urządzenia."
 
 msgid "Sort"
 msgstr "Posortuj"
@@ -2815,6 +3013,19 @@ msgid ""
 msgstr ""
 "Określa maksymalny czas w sekundach przed założeniem, że host jest martwy"
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Określ tajny klucz szyfrowania."
 
@@ -2839,9 +3050,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"
 
@@ -2972,6 +3180,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 "Prefiks IPv6 przypisany do dostawcy, zazwyczaj kończy się <code>::</code>"
@@ -3042,6 +3254,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr "Długość prefiksu IPv6 w bitach"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3266,9 +3481,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Tryb Turbo"
-
 msgid "Tx-Power"
 msgstr "Moc nadawania"
 
@@ -3287,6 +3499,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Urządzenie USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3319,12 +3534,12 @@ msgstr "Aktualizuj listy"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Prześlij zgodny z funkcją sysupgrade obraz tutaj, aby zastąpić aktualnie "
 "działające firmware. Zaznacz opcję \"Zachowaj ustawienia\", aby zachować "
-"bieżącą konfigurację (wymaga zgodnego obrazu firmware OpenWrt)."
+"bieżącą konfigurację (wymaga zgodnego obrazu firmware)."
 
 msgid "Upload archive..."
 msgstr "Załaduj archiwum..."
@@ -3396,6 +3611,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 ""
 
@@ -3507,6 +3727,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Sieć bezprzewodowa"
 
@@ -3546,9 +3769,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 "
@@ -3560,9 +3780,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 ""
@@ -3653,6 +3873,9 @@ msgstr "lokalny plik <abbr title=\"Domain Name System\">DNS</abbr>"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3708,6 +3931,9 @@ msgstr ""
 msgid "tagged"
 msgstr "tagowane"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "nieznane"
 
@@ -3729,6 +3955,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 e61ad6c..3229cb7 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,10 +38,15 @@ msgid "-- custom --"
 msgstr "-- personalizado --"
 
 msgid "-- match by device --"
-msgstr ""
+msgstr "-- casar por dispositivo --"
 
 msgid "-- match by label --"
+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:"
@@ -49,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>"
@@ -100,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>"
@@ -131,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 "
@@ -181,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"
@@ -234,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"
@@ -250,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"
@@ -258,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 ""
@@ -292,79 +334,82 @@ msgstr ""
 "Permite respostas que apontem para 127.0.0.0/8 de servidores externos, por "
 "exemplo, para os serviços RBL"
 
+msgid "Allowed IPs"
+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 ""
-
-msgid "An additional network will be created if you leave this checked."
-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"
@@ -387,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"
@@ -394,22 +441,24 @@ 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 "Tipo de Autenticação"
+
 msgid "Authoritative"
 msgstr "Autoritário"
 
@@ -420,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"
@@ -450,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"
@@ -476,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"
 
@@ -492,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 "
@@ -506,8 +556,16 @@ msgstr ""
 "de configuração alterados marcados pelo opkg, arquivos base essenciais e "
 "padrões para a cópia de segurança definidos pelo usuário."
 
+msgid "Bind interface"
+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 "Vincule o túnel a esta interface (opcional)"
 
 msgid "Bitrate"
 msgstr "Taxa de bits"
@@ -540,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 (%)"
@@ -554,7 +615,7 @@ msgid "Cancel"
 msgstr "Cancelar"
 
 msgid "Category"
-msgstr ""
+msgstr "Categoria"
 
 msgid "Chain"
 msgstr "Cadeia"
@@ -576,6 +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 "Marque esta opção para remover as redes existentes neste rádio."
 
 msgid "Checksum"
 msgstr "Soma de verificação"
@@ -602,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 "
@@ -639,9 +704,6 @@ msgstr "Comando"
 msgid "Common Configuration"
 msgstr "Configuração Comum"
 
-msgid "Compression"
-msgstr "Compressão"
-
 msgid "Configuration"
 msgstr "Configuração"
 
@@ -664,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"
@@ -700,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"
@@ -736,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"
@@ -751,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"
@@ -790,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"
@@ -832,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"
@@ -860,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)"
@@ -882,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"
@@ -911,15 +975,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr "Lista branca de domínios"
 
+msgid "Don't Fragment"
+msgstr "Não Fragmentar"
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -946,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 ""
@@ -964,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"
@@ -976,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"
@@ -995,6 +1061,9 @@ msgstr "Ativar <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Ativar a atualização de ponto final dinâmico HE.net"
 
+msgid "Enable IPv6 negotiation"
+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"
 
@@ -1005,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"
@@ -1014,16 +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 "Habilita o campo DF (Não Fragmentar) dos pacotes encapsulados."
 
 msgid "Enable this mount"
 msgstr "Ativar esta montagem"
@@ -1037,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"
 
@@ -1046,6 +1125,12 @@ msgstr "Modo de encapsulamento"
 msgid "Encryption"
 msgstr "Cifragem"
 
+msgid "Endpoint Host"
+msgstr "Equipamento do ponto final"
+
+msgid "Endpoint Port"
+msgstr "Porta do ponto final"
+
 msgid "Erasing..."
 msgstr "Apagando..."
 
@@ -1053,7 +1138,7 @@ msgid "Error"
 msgstr "Erro"
 
 msgid "Errored seconds (ES)"
-msgstr ""
+msgstr "Segundos com erro (ES)"
 
 msgid "Ethernet Adapter"
 msgstr "Adaptador Ethernet"
@@ -1062,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)"
@@ -1070,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 ""
@@ -1078,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)"
@@ -1087,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"
@@ -1117,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"
@@ -1130,6 +1220,9 @@ msgstr "Terminar"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Configurações do Firewall"
 
@@ -1137,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"
@@ -1175,17 +1268,22 @@ msgstr "Forçar TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Forçar TKIP e CCMP (AES)"
 
-msgid "Force use of NAT-T"
+msgid "Force link"
 msgstr ""
 
+msgid "Force use of NAT-T"
+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"
@@ -1205,6 +1303,13 @@ msgstr "Livre"
 msgid "Free space"
 msgstr "Espaço livre"
 
+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"
 
@@ -1224,10 +1329,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"
@@ -1239,10 +1344,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..."
@@ -1251,16 +1356,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 "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"
@@ -1271,9 +1381,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 "
@@ -1298,7 +1410,7 @@ msgstr ""
 "\">ESSID</abbr>"
 
 msgid "Host"
-msgstr ""
+msgstr "Equipamento"
 
 msgid "Host entries"
 msgstr "Entradas de Equipamentos"
@@ -1321,10 +1433,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"
@@ -1345,7 +1462,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"
@@ -1360,7 +1477,7 @@ msgid "IPv4 only"
 msgstr "Somente IPv4"
 
 msgid "IPv4 prefix"
-msgstr ""
+msgstr "Prefixo IPv4"
 
 msgid "IPv4 prefix length"
 msgstr "Tamanho do prefixo IPv4"
@@ -1368,6 +1485,9 @@ msgstr "Tamanho do prefixo IPv4"
 msgid "IPv4-Address"
 msgstr "Endereço IPv4"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr "IPv4-in-IPv4 (RFC2003)"
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1375,13 +1495,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"
@@ -1390,13 +1512,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"
@@ -1411,11 +1533,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)"
 
@@ -1429,10 +1554,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"
@@ -1488,6 +1613,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"
@@ -1508,7 +1635,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"
@@ -1535,7 +1662,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."
@@ -1550,7 +1677,7 @@ msgid "Interfaces"
 msgstr "Interfaces"
 
 msgid "Internal"
-msgstr ""
+msgstr "Interno"
 
 msgid "Internal Server Error"
 msgstr "erro no servidor interno"
@@ -1571,7 +1698,9 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "Usuário e/ou senha inválida! Por favor, tente novamente."
 
-#, fuzzy
+msgid "Isolate Clients"
+msgstr ""
+
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
 "flash memory, please verify the image file!"
@@ -1579,8 +1708,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"
@@ -1589,7 +1718,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"
@@ -1634,13 +1763,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"
@@ -1668,21 +1797,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"
@@ -1694,8 +1825,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 ""
@@ -1708,7 +1865,10 @@ msgstr ""
 "fornecem resultados errados para consultas a domínios inexistentes (NX)"
 
 msgid "Listen Interfaces"
-msgstr ""
+msgstr "Interfaces de Escuta"
+
+msgid "Listen Port"
+msgstr "Porta de Escuta"
 
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
@@ -1727,7 +1887,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"
@@ -1736,7 +1896,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"
@@ -1747,7 +1907,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"
@@ -1775,7 +1934,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"
@@ -1794,6 +1953,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."
@@ -1811,13 +1972,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"
@@ -1831,15 +1992,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"
@@ -1861,6 +2023,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."
@@ -1877,26 +2041,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"
@@ -1930,7 +2094,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"
@@ -1939,7 +2103,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"
@@ -1950,9 +2114,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"
 
@@ -1960,22 +2121,25 @@ msgid "NAS ID"
 msgstr "NAS ID"
 
 msgid "NAT-T Mode"
-msgstr ""
+msgstr "Modo NAT-T"
 
 msgid "NAT64 Prefix"
+msgstr "Prefixo NAT64"
+
+msgid "NCM"
 msgstr ""
 
 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"
@@ -2011,7 +2175,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"
@@ -2047,16 +2211,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"
@@ -2077,7 +2243,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"
@@ -2092,10 +2258,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"
@@ -2126,7 +2292,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!"
@@ -2135,10 +2301,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"
@@ -2146,11 +2312,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 "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. 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 "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 "Opcional. Unidade Máxima de Transmissão da interface do túnel."
+
+msgid "Optional. Port of peer."
+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 "opcional. Porta UDP usada para pacotes saintes ou entrantes."
 
 msgid "Options"
 msgstr "Opções"
@@ -2164,20 +2376,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 "Sobrescrever o TOS"
+
+msgid "Override TTL"
+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"
@@ -2211,6 +2428,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr "PMK R1 Push"
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2224,19 +2444,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!"
@@ -2263,7 +2483,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!"
@@ -2281,22 +2501,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 "Parceiros"
 
 msgid "Perfect Forward Secrecy"
-msgstr ""
+msgstr "Sigilo Encaminhado Perfeito"
 
 msgid "Perform reboot"
 msgstr "Reiniciar o sistema"
@@ -2304,6 +2527,9 @@ msgstr "Reiniciar o sistema"
 msgid "Perform reset"
 msgstr "Zerar configuração"
 
+msgid "Persistent Keep Alive"
+msgstr "Manutenção da Conexão Persistente"
+
 msgid "Phy Rate:"
 msgstr "Taxa física:"
 
@@ -2329,10 +2555,23 @@ 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 "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr "Prefixo Delegado"
+
+msgid "Preshared Key"
+msgstr "Chave Compartilhada"
 
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
@@ -2342,7 +2581,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"
@@ -2350,6 +2589,9 @@ msgstr "Impede a comunicação de cliente para cliente"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Prism2/2.5/3 802.11b Wireless Controlador"
 
+msgid "Private Key"
+msgstr "Chave Privada"
+
 msgid "Proceed"
 msgstr "Proceder"
 
@@ -2357,7 +2599,7 @@ msgid "Processes"
 msgstr "Processos"
 
 msgid "Profile"
-msgstr ""
+msgstr "Perfil"
 
 msgid "Prot."
 msgstr "Protocolo"
@@ -2383,14 +2625,28 @@ msgstr "Prover nova rede"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Ad-Hoc falso (ahdemo)"
 
+msgid "Public Key"
+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 "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"
@@ -2449,7 +2705,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."
@@ -2484,6 +2739,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\""
 
@@ -2502,6 +2760,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"
 
@@ -2511,9 +2772,6 @@ msgstr "Reconectando interface"
 msgid "References"
 msgstr "Referências"
 
-msgid "Regulatory Domain"
-msgstr "Domínio Regulatório"
-
 msgid "Relay"
 msgstr "Retransmissor"
 
@@ -2529,6 +2787,9 @@ msgstr "Ponte por retransmissão"
 msgid "Remote IPv4 address"
 msgstr "Endereço IPv4 remoto"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr "Endereço IPv4 remoto ou FQDN"
+
 msgid "Remove"
 msgstr "Remover"
 
@@ -2542,21 +2803,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 "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 ""
+"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"
@@ -2595,13 +2882,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 "Roteie Andereços IP Autorizados"
+
+msgid "Route type"
+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"
@@ -2624,30 +2917,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"
@@ -2689,22 +2984,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"
@@ -2715,7 +3009,11 @@ msgstr "Tipo do Serviço"
 msgid "Services"
 msgstr "Serviços"
 
-#, fuzzy
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
 msgstr "Configurar a Sincronização do Horário"
 
@@ -2724,9 +3022,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"
@@ -2741,7 +3041,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:"
@@ -2750,7 +3050,7 @@ msgid "Size"
 msgstr "Tamanho"
 
 msgid "Size (.ipk)"
-msgstr ""
+msgstr "Tamanho (.ipk)"
 
 msgid "Skip"
 msgstr "Pular"
@@ -2768,7 +3068,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!"
@@ -2779,15 +3079,14 @@ msgstr "Desculpe o objeto solicitado não foi encontrado"
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "Desculpe, o servidor encontrou um erro inesperado."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "Sinto muito, não existe suporte para o sysupgrade. Uma nova imagem de "
-"firmware deve ser gravada manualmente. Por favor, consulte a wiki do OpenWrt "
-"para instruções específicas da instalação deste dispositivo."
+"firmware deve ser gravada manualmente. Por favor, consulte a wiki para "
+"instruções específicas da instalação deste dispositivo."
 
 msgid "Sort"
 msgstr "Ordenar"
@@ -2796,7 +3095,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"
@@ -2821,6 +3120,23 @@ msgstr ""
 "Especifica a quantidade máxima de segundos antes de considerar que um "
 "equipamento está morto"
 
+msgid "Specify a TOS (Type of Service)."
+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."
 
@@ -2845,9 +3161,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"
 
@@ -2874,13 +3187,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)"
@@ -2897,9 +3210,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"
@@ -2944,12 +3259,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 "
@@ -2975,6 +3289,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 "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>"
@@ -2990,13 +3310,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"
@@ -3029,7 +3350,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."
@@ -3046,6 +3366,9 @@ msgstr ""
 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 "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="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3066,7 +3389,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 "
@@ -3075,7 +3398,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 "
@@ -3091,6 +3413,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 "
@@ -3133,6 +3457,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 "
@@ -3148,6 +3475,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 "
@@ -3171,11 +3500,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."
@@ -3219,7 +3550,7 @@ msgstr ""
 "de segurança anterior."
 
 msgid "Tone"
-msgstr ""
+msgstr "Tom"
 
 msgid "Total Available"
 msgstr "Total Disponível"
@@ -3258,19 +3589,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"
@@ -3290,6 +3618,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Dispositivo USB"
 
+msgid "USB Ports"
+msgstr "Portas USB"
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3298,6 +3629,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"
@@ -3309,7 +3642,7 @@ msgid "Unmanaged"
 msgstr "Não gerenciado"
 
 msgid "Unmount"
-msgstr ""
+msgstr "Desmontar"
 
 msgid "Unsaved Changes"
 msgstr "Alterações Não Salvas"
@@ -3322,12 +3655,12 @@ msgstr "Atualizar listas"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Envia uma imagem compatível do sistema para substituir o firmware em "
 "execução. Marque \"Manter configurações\" para manter as configurações "
-"atuais (requer uma imagem OpenWrt compatível)."
+"atuais (requer uma imagem compatível)."
 
 msgid "Upload archive..."
 msgstr "Enviar arquivo..."
@@ -3351,22 +3684,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"
@@ -3399,11 +3734,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"
@@ -3412,7 +3754,7 @@ msgid "VC-Mux"
 msgstr "VC-Mux"
 
 msgid "VDSL"
-msgstr ""
+msgstr "VDSL"
 
 msgid "VLANs on %q"
 msgstr "VLANs em %q"
@@ -3421,34 +3763,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"
@@ -3484,6 +3826,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..."
@@ -3492,22 +3836,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 "VPN WireGuard"
 
 msgid "Wireless"
 msgstr "Rede sem fio"
@@ -3546,10 +3893,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 "
@@ -3563,7 +3907,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."
@@ -3573,6 +3917,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"
@@ -3580,9 +3927,8 @@ msgstr "qualquer"
 msgid "auto"
 msgstr "automático"
 
-#, fuzzy
 msgid "automatic"
-msgstr "estático"
+msgstr "automático"
 
 msgid "baseT"
 msgstr "baseT"
@@ -3606,7 +3952,7 @@ msgid "disable"
 msgstr "desativar"
 
 msgid "disabled"
-msgstr ""
+msgstr "desabilitado"
 
 msgid "expired"
 msgstr "expirado"
@@ -3634,7 +3980,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"
@@ -3656,10 +4002,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"
@@ -3672,7 +4021,7 @@ msgid "none"
 msgstr "nenhum"
 
 msgid "not present"
-msgstr ""
+msgstr "não presente "
 
 msgid "off"
 msgstr "desligado"
@@ -3684,35 +4033,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"
 
@@ -3734,6 +4086,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 126ce53..8322e20 100644 (file)
@@ -43,18 +43,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
@@ -148,9 +175,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Suporte AR"
-
 msgid "ARP retry threshold"
 msgstr "Limiar de tentativas ARP"
 
@@ -290,6 +314,9 @@ msgid ""
 msgstr ""
 "Permitir respostas a montante na gama 127.0.0.1/8, p.e. para serviços RBL"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -298,9 +325,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -396,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 ""
 
@@ -408,6 +429,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Autenticação"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Autoritário"
 
@@ -474,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"
 
@@ -504,9 +525,15 @@ msgstr ""
 "configuração alterados e marcados pelo opkg, ficheiros base essenciais e "
 "padrões de backup definidos pelo utilizador."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Taxa de bits"
 
@@ -575,6 +602,9 @@ msgstr "Verificar"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Checksum"
 
@@ -636,9 +666,6 @@ msgstr "Comando"
 msgid "Common Configuration"
 msgstr "Configuração comum"
 
-msgid "Compression"
-msgstr "Compressão"
-
 msgid "Configuration"
 msgstr "Configuração"
 
@@ -859,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"
 
@@ -906,15 +933,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr "Lista Branca do Dominio"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -988,6 +1015,9 @@ msgstr "Ativar <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Ativar a atualização dinâmica de ponto final HE.net"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Ativar a negociação IPv6 no link PPP"
 
@@ -1018,6 +1048,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Ativar este mount"
 
@@ -1030,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"
 
@@ -1039,6 +1077,12 @@ msgstr "Modo de encapsulamento"
 msgid "Encryption"
 msgstr "Encriptação"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "A apagar..."
 
@@ -1073,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"
 
@@ -1085,9 +1135,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Frames Rápidas"
-
 msgid "File"
 msgstr "Ficheiro"
 
@@ -1123,6 +1170,9 @@ msgstr "Terminar"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Definições da Firewall"
 
@@ -1168,6 +1218,9 @@ msgstr "Forçar TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Forçar TKIP e CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1198,6 +1251,11 @@ msgstr "Livre"
 msgid "Free space"
 msgstr "Espaço livre"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "GHz"
 
@@ -1256,6 +1314,9 @@ msgstr "Password HE.net"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Handler"
 
@@ -1318,6 +1379,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Endereço IP"
 
@@ -1360,6 +1424,9 @@ msgstr "Comprimento do prefixo IPv4"
 msgid "IPv4-Address"
 msgstr "Endereço-IPv4"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1408,6 +1475,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "Endereço-IPv6"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-em-IPv4 (RFC4213)"
 
@@ -1554,6 +1624,9 @@ msgstr "O ID de VLAN fornecido é inválido! Só os IDs únicos são permitidos.
 msgid "Invalid username and/or password! Please try again."
 msgstr "Username inválido e/ou a password! Por favor, tente novamente."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1562,8 +1635,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"
@@ -1677,6 +1750,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 ""
 
@@ -1689,6 +1778,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 "Escutar apenas na interface fornecida ou, se não especificada, em todas"
@@ -1812,9 +1904,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"
 
@@ -1850,9 +1939,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"
 
@@ -1865,6 +1951,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"
 
@@ -1923,9 +2012,6 @@ msgstr "Subir"
 msgid "Move up"
 msgstr "Descer"
 
-msgid "Multicast Rate"
-msgstr "Taxa de Multicast"
-
 msgid "Multicast address"
 msgstr "Endereço de multicast"
 
@@ -1938,6 +2024,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2118,12 +2207,50 @@ 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 ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Opções"
 
@@ -2136,9 +2263,6 @@ msgstr "Saída"
 msgid "Outbound:"
 msgstr "Saída:"
 
-msgid "Outdoor Channels"
-msgstr "Canais de Outdoor"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2148,6 +2272,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2180,6 +2310,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2264,6 +2397,9 @@ msgstr "Pico:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2273,6 +2409,9 @@ msgstr "Executar reinicialização"
 msgid "Perform reset"
 msgstr "Executar reset"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2303,6 +2442,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2317,6 +2468,9 @@ msgstr "Impede a comunicação cliente-a-cliente"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Controlador Wireless Prism2/2.5/3 802.11b"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Proceder"
 
@@ -2350,12 +2504,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Qualidade"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2448,6 +2614,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"
 
@@ -2466,6 +2635,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"
 
@@ -2475,9 +2647,6 @@ msgstr "A reconectar interface"
 msgid "References"
 msgstr "Referências"
 
-msgid "Regulatory Domain"
-msgstr "Domínio Regulatório"
-
 msgid "Relay"
 msgstr ""
 
@@ -2493,6 +2662,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr "Endereço IPv4 remoto"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Remover"
 
@@ -2514,9 +2686,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2561,6 +2753,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2651,9 +2849,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Isolar Clientes"
 
-msgid "Separate WDS"
-msgstr "Separar WDS"
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2677,6 +2872,11 @@ msgstr "Tipo de Serviço"
 msgid "Services"
 msgstr "Serviços"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Configurar Sincronização Horária"
@@ -2743,8 +2943,8 @@ msgstr "Lamento, o servidor encontrou um erro inesperado."
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2775,6 +2975,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr ""
 
@@ -2799,9 +3012,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"
 
@@ -2920,6 +3130,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 "O prefixo IPv6 atribuído ao provider, habitualmente termina com <code>::</"
@@ -2989,6 +3203,9 @@ msgstr ""
 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 ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3203,9 +3420,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Modo Turbo"
-
 msgid "Tx-Power"
 msgstr "Potência de Tx"
 
@@ -3224,6 +3438,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "Dispositivo USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3256,8 +3473,8 @@ msgstr "Actualizar listas"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3325,6 +3542,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 ""
 
@@ -3435,6 +3657,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Rede Wireless"
 
@@ -3474,9 +3699,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 "
@@ -3489,9 +3711,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 ""
@@ -3584,6 +3806,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3638,6 +3863,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "desconhecido"
 
@@ -3659,6 +3887,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 58a22c0..ebcda35 100644 (file)
@@ -42,18 +42,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -139,9 +166,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Suport AR"
-
 msgid "ARP retry threshold"
 msgstr "ARP prag reincercare"
 
@@ -276,6 +300,9 @@ msgid ""
 msgstr ""
 "Permite raspuns upstream in plaja 127.0.0.0/8, e.g. pentru serviciile RBL"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -284,9 +311,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -382,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 ""
 
@@ -394,6 +415,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Autentificare"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Autoritare"
 
@@ -460,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"
 
@@ -487,9 +508,15 @@ msgid ""
 "defined backup patterns."
 msgstr ""
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Bitrate"
 
@@ -558,6 +585,9 @@ msgstr "Verificare"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Suma de verificare"
 
@@ -611,9 +641,6 @@ msgstr "Comanda"
 msgid "Common Configuration"
 msgstr "Configurarea obisnuita"
 
-msgid "Compression"
-msgstr "Comprimare"
-
 msgid "Configuration"
 msgstr "Configurare"
 
@@ -829,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 ""
 
@@ -869,15 +896,15 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr "Domeniul necesar"
 
 msgid "Domain whitelist"
 msgstr ""
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -943,6 +970,9 @@ msgstr "Activeaza <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr ""
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr ""
 
@@ -973,6 +1003,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr ""
 
@@ -985,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 ""
 
@@ -994,6 +1032,12 @@ msgstr "Modul de incapsulare"
 msgid "Encryption"
 msgstr "Criptare"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Stergere..."
 
@@ -1025,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"
 
@@ -1037,9 +1087,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr "Fisier"
 
@@ -1075,6 +1122,9 @@ msgstr "Termina"
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Setarile firewall-ului"
 
@@ -1121,6 +1171,9 @@ msgstr "Forteaza TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Forteaza TKIP si CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1151,6 +1204,11 @@ msgstr "Liber"
 msgid "Free space"
 msgstr "Spatiu liber"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr ""
 
@@ -1208,6 +1266,9 @@ msgstr ""
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr ""
 
@@ -1265,6 +1326,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Adresa IP"
 
@@ -1307,6 +1371,9 @@ msgstr ""
 msgid "IPv4-Address"
 msgstr "Adresa IPv4"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1355,6 +1422,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1494,6 +1564,9 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "Utilizator si/sau parola invalide! Incearcati din nou."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1502,8 +1575,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 ""
@@ -1615,6 +1688,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 ""
 
@@ -1627,6 +1716,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1744,9 +1836,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Rata maxima"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1782,9 +1871,6 @@ msgstr "Utilizarea memoriei (%)"
 msgid "Metric"
 msgstr "Metrica"
 
-msgid "Minimum Rate"
-msgstr "Rata minima"
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1797,6 +1883,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Mod"
 
@@ -1853,9 +1942,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr "Rata de multicast"
-
 msgid "Multicast address"
 msgstr ""
 
@@ -1868,6 +1954,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2042,12 +2131,50 @@ msgstr "Optiunea schimbata"
 msgid "Option removed"
 msgstr "Optiunea eliminata"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Optiuni"
 
@@ -2060,9 +2187,6 @@ msgstr "Iesire"
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2072,6 +2196,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2104,6 +2234,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2188,6 +2321,9 @@ msgstr "Maxim:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2197,6 +2333,9 @@ msgstr "Restarteaza"
 msgid "Perform reset"
 msgstr "Reseteaza"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Rata phy:"
 
@@ -2227,6 +2366,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2241,6 +2392,9 @@ msgstr ""
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Continua"
 
@@ -2274,12 +2428,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr ""
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Calitate"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2361,6 +2527,9 @@ msgstr "Traficul in timp real"
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2379,6 +2548,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"
 
@@ -2388,9 +2560,6 @@ msgstr "Interfata se reconecteaza chiar acum"
 msgid "References"
 msgstr "Referinte"
 
-msgid "Regulatory Domain"
-msgstr "Domeniu regulatoriu"
-
 msgid "Relay"
 msgstr ""
 
@@ -2406,6 +2575,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr ""
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Elimina"
 
@@ -2427,9 +2599,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2474,6 +2666,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2561,9 +2759,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr "Setarile serverului"
 
@@ -2587,6 +2782,11 @@ msgstr "Tip de serviciu"
 msgid "Services"
 msgstr "Servicii"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Configurare sincronizare timp"
@@ -2653,8 +2853,8 @@ msgstr ""
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2685,6 +2885,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr ""
 
@@ -2709,9 +2922,6 @@ msgstr ""
 msgid "Static Routes"
 msgstr "Rute statice"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -2828,6 +3038,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2881,6 +3095,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3070,9 +3287,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Mod turbo"
-
 msgid "Tx-Power"
 msgstr "Puterea TX"
 
@@ -3091,6 +3305,9 @@ msgstr ""
 msgid "USB Device"
 msgstr "Dispozitiv USB"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3123,8 +3340,8 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3192,6 +3409,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 ""
 
@@ -3302,6 +3524,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Wireless"
 
@@ -3341,9 +3566,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 "
@@ -3351,7 +3573,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 ""
@@ -3440,6 +3662,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3494,6 +3719,9 @@ msgstr ""
 msgid "tagged"
 msgstr "etichetat"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "necunoscut"
 
@@ -3515,6 +3743,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 cb7bfc1..22e5183 100644 (file)
@@ -45,18 +45,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -146,9 +173,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "Поддержка AR"
-
 msgid "ARP retry threshold"
 msgstr "Порог повтора ARP"
 
@@ -289,6 +313,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr "Разрешить ответы в диапазоне 127.0.0.0/8, например, для RBL-сервисов"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -297,9 +324,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -395,9 +419,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Подключенные клиенты"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Беспроводной 802.11%s контроллер Atheros"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -407,6 +428,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Аутентификация"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Авторитетный"
 
@@ -473,9 +497,6 @@ msgstr "Назад к обзору"
 msgid "Back to scan results"
 msgstr "Назад к результатам сканирования"
 
-msgid "Background Scan"
-msgstr "Фоновое сканирование"
-
 msgid "Backup / Flash Firmware"
 msgstr "Резервная копия / прошивка"
 
@@ -504,9 +525,15 @@ msgstr ""
 "базовых файлов, а также шаблонов резервного копирования, определённых "
 "пользователем."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Скорость"
 
@@ -575,6 +602,9 @@ msgstr "Проверить"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Контрольная сумма"
 
@@ -636,9 +666,6 @@ msgstr "Команда"
 msgid "Common Configuration"
 msgstr "Общая конфигурация"
 
-msgid "Compression"
-msgstr "Сжатие"
-
 msgid "Configuration"
 msgstr "Конфигурация"
 
@@ -858,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"
 
@@ -904,15 +931,15 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Не перенаправлять обратные DNS-запросы для локальных сетей"
 
-msgid "Do not send probe responses"
-msgstr "Не посылать тестовые ответы"
-
 msgid "Domain required"
 msgstr "Требуется домен"
 
 msgid "Domain whitelist"
 msgstr "Белый список доменов"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -989,6 +1016,9 @@ msgstr "Включить <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Включить динамическое обновление оконечной точки HE.net"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Включить IPv6-согласование на PPP-соединении"
 
@@ -1019,6 +1049,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Включить эту точку монтирования"
 
@@ -1031,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 на этом мосту"
 
@@ -1040,6 +1078,12 @@ msgstr "Режим инкапсуляции"
 msgid "Encryption"
 msgstr "Шифрование"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Стирание..."
 
@@ -1074,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 "Сервер системного журнала"
 
@@ -1086,9 +1136,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Быстрые кадры"
-
 msgid "File"
 msgstr "Файл"
 
@@ -1124,6 +1171,9 @@ msgstr "Завершить"
 msgid "Firewall"
 msgstr "Межсетевой экран"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Настройки межсетевого экрана"
 
@@ -1170,6 +1220,9 @@ msgstr "Требовать TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "TKIP или CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1200,6 +1253,11 @@ msgstr "Свободно"
 msgid "Free space"
 msgstr "Свободное место"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "ГГц"
 
@@ -1257,6 +1315,9 @@ msgstr "Пароль HE.net"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Обработчик"
 
@@ -1317,6 +1378,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP-адрес"
 
@@ -1359,6 +1423,9 @@ msgstr "Длина префикса IPv4"
 msgid "IPv4-Address"
 msgstr "IPv4-адрес"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1407,6 +1474,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-адрес"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6 в IPv4 (RFC4213)"
 
@@ -1558,6 +1628,9 @@ msgstr "Указан неверный VLAN ID! Доступны только у
 msgid "Invalid username and/or password! Please try again."
 msgstr "Неверный логин и/или пароль! Пожалуйста попробуйте снова."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1566,8 +1639,8 @@ msgstr ""
 "Вы пытаетесь обновить прошивку файлом, который не помещается в память "
 "устройства! Пожалуйста, проверьте файл образа."
 
-msgid "Java Script required!"
-msgstr "Требуется Java Script!"
+msgid "JavaScript required!"
+msgstr "Требуется JavaScript!"
 
 msgid "Join Network"
 msgstr "Подключение к сети"
@@ -1681,6 +1754,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 ""
 
@@ -1693,6 +1782,9 @@ msgstr "Список хостов, поставляющих поддельные
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr "Слушать только на данном интерфейсе или, если не определено, на всех"
 
@@ -1817,9 +1909,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Максимальная скорость"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Максимальное количество активных арендованных DHCP-адресов"
 
@@ -1855,9 +1944,6 @@ msgstr "Использование памяти (%)"
 msgid "Metric"
 msgstr "Метрика"
 
-msgid "Minimum Rate"
-msgstr "Минимальная скорость"
-
 msgid "Minimum hold time"
 msgstr "Минимальное время удержания"
 
@@ -1870,6 +1956,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Отсутствует расширение протокола %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Режим"
 
@@ -1929,9 +2018,6 @@ msgstr "Переместить вниз"
 msgid "Move up"
 msgstr "Переместить вверх"
 
-msgid "Multicast Rate"
-msgstr "Скорость групповой передачи"
-
 msgid "Multicast address"
 msgstr "Адрес групповой передачи"
 
@@ -1944,6 +2030,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2124,12 +2213,50 @@ msgstr "Опция изменена"
 msgid "Option removed"
 msgstr "Опция удалена"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Опции"
 
@@ -2142,9 +2269,6 @@ msgstr "Вне"
 msgid "Outbound:"
 msgstr "Исходящий:"
 
-msgid "Outdoor Channels"
-msgstr "Внешние каналы"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2154,6 +2278,12 @@ msgstr "Назначить MAC-адрес"
 msgid "Override MTU"
 msgstr "Назначить MTU"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2188,6 +2318,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2272,6 +2405,9 @@ msgstr "Пиковая:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2281,6 +2417,9 @@ msgstr "Выполнить перезагрузку"
 msgid "Perform reset"
 msgstr "Выполнить сброс"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Скорость:"
 
@@ -2311,6 +2450,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2327,6 +2478,9 @@ msgstr "Не позволяет клиентам обмениваться дру
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Беспроводной 802.11b контроллер Prism2/2.5/3"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Продолжить"
 
@@ -2360,12 +2514,24 @@ msgstr "Предоставлять новую сеть"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Псевдо Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Качество"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2458,6 +2624,9 @@ msgstr "Трафик в реальном времени"
 msgid "Realtime Wireless"
 msgstr "Беспроводная сеть в реальном времени"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Защита от DNS Rebinding"
 
@@ -2476,6 +2645,9 @@ msgstr "Приём"
 msgid "Receiver Antenna"
 msgstr "Приёмная антенна"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Переподключить этот интерфейс"
 
@@ -2486,9 +2658,6 @@ msgstr "Интерфейс переподключается"
 msgid "References"
 msgstr "Ссылки"
 
-msgid "Regulatory Domain"
-msgstr "Нормативная зона"
-
 msgid "Relay"
 msgstr "Ретранслятор"
 
@@ -2504,6 +2673,9 @@ msgstr "Мост-ретранслятор"
 msgid "Remote IPv4 address"
 msgstr "Удалённый IPv4-адрес"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Удалить"
 
@@ -2525,9 +2697,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2572,6 +2764,12 @@ msgstr "Корневая директория для TFTP"
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2663,9 +2861,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Разделять клиентов"
 
-msgid "Separate WDS"
-msgstr "Отдельный WDS"
-
 msgid "Server Settings"
 msgstr "Настройки сервера"
 
@@ -2689,6 +2884,11 @@ msgstr "Тип службы"
 msgid "Services"
 msgstr "Сервисы"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Настроить синхронизацию времени"
@@ -2753,15 +2953,14 @@ msgstr "Извините, запрошенный объект не был най
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "Извините, сервер столкнулся с неожиданной ошибкой."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "К сожалению, автоматическое обновление не поддерживается, новая прошивка "
-"должна быть установлена вручную. Обратитесь к вики OpenWrt для получения "
-"конкÑ\80еÑ\82нÑ\8bÑ\85 Ð¸Ð½Ñ\81Ñ\82Ñ\80Ñ\83кÑ\86ий Ð´Ð»Ñ\8f Ð²Ð°Ñ\88его Ñ\83Ñ\81Ñ\82Ñ\80ойÑ\81Ñ\82ва."
+"должна быть установлена вручную. Обратитесь к вики для получения конкретных "
+"инструкций для вашего устройства."
 
 msgid "Sort"
 msgstr "Сортировка"
@@ -2794,6 +2993,19 @@ msgid ""
 msgstr ""
 "Максимальное количество секунд, после которого узлы считаются отключенными"
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Укажите закрытый ключ."
 
@@ -2818,9 +3030,6 @@ msgstr "Постоянные аренды"
 msgid "Static Routes"
 msgstr "Статические маршруты"
 
-msgid "Static WDS"
-msgstr "Статический WDS"
-
 msgid "Static address"
 msgstr "Статический адрес"
 
@@ -2949,6 +3158,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 "Назначенный провайдеру префикс IPv6, обычно заканчивается на <code>::</code>"
@@ -3016,6 +3229,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr "Длина префикса IPv6 в битах"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3238,9 +3454,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Турбо-режим"
-
 msgid "Tx-Power"
 msgstr "Мощность передатчика"
 
@@ -3259,6 +3472,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB-устройство"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3291,12 +3507,12 @@ msgstr "Обновить списки"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Загрузите sysupgrade-совместимый образ, чтобы заменить текущую прошивку. "
 "Установите флажок \"Сохранить настройки\", чтобы сохранить текущую "
-"конфигурацию (требуется совместимый с OpenWrt образ прошивки)."
+"конфигурацию (требуется совместимый образ прошивки)."
 
 msgid "Upload archive..."
 msgstr "Загрузить архив..."
@@ -3367,6 +3583,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 ""
 
@@ -3478,6 +3699,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Wi-Fi"
 
@@ -3517,9 +3741,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 "
@@ -3531,9 +3752,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 ""
@@ -3626,6 +3847,9 @@ msgstr "локальный <abbr title=\"Служба доменных имён\
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3680,6 +3904,9 @@ msgstr ""
 msgid "tagged"
 msgstr "с тегом"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "неизвестный"
 
@@ -3701,6 +3928,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 a715a59..6c47119 100644 (file)
@@ -38,18 +38,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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 ""
 
@@ -130,9 +157,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr ""
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -262,6 +286,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr ""
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -270,9 +297,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -368,9 +392,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr ""
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -380,6 +401,9 @@ msgstr ""
 msgid "Authentication"
 msgstr ""
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr ""
 
@@ -446,9 +470,6 @@ msgstr ""
 msgid "Back to scan results"
 msgstr ""
 
-msgid "Background Scan"
-msgstr ""
-
 msgid "Backup / Flash Firmware"
 msgstr ""
 
@@ -473,9 +494,15 @@ msgid ""
 "defined backup patterns."
 msgstr ""
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr ""
 
@@ -544,6 +571,9 @@ msgstr ""
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr ""
 
@@ -594,9 +624,6 @@ msgstr ""
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr ""
-
 msgid "Configuration"
 msgstr ""
 
@@ -810,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"
@@ -850,15 +877,15 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
 msgid "Domain whitelist"
 msgstr ""
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -924,6 +951,9 @@ msgstr ""
 msgid "Enable HE.net dynamic endpoint update"
 msgstr ""
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr ""
 
@@ -954,6 +984,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr ""
 
@@ -966,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 ""
 
@@ -975,6 +1013,12 @@ msgstr ""
 msgid "Encryption"
 msgstr ""
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr ""
 
@@ -1006,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 ""
 
@@ -1018,9 +1068,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1056,6 +1103,9 @@ msgstr ""
 msgid "Firewall"
 msgstr ""
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1101,6 +1151,9 @@ msgstr ""
 msgid "Force TKIP and CCMP (AES)"
 msgstr ""
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1131,6 +1184,11 @@ msgstr ""
 msgid "Free space"
 msgstr ""
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr ""
 
@@ -1188,6 +1246,9 @@ msgstr ""
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr ""
 
@@ -1243,6 +1304,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr ""
 
@@ -1285,6 +1349,9 @@ msgstr ""
 msgid "IPv4-Address"
 msgstr ""
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr ""
 
@@ -1333,6 +1400,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1472,12 +1542,15 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr ""
 
+msgid "Isolate Clients"
+msgstr ""
+
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1590,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 ""
 
@@ -1602,6 +1691,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1719,9 +1811,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1757,9 +1846,6 @@ msgstr ""
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1772,6 +1858,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1828,9 +1917,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -1843,6 +1929,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2017,12 +2106,50 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr ""
 
@@ -2035,9 +2162,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2047,6 +2171,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2079,6 +2209,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2163,6 +2296,9 @@ msgstr ""
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2172,6 +2308,9 @@ msgstr ""
 msgid "Perform reset"
 msgstr ""
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2202,6 +2341,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2216,6 +2367,9 @@ msgstr ""
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr ""
 
@@ -2249,12 +2403,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr ""
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2334,6 +2500,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2352,6 +2521,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2361,9 +2533,6 @@ msgstr ""
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2379,6 +2548,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr ""
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr ""
 
@@ -2400,9 +2572,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2447,6 +2639,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2534,9 +2732,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2560,6 +2755,11 @@ msgstr ""
 msgid "Services"
 msgstr ""
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
 msgstr ""
 
@@ -2625,8 +2825,8 @@ msgstr ""
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2657,6 +2857,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr ""
 
@@ -2681,9 +2894,6 @@ msgstr ""
 msgid "Static Routes"
 msgstr ""
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -2800,6 +3010,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2853,6 +3067,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3040,9 +3257,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3061,6 +3275,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3093,8 +3310,8 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3162,6 +3379,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 ""
 
@@ -3270,6 +3492,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr ""
 
@@ -3309,9 +3534,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 "
@@ -3319,7 +3541,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 ""
@@ -3408,6 +3630,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3462,6 +3687,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
index 4c08e4e..b2f6ecf 100644 (file)
@@ -41,18 +41,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -136,9 +163,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr ""
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -268,6 +292,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr ""
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -276,9 +303,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -374,9 +398,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr ""
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -386,6 +407,9 @@ msgstr ""
 msgid "Authentication"
 msgstr ""
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr ""
 
@@ -452,9 +476,6 @@ msgstr ""
 msgid "Back to scan results"
 msgstr ""
 
-msgid "Background Scan"
-msgstr ""
-
 msgid "Backup / Flash Firmware"
 msgstr ""
 
@@ -479,9 +500,15 @@ msgid ""
 "defined backup patterns."
 msgstr ""
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr ""
 
@@ -550,6 +577,9 @@ msgstr ""
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr ""
 
@@ -600,9 +630,6 @@ msgstr ""
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr ""
-
 msgid "Configuration"
 msgstr ""
 
@@ -816,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"
@@ -856,15 +883,15 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
 msgid "Domain whitelist"
 msgstr ""
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -930,6 +957,9 @@ msgstr ""
 msgid "Enable HE.net dynamic endpoint update"
 msgstr ""
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr ""
 
@@ -960,6 +990,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr ""
 
@@ -972,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 ""
 
@@ -981,6 +1019,12 @@ msgstr ""
 msgid "Encryption"
 msgstr ""
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr ""
 
@@ -1012,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 ""
 
@@ -1024,9 +1074,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1062,6 +1109,9 @@ msgstr ""
 msgid "Firewall"
 msgstr ""
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1107,6 +1157,9 @@ msgstr ""
 msgid "Force TKIP and CCMP (AES)"
 msgstr ""
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1137,6 +1190,11 @@ msgstr ""
 msgid "Free space"
 msgstr ""
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr ""
 
@@ -1194,6 +1252,9 @@ msgstr ""
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr ""
 
@@ -1249,6 +1310,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr ""
 
@@ -1291,6 +1355,9 @@ msgstr ""
 msgid "IPv4-Address"
 msgstr ""
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr ""
 
@@ -1339,6 +1406,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1478,12 +1548,15 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr ""
 
+msgid "Isolate Clients"
+msgstr ""
+
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1596,6 +1669,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 ""
 
@@ -1608,6 +1697,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1725,9 +1817,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1763,9 +1852,6 @@ msgstr ""
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1778,6 +1864,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1834,9 +1923,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -1849,6 +1935,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2023,12 +2112,50 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr ""
 
@@ -2041,9 +2168,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2053,6 +2177,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2085,6 +2215,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2169,6 +2302,9 @@ msgstr ""
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2178,6 +2314,9 @@ msgstr ""
 msgid "Perform reset"
 msgstr ""
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2208,6 +2347,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2222,6 +2373,9 @@ msgstr ""
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr ""
 
@@ -2255,12 +2409,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr ""
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2340,6 +2506,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2358,6 +2527,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2367,9 +2539,6 @@ msgstr ""
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2385,6 +2554,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr ""
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr ""
 
@@ -2406,9 +2578,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2453,6 +2645,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2540,9 +2738,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2566,6 +2761,11 @@ msgstr ""
 msgid "Services"
 msgstr ""
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
 msgstr ""
 
@@ -2631,8 +2831,8 @@ msgstr ""
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2663,6 +2863,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr ""
 
@@ -2687,9 +2900,6 @@ msgstr ""
 msgid "Static Routes"
 msgstr ""
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -2806,6 +3016,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2859,6 +3073,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3046,9 +3263,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3067,6 +3281,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3099,8 +3316,8 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3168,6 +3385,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 ""
 
@@ -3276,6 +3498,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr ""
 
@@ -3315,9 +3540,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 "
@@ -3325,7 +3547,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 ""
@@ -3414,6 +3636,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3468,6 +3693,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
index a10dbea..7d49e7e 100644 (file)
@@ -31,18 +31,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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 ""
 
@@ -123,9 +150,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr ""
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -255,6 +279,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr ""
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -263,9 +290,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -361,9 +385,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr ""
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -373,6 +394,9 @@ msgstr ""
 msgid "Authentication"
 msgstr ""
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr ""
 
@@ -439,9 +463,6 @@ msgstr ""
 msgid "Back to scan results"
 msgstr ""
 
-msgid "Background Scan"
-msgstr ""
-
 msgid "Backup / Flash Firmware"
 msgstr ""
 
@@ -466,9 +487,15 @@ msgid ""
 "defined backup patterns."
 msgstr ""
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr ""
 
@@ -537,6 +564,9 @@ msgstr ""
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr ""
 
@@ -587,9 +617,6 @@ msgstr ""
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr ""
-
 msgid "Configuration"
 msgstr ""
 
@@ -803,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"
@@ -843,15 +870,15 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
 msgid "Domain whitelist"
 msgstr ""
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -917,6 +944,9 @@ msgstr ""
 msgid "Enable HE.net dynamic endpoint update"
 msgstr ""
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr ""
 
@@ -947,6 +977,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr ""
 
@@ -959,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 ""
 
@@ -968,6 +1006,12 @@ msgstr ""
 msgid "Encryption"
 msgstr ""
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr ""
 
@@ -999,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 ""
 
@@ -1011,9 +1061,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1049,6 +1096,9 @@ msgstr ""
 msgid "Firewall"
 msgstr ""
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1094,6 +1144,9 @@ msgstr ""
 msgid "Force TKIP and CCMP (AES)"
 msgstr ""
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1124,6 +1177,11 @@ msgstr ""
 msgid "Free space"
 msgstr ""
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr ""
 
@@ -1181,6 +1239,9 @@ msgstr ""
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr ""
 
@@ -1236,6 +1297,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr ""
 
@@ -1278,6 +1342,9 @@ msgstr ""
 msgid "IPv4-Address"
 msgstr ""
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr ""
 
@@ -1326,6 +1393,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1465,12 +1535,15 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr ""
 
+msgid "Isolate Clients"
+msgstr ""
+
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1583,6 +1656,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 ""
 
@@ -1595,6 +1684,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1712,9 +1804,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1750,9 +1839,6 @@ msgstr ""
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1765,6 +1851,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1821,9 +1910,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -1836,6 +1922,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2010,12 +2099,50 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr ""
 
@@ -2028,9 +2155,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2040,6 +2164,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2072,6 +2202,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2156,6 +2289,9 @@ msgstr ""
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2165,6 +2301,9 @@ msgstr ""
 msgid "Perform reset"
 msgstr ""
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2195,6 +2334,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2209,6 +2360,9 @@ msgstr ""
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr ""
 
@@ -2242,12 +2396,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr ""
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2327,6 +2493,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2345,6 +2514,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2354,9 +2526,6 @@ msgstr ""
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2372,6 +2541,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr ""
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr ""
 
@@ -2393,9 +2565,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2440,6 +2632,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2527,9 +2725,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2553,6 +2748,11 @@ msgstr ""
 msgid "Services"
 msgstr ""
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
 msgstr ""
 
@@ -2618,8 +2818,8 @@ msgstr ""
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2650,6 +2850,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr ""
 
@@ -2674,9 +2887,6 @@ msgstr ""
 msgid "Static Routes"
 msgstr ""
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -2793,6 +3003,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2846,6 +3060,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3033,9 +3250,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3054,6 +3268,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3086,8 +3303,8 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3155,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 ""
 
@@ -3263,6 +3485,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr ""
 
@@ -3302,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 "
@@ -3312,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 ""
 
 msgid ""
@@ -3401,6 +3623,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3455,6 +3680,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
index d674f51..4d1db54 100644 (file)
@@ -41,18 +41,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -139,9 +166,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "AR Desteği"
-
 msgid "ARP retry threshold"
 msgstr "ARP yenileme aralığı"
 
@@ -275,6 +299,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr ""
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -283,9 +310,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -381,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 ""
 
@@ -393,6 +414,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Kimlik doğrulama"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Yetkilendirme"
 
@@ -459,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 ""
 
@@ -486,9 +507,15 @@ msgid ""
 "defined backup patterns."
 msgstr ""
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr ""
 
@@ -557,6 +584,9 @@ msgstr ""
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr ""
 
@@ -607,9 +637,6 @@ msgstr ""
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr ""
-
 msgid "Configuration"
 msgstr ""
 
@@ -823,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"
@@ -863,15 +890,15 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr ""
 
-msgid "Do not send probe responses"
-msgstr ""
-
 msgid "Domain required"
 msgstr ""
 
 msgid "Domain whitelist"
 msgstr ""
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -937,6 +964,9 @@ msgstr ""
 msgid "Enable HE.net dynamic endpoint update"
 msgstr ""
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr ""
 
@@ -967,6 +997,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr ""
 
@@ -979,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 ""
 
@@ -988,6 +1026,12 @@ msgstr ""
 msgid "Encryption"
 msgstr ""
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr ""
 
@@ -1019,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 ""
 
@@ -1031,9 +1081,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr ""
-
 msgid "File"
 msgstr ""
 
@@ -1069,6 +1116,9 @@ msgstr ""
 msgid "Firewall"
 msgstr ""
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1114,6 +1164,9 @@ msgstr ""
 msgid "Force TKIP and CCMP (AES)"
 msgstr ""
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1144,6 +1197,11 @@ msgstr ""
 msgid "Free space"
 msgstr ""
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr ""
 
@@ -1201,6 +1259,9 @@ msgstr ""
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr ""
 
@@ -1256,6 +1317,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr ""
 
@@ -1298,6 +1362,9 @@ msgstr ""
 msgid "IPv4-Address"
 msgstr ""
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr ""
 
@@ -1346,6 +1413,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1485,12 +1555,15 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr ""
 
+msgid "Isolate Clients"
+msgstr ""
+
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
 "flash memory, please verify the image file!"
 msgstr ""
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr ""
 
 msgid "Join Network"
@@ -1603,6 +1676,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 ""
 
@@ -1615,6 +1704,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1732,9 +1824,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr ""
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr ""
 
@@ -1770,9 +1859,6 @@ msgstr ""
 msgid "Metric"
 msgstr ""
 
-msgid "Minimum Rate"
-msgstr ""
-
 msgid "Minimum hold time"
 msgstr ""
 
@@ -1785,6 +1871,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr ""
 
@@ -1841,9 +1930,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr ""
-
 msgid "Multicast address"
 msgstr ""
 
@@ -1856,6 +1942,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2030,12 +2119,50 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr ""
 
@@ -2048,9 +2175,6 @@ msgstr ""
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr ""
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2060,6 +2184,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2092,6 +2222,9 @@ msgstr ""
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2176,6 +2309,9 @@ msgstr ""
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2185,6 +2321,9 @@ msgstr ""
 msgid "Perform reset"
 msgstr ""
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2215,6 +2354,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2229,6 +2380,9 @@ msgstr ""
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr ""
 
@@ -2262,12 +2416,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr ""
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2347,6 +2513,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2365,6 +2534,9 @@ msgstr ""
 msgid "Receiver Antenna"
 msgstr ""
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr ""
 
@@ -2374,9 +2546,6 @@ msgstr ""
 msgid "References"
 msgstr ""
 
-msgid "Regulatory Domain"
-msgstr ""
-
 msgid "Relay"
 msgstr ""
 
@@ -2392,6 +2561,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr ""
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr ""
 
@@ -2413,9 +2585,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2460,6 +2652,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2547,9 +2745,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr ""
 
-msgid "Separate WDS"
-msgstr ""
-
 msgid "Server Settings"
 msgstr ""
 
@@ -2573,6 +2768,11 @@ msgstr ""
 msgid "Services"
 msgstr ""
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
 msgstr ""
 
@@ -2638,8 +2838,8 @@ msgstr ""
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2670,6 +2870,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr ""
 
@@ -2694,9 +2907,6 @@ msgstr ""
 msgid "Static Routes"
 msgstr ""
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -2813,6 +3023,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2866,6 +3080,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3053,9 +3270,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr ""
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3074,6 +3288,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3106,8 +3323,8 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3175,6 +3392,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 ""
 
@@ -3283,6 +3505,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr ""
 
@@ -3322,9 +3547,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 "
@@ -3332,7 +3554,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."
@@ -3423,6 +3645,9 @@ msgstr "yerel <abbr title=\"Domain Name System\">DNS</abbr> dosyası"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3477,6 +3702,9 @@ msgstr ""
 msgid "tagged"
 msgstr "etiketlendi"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3497,3 +3725,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 b1fe0e7..0d33636 100644 (file)
@@ -42,18 +42,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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 — ідентифікатор основної служби "
@@ -155,9 +182,6 @@ msgid "APN"
 msgstr ""
 "<abbr title=\"Access Point Name — символічна назва точки доступу\">APN</abbr>"
 
-msgid "AR Support"
-msgstr "Підтримка AR"
-
 msgid "ARP retry threshold"
 msgstr "Поріг повтору ARP"
 
@@ -299,6 +323,9 @@ msgstr ""
 "Дозволити відповіді від клієнта на сервер у діапазоні 127.0.0.0/8, "
 "наприклад, для RBL-послуг"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -307,9 +334,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -405,9 +429,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "Приєднані станції"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Бездротовий 802.11%s контролер Atheros"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -417,6 +438,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Автентифікація"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Надійний"
 
@@ -483,9 +507,6 @@ msgstr "Повернутися до переліку"
 msgid "Back to scan results"
 msgstr "Повернутися до результатів сканування"
 
-msgid "Background Scan"
-msgstr "Сканування у фоновому режимі"
-
 msgid "Backup / Flash Firmware"
 msgstr "Резервне копіювання / Оновлення прошивки"
 
@@ -513,9 +534,15 @@ msgstr ""
 "складається із позначених opkg змінених файлів конфігурації, невідокремних "
 "базових файлів, та файлів за користувацькими шаблонами резервного копіювання."
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "Швидкість передачі даних"
 
@@ -584,6 +611,9 @@ msgstr "Перевірити"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Контрольна сума"
 
@@ -645,9 +675,6 @@ msgstr "Команда"
 msgid "Common Configuration"
 msgstr "Загальна конфігурація"
 
-msgid "Compression"
-msgstr "Стиснення"
-
 msgid "Configuration"
 msgstr "Конфігурація"
 
@@ -868,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-відповіді від клієнта на сервер"
 
@@ -915,15 +942,15 @@ msgstr ""
 msgid "Do not forward reverse lookups for local networks"
 msgstr "Не спрямовувати зворотний перегляд для локальних мереж"
 
-msgid "Do not send probe responses"
-msgstr "Не надсилати відповіді на зондування"
-
 msgid "Domain required"
 msgstr "Потрібен домен"
 
 msgid "Domain whitelist"
 msgstr "\"Білий список\" доменів"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -998,6 +1025,9 @@ msgstr "Увімкнути <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "Увімкнути динамічне оновлення кінцевої точки HE.net"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "Увімкнути узгодження IPv6 для PPP-з'єднань"
 
@@ -1028,6 +1058,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "Увімкнути це монтування"
 
@@ -1040,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> на цьому мосту"
@@ -1050,6 +1088,12 @@ msgstr "Режим інкапсуляції"
 msgid "Encryption"
 msgstr "Шифрування"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "Видалення..."
 
@@ -1082,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 "Зовнішній сервер системного журналу"
 
@@ -1094,9 +1144,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Швидкі фрейми"
-
 msgid "File"
 msgstr "Файл"
 
@@ -1132,6 +1179,9 @@ msgstr "Готово"
 msgid "Firewall"
 msgstr "Брандмауер"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "Настройки брандмауера"
 
@@ -1177,6 +1227,9 @@ msgstr "Примусово TKIP"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "Примусово TKIP та CCMP (AES)"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1207,6 +1260,11 @@ msgstr "Вільно"
 msgid "Free space"
 msgstr "Вільне місце"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "ГГц"
 
@@ -1264,6 +1322,9 @@ msgstr "Пароль HE.net"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "Обробник"
 
@@ -1325,6 +1386,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP-адреса"
 
@@ -1367,6 +1431,9 @@ msgstr "Довжина префікса IPv4"
 msgid "IPv4-Address"
 msgstr "IPv4-адреса"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1415,6 +1482,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-адреса"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6 у IPv4 (RFC4213)"
 
@@ -1565,6 +1635,9 @@ msgstr "Задано невірний VLAN ID! Доступні тільки у
 msgid "Invalid username and/or password! Please try again."
 msgstr "Неприпустиме ім’я користувача та/або пароль! Спробуйте ще раз."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1573,8 +1646,8 @@ msgstr ""
 "Схоже, що ви намагаєтеся залити образ, який не вміщається у флеш-пам'ять! "
 "Перевірте файл образу!"
 
-msgid "Java Script required!"
-msgstr "Потрібен Java Script!"
+msgid "JavaScript required!"
+msgstr "Потрібен JavaScript!"
 
 msgid "Join Network"
 msgstr "Підключення до мережі"
@@ -1688,6 +1761,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 ""
 
@@ -1700,6 +1789,9 @@ msgstr "Список доменів, які підтримують резуль
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 "Прослуховувати тільки на цьому інтерфейсі, або на всіх (якщо <em>не "
@@ -1826,9 +1918,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "Максимальна швидкість"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "Максимально допустима кількість активних оренд DHCP"
 
@@ -1864,9 +1953,6 @@ msgstr "Використання пам'яті, %"
 msgid "Metric"
 msgstr "Метрика"
 
-msgid "Minimum Rate"
-msgstr "Мінімальна швидкість"
-
 msgid "Minimum hold time"
 msgstr "Мінімальний час утримування"
 
@@ -1879,6 +1965,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "Відсутні розширення для протоколу %q"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Режим"
 
@@ -1937,9 +2026,6 @@ msgstr "Вниз"
 msgid "Move up"
 msgstr "Вгору"
 
-msgid "Multicast Rate"
-msgstr "Швидкість багатоадресного потоку"
-
 msgid "Multicast address"
 msgstr "Адреса багатоадресного потоку"
 
@@ -1952,6 +2038,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2132,12 +2221,50 @@ msgstr "Опція змінена"
 msgid "Option removed"
 msgstr "Опція видалена"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Опції"
 
@@ -2150,9 +2277,6 @@ msgstr "Вих."
 msgid "Outbound:"
 msgstr "Вихідний:"
 
-msgid "Outdoor Channels"
-msgstr "Зовнішні канали"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2162,6 +2286,12 @@ msgstr "Перевизначити MAC-адресу"
 msgid "Override MTU"
 msgstr "Перевизначити MTU"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2199,6 +2329,9 @@ msgstr ""
 "<abbr title=\"Personal Identification Number — Персональний ідентифікаційний "
 "номер\">>PIN</abbr>"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP"
 
@@ -2283,6 +2416,9 @@ msgstr "Пік:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2292,6 +2428,9 @@ msgstr "Виконати перезавантаження"
 msgid "Perform reset"
 msgstr "Відновити"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "Фізична швидкість:"
 
@@ -2322,6 +2461,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2338,6 +2489,9 @@ msgstr "Запобігає зв'язкам клієнт-клієнт"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Бездротовий 802.11b контролер Prism2/2.5/3"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Продовжити"
 
@@ -2371,12 +2525,24 @@ msgstr "Постачити нову мережу"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Псевдо Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "Якість"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2472,6 +2638,9 @@ msgstr "Трафік у реальному часі"
 msgid "Realtime Wireless"
 msgstr "Бездротові мережі у реальному часі"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "Захист від переприв'язки"
 
@@ -2490,6 +2659,9 @@ msgstr "Прийом"
 msgid "Receiver Antenna"
 msgstr "Антена приймача"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "Перепідключити цей інтерфейс"
 
@@ -2499,9 +2671,6 @@ msgstr "Перепідключення інтерфейсу"
 msgid "References"
 msgstr "Посилання"
 
-msgid "Regulatory Domain"
-msgstr "Регулятивний домен"
-
 msgid "Relay"
 msgstr "Ретранслятор"
 
@@ -2517,6 +2686,9 @@ msgstr "Міст-ретранслятор"
 msgid "Remote IPv4 address"
 msgstr "Віддалена адреса IPv4"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Видалити"
 
@@ -2538,9 +2710,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2585,6 +2777,12 @@ msgstr "Кореневий каталог для файлів TFTP"
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2676,9 +2874,6 @@ msgstr ""
 msgid "Separate Clients"
 msgstr "Розділяти клієнтів"
 
-msgid "Separate WDS"
-msgstr "Розділяти WDS"
-
 msgid "Server Settings"
 msgstr "Настройки сервера"
 
@@ -2702,6 +2897,11 @@ msgstr "Тип сервісу"
 msgid "Services"
 msgstr "Сервіси"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "Настройки синхронізації часу"
@@ -2766,15 +2966,14 @@ msgstr "На жаль, об'єкт, який ви просили, не знай
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "На жаль, на сервері сталася неочікувана помилка."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 "На жаль, автоматичне оновлення системи не підтримується. Новий образ "
-"прошивки повинен бути залитий вручну. Зверніться до OpenWrt Wiki за "
-"інструкцією з інсталяції для конкретного пристрою."
+"прошивки повинен бути залитий вручну. Зверніться до Wiki за інструкцією з "
+"інсталяції для конкретного пристрою."
 
 msgid "Sort"
 msgstr "Сортування"
@@ -2808,6 +3007,19 @@ msgstr ""
 "Визначає максимальний час (секунди), після якого вважається, що вузли "
 "\"мертві\""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "Вкажіть тут секретний ключ шифрування."
 
@@ -2832,9 +3044,6 @@ msgstr "Статичні оренди"
 msgid "Static Routes"
 msgstr "Статичні маршрути"
 
-msgid "Static WDS"
-msgstr "Статичний WDS"
-
 msgid "Static address"
 msgstr "Статичні адреси"
 
@@ -2964,6 +3173,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 "Призначений провайдеру IPv6-префікс, зазвичай закінчується на <code>::</code>"
@@ -3029,6 +3242,9 @@ msgstr "Довжина IPv4-префікса в бітах, решта вико
 msgid "The length of the IPv6 prefix in bits"
 msgstr "Довжина IPv6-префікса в бітах"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3254,9 +3470,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Режим Turbo"
-
 msgid "Tx-Power"
 msgstr "Потужність передавача"
 
@@ -3275,6 +3488,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB-пристрій"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "UUID"
 
@@ -3307,12 +3523,12 @@ msgstr "Оновити списки..."
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "Відвантажити sysupgrade-сумісний образ, щоб замінити поточну прошивку. Для "
 "збереження поточної конфігурації встановіть прапорець \"Зберегти настройки"
-"\" (потрібен OpenWrt-сумісний образ прошивки)."
+"\" (потрібен сумісний образ прошивки)."
 
 msgid "Upload archive..."
 msgstr "Відвантажити архів..."
@@ -3383,6 +3599,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,6 +3714,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "Бездротові мережі"
 
@@ -3532,9 +3756,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 "
@@ -3546,9 +3767,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 ""
@@ -3641,6 +3862,9 @@ msgstr ""
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3695,6 +3919,9 @@ msgstr ""
 msgid "tagged"
 msgstr "з позначкою"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "невідомий"
 
@@ -3716,6 +3943,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 0160c97..8964c8e 100644 (file)
@@ -43,18 +43,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -137,9 +164,6 @@ msgstr ""
 msgid "APN"
 msgstr ""
 
-msgid "AR Support"
-msgstr "Hỗ trợ AR"
-
 msgid "ARP retry threshold"
 msgstr ""
 
@@ -269,6 +293,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr ""
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -277,9 +304,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -375,9 +399,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr ""
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr ""
-
 msgid "Auth Group"
 msgstr ""
 
@@ -387,6 +408,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "Xác thực"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "Authoritative"
 
@@ -453,9 +477,6 @@ msgstr ""
 msgid "Back to scan results"
 msgstr ""
 
-msgid "Background Scan"
-msgstr "Background Scan"
-
 msgid "Backup / Flash Firmware"
 msgstr ""
 
@@ -480,9 +501,15 @@ msgid ""
 "defined backup patterns."
 msgstr ""
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr ""
 
@@ -551,6 +578,9 @@ msgstr ""
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "Checksum"
 
@@ -601,9 +631,6 @@ msgstr "Lệnh"
 msgid "Common Configuration"
 msgstr ""
 
-msgid "Compression"
-msgstr "Sức nén"
-
 msgid "Configuration"
 msgstr "Cấu hình"
 
@@ -819,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 ""
 
@@ -863,15 +890,15 @@ 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"
 
 msgid "Domain whitelist"
 msgstr ""
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -942,6 +969,9 @@ msgstr "Kích hoạt <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr ""
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr ""
 
@@ -972,6 +1002,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr ""
 
@@ -984,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"
 
@@ -993,6 +1031,12 @@ msgstr ""
 msgid "Encryption"
 msgstr "Encryption"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr ""
 
@@ -1024,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 ""
 
@@ -1036,9 +1086,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "Khung nhanh"
-
 msgid "File"
 msgstr ""
 
@@ -1074,6 +1121,9 @@ msgstr ""
 msgid "Firewall"
 msgstr "Firewall"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr ""
 
@@ -1119,6 +1169,9 @@ msgstr ""
 msgid "Force TKIP and CCMP (AES)"
 msgstr ""
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1149,6 +1202,11 @@ msgstr ""
 msgid "Free space"
 msgstr ""
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr ""
 
@@ -1206,6 +1264,9 @@ msgstr ""
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr ""
 
@@ -1263,6 +1324,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "Địa chỉ IP"
 
@@ -1305,6 +1369,9 @@ msgstr ""
 msgid "IPv4-Address"
 msgstr ""
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6"
 
@@ -1353,6 +1420,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr ""
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr ""
 
@@ -1497,6 +1567,9 @@ msgstr ""
 msgid "Invalid username and/or password! Please try again."
 msgstr "Tên và mật mã không đúng. Xin thử lại "
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, fuzzy
 msgid ""
 "It appears that you are trying to flash an image that does not fit into the "
@@ -1505,7 +1578,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"
@@ -1618,6 +1691,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 ""
 
@@ -1630,6 +1719,9 @@ msgstr ""
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr ""
 
@@ -1747,9 +1839,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 ""
 
@@ -1785,9 +1874,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"
 
@@ -1800,6 +1886,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr ""
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "Chế độ"
 
@@ -1858,9 +1947,6 @@ msgstr ""
 msgid "Move up"
 msgstr ""
 
-msgid "Multicast Rate"
-msgstr "Multicast Rate"
-
 msgid "Multicast address"
 msgstr ""
 
@@ -1873,6 +1959,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2053,12 +2142,50 @@ msgstr ""
 msgid "Option removed"
 msgstr ""
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "Lựa chọn "
 
@@ -2071,9 +2198,6 @@ msgstr "Ra khỏi"
 msgid "Outbound:"
 msgstr ""
 
-msgid "Outdoor Channels"
-msgstr "Kênh ngoại mạng"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2083,6 +2207,12 @@ msgstr ""
 msgid "Override MTU"
 msgstr ""
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2115,6 +2245,9 @@ msgstr "PID"
 msgid "PIN"
 msgstr ""
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr ""
 
@@ -2199,6 +2332,9 @@ msgstr ""
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2208,6 +2344,9 @@ msgstr "Tiến hành reboot"
 msgid "Perform reset"
 msgstr ""
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr ""
 
@@ -2238,6 +2377,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2252,6 +2403,9 @@ msgstr "Ngăn chặn giao tiếp giữa client-và-client"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr ""
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "Proceed"
 
@@ -2285,12 +2439,24 @@ msgstr ""
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "Pseudo Ad-Hoc (ahdemo)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr ""
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2372,6 +2538,9 @@ msgstr ""
 msgid "Realtime Wireless"
 msgstr ""
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr ""
 
@@ -2390,6 +2559,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 ""
 
@@ -2399,9 +2571,6 @@ msgstr ""
 msgid "References"
 msgstr "Tham chiếu"
 
-msgid "Regulatory Domain"
-msgstr "Miền điều chỉnh"
-
 msgid "Relay"
 msgstr ""
 
@@ -2417,6 +2586,9 @@ msgstr ""
 msgid "Remote IPv4 address"
 msgstr ""
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "Loại bỏ"
 
@@ -2438,9 +2610,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2485,6 +2677,12 @@ msgstr ""
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2574,9 +2772,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 ""
 
@@ -2600,6 +2795,11 @@ msgstr ""
 msgid "Services"
 msgstr "Dịch vụ "
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 msgid "Set up Time Synchronization"
 msgstr ""
 
@@ -2665,8 +2865,8 @@ msgstr ""
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
 
 msgid "Sort"
@@ -2697,6 +2897,19 @@ msgid ""
 "dead"
 msgstr ""
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr ""
 
@@ -2721,9 +2934,6 @@ msgstr "Thống kê leases"
 msgid "Static Routes"
 msgstr "Static Routes"
 
-msgid "Static WDS"
-msgstr ""
-
 msgid "Static address"
 msgstr ""
 
@@ -2840,6 +3050,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr ""
 
@@ -2897,6 +3111,9 @@ msgstr ""
 msgid "The length of the IPv6 prefix in bits"
 msgstr ""
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3095,9 +3312,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "Turbo Mode"
-
 msgid "Tx-Power"
 msgstr ""
 
@@ -3116,6 +3330,9 @@ msgstr ""
 msgid "USB Device"
 msgstr ""
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr ""
 
@@ -3148,8 +3365,8 @@ msgstr ""
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 
 msgid "Upload archive..."
@@ -3217,6 +3434,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 ""
 
@@ -3325,6 +3547,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr ""
 
@@ -3364,9 +3589,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 "
@@ -3378,7 +3600,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 ""
@@ -3470,6 +3692,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 ""
 
@@ -3524,6 +3749,9 @@ msgstr ""
 msgid "tagged"
 msgstr ""
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr ""
 
@@ -3544,3 +3772,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 a2d1e47..72c446b 100644 (file)
@@ -3,21 +3,21 @@ msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2009-12-21 23:08+0200\n"
-"PO-Revision-Date: 2015-12-20 13:14+0800\n"
-"Last-Translator: GuoGuo <gch981213@gmail.com>\n"
+"PO-Revision-Date: 2017-04-09 15:04+0800\n"
+"Last-Translator: Hsing-Wang Liao <kuoruan@gmail.com>\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: Poedit 1.8.5\n"
+"X-Generator: Poedit 2.0\n"
 "Language-Team: \n"
 
 msgid "%s is untagged in multiple VLANs!"
-msgstr ""
+msgstr "%s 在多个 VLAN 中未标记"
 
 msgid "(%d minute window, %d second interval)"
-msgstr "(%d分钟信息,%d秒刷新)"
+msgstr "(%d 分钟信息,%d 秒刷新)"
 
 msgid "(%s available)"
 msgstr "(%s 可用)"
@@ -43,142 +43,164 @@ msgstr "-- 根据设备匹配 --"
 msgid "-- match by label --"
 msgstr "-- 根据标签匹配 --"
 
+msgid "-- match by uuid --"
+msgstr "-- 根据 UUID 匹配 --"
+
 msgid "1 Minute Load:"
-msgstr "1分钟负载:"
+msgstr "1 分钟负载:"
 
 msgid "15 Minute Load:"
-msgstr "15分钟负载:"
+msgstr "15 分钟负载:"
+
+msgid "4-character hexadecimal ID"
+msgstr "4 字符的十六进制 ID"
 
 msgid "464XLAT (CLAT)"
-msgstr ""
+msgstr "464XLAT (CLAT)"
 
 msgid "5 Minute Load:"
-msgstr "5分钟负载:"
+msgstr "5 分钟负载:"
+
+msgid "6-octet identifier as a hex string - no colons"
+msgstr "6 个八位字节的标识符 (十六进制字符串) - 无冒号"
+
+msgid "802.11r Fast Transition"
+msgstr "802.11r 快速转换"
+
+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>"
+msgstr "<abbr title=\"基本服务集标识符\">BSSID</abbr>"
 
 msgid "<abbr title=\"Domain Name System\">DNS</abbr> query port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> 查询端口"
+msgstr "<abbr title=\"域名服务系统\">DNS</abbr> 查询端口"
 
 msgid "<abbr title=\"Domain Name System\">DNS</abbr> server port"
-msgstr "<abbr title=\"Domain Name System\">DNS</abbr> 服务器端口"
+msgstr "<abbr title=\"域名服务系统\">DNS</abbr> 服务器端口"
 
 msgid ""
 "<abbr title=\"Domain Name System\">DNS</abbr> servers will be queried in the "
 "order of the resolvfile"
-msgstr "将会按照指定的顺序查询<abbr title=\"Domain Name System\">DNS</abbr>"
+msgstr "将会按照指定的顺序查询 <abbr title=\"域名服务系统\">DNS</abbr>"
 
 msgid "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgstr "<abbr title=\"扩展服务集标识符\">ESSID</abbr>"
 
 msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Address"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-地址"
+msgstr "<abbr title=\"互联网协议第4版\">IPv4</abbr>-地址"
 
 msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-网关"
+msgstr "<abbr title=\"互联网协议第4版\">IPv4</abbr>-网关"
 
 msgid "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Netmask"
-msgstr "<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-子网掩码"
+msgstr "<abbr title=\"互联网协议第4版\">IPv4</abbr>-子网掩码"
 
 msgid ""
 "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Address or Network "
 "(CIDR)"
 msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-地址或超网() (<abbr "
-"title=\"无类别域间路由\">CIDR</abbr>)"
+"<abbr title=\"互联网协议第6版\">IPv6</abbr>-地址或超网 (<abbr title=\"无类别"
+"域间路由\">CIDR</abbr>)"
 
 msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Gateway"
-msgstr "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-网关"
+msgstr "<abbr title=\"互联网协议第6版\">IPv6</abbr>-网关"
 
 msgid "<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Suffix (hex)"
-msgstr ""
-"<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-后缀(十六进制)"
+msgstr "<abbr title=\"互联网协议第6版\">IPv6</abbr>-后缀 (十六进制)"
 
 msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Configuration"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr>配置"
+msgstr "<abbr title=\"发光二极管\">LED</abbr> 配置"
 
 msgid "<abbr title=\"Light Emitting Diode\">LED</abbr> Name"
-msgstr "<abbr title=\"Light Emitting Diode\">LED</abbr>名称"
+msgstr "<abbr title=\"发光二极管\">LED</abbr> 名称"
 
 msgid "<abbr title=\"Media Access Control\">MAC</abbr>-Address"
-msgstr "<abbr title=\"Media Access Control\">MAC</abbr>-地址"
+msgstr "<abbr title=\"介质访问控制\">MAC</abbr>-地址"
 
 msgid ""
 "<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Dynamic Host Configuration "
 "Protocol\">DHCP</abbr> leases"
-msgstr ""
-"最大<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>分配数量"
+msgstr "最大 <abbr title=\"动态主机配置协议\">DHCP</abbr> 分配数量"
 
 msgid ""
 "<abbr title=\"maximal\">Max.</abbr> <abbr title=\"Extension Mechanisms for "
 "Domain Name System\">EDNS0</abbr> packet size"
-msgstr "最大<abbr title=\"DNS扩展名\">EDNS0</abbr>数据包大小"
+msgstr "最大 <abbr title=\"DNS扩展名机制\">EDNS0</abbr> 数据包大小"
 
 msgid "<abbr title=\"maximal\">Max.</abbr> concurrent queries"
-msgstr "<abbr title=\"maximal\">最大</abbr>并发查询数"
+msgstr "最大并发查询数"
 
 msgid "<abbr title='Pairwise: %s / Group: %s'>%s - %s</abbr>"
 msgstr "<abbr title='Pairwise: %s / Group: %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 "ADSL"
 
 msgid "AICCU (SIXXS)"
-msgstr ""
+msgstr "AICCU (SIXXS)"
 
 msgid "ANSI T1.413"
-msgstr ""
+msgstr "ANSI T1.413"
 
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "AR支持"
-
 msgid "ARP retry threshold"
-msgstr "ARP重试阈值"
+msgstr "ARP 重试阈值"
 
 msgid "ATM (Asynchronous Transfer Mode)"
-msgstr ""
+msgstr "ATM (异步传输模式)"
 
 msgid "ATM Bridges"
-msgstr "ATM桥接"
+msgstr "ATM 桥接"
 
 msgid "ATM Virtual Channel Identifier (VCI)"
-msgstr "ATM虚拟通道标识(VCI)"
+msgstr "ATM 虚拟通道标识 (VCI)"
 
 msgid "ATM Virtual Path Identifier (VPI)"
-msgstr "ATM虚拟路径标识(VPI)"
+msgstr "ATM 虚拟路径标识 (VPI)"
 
 msgid ""
 "ATM bridges expose encapsulated ethernet in AAL5 connections as virtual "
 "Linux network interfaces which can be used in conjunction with DHCP or PPP "
 "to dial into the provider network."
 msgstr ""
-"ATM桥是以AAL5协议封装以太网的虚拟Linux网桥,用于协同DHCP或PPP来拨号连接到网络"
-"运营商。"
+"ATM 桥是以 AAL5 协议封装以太网的虚拟 Linux 网桥,用于协同 DHCP 或 PPP 来拨号"
+"è¿\9eæ\8e¥å\88°ç½\91ç»\9cè¿\90è\90¥å\95\86ã\80\82"
 
 msgid "ATM device number"
-msgstr "ATM设备号码"
+msgstr "ATM 设备号码"
 
 msgid "ATU-C System Vendor ID"
-msgstr ""
+msgstr "ATU-C 系统供应商 ID"
 
 msgid "AYIYA"
-msgstr ""
+msgstr "AYIYA"
 
 msgid "Access Concentrator"
 msgstr "接入集中器"
 
 msgid "Access Point"
-msgstr "接入点AP"
+msgstr "接入点 AP"
 
 msgid "Action"
 msgstr "动作"
@@ -190,37 +212,37 @@ msgid "Activate this network"
 msgstr "激活此网络"
 
 msgid "Active <abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-Routes"
-msgstr "活动的<abbr title=\"Internet Protocol Version 4\">IPv4</abbr>-链路"
+msgstr "活动的 <abbr title=\"互联网协议第4版\">IPv4</abbr>-链路"
 
 msgid "Active <abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-Routes"
-msgstr "活动的<abbr title=\"Internet Protocol Version 6\">IPv6</abbr>-链路"
+msgstr "活动的 <abbr title=\"互联网协议第6版\">IPv6</abbr>-链路"
 
 msgid "Active Connections"
 msgstr "活动连接"
 
 msgid "Active DHCP Leases"
-msgstr "已分配的DHCP租约"
+msgstr "已分配的 DHCP 租约"
 
 msgid "Active DHCPv6 Leases"
-msgstr "已分配的DHCPv6租约"
+msgstr "已分配的 DHCPv6 租约"
 
 msgid "Ad-Hoc"
-msgstr "点对点Ad-Hoc"
+msgstr "点对点 Ad-Hoc"
 
 msgid "Add"
 msgstr "添加"
 
 msgid "Add local domain suffix to names served from hosts files"
-msgstr "添加本地域名后缀到HOSTS文件中的域名"
+msgstr "添加本地域名后缀到 HOSTS 文件中的域名"
 
 msgid "Add new interface..."
 msgstr "添加新接口..."
 
 msgid "Additional Hosts files"
-msgstr "额外的HOSTS文件"
+msgstr "额外的 HOSTS 文件"
 
 msgid "Additional servers file"
-msgstr ""
+msgstr "额外的 SERVERS 文件"
 
 msgid "Address"
 msgstr "地址"
@@ -235,7 +257,7 @@ msgid "Advanced Settings"
 msgstr "高级设置"
 
 msgid "Aggregate Transmit Power(ACTATP)"
-msgstr ""
+msgstr "总发射功率 (ACTATP)"
 
 msgid "Alert"
 msgstr "警戒"
@@ -243,13 +265,13 @@ msgstr "警戒"
 msgid ""
 "Allocate IP addresses sequentially, starting from the lowest available "
 "address"
-msgstr ""
+msgstr "从最低可用地址开始顺序分配 IP 地址"
 
 msgid "Allocate IP sequentially"
-msgstr ""
+msgstr "顺序分配 IP"
 
 msgid "Allow <abbr title=\"Secure Shell\">SSH</abbr> password authentication"
-msgstr "允许<abbr title=\"Secure Shell\">SSH</abbr>密码验证"
+msgstr "允许 <abbr title=\"安全外壳协议\">SSH</abbr> 密码验证"
 
 msgid "Allow all except listed"
 msgstr "仅允许列表外"
@@ -261,93 +283,93 @@ msgid "Allow localhost"
 msgstr "允许本机"
 
 msgid "Allow remote hosts to connect to local SSH forwarded ports"
-msgstr "允许远程主机连接到本地SSH转发端口"
+msgstr "允许远程主机连接到本地 SSH 转发端口"
 
 msgid "Allow root logins with password"
-msgstr "root权限登录"
+msgstr "允许 Root 用户凭密码登录"
 
 msgid "Allow the <em>root</em> user to login with password"
-msgstr "允许<em>root</em>用户凭密码登录"
+msgstr "允许 <em>root</em> 用户凭密码登录"
 
 msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
-msgstr "允许127.0.0.0/8回环范围内的上行响应,例如:RBL服务"
+msgstr "允许 127.0.0.0/8 回环范围内的上行响应,例如: RBL 服务"
+
+msgid "Allowed IPs"
+msgstr "允许的 IP"
 
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
 msgstr ""
-"也请查看SIXXS上的<a href=\"https://www.sixxs.net/faq/connectivity/?"
-"faq=comparison\">Tunneling Comparison</a> "
+"也请查看 SIXXS 上的<a href=\"https://www.sixxs.net/faq/connectivity/?"
+"faq=comparison\">隧道对比</a>"
 
 msgid "Always announce default router"
 msgstr "总是广播默认路由"
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
-msgstr ""
+msgstr "Annex"
 
 msgid "Annex A + L + M (all)"
-msgstr ""
+msgstr "Annex A + L + M (全部)"
 
 msgid "Annex A G.992.1"
-msgstr ""
+msgstr "Annex A G.992.1"
 
 msgid "Annex A G.992.2"
-msgstr ""
+msgstr "Annex A G.992.2"
 
 msgid "Annex A G.992.3"
-msgstr ""
+msgstr "Annex A G.992.3"
 
 msgid "Annex A G.992.5"
-msgstr ""
+msgstr "Annex A G.992.5"
 
 msgid "Annex B (all)"
-msgstr ""
+msgstr "Annex B (全部)"
 
 msgid "Annex B G.992.1"
-msgstr ""
+msgstr "Annex B G.992.1"
 
 msgid "Annex B G.992.3"
-msgstr ""
+msgstr "Annex B G.992.3"
 
 msgid "Annex B G.992.5"
-msgstr ""
+msgstr "Annex B G.992.5"
 
 msgid "Annex J (all)"
-msgstr ""
+msgstr "Annex J (全部)"
 
 msgid "Annex L G.992.3 POTS 1"
-msgstr ""
+msgstr "Annex L G.992.3 POTS 1"
 
 msgid "Annex M (all)"
-msgstr ""
+msgstr "Annex M (全部)"
 
 msgid "Annex M G.992.3"
-msgstr ""
+msgstr "Annex M G.992.3"
 
 msgid "Annex M G.992.5"
-msgstr ""
+msgstr "Annex M G.992.5"
 
 msgid "Announce as default router even if no public prefix is available."
-msgstr "即使没有可用的公共前缀也广播默认路由"
+msgstr "即使没有可用的公共前缀也广播默认路由"
 
 msgid "Announced DNS domains"
-msgstr "广播的DNS域名"
+msgstr "广播的 DNS 域名"
 
 msgid "Announced DNS servers"
-msgstr "广播的DNS服务器"
+msgstr "广播的 DNS 服务器"
 
 msgid "Anonymous Identity"
-msgstr ""
+msgstr "匿名身份"
 
 msgid "Anonymous Mount"
 msgstr "自动挂载未配置的磁盘分区"
 
 msgid "Anonymous Swap"
-msgstr "自动挂载未配置的Swap分区"
+msgstr "自动挂载未配置的 Swap 分区"
 
 msgid "Antenna 1"
 msgstr "天线 1"
@@ -369,23 +391,20 @@ msgstr "正在应用更改"
 
 msgid ""
 "Assign a part of given length of every public IPv6-prefix to this interface"
-msgstr "给每个公共IPv6前缀分配指定长度的固定部分"
+msgstr "给每个公共 IPv6 前缀分配指定长度的固定部分"
 
 msgid "Assign interfaces..."
 msgstr "分配接口..."
 
 msgid ""
 "Assign prefix parts using this hexadecimal subprefix ID for this interface."
-msgstr ""
+msgstr "指定此接口使用的十六进制子 ID 前缀部分。"
 
 msgid "Associated Stations"
 msgstr "已连接站点"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Qualcomm/Atheros 802.11%s 无线网卡"
-
 msgid "Auth Group"
-msgstr ""
+msgstr "认证组"
 
 msgid "AuthGroup"
 msgstr "认证组"
@@ -393,8 +412,11 @@ msgstr "认证组"
 msgid "Authentication"
 msgstr "认证"
 
+msgid "Authentication Type"
+msgstr "认证类型"
+
 msgid "Authoritative"
-msgstr "授权的唯一DHCP服务器"
+msgstr "唯一授权"
 
 msgid "Authorization Required"
 msgstr "需要授权"
@@ -406,22 +428,22 @@ msgid "Automatic"
 msgstr "自动"
 
 msgid "Automatic Homenet (HNCP)"
-msgstr "自动家庭网络(HNCP)"
+msgstr "自动家庭网络 (HNCP)"
 
 msgid "Automatically check filesystem for errors before mounting"
 msgstr "在挂载前自动检查文件系统错误"
 
 msgid "Automatically mount filesystems on hotplug"
-msgstr "通过hotplug自动挂载磁盘"
+msgstr "通过 Hotplug 自动挂载磁盘"
 
 msgid "Automatically mount swap on hotplug"
-msgstr "通过hotplug自动挂载Swap分区"
+msgstr "通过 Hotplug 自动挂载 Swap 分区"
 
 msgid "Automount Filesystem"
 msgstr "自动挂载磁盘"
 
 msgid "Automount Swap"
-msgstr "自动挂载Swap"
+msgstr "自动挂载 Swap"
 
 msgid "Available"
 msgstr "可用"
@@ -433,13 +455,13 @@ msgid "Average:"
 msgstr "平均:"
 
 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"
@@ -459,9 +481,6 @@ msgstr "返回至概况"
 msgid "Back to scan results"
 msgstr "返回至扫描结果"
 
-msgid "Background Scan"
-msgstr "后台搜索"
-
 msgid "Backup / Flash Firmware"
 msgstr "备份/升级"
 
@@ -478,7 +497,7 @@ msgid "Band"
 msgstr "频宽"
 
 msgid "Behind NAT"
-msgstr "在NAT网络内"
+msgstr "在 NAT 网络内"
 
 msgid ""
 "Below is the determined list of files to backup. It consists of changed "
@@ -488,8 +507,14 @@ msgstr ""
 "下面是待备份的文件清单。包含了更改的配置文件、必要的基础文件和用户自定义的需"
 "备份文件。"
 
+msgid "Bind interface"
+msgstr "绑定接口"
+
 msgid "Bind only to specific interfaces rather than wildcard address."
-msgstr ""
+msgstr "仅绑定到特定接口,而不是全部地址。"
+
+msgid "Bind the tunnel to this interface (optional)."
+msgstr "将隧道绑定到此接口 (可选)。"
 
 msgid "Bitrate"
 msgstr "传输速率"
@@ -527,10 +552,10 @@ msgid "Buttons"
 msgstr "按键"
 
 msgid "CA certificate; if empty it will be saved after the first connection."
-msgstr "CA证书.如果留空的话证书将在第一次连接时被保存."
+msgstr "CA 证书,如果留空的话证书将在第一次连接时被保存。"
 
 msgid "CPU usage (%)"
-msgstr "CPU使用率(%)"
+msgstr "CPU 使用率 (%)"
 
 msgid "Cancel"
 msgstr "取消"
@@ -559,6 +584,9 @@ msgstr "检查"
 msgid "Check fileystems before mount"
 msgstr "在挂载前检查文件系统"
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr "选中此选项以从无线中删除现有网络。"
+
 msgid "Checksum"
 msgstr "校验值"
 
@@ -578,24 +606,26 @@ msgid "Cipher"
 msgstr "算法"
 
 msgid "Cisco UDP encapsulation"
-msgstr ""
+msgstr "Cisco UDP 封装"
 
 msgid ""
 "Click \"Generate archive\" to download a tar archive of the current "
 "configuration files. To reset the firmware to its initial state, click "
 "\"Perform reset\" (only possible with squashfs images)."
-msgstr "备份/恢复当前系统配置文件或重置OpenWrt(仅squashfs固件有效)。"
+msgstr ""
+"点击“生成备份”下载当前配置文件的 tar 存档。要将固件恢复到初始状态,请单击“执"
+"行重置” (仅 Squashfs 固件有效)。"
 
 msgid "Client"
-msgstr "客户端Client"
+msgstr "客户端 Client"
 
 msgid "Client ID to send when requesting DHCP"
-msgstr "请求DHCP时发送的客户ID"
+msgstr "请求 DHCP 时发送的客户 ID"
 
 msgid ""
 "Close inactive connection after the given amount of seconds, use 0 to "
 "persist connection"
-msgstr "定时关闭非活动链接(秒),0为持续连接"
+msgstr "定时关闭非活动链接 (秒),0 为持续连接"
 
 msgid "Close list..."
 msgstr "关闭列表..."
@@ -609,14 +639,11 @@ msgstr "进程命令"
 msgid "Common Configuration"
 msgstr "一般设置"
 
-msgid "Compression"
-msgstr "压缩"
-
 msgid "Configuration"
 msgstr "配置"
 
 msgid "Configuration applied."
-msgstr "配置已应用"
+msgstr "配置已应用"
 
 msgid "Configuration files will be kept."
 msgstr "配置文件将被保留。"
@@ -634,7 +661,7 @@ msgid "Connection Limit"
 msgstr "连接数限制"
 
 msgid "Connection to server fails when TLS cannot be used"
-msgstr "当TLS不可用时连接到服务器失败"
+msgstr "当 TLS 不可用时,与服务器连接失败"
 
 msgid "Connections"
 msgstr "链接"
@@ -652,7 +679,7 @@ msgid "Cover the following interfaces"
 msgstr "包括以下接口"
 
 msgid "Create / Assign firewall-zone"
-msgstr "创建/分配 防火墙区域"
+msgstr "创建/分配防火墙区域"
 
 msgid "Create Interface"
 msgstr "创建新接口"
@@ -664,19 +691,19 @@ msgid "Critical"
 msgstr "致命错误"
 
 msgid "Cron Log Level"
-msgstr "Cron日志级别"
+msgstr "Cron 日志级别"
 
 msgid "Custom Interface"
 msgstr "自定义接口"
 
 msgid "Custom delegated IPv6-prefix"
-msgstr "自定义分配的IPv6前缀"
+msgstr "自定义分配的 IPv6 前缀"
 
 msgid ""
 "Custom feed definitions, e.g. private feeds. This file can be preserved in a "
 "sysupgrade."
 msgstr ""
-"自定义的软件源地址(例如私有的软件源)。此处设定的源地址在系统升级时将被保留"
+"自定义的软件源地址 (例如私有的软件源)。此处设定的源地址在系统升级时将被保留"
 
 msgid "Custom feeds"
 msgstr "自定义的软件源"
@@ -684,82 +711,82 @@ msgstr "自定义的软件源"
 msgid ""
 "Customizes the behaviour of the device <abbr title=\"Light Emitting Diode"
 "\">LED</abbr>s if possible."
-msgstr "自定义<abbr title=\"Light Emitting Diode\">LED</abbr>的活动状态。"
+msgstr "自定义 <abbr title=\"发光二极管\">LED</abbr> 的活动状态。"
 
 msgid "DHCP Leases"
-msgstr "DHCP分配"
+msgstr "DHCP 分配"
 
 msgid "DHCP Server"
-msgstr "DHCP服务器"
+msgstr "DHCP 服务器"
 
 msgid "DHCP and DNS"
 msgstr "DHCP/DNS"
 
 msgid "DHCP client"
-msgstr "DHCP客户端"
+msgstr "DHCP 客户端"
 
 msgid "DHCP-Options"
 msgstr "DHCP-选项"
 
 msgid "DHCPv6 Leases"
-msgstr "DHCPv6分配"
+msgstr "DHCPv6 分配"
 
 msgid "DHCPv6 client"
-msgstr "DHCPv6客户端"
+msgstr "DHCPv6 客户端"
 
 msgid "DHCPv6-Mode"
-msgstr "DHCPv6模式"
+msgstr "DHCPv6 模式"
 
 msgid "DHCPv6-Service"
-msgstr "DHCPv6服务"
+msgstr "DHCPv6 服务"
 
 msgid "DNS"
 msgstr "DNS"
 
 msgid "DNS forwardings"
-msgstr "DNS转发"
+msgstr "DNS 转发"
 
 msgid "DNS-Label / FQDN"
-msgstr ""
+msgstr "DNS-Label / FQDN"
 
 msgid "DNSSEC"
-msgstr ""
+msgstr "DNSSEC"
 
 msgid "DNSSEC check unsigned"
-msgstr ""
+msgstr "DNSSEC 未签名检查"
 
 msgid "DPD Idle Timeout"
-msgstr ""
+msgstr "DPD 空闲超时"
 
 msgid "DS-Lite AFTR address"
-msgstr ""
+msgstr "DS-Lite AFTR 地址"
 
 msgid "DSL"
-msgstr ""
+msgstr "DSL"
 
 msgid "DSL Status"
-msgstr ""
+msgstr "DSL 状态"
 
 msgid "DSL line mode"
-msgstr ""
+msgstr "DSL 线路模式"
 
 msgid "DUID"
-msgstr "DUID(DHCP唯一标识符)"
+msgstr "DUID"
 
 msgid "Data Rate"
-msgstr ""
+msgstr "数据速率"
 
 msgid "Debug"
 msgstr "调试"
 
 msgid "Default %d"
-msgstr "默认%d"
+msgstr "默认 %d"
 
 msgid "Default gateway"
 msgstr "默认网关"
 
 msgid "Default is stateless + stateful"
-msgstr ""
+msgstr "默认是无状态 + 有状态"
 
 msgid "Default route"
 msgstr "默认路由"
@@ -768,15 +795,15 @@ msgid "Default state"
 msgstr "默认状态"
 
 msgid "Define a name for this network."
-msgstr "为网络定义名称"
+msgstr "为网络定义名称"
 
 msgid ""
 "Define additional DHCP options, for example "
 "\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
 "servers to clients."
 msgstr ""
-"设置DHCP的附加选项,例如设定\"<code>6,192.168.2.1,192.168.2.2</code>\"表示通"
-"告不同的DNS服务器给客户端。"
+"设置 DHCP 的附加选项,例如设定 \"<code>6,192.168.2.1,192.168.2.2</code>\" 表"
+"示通告不同的 DNS 服务器给客户端。"
 
 msgid "Delete"
 msgstr "删除"
@@ -820,23 +847,22 @@ msgstr "禁用"
 msgid ""
 "Disable <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr> for "
 "this interface."
-msgstr ""
-"禁用本接口的<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>。"
+msgstr "禁用本接口的 <abbr title=\"动态主机配置协议\">DHCP</abbr>。"
 
 msgid "Disable DNS setup"
-msgstr "停用DNS设定"
+msgstr "停用 DNS 设定"
 
 msgid "Disable Encryption"
-msgstr ""
-
-msgid "Disable HW-Beacon timer"
-msgstr "停用 HW-Beacon 计时器"
+msgstr "禁用加密"
 
 msgid "Disabled"
 msgstr "禁用"
 
+msgid "Disabled (default)"
+msgstr "禁用 (默认)"
+
 msgid "Discard upstream RFC1918 responses"
-msgstr "丢弃RFC1918上行响应数据"
+msgstr "丢弃 RFC1918 上行响应数据"
 
 msgid "Displaying only packages containing"
 msgstr "只显示有内容的软件包"
@@ -845,32 +871,32 @@ msgid "Distance Optimization"
 msgstr "距离优化"
 
 msgid "Distance to farthest network member in meters."
-msgstr "最远客户端的距离(米)。"
+msgstr "最远网络用户的距离 (米)。"
 
 msgid "Distribution feeds"
 msgstr "发行版软件源"
 
 msgid "Diversity"
-msgstr "å\88\86é\9b\86"
+msgstr "å·®å¼\82"
 
 msgid ""
 "Dnsmasq is a combined <abbr title=\"Dynamic Host Configuration Protocol"
 "\">DHCP</abbr>-Server and <abbr title=\"Domain Name System\">DNS</abbr>-"
 "Forwarder for <abbr title=\"Network Address Translation\">NAT</abbr> "
 "firewalls"
-msgstr "Dnsmasq为NAT防火墙提供了一个集成的DHCP服务器和DNS转发器"
+msgstr ""
+"Dnsmasq 为 <abbr title=\"网络地址转换\">NAT</abbr> 防火墙提供了一个集成的 "
+"<abbr title=\"动态主机配置协议\">DHCP</abbr> 服务器和 <abbr title=\"域名系统"
+"\">DNS</abbr> 转发器"
 
 msgid "Do not cache negative replies, e.g. for not existing domains"
-msgstr "不缓存无用的回应, 比如不存在的域。"
+msgstr "不缓存无用的回应, 比如不存在的域。"
 
 msgid "Do not forward requests that cannot be answered by public name servers"
 msgstr "不转发公共域名服务器无法回应的请求"
 
 msgid "Do not forward reverse lookups for local networks"
-msgstr "不转发反向查询本地网络的Lookups命令"
-
-msgid "Do not send probe responses"
-msgstr "不回送探测响应"
+msgstr "不转发反向查询本地网络的 Lookups 命令"
 
 msgid "Domain required"
 msgstr "忽略空域名解析"
@@ -878,10 +904,13 @@ msgstr "忽略空域名解析"
 msgid "Domain whitelist"
 msgstr "域名白名单"
 
+msgid "Don't Fragment"
+msgstr "禁止碎片"
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
-msgstr "不转发没有DNS名称的解析请求"
+msgstr "不转发没有 <abbr title=\"域名系统\">DNS</abbr> 名称的解析请求"
 
 msgid "Download and install package"
 msgstr "下载并安装软件包"
@@ -890,20 +919,20 @@ msgid "Download backup"
 msgstr "下载备份"
 
 msgid "Dropbear Instance"
-msgstr "Dropbear设置"
+msgstr "Dropbear 实例"
 
 msgid ""
 "Dropbear offers <abbr title=\"Secure Shell\">SSH</abbr> network shell access "
 "and an integrated <abbr title=\"Secure Copy\">SCP</abbr> server"
 msgstr ""
-"Dropbear提供了集成的<abbr title=\"Secure Copy\">SCP</abbr>服务器和基于<abbr "
-"title=\"Secure Shell\">SSH</abbr>的shell访问"
+"Dropbear 提供了集成的 <abbr title=\"安全复制\">SCP</abbr> 服务器和基于 <abbr "
+"title=\"安全外壳协议\">SSH</abbr> 的 Shell 访问"
 
 msgid "Dual-Stack Lite (RFC6333)"
-msgstr ""
+msgstr "Dual-Stack Lite (RFC6333)"
 
 msgid "Dynamic <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
-msgstr "动态<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>"
+msgstr "动态 <abbr title=\"动态主机配置协议\">DHCP</abbr>"
 
 msgid "Dynamic tunnel"
 msgstr "动态隧道"
@@ -911,13 +940,14 @@ msgstr "动态隧道"
 msgid ""
 "Dynamically allocate DHCP addresses for clients. If disabled, only clients "
 "having static leases will be served."
-msgstr "动态分配DHCP地址。如果禁用,则只能为静态租用表中的客户端提供网络服务。"
+msgstr ""
+"动态分配 DHCP 地址。如果禁用,则只能为静态租用表中的客户端提供网络服务。"
 
 msgid "EA-bits length"
-msgstr ""
+msgstr "EA-bits 长度"
 
 msgid "EAP-Method"
-msgstr "EAP-Method"
+msgstr "EAP 类型"
 
 msgid "Edit"
 msgstr "修改"
@@ -940,31 +970,34 @@ msgid "Enable"
 msgstr "启用"
 
 msgid "Enable <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
-msgstr "开启<abbr title=\"Spanning Tree Protocol\">STP</abbr>"
+msgstr "开启 <abbr title=\"生成树协议\">STP</abbr>"
 
 msgid "Enable HE.net dynamic endpoint update"
-msgstr "启用HE.net动态终端更新"
+msgstr "启用 HE.net 动态终端更新"
+
+msgid "Enable IPv6 negotiation"
+msgstr "启用 IPv6 协商"
 
 msgid "Enable IPv6 negotiation on the PPP link"
-msgstr "在PPP链路上启用IPv6协商"
+msgstr "在 PPP 链路上启用 IPv6 协商"
 
 msgid "Enable Jumbo Frame passthrough"
 msgstr "启用巨型帧透传"
 
 msgid "Enable NTP client"
-msgstr "启用NTP客户端"
+msgstr "启用 NTP 客户端"
 
 msgid "Enable Single DES"
-msgstr ""
+msgstr "启用单个 DES"
 
 msgid "Enable TFTP server"
-msgstr "启用TFTP服务器"
+msgstr "启用 TFTP 服务器"
 
 msgid "Enable VLAN functionality"
-msgstr "启用VLAN"
+msgstr "启用 VLAN"
 
 msgid "Enable WPS pushbutton, requires WPA(2)-PSK"
-msgstr "启用WPS按键配置.要求使用WPA(2)-PSK"
+msgstr "启用 WPS 按键配置,要求使用 WPA(2)-PSK"
 
 msgid "Enable learning and aging"
 msgstr "启用智能交换学习"
@@ -975,6 +1008,9 @@ msgstr "启用流入数据包镜像"
 msgid "Enable mirroring of outgoing packets"
 msgstr "启用流出数据包镜像"
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr "启用封装数据包的 DF (禁止碎片) 标志。"
+
 msgid "Enable this mount"
 msgstr "启用挂载点"
 
@@ -987,6 +1023,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 "在此桥接上启用生成协议树"
 
@@ -996,6 +1037,12 @@ msgstr "封装模式"
 msgid "Encryption"
 msgstr "加密"
 
+msgid "Endpoint Host"
+msgstr "端点主机"
+
+msgid "Endpoint Port"
+msgstr "端点端口"
+
 msgid "Erasing..."
 msgstr "擦除中..."
 
@@ -1003,7 +1050,7 @@ msgid "Error"
 msgstr "错误"
 
 msgid "Errored seconds (ES)"
-msgstr ""
+msgstr "错误秒数 (ES)"
 
 msgid "Ethernet Adapter"
 msgstr "以太网适配器"
@@ -1012,36 +1059,38 @@ msgid "Ethernet Switch"
 msgstr "以太网交换机"
 
 msgid "Exclude interfaces"
-msgstr ""
+msgstr "排除接口"
 
 msgid "Expand hosts"
-msgstr "扩展HOSTS文件中的主机后缀"
+msgstr "扩展 HOSTS 文件中的主机后缀"
 
 msgid "Expires"
 msgstr "到期时间"
 
-#, fuzzy
 msgid ""
 "Expiry time of leased addresses, minimum is 2 minutes (<code>2m</code>)."
-msgstr "地址租期,最小2分钟(<code>2m</code>)。"
+msgstr "租用地址的到期时间,最短 2 分钟 (<code>2m</code>)。"
 
 msgid "External"
-msgstr ""
+msgstr "外部"
+
+msgid "External R0 Key Holder List"
+msgstr "外部 R0KH (R0 Key Holder) 列表"
+
+msgid "External R1 Key Holder List"
+msgstr "外部 R1KH (R1 Key Holder) 列表"
 
 msgid "External system log server"
-msgstr "远程log服务器"
+msgstr "外部日志服务器"
 
 msgid "External system log server port"
-msgstr "远程log服务器端口"
+msgstr "外部日志服务器端口"
 
 msgid "External system log server protocol"
-msgstr ""
+msgstr "外部日志服务器协议"
 
 msgid "Extra SSH command options"
-msgstr "额外的SSH命令选项"
-
-msgid "Fast Frames"
-msgstr "快速帧"
+msgstr "额外的 SSH 命令选项"
 
 msgid "File"
 msgstr "文件"
@@ -1065,8 +1114,8 @@ msgid ""
 "Find all currently attached filesystems and swap and replace configuration "
 "with defaults based on what was detected"
 msgstr ""
-"查找所有当前系统上的分区和Swap并使用基于所找到的分区生成的配置文件替换默认配"
-"置。"
+"查找所有当前系统上的分区和 Swap 并使用基于所找到的分区生成的配置文件替换默认"
+"配置"
 
 msgid "Find and join network"
 msgstr "搜索并加入网络"
@@ -1080,6 +1129,9 @@ msgstr "完成"
 msgid "Firewall"
 msgstr "防火墙"
 
+msgid "Firewall Mark"
+msgstr "防火墙标识"
+
 msgid "Firewall Settings"
 msgstr "防火墙设置"
 
@@ -1087,13 +1139,13 @@ msgid "Firewall Status"
 msgstr "防火墙状态"
 
 msgid "Firmware File"
-msgstr ""
+msgstr "固件文件"
 
 msgid "Firmware Version"
 msgstr "固件版本"
 
 msgid "Fixed source port for outbound DNS queries"
-msgstr "指定的DNS查询源端口"
+msgstr "指定的 DNS 查询源端口"
 
 msgid "Flash Firmware"
 msgstr "刷新固件"
@@ -1111,31 +1163,34 @@ msgid "Flashing..."
 msgstr "刷写中..."
 
 msgid "Force"
-msgstr "强制开启DHCP"
+msgstr "强制"
 
 msgid "Force CCMP (AES)"
-msgstr "强制使用CCMP(AES)加密"
+msgstr "强制 CCMP (AES)"
 
 msgid "Force DHCP on this network even if another server is detected."
-msgstr "强å\88¶å¼\80å\90¯DHCP。"
+msgstr "å\8d³ä½¿æ£\80æµ\8bå\88°å\8f¦ä¸\80å\8f°æ\9c\8då\8a¡å\99¨ï¼\8cä¹\9fè¦\81强å\88¶ä½¿ç\94¨æ­¤ç½\91ç»\9cä¸\8aç\9a\84 DHCP。"
 
 msgid "Force TKIP"
-msgstr "强制使用TKIP加密"
+msgstr "强制 TKIP"
 
 msgid "Force TKIP and CCMP (AES)"
-msgstr "TKIP和CCMP(AES)混合加密"
+msgstr "强制 TKIP 和 CCMP (AES)"
+
+msgid "Force link"
+msgstr "强制链路"
 
 msgid "Force use of NAT-T"
-msgstr ""
+msgstr "强制使用 NAT-T"
 
 msgid "Form token mismatch"
-msgstr ""
+msgstr "表单令牌不匹配"
 
 msgid "Forward DHCP traffic"
-msgstr "转发DHCP数据包"
+msgstr "转发 DHCP 数据包"
 
 msgid "Forward Error Correction Seconds (FECS)"
-msgstr ""
+msgstr "前向纠错秒数 (FECS)"
 
 msgid "Forward broadcast traffic"
 msgstr "转发广播数据包"
@@ -1155,11 +1210,18 @@ msgstr "空闲数"
 msgid "Free space"
 msgstr "空闲空间"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+"有关 WireGuard 接口和 Peer 的更多信息: <a href=\"http://wireguard.io"
+"\">wireguard.io</a>。"
+
 msgid "GHz"
 msgstr "GHz"
 
 msgid "GPRS only"
-msgstr "仅GPRS"
+msgstr "仅 GPRS"
 
 msgid "Gateway"
 msgstr "网关"
@@ -1174,7 +1236,7 @@ msgid "General Setup"
 msgstr "基本设置"
 
 msgid "General options for opkg"
-msgstr "opkg基础配置"
+msgstr "OPKG 基础配置"
 
 msgid "Generate Config"
 msgstr "生成配置"
@@ -1183,7 +1245,7 @@ msgid "Generate archive"
 msgstr "生成备份"
 
 msgid "Generic 802.11%s Wireless Controller"
-msgstr "Generic 802.11%s 无线网卡"
+msgstr "通用 802.11%s 无线网卡"
 
 msgid "Given password confirmation did not match, password not changed!"
 msgstr "由于密码验证不匹配,密码没有更改!"
@@ -1201,16 +1263,19 @@ msgid "Go to relevant configuration page"
 msgstr "跳转到相关的配置页面"
 
 msgid "Group Password"
-msgstr ""
+msgstr "组密码"
 
 msgid "Guest"
 msgstr "访客"
 
 msgid "HE.net password"
-msgstr "HE.net密码"
+msgstr "HE.net 密码"
 
 msgid "HE.net username"
-msgstr "HE.net用户名"
+msgstr "HE.net 用户名"
+
+msgid "HT mode (802.11n)"
+msgstr "HT 模式 (802.11n)"
 
 msgid "Handler"
 msgstr "处理程序"
@@ -1219,7 +1284,7 @@ msgid "Hang Up"
 msgstr "挂起"
 
 msgid "Header Error Code Errors (HEC)"
-msgstr ""
+msgstr "请求头的错误代码错误 (HEC)"
 
 msgid "Heartbeat"
 msgstr "心跳"
@@ -1232,16 +1297,16 @@ msgstr "配置路由器的部分基础信息。"
 msgid ""
 "Here you can paste public SSH-Keys (one per line) for SSH public-key "
 "authentication."
-msgstr "SSH公共密钥认证(每行一个密钥)。"
+msgstr "请在这里粘贴公共 SSH 密钥用于 SSH 公钥认证 (每行一个)。"
 
 msgid "Hermes 802.11b Wireless Controller"
 msgstr "Hermes 802.11b 无线网卡"
 
 msgid "Hide <abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
-msgstr "隐藏<abbr title=\"Extended Service Set Identifier\">ESSID</abbr>"
+msgstr "隐藏 <abbr title=\"扩展服务集标识符\">ESSID</abbr>"
 
 msgid "Host"
-msgstr ""
+msgstr "主机"
 
 msgid "Host entries"
 msgstr "主机目录"
@@ -1250,13 +1315,13 @@ msgid "Host expiry timeout"
 msgstr "主机到期超时"
 
 msgid "Host-<abbr title=\"Internet Protocol Address\">IP</abbr> or Network"
-msgstr "主机IP或网络"
+msgstr "主机 IP 或网络"
 
 msgid "Hostname"
 msgstr "主机名"
 
 msgid "Hostname to send when requesting DHCP"
-msgstr "请求DHCP时发送的主机名"
+msgstr "请求 DHCP 时发送的主机名"
 
 msgid "Hostnames"
 msgstr "主机名"
@@ -1265,98 +1330,107 @@ msgid "Hybrid"
 msgstr "混合"
 
 msgid "IKE DH Group"
-msgstr ""
+msgstr "IKE DH 组"
+
+msgid "IP Addresses"
+msgstr "IP 地址"
 
 msgid "IP address"
-msgstr "IP地址"
+msgstr "IP 地址"
 
 msgid "IPv4"
 msgstr "IPv4"
 
 msgid "IPv4 Firewall"
-msgstr "IPv4防火墙"
+msgstr "IPv4 防火墙"
 
 msgid "IPv4 WAN Status"
-msgstr "IPv4 WAN状态"
+msgstr "IPv4 WAN 状态"
 
 msgid "IPv4 address"
-msgstr "IPv4地址"
+msgstr "IPv4 地址"
 
 msgid "IPv4 and IPv6"
-msgstr "IPv4IPv6"
+msgstr "IPv4 和 IPv6"
 
 msgid "IPv4 assignment length"
-msgstr "分配IPv4长度"
+msgstr "分配 IPv4 长度"
 
 msgid "IPv4 broadcast"
-msgstr "IPv4广播"
+msgstr "IPv4 广播"
 
 msgid "IPv4 gateway"
-msgstr "IPv4网关"
+msgstr "IPv4 网关"
 
 msgid "IPv4 netmask"
-msgstr "IPv4子网掩码"
+msgstr "IPv4 子网掩码"
 
 msgid "IPv4 only"
-msgstr "仅IPv4"
+msgstr "仅 IPv4"
 
 msgid "IPv4 prefix"
-msgstr "IPv4地址前缀"
+msgstr "IPv4 地址前缀"
 
 msgid "IPv4 prefix length"
-msgstr "IPv4地址前缀长度"
+msgstr "IPv4 地址前缀长度"
 
 msgid "IPv4-Address"
 msgstr "IPv4-地址"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr "IPv4-in-IPv4 (RFC2003)"
+
 msgid "IPv6"
 msgstr "IPv6"
 
 msgid "IPv6 Firewall"
-msgstr "IPv6防火墙"
+msgstr "IPv6 防火墙"
 
 msgid "IPv6 Neighbours"
-msgstr "IPv6邻居"
+msgstr "IPv6 网上邻居"
 
 msgid "IPv6 Settings"
-msgstr "IPv6设置"
+msgstr "IPv6 设置"
 
 msgid "IPv6 ULA-Prefix"
-msgstr "IPv6 ULA前缀"
+msgstr "IPv6 ULA 前缀"
 
 msgid "IPv6 WAN Status"
-msgstr "IPv6 WAN状态"
+msgstr "IPv6 WAN 状态"
 
 msgid "IPv6 address"
-msgstr "IPv6地址"
+msgstr "IPv6 地址"
 
 msgid "IPv6 address delegated to the local tunnel endpoint (optional)"
-msgstr "绑定到本地隧道终点的IPv6地址(可选)"
+msgstr "绑定到本地隧道终点的 IPv6 地址 (可选)"
 
 msgid "IPv6 assignment hint"
-msgstr ""
+msgstr "IPv6 分配提示"
 
 msgid "IPv6 assignment length"
-msgstr "IPv6分配长度"
+msgstr "IPv6 分配长度"
 
 msgid "IPv6 gateway"
-msgstr "IPv6网关"
+msgstr "IPv6 网关"
 
 msgid "IPv6 only"
-msgstr "仅IPv6"
+msgstr "仅 IPv6"
 
 msgid "IPv6 prefix"
-msgstr "IPv6地址前缀"
+msgstr "IPv6 地址前缀"
 
 msgid "IPv6 prefix length"
-msgstr "IPv6地址前缀长度"
+msgstr "IPv6 地址前缀长度"
 
 msgid "IPv6 routed prefix"
-msgstr "IPv6路由前缀"
+msgstr "IPv6 路由前缀"
 
 msgid "IPv6-Address"
 msgstr "IPv6-地址"
 
+msgid "IPv6-PD"
+msgstr "IPv6-PD"
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6-in-IPv4 (RFC4213)"
 
@@ -1370,14 +1444,14 @@ msgid "Identity"
 msgstr "鉴权"
 
 msgid "If checked, 1DES is enaled"
-msgstr ""
+msgstr "选中以启用 1DES"
 
 msgid "If checked, encryption is disabled"
-msgstr ""
+msgstr "选中以禁用加密"
 
 msgid ""
 "If specified, mount the device by its UUID instead of a fixed device node"
-msgstr "用UUID来挂载设备"
+msgstr "用 UUID 来挂载设备"
 
 msgid ""
 "If specified, mount the device by the partition label instead of a fixed "
@@ -1388,7 +1462,7 @@ msgid "If unchecked, no default route is configured"
 msgstr "留空则不配置默认路由"
 
 msgid "If unchecked, the advertised DNS server addresses are ignored"
-msgstr "留空则忽略所通告的DNS服务器地址"
+msgstr "留空则忽略所通告的 DNS 服务器地址"
 
 msgid ""
 "If your physical memory is insufficient unused data can be temporarily "
@@ -1402,7 +1476,7 @@ msgid "Ignore <code>/etc/hosts</code>"
 msgstr "忽略 <code>/etc/hosts</code>"
 
 msgid "Ignore interface"
-msgstr "å\85³é\97­DHCP"
+msgstr "忽ç\95¥æ­¤æ\8e¥å\8f£"
 
 msgid "Ignore resolve file"
 msgstr "忽略解析文件"
@@ -1417,6 +1491,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 ""
+"为了防止对系统的未授权访问,您的请求已被阻止。点击下面的 “继续 »” 来返回上一"
+"页。"
 
 msgid "Inactivity timeout"
 msgstr "活动超时"
@@ -1437,10 +1513,10 @@ msgid "Install"
 msgstr "安装"
 
 msgid "Install iputils-traceroute6 for IPv6 traceroute"
-msgstr "安装iputils-traceroute6以进行IPv6 traceroute"
+msgstr "安装 iputils-traceroute6 以进行 IPv6 路由追踪"
 
 msgid "Install package %q"
-msgstr "安装软件包%q"
+msgstr "安装软件包 %q"
 
 msgid "Install protocol extensions..."
 msgstr "安装扩展协议..."
@@ -1464,10 +1540,10 @@ msgid "Interface is shutting down..."
 msgstr "正在关闭接口..."
 
 msgid "Interface name"
-msgstr ""
+msgstr "接口名称"
 
 msgid "Interface not present or not connected yet."
-msgstr "接口不存在或未连接"
+msgstr "接口不存在或未连接"
 
 msgid "Interface reconnected"
 msgstr "接口已重新连接"
@@ -1479,7 +1555,7 @@ msgid "Interfaces"
 msgstr "接口"
 
 msgid "Internal"
-msgstr ""
+msgstr "内部"
 
 msgid "Internal Server Error"
 msgstr "内部服务器错误"
@@ -1488,31 +1564,33 @@ msgid "Invalid"
 msgstr "无效"
 
 msgid "Invalid VLAN ID given! Only IDs between %d and %d are allowed."
-msgstr "无效的VLAN ID! 只有 %d 和 %d 之间的ID有效。"
+msgstr "无效的 VLAN ID!只有 %d 和 %d 之间的 ID 有效。"
 
 msgid "Invalid VLAN ID given! Only unique IDs are allowed"
-msgstr "无效的VLAN ID! 只允许唯一的ID。"
+msgstr "无效的 VLAN ID!只允许唯一的 ID。"
 
 msgid "Invalid username and/or password! Please try again."
-msgstr "无效的用户名和/或密码! 请重试。"
+msgstr "无效的用户名和/或密码!请重试。"
+
+msgid "Isolate Clients"
+msgstr ""
 
-#, 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!"
-msgstr "将要刷新的固件与本路由器不兼容,请重新验证固件文件。"
+msgstr "你尝试刷写的固件与本路由器不兼容,请重新验证固件文件。"
 
-msgid "Java Script required!"
-msgstr "需要Java Script!"
+msgid "JavaScript required!"
+msgstr "需要 JavaScript!"
 
 msgid "Join Network"
 msgstr "加入网络"
 
 msgid "Join Network: Wireless Scan"
-msgstr "加入网络:搜索无线"
+msgstr "加入网络: 搜索无线"
 
 msgid "Joining Network: %q"
-msgstr ""
+msgstr "加入网络: %q"
 
 msgid "Keep settings"
 msgstr "保留配置"
@@ -1536,13 +1614,13 @@ msgid "L2TP"
 msgstr "L2TP"
 
 msgid "L2TP Server"
-msgstr "L2TP服务器"
+msgstr "L2TP 服务器"
 
 msgid "LCP echo failure threshold"
-msgstr "LCP响应故障阈值"
+msgstr "LCP 响应故障阈值"
 
 msgid "LCP echo interval"
-msgstr "LCP响应间隔"
+msgstr "LCP 响应间隔"
 
 msgid "LLC"
 msgstr "LLC"
@@ -1557,13 +1635,13 @@ msgid "Language and Style"
 msgstr "语言和界面"
 
 msgid "Latency"
-msgstr ""
+msgstr "延迟"
 
 msgid "Leaf"
-msgstr "叶"
+msgstr "叶节点"
 
 msgid "Lease time"
-msgstr ""
+msgstr "租期"
 
 msgid "Lease validity time"
 msgstr "有效租期"
@@ -1581,31 +1659,31 @@ msgid "Leave empty to autodetect"
 msgstr "留空则自动探测"
 
 msgid "Leave empty to use the current WAN address"
-msgstr "留空则使用当前WAN地址"
+msgstr "留空则使用当前 WAN 地址"
 
 msgid "Legend:"
-msgstr "图例"
+msgstr "图例:"
 
 msgid "Limit"
 msgstr "客户数"
 
 msgid "Limit DNS service to subnets interfaces on which we are serving DNS."
-msgstr ""
+msgstr "将DNS服务限制到我们提供DNS的子网接口。"
 
 msgid "Limit listening to these interfaces, and loopback."
-msgstr ""
+msgstr "仅监听这些接口和环回接口。"
 
 msgid "Line Attenuation (LATN)"
-msgstr ""
+msgstr "线路衰减 (LATN)"
 
 msgid "Line Mode"
-msgstr ""
+msgstr "线路模式"
 
 msgid "Line State"
 msgstr "线路状态"
 
 msgid "Line Uptime"
-msgstr ""
+msgstr "线路运行时间"
 
 msgid "Link On"
 msgstr "活动链接"
@@ -1613,25 +1691,53 @@ msgstr "活动链接"
 msgid ""
 "List of <abbr title=\"Domain Name System\">DNS</abbr> servers to forward "
 "requests to"
-msgstr "将指定的域名DNS解析转发到指定的DNS服务器(按照示例填写)"
+msgstr ""
+"将指定域名的解析请求转发到指定的 <abbr title=\"域名系统\">DNS</abbr> 服务器 "
+"(按照示例填写)"
 
-msgid "List of SSH key files for auth"
+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 ""
+"同一移动域中的 R0KH 列表。<br />格式: MAC 地址,NAS标识符,128位密钥 (十六进制"
+"字符串)。<br />在从初始移动域关联期间使用的 R0KH 中请求 PMK-R1 密钥时,该列表"
+"用于将 R0KH-ID (NAS标识符)映射到目标 MAC 地址。"
+
+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 ""
+"同一移动域中的 R1KH 列表。<br />格式: MAC地址,R1KH-ID (包含冒号的6个八位字"
+"节),128位密钥 (十六进制字符串)。<br />当从 R0KH 发送 PMK-R1 键时,此列表用于"
+"将 R1KH-ID 映射到目标 MAC 地址。这也是可以请求 PMK-R1 键的 MD 中授权的 R1KH "
+"的列表。"
+
+msgid "List of SSH key files for auth"
+msgstr "用于认证的 SSH 密钥文件列表"
 
 msgid "List of domains to allow RFC1918 responses for"
-msgstr "允许RFC1918响应的域名列表"
+msgstr "允许 RFC1918 响应的域名列表"
 
 msgid "List of hosts that supply bogus NX domain results"
 msgstr "允许虚假空域名响应的服务器列表"
 
 msgid "Listen Interfaces"
-msgstr ""
+msgstr "监听接口"
+
+msgid "Listen Port"
+msgstr "监听端口"
 
 msgid "Listen only on the given interface or, if unspecified, on all"
-msgstr "监听指定的接口;未指定则监听全部"
+msgstr "仅监听指定的接口,未指定则监听全部"
 
 msgid "Listening port for inbound DNS queries"
-msgstr "入站DNS查询端口"
+msgstr "入站 DNS 查询端口"
 
 msgid "Load"
 msgstr "负载"
@@ -1643,16 +1749,16 @@ msgid "Loading"
 msgstr "加载中"
 
 msgid "Local IP address to assign"
-msgstr ""
+msgstr "要分配的本地 IP 地址"
 
 msgid "Local IPv4 address"
-msgstr "本地IPv4地址"
+msgstr "本地 IPv4 地址"
 
 msgid "Local IPv6 address"
-msgstr "本地IPv6地址"
+msgstr "本地 IPv6 地址"
 
 msgid "Local Service Only"
-msgstr ""
+msgstr "仅本地服务"
 
 msgid "Local Startup"
 msgstr "本地启动脚本"
@@ -1663,14 +1769,13 @@ msgstr "本地时间"
 msgid "Local domain"
 msgstr "本地域名"
 
-#, fuzzy
 msgid ""
 "Local domain specification. Names matching this domain are never forwarded "
 "and are resolved from DHCP or hosts files only"
-msgstr "æ\9c¬å\9c°å\9f\9få\90\8dè§\84å\88\99ã\80\82ä»\8eä¸\8d转å\8f\91å\92\8cå¤\84ç\90\86å\8fªæº\90è\87ªDHCPæ\88\96HOSTSæ\96\87件ç\9a\84æ\9c¬å\9c°å\9f\9få\90\8dæ\95°æ\8d®"
+msgstr "æ\9c¬å\9c°å\9f\9få\90\8dè§\84å\88\99ã\80\82ä¸\8eæ­¤å\9f\9få\8c¹é\85\8dç\9a\84å\90\8d称ä»\8eä¸\8d转å\8f\91ï¼\8cä»\85ä»\8e DHCP æ\88\96 HOSTS æ\96\87件解æ\9e\90"
 
 msgid "Local domain suffix appended to DHCP names and hosts file entries"
-msgstr "本地域名后缀将添加到DHCP和HOSTS文件条目"
+msgstr "本地域名后缀将添加到 DHCP 和 HOSTS 文件条目"
 
 msgid "Local server"
 msgstr "本地服务器"
@@ -1678,19 +1783,19 @@ msgstr "本地服务器"
 msgid ""
 "Localise hostname depending on the requesting subnet if multiple IPs are "
 "available"
-msgstr "如果有多个IP可用,则根据请求来源的子网来本地化主机名"
+msgstr "如果有多个 IP 可用,则根据请求来源的子网来本地化主机名"
 
 msgid "Localise queries"
 msgstr "本地化查询"
 
 msgid "Locked to channel %s used by: %s"
-msgstr "信道道已被锁定为 %s,因为该信道被 %s 使用"
+msgstr "信道道已被锁定为 %s因为该信道被 %s 使用"
 
 msgid "Log output level"
 msgstr "日志记录等级"
 
 msgid "Log queries"
-msgstr "日志查询"
+msgstr "记录查询日志"
 
 msgid "Logging"
 msgstr "日志"
@@ -1702,7 +1807,7 @@ msgid "Logout"
 msgstr "退出"
 
 msgid "Loss of Signal Seconds (LOSS)"
-msgstr ""
+msgstr "信号丢失秒数 (LOSS)"
 
 msgid "Lowest leased address as offset from the network address."
 msgstr "网络地址的起始分配基址。"
@@ -1720,13 +1825,13 @@ msgid "MAC-List"
 msgstr "MAC-列表"
 
 msgid "MAP / LW4over6"
-msgstr ""
+msgstr "MAP / LW4over6"
 
 msgid "MB/s"
 msgstr "MB/s"
 
 msgid "MD5"
-msgstr ""
+msgstr "MD5"
 
 msgid "MHz"
 msgstr "MHz"
@@ -1737,28 +1842,25 @@ msgstr "MTU"
 msgid ""
 "Make sure to clone the root filesystem using something like the commands "
 "below:"
-msgstr "请确认你已经复制过整个根文件系统,例如使用以下命令:"
+msgstr "请确认你已经复制过整个根文件系统例如使用以下命令:"
 
 msgid "Manual"
-msgstr ""
+msgstr "手动"
 
 msgid "Max. Attainable Data Rate (ATTNDR)"
-msgstr ""
-
-msgid "Maximum Rate"
-msgstr "最高速率"
+msgstr "最大可达数据速率 (ATTNDR)"
 
 msgid "Maximum allowed number of active DHCP leases"
-msgstr "允许的最大DHCP租用数"
+msgstr "允许的最大 DHCP 租用数"
 
 msgid "Maximum allowed number of concurrent DNS queries"
-msgstr "允许的最大并发DNS查询数"
+msgstr "允许的最大并发 DNS 查询数"
 
 msgid "Maximum allowed size of EDNS.0 UDP packets"
-msgstr "允许的最大EDNS.0 UDP报文大小"
+msgstr "允许的最大 EDNS.0 UDP 数据包大小"
 
 msgid "Maximum amount of seconds to wait for the modem to become ready"
-msgstr "调制解调器就绪的最大等待时间(秒)"
+msgstr "调制解调器就绪的最大等待时间 (秒)"
 
 msgid "Maximum hold time"
 msgstr "最大持续时间"
@@ -1767,6 +1869,7 @@ msgid ""
 "Maximum length of the name is 15 characters including the automatic protocol/"
 "bridge prefix (br-, 6in4-, pppoe- etc.)"
 msgstr ""
+"名称的最大长度为 15 个字符,包括自动协议/网桥前缀 (br-, 6in4-, pppoe- 等等)"
 
 msgid "Maximum number of leased addresses."
 msgstr "最大地址分配数量。"
@@ -1778,14 +1881,11 @@ msgid "Memory"
 msgstr "内存"
 
 msgid "Memory usage (%)"
-msgstr "内存使用率(%)"
+msgstr "内存使用率 (%)"
 
 msgid "Metric"
 msgstr "跃点数"
 
-msgid "Minimum Rate"
-msgstr "最低速率"
-
 msgid "Minimum hold time"
 msgstr "最低持续时间"
 
@@ -1796,7 +1896,10 @@ msgid "Mirror source port"
 msgstr "数据包镜像源端口"
 
 msgid "Missing protocol extension for proto %q"
-msgstr "缺少协议%q的协议扩展"
+msgstr "缺少协议 %q 的协议扩展"
+
+msgid "Mobility Domain"
+msgstr "移动域"
 
 msgid "Mode"
 msgstr "模式"
@@ -1811,7 +1914,7 @@ msgid "Modem init timeout"
 msgstr "调制解调器初始化超时"
 
 msgid "Monitor"
-msgstr "监听Monitor"
+msgstr "监听"
 
 msgid "Mount Entry"
 msgstr "挂载项目"
@@ -1823,15 +1926,15 @@ msgid "Mount Points"
 msgstr "挂载点"
 
 msgid "Mount Points - Mount Entry"
-msgstr "挂载点-存储区"
+msgstr "挂载点 - 存储区"
 
 msgid "Mount Points - Swap Entry"
-msgstr "挂载点-交换区"
+msgstr "挂载点 - 交换区"
 
 msgid ""
 "Mount Points define at which point a memory device will be attached to the "
 "filesystem"
-msgstr "配置存储设备挂载到文件系统中的位置和参数"
+msgstr "配置存储设备挂载到文件系统中的位置和参数"
 
 msgid "Mount filesystems not specifically configured"
 msgstr "自动挂载未专门配置挂载点的分区"
@@ -1843,7 +1946,7 @@ msgid "Mount point"
 msgstr "挂载点"
 
 msgid "Mount swap not specifically configured"
-msgstr "自动挂载未专门配置的Swap分区"
+msgstr "自动挂载未专门配置的 Swap 分区"
 
 msgid "Mounted file systems"
 msgstr "已挂载的文件系统"
@@ -1854,9 +1957,6 @@ msgstr "下移"
 msgid "Move up"
 msgstr "上移"
 
-msgid "Multicast Rate"
-msgstr "多播速率"
-
 msgid "Multicast address"
 msgstr "多播地址"
 
@@ -1864,22 +1964,25 @@ msgid "NAS ID"
 msgstr "NAS ID"
 
 msgid "NAT-T Mode"
-msgstr ""
+msgstr "NAT-T 模式"
 
 msgid "NAT64 Prefix"
+msgstr "NAT64 前缀"
+
+msgid "NCM"
 msgstr ""
 
 msgid "NDP-Proxy"
 msgstr "NDP-代理"
 
 msgid "NT Domain"
-msgstr ""
+msgstr "NT 域"
 
 msgid "NTP server candidates"
-msgstr "候选NTP服务器"
+msgstr "候选 NTP 服务器"
 
 msgid "NTP sync time-out"
-msgstr "NTP同步超时"
+msgstr "NTP 同步超时"
 
 msgid "Name"
 msgstr "名称"
@@ -1912,10 +2015,10 @@ msgid "Next »"
 msgstr "下一步 »"
 
 msgid "No DHCP Server configured for this interface"
-msgstr "本接口未配置DHCP服务器"
+msgstr "本接口未配置 DHCP 服务器"
 
 msgid "No NAT-T"
-msgstr ""
+msgstr "无 NAT-T"
 
 msgid "No chains in this table"
 msgstr "本表中没有链"
@@ -1951,16 +2054,16 @@ msgid "Noise"
 msgstr "噪声"
 
 msgid "Noise Margin (SNR)"
-msgstr ""
+msgstr "噪声容限 (SNR)"
 
 msgid "Noise:"
 msgstr "噪声:"
 
 msgid "Non Pre-emtive CRC errors (CRC_P)"
-msgstr ""
+msgstr "非抢占 CRC 错误 (CRC_P)"
 
 msgid "Non-wildcard"
-msgstr ""
+msgstr "非全部地址"
 
 msgid "None"
 msgstr "无"
@@ -1978,10 +2081,10 @@ msgid "Not connected"
 msgstr "未连接"
 
 msgid "Note: Configuration files will be erased."
-msgstr "注意配置文件将被删除。"
+msgstr "注意配置文件将被删除。"
 
 msgid "Note: interface name length"
-msgstr ""
+msgstr "注意: 接口名称长度"
 
 msgid "Notice"
 msgstr "注意"
@@ -1990,16 +2093,16 @@ msgid "Nslookup"
 msgstr "Nslookup"
 
 msgid "OK"
-msgstr "OK"
+msgstr "确认"
 
 msgid "OPKG-Configuration"
 msgstr "OPKG-配置"
 
 msgid "Obfuscated Group Password"
-msgstr ""
+msgstr "混淆组密码"
 
 msgid "Obfuscated Password"
-msgstr ""
+msgstr "混淆密码"
 
 msgid "Off-State Delay"
 msgstr "关闭时间"
@@ -2011,7 +2114,10 @@ msgid ""
 "<abbr title=\"Virtual Local Area Network\">VLAN</abbr> notation "
 "<samp>INTERFACE.VLANNR</samp> (<abbr title=\"for example\">e.g.</abbr>: "
 "<samp>eth0.1</samp>)."
-msgstr "配置网络接口信息。"
+msgstr ""
+"在此页面,你可以配置网络接口。你可以勾选“桥接接口”,并输入由空格分隔的多个网"
+"络接口的名称来桥接多个接口。还可以使用 <abbr title=\"虚拟局域网\">VLAN</"
+"abbr> 符号 <samp>INTERFACE.VLANNR</samp> (例如: <samp>eth0.1</samp>)。"
 
 msgid "On-State Delay"
 msgstr "通电时间"
@@ -2023,7 +2129,7 @@ msgid "One or more fields contain invalid values!"
 msgstr "一个或多个选项值有误!"
 
 msgid "One or more invalid/required values on tab"
-msgstr ""
+msgstr "选项卡上存在一个或多个无效/必需值"
 
 msgid "One or more required fields have no value!"
 msgstr "一个或多个必选项值为空!"
@@ -2032,7 +2138,7 @@ msgid "Open list..."
 msgstr "打开列表..."
 
 msgid "OpenConnect (CISCO AnyConnect)"
-msgstr ""
+msgstr "开放连接 (CISCO AnyConnect)"
 
 msgid "Operating frequency"
 msgstr "工作频率"
@@ -2043,11 +2149,52 @@ msgstr "修改的选项"
 msgid "Option removed"
 msgstr "移除的选项"
 
+msgid "Optional"
+msgstr "可选"
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
-msgstr "可选,设置这个选项会覆盖默认设定的服务器(tic.sixxs.net)"
+msgstr "可选,设置这个选项会覆盖默认设定的服务器 (tic.sixxs.net)"
 
 msgid "Optional, use when the SIXXS account has more than one tunnel"
-msgstr "可选,如果你的SIXXS账号拥有一个以上的隧道请设置此项."
+msgstr "可选,如果你的 SIXXS 账号拥有一个以上的隧道请设置此项."
+
+msgid "Optional."
+msgstr "可选。"
+
+msgid ""
+"Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, "
+"starting with <code>0x</code>."
+msgstr ""
+"可选,传出加密数据包的 32 位标记。请输入十六进制值,以 <code>0x</code> 开头。"
+
+msgid ""
+"Optional. Base64-encoded preshared key. Adds in an additional layer of "
+"symmetric-key cryptography for post-quantum resistance."
+msgstr "可选,Base64 编码的预共享密钥。"
+
+msgid "Optional. Create routes for Allowed IPs for this peer."
+msgstr "可选,为此 Peer 创建允许 IP 的路由。"
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr "可选,Peer 的主机。"
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr "可选,隧道接口的最大传输单元。"
+
+msgid "Optional. Port of peer."
+msgstr "可选,Peer的端口。"
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+"可选,Keep-Alive 消息之间的秒数,默认为 0 (禁用)。如果此设备位于 NAT 之后,建"
+"议使用的值为 25。"
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr "可选,用于传出和传入数据包的 UDP 端口。"
 
 msgid "Options"
 msgstr "选项"
@@ -2061,31 +2208,34 @@ msgstr "出口"
 msgid "Outbound:"
 msgstr "出站:"
 
-msgid "Outdoor Channels"
-msgstr "户外频道"
-
 msgid "Output Interface"
 msgstr "网络出口"
 
 msgid "Override MAC address"
-msgstr "克隆MAC地址"
+msgstr "重设 MAC 地址"
 
 msgid "Override MTU"
-msgstr "设置MTU"
+msgstr "重设 MTU"
+
+msgid "Override TOS"
+msgstr "重设 TOS"
+
+msgid "Override TTL"
+msgstr "重设 TTL"
 
 msgid "Override default interface name"
-msgstr ""
+msgstr "重设默认接口名称"
 
 msgid "Override the gateway in DHCP responses"
-msgstr "更新网关"
+msgstr "重设 DHCP 响应网关"
 
 msgid ""
 "Override the netmask sent to clients. Normally it is calculated from the "
 "subnet that is served."
-msgstr "更新子网掩码。"
+msgstr "重设发送到客户端的子网掩码。"
 
 msgid "Override the table used for internal routes"
-msgstr "更新内部路由表"
+msgstr "重设内部路由表"
 
 msgid "Overview"
 msgstr "总览"
@@ -2094,10 +2244,10 @@ msgid "Owner"
 msgstr "用户名"
 
 msgid "PAP/CHAP password"
-msgstr "PAP/CHAP密码"
+msgstr "PAP/CHAP 密码"
 
 msgid "PAP/CHAP username"
-msgstr "PAP/CHAP用户名"
+msgstr "PAP/CHAP 用户名"
 
 msgid "PID"
 msgstr "PID"
@@ -2105,11 +2255,14 @@ msgstr "PID"
 msgid "PIN"
 msgstr "PIN"
 
+msgid "PMK R1 Push"
+msgstr "PMK R1 Push"
+
 msgid "PPP"
 msgstr "PPP"
 
 msgid "PPPoA Encapsulation"
-msgstr "PPPoA封包"
+msgstr "PPPoA 封包"
 
 msgid "PPPoATM"
 msgstr "PPPoATM"
@@ -2118,25 +2271,25 @@ msgid "PPPoE"
 msgstr "PPPoE"
 
 msgid "PPPoSSH"
-msgstr ""
+msgstr "PPPoSSH"
 
 msgid "PPtP"
 msgstr "PPtP"
 
 msgid "PSID offset"
-msgstr ""
+msgstr "PSID 偏移"
 
 msgid "PSID-bits length"
-msgstr ""
+msgstr "PSID-bits 长度"
 
 msgid "PTM/EFM (Packet Transfer Mode)"
-msgstr ""
+msgstr "PTM/EFM (分组传输模式)"
 
 msgid "Package libiwinfo required!"
-msgstr "需要libiwinfo软件包!"
+msgstr "需要 libiwinfo 软件包!"
 
 msgid "Package lists are older than 24 hours"
-msgstr "软件包列表已超过24小时未更新"
+msgstr "软件包列表已超过 24 小时未更新"
 
 msgid "Package name"
 msgstr "软件包名称"
@@ -2157,13 +2310,13 @@ msgid "Password of Private Key"
 msgstr "私有密钥"
 
 msgid "Password of inner Private Key"
-msgstr ""
+msgstr "内部私钥的密码"
 
 msgid "Password successfully changed!"
 msgstr "密码修改成功!"
 
 msgid "Path to CA-Certificate"
-msgstr "CA证书路径"
+msgstr "CA 证书路径"
 
 msgid "Path to Client-Certificate"
 msgstr "客户端证书路径"
@@ -2175,28 +2328,34 @@ msgid "Path to executable which handles the button event"
 msgstr "处理按键动作的可执行文件路径"
 
 msgid "Path to inner CA-Certificate"
-msgstr ""
+msgstr "内部CA证书的路径"
 
 msgid "Path to inner Client-Certificate"
-msgstr ""
+msgstr "内部客户端证书的路径"
 
 msgid "Path to inner Private Key"
-msgstr ""
+msgstr "内部私钥的路径"
 
 msgid "Peak:"
 msgstr "峰值:"
 
 msgid "Peer IP address to assign"
-msgstr ""
+msgstr "要分配的 Peer IP 地址"
+
+msgid "Peers"
+msgstr "Peers"
 
 msgid "Perfect Forward Secrecy"
-msgstr ""
+msgstr "完全正向保密"
 
 msgid "Perform reboot"
 msgstr "执行重启"
 
 msgid "Perform reset"
-msgstr "执行复位"
+msgstr "执行重置"
+
+msgid "Persistent Keep Alive"
+msgstr "持续 Keep-Alive"
 
 msgid "Phy Rate:"
 msgstr "物理速率:"
@@ -2220,21 +2379,33 @@ msgid "Port"
 msgstr "端口"
 
 msgid "Port status:"
-msgstr "端口状态"
+msgstr "端口状态:"
 
 msgid "Power Management Mode"
-msgstr ""
+msgstr "电源管理模式"
 
 msgid "Pre-emtive CRC errors (CRCP_P)"
-msgstr ""
+msgstr "抢占式 CRC 错误 (CRCP_P)"
+
+msgid "Prefer LTE"
+msgstr "首选 LTE"
+
+msgid "Prefer UMTS"
+msgstr "首选 UMTS"
+
+msgid "Prefix Delegated"
+msgstr "分发前缀"
+
+msgid "Preshared Key"
+msgstr "预共享密钥"
 
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
-msgstr "在指定数量的LCP响应故障后假定链路已断开,0为忽略故障"
+msgstr "在指定数量的 LCP 响应故障后假定链路已断开,0 为忽略故障"
 
 msgid "Prevent listening on these interfaces."
-msgstr ""
+msgstr "不监听这些接口。"
 
 msgid "Prevents client-to-client communication"
 msgstr "禁止客户端间通信"
@@ -2242,6 +2413,9 @@ msgstr "禁止客户端间通信"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Prism2/2.5/3 802.11b 无线网卡"
 
+msgid "Private Key"
+msgstr "私钥"
+
 msgid "Proceed"
 msgstr "执行"
 
@@ -2249,7 +2423,7 @@ msgid "Processes"
 msgstr "系统进程"
 
 msgid "Profile"
-msgstr ""
+msgstr "配置文件"
 
 msgid "Prot."
 msgstr "协议"
@@ -2273,19 +2447,31 @@ msgid "Provide new network"
 msgstr "添加新网络"
 
 msgid "Pseudo Ad-Hoc (ahdemo)"
-msgstr "伪装Ad-Hoc(ahdemo)"
+msgstr "伪装 Ad-Hoc (ahdemo)"
+
+msgid "Public Key"
+msgstr "公钥"
 
 msgid "Public prefix routed to this device for distribution to clients."
-msgstr ""
+msgstr "分配到此设备的公共前缀,用以分发到客户端。"
+
+msgid "QMI Cellular"
+msgstr "QMI 蜂窝"
 
 msgid "Quality"
 msgstr "质量"
 
+msgid "R0 Key Lifetime"
+msgstr "R0 Key Lifetime"
+
+msgid "R1 Key Holder"
+msgstr "R1 Key Holder"
+
 msgid "RFC3947 NAT-T mode"
-msgstr ""
+msgstr "RFC3947 NAT-T 模式"
 
 msgid "RTS/CTS Threshold"
-msgstr "RTS/CTS阈值"
+msgstr "RTS/CTS 阈值"
 
 msgid "RX"
 msgstr "接收"
@@ -2294,7 +2480,7 @@ msgid "RX Rate"
 msgstr "接收速率"
 
 msgid "RaLink 802.11%s Wireless Controller"
-msgstr "MediaTek/RaLink 802.11%s 无线网卡"
+msgstr "RaLink 802.11%s 无线网卡"
 
 msgid "Radius-Accounting-Port"
 msgstr "Radius 计费端口"
@@ -2318,40 +2504,38 @@ msgid ""
 "Read <code>/etc/ethers</code> to configure the <abbr title=\"Dynamic Host "
 "Configuration Protocol\">DHCP</abbr>-Server"
 msgstr ""
-"根据<code>/etc/ethers</code>来配置<abbr title=\"Dynamic Host Configuration "
-"Protocol\">DHCP</abbr>-服务器"
+"根据 <code>/etc/ethers</code> 来配置 <abbr title=\"动态主机配置协议\">DHCP</"
+"abbr>-服务器"
 
 msgid ""
 "Really delete this interface? The deletion cannot be undone!\\nYou might "
 "lose access to this device if you are connected via this interface."
 msgstr ""
-"确定要删除此接口?删除操作无法撤销!\\\n"
-"删除此接口,可能导致无法再访问路由器!"
+"确定要删除此接口?删除操作无法撤销!\\n删除此接口,可能导致无法再访问路由器!"
 
 msgid ""
 "Really delete this wireless network? The deletion cannot be undone!\\nYou "
 "might lose access to this device if you are connected via this network."
 msgstr ""
-"确定要删除此无线网络?删除操作无法撤销!\\\n"
-"删除此无线网络,可能导致无法再访问路由器!"
+"确定要删除此无线网络?删除操作无法撤销!\\n删除此无线网络,可能导致无法再访问"
+"路由器!"
 
 msgid "Really reset all changes?"
 msgstr "确定要放弃所有更改?"
 
-#, fuzzy
 msgid ""
 "Really shut down network?\\nYou might lose access to this device if you are "
 "connected via this interface."
 msgstr ""
-"确定要关闭此网络?\\\n"
-"å\85³é\97­æ­¤ç½\91ç»\9cï¼\8cå\8f¯è\83½å¯¼è\87´æ\97 æ³\95å\86\8d访é\97®è·¯ç\94±å\99¨!"
+"确定要关闭此网络?\\n如果你正在使用此接口连接路由器,关闭此网络可能导致连接断"
+"å¼\80!"
 
 msgid ""
 "Really shutdown interface \"%s\" ?\\nYou might lose access to this device if "
 "you are connected via this interface."
 msgstr ""
-"确定要关闭接口\"%s\" ?\\\n"
-"删除此网络,可能导致无法再访问路由器!"
+"确定要关闭接口 \"%s\"?\\n如果你正在使用此接口连接路由器,关闭此网络可能导致"
+"连接断开!"
 
 msgid "Really switch protocol?"
 msgstr "确定要切换协议?"
@@ -2371,6 +2555,9 @@ msgstr "实时流量"
 msgid "Realtime Wireless"
 msgstr "实时无线"
 
+msgid "Reassociation Deadline"
+msgstr "重关联截止时间"
+
 msgid "Rebind protection"
 msgstr "重绑定保护"
 
@@ -2389,6 +2576,9 @@ msgstr "接收"
 msgid "Receiver Antenna"
 msgstr "接收天线"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr "推荐,Wire Guard 接口的 IP 地址。"
+
 msgid "Reconnect this interface"
 msgstr "重连此接口"
 
@@ -2398,9 +2588,6 @@ msgstr "重连接口中..."
 msgid "References"
 msgstr "引用"
 
-msgid "Regulatory Domain"
-msgstr "无线网络国家区域"
-
 msgid "Relay"
 msgstr "中继"
 
@@ -2414,7 +2601,10 @@ msgid "Relay bridge"
 msgstr "中继桥"
 
 msgid "Remote IPv4 address"
-msgstr "远程IPv4地址"
+msgstr "远程 IPv4 地址"
+
+msgid "Remote IPv4 address or FQDN"
+msgstr "远程 IPv4 地址或 FQDN"
 
 msgid "Remove"
 msgstr "移除"
@@ -2429,21 +2619,45 @@ msgid "Replace wireless configuration"
 msgstr "重置无线配置"
 
 msgid "Request IPv6-address"
-msgstr "请求IPv6地址"
+msgstr "请求 IPv6 地址"
 
 msgid "Request IPv6-prefix of length"
-msgstr "请求指定长度的IPv6前缀"
+msgstr "请求指定长度的 IPv6 前缀"
 
 msgid "Require TLS"
-msgstr "必须使用TLS"
+msgstr "必须使用 TLS"
+
+msgid "Required"
+msgstr "必须"
 
 msgid "Required for certain ISPs, e.g. Charter with DOCSIS 3"
-msgstr "某些ISP需要,例如:同轴线网络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 "必须,Peer 的 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 ""
+"必须,允许该 Peer 在隧道中使用的 IP 地址和前缀,通常是该 Peer 的隧道 IP 地址"
+"和通过隧道的路由网络。"
+
+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 的完整版本和 WiFi 驱动程序的支持<br />(截至 2017 年 2 月: "
+"ath9k 和 ath10k,或者 LEDE 的 mwlwifi 和 mt76)"
 
 msgid ""
 "Requires upstream supports DNSSEC; verify unsigned domain responses really "
 "come from unsigned domains"
-msgstr ""
+msgstr "需要上级支持 DNSSEC,验证未签名的域响应确实是来自未签名的域。"
 
 msgid "Reset"
 msgstr "复位"
@@ -2455,7 +2669,7 @@ msgid "Reset to defaults"
 msgstr "恢复到出厂设置"
 
 msgid "Resolv and Hosts Files"
-msgstr "HOSTS和解析文件"
+msgstr "HOSTS 和解析文件"
 
 msgid "Resolve file"
 msgstr "解析文件"
@@ -2479,16 +2693,22 @@ msgid "Root"
 msgstr "Root"
 
 msgid "Root directory for files served via TFTP"
-msgstr "TFTP服务器的根目录"
+msgstr "TFTP 服务器的根目录"
 
 msgid "Root preparation"
-msgstr ""
+msgstr "根目录准备"
+
+msgid "Route Allowed IPs"
+msgstr "路由允许的 IP"
+
+msgid "Route type"
+msgstr "路由类型"
 
 msgid "Routed IPv6 prefix for downstream interfaces"
-msgstr ""
+msgstr "下行接口的路由 IPv6 前缀"
 
 msgid "Router Advertisement-Service"
-msgstr ""
+msgstr "路由器广告服务"
 
 msgid "Router Password"
 msgstr "主机密码"
@@ -2508,30 +2728,30 @@ msgid "Run filesystem check"
 msgstr "文件系统检查"
 
 msgid "SHA256"
-msgstr ""
+msgstr "SHA256"
 
 msgid ""
 "SIXXS supports TIC only, for static tunnels using IP protocol 41 (RFC4213) "
 "use 6in4 instead"
-msgstr ""
+msgstr "SIXXS 仅支持 TIC,对于使用 IP 协议 41 (RFC4213) 的静态隧道,使用 6in4"
 
 msgid "SIXXS-handle[/Tunnel-ID]"
-msgstr ""
+msgstr "SIXXS-handle[/Tunnel-ID]"
 
 msgid "SNR"
-msgstr ""
+msgstr "SNR"
 
 msgid "SSH Access"
-msgstr "SSH访问"
+msgstr "SSH 访问"
 
 msgid "SSH server address"
-msgstr "SSH服务器地址"
+msgstr "SSH 服务器地址"
 
 msgid "SSH server port"
-msgstr "SSH服务器端口"
+msgstr "SSH 服务器端口"
 
 msgid "SSH username"
-msgstr "SSH用户名"
+msgstr "SSH 用户名"
 
 msgid "SSH-Keys"
 msgstr "SSH-密钥"
@@ -2561,19 +2781,16 @@ msgid "Section removed"
 msgstr "移除的区域"
 
 msgid "See \"mount\" manpage for details"
-msgstr "详参\"mount\"联机帮助"
+msgstr "详参 \"mount\" 联机帮助"
 
 msgid ""
 "Send LCP echo requests at the given interval in seconds, only effective in "
 "conjunction with failure threshold"
-msgstr "定时发送LCP响应(秒),仅在结合了故障阈值时有效"
+msgstr "定时发送 LCP 响应 (秒),仅在结合了故障阈值时有效"
 
 msgid "Separate Clients"
 msgstr "隔离客户端"
 
-msgid "Separate WDS"
-msgstr "隔离WDS"
-
 msgid "Server Settings"
 msgstr "服务器设置"
 
@@ -2583,7 +2800,7 @@ msgstr "服务器密码"
 msgid ""
 "Server password, enter the specific password of the tunnel when the username "
 "contains the tunnel ID"
-msgstr "服务器密码,如果用户名包含隧道ID则在此填写独立的密码"
+msgstr "服务器密码,如果用户名包含隧道 ID 则在此填写独立的密码"
 
 msgid "Server username"
 msgstr "服务器用户名"
@@ -2597,18 +2814,24 @@ msgstr "服务类型"
 msgid "Services"
 msgstr "服务"
 
-#, fuzzy
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+"无论链路载荷如何都设置接口属性 (如果设置,载荷侦听事件不调用 Hotplug 处理程"
+"序)。"
+
 msgid "Set up Time Synchronization"
 msgstr "设置时间同步"
 
 msgid "Setup DHCP Server"
-msgstr "配置DHCP服务器"
+msgstr "配置 DHCP 服务器"
 
 msgid "Severely Errored Seconds (SES)"
-msgstr ""
+msgstr "严重误码秒 (SES)"
 
 msgid "Short GI"
-msgstr ""
+msgstr "Short GI"
 
 msgid "Show current backup file list"
 msgstr "显示当前文件备份列表"
@@ -2623,7 +2846,7 @@ msgid "Signal"
 msgstr "信号"
 
 msgid "Signal Attenuation (SATN)"
-msgstr ""
+msgstr "信号衰减 (SATN)"
 
 msgid "Signal:"
 msgstr "信号:"
@@ -2632,7 +2855,7 @@ msgid "Size"
 msgstr "大小"
 
 msgid "Size (.ipk)"
-msgstr ""
+msgstr "大小 (.ipk)"
 
 msgid "Skip"
 msgstr "跳过"
@@ -2650,7 +2873,7 @@ msgid "Software"
 msgstr "软件包"
 
 msgid "Software VLAN"
-msgstr ""
+msgstr "软件 VLAN"
 
 msgid "Some fields are invalid, cannot save values!"
 msgstr "一些项目的值无效,无法保存!"
@@ -2663,11 +2886,11 @@ msgstr "对不起,服务器遇到未知错误。"
 
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
-"抱歉,您的设备暂不支持sysupgrade升级,需手动更新固件。请参考OpenWrt Wiki中关"
-"于此设备的固件更新说明。"
+"抱歉,您的设备暂不支持 Sysupgrade 升级,需手动更新固件。请参考 Wiki 中关于此"
+"设备的固件更新说明。"
 
 msgid "Sort"
 msgstr "排序"
@@ -2685,17 +2908,30 @@ msgid "Specifies the directory the device is attached to"
 msgstr "指定设备的挂载目录"
 
 msgid "Specifies the listening port of this <em>Dropbear</em> instance"
-msgstr "指定<em>Dropbear</em>的监听端口"
+msgstr "指定 <em>Dropbear</em> 的监听端口"
 
 msgid ""
 "Specifies the maximum amount of failed ARP requests until hosts are presumed "
 "to be dead"
-msgstr "指定假设主机已丢失的最大失败ARP请求数"
+msgstr "指定假设主机已丢失的最大失败 ARP 请求数"
 
 msgid ""
 "Specifies the maximum amount of seconds after which hosts are presumed to be "
 "dead"
-msgstr "指定假设主机已丢失的最大时间(秒)"
+msgstr "指定假设主机已丢失的最大时间 (秒)"
+
+msgid "Specify a TOS (Type of Service)."
+msgstr "指定 TOS (服务类型)。"
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr "为封装数据包设置 TTL (生存时间),缺省值: 64"
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr "设置 MTU (最大传输单位),缺省值: 1280 bytes"
 
 msgid "Specify the secret encryption key here."
 msgstr "在此指定密钥。"
@@ -2711,10 +2947,10 @@ msgid "Startup"
 msgstr "启动项"
 
 msgid "Static IPv4 Routes"
-msgstr "静态IPv4路由"
+msgstr "静态 IPv4 路由"
 
 msgid "Static IPv6 Routes"
-msgstr "静态IPv6路由"
+msgstr "静态 IPv6 路由"
 
 msgid "Static Leases"
 msgstr "静态地址分配"
@@ -2722,9 +2958,6 @@ msgstr "静态地址分配"
 msgid "Static Routes"
 msgstr "静态路由"
 
-msgid "Static WDS"
-msgstr "静态WDS"
-
 msgid "Static address"
 msgstr "静态地址"
 
@@ -2733,8 +2966,8 @@ msgid ""
 "to DHCP clients. They are also required for non-dynamic interface "
 "configurations where only hosts with a corresponding lease are served."
 msgstr ""
-"静态租约用于给DHCP客户端分配固定的IP地址和主机标识。只有指定的主机才能连接,"
-"并且接口须为非动态配置。"
+"静态租约用于给 DHCP 客户端分配固定的 IP 地址和主机标识。只有指定的主机才能连"
+"接,并且接口须为非动态配置。"
 
 msgid "Status"
 msgstr "状态"
@@ -2749,10 +2982,10 @@ msgid "Submit"
 msgstr "提交"
 
 msgid "Suppress logging"
-msgstr ""
+msgstr "不记录日志"
 
 msgid "Suppress logging of the routine operation of these protocols"
-msgstr ""
+msgstr "不记录这些协议的常规操作日志。"
 
 msgid "Swap"
 msgstr "交换区"
@@ -2767,17 +3000,17 @@ msgid "Switch %q"
 msgstr "交换机 %q"
 
 msgid "Switch %q (%s)"
-msgstr "交换机%q (%s)"
+msgstr "交换机 %q (%s)"
 
 msgid ""
 "Switch %q has an unknown topology - the VLAN settings might not be accurate."
-msgstr ""
+msgstr "交换机 %q 具有未知的拓扑结构 - VLAN 设置可能不正确。"
 
 msgid "Switch VLAN"
-msgstr ""
+msgstr "交换机 VLAN"
 
 msgid "Switch protocol"
-msgstr "切换协议"
+msgstr "交换机协议"
 
 msgid "Sync with browser"
 msgstr "同步浏览器时间"
@@ -2819,12 +3052,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 "
@@ -2832,54 +3064,58 @@ msgid ""
 "multi-SSID capable). Per network settings like encryption or operation mode "
 "are grouped in the <em>Interface Configuration</em>."
 msgstr ""
-"<em>设备配置</em>区域可配置无线的硬件参数,比如信道、发射功率或发射天线(如果"
-"此无线模块硬件支持多SSID,则全部SSID共用此设备配置)。<em>接口配置</em>区域则"
+"<em>设备配置</em>区域可配置无线的硬件参数,比如信道、发射功率或发射天线 (如果"
+"此无线模块硬件支持多 SSID,则全部SSID共用此设备配置)。<em>接口配置</em>区域则"
 "可配置此网络的工作模式和加密等。"
 
 msgid ""
 "The <em>libiwinfo-lua</em> package is not installed. You must install this "
 "component for working wireless configuration!"
-msgstr "软件包<em>libiwinfo-lua</em>未安装。必需安装此组件以配置无线!"
+msgstr "软件包 <em>libiwinfo-lua</em> 未安装。必需安装此组件以配置无线!"
 
 msgid ""
 "The HE.net endpoint update configuration changed, you must now use the plain "
 "username instead of the user ID!"
-msgstr "HE.net客户端更新设置已经被改变,您现在必须使用用户名代替用户ID/"
+msgstr "HE.net 客户端更新设置已经被改变,您现在必须使用用户名代替用户 ID!"
+
+msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr "远程隧道端的 IPv4 地址或完整域名。"
 
 msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
-msgstr "运营商特定的IPv6前缀,通常以<code>::</code>为结尾"
+msgstr "运营商特定的 IPv6 前缀,通常以 <code>::</code> 为结尾"
 
 msgid ""
 "The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</"
 "code> and <code>_</code>"
 msgstr ""
-"合法字符<code>A-Z</code>, <code>a-z</code>, <code>0-9</code> 和 <code>_</"
+"合法字符<code>A-Z</code>, <code>a-z</code>, <code>0-9</code> 和 <code>_</"
 "code>"
 
 msgid "The configuration file could not be loaded due to the following error:"
-msgstr "由于以下错误,配置文件无法被加载"
+msgstr "由于以下错误,配置文件无法被加载:"
 
 msgid ""
 "The device file of the memory or partition (<abbr title=\"for example\">e.g."
 "</abbr> <code>/dev/sda1</code>)"
-msgstr ""
-"存储器或分区的设备节点,(<abbr title=\"for example\">例如</abbr> <code>/dev/"
-"sda1</code>)"
+msgstr "存储器或分区的设备节点,(例如: <code>/dev/sda1</code>)"
 
 msgid ""
 "The filesystem that was used to format the memory (<abbr title=\"for example"
 "\">e.g.</abbr> <samp><abbr title=\"Third Extended Filesystem\">ext3</abbr></"
 "samp>)"
 msgstr ""
-"用于格式化存储器的文件系统,(<abbr title=\"for example\">例如</abbr> "
-"<samp><abbr title=\"Third Extended Filesystem\">ext4</abbr></samp>)"
+"用于格式化存储器的文件系统,(例如: <samp><abbr title=\"第三代扩展文件系统"
+"\">ext3</abbr></samp>)"
 
 msgid ""
 "The flash image was uploaded. Below is the checksum and file size listed, "
 "compare them with the original file to ensure data integrity.<br /> Click "
 "\"Proceed\" below to start the flash procedure."
-msgstr "固件已上传,请注意核对文件大小和校验值!<br />刷新过程切勿断电!"
+msgstr ""
+"固件已上传,请注意核对文件大小和校验值!<br />点击下面的“继续”开始刷写,刷新"
+"过程中切勿断电!"
 
 msgid "The following changes have been committed"
 msgstr "以下更改已提交"
@@ -2893,19 +3129,21 @@ 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 "本机的硬件不支持多SSID,继续进行将会覆盖现有配置。"
+msgstr "本机的硬件不支持多 SSID,如果继续,现有配置将被替换。"
 
 msgid ""
 "The length of the IPv4 prefix in bits, the remainder is used in the IPv6 "
 "addresses."
-msgstr "bit格式的IPv4前缀长度, 其余的用在IPv6地址."
+msgstr "IPv4 前缀长度 (bit),其余的用在 IPv6 地址。"
 
 msgid "The length of the IPv6 prefix in bits"
-msgstr "bit格式的IPv6前缀长度"
+msgstr "IPv6 前缀长度 (bit)"
+
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr "所创建隧道的本地 IPv4 地址 (可选)。"
 
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
@@ -2915,16 +3153,15 @@ msgid ""
 "segments. Often there is by default one Uplink port for a connection to the "
 "next greater network like the internet and other ports for a local network."
 msgstr ""
-"本设备可以划分为多个<abbr title=\"Virtual Local Area Network\">VLAN</abbr>,"
-"并支持电脑间的直接通讯。<abbr title=\"Virtual Local Area Network\">VLAN</"
-"abbr>也常用于分割不同网段。默认通常是一条上行端口连接ISP,其余端口为本地子"
-"网。"
+"本设备可以划分为多个 <abbr title=\"虚拟局域网\">VLAN</abbr>,并支持电脑间的直"
+"接通讯。<abbr title=\"虚拟局域网\">VLAN</abbr> 也常用于分割不同网段。默认通常"
+"是一条上行端口连接 ISP,其余端口为本地子网。"
 
 msgid "The selected protocol needs a device assigned"
 msgstr "所选的协议需要分配设备"
 
 msgid "The submitted security token is invalid or already expired!"
-msgstr ""
+msgstr "提交的安全令牌无效或已过期!"
 
 msgid ""
 "The system is erasing the configuration partition now and will reboot itself "
@@ -2938,12 +3175,12 @@ msgid ""
 "settings."
 msgstr ""
 "正在刷新系统...<br />切勿关闭电源! DO NOT POWER OFF THE DEVICE!<br />等待数分"
-"钟后即可尝试重新连接到路由。您可能需要更改计算机的IP地址以重新连接。"
+"钟后即可尝试重新连接到路由。您可能需要更改计算机的 IP 地址以重新连接。"
 
 msgid ""
 "The tunnel end-point is behind NAT, defaults to disabled and only applies to "
 "AYIYA"
-msgstr ""
+msgstr "隧道端点在 NAT 之后,默认为禁用,仅适用于 AYIYA"
 
 msgid ""
 "The uploaded image file does not contain a supported format. Make sure that "
@@ -2965,65 +3202,65 @@ msgstr "没有待生效的更改!"
 msgid ""
 "There is no device assigned yet, please attach a network device in the "
 "\"Physical Settings\" tab"
-msgstr "尚未分配设备,请在\"物理设置\"选项卡中选择网络设备"
+msgstr "尚未分配设备,请在“物理设置”选项卡中选择网络设备"
 
 msgid ""
 "There is no password set on this router. Please configure a root password to "
 "protect the web interface and enable SSH."
-msgstr "尚未设置密码。请为root用户设置密码以保护主机并开启SSH。"
+msgstr "尚未设置密码。请为 Root 用户设置密码以保护主机并开启 SSH。"
 
 msgid "This IPv4 address of the relay"
-msgstr "中继的IPv4地址"
+msgstr "中继的 IPv4 地址"
 
 msgid ""
 "This file may contain lines like 'server=/domain/1.2.3.4' or "
 "'server=1.2.3.4' fordomain-specific or full upstream <abbr title=\"Domain "
 "Name System\">DNS</abbr> servers."
 msgstr ""
+"此文件包含类似于 'server=/domain/1.2.3.4' 或 'server=1.2.3.4' 的行,用于解析"
+"特定域名或指定上游 <abbr title=\"域名服务系统\">DNS</abbr> 服务器。"
 
 msgid ""
 "This is a list of shell glob patterns for matching files and directories to "
 "include during sysupgrade. Modified files in /etc/config/ and certain other "
 "configurations are automatically preserved."
 msgstr ""
-"系统升级时要保存的配置文件和目录的清单。目录/etc/config/内修改过的文件以及部"
-"分其他配置会被自动保存。"
+"系统升级时要保存的配置文件和目录的清单。目录 /etc/config/ 内修改过的文件以及"
+"分其他配置会被自动保存。"
 
 msgid ""
 "This is either the \"Update Key\" configured for the tunnel or the account "
 "password if no update key has been configured"
-msgstr "如果更新密钥没有设置的话,隧道的\"更新密钥\"或者账户密码必须填写."
+msgstr "如果更新密钥没有设置的话,隧道的“更新密钥”或者账户密码必须填写。"
 
 msgid ""
 "This is the content of /etc/rc.local. Insert your own commands here (in "
 "front of 'exit 0') to execute them at the end of the boot process."
-msgstr "启动脚本插入到'exit 0'之前即可随系统启动运行。"
+msgstr "启动脚本插入到 'exit 0' 之前即可随系统启动运行。"
 
 msgid ""
 "This is the local endpoint address assigned by the tunnel broker, it usually "
 "ends with <code>:2</code>"
-msgstr "隧道代理分配的本地终端地址,通常以<code>:2</code>结尾"
+msgstr "隧道代理分配的本地终端地址,通常以 <code>:2</code> 结尾"
 
 msgid ""
 "This is the only <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
 "abbr> in the local network"
-msgstr ""
-"这是内网中唯一的<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
-"abbr>服务器"
+msgstr "这是内网中唯一的 <abbr title=\"动态主机配置协议\">DHCP</abbr> 服务器"
 
 msgid "This is the plain username for logging into the account"
 msgstr "登录账户时填写的用户名"
 
 msgid ""
 "This is the prefix routed to you by the tunnel broker for use by clients"
-msgstr ""
+msgstr "这是隧道代理分配给你的路由前缀,供客户端使用"
 
 msgid "This is the system crontab in which scheduled tasks can be defined."
-msgstr "自定义系统crontab中的计划任务。"
+msgstr "自定义系统 Crontab 中的计划任务。"
 
 msgid ""
 "This is usually the address of the nearest PoP operated by the tunnel broker"
-msgstr "这通常是隧道代理所管理的最近的PoP的地址"
+msgstr "这通常是隧道代理所管理的最近的 PoP 的地址"
 
 msgid ""
 "This list gives an overview over currently running system processes and "
@@ -3054,13 +3291,13 @@ msgid ""
 msgstr "上传备份存档以恢复配置。"
 
 msgid "Tone"
-msgstr ""
+msgstr "Tone"
 
 msgid "Total Available"
 msgstr "可用数"
 
 msgid "Traceroute"
-msgstr "Traceroute"
+msgstr "路由追踪"
 
 msgid "Traffic"
 msgstr "流量"
@@ -3087,7 +3324,7 @@ msgid "Trigger Mode"
 msgstr "触发模式"
 
 msgid "Tunnel ID"
-msgstr "隧道ID"
+msgstr "隧道 ID"
 
 msgid "Tunnel Interface"
 msgstr "隧道接口"
@@ -3104,9 +3341,6 @@ msgstr "隧道配置服务器"
 msgid "Tunnel type"
 msgstr "隧道类型"
 
-msgid "Turbo Mode"
-msgstr "Turbo模式"
-
 msgid "Tx-Power"
 msgstr "传输功率"
 
@@ -3117,13 +3351,16 @@ msgid "UDP:"
 msgstr "UDP:"
 
 msgid "UMTS only"
-msgstr "仅UMTS(WCDMA)"
+msgstr "仅 UMTS (WCDMA)"
 
 msgid "UMTS/GPRS/EV-DO"
 msgstr "UMTS/GPRS/EV-DO"
 
 msgid "USB Device"
-msgstr "USB设备"
+msgstr "USB 设备"
+
+msgid "USB Ports"
+msgstr "USB 接口"
 
 msgid "UUID"
 msgstr "UUID"
@@ -3132,7 +3369,7 @@ msgid "Unable to dispatch"
 msgstr "无法调度"
 
 msgid "Unavailable Seconds (UAS)"
-msgstr ""
+msgstr "不可用秒数 (UAS)"
 
 msgid "Unknown"
 msgstr "未知"
@@ -3157,9 +3394,9 @@ msgstr "刷新列表"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
-msgstr "上传兼容的sysupgrade固件以刷新当前系统。"
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
+msgstr "上传兼容的 Sysupgrade 固件以刷新当前系统。"
 
 msgid "Upload archive..."
 msgstr "上传备份..."
@@ -3171,37 +3408,37 @@ msgid "Uptime"
 msgstr "运行时间"
 
 msgid "Use <code>/etc/ethers</code>"
-msgstr "使用<code>/etc/ethers</code>配置"
+msgstr "使用 <code>/etc/ethers</code> 配置"
 
 msgid "Use DHCP gateway"
-msgstr "使用DHCP网关"
+msgstr "使用 DHCP 网关"
 
 msgid "Use DNS servers advertised by peer"
 msgstr "使用端局通告的DNS服务器"
 
 msgid "Use ISO/IEC 3166 alpha2 country codes."
-msgstr "参考ISO/IEC 3166 alpha2国家代码。"
+msgstr "参考 ISO/IEC 3166 alpha2 国家代码。"
 
 msgid "Use MTU on tunnel interface"
-msgstr "隧道接口的MTU"
+msgstr "隧道接口的 MTU"
 
 msgid "Use TTL on tunnel interface"
-msgstr "隧道接口的TTL"
+msgstr "隧道接口的 TTL"
 
 msgid "Use as external overlay (/overlay)"
-msgstr "作为外部overlay使用(/overlay)"
+msgstr "作为外部 Overlay 使用 (/overlay)"
 
 msgid "Use as root filesystem (/)"
-msgstr "作为跟文件系统使用(/)"
+msgstr "作为根文件系统使用 (/)"
 
 msgid "Use broadcast flag"
 msgstr "使用广播标签"
 
 msgid "Use builtin IPv6-management"
-msgstr ""
+msgstr "使用内置的 IPv6 管理"
 
 msgid "Use custom DNS servers"
-msgstr "使用自定义的DNS服务器"
+msgstr "使用自定义的 DNS 服务器"
 
 msgid "Use default gateway"
 msgstr "使用默认网关"
@@ -3228,11 +3465,18 @@ 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 ""
+"用于两种不同的用途: RADIUS NAS ID 和 802.11r R0KH-ID。普通 WPA(2)-PSK 不需"
+"要。"
+
 msgid "User certificate (PEM encoded)"
-msgstr "客户证书(PEM加密的)"
+msgstr "客户证书 (PEM加密的)"
 
 msgid "User key (PEM encoded)"
-msgstr "客户Key(PEM加密的)"
+msgstr "客户 Key (PEM加密的)"
 
 msgid "Username"
 msgstr "用户名"
@@ -3241,43 +3485,43 @@ msgid "VC-Mux"
 msgstr "VC-Mux"
 
 msgid "VDSL"
-msgstr ""
+msgstr "VDSL"
 
 msgid "VLANs on %q"
-msgstr "%q上的VLAN"
+msgstr "%q 上的 VLAN"
 
 msgid "VLANs on %q (%s)"
-msgstr "%q (%s)上的VLAN"
+msgstr "%q (%s) 上的 VLAN"
 
 msgid "VPN Local address"
-msgstr ""
+msgstr "VPN 本地地址"
 
 msgid "VPN Local port"
-msgstr ""
+msgstr "VPN 本地端口"
 
 msgid "VPN Server"
-msgstr "VPN服务器"
+msgstr "VPN 服务器"
 
 msgid "VPN Server port"
-msgstr "VPN服务器端口"
+msgstr "VPN 服务器端口"
 
 msgid "VPN Server's certificate SHA1 hash"
-msgstr "VPN服务器证书的SHA1哈希值"
+msgstr "VPN 服务器证书的 SHA1 哈希值"
 
 msgid "VPNC (CISCO 3000 (and others) VPN)"
-msgstr ""
+msgstr "VPNC (CISCO 3000 和其他 VPN)"
 
 msgid "Vendor"
-msgstr ""
+msgstr "Vendor"
 
 msgid "Vendor Class to send when requesting DHCP"
-msgstr "请求DHCP时发送的Vendor Class"
+msgstr "请求 DHCP 时发送的 Vendor Class"
 
 msgid "Verbose"
-msgstr ""
+msgstr "详细"
 
 msgid "Verbose logging by aiccu daemon"
-msgstr ""
+msgstr "Aiccu 守护程序详细日志"
 
 msgid "Verify"
 msgstr "验证"
@@ -3289,30 +3533,30 @@ msgid "WDS"
 msgstr "WDS"
 
 msgid "WEP Open System"
-msgstr "WEP开放认证"
+msgstr "WEP 开放认证"
 
 msgid "WEP Shared Key"
-msgstr "WEP共享密钥"
+msgstr "WEP 共享密钥"
 
 msgid "WEP passphrase"
-msgstr "WEP密钥"
+msgstr "WEP 密钥"
 
 msgid "WMM Mode"
-msgstr "WMM多媒体加速"
+msgstr "WMM 多媒体加速"
 
 msgid "WPA passphrase"
-msgstr "WPA密钥"
+msgstr "WPA 密钥"
 
 msgid ""
 "WPA-Encryption requires wpa_supplicant (for client mode) or hostapd (for AP "
 "and ad-hoc mode) to be installed."
 msgstr ""
-"WPA加密需要安装wpa_supplicant(客户端模式)或安装hostapd(接入点AP、点对点ad-hoc"
-"模式)。"
+"WPA 加密需要安装 wpa_supplicant (客户端模式) 或安装 hostapd (接入点 AP、点对"
+"点 Ad-Hoc 模式)。"
 
 msgid ""
 "Wait for NTP sync that many seconds, seting to 0 disables waiting (optional)"
-msgstr "在NTP同步之前等待时间.设置为0表示同步之前不等待(可选)"
+msgstr "在 NTP 同步之前等待时间,设置为 0 表示同步之前不等待 (可选)"
 
 msgid "Waiting for changes to be applied..."
 msgstr "正在应用更改..."
@@ -3327,17 +3571,20 @@ msgid "Warning"
 msgstr "警告"
 
 msgid "Warning: There are unsaved changes that will get lost on reboot!"
-msgstr "警告有一些未保存的配置将在重启后丢失!"
+msgstr "警告有一些未保存的配置将在重启后丢失!"
 
 msgid "Whether to create an IPv6 default route over the tunnel"
-msgstr ""
+msgstr "是否通过隧道创建 IPv6 缺省路由"
 
 msgid "Whether to route only packets from delegated prefixes"
-msgstr ""
+msgstr "是否仅路由来自分发前缀的数据包"
 
 msgid "Width"
 msgstr "频宽"
 
+msgid "WireGuard VPN"
+msgstr "WireGuard VPN"
+
 msgid "Wireless"
 msgstr "无线"
 
@@ -3372,33 +3619,30 @@ msgid "Wireless shut down"
 msgstr "无线已关闭"
 
 msgid "Write received DNS requests to syslog"
-msgstr "将收到的DNS请求写入系统日志"
+msgstr "将收到的 DNS 请求写入系统日志"
 
 msgid "Write system log to file"
-msgstr ""
-
-msgid "XR Support"
-msgstr "XR支持"
+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 "
 "scripts like \"network\", your device might become inaccessible!</strong>"
 msgstr ""
-"启用或禁用已安装的启动脚本。更改在设备重启后生效。<br /><strong>警告如果禁"
-"用了必要的启动脚本,比如\"network\",可能会导致设备无法访问!</strong>"
+"启用或禁用已安装的启动脚本。更改在设备重启后生效。<br /><strong>警告如果禁"
+"用了必要的启动脚本,比如 \"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 "
 "upgrade it to at least version 7 or use another browser like Firefox, Opera "
 "or Safari."
 msgstr ""
-"你的Internet Explorer已经老到无法正常显示这个页面了!请至少更新到IE7或者使用诸"
-"如Firefox Opera Safari之类的浏览器."
+"你的 Internet Explorer 已经老到无法正常显示这个页面了!请更新到 IE7 及以上或"
+"者使用诸如 Firefox Opera Safari 之类的浏览器。"
 
 msgid "any"
 msgstr "任意"
@@ -3439,8 +3683,7 @@ msgstr "过期时间"
 msgid ""
 "file where given <abbr title=\"Dynamic Host Configuration Protocol\">DHCP</"
 "abbr>-leases will be stored"
-msgstr ""
-"存放<abbr title=\"Dynamic Host Configuration Protocol\">DHCP</abbr>租约的文件"
+msgstr "存放 <abbr title=\"动态主机配置协议\">DHCP</abbr> 租约的文件"
 
 msgid "forward"
 msgstr "转发"
@@ -3476,16 +3719,19 @@ msgid "kbit/s"
 msgstr "kbit/s"
 
 msgid "local <abbr title=\"Domain Name System\">DNS</abbr> file"
-msgstr "本地<abbr title=\"Domain Name System\">DNS</abbr>解析文件"
+msgstr "本地 <abbr title=\"域名服务系统\">DNS</abbr> 解析文件"
 
 msgid "minimum 1280, maximum 1480"
-msgstr "最小值1280,最大值1480"
+msgstr "最小值 1280,最大值 1480"
+
+msgid "minutes"
+msgstr "分钟"
 
 msgid "navigation Navigation"
-msgstr ""
+msgstr "导航"
 
 msgid "no"
-msgstr "no"
+msgstr ""
 
 msgid "no link"
 msgstr "未连接"
@@ -3494,7 +3740,7 @@ msgid "none"
 msgstr "无"
 
 msgid "not present"
-msgstr ""
+msgstr "不存在"
 
 msgid "off"
 msgstr "关"
@@ -3506,7 +3752,7 @@ msgid "open"
 msgstr "开放式"
 
 msgid "overlay"
-msgstr ""
+msgstr "覆盖"
 
 msgid "relay mode"
 msgstr "中继模式"
@@ -3518,23 +3764,26 @@ msgid "server mode"
 msgstr "服务器模式"
 
 msgid "skiplink1 Skip to navigation"
-msgstr ""
+msgstr "skiplink1 跳转到导航"
 
 msgid "skiplink2 Skip to content"
-msgstr ""
+msgstr "skiplink2 跳到内容"
 
 msgid "stateful-only"
-msgstr ""
+msgstr "有状态的"
 
 msgid "stateless"
-msgstr ""
+msgstr "无状态的"
 
 msgid "stateless + stateful"
-msgstr ""
+msgstr "有状态和无状态的"
 
 msgid "tagged"
 msgstr "关联"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr "时间单位 (TUs / 1.024ms) [1000-65535]"
+
 msgid "unknown"
 msgstr "未知"
 
@@ -3545,7 +3794,7 @@ msgid "unspecified"
 msgstr "未指定"
 
 msgid "unspecified -or- create:"
-msgstr "未指定 // 创建:"
+msgstr "未指定创建:"
 
 msgid "untagged"
 msgstr "不关联"
@@ -3556,11 +3805,65 @@ 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 "如果选中此复选框,则会创建一个附加网络。"
+
 #~ msgid "An additional network will be created if you leave this unchecked."
 #~ msgstr "取消选中将会另外创建一个新网络,而不会覆盖当前网络设置"
 
 #~ msgid "Join Network: Settings"
-#~ msgstr "加入网络:设置"
+#~ msgstr "加入网络设置"
 
 #~ msgid "CPU"
 #~ msgstr "CPU"
index 2845c99..ef7d75a 100644 (file)
@@ -41,18 +41,45 @@ msgstr ""
 msgid "-- match by label --"
 msgstr ""
 
+msgid "-- match by uuid --"
+msgstr ""
+
 msgid "1 Minute Load:"
 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>"
 
@@ -138,9 +165,6 @@ msgstr ""
 msgid "APN"
 msgstr "APN"
 
-msgid "AR Support"
-msgstr "AR支援"
-
 msgid "ARP retry threshold"
 msgstr "ARP重試門檻"
 
@@ -272,6 +296,9 @@ msgid ""
 "Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services"
 msgstr "允許127.0.0.0/8範圍內的上游回應,例如:RBL服務"
 
+msgid "Allowed IPs"
+msgstr ""
+
 msgid ""
 "Also see <a href=\"https://www.sixxs.net/faq/connectivity/?faq=comparison"
 "\">Tunneling Comparison</a> on SIXXS"
@@ -280,9 +307,6 @@ msgstr ""
 msgid "Always announce default router"
 msgstr ""
 
-msgid "An additional network will be created if you leave this checked."
-msgstr ""
-
 msgid "Annex"
 msgstr ""
 
@@ -378,9 +402,6 @@ msgstr ""
 msgid "Associated Stations"
 msgstr "已連接站點"
 
-msgid "Atheros 802.11%s Wireless Controller"
-msgstr "Atheros 802.11%s 無線控制器"
-
 msgid "Auth Group"
 msgstr ""
 
@@ -390,6 +411,9 @@ msgstr ""
 msgid "Authentication"
 msgstr "認證"
 
+msgid "Authentication Type"
+msgstr ""
+
 msgid "Authoritative"
 msgstr "授權"
 
@@ -456,9 +480,6 @@ msgstr "返回至總覽"
 msgid "Back to scan results"
 msgstr "返回至掃描結果"
 
-msgid "Background Scan"
-msgstr "背景搜尋"
-
 msgid "Backup / Flash Firmware"
 msgstr "備份/升級韌體"
 
@@ -485,9 +506,15 @@ msgstr ""
 "下面是待備份的檔案清單。包含了更改的設定檔案、必要的基本檔案和使用者自訂的備"
 "份檔案"
 
+msgid "Bind interface"
+msgstr ""
+
 msgid "Bind only to specific interfaces rather than wildcard address."
 msgstr ""
 
+msgid "Bind the tunnel to this interface (optional)."
+msgstr ""
+
 msgid "Bitrate"
 msgstr "傳輸速率"
 
@@ -556,6 +583,9 @@ msgstr "檢查"
 msgid "Check fileystems before mount"
 msgstr ""
 
+msgid "Check this option to delete the existing networks from this radio."
+msgstr ""
+
 msgid "Checksum"
 msgstr "效驗碼"
 
@@ -612,9 +642,6 @@ msgstr "指令"
 msgid "Common Configuration"
 msgstr "一般設定"
 
-msgid "Compression"
-msgstr "壓縮"
-
 msgid "Configuration"
 msgstr "設定"
 
@@ -833,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網路的回應"
 
@@ -876,15 +903,15 @@ msgstr "對不被公用名稱伺服器回應的請求不轉發"
 msgid "Do not forward reverse lookups for local networks"
 msgstr "對本地網域不轉發反解析鎖定"
 
-msgid "Do not send probe responses"
-msgstr "不傳送探測回應"
-
 msgid "Domain required"
 msgstr "網域必要的"
 
 msgid "Domain whitelist"
 msgstr "網域白名單"
 
+msgid "Don't Fragment"
+msgstr ""
+
 msgid ""
 "Don't forward <abbr title=\"Domain Name System\">DNS</abbr>-Requests without "
 "<abbr title=\"Domain Name System\">DNS</abbr>-Name"
@@ -954,6 +981,9 @@ msgstr "啟用 <abbr title=\"Spanning Tree Protocol\">STP</abbr>"
 msgid "Enable HE.net dynamic endpoint update"
 msgstr "啟用HE.net服務代管動態更新"
 
+msgid "Enable IPv6 negotiation"
+msgstr ""
+
 msgid "Enable IPv6 negotiation on the PPP link"
 msgstr "啟用PPP連結上的IPv6交涉"
 
@@ -984,6 +1014,9 @@ msgstr ""
 msgid "Enable mirroring of outgoing packets"
 msgstr ""
 
+msgid "Enable the DF (Don't Fragment) flag of the encapsulating packets."
+msgstr ""
+
 msgid "Enable this mount"
 msgstr "啟用掛載點"
 
@@ -996,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協定"
 
@@ -1005,6 +1043,12 @@ msgstr "封裝模式"
 msgid "Encryption"
 msgstr "加密"
 
+msgid "Endpoint Host"
+msgstr ""
+
+msgid "Endpoint Port"
+msgstr ""
+
 msgid "Erasing..."
 msgstr "刪除中..."
 
@@ -1037,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 "外部系統日誌伺服器"
 
@@ -1049,9 +1099,6 @@ msgstr ""
 msgid "Extra SSH command options"
 msgstr ""
 
-msgid "Fast Frames"
-msgstr "快速迅框群"
-
 msgid "File"
 msgstr "檔案"
 
@@ -1087,6 +1134,9 @@ msgstr "完成"
 msgid "Firewall"
 msgstr "防火牆"
 
+msgid "Firewall Mark"
+msgstr ""
+
 msgid "Firewall Settings"
 msgstr "防火牆設定"
 
@@ -1132,6 +1182,9 @@ msgstr "強制TKIP加密"
 msgid "Force TKIP and CCMP (AES)"
 msgstr "強制TKIP+CCMP (AES)加密"
 
+msgid "Force link"
+msgstr ""
+
 msgid "Force use of NAT-T"
 msgstr ""
 
@@ -1162,6 +1215,11 @@ msgstr "空閒"
 msgid "Free space"
 msgstr "剩餘空間"
 
+msgid ""
+"Further information about WireGuard interfaces and peers at <a href=\"http://"
+"wireguard.io\">wireguard.io</a>."
+msgstr ""
+
 msgid "GHz"
 msgstr "GHz"
 
@@ -1219,6 +1277,9 @@ msgstr " HE.net密碼"
 msgid "HE.net username"
 msgstr ""
 
+msgid "HT mode (802.11n)"
+msgstr ""
+
 msgid "Handler"
 msgstr "多執行緒"
 
@@ -1274,6 +1335,9 @@ msgstr ""
 msgid "IKE DH Group"
 msgstr ""
 
+msgid "IP Addresses"
+msgstr ""
+
 msgid "IP address"
 msgstr "IP位址"
 
@@ -1316,6 +1380,9 @@ msgstr "IPv4前綴長度"
 msgid "IPv4-Address"
 msgstr "IPv4-位址"
 
+msgid "IPv4-in-IPv4 (RFC2003)"
+msgstr ""
+
 msgid "IPv6"
 msgstr "IPv6版"
 
@@ -1364,6 +1431,9 @@ msgstr ""
 msgid "IPv6-Address"
 msgstr "IPv6-位址"
 
+msgid "IPv6-PD"
+msgstr ""
+
 msgid "IPv6-in-IPv4 (RFC4213)"
 msgstr "IPv6包覆在IPv4內(RFC4213)"
 
@@ -1507,13 +1577,16 @@ msgstr "打入的是不正確的VLAN ID!僅有獨一無二的IDs被允許"
 msgid "Invalid username and/or password! Please try again."
 msgstr "不正確的用戶名稱和/或者密碼!請再試一次."
 
+msgid "Isolate Clients"
+msgstr ""
+
 #, 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!"
 msgstr "它顯示你正嘗試更新不適用於這個flash記憶體的映像檔,請檢查確認這個映像檔"
 
-msgid "Java Script required!"
+msgid "JavaScript required!"
 msgstr "需要Java腳本"
 
 msgid "Join Network"
@@ -1626,6 +1699,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 ""
 
@@ -1638,6 +1727,9 @@ msgstr "列出供應偽裝NX網域成果的主機群"
 msgid "Listen Interfaces"
 msgstr ""
 
+msgid "Listen Port"
+msgstr ""
+
 msgid "Listen only on the given interface or, if unspecified, on all"
 msgstr "只許在給予的介面上聆聽, 如果未指定, 全都允許"
 
@@ -1756,9 +1848,6 @@ msgstr ""
 msgid "Max. Attainable Data Rate (ATTNDR)"
 msgstr ""
 
-msgid "Maximum Rate"
-msgstr "最快速度"
-
 msgid "Maximum allowed number of active DHCP leases"
 msgstr "允許啟用DHCP釋放的最大數量"
 
@@ -1794,9 +1883,6 @@ msgstr "記憶體使用 (%)"
 msgid "Metric"
 msgstr "公測單位"
 
-msgid "Minimum Rate"
-msgstr "最低速度"
-
 msgid "Minimum hold time"
 msgstr "可持有的最低時間"
 
@@ -1809,6 +1895,9 @@ msgstr ""
 msgid "Missing protocol extension for proto %q"
 msgstr "協定  %q 漏失的延伸協定"
 
+msgid "Mobility Domain"
+msgstr ""
+
 msgid "Mode"
 msgstr "模式"
 
@@ -1865,9 +1954,6 @@ msgstr "往下移"
 msgid "Move up"
 msgstr "往上移"
 
-msgid "Multicast Rate"
-msgstr "多點群播速度"
-
 msgid "Multicast address"
 msgstr "多點群播位址"
 
@@ -1880,6 +1966,9 @@ msgstr ""
 msgid "NAT64 Prefix"
 msgstr ""
 
+msgid "NCM"
+msgstr ""
+
 msgid "NDP-Proxy"
 msgstr ""
 
@@ -2058,12 +2147,50 @@ msgstr "選項已變更"
 msgid "Option removed"
 msgstr "選項已移除"
 
+msgid "Optional"
+msgstr ""
+
 msgid "Optional, specify to override default server (tic.sixxs.net)"
 msgstr ""
 
 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. 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."
+msgstr ""
+
+msgid ""
+"Optional. Host of peer. Names are resolved prior to bringing up the "
+"interface."
+msgstr ""
+
+msgid "Optional. Maximum Transmission Unit of tunnel interface."
+msgstr ""
+
+msgid "Optional. Port of peer."
+msgstr ""
+
+msgid ""
+"Optional. Seconds between keep alive messages. Default is 0 (disabled). "
+"Recommended value if this device is behind a NAT is 25."
+msgstr ""
+
+msgid "Optional. UDP port used for outgoing and incoming packets."
+msgstr ""
+
 msgid "Options"
 msgstr "選項"
 
@@ -2076,9 +2203,6 @@ msgstr "出"
 msgid "Outbound:"
 msgstr "外連:"
 
-msgid "Outdoor Channels"
-msgstr "室外通道"
-
 msgid "Output Interface"
 msgstr ""
 
@@ -2088,6 +2212,12 @@ msgstr "覆蓋MAC位址"
 msgid "Override MTU"
 msgstr "覆蓋MTU數值"
 
+msgid "Override TOS"
+msgstr ""
+
+msgid "Override TTL"
+msgstr ""
+
 msgid "Override default interface name"
 msgstr ""
 
@@ -2120,6 +2250,9 @@ msgstr "PID碼"
 msgid "PIN"
 msgstr "PIN碼"
 
+msgid "PMK R1 Push"
+msgstr ""
+
 msgid "PPP"
 msgstr "PPP協定"
 
@@ -2204,6 +2337,9 @@ msgstr "峰值:"
 msgid "Peer IP address to assign"
 msgstr ""
 
+msgid "Peers"
+msgstr ""
+
 msgid "Perfect Forward Secrecy"
 msgstr ""
 
@@ -2213,6 +2349,9 @@ msgstr "執行重開"
 msgid "Perform reset"
 msgstr "執行重置"
 
+msgid "Persistent Keep Alive"
+msgstr ""
+
 msgid "Phy Rate:"
 msgstr "傳輸率:"
 
@@ -2243,6 +2382,18 @@ msgstr ""
 msgid "Pre-emtive CRC errors (CRCP_P)"
 msgstr ""
 
+msgid "Prefer LTE"
+msgstr ""
+
+msgid "Prefer UMTS"
+msgstr ""
+
+msgid "Prefix Delegated"
+msgstr ""
+
+msgid "Preshared Key"
+msgstr ""
+
 msgid ""
 "Presume peer to be dead after given amount of LCP echo failures, use 0 to "
 "ignore failures"
@@ -2257,6 +2408,9 @@ msgstr "防止用戶端對用戶端的通訊"
 msgid "Prism2/2.5/3 802.11b Wireless Controller"
 msgstr "Prism2/2.5/3 802.11b 無線控制器"
 
+msgid "Private Key"
+msgstr ""
+
 msgid "Proceed"
 msgstr "前進"
 
@@ -2290,12 +2444,24 @@ msgstr "提供新網路"
 msgid "Pseudo Ad-Hoc (ahdemo)"
 msgstr "偽裝Ad-Hoc (ahdemo模式)"
 
+msgid "Public Key"
+msgstr ""
+
 msgid "Public prefix routed to this device for distribution to clients."
 msgstr ""
 
+msgid "QMI Cellular"
+msgstr ""
+
 msgid "Quality"
 msgstr "品質"
 
+msgid "R0 Key Lifetime"
+msgstr ""
+
+msgid "R1 Key Holder"
+msgstr ""
+
 msgid "RFC3947 NAT-T mode"
 msgstr ""
 
@@ -2386,6 +2552,9 @@ msgstr "即時流量"
 msgid "Realtime Wireless"
 msgstr "即時無線網路"
 
+msgid "Reassociation Deadline"
+msgstr ""
+
 msgid "Rebind protection"
 msgstr "重新綁護"
 
@@ -2404,6 +2573,9 @@ msgstr "接收"
 msgid "Receiver Antenna"
 msgstr "接收天線"
 
+msgid "Recommended. IP addresses of the WireGuard interface."
+msgstr ""
+
 msgid "Reconnect this interface"
 msgstr "重新連接這個介面"
 
@@ -2413,9 +2585,6 @@ msgstr "重連這個介面中"
 msgid "References"
 msgstr "引用"
 
-msgid "Regulatory Domain"
-msgstr "監管網域"
-
 msgid "Relay"
 msgstr "延遲"
 
@@ -2431,6 +2600,9 @@ msgstr "橋接延遲"
 msgid "Remote IPv4 address"
 msgstr "遠端IPv4位址"
 
+msgid "Remote IPv4 address or FQDN"
+msgstr ""
+
 msgid "Remove"
 msgstr "移除"
 
@@ -2452,9 +2624,29 @@ 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 ""
+"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 "
 "come from unsigned domains"
@@ -2499,6 +2691,12 @@ msgstr "透過TFTP存取根目錄檔案"
 msgid "Root preparation"
 msgstr ""
 
+msgid "Route Allowed IPs"
+msgstr ""
+
+msgid "Route type"
+msgstr ""
+
 msgid "Routed IPv6 prefix for downstream interfaces"
 msgstr ""
 
@@ -2586,9 +2784,6 @@ msgstr "傳送LCP呼叫請求在這個給予的秒數間隔內, 僅影響關聯
 msgid "Separate Clients"
 msgstr "分隔用戶端"
 
-msgid "Separate WDS"
-msgstr "分隔WDS中繼"
-
 msgid "Server Settings"
 msgstr "伺服器設定值"
 
@@ -2612,6 +2807,11 @@ msgstr "服務型態"
 msgid "Services"
 msgstr "各服務"
 
+msgid ""
+"Set interface properties regardless of the link carrier (If set, carrier "
+"sense events do not invoke hotplug handlers)."
+msgstr ""
+
 #, fuzzy
 msgid "Set up Time Synchronization"
 msgstr "安裝校時同步"
@@ -2676,14 +2876,13 @@ msgstr "抱歉, 你請求的這物件尚無發現."
 msgid "Sorry, the server encountered an unexpected error."
 msgstr "抱歉, 伺服器遭遇非預期的錯誤."
 
-#, fuzzy
 msgid ""
 "Sorry, there is no sysupgrade support present; a new firmware image must be "
-"flashed manually. Please refer to the OpenWrt wiki for device specific "
-"install instructions."
+"flashed manually. Please refer to the wiki for device specific install "
+"instructions."
 msgstr ""
-"抱歉, 沒有sysupgrade支援出現, 新版韌體映像檔必須手動更新. 請回歸OpenWrt wiki"
-"找尋特定設備安裝指引."
+"抱歉, 沒有sysupgrade支援出現, 新版韌體映像檔必須手動更新. 請回歸wiki找尋特定"
+"設備安裝指引."
 
 msgid "Sort"
 msgstr "分類"
@@ -2713,6 +2912,19 @@ msgid ""
 "dead"
 msgstr "指定可請求的最大秒數直到駭客主機死亡為止"
 
+msgid "Specify a TOS (Type of Service)."
+msgstr ""
+
+msgid ""
+"Specify a TTL (Time to Live) for the encapsulating packet other than the "
+"default (64)."
+msgstr ""
+
+msgid ""
+"Specify an MTU (Maximum Transmission Unit) other than the default (1280 "
+"bytes)."
+msgstr ""
+
 msgid "Specify the secret encryption key here."
 msgstr "指定加密金鑰在此."
 
@@ -2737,9 +2949,6 @@ msgstr "靜態租約"
 msgid "Static Routes"
 msgstr "靜態路由"
 
-msgid "Static WDS"
-msgstr "靜態WDS"
-
 msgid "Static address"
 msgstr "靜態位址"
 
@@ -2865,6 +3074,10 @@ msgid ""
 msgstr ""
 
 msgid ""
+"The IPv4 address or the fully-qualified domain name of the remote tunnel end."
+msgstr ""
+
+msgid ""
 "The IPv6 prefix assigned to the provider, usually ends with <code>::</code>"
 msgstr "指定到這供應商的IPv6字首, 通常用 <code>::</code>結尾"
 
@@ -2927,6 +3140,9 @@ msgstr "這IPv4開頭以位元計的長度, 剩餘部分將會延用在IPv6位
 msgid "The length of the IPv6 prefix in bits"
 msgstr "這IPv6開頭以位元計的長度"
 
+msgid "The local IPv4 address over which the tunnel is created (optional)."
+msgstr ""
+
 msgid ""
 "The network ports on this device can be combined to several <abbr title="
 "\"Virtual Local Area Network\">VLAN</abbr>s in which computers can "
@@ -3128,9 +3344,6 @@ msgstr ""
 msgid "Tunnel type"
 msgstr ""
 
-msgid "Turbo Mode"
-msgstr "渦輪爆衝模式"
-
 msgid "Tx-Power"
 msgstr "傳送-功率"
 
@@ -3149,6 +3362,9 @@ msgstr "UMTS/GPRS/EV-DO"
 msgid "USB Device"
 msgstr "USB設備"
 
+msgid "USB Ports"
+msgstr ""
+
 msgid "UUID"
 msgstr "設備通用唯一識別碼UUID"
 
@@ -3181,11 +3397,11 @@ msgstr "上傳清單"
 
 msgid ""
 "Upload a sysupgrade-compatible image here to replace the running firmware. "
-"Check \"Keep settings\" to retain the current configuration (requires an "
-"OpenWrt compatible firmware image)."
+"Check \"Keep settings\" to retain the current configuration (requires a "
+"compatible firmware image)."
 msgstr ""
 "上傳一個sysupgrade-相容的映像檔在這以便替代正執行中的韌體. 勾選\"保持設定\"以"
-"保留目前設定值(必須要是OpenWrt相容性韌體映像檔)."
+"保留目前設定值(必須要是OpenWrt/LEDE相容性韌體映像檔)."
 
 msgid "Upload archive..."
 msgstr "上傳壓縮檔..."
@@ -3255,6 +3471,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 ""
 
@@ -3365,6 +3586,9 @@ msgstr ""
 msgid "Width"
 msgstr ""
 
+msgid "WireGuard VPN"
+msgstr ""
+
 msgid "Wireless"
 msgstr "無線網路"
 
@@ -3404,9 +3628,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 "
@@ -3416,8 +3637,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 "
@@ -3507,6 +3728,9 @@ msgstr "本地<abbr title=\"Domain Name System\">DNS</abbr> 檔案"
 msgid "minimum 1280, maximum 1480"
 msgstr ""
 
+msgid "minutes"
+msgstr ""
+
 msgid "navigation Navigation"
 msgstr ""
 
@@ -3561,6 +3785,9 @@ msgstr ""
 msgid "tagged"
 msgstr "標籤"
 
+msgid "time units (TUs / 1.024 ms) [1000-65535]"
+msgstr ""
+
 msgid "unknown"
 msgstr "未知"
 
@@ -3582,6 +3809,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 24db1e4..ad575e0 100644 (file)
@@ -24,8 +24,10 @@ function index()
        entry({"admin", "status", "realtime", "bandwidth"}, template("admin_status/bandwidth"), _("Traffic"), 2).leaf = true
        entry({"admin", "status", "realtime", "bandwidth_status"}, call("action_bandwidth")).leaf = true
 
-       entry({"admin", "status", "realtime", "wireless"}, template("admin_status/wireless"), _("Wireless"), 3).leaf = true
-       entry({"admin", "status", "realtime", "wireless_status"}, call("action_wireless")).leaf = true
+       if nixio.fs.access("/etc/config/wireless") then
+               entry({"admin", "status", "realtime", "wireless"}, template("admin_status/wireless"), _("Wireless"), 3).leaf = true
+               entry({"admin", "status", "realtime", "wireless_status"}, call("action_wireless")).leaf = true
+       end
 
        entry({"admin", "status", "realtime", "connections"}, template("admin_status/connections"), _("Connections"), 4).leaf = true
        entry({"admin", "status", "realtime", "connections_status"}, call("action_connections")).leaf = true
index cf8cfb5..5478afa 100644 (file)
@@ -52,6 +52,7 @@ function action_clock_status()
                        luci.sys.call("date -s '%04d-%02d-%02d %02d:%02d:%02d'" %{
                                date.year, date.month, date.day, date.hour, date.min, date.sec
                        })
+                       luci.sys.call("/etc/init.d/sysfixtime restart")
                end
        end
 
index 10636a4..f418ecb 100644 (file)
@@ -68,9 +68,10 @@ se = s:taboption("advanced", Flag, "sequential_ip",
        translate("Allocate IP addresses sequentially, starting from the lowest available address"))
 se.optional = true
 
-s:taboption("advanced", Flag, "boguspriv",
+bp = s:taboption("advanced", Flag, "boguspriv",
        translate("Filter private"),
        translate("Do not forward reverse lookups for local networks"))
+bp.default = bp.enabled
 
 s:taboption("advanced", Flag, "filterwin2k",
        translate("Filter useless"),
index 16a1044..0318522 100644 (file)
@@ -220,6 +220,12 @@ auto.default = (net:proto() == "none") and auto.disabled or auto.enabled
 delegate = s:taboption("advanced", Flag, "delegate", translate("Use builtin IPv6-management"))
 delegate.default = delegate.enabled
 
+force_link = s:taboption("advanced", Flag, "force_link",
+       translate("Force link"),
+       translate("Set interface properties regardless of the link carrier (If set, carrier sense events do not invoke hotplug handlers)."))
+
+force_link.default = (net:proto() == "static") and force_link.enabled or force_link.disabled
+
 
 if not net:is_virtual() then
        br = s:taboption("physical", Flag, "type", translate("Bridge interfaces"), translate("creates a bridge over specified interface(s)"))
index ac02b15..1970f36 100644 (file)
@@ -34,13 +34,27 @@ g.rmempty = true
 metric = s:option(Value, "metric", translate("Metric"))
 metric.placeholder = 0
 metric.datatype = "range(0,255)"
+metric.size = 5
 metric.rmempty = true
 
 mtu = s:option(Value, "mtu", translate("MTU"))
 mtu.placeholder = 1500
 mtu.datatype = "range(64,9000)"
+mtu.size = 5
 mtu.rmempty = true
 
+routetype = s:option(Value, "type", translate("Route type"))
+routetype:value("", "unicast")
+routetype:value("local", "local")
+routetype:value("broadcast", "broadcast")
+routetype:value("multicast", "multicast")
+routetype:value("unreachable", "unreachable")
+routetype:value("prohibit", "prohibit")
+routetype:value("blackhole", "blackhole")
+routetype:value("anycast", "anycast")
+routetype.default = ""
+routetype.rmempty = true
+
 if fs.access("/proc/net/ipv6_route") then
        s = m:section(TypedSection, "route6", translate("Static IPv6 Routes"))
        s.addremove = true
@@ -62,12 +76,26 @@ if fs.access("/proc/net/ipv6_route") then
        metric = s:option(Value, "metric", translate("Metric"))
        metric.placeholder = 0
        metric.datatype = "range(0,65535)" -- XXX: not sure
+       metric.size = 5
        metric.rmempty = true
 
        mtu = s:option(Value, "mtu", translate("MTU"))
        mtu.placeholder = 1500
        mtu.datatype = "range(64,9000)"
+       mtu.size = 5
        mtu.rmempty = true
+
+       routetype = s:option(Value, "type", translate("Route type"))
+       routetype:value("", "unicast")
+       routetype:value("local", "local")
+       routetype:value("broadcast", "broadcast")
+       routetype:value("multicast", "multicast")
+       routetype:value("unreachable", "unreachable")
+       routetype:value("prohibit", "prohibit")
+       routetype:value("blackhole", "blackhole")
+       routetype:value("anycast", "anycast")
+       routetype.default = ""
+       routetype.rmempty = true
 end
 
 
index 09763e8..3a08d81 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,9 +248,9 @@ if hwtype == "mac80211" then
 end
 
 
-------------------- Madwifi Device ------------------
+------------------- Broadcom Device ------------------
 
-if hwtype == "atheros" then
+if hwtype == "broadcom" then
        tp = s:taboption("general",
                (#tx_power_list > 0) and ListValue or Value,
                "txpower", translate("Transmit Power"), "dBm")
@@ -251,66 +262,40 @@ if hwtype == "atheros" 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 })
        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")
+       mode = s:taboption("advanced", ListValue, "hwmode", translate("Band"))
+       if hw_modes.b then
+               mode:value("11b", "2.4GHz (802.11b)")
+               if hw_modes.g then
+                       mode:value("11bg", "2.4GHz (802.11b+g)")
+               end
        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
-       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)
+       if hw_modes.g then
+               mode:value("11g", "2.4GHz (802.11g)")
+               mode:value("11gst", "2.4GHz (802.11g + Turbo)")
+               mode:value("11lrs", "2.4GHz (802.11g Limited Rate Support)")
        end
-
-       for _, p in ipairs(tx_power_list) do
-               tp:value(p.driver_dbm, "%i dBm (%i mW)"
-                       %{ p.display_dbm, p.display_mw })
+       if hw_modes.a then mode:value("11a", "5GHz (802.11a)") end
+       if hw_modes.n then
+               if hw_modes.g then
+                       mode:value("11ng", "2.4GHz (802.11g+n)")
+                       mode:value("11n", "2.4GHz (802.11n)")
+               end
+               if hw_modes.a then
+                       mode:value("11na", "5GHz (802.11a+n)")
+                       mode:value("11n", "5GHz (802.11n)")
+               end
+               htmode = s:taboption("advanced", ListValue, "htmode", translate("HT mode (802.11n)"))
+               htmode:depends("hwmode", "11ng")
+               htmode:depends("hwmode", "11na")
+               htmode:depends("hwmode", "11n")
+               htmode:value("HT20", "20MHz")
+               htmode:value("HT40", "40MHz")
        end
 
        ant1 = s:taboption("advanced", ListValue, "txantenna", translate("Transmitter Antenna"))
@@ -476,102 +461,13 @@ if hwtype == "mac80211" then
        wmm:depends({mode="ap-wds"})
        wmm.default = wmm.enabled
        
-       ifname = s:taboption("advanced", Value, "ifname", translate("Interface name"), translate("Override default interface name"))
-       ifname.optional = true
-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"),
+       isolate = s:taboption("advanced", Flag, "isolate", translate("Isolate 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"))
+       isolate:depends({mode="ap-wds"})
 
-       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"
+       ifname = s:taboption("advanced", Value, "ifname", translate("Interface name"), translate("Override default interface name"))
+       ifname.optional = true
 end
 
 
@@ -695,7 +591,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")
 
@@ -856,14 +752,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")
@@ -1002,7 +976,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 05b27a9..8277deb 100644 (file)
@@ -16,7 +16,7 @@ if not iw then
        return
 end
 
-m = SimpleForm("network", translate("Joining Network: %q", http.formvalue("join")))
+m = SimpleForm("network", translatef("Joining Network: %q", http.formvalue("join")))
 m.cancel = translate("Back to scan results")
 m.reset = false
 
@@ -44,7 +44,7 @@ m.hidden = {
 
 if iw and iw.mbssid_support then
        replace = m:field(Flag, "replace", translate("Replace wireless configuration"),
-               translate("An additional network will be created if you leave this checked."))
+               translate("Check this option to delete the existing networks from this radio."))
 
        function replace.cfgvalue() return "0" end
 else
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 f575167..a85872a 100644 (file)
@@ -56,6 +56,8 @@ mount:taboption("general", Flag, "enabled", translate("Enable this mount")).rmem
 o = mount:taboption("general", Value, "uuid", translate("UUID"),
        translate("If specified, mount the device by its UUID instead of a fixed device node"))
 
+o:value("", translate("-- match by uuid --"))
+
 for i, d in ipairs(devices) do
        if d.uuid and d.size then
                o:value(d.uuid, "%s (%s, %d MB)" %{ d.uuid, d.dev, d.size })
@@ -64,12 +66,12 @@ for i, d in ipairs(devices) do
        end
 end
 
-o:value("", translate("-- match by label --"))
-
 
 o = mount:taboption("general", Value, "label", translate("Label"),
        translate("If specified, mount the device by the partition label instead of a fixed device node"))
 
+o:value("", translate("-- match by label --"))
+
 o:depends("uuid", "")
 
 for i, d in ipairs(devices) do
@@ -80,12 +82,12 @@ for i, d in ipairs(devices) do
        end
 end
 
-o:value("", translate("-- match by device --"))
-
 
 o = mount:taboption("general", Value, "device", translate("Device"),
        translate("The device file of the memory or partition (<abbr title=\"for example\">e.g.</abbr> <code>/dev/sda1</code>)"))
 
+o:value("", translate("-- match by device --"))
+
 o:depends({ uuid = "", label = "" })
 
 for i, d in ipairs(devices) do
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..d29a894 100644 (file)
                local wan = ntm:get_wannet()
                local wan6 = ntm:get_wan6net()
 
-               local conn_count = tonumber((
-                       luci.sys.exec("wc -l /proc/net/nf_conntrack") or
-                       luci.sys.exec("wc -l /proc/net/ip_conntrack") or
-                       ""):match("%d+")) or 0
+               local conn_count = tonumber(
+                       fs.readfile("/proc/sys/net/netfilter/nf_conntrack_count")) or 0
 
                local conn_max = tonumber((
                        luci.sys.exec("sysctl net.nf_conntrack_max") or
 
                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 82a1fdb..3e3f65d 100644 (file)
@@ -63,7 +63,7 @@
                <% if upgrade_avail then %>
                        <form method="post" action="<%=url('admin/system/flashops/sysupgrade')%>" enctype="multipart/form-data">
                                <input type="hidden" name="token" value="<%=token%>" />
-                               <div class="cbi-section-descr"><%:Upload a sysupgrade-compatible image here to replace the running firmware. Check "Keep settings" to retain the current configuration (requires an OpenWrt compatible firmware image).%></div>
+                               <div class="cbi-section-descr"><%:Upload a sysupgrade-compatible image here to replace the running firmware. Check "Keep settings" to retain the current configuration (requires a compatible firmware image).%></div>
                                <div class="cbi-section-node">
                                        <div class="cbi-value">
                                                <label class="cbi-value-title" for="keep"><%:Keep settings%>:</label>
@@ -84,7 +84,7 @@
                                <% end %>
                        </form>
                <% else %>
-                       <div class="cbi-section-descr"><%:Sorry, there is no sysupgrade support present; a new firmware image must be flashed manually. Please refer to the OpenWrt wiki for device specific install instructions.%></div>
+                       <div class="cbi-section-descr"><%:Sorry, there is no sysupgrade support present; a new firmware image must be flashed manually. Please refer to the wiki for device specific install instructions.%></div>
                <% end %>
        </fieldset>
 
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 5818a56..621e3cb 100644 (file)
@@ -9,5 +9,5 @@
 <p><%_<abbr title="Lua Configuration Interface">LuCI</abbr> is a free, flexible, and user friendly graphical interface for configuring OpenWrt.%><br />
 <%:On the following pages you can adjust all important settings of this device.%></p>
 <p><%:As we always want to improve this interface we are looking forward to your feedback and suggestions.%></p>
-<p><%:And now have fun with your OpenWrt device!%></p>
+<p><%:And now have fun with your device!%></p>
 <p><em><strong><a href="<%=controller%>/about"><%_The <abbr title="Lua Configuration Interface">LuCI</abbr> Team%></a></strong></em></p>
index ecd1e8a..ef3e2e8 100644 (file)
@@ -13,7 +13,7 @@
        <% if supported then %>
        <form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
        <p>
-               <%:Upload an OpenWrt image file to reflash the device.%>
+               <%:Upload a sysupgrade-compatible image file to reflash the device.%>
                <% if bad_image then %>
                        <br /><br />
                        <div class="error"><%:The uploaded image file does not
@@ -38,7 +38,7 @@
        </form>
        <% else %>
                <div class="error"><%_ Sorry.
-                       OpenWrt does not support a system upgrade on this platform.<br />
+                       A system upgrade is not supported on this platform.<br />
                        You need to manually flash your device. %></div>
        <% end %>
 <% elseif step == 2 then %>
index 3c8d11b..d6e9ad7 100644 (file)
@@ -27,7 +27,7 @@
                        <% end %>
                </form>
        <% else %>
-               <div class="cbi-section-descr"><%:Sorry, there is no sysupgrade support present; a new firmware image must be flashed manually. Please refer to the OpenWrt wiki for device specific install instructions.%></div>
+               <div class="cbi-section-descr"><%:Sorry, there is no sysupgrade support present; a new firmware image must be flashed manually. Please refer to the wiki for device specific install instructions.%></div>
        <% end %>
 </fieldset>
 
index 83e1ee5..f087472 100644 (file)
                <input type="hidden" name="confirm" value="1" />
 
                <input type="checkbox" class="cbi-input-checkbox" name="keepcfg" value="1" checked="checked" id="cb_keepcfg" />
+               <label for="cb_keepcfg"></label>
                <label for="cb_keepcfg"><%:Keep configuration%></label><br />
 
                <input type="checkbox" class="cbi-input-checkbox" name="verify" value="1" checked="checked" id="cb_verify" />
+               <label for="cb_verify"></label>
                <label for="cb_verify"><%:Verify downloaded images%></label><br /><br />
 
                <input type="submit" class="cbi-button cbi-button-apply" value="<%:Confirm Upgrade%>" />
diff --git a/protocols/luci-proto-ncm/Makefile b/protocols/luci-proto-ncm/Makefile
new file mode 100644 (file)
index 0000000..5fd9c9a
--- /dev/null
@@ -0,0 +1,14 @@
+#
+# 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:=Support for NCM
+LUCI_DEPENDS:=+comgt-ncm
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua b/protocols/luci-proto-ncm/luasrc/model/cbi/admin_network/proto_ncm.lua
new file mode 100644 (file)
index 0000000..917c88c
--- /dev/null
@@ -0,0 +1,157 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2015 Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+]]--
+
+local map, section, net = ...
+
+local device, apn, service, pincode, username, password, dialnumber
+local ipv6, maxwait, defaultroute, metric, peerdns, dns,
+      keepalive_failure, keepalive_interval, demand
+
+
+device = section:taboption("general", Value, "device", translate("Modem device"))
+device.rmempty = false
+
+local device_suggestions = nixio.fs.glob("/dev/cdc-wdm*")
+       or nixio.fs.glob("/dev/ttyUSB*")
+
+if device_suggestions then
+       local node
+       for node in device_suggestions do
+               device:value(node)
+       end
+end
+
+
+mode = section:taboption("general", Value, "mode", translate("Service Type"))
+mode.default = "auto"
+mode:value("preferlte", translate("Prefer LTE"))
+mode:value("preferumts", translate("Prefer UMTS"))
+mode:value("lte", "LTE")
+mode:value("umts", "UMTS/GPRS")
+mode:value("gsm", translate("GPRS only"))
+mode:value("auto", translate("auto"))
+
+
+apn = section:taboption("general", Value, "apn", translate("APN"))
+
+
+pincode = section:taboption("general", Value, "pincode", translate("PIN"))
+
+
+username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
+
+
+password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
+password.password = true
+
+dialnumber = section:taboption("general", Value, "dialnumber", translate("Dial number"))
+dialnumber.placeholder = "*99***1#"
+
+if luci.model.network:has_ipv6() then
+
+       ipv6 = section:taboption("advanced", ListValue, "ipv6")
+       ipv6:value("auto", translate("Automatic"))
+       ipv6:value("0", translate("Disabled"))
+       ipv6:value("1", translate("Manual"))
+       ipv6.default = "auto"
+
+end
+
+
+maxwait = section:taboption("advanced", Value, "maxwait",
+       translate("Modem init timeout"),
+       translate("Maximum amount of seconds to wait for the modem to become ready"))
+
+maxwait.placeholder = "20"
+maxwait.datatype    = "min(1)"
+
+
+defaultroute = section:taboption("advanced", Flag, "defaultroute",
+       translate("Use default gateway"),
+       translate("If unchecked, no default route is configured"))
+
+defaultroute.default = defaultroute.enabled
+
+metric = section:taboption("advanced", Value, "metric",
+       translate("Use gateway metric"))
+
+metric.placeholder = "0"
+metric.datatype    = "uinteger"
+metric:depends("defaultroute", defaultroute.enabled)
+
+
+peerdns = section:taboption("advanced", Flag, "peerdns",
+       translate("Use DNS servers advertised by peer"),
+       translate("If unchecked, the advertised DNS server addresses are ignored"))
+
+peerdns.default = peerdns.enabled
+
+
+dns = section:taboption("advanced", DynamicList, "dns",
+       translate("Use custom DNS servers"))
+
+dns:depends("peerdns", "")
+dns.datatype = "ipaddr"
+dns.cast     = "string"
+
+
+keepalive_failure = section:taboption("advanced", Value, "_keepalive_failure",
+       translate("LCP echo failure threshold"),
+       translate("Presume peer to be dead after given amount of LCP echo failures, use 0 to ignore failures"))
+
+function keepalive_failure.cfgvalue(self, section)
+       local v = m:get(section, "keepalive")
+       if v and #v > 0 then
+               return tonumber(v:match("^(%d+)[ ,]+%d+") or v)
+       end
+end
+
+function keepalive_failure.write() end
+function keepalive_failure.remove() end
+
+keepalive_failure.placeholder = "0"
+keepalive_failure.datatype    = "uinteger"
+
+
+keepalive_interval = section:taboption("advanced", Value, "_keepalive_interval",
+       translate("LCP echo interval"),
+       translate("Send LCP echo requests at the given interval in seconds, only effective in conjunction with failure threshold"))
+
+function keepalive_interval.cfgvalue(self, section)
+       local v = m:get(section, "keepalive")
+       if v and #v > 0 then
+               return tonumber(v:match("^%d+[ ,]+(%d+)"))
+       end
+end
+
+function keepalive_interval.write(self, section, value)
+       local f = tonumber(keepalive_failure:formvalue(section)) or 0
+       local i = tonumber(value) or 5
+       if i < 1 then i = 1 end
+       if f > 0 then
+               m:set(section, "keepalive", "%d %d" %{ f, i })
+       else
+               m:del(section, "keepalive")
+       end
+end
+
+keepalive_interval.remove      = keepalive_interval.write
+keepalive_interval.placeholder = "5"
+keepalive_interval.datatype    = "min(1)"
+
+
+demand = section:taboption("advanced", Value, "demand",
+       translate("Inactivity timeout"),
+       translate("Close inactive connection after the given amount of seconds, use 0 to persist connection"))
+
+demand.placeholder = "0"
+demand.datatype    = "uinteger"
diff --git a/protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua b/protocols/luci-proto-ncm/luasrc/model/network/proto_ncm.lua
new file mode 100644 (file)
index 0000000..6c5b34e
--- /dev/null
@@ -0,0 +1,61 @@
+--[[
+LuCI - Network model - NCM protocol extension
+
+Copyright 2015 Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+]]--
+
+local netmod = luci.model.network
+
+local proto = netmod:register_protocol("ncm")
+local interface = luci.model.network.interface
+
+function proto.get_i18n(self)
+       return luci.i18n.translate("NCM")
+end
+
+function proto.opkg_package(self)
+       return "comgt-ncm"
+end
+
+function proto.is_installed(self)
+       return nixio.fs.access("/lib/netifd/proto/ncm.sh")
+end
+
+function proto.is_floating(self)
+       return true
+end
+
+function proto.is_virtual(self)
+       return true
+end
+
+function proto.get_interface(self)
+       local _ifname=netmod.protocol.ifname(self)
+       if not _ifname then
+               _ifname = "wan"
+       end
+       return interface(_ifname, self)
+end
+
+function proto.get_interfaces(self)
+       return nil
+end
+
+function proto.contains_interface(self, ifc)
+       return (netmod:ifnameof(ifc) == self:ifname())
+end
+
+netmod:register_pattern_virtual("^ncm-%%w")
diff --git a/protocols/luci-proto-qmi/Makefile b/protocols/luci-proto-qmi/Makefile
new file mode 100644 (file)
index 0000000..8b2b5e3
--- /dev/null
@@ -0,0 +1,14 @@
+#
+# 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:=Support for QMI
+LUCI_DEPENDS:=+uqmi
+
+include ../../luci.mk
+
+# call BuildPackage - OpenWrt buildroot signature
diff --git a/protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua b/protocols/luci-proto-qmi/luasrc/model/cbi/admin_network/proto_qmi.lua
new file mode 100644 (file)
index 0000000..e11201d
--- /dev/null
@@ -0,0 +1,45 @@
+-- Copyright 2016 David Thornley <david.thornley@touchstargroup.com>
+-- Licensed to the public under the Apache License 2.0.
+
+local map, section, net = ...
+
+local device, apn, pincode, username, password
+local auth, ipv6
+
+
+device = section:taboption("general", Value, "device", translate("Modem device"))
+device.rmempty = false
+
+local device_suggestions = nixio.fs.glob("/dev/cdc-wdm*")
+
+if device_suggestions then
+       local node
+       for node in device_suggestions do
+               device:value(node)
+       end
+end
+
+
+apn = section:taboption("general", Value, "apn", translate("APN"))
+
+
+pincode = section:taboption("general", Value, "pincode", translate("PIN"))
+
+
+username = section:taboption("general", Value, "username", translate("PAP/CHAP username"))
+
+
+password = section:taboption("general", Value, "password", translate("PAP/CHAP password"))
+password.password = true
+
+auth = section:taboption("general", Value, "auth", translate("Authentication Type"))
+auth:value("", translate("-- Please choose --"))
+auth:value("both", "PAP/CHAP (both)")
+auth:value("pap", "PAP")
+auth:value("chap", "CHAP")
+auth:value("none", "NONE")
+
+if luci.model.network:has_ipv6() then
+    ipv6 = section:taboption("advanced", Flag, "ipv6", translate("Enable IPv6 negotiation"))
+    ipv6.default = ipv6.disabled
+end
diff --git a/protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua b/protocols/luci-proto-qmi/luasrc/model/network/proto_qmi.lua
new file mode 100644 (file)
index 0000000..cca8af1
--- /dev/null
@@ -0,0 +1,51 @@
+-- Copyright 2016 David Thornley <david.thornley@touchstargroup.com>
+-- Licensed to the public under the Apache License 2.0.
+
+local netmod = luci.model.network
+local interface = luci.model.network.interface
+local proto = netmod:register_protocol("qmi")
+
+function proto.get_i18n(self)
+       return luci.i18n.translate("QMI Cellular")
+end
+
+function proto.ifname(self)
+       local base = netmod._M.protocol
+       local ifname = base.ifname(self) -- call base class "protocol.ifname(self)"
+
+               -- Note: ifname might be nil if the adapter could not be determined through ubus (default name to qmi-wan in this case)
+       if ifname == nil then
+               ifname = "qmi-" .. self.sid
+       end
+       return ifname
+end
+
+function proto.get_interface(self)
+       return interface(self:ifname(), self)
+end
+
+function proto.opkg_package(self)
+       return "uqmi"
+end
+
+function proto.is_installed(self)
+       return nixio.fs.access("/lib/netifd/proto/qmi.sh")
+end
+
+function proto.is_floating(self)
+       return true
+end
+
+function proto.is_virtual(self)
+       return true
+end
+
+function proto.get_interfaces(self)
+       return nil
+end
+
+function proto.contains_interface(self, ifc)
+        return (netmod:ifnameof(ifc) == self:ifname())
+end
+
+netmod:register_pattern_virtual("^qmi-%w")
index 9c77e67..0800e27 100644 (file)
@@ -10,9 +10,6 @@ LUCI_TITLE:=Support for VPNC VPN
 LUCI_DEPENDS:=+vpnc
 LUCI_PKGARCH:=all
 
-PKG_NAME:=luci-proto-vpnc
-PKG_RELEASE=1
-PKG_VERSION:=1.0.0
 PKG_MAINTAINER:=Daniel Dickinson <openwrt@daniel.thecshore.com>
 PKG_LICENSE:=Apache-2.0
 
@@ -20,4 +17,4 @@ LUA_TARGET:=source
 
 include ../../luci.mk
 
-# call BuildPackage - OpenWrt buildroot signature
\ No newline at end of file
+# call BuildPackage - OpenWrt buildroot signature
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 774c6db..11ef10b 100644 (file)
@@ -1,4 +1,4 @@
--- Copyright 2016 Dan Luedtke <mail@danrl.com>
+-- Copyright 2016-2017 Dan Luedtke <mail@danrl.com>
 -- Licensed to the public under the Apache License 2.0.
 
 
@@ -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
 
 
@@ -34,6 +34,16 @@ listen_port.datatype = "port"
 listen_port.placeholder = "51820"
 listen_port.optional = true
 
+addresses = section:taboption(
+  "general",
+  DynamicList,
+  "addresses",
+  translate("IP Addresses"),
+  translate("Recommended. IP addresses of the WireGuard interface.")
+)
+addresses.datatype = "ipaddr"
+addresses.optional = true
+
 
 -- advanced --------------------------------------------------------------------
 
@@ -56,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
 
 
@@ -66,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(
@@ -92,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
 
 
@@ -144,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 ef19e7c..8d0c434 100644 (file)
@@ -447,7 +447,7 @@ form .cbi-value:before, form .cbi-value:after  {
        zoom: 1;
 }
 
-form .clearfix:after
+form .clearfix:after,
 form .cbi-value:after {
        clear: both;
 }
@@ -500,6 +500,8 @@ select,
 
 select {
        padding: initial;
+       background: #fff;
+       box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.1);
 }
 
 input[type=checkbox], input[type=radio] {
@@ -996,7 +998,7 @@ a.menu:after, .dropdown-toggle:after {
 .menu-dropdown li, .dropdown-menu li {
        float: none;
        display: block;
-       background-color: none;
+       background-color: transparent;
 }
 
 .menu-dropdown .divider, .dropdown-menu .divider {
@@ -1732,7 +1734,6 @@ a.label:hover {
          color: #808080;
          display: inline-block;
          font-size: 13px;
-         height: 22 dpx;
          line-height: 18px;
 }
 
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 edf85dc..d69417e 100755 (executable)
@@ -29,7 +29,7 @@
                 </div>
                 <footer class="mobile-hide">
                     <a href="https://github.com/openwrt/luci">Powered by <%= ver.luciname %> (<%= ver.luciversion %>)</a> /
-                    <a href="https://openwrt.org/"><%= ver.distversion %></a>
+                    <%= ver.distversion %>
                     <% if #categories > 1 then %>
                     <ul class="breadcrumb pull-right" id="modemenu">
                         <% for i, r in ipairs(categories) do %>
old mode 100755 (executable)
new mode 100644 (file)
index 8419ade..d84fd27
@@ -2,14 +2,14 @@
        Material is a clean HTML5 theme for LuCI. It is based on luci-theme-bootstrap and MUI
 
        luci-theme-material
-       Copyright 2015 Lutty Yang <lutty@wcan.in>
+       Copyright 2015-2017 Lutty Yang <lutty@wcan.in>
 
        Have a bug? Please create an issue here on GitHub!
        https://github.com/LuttyYang/luci-theme-material/issues
 
        luci-theme-bootstrap:
        Copyright 2008 Steven Barth <steven@midlink.org>
-       Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
+       Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
        Copyright 2012 David Menting <david@nut-bolt.nl>
 
        MUI:
@@ -19,7 +19,6 @@
 -%>
 
 <%
-       local ver = require "luci.version"
        local sys  = require "luci.sys"
        local util = require "luci.util"
        local http = require "luci.http"
                end
        end
 
-    -- send as HTML5
+       -- send as HTML5
        http.prepare_content("text/html")
 
        local function nodeurl(prefix, name, query)
-               local url = controller .. prefix .. name .. "/"
+               local u = url(prefix, name)
                if query then
-                       url = url .. http.build_querystring(query)
+                       u = u .. http.build_querystring(query)
                end
-               return pcdata(url)
+               return pcdata(u)
        end
 
-       local function subtree(prefix, node, level)
+       local function render_tabmenu(prefix, node, level)
                if not level then
                        level = 1
                end
 
                local childs = disp.node_childs(node)
                if #childs > 0 then
-
-            if level > 2 then
-%>
-       <ul class="tabs">
-               <%
-            end
+                       if level > 2 then
+                               write('<ul class="tabs">')
+                       end
 
                        local selected_node
                        local selected_name
                                        selected_node = nnode
                                        selected_name = v
                                end
-                if level > 2 then
-               %>
-                       <li class="tabmenu-item-<%=v%><%- if nnode._menu_selected or (node.leaf and v == leaf) then %> active<% end %>">
-                           <a href="<%=nodeurl(prefix, v, nnode.query)%>"><%=striptags(translate(nnode.title))%></a>
-                       </li>
-               <%      end
+
+                               if level > 2 then
+                                       write('<li class="tabmenu-item-%s %s"><a href="%s">%s</a></li>' %{
+                                               v, (nnode._menu_selected or (node.leaf and v == leaf)) and 'active' or '',
+                                               nodeurl(prefix, v, nnode.query),
+                                               striptags(translate(nnode.title))
+                                       })
+                               end
                        end
 
-            if level > 2 then
-               %>
-       </ul>
-<%          end
+                       if level > 2 then
+                               write('</ul>')
+                       end
 
                        if selected_node then
-                               subtree(prefix .. selected_name .. "/", selected_node, level + 1)
+                               render_tabmenu(prefix .. "/" .. selected_name, selected_node, level + 1)
+                       end
+               end
+       end
+
+       local function render_submenu(prefix, node)
+               local childs = disp.node_childs(node)
+               if #childs > 0 then
+                       write('<ul class="slide-menu">')
+
+                       for i, r in ipairs(childs) do
+                               local nnode = node.nodes[r]
+                               local title = pcdata(striptags(translate(nnode.title)))
+
+                               write('<li><a data-title="%s" href="%s">%s</a></li>' %{
+                                       title,
+                                       nodeurl(prefix, r, nnode.query),
+                                       title
+                               })
+                       end
+
+                       write('</ul>')
+               end
+       end
+
+       local function render_topmenu()
+               local childs = disp.node_childs(cattree)
+               if #childs > 0 then
+                       write('<ul class="nav">')
+
+                       for i, r in ipairs(childs) do
+                               local nnode = cattree.nodes[r]
+                               local grandchildren = disp.node_childs(nnode)
+
+                               if #grandchildren > 0 then
+                                       local title = pcdata(striptags(translate(nnode.title)))
+
+                                       write('<li class="slide"><a class="menu" data-title="%s" href="#">%s</a>' %{
+                                               title,
+                                               title
+                                       })
+
+                                       render_submenu(category .. "/" .. r, nnode)
+                                       write('</li>')
+                               else
+                                       local title = pcdata(striptags(translate(nnode.title)))
+
+                                       write('<li><a data-title="%s" href="%s">%s</a></li>' %{
+                                               title,
+                                               nodeurl(category, r, nnode.query),
+                                               title
+                                       })
+                               end
+                       end
+
+                       write('</ul>')
+               end
+       end
+
+       local function render_changes()
+               -- calculate the number of unsaved changes
+               if tree.nodes[category] and tree.nodes[category].ucidata then
+                       local ucichanges = 0
+
+                       for i, j in pairs(require("luci.model.uci").cursor():changes()) do
+                               for k, l in pairs(j) do
+                                       for m, n in pairs(l) do
+                                               ucichanges = ucichanges + 1;
+                                       end
+                               end
+                       end
+
+                       if ucichanges > 0 then
+                               write('<a class="label notice" href="%s?redir=%s">%s: %d</a>' %{
+                                       url(category, 'uci/changes'),
+                                       http.urlencode(http.formvalue('redir') or REQUEST_URI),
+                                       translate('Unsaved Changes'),
+                                       ucichanges
+                               })
                        end
                end
        end
         <link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
     <% end -%>
     <% if css then %>
-        <style title="text/css">
-            <%-= css %>
-        </style>
+        <style title="text/css"><%= css %></style>
     <% end -%>
     <script src="<%=resource%>/xhr.js"></script>
 </head>
-
 <body class="lang_<%=luci.i18n.context.lang%> <%- if node then %><%= striptags( node.title ) %><%- end %> <% if luci.dispatcher.context.authsession then %>logged-in<% end %>">
-
 <header>
        <div class="container">
                <span class="showSide"></span>
                <a class="brand" href="#"><%=boardinfo.hostname or "?"%></a>
                <div class="pull-right">
-               <%
-               -- calculate the number of unsaved changes
-               if tree.nodes[category] and tree.nodes[category].ucidata then
-                       local ucichanges = 0
-                       for i, j in pairs(require("luci.model.uci").cursor():changes()) do
-                               for k, l in pairs(j) do
-                                       for m, n in pairs(l) do
-                                               ucichanges = ucichanges + 1;
-                                       end
-                               end
-                       end
-                       %>
-                       <% if ucichanges > 0 then %>
-                       <a class="label notice" href="<%=controller%>/<%=category%>/uci/changes?redir=<%=http.urlencode(http.formvalue("redir") or REQUEST_URI)%>"><span class="mobile-hide"><%:Unsaved Changes%>: </span><%=ucichanges%></a>
-                       <% end %>
+                       <% render_changes() %>
                        <span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
-                               <span class="label success" id="xhr_poll_status_on"><span class="mobile-hide"><%:Auto Refresh%> </span><%:on%></span>
-                               <span class="label" id="xhr_poll_status_off" style="display:none"><span class="mobile-hide"><%:Auto Refresh%> </span><%:off%></span>
+                               <span class="label success" id="xhr_poll_status_on"><span class="mobile-hide"><%:Auto Refresh%></span> <%:on%></span>
+                               <span class="label" id="xhr_poll_status_off" style="display:none"><span class="mobile-hide"><%:Auto Refresh%></span> <%:off%></span>
                        </span>
-               <% end %>
                </div>
        </div>
 </header>
-
- <div class="main">
+<div class="main">
         <div style="" class="loading"><span><div class="loading-img"></div>Loading...</span></div>
         <div class="main-left">
-                <ul class="nav">
-                        <%-
-                        local function submenu(prefix, node)
-                        local childs = disp.node_childs(node)
-                        if #childs > 0 then
-                        %>
-                        <ul class="slide-menu">
-                                <%-
-                                for i, r in ipairs(childs) do
-                                local nnode = node.nodes[r]
-                                local href  = controller .. prefix .. r ..
-                                (nnode.query and http.build_querystring(nnode.query) or "")
-                                %>
-                                <li><a data-title="<%=pcdata(striptags(nnode.title))%>" href="<%=pcdata(href)%>"><%=pcdata(striptags(translate(nnode.title)))%></a></li>
-                                <%-
-                                end
-                                %>
-                        </ul>
-                        <%-
-                        end
-                        end
-
-                        childs = disp.node_childs(cattree)
-
-                        if #childs > 0 then
-                        for i, r in ipairs(childs) do
-                        local nnode = cattree.nodes[r]
-                        local href  = controller .. "/" .. category .. "/" .. r ..
-                        (nnode.query and http.build_querystring(k.query) or "")
-                        local grandchildren = disp.node_childs(nnode)
-
-                        if #grandchildren > 0 then
-                        %>
-                        <li class="slide">
-                                <a class="menu" data-title="<%=pcdata(striptags(nnode.title))%>" href="#"><%=pcdata(striptags(translate(nnode.title)))%></a>
-                                <%- submenu(category .. "/" .. r .. "/", nnode) %>
-                        </li>
-                        <%          else %>
-                        <li>
-                                <a data-title="<%=pcdata(striptags(nnode.title))%>" href="<%=pcdata(href)%>"><%=pcdata(striptags(translate(nnode.title)))%></a>
-                        </li>
-                        <%
-                        end
-                        end
-                        end
-                        %>
-                </ul>
+               <% render_topmenu() %>
         </div>
-        <div class="main-right">
+       <div class="main-right">
                 <div class="darkMask"></div>
                 <div id="maincontent">
                         <div class="container">
                                                 <a href="<%=pcdata(luci.dispatcher.build_url("admin/system/admin"))%>"><%:Go to password configuration...%></a>
                                         </div>
                                 <%- end -%>
-                                <% if category then subtree("/" .. category .. "/", cattree) end %>
-
+                                <% if category then render_tabmenu(category, cattree) 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>                     
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>