luci-app-adblock: backport updates to match 2.6.2

Backport updates to luci-app-adblock that correspond to
the adblock 2.6.2 version.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
This commit is contained in:
Hannu Nyman 2017-04-30 00:02:31 +03:00
parent 7fee975bb4
commit ae565bc393
16 changed files with 1407 additions and 184 deletions

View file

@ -1,12 +1,10 @@
# 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

View 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"}, cbi("adblock"), _("Adblock"), 40)
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
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

View file

@ -1,63 +0,0 @@
-- Copyright 2016 Hannu Nyman
-- 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"
-- 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"))
-- Additional options
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"
-- 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."))
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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -8,45 +8,82 @@ 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.1\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 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 "バックアップ ディレクトリ"
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 ""
"広告/不正ドメインをDNSを利用してブロックする、adblock パッケージの設定です。"
"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の有効化"
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 "詳細なデバッグ ログの有効化"
@ -57,34 +94,222 @@ 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 'ビルトイン'"
msgid "Global options"
msgstr "一般設定"
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 "Restrict reload trigger to certain interface(s)"
msgstr "リロードトリガを特定のインターフェースに限定する"
msgid "Overview"
msgstr "概要"
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 ""
"リロード実行のトリガとなる、スペースで区切られたWANインターフェースのリストで"
"す。リロードトリガを無効にするには、 false を設定します。デフォルト:(空)"
"1行に1つのドメインを追加してください。'#' から始まるコメントを記述できます"
"が、IP アドレスやワイルドカード、正規表現を設定値として使用することはできませ"
"ん。"
msgid "Whitelist file"
msgstr "ホワイトリスト ファイル"
msgid "Query"
msgstr "検索"
msgid "see list details"
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 "カウント"

View file

@ -12,43 +12,77 @@ msgstr ""
"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 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 "Backup options"
msgstr "Opções 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"
@ -59,14 +93,38 @@ 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."
msgid "Global options"
msgstr "Opções Globais"
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."
@ -74,19 +132,137 @@ 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 "Overview"
msgstr ""
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 ""
"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 "Query"
msgstr ""
msgid "see list details"
msgstr "veja os detalhes da lista"
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"

View file

@ -1,41 +1,77 @@
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"
msgid "Available blocklist sources ("
msgstr "Tillgängliga källor för blockeringslistor ("
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 "Säkerhetskopiera mapp"
msgid "Backup options"
msgstr "Alternativ för säkerhetskopiering"
msgid "Blocked domains (overall)"
msgstr ""
msgid "Blocklist sources"
msgstr "Källor för blockeringslistor"
msgid "Collecting data..."
msgstr ""
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."
msgid "DNS backend"
msgstr ""
msgid "Description"
msgstr "Beskrivning"
msgid "Download Utility (SSL Library)"
msgstr ""
msgid "Edit Blacklist"
msgstr ""
msgid "Edit Configuration"
msgstr ""
msgid "Edit Whitelist"
msgstr ""
msgid "Enable adblock"
msgstr "Aktivera abblock"
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 ""
@ -46,30 +82,152 @@ 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 ""
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 ""
msgid "Restrict reload trigger to certain interface(s)"
msgid "Overview"
msgstr ""
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 "Whitelist file"
msgstr "Vitlista fil"
msgid "Query"
msgstr ""
msgid "see list details"
msgstr "se listans detaljer"
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 "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"

View file

@ -1,39 +1,75 @@
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 "DNS backend"
msgstr ""
msgid "Description"
msgstr ""
msgid "Download Utility (SSL Library)"
msgstr ""
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"
msgstr ""
@ -44,27 +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 "Global options"
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 ""
msgid "Restrict reload trigger to certain interface(s)"
msgid "Overview"
msgstr ""
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 "Whitelist file"
msgid "Query"
msgstr ""
msgid "see list details"
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 ""

View file

@ -1,53 +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 "DNS backend"
msgstr "DNS 后端"
msgid "Description"
msgstr "描述"
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 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"
msgstr "启用详细调试输出"
msgid "Enabled"
msgstr "启用"
@ -55,30 +92,162 @@ 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 "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 "在默认设置并不适合你时的额外选项。"
msgid "Restrict reload trigger to certain interface(s)"
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 "恢复 Adblock"
msgid "Runtime information"
msgstr "运行信息"
msgid "SSL req."
msgstr ""
msgid ""
"Space separated list of wan interfaces that trigger reload action. To "
"disable reload trigger set it to 'false'. Default: empty"
"Space separated list of interfaces that trigger adblock processing. To "
"disable event driven (re-)starts remove all entries."
msgstr ""
msgid "Whitelist file"
msgstr "白名单文件"
msgid "Status"
msgstr "状态"
msgid "see list details"
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 ""
"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 "备份选项"
#~ 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 "数量"