Browse Source

Update luci

NYNEX 2 years ago
parent
commit
b12f8eef88
100 changed files with 7614 additions and 629 deletions
  1. 5 0
      package/luci/.buildpath
  2. 221 0
      package/luci/.cproject
  3. 78 0
      package/luci/.project
  4. 4 6
      package/luci/applications/luci-app-adblock/Makefile
  5. 45 1
      package/luci/applications/luci-app-adblock/luasrc/controller/adblock.lua
  6. 0 57
      package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua
  7. 52 0
      package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua
  8. 39 0
      package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua
  9. 237 0
      package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua
  10. 51 0
      package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua
  11. 10 0
      package/luci/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm
  12. 14 0
      package/luci/applications/luci-app-adblock/luasrc/view/adblock/logread.htm
  13. 65 0
      package/luci/applications/luci-app-adblock/luasrc/view/adblock/query.htm
  14. 10 0
      package/luci/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm
  15. 337 0
      package/luci/applications/luci-app-adblock/po/it/adblock.po
  16. 273 76
      package/luci/applications/luci-app-adblock/po/ja/adblock.po
  17. 338 35
      package/luci/applications/luci-app-adblock/po/pt-br/adblock.po
  18. 301 29
      package/luci/applications/luci-app-adblock/po/sv/adblock.po
  19. 226 19
      package/luci/applications/luci-app-adblock/po/templates/adblock.pot
  20. 297 31
      package/luci/applications/luci-app-adblock/po/zh-cn/adblock.po
  21. 20 0
      package/luci/applications/luci-app-advanced-reboot/Makefile
  22. 35 0
      package/luci/applications/luci-app-advanced-reboot/README.md
  23. 120 0
      package/luci/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua
  24. 92 0
      package/luci/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm
  25. 29 0
      package/luci/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/alternative_reboot.htm
  26. 25 0
      package/luci/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/power_off.htm
  27. 108 0
      package/luci/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po
  28. 102 0
      package/luci/applications/luci-app-advanced-reboot/po/templates/luci-app-advanced-reboot.pot
  29. 5 1
      package/luci/applications/luci-app-ahcp/po/sv/ahcp.po
  30. 208 0
      package/luci/applications/luci-app-aria2/po/sv/aria2.po
  31. 11 0
      package/luci/applications/luci-app-attendedsysupgrade/Makefile
  32. 5 0
      package/luci/applications/luci-app-attendedsysupgrade/luasrc/controller/attendedsysupgrade.lua
  33. 376 0
      package/luci/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm
  34. 18 0
      package/luci/applications/luci-app-bcp38/Makefile
  35. 7 0
      package/luci/applications/luci-app-bcp38/luasrc/controller/bcp38.lua
  36. 60 0
      package/luci/applications/luci-app-bcp38/luasrc/model/cbi/bcp38.lua
  37. 45 0
      package/luci/applications/luci-app-bcp38/po/sv/bcp38.po
  38. 45 0
      package/luci/applications/luci-app-bcp38/po/templates/bcp38.pot
  39. 52 0
      package/luci/applications/luci-app-bcp38/po/zh-cn/bcp38.po
  40. 11 0
      package/luci/applications/luci-app-bcp38/root/etc/uci-defaults/60_luci-bcp38
  41. 18 0
      package/luci/applications/luci-app-clamav/Makefile
  42. 22 0
      package/luci/applications/luci-app-clamav/luasrc/controller/clamav.lua
  43. 178 0
      package/luci/applications/luci-app-clamav/luasrc/model/cbi/clamav.lua
  44. 130 0
      package/luci/applications/luci-app-clamav/po/ja/clamav.po
  45. 119 0
      package/luci/applications/luci-app-clamav/po/sv/clamav.po
  46. 119 0
      package/luci/applications/luci-app-clamav/po/templates/clamav.pot
  47. 131 0
      package/luci/applications/luci-app-clamav/po/zh-cn/clamav.po
  48. 2 0
      package/luci/applications/luci-app-commands/Makefile
  49. 55 14
      package/luci/applications/luci-app-commands/luasrc/controller/commands.lua
  50. 9 6
      package/luci/applications/luci-app-commands/luasrc/view/commands.htm
  51. 50 0
      package/luci/applications/luci-app-commands/luasrc/view/commands_public.htm
  52. 21 3
      package/luci/applications/luci-app-commands/po/ca/commands.po
  53. 18 3
      package/luci/applications/luci-app-commands/po/cs/commands.po
  54. 21 3
      package/luci/applications/luci-app-commands/po/de/commands.po
  55. 18 3
      package/luci/applications/luci-app-commands/po/el/commands.po
  56. 27 5
      package/luci/applications/luci-app-commands/po/en/commands.po
  57. 21 3
      package/luci/applications/luci-app-commands/po/es/commands.po
  58. 21 3
      package/luci/applications/luci-app-commands/po/fr/commands.po
  59. 18 3
      package/luci/applications/luci-app-commands/po/he/commands.po
  60. 21 3
      package/luci/applications/luci-app-commands/po/hu/commands.po
  61. 21 3
      package/luci/applications/luci-app-commands/po/it/commands.po
  62. 22 4
      package/luci/applications/luci-app-commands/po/ja/commands.po
  63. 18 3
      package/luci/applications/luci-app-commands/po/ms/commands.po
  64. 21 3
      package/luci/applications/luci-app-commands/po/no/commands.po
  65. 21 3
      package/luci/applications/luci-app-commands/po/pl/commands.po
  66. 20 20
      package/luci/applications/luci-app-commands/po/pt-br/commands.po
  67. 21 3
      package/luci/applications/luci-app-commands/po/pt/commands.po
  68. 21 3
      package/luci/applications/luci-app-commands/po/ro/commands.po
  69. 21 3
      package/luci/applications/luci-app-commands/po/ru/commands.po
  70. 18 3
      package/luci/applications/luci-app-commands/po/sk/commands.po
  71. 45 26
      package/luci/applications/luci-app-commands/po/sv/commands.po
  72. 18 3
      package/luci/applications/luci-app-commands/po/templates/commands.pot
  73. 18 3
      package/luci/applications/luci-app-commands/po/tr/commands.po
  74. 18 3
      package/luci/applications/luci-app-commands/po/uk/commands.po
  75. 18 3
      package/luci/applications/luci-app-commands/po/vi/commands.po
  76. 26 7
      package/luci/applications/luci-app-commands/po/zh-cn/commands.po
  77. 21 3
      package/luci/applications/luci-app-commands/po/zh-tw/commands.po
  78. 1 1
      package/luci/applications/luci-app-coovachilli/po/sv/coovachilli.po
  79. 17 0
      package/luci/applications/luci-app-cshark/Makefile
  80. 125 0
      package/luci/applications/luci-app-cshark/luasrc/controller/cshark.lua
  81. 30 0
      package/luci/applications/luci-app-cshark/luasrc/model/cbi/admin_network/cshark.lua
  82. 291 0
      package/luci/applications/luci-app-cshark/luasrc/view/cshark.htm
  83. 2 2
      package/luci/applications/luci-app-ddns/Makefile
  84. 5 6
      package/luci/applications/luci-app-ddns/luasrc/controller/ddns.lua
  85. 233 174
      package/luci/applications/luci-app-ddns/po/it/ddns.po
  86. 724 0
      package/luci/applications/luci-app-ddns/po/sv/ddns.po
  87. 4 2
      package/luci/applications/luci-app-diag-core/po/sv/diag_core.po
  88. 44 44
      package/luci/applications/luci-app-diag-devinfo/po/sv/diag_devinfo.po
  89. 13 0
      package/luci/applications/luci-app-dnscrypt-proxy/Makefile
  90. 32 0
      package/luci/applications/luci-app-dnscrypt-proxy/luasrc/controller/dnscrypt-proxy.lua
  91. 37 0
      package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/cfg_dnsmasq_tab.lua
  92. 39 0
      package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/configuration_tab.lua
  93. 177 0
      package/luci/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua
  94. 13 0
      package/luci/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/config_css.htm
  95. 15 0
      package/luci/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/logread.htm
  96. 10 0
      package/luci/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/res_options.htm
  97. 15 0
      package/luci/applications/luci-app-dnscrypt-proxy/luasrc/view/dnscrypt-proxy/view_reslist.htm
  98. 232 0
      package/luci/applications/luci-app-dnscrypt-proxy/po/ja/dnscrypt-proxy.po
  99. 191 0
      package/luci/applications/luci-app-dnscrypt-proxy/po/templates/dnscrypt-proxy.pot
  100. 0 0
      package/luci/applications/luci-app-dnscrypt-proxy/root/etc/uci-defaults/60_luci-dnscrypt-proxy

+ 5 - 0
package/luci/.buildpath

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<buildpath>
+	<buildpathentry kind="src" path="src"/>
+	<buildpathentry kind="con" path="org.eclipse.dltk.launching.INTERPRETER_CONTAINER"/>
+</buildpath>

+ 221 - 0
package/luci/.cproject

@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject>
+<storageModule moduleId="org.eclipse.cdt.core.settings">
+<cconfiguration id="preference.org.eclipse.cdt.managedbuilder.core.configurationDataProvider.1510318341">
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+<configuration artifactName="luci" buildProperties="" description="" id="preference.org.eclipse.cdt.managedbuilder.core.configurationDataProvider.1510318341" name="Preference Configuration" parent="org.eclipse.cdt.build.core.prefbase.cfg">
+<folderInfo id="preference.org.eclipse.cdt.managedbuilder.core.configurationDataProvider.1510318341." name="/" resourcePath="">
+<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.407447051" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
+<targetPlatform id="org.eclipse.cdt.build.core.prefbase.toolchain.407447051.1470931541" name=""/>
+<builder id="org.eclipse.cdt.build.core.settings.default.builder.823611263" keepEnvironmentInBuildfile="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
+<tool id="org.eclipse.cdt.build.core.settings.holder.libs.1685234798" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
+<tool id="org.eclipse.cdt.build.core.settings.holder.570824141" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
+<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.491129717" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
+<listOptionValue builtIn="false" value="/usr/include/lua5.1"/>
+<listOptionValue builtIn="false" value="/usr/include"/>
+</option>
+<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.858094059" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
+</tool>
+<tool id="org.eclipse.cdt.build.core.settings.holder.344617955" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
+<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.564526987" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
+<listOptionValue builtIn="false" value="/usr/include/lua5.1"/>
+<listOptionValue builtIn="false" value="/usr/include"/>
+</option>
+<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1426860237" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
+</tool>
+<tool id="org.eclipse.cdt.build.core.settings.holder.869454750" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
+<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.838425449" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
+<listOptionValue builtIn="false" value="/usr/include/lua5.1"/>
+<listOptionValue builtIn="false" value="/usr/include"/>
+</option>
+<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1755775295" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
+</tool>
+</toolChain>
+</folderInfo>
+</configuration>
+</storageModule>
+<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="preference.org.eclipse.cdt.managedbuilder.core.configurationDataProvider.1510318341" moduleId="org.eclipse.cdt.core.settings" name="Preference Configuration">
+<externalSettings/>
+<extensions>
+<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+</extensions>
+</storageModule>
+<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+<storageModule moduleId="scannerConfiguration">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<scannerConfigBuildInfo instanceId="preference.org.eclipse.cdt.managedbuilder.core.configurationDataProvider.1510318341">
+<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="makefileGenerator">
+<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+<buildOutputProvider>
+<openAction enabled="true" filePath=""/>
+<parser enabled="true"/>
+</buildOutputProvider>
+<scannerInfoProvider id="specsFile">
+<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+<parser enabled="true"/>
+</scannerInfoProvider>
+</profile>
+</scannerConfigBuildInfo>
+</storageModule>
+</cconfiguration>
+</storageModule>
+<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+<project id="luci.null.949486034" name="luci"/>
+</storageModule>
+</cproject>

+ 78 - 0
package/luci/.project

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>luci</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<triggers>clean,full,incremental,</triggers>
+			<arguments>
+				<dictionary>
+					<key>?name?</key>
+					<value></value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.append_environment</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+					<value>all</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.buildArguments</key>
+					<value></value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.buildCommand</key>
+					<value>make</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+					<value>clean</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.contents</key>
+					<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+					<value>false</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.enableFullBuild</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+					<value>all</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.stopOnError</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+					<value>true</value>
+				</dictionary>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.dltk.lua.core.nature</nature>
+	</natures>
+</projectDescription>

+ 4 - 6
package/luci/applications/luci-app-adblock/Makefile

@@ -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

+ 45 - 1
package/luci/applications/luci-app-adblock/luasrc/controller/adblock.lua

@@ -1,12 +1,54 @@
+-- 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 templ = 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", {hideresetbtn=true, hidesavebtn=true}), _("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"}, template("adblock/query"), _("Query domains"), 140).leaf = true
+	entry({"admin", "services", "adblock", "advanced", "result"}, call("queryData"), nil, 150).leaf = true
+end
 
-	entry({"admin", "services", "adblock"}, cbi("adblock"), _("Adblock"), 40)
+function logread()
+	local logfile
+
+	if nixio.fs.access("/var/log/messages") then
+		logfile = util.trim(util.exec("cat /var/log/messages | grep 'adblock'"))
+	else
+		logfile = util.trim(util.exec("logread -e 'adblock'"))
+	end
+	templ.render("adblock/logread", {title = i18n.translate("Adblock Logfile"), content = logfile})
+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

+ 0 - 57
package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock.lua

@@ -1,63 +0,0 @@
-
-m = Map("adblock", translate("Adblock"),
-	translate("Configuration of the adblock package to block ad/abuse domains by using DNS."))
-
-
-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"
-
-
-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"))
-
-
-s2 = m:section(NamedSection, "global", "adblock", translate("Backup options"))
-
-o4 = s2:option(Flag, "adb_backup", translate("Enable blocklist backup"))
-o4.rmempty = false
-o4.default = 0
-
-o5 = s2:option(Value, "adb_backupdir", translate("Backup directory"))
-o5.rmempty = false
-o5.datatype = "directory"
-
-
-e = m:section(NamedSection, "global", "adblock", translate("Extra options"),
-	translate("Options for further tweaking in case the defaults are not suitable for you."))
-
-a = e:option(Flag, "adb_debug", translate("Enable verbose debug logging"))
-a.default = a.disabled
-a.rmempty = false
-
-a = e:option(Value, "adb_iface", translate("Restrict reload trigger to certain interface(s)"),
-	translate("Space separated list of wan interfaces that trigger reload action. " ..
-		"To disable reload trigger set it to 'false'. Default: empty"))
-a.datatype = "network"
-a.rmempty = true
-
-return m
-

+ 52 - 0
package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua

@@ -0,0 +1,52 @@
+-- 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."))
+	m.reset = false
+	m.submit = false
+	return m
+end
+
+if nixio.fs.stat(adbinput).size > 524288 then
+	m = SimpleForm("error", nil,
+		translate("The file size is too large for online editing in LuCI (&gt; 512 KB). ")
+		.. translate("Please edit this file directly in a terminal session."))
+	m.reset = false
+	m.submit = false
+	return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("adblock/config_css"))
+m.submit = translate("Save")
+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

+ 39 - 0
package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua

@@ -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 adbinput = "/etc/config/adblock"
+
+if not nixio.fs.access(adbinput) 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("adblock/config_css"))
+m.submit = translate("Save")
+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

+ 237 - 0
package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua

@@ -0,0 +1,237 @@
+-- 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("luci.model.uci").cursor()
+local sys      = require("luci.sys")
+local util     = require("luci.util")
+local dump     = util.ubus("network.interface", "dump", {})
+local json     = require("luci.jsonc")
+local adbinput = uci.get("adblock", "global", "adb_rtfile") or "/tmp/adb_runtime.json"
+
+if not uci:get_first("adblock", "adblock", "adb_trigger") then
+	m = SimpleForm("error", nil, translate("Please update your adblock config file to use this package. ")
+	.. translatef("In OPKG use the '--force-maintainer' option to overwrite the pre-existing config file or download a fresh default config from "
+	.. "<a href=\"%s\" target=\"_blank\">"
+	.. "here</a>", "https://raw.githubusercontent.com/openwrt/packages/master/net/adblock/files/adblock.conf"))
+	m.submit = false
+	m.reset = false
+	return m
+end
+
+m = Map("adblock", translate("Adblock"),
+	translate("Configuration of the adblock package to block ad/abuse domains by using DNS. ")
+	.. translatef("For further information "
+	.. "<a href=\"%s\" target=\"_blank\">"
+	.. "see online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md"))
+
+function m.on_after_commit(self)
+	function e4.validate(self, value)
+		if value == "0" then
+			luci.sys.call("/etc/init.d/adblock reload >/dev/null 2>&1")
+		else
+			luci.sys.call("/etc/init.d/adblock start >/dev/null 2>&1")
+		end
+	end
+	luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock"))
+end
+
+-- Main adblock options
+
+s = m:section(NamedSection, "global", "adblock")
+
+local parse = json.parse(fs.readfile(adbinput) or "")
+if parse then
+	status  = parse.data.adblock_status
+	version = parse.data.adblock_version
+	domains = parse.data.blocked_domains
+	fetch   = parse.data.fetch_utility
+	backend = parse.data.dns_backend
+	rundate = parse.data.last_rundate
+end
+
+o1 = s:option(Flag, "adb_enabled", translate("Enable Adblock"))
+o1.default = o1.disabled
+o1.rmempty = false
+
+btn = s:option(Button, "", translate("Suspend / Resume Adblock"))
+if parse and status == "enabled" then
+	btn.inputtitle = translate("Suspend")
+	btn.inputstyle = "reset"
+	btn.disabled = false
+	function btn.write()
+		luci.sys.call("/etc/init.d/adblock suspend >/dev/null 2>&1")
+		luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock"))
+	end
+elseif parse and status == "paused" then
+	btn.inputtitle = translate("Resume")
+	btn.inputstyle = "apply"
+	btn.disabled = false
+	function btn.write()
+		luci.sys.call("/etc/init.d/adblock resume >/dev/null 2>&1")
+		luci.http.redirect(luci.dispatcher.build_url("admin", "services", "adblock"))
+	end
+else
+	btn.inputtitle = translate("-------")
+	btn.inputstyle = "button"
+	btn.disabled = true
+end
+
+o2 = s:option(ListValue, "adb_dns", translate("DNS Backend (DNS Directory)"),
+	translate("List of supported DNS backends with their default list export directory.<br />")
+	.. translate("To overwrite the default path use the 'DNS Directory' option in the extra section below."))
+o2:value("dnsmasq", "dnsmasq (/tmp/dnsmasq.d)")
+o2:value("unbound", "unbound (/var/lib/unbound)")
+o2:value("named", "bind (/var/lib/bind)")
+o2:value("kresd", "kresd (/etc/kresd)")
+o2:value("dnscrypt-proxy","dnscrypt-proxy (/tmp)")
+o2.default = "dnsmasq"
+o2.rmempty = false
+
+o3 = s:option(ListValue, "adb_trigger", translate("Startup Trigger"),
+	translate("List of available network interfaces. By default the startup will be triggered by the 'wan' interface.<br />")
+	.. translate("Choose 'none' to disable automatic startups, 'timed' to use a classic timeout (default 30 sec.) or select another trigger interface."))
+o3:value("none")
+o3:value("timed")
+if dump then
+	local i, v
+	for i, v in ipairs(dump.interface) do
+		if v.interface ~= "loopback" then
+			o3:value(v.interface)
+		end
+	end
+end
+o3.rmempty = false
+
+-- Runtime information
+
+ds = s:option(DummyValue, "", translate("Runtime Information"))
+ds.template = "cbi/nullsection"
+
+dv1 = s:option(DummyValue, "", translate("Adblock Status"))
+dv1.template = "adblock/runtime"
+if parse == nil then
+	dv1.value = translate("n/a")
+else
+	if status == "error" then
+		dv1.value = translate("error")
+	elseif status == "disabled" then
+		dv1.value = translate("disabled")
+	elseif status == "paused" then
+		dv1.value = translate("paused")
+	else
+		dv1.value = translate("enabled")
+	end
+end
+
+dv2 = s:option(DummyValue, "", translate("Adblock Version"))
+dv2.template = "adblock/runtime"
+if parse == nil then
+	dv2.value = translate("n/a")
+else
+	dv2.value = version
+end
+
+dv3 = s:option(DummyValue, "", 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 = translate("n/a")
+else
+	dv3.value = fetch
+end
+
+dv4 = s:option(DummyValue, "", translate("DNS Backend (DNS Directory)"))
+dv4.template = "adblock/runtime"
+if parse == nil then
+	dv4.value = translate("n/a")
+else
+	dv4.value = backend
+end
+
+dv5 = s:option(DummyValue, "", translate("Overall Blocked Domains"))
+dv5.template = "adblock/runtime"
+if parse == nil then
+	dv5.value = translate("n/a")
+else
+	dv5.value = domains
+end
+
+dv6 = s:option(DummyValue, "", translate("Last Run"))
+dv6.template = "adblock/runtime"
+if parse == nil then
+	dv6.value = translate("n/a")
+else
+	dv6.value = rundate
+end
+
+-- Blocklist table
+
+bl = m:section(TypedSection, "source", translate("Blocklist Sources"),
+	translate("Available blocklist sources. ")
+	.. translate("List URLs and Shallalist category selections are configurable in the 'Advanced' section.<br />")
+	.. translate("Caution: Please don't select big lists or many lists at once on low memory devices to prevent OOM exceptions!"))
+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_debug", translate("Verbose Debug Logging"),
+	translate("Enable verbose debug logging in case of any processing error."))
+e1.default = e1.disabled
+e1.rmempty = false
+
+e2 = e:option(Flag, "adb_forcedns", translate("Force Local DNS"),
+	translate("Redirect all DNS queries from 'lan' zone to the local resolver."))
+e2.default = e2.disabled
+e2.rmempty = false
+
+e3 = 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)"))
+e3.default = e3.disabled
+e3.rmempty = false
+
+e4 = e:option(Flag, "adb_manmode", translate("Manual / Backup mode"),
+	translate("Do not automatically update blocklists during startup, use blocklist backups instead."))
+e4.default = e4.disabled
+e4.rmempty = false
+
+e5 = e:option(Flag, "adb_backup", translate("Enable Blocklist Backup"),
+	translate("Create compressed blocklist backups, they will be used in case of download errors or during startup in manual mode."))
+e5.default = e5.disabled
+e5.rmempty = false
+
+e6 = e:option(Value, "adb_backupdir", translate("Backup Directory"),
+	translate("Target directory for adblock backups. Please use only non-volatile disks, no ram/tmpfs drives."))
+e6.datatype = "directory"
+e6.default = "/mnt"
+e6.rmempty = false
+
+e7 = e:option(Value, "adb_dnsdir", translate("DNS Directory"),
+	translate("Target directory for the generated blocklist 'adb_list.overall'."))
+e7.datatype = "directory"
+e7.optional = true
+
+e8 = e:option(Value, "adb_triggerdelay", translate("Trigger Delay"),
+	translate("Additional trigger delay in seconds before adblock processing begins."))
+e8.datatype = "range(1,60)"
+e8.optional = true
+
+return m

+ 51 - 0
package/luci/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua

@@ -0,0 +1,51 @@
+-- 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."))
+	m.reset = false
+	m.submit = false
+	return m
+end
+
+if nixio.fs.stat(adbinput).size > 524288 then
+	m = SimpleForm("error", nil,
+	translate("The file size is too large for online editing in LuCI (&gt; 512 KB). ")
+	.. translate("Please edit this file directly in a terminal session."))
+	m.reset = false
+	m.submit = false
+	return m
+end
+
+m = SimpleForm("input", nil)
+m:append(Template("adblock/config_css"))
+m.submit = translate("Save")
+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

+ 10 - 0
package/luci/applications/luci-app-adblock/luasrc/view/adblock/config_css.htm

@@ -0,0 +1,10 @@
+<style type="text/css">
+	textarea
+	{
+		border: 1px solid #cccccc;
+		padding: 5px;
+		font-size: 12px;
+		font-family: monospace;
+		resize: none;
+	}
+</style>

+ 14 - 0
package/luci/applications/luci-app-adblock/luasrc/view/adblock/logread.htm

@@ -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%>

+ 65 - 0
package/luci/applications/luci-app-adblock/luasrc/view/adblock/query.htm

@@ -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%>

+ 10 - 0
package/luci/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm

@@ -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:transparent;color:#0069d6;" value="<%=self:cfgvalue(section)%>" disabled="disabled" />
+
+<%+cbi/valuefooter%>

+ 337 - 0
package/luci/applications/luci-app-adblock/po/it/adblock.po

@@ -0,0 +1,337 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 17/09/2017\n"
+"Last-Translator: Bubu83 <bubu83@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.0.3\n"
+"Language: it\n"
+
+msgid "-------"
+msgstr ""
+
+msgid "Adblock"
+msgstr "Adblock"
+
+msgid "Adblock Logfile"
+msgstr "Registro Adblock"
+
+msgid "Adblock Status"
+msgstr "Status Adblock"
+
+msgid "Adblock Version"
+msgstr "Versione Adblock"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr "Tempo addizionale in secondi di attesa prima che adblock si avvii."
+
+msgid "Advanced"
+msgstr "Avanzato"
+
+msgid "Available blocklist sources."
+msgstr "Fonti lista di blocco disponibili."
+
+msgid "Backup Directory"
+msgstr "Directory del Backup"
+
+msgid "Blocklist Sources"
+msgstr "Fonti lista di Blocco"
+
+msgid ""
+"Caution: Please don't select big lists or many lists at once on low memory "
+"devices to prevent OOM exceptions!"
+msgstr ""
+"Attenzione: Per favore non selezionare grandi liste o molte liste alla volta "
+"su dispositivi con poca memoria per prevenire errori OOM!"
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
+msgstr ""
+"Scegli 'none' per disabilitare l'avvio automatico, 'timed' per usare un "
+"classico timeout (default 30 sec.) o seleziona un'altra interfaccia di avvio."
+
+msgid "Collecting data..."
+msgstr "Raccogliendo dati..."
+
+msgid ""
+"Configuration of the adblock package to block ad/abuse domains by using DNS."
+msgstr ""
+"Configurazione del pacchetto adblock per bloccare domini pubblicità/abuso "
+"usando i DNS."
+
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in manual mode."
+msgstr ""
+"Crea i backup compressi delle liste di blocco, saranno usati in caso di "
+"errori di download o durante l'avvio in modalità manuale."
+
+msgid "DNS Backend (DNS Directory)"
+msgstr ""
+
+msgid "DNS Directory"
+msgstr "Directory DNS"
+
+msgid "Description"
+msgstr "Descrizione"
+
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr ""
+"Non aggiornare automaticamente le liste durante l'avvio, usa invece i backup "
+"della lista di blocco."
+
+msgid "Download Utility (SSL Library)"
+msgstr ""
+
+msgid "Edit Blacklist"
+msgstr "Modifica Lista Nera"
+
+msgid "Edit Configuration"
+msgstr "Modifica Configurazione"
+
+msgid "Edit Whitelist"
+msgstr "Modifica Lista Bianca"
+
+msgid "Enable Adblock"
+msgstr "Attiva Adblock"
+
+msgid "Enable Blocklist Backup"
+msgstr "Attiva Backup Lista di Blocco"
+
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(&lt; 64 MB RAM)"
+msgstr ""
+"Attiva l'ordinamento globale / rimozione duplicati stressante per la memoria "
+"su dispositivi con poca memoria (&lt; 64 MB RAM)"
+
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr ""
+"Abilita il registro dettagliato in caso di qualsiasi errore di processo."
+
+msgid "Enabled"
+msgstr "Abilitato"
+
+msgid "Extra Options"
+msgstr "Opzioni Extra"
+
+msgid ""
+"For SSL protected blocklist sources you need a suitable SSL library, e.g. "
+"'libustream-ssl' or the wget 'built-in'."
+msgstr ""
+"Per le fonti delle liste protette da SSL hai bisogno di una libreria SSL "
+"adatta, p.e. 'libustream-ssl' o wget 'built-in'."
+
+msgid ""
+"For further information <a href=\"%s\" target=\"_blank\">see online "
+"documentation</a>"
+msgstr ""
+"Per ulteriori informazioni <a href=\"%s\" target=\"_blank\">vedi "
+"documentazione online</a>"
+
+msgid "Force Local DNS"
+msgstr "Forza DNS Locale"
+
+msgid "Force Overall Sort"
+msgstr "Forza Ordinamento Globale"
+
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
+msgstr ""
+"In OPKG usa l'opzione '--force-maintainer' per sovrascrivere il pre-"
+"esistente file di configurazione o scarica una nuova configurazione di "
+"default da <a href=\"%s\" target=\"_blank\">qui</a>"
+
+msgid "Input file not found, please check your configuration."
+msgstr "File di input non trovato, per favore controlla la tua configurazione."
+
+msgid "Invalid domain specified!"
+msgstr "Dominio invalido specificato!"
+
+msgid "Last Run"
+msgstr "Ultimo Avvio"
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section.<br />"
+msgstr ""
+"Le selezioni degli URL delle liste e categorie Shallalist sono configurabili "
+"nella sezione 'Avanzato'.<br />"
+
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
+msgstr ""
+"Lista delle interfacce di rete disponibili. Per default l'avvio sarà "
+"innescato dall'interfaccia 'wan'.<br />"
+
+msgid ""
+"List of supported DNS backends with their default list export directory.<br /"
+">"
+msgstr ""
+"Lista dei backend DNS supportati con la loro directory di default di esporto "
+"della lista.<br />"
+
+msgid "Loading"
+msgstr "Caricando"
+
+msgid "Manual / Backup mode"
+msgstr "Modalità Manuale / Backup"
+
+msgid "No"
+msgstr "No"
+
+msgid ""
+"Options for further tweaking in case the defaults are not suitable for you."
+msgstr ""
+"Opzioni per ulteriori modifiche in caso che quelle di default non ti sono "
+"adatte."
+
+msgid "Overall Blocked Domains"
+msgstr "Totale Domini Bloccati"
+
+msgid "Overview"
+msgstr "Riassunto"
+
+msgid ""
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+"Per favore aggiungi solo un dominio per linea. I commenti introdotti con '#' "
+"sono consentiti - indirizzi ip , jolly e regex non lo sono."
+
+msgid "Please edit this file directly in a terminal session."
+msgstr ""
+"Per favore modifica questo file direttamente in una sessione al terminale."
+
+msgid "Please update your adblock config file to use this package."
+msgstr ""
+"Per favore aggiorna il tuo file configurazione di adblock per usare questo "
+"pacchetto."
+
+msgid "Query"
+msgstr "Interrogazione"
+
+msgid "Query domains"
+msgstr "Interrogazione domini"
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+"Reindirizza tutte le richieste DNS dalla zona 'lan' al risolvitore locale."
+
+msgid "Resume"
+msgstr "Riprendi"
+
+msgid "Runtime Information"
+msgstr "Informazione di Runtime"
+
+msgid "SSL req."
+msgstr "Ric. SSL"
+
+msgid "Save"
+msgstr "Salva"
+
+msgid "Startup Trigger"
+msgstr "Innesco d'Avvio"
+
+msgid "Suspend"
+msgstr "Sospendi"
+
+msgid "Suspend / Resume Adblock"
+msgstr "Sospendi / Riprendi Adblock"
+
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, no "
+"ram/tmpfs drives."
+msgstr ""
+"Directory per i backup di adblock. Per favore usa solo dischi non volatili, "
+"non dischi ram/tmpfs."
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr "Directory per la lista di blocco generata 'adb_list.overall'."
+
+msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."
+msgstr ""
+"La grandezza del file è troppo grande per modificarla online in LuCI (&gt; "
+"512 KB)."
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+"<br />"
+msgstr ""
+"Questo form ti consente di modificare il contenuto della lista nera di "
+"adblock (%s).<br />"
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+"<br />"
+msgstr ""
+"Questo form ti consente di modificare il contenuto della lista bianca di "
+"adblock (%s).<br />"
+
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+"Questo form ti consente di modificare il contenuto del file principale di "
+"configurazione di adblock (/etc/config/adblock)."
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr ""
+"Questo form ti consente di interrogare le liste di blocco attive per "
+"determinati domini, p.e. per metterli nella lista bianca."
+
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr ""
+"Questo form mostra l'output del registro, prefiltrato per messaggi relativi "
+"solo ad adblock."
+
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr ""
+"Per sovrascrivere il percorso di default usa l'opzione 'Directory DNS' nella "
+"sezione aggiuntiva sotto."
+
+msgid "Trigger Delay"
+msgstr "Ritardo Innesco"
+
+msgid "Verbose Debug Logging"
+msgstr "Registro di Debug Dettagliato"
+
+msgid "View Logfile"
+msgstr "Vedi Registro"
+
+msgid "Waiting for command to complete..."
+msgstr "Aspettando che il comando venga completato..."
+
+msgid "Yes"
+msgstr "Sì"
+
+msgid "disabled"
+msgstr "disabilitato"
+
+msgid "enabled"
+msgstr "abilitato"
+
+msgid "error"
+msgstr "errore"
+
+msgid "n/a"
+msgstr "n/d"
+
+msgid "paused"
+msgstr "in pausa"

+ 273 - 76
package/luci/applications/luci-app-adblock/po/ja/adblock.po

@@ -8,132 +8,329 @@ msgstr ""
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 2.0.3\n"
 "Language: ja\n"
 
-msgid ""
-"). Note that list URLs and Shallalist category selections are not "
-"configurable via Luci."
-msgstr ""
-")。これらのリストのURLおよびshallaリストのカテゴリー選択は、Luciによって設定"
-"できないことに注意します。"
+msgid "-------"
+msgstr "(利用不可)"
 
 msgid "Adblock"
 msgstr "Adblock"
 
-msgid "Available blocklist sources ("
-msgstr "利用可能なブロックリスト提供元です("
+msgid "Adblock Logfile"
+msgstr "Adblock ログファイル"
+
+msgid "Adblock Status"
+msgstr "Adblock ステータス"
+
+msgid "Adblock Version"
+msgstr "Adblock バージョン"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr "Adblock の処理が開始されるまでの、追加の遅延時間(秒)です。"
+
+msgid "Advanced"
+msgstr "詳細設定"
 
-msgid "Backup directory"
-msgstr "バックアップ ディレクトリ"
+msgid "Available blocklist sources."
+msgstr "利用可能なブロックリスト提供元です。"
 
-msgid "Backup options"
-msgstr "バックアップ オプション"
+msgid "Backup Directory"
+msgstr "バックアップ先 ディレクトリ"
 
-msgid "Blocklist sources"
+msgid "Blocklist Sources"
 msgstr "ブロックリスト提供元"
 
+msgid ""
+"Caution: Please don't select big lists or many lists at once on low memory "
+"devices to prevent OOM exceptions!"
+msgstr ""
+"警告: メモリー容量の小さいデバイスでは OutOfMemory (OOM) 例外を防ぐため、大き"
+"いリストや一度にたくさんのリストを選択しないでください。"
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
+msgstr ""
+"自動スタートアップを無効にするには 'none' を、従来のタイムアウト(既定値: 30"
+"秒)を使用するには 'timed' を選択してください。または、他のトリガとなるイン"
+"ターフェースを選択してください。"
+
+msgid "Collecting data..."
+msgstr "データ収集中です..."
+
 msgid ""
 "Configuration of the adblock package to block ad/abuse domains by using DNS."
 msgstr ""
-"広告/不正ドメインをDNSを利用してブロックする、adblock パッケージの設定です。"
+"DNS の利用によって広告/不正ドメインをブロックする、Adblock パッケージの設定で"
+"す。"
+
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in manual mode."
+msgstr ""
+"圧縮されたブロックリストのバックアップを作成します。これは、リストのダウン"
+"ロードがエラーの場合、またはマニュアル モードでサービスを起動時に使用されま"
+"す。"
+
+msgid "DNS Backend (DNS Directory)"
+msgstr "DNS バックエンド(DNS ディレクトリ)"
+
+msgid "DNS Directory"
+msgstr "DNS ディレクトリ"
 
 msgid "Description"
 msgstr "説明"
 
-msgid "Enable adblock"
-msgstr "adblockの有効化"
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr ""
+"サービス起動時にブロックリストを自動的に更新せず、代わりにバックアップされた"
+"ブロックリストを使用します。"
+
+msgid "Download Utility (SSL Library)"
+msgstr "ダウンロード ユーティリティ(SSL ライブラリ)"
+
+msgid "Edit Blacklist"
+msgstr "ブラックリストの編集"
 
-msgid "Enable blocklist backup"
+msgid "Edit Configuration"
+msgstr "設定の編集"
+
+msgid "Edit Whitelist"
+msgstr "ホワイトリストの編集"
+
+msgid "Enable Adblock"
+msgstr "Adblock の有効化"
+
+msgid "Enable Blocklist Backup"
 msgstr "ブロックリスト バックアップの有効化"
 
-msgid "Enable verbose debug logging"
-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 in case of any processing error."
+msgstr ""
+"何らかの処理エラーが発生した場合に、詳細なデバッグ ログを有効にします。"
 
 msgid "Enabled"
 msgstr "有効"
 
-msgid "Extra options"
-msgstr "拡張設定"
+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 ""
-"ファイルのホワイトリスト ホスト/ドメインは、ブロックリストに登録されていても"
-"許可されます。"
+"SSLで保護されているブロックリストの取得には、適切なSSL ライブラリが必要です。"
+"例: 'libustream-ssl' または wget 'built-in'"
+
+msgid ""
+"For further information <a href=\"%s\" target=\"_blank\">see online "
+"documentation</a>"
+msgstr ""
+"詳細な情報は<a href=\"%s\" target=\"_blank\">オンライン ドキュメント</a>を確"
+"認してください。"
+
+msgid "Force Local DNS"
+msgstr "ローカル DNS の強制"
 
-msgid "Global options"
-msgstr "一般設定"
+msgid "Force Overall Sort"
+msgstr "全体ソートの強制"
+
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
+msgstr ""
+"OPKGで '--force-maintainer' オプションを使用して既存の設定ファイルを上書きす"
+"るか、 <a href=\"%s\" target=\"_blank\">ここ</a> からデフォルトの設定ファイル"
+"をダウンロードしてください。"
+
+msgid "Input file not found, please check your configuration."
+msgstr "入力ファイルが見つかりません。設定を確認してください。"
+
+msgid "Invalid domain specified!"
+msgstr "無効なドメインが指定されています!"
+
+msgid "Last Run"
+msgstr "最終実行"
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section.<br />"
+msgstr ""
+"リストの URL 及び \"Shalla\" リストのカテゴリー設定は、'詳細設定' セクション"
+"で設定することができます。<br />"
+
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
+msgstr ""
+"利用可能なネットワーク インターフェースの一覧です。デフォルトでは 'wan' イン"
+"ターフェースによりスタートアップがトリガされます。"
+
+msgid ""
+"List of supported DNS backends with their default list export directory.<br /"
+">"
+msgstr ""
+"サポートされる DNS バックエンドと、それぞれのデフォルトのリスト出力先ディレク"
+"トリのリストです<br />"
+
+msgid "Loading"
+msgstr "読込中"
+
+msgid "Manual / Backup mode"
+msgstr "手動 / バックアップ モード"
+
+msgid "No"
+msgstr "いいえ"
 
 msgid ""
 "Options for further tweaking in case the defaults are not suitable for you."
 msgstr "デフォルト設定が適切でない場合、追加で設定するためのオプションです。"
 
-msgid "Restrict reload trigger to certain interface(s)"
-msgstr "リロードトリガを特定のインターフェースに限定する"
+msgid "Overall Blocked Domains"
+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 "Please edit this file directly in a terminal session."
+msgstr "ターミナル セッションで直接このファイルを編集してください。"
+
+msgid "Please update your adblock config file to use this package."
+msgstr ""
+"このパッケージを使用するには、既存の Adblock 設定ファイルを更新してください。"
+
+msgid "Query"
+msgstr "検索"
+
+msgid "Query domains"
+msgstr "ドメインの検索"
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+"'lan' ゾーンからの全 DNS クエリを、ローカル リゾルバにリダイレクトします。"
+
+msgid "Resume"
+msgstr "再開"
+
+msgid "Runtime Information"
+msgstr "実行情報"
+
+msgid "SSL req."
+msgstr "SSL 必須"
+
+msgid "Save"
+msgstr "保存"
+
+msgid "Startup Trigger"
+msgstr "スタートアップ トリガ"
+
+msgid "Suspend"
+msgstr "一時停止"
+
+msgid "Suspend / Resume Adblock"
+msgstr "Adblock の一時停止 / 再開"
 
 msgid ""
-"Space separated list of wan interfaces that trigger reload action. To "
-"disable reload trigger set it to 'false'. Default: empty"
+"Target directory for adblock backups. Please use only non-volatile disks, no "
+"ram/tmpfs drives."
 msgstr ""
-"リロード実行のトリガとなる、スペースで区切られたWANインターフェースのリストで"
-"す。リロードトリガを無効にするには、 false を設定します。デフォルト:(空)"
+"Adblock バックアップの保存先ディレクトリです。 RAM/tmpfs ドライブではなく、不"
+"揮発性のドライブのみを使用してください。"
 
-msgid "Whitelist file"
-msgstr "ホワイトリスト ファイル"
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr "生成されたブロックリスト 'adb_list.overall' の保存先ディレクトリです。"
 
-msgid "see list details"
-msgstr "リストの詳細を見る"
+msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."
+msgstr ""
+"ファイル サイズが大きすぎる(512 KB超)ため、 LuCI 上でオンライン編集できませ"
+"ん。"
 
-#~ msgid "Count"
-#~ msgstr "カウント"
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+"<br />"
+msgstr ""
+"このフォームでは、Adblock ブラックリスト (%s) の内容を変更することができま"
+"す。<br />"
 
-#~ msgid "Do not write status info to flash"
-#~ msgstr "ステータス情報をフラッシュに書き込まない"
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+"<br />"
+msgstr ""
+"このフォームでは、Adblock ホワイトリスト (%s) の内容を変更することができま"
+"す。<br />"
 
-#~ msgid "Last update of the blocklists"
-#~ msgstr "ブロックリストの最終更新日時"
+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 "List date/state"
-#~ msgstr "リスト日時/状態"
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr ""
+"デフォルトのパスを上書きするには、下記拡張セクションの 'DNS ディレクトリ' オ"
+"プションを使用します。"
 
-#~ msgid "Name of the logical lan interface"
-#~ msgstr "論理LANインターフェース名"
+msgid "Trigger Delay"
+msgstr "トリガ遅延"
 
-#~ msgid "Percentage of blocked packets (before last update, IPv4/IPv6)"
-#~ msgstr "ブロック済みパケットの割合(最終更新以前、IPv4/IPv6)"
+msgid "Verbose Debug Logging"
+msgstr "詳細なデバッグ ログ"
 
-#~ msgid "Port of the adblock uhttpd instance"
-#~ msgstr "adblock uhttpdインスタンスのポート"
+msgid "View Logfile"
+msgstr "ログファイルを見る"
 
-#~ msgid "Port of the adblock uhttpd instance for https links"
-#~ msgstr "httpsリンク用adblock uhttpdインスタンスのポート"
+msgid "Waiting for command to complete..."
+msgstr "コマンド実行中です..."
 
-#~ msgid "Redirect all DNS queries to the local resolver"
-#~ msgstr "全てのDNSクエリをローカルリゾルバにリダイレクト"
+msgid "Yes"
+msgstr "はい"
 
-#~ msgid ""
-#~ "Skip writing update status information to the config file. Status fields "
-#~ "on this page will not be updated."
-#~ msgstr ""
-#~ "更新ステータス情報をコンフィグファイルに書き込まず、スキップします。この"
-#~ "ページのステータス画面は更新されなくなります。"
+msgid "disabled"
+msgstr "無効"
 
-#~ msgid "Statistics"
-#~ msgstr "ステータス"
+msgid "enabled"
+msgstr "有効"
 
-#~ msgid "Timeout for blocklist fetch (seconds)"
-#~ msgstr "ブロックリスト取得の制限時間(秒)"
+msgid "error"
+msgstr "エラー"
 
-#~ msgid "Total count of blocked domains"
-#~ msgstr "ブロック済みドメインの合計"
+msgid "n/a"
+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サーバーへのクエリを許可する場合、この設"
-#~ "定を無効にすることもできます。"
+msgid "paused"
+msgstr "一時停止"

+ 338 - 35
package/luci/applications/luci-app-adblock/po/pt-br/adblock.po

@@ -8,65 +8,176 @@ msgstr ""
 "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"
+"Last-Translator: Luís Gabriel Lima Silva <gabrielima.si@gmail.com>\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "Language: pt_BR\n"
 
-msgid ""
-"). Note that list URLs and Shallalist category selections are not "
-"configurable via Luci."
+msgid "-------"
 msgstr ""
-"). Note que a lista de URL e as seleções de categoria da Shallalist não são "
-"configuráveis pelo Luci."
 
 msgid "Adblock"
 msgstr "Adblock"
 
-msgid "Available blocklist sources ("
-msgstr "Fontes de listas de bloqueio disponíveis ("
+msgid "Adblock Logfile"
+msgstr "Arquivo de log do Adblock"
 
-msgid "Backup directory"
-msgstr "Diretório da cópia de segurança"
+msgid "Adblock Status"
+msgstr ""
 
-msgid "Backup options"
-msgstr "Opções da cópia de segurança"
+msgid "Adblock Version"
+msgstr "Versão do Adblock"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr ""
+"Atraso de gatilho adicional em segundos antes do processamento do adblock "
+"começar."
+
+msgid "Advanced"
+msgstr "Avançado"
+
+msgid "Available blocklist sources."
+msgstr "Fontes de listas de bloqueio disponíveis."
+
+msgid "Backup Directory"
+msgstr "Diretório da cópia de segurança"
 
-msgid "Blocklist sources"
+msgid "Blocklist Sources"
 msgstr "Fontes de listas de bloqueio"
 
+msgid ""
+"Caution: Please don't select big lists or many lists at once on low memory "
+"devices to prevent OOM exceptions!"
+msgstr ""
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
+msgstr ""
+
+msgid "Collecting data..."
+msgstr "Coletando dados..."
+
 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 ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in manual mode."
+msgstr ""
+"Crie backups comprimidos das listas de bloqueio, eles serão usados em caso "
+"de erro dedownload ou durante o início em modo manual."
+
+msgid "DNS Backend (DNS Directory)"
+msgstr ""
+
+msgid "DNS Directory"
+msgstr ""
+
 msgid "Description"
 msgstr "Descrição"
 
-msgid "Enable adblock"
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr ""
+"Não atualize as listas de bloqueio automaticamente durante o início, use o "
+"backup das listas como alternativa."
+
+msgid "Download Utility (SSL Library)"
+msgstr "Utilitário de Download (Biblioteca SSL)"
+
+msgid "Edit Blacklist"
+msgstr "Editar Lista de Bloqueio"
+
+msgid "Edit Configuration"
+msgstr "Editar Configuração"
+
+msgid "Edit Whitelist"
+msgstr "Editar Lista Permitida"
+
+msgid "Enable Adblock"
 msgstr "Habilitar adblock"
 
-msgid "Enable blocklist backup"
+msgid "Enable Blocklist Backup"
 msgstr "Habilitar cópia de segurança da lista de bloqueio"
 
-msgid "Enable verbose debug logging"
-msgstr "Habilite registros detalhados para depuração"
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(&lt; 64 MB RAM)"
+msgstr ""
+"Ativar tipo geral intenso de memória / duplicar remoção em dispositivos com "
+"pouca memória (&lt; 64 MB RAM)"
+
+msgid "Enable verbose debug logging in case of any processing error."
+msgstr ""
 
 msgid "Enabled"
 msgstr "Habilitado"
 
-msgid "Extra options"
+msgid "Extra Options"
 msgstr "Opções adicionais"
 
 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 ""
-"Arquivo com a lista branca dos equipamentos/domínios que serão autorizados "
-"mesmo estando na lista de bloqueio."
+"Para uma lista de bloqueio protegida por SSL você precisa de uma biblioteca "
+"SSL adequada, e.x. 'libustream-ssl' ou o wget 'built-in'."
 
-msgid "Global options"
-msgstr "Opções Globais"
+msgid ""
+"For further information <a href=\"%s\" target=\"_blank\">see online "
+"documentation</a>"
+msgstr ""
+"Para outras informações <a href=\"%s\" target=\"_blank\">veja a documentação "
+"online</a>"
+
+msgid "Force Local DNS"
+msgstr "Force o DNS local"
+
+msgid "Force Overall Sort"
+msgstr "Force Tipo Geral"
+
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr "Arquivo de entrada não encontrado, por favor cheque sua configuração."
+
+msgid "Invalid domain specified!"
+msgstr "Domínio especificado inválido!"
+
+msgid "Last Run"
+msgstr ""
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section.<br />"
+msgstr ""
+
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory.<br /"
+">"
+msgstr ""
+
+msgid "Loading"
+msgstr "Carregando"
+
+msgid "Manual / Backup mode"
+msgstr "Manual / Modo backup"
+
+msgid "No"
+msgstr "Não"
 
 msgid ""
 "Options for further tweaking in case the defaults are not suitable for you."
@@ -74,19 +185,211 @@ msgstr ""
 "Opções para aprimoramentos adicionais caso as opções padrão não sejam "
 "suficientes para você."
 
-msgid "Restrict reload trigger to certain interface(s)"
-msgstr "Restringir o gatilho de recarga para somente alguma(s) interface(s)"
+msgid "Overall Blocked Domains"
+msgstr ""
+
+msgid "Overview"
+msgstr "Visão geral"
 
 msgid ""
-"Space separated list of wan interfaces that trigger reload action. To "
-"disable reload trigger set it to 'false'. Default: empty"
+"Please add only one domain per line. Comments introduced with '#' are "
+"allowed - ip addresses, wildcards and regex are not."
+msgstr ""
+
+msgid "Please edit this file directly in a terminal session."
+msgstr "Por favor edite esse arquivo direto em uma sessão de terminal."
+
+msgid "Please update your adblock config file to use this package."
+msgstr ""
+
+msgid "Query"
+msgstr "Consulta"
+
+msgid "Query domains"
+msgstr "Consulta de domínios"
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+
+msgid "Resume"
 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 "Runtime Information"
+msgstr "Informação de execução"
+
+msgid "SSL req."
+msgstr "req. de SSL"
+
+msgid "Save"
+msgstr "Salvar"
+
+msgid "Startup Trigger"
+msgstr ""
+
+msgid "Suspend"
+msgstr ""
+
+msgid "Suspend / Resume Adblock"
+msgstr "Suspender / Resumir adblock"
+
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, no "
+"ram/tmpfs drives."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr ""
+
+msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."
+msgstr ""
+"O tamanho do arquivo é muito grande para edição online no LuCI (&gt; 512 KB)."
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+"<br />"
+msgstr ""
+"Esse formulário permite que você modifique o conteúdo das listas de bloqueio "
+"do adblock (%s).<br />"
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+"<br />"
+msgstr ""
+"Esse formulário permite que você modifique o conteúdo das listas de "
+"permissão do adblock (%s).<br />"
+
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+"Esse formulário permite que você modifique o conteúdo das do arquivo de "
+"configuração principal (/etc/config/adblock)."
+
+msgid ""
+"This form allows you to query active block lists for certain domains, e.g. "
+"for whitelisting."
+msgstr ""
+"Esse formulário permite que você consulte listas de blocos ativos para "
+"certos domínios, e.x. para listas de permissão."
+
+msgid ""
+"This form shows the syslog output, pre-filtered for adblock related messages "
+"only."
+msgstr ""
+"Esse formulário mostra a saída do syslog, pré-filtrado para mensagens do "
+"adblock  apenas."
+
+msgid ""
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr ""
+
+msgid "Trigger Delay"
+msgstr "Atraso no gatilho"
+
+msgid "Verbose Debug Logging"
+msgstr ""
+
+msgid "View Logfile"
+msgstr "Ver arquivo de log"
+
+msgid "Waiting for command to complete..."
+msgstr "Aguardando por comando para completar..."
+
+msgid "Yes"
+msgstr "Sim"
+
+msgid "disabled"
+msgstr ""
+
+msgid "enabled"
+msgstr ""
+
+msgid "error"
+msgstr ""
+
+msgid "n/a"
+msgstr "n/d"
+
+msgid "paused"
+msgstr ""
+
+#~ msgid "Blocked domains (overall)"
+#~ msgstr "Domínios bloqueados (total)"
+
+#~ msgid "DNS backend"
+#~ msgstr "Porta dos fundos de DNS"
+
+#~ msgid "Enable verbose debug logging"
+#~ msgstr "Habilite registros detalhados para depuração"
+
+#~ msgid "Last rundate"
+#~ msgstr "Última data de execução"
+
+#~ msgid ""
+#~ "Note that list URLs and Shallalist category selections are configurable "
+#~ "in the 'Advanced' section."
+#~ msgstr ""
+#~ "Observe que as URLs da lista e as seleções da categoria Shallalist são "
+#~ "configuráveis na secção 'Avançada'."
+
+#~ msgid "Redirect all DNS queries to the local resolver."
+#~ msgstr "Redirecione todas as consultas de DNS para o resolvedor local."
+
+#~ msgid "Restrict interface trigger to certain interface(s)"
+#~ msgstr "Restingir o gatilho de interface para certas interface(s)"
+
+#~ msgid "Resume adblock"
+#~ msgstr "Resumir adblock"
+
+#~ msgid "Status"
+#~ msgstr "Estado"
+
+#~ msgid "active"
+#~ msgstr "ativo"
+
+#~ msgid "no domains blocked"
+#~ msgstr "nenhum domínio bloqueado"
+
+#~ msgid "suspended"
+#~ msgstr "suspenso"
+
+#~ 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"
+#~ msgid "see list details"
+#~ msgstr "veja os detalhes da lista"

+ 301 - 29
package/luci/applications/luci-app-adblock/po/sv/adblock.po

@@ -1,75 +1,347 @@
 msgid ""
 msgstr "Content-Type: text/plain; charset=UTF-8\n"
 
-msgid ""
-"). Note that list URLs and Shallalist category selections are not "
-"configurable via Luci."
+msgid "-------"
 msgstr ""
 
 msgid "Adblock"
-msgstr "Blockering av annonser"
+msgstr "Adblock"
 
-msgid "Available blocklist sources ("
-msgstr "Tillgängliga källor för blockeringslistor ("
+msgid "Adblock Logfile"
+msgstr "Adblock's loggfil"
 
-msgid "Backup directory"
-msgstr "Säkerhetskopiera mapp"
+msgid "Adblock Status"
+msgstr ""
 
-msgid "Backup options"
-msgstr "Alternativ för säkerhetskopiering"
+msgid "Adblock Version"
+msgstr "Version för Adblock"
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr ""
+
+msgid "Advanced"
+msgstr "Avancerat"
+
+msgid "Available blocklist sources."
+msgstr "Tillgängliga källor för blockeringslistor"
+
+msgid "Backup Directory"
+msgstr "Säkerhetskopiera mapp"
 
-msgid "Blocklist sources"
+msgid "Blocklist Sources"
 msgstr "Källor för blockeringslistor"
 
+msgid ""
+"Caution: Please don't select big lists or many lists at once on low memory "
+"devices to prevent OOM exceptions!"
+msgstr ""
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
+msgstr ""
+
+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 ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in manual mode."
+msgstr ""
+
+msgid "DNS Backend (DNS Directory)"
+msgstr ""
+
+msgid "DNS Directory"
+msgstr ""
 
 msgid "Description"
 msgstr "Beskrivning"
 
-msgid "Enable adblock"
-msgstr "Aktivera abblock"
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
+msgstr ""
+"Uppdatera inte automatiskt blockeringlistor vid uppstarten, använd "
+"säkerhetskopierade blockeringslistor istället."
+
+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 blocklist backup"
+msgid "Enable Adblock"
+msgstr "Aktivera adblock"
+
+msgid "Enable Blocklist Backup"
 msgstr "Aktivera säkerhetskopiering av blockeringslistan"
 
-msgid "Enable verbose debug logging"
+msgid ""
+"Enable memory intense overall sort / duplicate removal on low memory devices "
+"(&lt; 64 MB RAM)"
+msgstr ""
+
+msgid "Enable verbose debug logging in case of any processing error."
 msgstr ""
 
 msgid "Enabled"
 msgstr "Aktiverad"
 
-msgid "Extra options"
+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 <a href=\"%s\" target=\"_blank\">see online "
+"documentation</a>"
+msgstr ""
+"För mer information <a href=\"%s\" target=\"_blank\">se dokumentationen på "
+"internet</a>"
+
+msgid "Force Local DNS"
+msgstr "Tvinga lokal DNS"
+
+msgid "Force Overall Sort"
+msgstr ""
+
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr ""
+"Inmatningsfilen kunde inte hittas, var vänlig kontrollera din konfiguration."
+
+msgid "Invalid domain specified!"
+msgstr "Ogiltig domän angiven!"
+
+msgid "Last Run"
+msgstr ""
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section.<br />"
+msgstr ""
+
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory.<br /"
+">"
+msgstr ""
+
+msgid "Loading"
+msgstr "Laddar"
+
+msgid "Manual / Backup mode"
+msgstr "Manuell / Säkerhetskopieringsläge"
+
+msgid "No"
+msgstr "Nej"
 
 msgid ""
 "Options for further tweaking in case the defaults are not suitable for you."
 msgstr ""
 
-msgid "Restrict reload trigger to certain interface(s)"
+msgid "Overall Blocked Domains"
+msgstr ""
+
+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 "Please edit this file directly in a terminal session."
+msgstr "Vänligen redigera den här filen direkt i en terminal-session."
+
+msgid "Please update your adblock config file to use this package."
+msgstr ""
+
+msgid "Query"
+msgstr "Fråga"
+
+msgid "Query domains"
+msgstr "Fråga efter domäner"
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+
+msgid "Resume"
+msgstr ""
+
+msgid "Runtime Information"
+msgstr "Information om körtid"
+
+msgid "SSL req."
+msgstr "SSL-rek."
+
+msgid "Save"
+msgstr "Spara"
+
+msgid "Startup Trigger"
+msgstr ""
+
+msgid "Suspend"
+msgstr ""
+
+msgid "Suspend / Resume Adblock"
+msgstr "Upphäv / Återuppta adblock"
+
+msgid ""
+"Target directory for adblock backups. Please use only non-volatile disks, no "
+"ram/tmpfs drives."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr ""
+
+msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."
+msgstr "Filstorleken är för stor för online-redigering i LuCi (&gt; 512 KB)."
+
+msgid ""
+"This form allows you to modify the content of the adblock blacklist (%s)."
+"<br />"
+msgstr ""
+"Det här formuläret tillåter dig att förändra innehållet i adblock's "
+"svartlista (%s).<br />"
+
+msgid ""
+"This form allows you to modify the content of the adblock whitelist (%s)."
+"<br />"
+msgstr ""
+"Det här formuläret tillåter dig att förändra innehållet i adblock's vitlista "
+"(%s).<br />"
+
+msgid ""
+"This form allows you to modify the content of the main adblock configuration "
+"file (/etc/config/adblock)."
+msgstr ""
+"Det här formuläret tillåter dig att förändra innehållet i adblock's "
+"huvudsakliga konfigurations fil (/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 ""
 
 msgid ""
-"Space separated list of wan interfaces that trigger reload action. To "
-"disable reload trigger set it to 'false'. Default: empty"
+"To overwrite the default path use the 'DNS Directory' option in the extra "
+"section below."
+msgstr ""
+
+msgid "Trigger Delay"
+msgstr ""
+
+msgid "Verbose Debug Logging"
+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 "disabled"
+msgstr ""
+
+msgid "enabled"
+msgstr ""
+
+msgid "error"
+msgstr ""
+
+msgid "n/a"
+msgstr "n/a"
+
+msgid "paused"
 msgstr ""
 
-msgid "Whitelist file"
-msgstr "Vitlista fil"
+#~ msgid "Blocked domains (overall)"
+#~ msgstr "Blockerade domäner (övergripande)"
+
+#~ msgid "DNS backend"
+#~ msgstr "Bakände för DNS"
+
+#~ msgid "Enable verbose debug logging"
+#~ msgstr "Aktivera utförlig loggning för avlusning"
+
+#~ msgid "Last rundate"
+#~ msgstr "Senaste kördatum"
+
+#~ msgid "Redirect all DNS queries to the local resolver."
+#~ msgstr "Dirigera om alla DNS-förfrågningar till den lokala "
+
+#~ msgid "Resume adblock"
+#~ msgstr "Återuppta adblock"
+
+#~ msgid "Status"
+#~ msgstr "Status"
+
+#~ msgid "Suspend adblock"
+#~ msgstr "Upphäv adblock"
+
+#~ msgid "active"
+#~ msgstr "aktiv"
+
+#~ msgid "no domains blocked"
+#~ msgstr "inga domäner blockerades"
+
+#~ msgid "suspended"
+#~ msgstr "upphävd"
+
+#~ msgid "."
+#~ msgstr "."
+
+#~ msgid "For further information"
+#~ msgstr "För mer information"
+
+#~ 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 "see list details"
+#~ msgstr "se listans detaljer"
 
 #~ msgid "Count"
 #~ msgstr "Räkna"

+ 226 - 19
package/luci/applications/luci-app-adblock/po/templates/adblock.pot

@@ -1,70 +1,277 @@
 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 Logfile"
+msgstr ""
+
+msgid "Adblock Status"
+msgstr ""
+
+msgid "Adblock Version"
+msgstr ""
+
+msgid "Additional trigger delay in seconds before adblock processing begins."
+msgstr ""
+
+msgid "Advanced"
 msgstr ""
 
-msgid "Backup directory"
+msgid "Available blocklist sources."
 msgstr ""
 
-msgid "Backup options"
+msgid "Backup Directory"
+msgstr ""
+
+msgid "Blocklist Sources"
+msgstr ""
+
+msgid ""
+"Caution: Please don't select big lists or many lists at once on low memory "
+"devices to prevent OOM exceptions!"
+msgstr ""
+
+msgid ""
+"Choose 'none' to disable automatic startups, 'timed' to use a classic "
+"timeout (default 30 sec.) or select another trigger interface."
 msgstr ""
 
-msgid "Blocklist sources"
+msgid "Collecting data..."
 msgstr ""
 
 msgid ""
 "Configuration of the adblock package to block ad/abuse domains by using DNS."
 msgstr ""
 
+msgid ""
+"Create compressed blocklist backups, they will be used in case of download "
+"errors or during startup in manual mode."
+msgstr ""
+
+msgid "DNS Backend (DNS Directory)"
+msgstr ""
+
+msgid "DNS Directory"
+msgstr ""
+
 msgid "Description"
 msgstr ""
 
-msgid "Enable adblock"
+msgid ""
+"Do not automatically update blocklists during startup, use blocklist backups "
+"instead."
 msgstr ""
 
-msgid "Enable blocklist backup"
+msgid "Download Utility (SSL Library)"
 msgstr ""
 
-msgid "Enable verbose debug logging"
+msgid "Edit Blacklist"
+msgstr ""
+
+msgid "Edit Configuration"
+msgstr ""
+
+msgid "Edit Whitelist"
+msgstr ""
+
+msgid "Enable Adblock"
+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 in case of any processing error."
 msgstr ""
 
 msgid "Enabled"
 msgstr ""
 
-msgid "Extra options"
+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 <a href=\"%s\" target=\"_blank\">see online "
+"documentation</a>"
+msgstr ""
+
+msgid "Force Local DNS"
+msgstr ""
+
+msgid "Force Overall Sort"
+msgstr ""
+
+msgid ""
+"In OPKG use the '--force-maintainer' option to overwrite the pre-existing "
+"config file or download a fresh default config from <a href=\"%s\" target="
+"\"_blank\">here</a>"
+msgstr ""
+
+msgid "Input file not found, please check your configuration."
+msgstr ""
+
+msgid "Invalid domain specified!"
+msgstr ""
+
+msgid "Last Run"
+msgstr ""
+
+msgid ""
+"List URLs and Shallalist category selections are configurable in the "
+"'Advanced' section.<br />"
+msgstr ""
+
+msgid ""
+"List of available network interfaces. By default the startup will be "
+"triggered by the 'wan' interface.<br />"
+msgstr ""
+
+msgid ""
+"List of supported DNS backends with their default list export directory.<br /"
+">"
+msgstr ""
+
+msgid "Loading"
+msgstr ""
+
+msgid "Manual / Backup mode"
 msgstr ""
 
-msgid "Global options"
+msgid "No"
 msgstr ""
 
 msgid ""
 "Options for further tweaking in case the defaults are not suitable for you."
 msgstr ""
 
-msgid "Restrict reload trigger to certain interface(s)"
+msgid "Overall Blocked Domains"
+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 ""
+
+msgid "Please edit this file directly in a terminal session."
+msgstr ""
+
+msgid "Please update your adblock config file to use this package."
+msgstr ""
+
+msgid "Query"
+msgstr ""
+
+msgid "Query domains"
+msgstr ""
+
+msgid "Redirect all DNS queries from 'lan' zone to the local resolver."
+msgstr ""
+
+msgid "Resume"
+msgstr ""
+
+msgid "Runtime Information"
+msgstr ""
+
+msgid "SSL req."
+msgstr ""
+
+msgid "Save"
+msgstr ""
+
+msgid "Startup Trigger"
+msgstr ""
+
+msgid "Suspend"
+msgstr ""
+
+msgid "Suspend / Resume Adblock"
 msgstr ""
 
 msgid ""
-"Space separated list of wan interfaces that trigger reload action. To "
-"disable reload trigger set it to 'false'. Default: empty"
+"Target directory for adblock backups. Please use only non-volatile disks, no "
+"ram/tmpfs drives."
+msgstr ""
+
+msgid "Target directory for the generated blocklist 'adb_list.overall'."
+msgstr ""
+
+msgid "The file size is too large for online editing in LuCI (&gt; 512 KB)."