diff options
Diffstat (limited to 'applications')
70 files changed, 6362 insertions, 1344 deletions
diff --git a/applications/luci-app-adblock/luasrc/controller/adblock.lua b/applications/luci-app-adblock/luasrc/controller/adblock.lua index b74858400..0cfbb5f7f 100644 --- a/applications/luci-app-adblock/luasrc/controller/adblock.lua +++ b/applications/luci-app-adblock/luasrc/controller/adblock.lua @@ -1,4 +1,4 @@ --- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- Copyright 2017-2018 Dirk Brenken (dev@brenken.org) -- This is free software, licensed under the Apache License, Version 2.0 module("luci.controller.adblock", package.seeall) @@ -27,9 +27,9 @@ function logread() local logfile if nixio.fs.access("/var/log/messages") then - logfile = util.trim(util.exec("cat /var/log/messages | grep 'adblock'")) + logfile = util.trim(util.exec("cat /var/log/messages | grep -F 'adblock-'")) else - logfile = util.trim(util.exec("logread -e 'adblock'")) + logfile = util.trim(util.exec("logread -e 'adblock-'")) end templ.render("adblock/logread", {title = i18n.translate("Adblock Logfile"), content = logfile}) end diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua index 4bb404c25..476d8ece6 100644 --- a/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua +++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua @@ -1,4 +1,4 @@ --- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- Copyright 2017-2018 Dirk Brenken (dev@brenken.org) -- This is free software, licensed under the Apache License, Version 2.0 local fs = require("nixio.fs") @@ -74,34 +74,45 @@ 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("dnsmasq", "dnsmasq (/tmp)") o2:value("unbound", "unbound (/var/lib/unbound)") o2:value("named", "named (/var/lib/bind)") o2:value("kresd", "kresd (/etc/kresd)") o2:value("dnscrypt-proxy","dnscrypt-proxy (/tmp)") +o2.default = "dnsmasq (/tmp)" o2.rmempty = false -o3 = s:option(ListValue, "adb_trigger", translate("Startup Trigger"), +o3 = s:option(ListValue, "adb_fetchutil", translate("Download Utility"), +translate("List of supported and fully pre-configured download utilities.")) +o3:value("uclient-fetch") +o3:value("wget") +o3:value("curl") +o3:value("aria2c") +o3:value("wget-nossl", "wget-nossl (noSSL)") +o3:value("busybox", "wget-busybox (noSSL)") +o3.default = "uclient-fetch" +o3.rmempty = false + +o4 = s:option(ListValue, "adb_trigger", translate("Startup Trigger"), translate("List of available network interfaces. Usually 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") +o4:value("none") +o4: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) + o4:value(v.interface) end end end -o3.rmempty = false +o4.rmempty = false -- Runtime information -ds = s:option(DummyValue, "", translate("Runtime Information")) -ds.template = "cbi/nullsection" +ds = m:section(NamedSection, "global", "adblock", translate("Runtime Information")) -dv1 = s:option(DummyValue, "", translate("Adblock Status")) +dv1 = ds:option(DummyValue, "", translate("Adblock Status")) dv1.template = "adblock/runtime" if parse == nil then dv1.value = translate("n/a") @@ -112,12 +123,14 @@ else dv1.value = translate("disabled") elseif status == "paused" then dv1.value = translate("paused") + elseif status == "running" then + dv1.value = translate("running") else dv1.value = translate("enabled") end end -dv2 = s:option(DummyValue, "", translate("Adblock Version")) +dv2 = ds:option(DummyValue, "", translate("Adblock Version")) dv2.template = "adblock/runtime" if parse == nil then dv2.value = translate("n/a") @@ -125,8 +138,8 @@ 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 = ds:option(DummyValue, "", translate("Download Utility (SSL Library)"), + translate("For SSL protected blocklist sources you need a suitable SSL library, e.g. 'libustream-ssl' or 'built-in'.")) dv3.template = "adblock/runtime" if parse == nil then dv3.value = translate("n/a") @@ -134,7 +147,7 @@ else dv3.value = fetch end -dv4 = s:option(DummyValue, "", translate("DNS Backend (DNS Directory)")) +dv4 = ds:option(DummyValue, "", translate("DNS Backend (DNS Directory)")) dv4.template = "adblock/runtime" if parse == nil then dv4.value = translate("n/a") @@ -142,7 +155,7 @@ else dv4.value = backend end -dv5 = s:option(DummyValue, "", translate("Overall Domains")) +dv5 = ds:option(DummyValue, "", translate("Overall Domains")) dv5.template = "adblock/runtime" if parse == nil then dv5.value = translate("n/a") @@ -150,7 +163,7 @@ else dv5.value = domains end -dv6 = s:option(DummyValue, "", translate("Last Run")) +dv6 = ds:option(DummyValue, "", translate("Last Run")) dv6.template = "adblock/runtime" if parse == nil then dv6.value = translate("n/a") @@ -163,8 +176,8 @@ end 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: To prevent OOM exceptions on low memory devices with less than 64 MB free RAM, please do not select too many lists - 5-6 should be sufficient!")) -bl.template = "cbi/tblsection" + .. translate("Caution: To prevent OOM exceptions on low memory devices with less than 64 MB free RAM, please do not select more than five blocklist sources!")) +bl.template = "adblock/blocklist" name = bl:option(Flag, "enabled", translate("Enabled")) name.rmempty = false @@ -223,20 +236,38 @@ e7 = e:option(Flag, "adb_whitelist_mode", translate("Whitelist Mode"), e7.default = e7.disabled e7.rmempty = true -e8 = e:option(Value, "adb_dnsdir", translate("DNS Directory"), +e8 = e:option(Flag, "adb_dnsflush", translate("Flush DNS Cache"), + translate("Flush DNS Cache after adblock processing.")) +e8.default = e8.disabled +e8.rmempty = true + +e9 = e:option(Flag, "adb_notify", translate("Email Notification"), + translate("Send notification emails in case of a processing error or if domain count is ≤ 0.<br />") + .. translate("Please note: this needs additional 'mstmp' installation and setup (see readme).")) +e9.default = e9.disabled +e9.rmempty = true + +e10 = e:option(Value, "adb_notifycnt", translate("Email Notification Count"), + translate("Raise the minimum email notification count, to get emails if the overall count is less or equal to the given limit (default 0),<br />") + .. translate("e.g. to receive an email notification with every adblock update set this value to 150000.")) +e10.default = 0 +e10.datatype = "min(0)" +e10.optional = true + +e11 = e:option(Value, "adb_dnsdir", translate("DNS Directory"), translate("Target directory for the generated blocklist 'adb_list.overall'.")) -e8.datatype = "directory" -e8.optional = true +e11.datatype = "directory" +e11.optional = true -e9 = e:option(Value, "adb_whitelist", translate("Whitelist File"), +e12 = e:option(Value, "adb_whitelist", translate("Whitelist File"), translate("Full path to the whitelist file.")) -e9.datatype = "file" -e9.default = "/etc/adblock/adblock.whitelist" -e9.optional = true +e12.datatype = "file" +e12.default = "/etc/adblock/adblock.whitelist" +e12.optional = true -e10 = e:option(Value, "adb_triggerdelay", translate("Trigger Delay"), +e13 = e:option(Value, "adb_triggerdelay", translate("Trigger Delay"), translate("Additional trigger delay in seconds before adblock processing begins.")) -e10.datatype = "range(1,60)" -e10.optional = true +e13.datatype = "range(1,60)" +e13.optional = true return m diff --git a/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm b/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm new file mode 100644 index 000000000..aae64075f --- /dev/null +++ b/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm @@ -0,0 +1,80 @@ +<%# +Copyright 2017-2018 Dirk Brenken (dev@brenken.org) +This is free software, licensed under the Apache License, Version 2.0 +-%> + +<%- +local rowcnt = 1 +function rowstyle() + rowcnt = rowcnt + 1 + return (rowcnt % 2) + 1 +end + +function width(o) + if o.width then + if type(o.width) == 'number' then + return ' style="width:%dpx"' % o.width + end + return ' style="width:%s"' % o.width + end + return '' +end +-%> + +<style type="text/css"> +<!-- +.cbi-section-table-cell, +.cbi-section-table-row +{ + text-align:left; + margin-right:auto; + margin-left:0px; +} +--> +</style> + +<fieldset class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>"> + <% if self.title then -%> + <legend><%=self.title%></legend> + <%- end %> + <div class="cbi-section-descr"><%=self.description%></div> + <div class="cbi-section-node"> + <%- local count = 0 -%> + <table class="cbi-section-table"> + <tr class="cbi-section-table-titles"> + <%- if self.sectionhead then -%> + <th class="cbi-section-table-cell"><%=self.sectionhead%></th> + <%- else -%> + <th> </th> + <%- end -%> + <%- for i, k in pairs(self.children) do -%> + <th class="cbi-section-table-cell"<%=width(k)%>> + <%-=k.title-%> + </th> + <%- count = count + 1; end; -%> + </tr> + <%- local isempty = true + for i, k in ipairs(self:cfgsections()) do + section = k + isempty = false + scope = { valueheader = "cbi/cell_valueheader", valuefooter = "cbi/cell_valuefooter" } + -%> + <tr class="cbi-section-table-row" id="cbi-<%=self.config%>-<%=section%>"> + <th><%=k%></th> + <%- + for k, node in ipairs(self.children) do + if not node.optional then + node:render(section, scope or {}) + end + end + -%> + </tr> + <%- end -%> + <%- if isempty then -%> + <tr class="cbi-section-table-row"> + <td colspan="<%=count%>"><em><br /><%:This section contains no values yet%></em></td> + </tr> + <%- end -%> + </table> + </div> +</fieldset> diff --git a/applications/luci-app-adblock/luasrc/view/adblock/logread.htm b/applications/luci-app-adblock/luasrc/view/adblock/logread.htm index 5e25a549c..082ec806f 100644 --- a/applications/luci-app-adblock/luasrc/view/adblock/logread.htm +++ b/applications/luci-app-adblock/luasrc/view/adblock/logread.htm @@ -1,5 +1,5 @@ <%# -Copyright 2017 Dirk Brenken (dev@brenken.org) +Copyright 2017-2018 Dirk Brenken (dev@brenken.org) This is free software, licensed under the Apache License, Version 2.0 -%> @@ -11,4 +11,10 @@ This is free software, licensed under the Apache License, Version 2.0 <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> + +<script type="text/javascript"> + var textarea = document.getElementById('logread_id'); + textarea.scrollTop = textarea.scrollHeight; +</script> + <%+footer%> diff --git a/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm b/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm index 0221a75ed..e7827b5c3 100644 --- a/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm +++ b/applications/luci-app-adblock/luasrc/view/adblock/runtime.htm @@ -1,10 +1,10 @@ <%# -Copyright 2017 Dirk Brenken (dev@brenken.org) +Copyright 2017-2018 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" /> +<input name="runtime" id="runtime" type="text" class="cbi-input-text" style="outline:none;border:none;box-shadow:none;background:transparent;color:#0069d6;font-weight:bold;line-height:30px;height:30px;" value="<%=self:cfgvalue(section)%>" disabled="disabled" /> <%+cbi/valuefooter%> diff --git a/applications/luci-app-adblock/po/it/adblock.po b/applications/luci-app-adblock/po/it/adblock.po index af3414c99..6f3b53e4f 100644 --- a/applications/luci-app-adblock/po/it/adblock.po +++ b/applications/luci-app-adblock/po/it/adblock.po @@ -51,7 +51,7 @@ msgstr "Fonti lista di Blocco" msgid "" "Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" +"MB free RAM, please do not select more than five blocklist sources!" msgstr "" msgid "" @@ -109,6 +109,12 @@ msgstr "Modifica Configurazione" msgid "Edit Whitelist" msgstr "Modifica Lista Bianca" +msgid "Email Notification" +msgstr "" + +msgid "Email Notification Count" +msgstr "" + msgid "Enable Adblock" msgstr "Attiva Adblock" @@ -130,6 +136,12 @@ msgstr "Abilitato" msgid "Extra Options" msgstr "Opzioni Extra" +msgid "Flush DNS Cache" +msgstr "" + +msgid "Flush DNS Cache after adblock processing." +msgstr "" + msgid "" "For SSL protected blocklist sources you need a suitable SSL library, e.g. " "'libustream-ssl' or the wget 'built-in'." @@ -208,6 +220,11 @@ msgid "Please edit this file directly in a terminal session." msgstr "" "Per favore modifica questo file direttamente in una sessione al terminale." +msgid "" +"Please note: this needs additional 'mstmp' installation and setup (see " +"readme)." +msgstr "" + msgid "Please update your adblock config file to use this package.<br />" msgstr "" @@ -217,6 +234,11 @@ msgstr "Interrogazione" msgid "Query domains" msgstr "Interrogazione domini" +msgid "" +"Raise the minimum email notification count, to get emails if the overall " +"count is less or equal to the given limit (default 0),<br />" +msgstr "" + msgid "Redirect all DNS queries from 'lan' zone to the local resolver." msgstr "" "Reindirizza tutte le richieste DNS dalla zona 'lan' al risolvitore locale." @@ -233,6 +255,11 @@ msgstr "Ric. SSL" msgid "Save" msgstr "Salva" +msgid "" +"Send notification emails in case of a processing error or if domain count is " +"≤ 0.<br />" +msgstr "" + msgid "Startup Trigger" msgstr "Innesco d'Avvio" @@ -290,6 +317,9 @@ msgstr "" "Questo form mostra l'output del registro, prefiltrato per messaggi relativi " "solo ad adblock." +msgid "This section contains no values yet" +msgstr "" + msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -321,6 +351,11 @@ msgstr "Sì" msgid "disabled" msgstr "disabilitato" +msgid "" +"e.g. to receive an email notification with every adblock update set this " +"value to 150000." +msgstr "" + msgid "enabled" msgstr "abilitato" diff --git a/applications/luci-app-adblock/po/ja/adblock.po b/applications/luci-app-adblock/po/ja/adblock.po index becef993f..f43aafb6f 100644 --- a/applications/luci-app-adblock/po/ja/adblock.po +++ b/applications/luci-app-adblock/po/ja/adblock.po @@ -52,11 +52,8 @@ msgstr "ブロックリスト提供元" msgid "" "Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" +"MB free RAM, please do not select more than five blocklist sources!" msgstr "" -"警告: RAM の空き容量が 64MB に満たないメモリー容量の小さいデバイスでは、 " -"OutOfMemory (OOM) 例外を防ぐために、多くのリストを選択しないようにしてくださ" -"い。5 - 6個のリストで十分です。" msgid "" "Choose 'none' to disable automatic startups, 'timed' to use a classic " @@ -120,6 +117,12 @@ msgstr "設定の編集" msgid "Edit Whitelist" msgstr "ホワイトリストの編集" +msgid "Email Notification" +msgstr "" + +msgid "Email Notification Count" +msgstr "" + msgid "Enable Adblock" msgstr "Adblock の有効化" @@ -143,6 +146,12 @@ msgstr "有効" msgid "Extra Options" msgstr "拡張オプション" +msgid "Flush DNS Cache" +msgstr "" + +msgid "Flush DNS Cache after adblock processing." +msgstr "" + msgid "" "For SSL protected blocklist sources you need a suitable SSL library, e.g. " "'libustream-ssl' or the wget 'built-in'." @@ -223,6 +232,11 @@ msgstr "" msgid "Please edit this file directly in a terminal session." msgstr "ターミナル セッションで直接このファイルを編集してください。" +msgid "" +"Please note: this needs additional 'mstmp' installation and setup (see " +"readme)." +msgstr "" + msgid "Please update your adblock config file to use this package.<br />" msgstr "" "このパッケージを使用するには、既存の Adblock 設定ファイルを更新してください。" @@ -234,6 +248,11 @@ msgstr "検索" msgid "Query domains" msgstr "ドメインの検索" +msgid "" +"Raise the minimum email notification count, to get emails if the overall " +"count is less or equal to the given limit (default 0),<br />" +msgstr "" + msgid "Redirect all DNS queries from 'lan' zone to the local resolver." msgstr "" "'lan' ゾーンからの全 DNS クエリを、ローカル リゾルバにリダイレクトします。" @@ -250,6 +269,11 @@ msgstr "SSL 必須" msgid "Save" msgstr "保存" +msgid "" +"Send notification emails in case of a processing error or if domain count is " +"≤ 0.<br />" +msgstr "" + msgid "Startup Trigger" msgstr "スタートアップ トリガ" @@ -309,6 +333,9 @@ msgstr "" "このフォームには、システムログ内の Adblock に関連するメッセージのみが表示され" "ます。" +msgid "This section contains no values yet" +msgstr "" + msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -340,6 +367,11 @@ msgstr "はい" msgid "disabled" msgstr "無効" +msgid "" +"e.g. to receive an email notification with every adblock update set this " +"value to 150000." +msgstr "" + msgid "enabled" msgstr "有効" @@ -351,3 +383,12 @@ msgstr "利用不可" msgid "paused" msgstr "一時停止" + +#~ msgid "" +#~ "Caution: To prevent OOM exceptions on low memory devices with less than " +#~ "64 MB free RAM, please do not select too many lists - 5-6 should be " +#~ "sufficient!" +#~ msgstr "" +#~ "警告: RAM の空き容量が 64MB に満たないメモリー容量の小さいデバイスでは、 " +#~ "OutOfMemory (OOM) 例外を防ぐために、多くのリストを選択しないようにしてくだ" +#~ "さい。5 - 6個のリストで十分です。" diff --git a/applications/luci-app-adblock/po/pt-br/adblock.po b/applications/luci-app-adblock/po/pt-br/adblock.po index f51791f48..e08ad6c74 100644 --- a/applications/luci-app-adblock/po/pt-br/adblock.po +++ b/applications/luci-app-adblock/po/pt-br/adblock.po @@ -54,7 +54,7 @@ msgstr "Fontes de listas de bloqueio" msgid "" "Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" +"MB free RAM, please do not select more than five blocklist sources!" msgstr "" msgid "" @@ -110,6 +110,12 @@ msgstr "Editar Configuração" msgid "Edit Whitelist" msgstr "Editar Lista Permitida" +msgid "Email Notification" +msgstr "" + +msgid "Email Notification Count" +msgstr "" + msgid "Enable Adblock" msgstr "Habilitar adblock" @@ -130,6 +136,12 @@ msgstr "Habilitado" msgid "Extra Options" msgstr "Opções adicionais" +msgid "Flush DNS Cache" +msgstr "" + +msgid "Flush DNS Cache after adblock processing." +msgstr "" + msgid "" "For SSL protected blocklist sources you need a suitable SSL library, e.g. " "'libustream-ssl' or the wget 'built-in'." @@ -201,6 +213,11 @@ 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 note: this needs additional 'mstmp' installation and setup (see " +"readme)." +msgstr "" + msgid "Please update your adblock config file to use this package.<br />" msgstr "" @@ -210,6 +227,11 @@ msgstr "Consulta" msgid "Query domains" msgstr "Consulta de domínios" +msgid "" +"Raise the minimum email notification count, to get emails if the overall " +"count is less or equal to the given limit (default 0),<br />" +msgstr "" + msgid "Redirect all DNS queries from 'lan' zone to the local resolver." msgstr "" @@ -225,6 +247,11 @@ msgstr "req. de SSL" msgid "Save" msgstr "Salvar" +msgid "" +"Send notification emails in case of a processing error or if domain count is " +"≤ 0.<br />" +msgstr "" + msgid "Startup Trigger" msgstr "" @@ -281,6 +308,9 @@ msgstr "" "Esse formulário mostra a saída do syslog, pré-filtrado para mensagens do " "adblock apenas." +msgid "This section contains no values yet" +msgstr "" + msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -310,6 +340,11 @@ msgstr "Sim" msgid "disabled" msgstr "" +msgid "" +"e.g. to receive an email notification with every adblock update set this " +"value to 150000." +msgstr "" + msgid "enabled" msgstr "" diff --git a/applications/luci-app-adblock/po/ru/adblock.po b/applications/luci-app-adblock/po/ru/adblock.po new file mode 100644 index 000000000..8400c6e14 --- /dev/null +++ b/applications/luci-app-adblock/po/ru/adblock.po @@ -0,0 +1,391 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: adblock\n" +"POT-Creation-Date: 2017-10-22 13:00+0300\n" +"PO-Revision-Date: 2018-01-06 12:37+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "-------" +msgstr "-------" + +msgid "Adblock" +msgstr "Adblock" + +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-a." + +msgid "Advanced" +msgstr "Дополнительно" + +msgid "Available blocklist sources." +msgstr "Источники списков блокировки. " + +msgid "Backup Directory" +msgstr "Папка для бэкапа" + +msgid "Backup Mode" +msgstr "Режим сохранения бекапа" + +msgid "" +"Block access to all domains except those explicitly listed in the whitelist " +"file." +msgstr "" +"Блокировать доступ ко всем доменам, кроме тех, которые явно перечислены в " +"файле Белого списка." + +msgid "Blocklist Sources" +msgstr "Источники списков блокировки" + +msgid "" +"Caution: To prevent OOM exceptions on low memory devices with less than 64 " +"MB free RAM, please do not select more than five blocklist sources!" +msgstr "" +"ВНИМАНИЕ: Для предотвращения возможного программного сбоя и перезагрузки, на " +"устройствах с объемом оперативной памяти менее 64MB, не выбирайте больше 5 " +"списков." + +msgid "" +"Choose 'none' to disable automatic startups, 'timed' to use a classic " +"timeout (default 30 sec.) or select another trigger interface." +msgstr "" +"Выберите 'none', чтобы отключить автоматический старт, 'timed', чтобы " +"использовать дефолтную задержку (по умолчанию 30 сек.) или выберите другой " +"интерфейс запуска." + +msgid "Collecting data..." +msgstr "Сбор информации..." + +msgid "" +"Configuration of the adblock package to block ad/abuse domains by using DNS." +msgstr "" +"Настройка Adblock. Приложения для блокировки ненадежных или добавления " +"доверенных доменов используя DNS. " + +msgid "" +"Create compressed blocklist backups, they will be used in case of download " +"errors or during startup in backup mode." +msgstr "" +"Создавайте сжатые резервные копии списков блокировки, они будут " +"использоваться в случае ошибок загрузки или при запуске в ручном режиме." + +msgid "DNS Backend (DNS Directory)" +msgstr "DNS бэкенд (папка DNS)" + +msgid "DNS Directory" +msgstr "Папка DNS" + +msgid "Description" +msgstr "Описание" + +msgid "" +"Do not automatically update blocklists during startup, use blocklist backups " +"instead." +msgstr "" +"Не обновляйте списки блокировок автоматически во время запуска, вместо этого " +"используйте резервные копии списков блокировок." + +msgid "Download Utility (SSL Library)" +msgstr "Загрузить утилиту (библиотека SSL)" + +msgid "" +"During opkg package installation 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', чтобы " +"перезаписать существующий config файл или загрузить новый дефолтный config " +"файл <a href=\"%s\" target=\"_blank\">здесь</a>" + +msgid "Edit Blacklist" +msgstr "Редактировать Черный список" + +msgid "Edit Configuration" +msgstr "Редактировать config файл" + +msgid "Edit Whitelist" +msgstr "Редактировать Белый список" + +msgid "Email Notification" +msgstr "Уведомление на email" + +msgid "Email Notification Count" +msgstr "Кол-во уведомлений на email" + +msgid "Enable Adblock" +msgstr "Включить Adblock" + +msgid "Enable Blocklist Backup" +msgstr "Включить сохранение списка блокировок" + +msgid "" +"Enable memory intense overall sort / duplicate removal on low memory devices " +"(< 64 MB free RAM)" +msgstr "" +"Включите полную сортировку / удаление дубликатов памяти на устройствах с " +"низким объемом памяти (< 64 MB свободной оперативной памяти)." + +msgid "Enable verbose debug logging in case of any processing error." +msgstr "Включите подробное ведение журнала отладки в случае ошибки обработки." + +msgid "Enabled" +msgstr "Включено" + +msgid "Extra Options" +msgstr "Дополнительные настройки" + +msgid "Flush DNS Cache" +msgstr "Очистка кэша DNS" + +msgid "Flush DNS Cache after adblock processing." +msgstr "Очистки DNS-кэша после обработки Adblock-ом." + +msgid "" +"For SSL protected blocklist sources you need a suitable SSL library, e.g. " +"'libustream-ssl' or the wget 'built-in'." +msgstr "" +"Для SSL-защищенных источников списков блокировки, вам нужны подходящие SSL " +"библиотеки, например 'libustream-ssl' или wget 'built-in'." + +msgid "" +"For further information <a href=\"%s\" target=\"_blank\">check the online " +"documentation</a>" +msgstr "" +"Для получения дополнительной информации <a href=\"%s\" target=\"_blank\"> " +"смотрите онлайн документацию</a>." + +msgid "Force Local DNS" +msgstr "Назначить локальный DNS" + +msgid "Force Overall Sort" +msgstr "Назначить полную сортировку" + +msgid "Full path to the whitelist file." +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 "" +"Список URL-адресов и настройка списка использования, настраиваются на " +"странице 'Дополнительно'.<br />" + +msgid "" +"List of available network interfaces. Usually the startup will be triggered " +"by the 'wan' interface.<br />" +msgstr "" +"Список доступных сетевых интерфейсов. По умолчанию установлен 'wan' " +"интерфейс.<br />" + +msgid "" +"List of supported DNS backends with their default list export directory.<br /" +">" +msgstr "" +"Список поддерживаемых серверов DNS с дефолтным списком - перемещается в " +"папку.<br />" + +msgid "Loading" +msgstr "Загрузка" + +msgid "No" +msgstr "Нет" + +msgid "" +"Options for further tweaking in case the defaults are not suitable for you." +msgstr "" +"Варианты для дальнейшей обработки, если значения по умолчанию вам не " +"подходят." + +msgid "Overall 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 "" +"Добавляйте только один домен в строке. Комментарии вводятся используя '#' " +"разрешенные - ip адреса, метасимволы и нерегулярные выражения." + +msgid "Please edit this file directly in a terminal session." +msgstr "Отредактируйте данный файл, строго в терминале." + +msgid "" +"Please note: this needs additional 'mstmp' installation and setup (see " +"readme)." +msgstr "" +"Внимание: для этого требуется дополнительная установка и настройка " +"'mstmp' (см. readme)." + +msgid "Please update your adblock config file to use this package.<br />" +msgstr "Обновите config файл Adblock, чтобы использовать этот пакет.<br />" + +msgid "Query" +msgstr "Запрос" + +msgid "Query domains" +msgstr "Запрос доменов" + +msgid "" +"Raise the minimum email notification count, to get emails if the overall " +"count is less or equal to the given limit (default 0),<br />" +msgstr "" +"Увеличьте количество уведомлений по email, чтобы получить сообщения, если " +"общее количество меньше или равно заданному пределу (по умолчанию 0),<br />" + +msgid "Redirect all DNS queries from 'lan' zone to the local resolver." +msgstr "" +"Перенаправлять все DNS запросы с интерфейса 'lan' на обработку Adblock-ом." + +msgid "Resume" +msgstr "Возобновить" + +msgid "Runtime Information" +msgstr "Текущая информация" + +msgid "SSL req." +msgstr "Запрос SSL" + +msgid "Save" +msgstr "Сохранить" + +msgid "" +"Send notification emails in case of a processing error or if domain count is " +"≤ 0.<br />" +msgstr "" +"Отправлять по электронной почте уведомления в случае ошибки обработки или " +"если домен ≤ 0.<br />" + +msgid "Startup Trigger" +msgstr "Задержка запуска" + +msgid "Suspend" +msgstr "Приостановить" + +msgid "Suspend / Resume Adblock" +msgstr "Приостановить / Возобновить Adblock" + +msgid "" +"Target directory for adblock backups. Please use only non-volatile disks, e." +"g. an external usb stick." +msgstr "" +"Папка для резервного копирования Adblock. Используйте такие накопители, как " +"usb флешка." + +msgid "Target directory for the generated blocklist 'adb_list.overall'." +msgstr "Целевая папка для создания списка блокировки 'adb_list.overall'." + +msgid "The file size is too large for online editing in LuCI (> 512 KB)." +msgstr "" +"Размер файла слишком большой, для онлайн редактирования в LuCI (> 512 KB)." + +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 "" +"Страница позволяет изменять содержимое главного config файла Adblock-a (/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 "This section contains no values yet" +msgstr "Страница не содержит значений" + +msgid "" +"To overwrite the default path use the 'DNS Directory' option in the extra " +"section below." +msgstr "" +"Чтобы заменить дефолтную, используется 'Папка DNS' расширенный вариант, " +"раздел ниже." + +msgid "Trigger Delay" +msgstr "Задержка запуска" + +msgid "Verbose Debug Logging" +msgstr "Подробное ведение журнала отладки" + +msgid "View Logfile" +msgstr "Системный журнал" + +msgid "Waiting for command to complete..." +msgstr "Ожидание выполнения команды..." + +msgid "Whitelist File" +msgstr "Файл Белого списка" + +msgid "Whitelist Mode" +msgstr "Режим Белого списка" + +msgid "Yes" +msgstr "Да" + +msgid "disabled" +msgstr "отключено" + +msgid "" +"e.g. to receive an email notification with every adblock update set this " +"value to 150000." +msgstr "" +"например, чтобы получать уведомления по электронной почте при каждом " +"обновлении Adblock-а установите значение 150000." + +msgid "enabled" +msgstr "включено" + +msgid "error" +msgstr "ошибка" + +msgid "n/a" +msgstr "нет данных" + +msgid "paused" +msgstr "остановлено" diff --git a/applications/luci-app-adblock/po/sv/adblock.po b/applications/luci-app-adblock/po/sv/adblock.po index 503c5f6ef..927e8af4f 100644 --- a/applications/luci-app-adblock/po/sv/adblock.po +++ b/applications/luci-app-adblock/po/sv/adblock.po @@ -41,7 +41,7 @@ msgstr "Källor för blockeringslistor" msgid "" "Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" +"MB free RAM, please do not select more than five blocklist sources!" msgstr "" msgid "" @@ -100,6 +100,12 @@ msgstr "Redigerar konfigurationen" msgid "Edit Whitelist" msgstr "Redigera vitlista" +msgid "Email Notification" +msgstr "" + +msgid "Email Notification Count" +msgstr "" + msgid "Enable Adblock" msgstr "Aktivera adblock" @@ -120,6 +126,12 @@ msgstr "Aktiverad" msgid "Extra Options" msgstr "Extra alternativ" +msgid "Flush DNS Cache" +msgstr "" + +msgid "Flush DNS Cache after adblock processing." +msgstr "" + msgid "" "For SSL protected blocklist sources you need a suitable SSL library, e.g. " "'libustream-ssl' or the wget 'built-in'." @@ -188,6 +200,11 @@ 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 note: this needs additional 'mstmp' installation and setup (see " +"readme)." +msgstr "" + msgid "Please update your adblock config file to use this package.<br />" msgstr "" @@ -197,6 +214,11 @@ msgstr "Fråga" msgid "Query domains" msgstr "Fråga efter domäner" +msgid "" +"Raise the minimum email notification count, to get emails if the overall " +"count is less or equal to the given limit (default 0),<br />" +msgstr "" + msgid "Redirect all DNS queries from 'lan' zone to the local resolver." msgstr "" @@ -212,6 +234,11 @@ msgstr "SSL-rek." msgid "Save" msgstr "Spara" +msgid "" +"Send notification emails in case of a processing error or if domain count is " +"≤ 0.<br />" +msgstr "" + msgid "Startup Trigger" msgstr "Uppstartslösare" @@ -263,6 +290,9 @@ msgid "" "only." msgstr "" +msgid "This section contains no values yet" +msgstr "" + msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -292,6 +322,11 @@ msgstr "Ja" msgid "disabled" msgstr "inaktiverad" +msgid "" +"e.g. to receive an email notification with every adblock update set this " +"value to 150000." +msgstr "" + msgid "enabled" msgstr "aktiverad" diff --git a/applications/luci-app-adblock/po/templates/adblock.pot b/applications/luci-app-adblock/po/templates/adblock.pot index 969833351..8fcff0791 100644 --- a/applications/luci-app-adblock/po/templates/adblock.pot +++ b/applications/luci-app-adblock/po/templates/adblock.pot @@ -41,7 +41,7 @@ msgstr "" msgid "" "Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" +"MB free RAM, please do not select more than five blocklist sources!" msgstr "" msgid "" @@ -93,6 +93,12 @@ msgstr "" msgid "Edit Whitelist" msgstr "" +msgid "Email Notification" +msgstr "" + +msgid "Email Notification Count" +msgstr "" + msgid "Enable Adblock" msgstr "" @@ -113,6 +119,12 @@ msgstr "" msgid "Extra Options" msgstr "" +msgid "Flush DNS Cache" +msgstr "" + +msgid "Flush DNS Cache after adblock processing." +msgstr "" + msgid "" "For SSL protected blocklist sources you need a suitable SSL library, e.g. " "'libustream-ssl' or the wget 'built-in'." @@ -180,6 +192,11 @@ msgstr "" msgid "Please edit this file directly in a terminal session." msgstr "" +msgid "" +"Please note: this needs additional 'mstmp' installation and setup (see " +"readme)." +msgstr "" + msgid "Please update your adblock config file to use this package.<br />" msgstr "" @@ -189,6 +206,11 @@ msgstr "" msgid "Query domains" msgstr "" +msgid "" +"Raise the minimum email notification count, to get emails if the overall " +"count is less or equal to the given limit (default 0),<br />" +msgstr "" + msgid "Redirect all DNS queries from 'lan' zone to the local resolver." msgstr "" @@ -204,6 +226,11 @@ msgstr "" msgid "Save" msgstr "" +msgid "" +"Send notification emails in case of a processing error or if domain count is " +"≤ 0.<br />" +msgstr "" + msgid "Startup Trigger" msgstr "" @@ -249,6 +276,9 @@ msgid "" "only." msgstr "" +msgid "This section contains no values yet" +msgstr "" + msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -278,6 +308,11 @@ msgstr "" msgid "disabled" msgstr "" +msgid "" +"e.g. to receive an email notification with every adblock update set this " +"value to 150000." +msgstr "" + msgid "enabled" msgstr "" diff --git a/applications/luci-app-adblock/po/zh-cn/adblock.po b/applications/luci-app-adblock/po/zh-cn/adblock.po index 08032cab0..9e3a0284f 100644 --- a/applications/luci-app-adblock/po/zh-cn/adblock.po +++ b/applications/luci-app-adblock/po/zh-cn/adblock.po @@ -55,7 +55,7 @@ msgstr "拦截列表来源" msgid "" "Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" +"MB free RAM, please do not select more than five blocklist sources!" msgstr "" msgid "" @@ -109,6 +109,12 @@ msgstr "编辑设置" msgid "Edit Whitelist" msgstr "编辑白名单" +msgid "Email Notification" +msgstr "" + +msgid "Email Notification Count" +msgstr "" + msgid "Enable Adblock" msgstr "启用 Adblock" @@ -129,6 +135,12 @@ msgstr "已启用" msgid "Extra Options" msgstr "额外选项" +msgid "Flush DNS Cache" +msgstr "" + +msgid "Flush DNS Cache after adblock processing." +msgstr "" + msgid "" "For SSL protected blocklist sources you need a suitable SSL library, e.g. " "'libustream-ssl' or the wget 'built-in'." @@ -200,6 +212,11 @@ msgstr "" msgid "Please edit this file directly in a terminal session." msgstr "请在终端会话中直接编辑此文件。" +msgid "" +"Please note: this needs additional 'mstmp' installation and setup (see " +"readme)." +msgstr "" + msgid "Please update your adblock config file to use this package.<br />" msgstr "" @@ -209,6 +226,11 @@ msgstr "查询" msgid "Query domains" msgstr "查询域" +msgid "" +"Raise the minimum email notification count, to get emails if the overall " +"count is less or equal to the given limit (default 0),<br />" +msgstr "" + msgid "Redirect all DNS queries from 'lan' zone to the local resolver." msgstr "将所有 DNS 查询从“lan”区域重定向到本地解析器。" @@ -224,6 +246,11 @@ msgstr "SSL 要求" msgid "Save" msgstr "保存" +msgid "" +"Send notification emails in case of a processing error or if domain count is " +"≤ 0.<br />" +msgstr "" + msgid "Startup Trigger" msgstr "启动触发器" @@ -269,6 +296,9 @@ msgid "" "only." msgstr "此表单显示系统日志输出,仅针对 adblock 相关的消息进行了预筛选。" +msgid "This section contains no values yet" +msgstr "" + msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -298,6 +328,11 @@ msgstr "是" msgid "disabled" msgstr "已禁用" +msgid "" +"e.g. to receive an email notification with every adblock update set this " +"value to 150000." +msgstr "" + msgid "enabled" msgstr "已启用" diff --git a/applications/luci-app-adblock/po/zh-tw/adblock.po b/applications/luci-app-adblock/po/zh-tw/adblock.po index f838fa043..d468c96f5 100644 --- a/applications/luci-app-adblock/po/zh-tw/adblock.po +++ b/applications/luci-app-adblock/po/zh-tw/adblock.po @@ -55,7 +55,7 @@ msgstr "攔截列表來源" msgid "" "Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select too many lists - 5-6 should be sufficient!" +"MB free RAM, please do not select more than five blocklist sources!" msgstr "" msgid "" @@ -109,6 +109,12 @@ msgstr "編輯設定" msgid "Edit Whitelist" msgstr "編輯白名單" +msgid "Email Notification" +msgstr "" + +msgid "Email Notification Count" +msgstr "" + msgid "Enable Adblock" msgstr "啟用 Adblock" @@ -129,6 +135,12 @@ msgstr "已啟用" msgid "Extra Options" msgstr "額外選項" +msgid "Flush DNS Cache" +msgstr "" + +msgid "Flush DNS Cache after adblock processing." +msgstr "" + msgid "" "For SSL protected blocklist sources you need a suitable SSL library, e.g. " "'libustream-ssl' or the wget 'built-in'." @@ -200,6 +212,11 @@ msgstr "" msgid "Please edit this file directly in a terminal session." msgstr "請在終端會話中直接編輯此檔案。" +msgid "" +"Please note: this needs additional 'mstmp' installation and setup (see " +"readme)." +msgstr "" + msgid "Please update your adblock config file to use this package.<br />" msgstr "" @@ -209,6 +226,11 @@ msgstr "查詢" msgid "Query domains" msgstr "查詢域" +msgid "" +"Raise the minimum email notification count, to get emails if the overall " +"count is less or equal to the given limit (default 0),<br />" +msgstr "" + msgid "Redirect all DNS queries from 'lan' zone to the local resolver." msgstr "將所有 DNS 查詢從“lan”區域重定向到本地解析器。" @@ -224,6 +246,11 @@ msgstr "SSL 要求" msgid "Save" msgstr "儲存" +msgid "" +"Send notification emails in case of a processing error or if domain count is " +"≤ 0.<br />" +msgstr "" + msgid "Startup Trigger" msgstr "啟動觸發器" @@ -269,6 +296,9 @@ msgid "" "only." msgstr "此表單顯示系統日誌輸出,僅針對 adblock 相關的訊息進行了預篩選。" +msgid "This section contains no values yet" +msgstr "" + msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -298,6 +328,11 @@ msgstr "是" msgid "disabled" msgstr "已禁用" +msgid "" +"e.g. to receive an email notification with every adblock update set this " +"value to 150000." +msgstr "" + msgid "enabled" msgstr "已啟用" diff --git a/applications/luci-app-advanced-reboot/Makefile b/applications/luci-app-advanced-reboot/Makefile index 3a886eb8d..5722b429e 100644 --- a/applications/luci-app-advanced-reboot/Makefile +++ b/applications/luci-app-advanced-reboot/Makefile @@ -7,13 +7,13 @@ PKG_LICENSE:=GPL-3.0+ PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net> LUCI_TITLE:=Advanced Linksys Reboot Web UI -LUCI_DESCRIPTION:=Provides Web UI (found under System/Advanced Reboot) to reboot supported Linksys routers to\ +LUCI_DESCRIPTION:=Provides Web UI (found under System/Advanced Reboot) to reboot supported Linksys and ZyXEL routers to\ an altnerative partition. Also provides Web UI to shut down (power off) your device. Supported dual-partition\ routers are listed at https://github.com/stangri/openwrt-luci/blob/luci-app-advanced-reboot/applications/luci-app-advanced-reboot/README.md LUCI_DEPENDS:=+luci LUCI_PKGARCH:=all -PKG_RELEASE:=23 +PKG_RELEASE:=25 include ../../luci.mk diff --git a/applications/luci-app-advanced-reboot/README.md b/applications/luci-app-advanced-reboot/README.md index ee87a0002..cfee18810 100644 --- a/applications/luci-app-advanced-reboot/README.md +++ b/applications/luci-app-advanced-reboot/README.md @@ -5,15 +5,16 @@ This package allows you to reboot to an alternative partition on supported (dual ## Supported Devices Currently supported dual-partition devices include: +- Linksys EA3500 +- Linksys E4200v2 +- Linksys EA4500 +- Linksys EA8500 - Linksys WRT1200AC - Linksys WRT1900AC - Linksys WRT1900ACv2 - Linksys WRT1900ACS - Linksys WRT3200ACM -- Linksys E4200v2 -- Linksys EA4500 -- Linksys EA8500 - +- ZyXEL NBG6817 If you're interested in having your device supported, please post in [LEDE Project Forum Support Thread](https://forum.lede-project.org/t/web-ui-to-reboot-to-another-partition-dual-partition-routers/3423). ## Screenshot (luci-app-advanced-reboot) @@ -28,8 +29,8 @@ opkg install luci-app-advanced-reboot ## Notes/Known Issues - When you reboot to a different partition, your current settings (WiFi SSID/password, etc.) will not apply to a different partition. Different partitions might have completely different settings and even firmware. -- If you reboot to a partition which doesn't allow you to switch boot partitions (like stock Linksys firmware), you might not be able to boot back to OpenWrt/LEDE Project unless you reflash it, loosing all the settings. +- If you reboot to a partition which doesn't allow you to switch boot partitions (like stock vendor firmware), you might not be able to boot back to OpenWrt/LEDE Project unless you reflash it, loosing all the settings. - Some devices allow you to trigger reboot to alternative partition by interrupting boot 3 times in a row (by resetting/switching off the device or pulling power). As these methods might be different for different devices, do your own homework. ## Thanks -I'd like to thank everyone who helped create, test and troubleshoot this package. Without contributions from [@hnyman](https://github.com/hnyman) and [@jpstyves](https://github.com/jpstyves) it wouldn't have been possible. +I'd like to thank everyone who helped create, test and troubleshoot this package. Without contributions from [@hnyman](https://github.com/hnyman), [@jpstyves](https://github.com/jpstyves) and [@slh](https://github.com/pkgadd) it wouldn't have been possible. diff --git a/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua index 2b55217b8..13d1c73cc 100644 --- a/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua +++ b/applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua @@ -5,15 +5,18 @@ module("luci.controller.advanced_reboot", package.seeall) -- device, board_name, part1, part2, offset, env_var_1, value_1_1, value_1_2, env_var_2, value_2_1, value_2_2 devices = { + {"Linksys EA3500", "linksys-audi", "mtd3", "mtd5", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, + {"Linksys E4200v2/EA4500", "linksys-viper", "mtd3", "mtd5", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, + {"Linksys EA8500", "ea8500", "mtd13", "mtd15", 32, "boot_part", 1, 2}, {"Linksys WRT1200AC", "armada-385-linksys-caiman", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, {"Linksys WRT1900AC", "armada-xp-linksys-mamba", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, {"Linksys WRT1900ACv2", "armada-385-linksys-cobra", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, {"Linksys WRT1900ACS", "armada-385-linksys-shelby", "mtd4", "mtd6", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, {"Linksys WRT3200ACM", "armada-385-linksys-rango", "mtd5", "mtd7", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, - {"Linksys E4200v2/EA4500", "linksys-viper", "mtd3", "mtd5", 32, "boot_part", 1, 2, "bootcmd", "run nandboot", "run altnandboot"}, - {"Linksys EA8500", "ea8500", "mtd13", "mtd15", 32, "boot_part", 1, 2} + {"ZyXEL NBG6817","nbg6817","mmcblk0p4","mmcblk0p7",32,nil,255,1} } +errorMessage = "" board_name = luci.util.trim(luci.sys.exec("cat /tmp/sysinfo/board_name")) for i=1, #devices do if board_name and devices[i][2] == board_name then @@ -41,14 +44,29 @@ for i=1, #devices do if string.find(partition_two_label, "LEDE") then partition_two_os = "LEDE" end if string.find(partition_two_label, "OpenWrt") then partition_two_os = "OpenWrt" end if string.find(partition_two_label, "Linksys") then partition_two_os = "Linksys" end + if device_name and device_name == "ZyXEL NBG6817" then + if not partition_one_os then partition_one_os = "ZyXEL" end + if not partition_two_os then partition_two_os = "ZyXEL" end + end if not partition_one_os then partition_one_os = "Unknown" end if not partition_two_os then partition_two_os = "Unknown" end if partition_one_os and partition_one_version then partition_one_os = partition_one_os .. " (Linux " .. partition_one_version .. ")" end if partition_two_os and partition_two_version then partition_two_os = partition_two_os .. " (Linux " .. partition_two_version .. ")" end - if nixio.fs.access("/usr/sbin/fw_printenv") and nixio.fs.access("/usr/sbin/fw_setenv") then - current_partition = tonumber(luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar1))) - other_partition = current_partition == boot_envvar1_partition_one and boot_envvar1_partition_two or boot_envvar1_partition_one + + if device_name and device_name == "ZyXEL NBG6817" then + if not zyxelFlagPartition then zyxelFlagPartition = luci.util.trim(luci.sys.exec("source /lib/functions.sh; find_mtd_part 0:DUAL_FLAG")) end + if not zyxelFlagPartition then + errorMessage = errorMessage .. luci.i18n.translate("Unable to find Dual Boot Flag Partition." .. " ") + luci.util.perror(luci.i18n.translate("Unable to find Dual Boot Flag Partition.")) + else + current_partition = tonumber(luci.sys.exec("dd if=" .. zyxelFlagPartition .. " bs=1 count=1 2>/dev/null | hexdump -n 1 -e '1/1 \"%d\"'")) + end + else + if nixio.fs.access("/usr/sbin/fw_printenv") and nixio.fs.access("/usr/sbin/fw_setenv") then + current_partition = tonumber(luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar1))) + end end + other_partition = current_partition == boot_envvar1_partition_two and boot_envvar1_partition_one or boot_envvar1_partition_two end end @@ -70,8 +88,19 @@ function action_reboot() end function action_altreboot() + local zyxelFlagPartition, zyxelBootFlag, zyxelNewBootFlag, errorCode, curEnvSetting, newEnvSetting + errorMessage = "" + errorCode = 0 if luci.http.formvalue("cancel") then luci.http.redirect(luci.dispatcher.build_url('admin/system/advanced_reboot')) +-- luci.template.render("advanced_reboot/advanced_reboot",{ +-- device_name=device_name, +-- boot_envvar1_partition_one=boot_envvar1_partition_one, +-- partition_one_os=partition_one_os, +-- boot_envvar1_partition_two=boot_envvar1_partition_two, +-- partition_two_os=partition_two_os, +-- current_partition=current_partition, +-- errorMessage = luci.i18n.translate("Alternative reboot cancelled.")}) return end local step = tonumber(luci.http.formvalue("step") or 1) @@ -79,21 +108,72 @@ function action_altreboot() if device_name and nixio.fs.access("/usr/sbin/fw_printenv") and nixio.fs.access("/usr/sbin/fw_setenv") then luci.template.render("advanced_reboot/alternative_reboot",{}) else - luci.template.render("advanced_reboot/advanced_reboot",{}) + luci.template.render("advanced_reboot/advanced_reboot",{errorMessage = luci.i18n.translate("No access to fw_printenv or fw_printenv!")}) end elseif step == 2 then - luci.template.render("admin_system/applyreboot", { - title = luci.i18n.translate("Rebooting..."), - msg = luci.i18n.translate("The system is rebooting to an alternative partition now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."), - addr = luci.ip.new(uci.cursor():get("network", "lan", "ipaddr")) or "192.168.1.1" - }) - if boot_envvar1 then env1 = tonumber(luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar1))) end - if boot_envvar2 then env2 = luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar2)) end - if env1 and env1 == boot_envvar1_partition_one then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar1 .. " " .. boot_envvar1_partition_two) end - if env1 and env1 == boot_envvar1_partition_two then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar1 .. " " .. boot_envvar1_partition_one) end - if env2 and env2 == boot_envvar2_partition_one then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar2 .. " '" .. boot_envvar2_partition_two .. "'") end - if env2 and env2 == boot_envvar2_partition_two then luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar2 .. " '" .. boot_envvar2_partition_one .. "'") end - luci.sys.reboot() + if boot_envvar1 or boot_envvar2 then -- Linksys devices + if boot_envvar1 then + curEnvSetting = tonumber(luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar1))) + if not curEnvSetting then + errorMessage = errorMessage .. luci.i18n.translate("Unable to obtain firmware environment variable") .. ": " .. boot_envvar1 .. ". " + luci.util.perror(luci.i18n.translate("Unable to obtain firmware environment variable") .. ": " .. boot_envvar1 .. ".") + else + newEnvSetting = curEnvSetting == boot_envvar1_partition_one and boot_envvar1_partition_two or boot_envvar1_partition_one + errorCode = luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar1 .. " " .. newEnvSetting) + if errorCode ~= 0 then + errorMessage = errorMessage .. luci.i18n.translate("Unable to set firmware environment variable") .. ": " .. boot_envvar1 .. " " .. luci.i18n.translate("to") .. " " .. newEnvSetting .. ". " + luci.util.perror(luci.i18n.translate("Unable to set firmware environment variable") .. ": " .. boot_envvar1 .. " " .. luci.i18n.translate("to") .. " " .. newEnvSetting .. ".") + end + end + end + if boot_envvar2 then + curEnvSetting = luci.util.trim(luci.sys.exec("/usr/sbin/fw_printenv -n " .. boot_envvar2)) + if not curEnvSetting then + errorMessage = errorMessage .. luci.i18n.translate("Unable to obtain firmware environment variable") .. ": " .. boot_envvar2 .. ". " + luci.util.perror(luci.i18n.translate("Unable to obtain firmware environment variable") .. ": " .. boot_envvar2 .. ".") + else + newEnvSetting = curEnvSetting == boot_envvar2_partition_one and boot_envvar2_partition_two or boot_envvar2_partition_one + errorCode = luci.sys.call("/usr/sbin/fw_setenv " .. boot_envvar2 .. " '" .. newEnvSetting .. "'") + if errorCode ~= 0 then + errorMessage = errorMessage .. luci.i18n.translate("Unable to set firmware environment variable") .. ": " .. boot_envvar2 .. " " .. luci.i18n.translate("to") .. " " .. newEnvSetting .. ". " + luci.util.perror(luci.i18n.translate("Unable to set firmware environment variable") .. ": " .. boot_envvar2 .. " " .. luci.i18n.translate("to") .. " " .. newEnvSetting .. ".") + end + end + end + else -- NetGear device + if not zyxelFlagPartition then zyxelFlagPartition = luci.util.trim(luci.sys.exec("source /lib/functions.sh; find_mtd_part 0:DUAL_FLAG")) end + if not zyxelFlagPartition then + errorMessage = errorMessage .. luci.i18n.translate("Unable to find Dual Boot Flag Partition." .. " ") + luci.util.perror(luci.i18n.translate("Unable to find Dual Boot Flag Partition.")) + else + zyxelBootFlag = tonumber(luci.sys.exec("dd if=" .. zyxelFlagPartition .. " bs=1 count=1 2>/dev/null | hexdump -n 1 -e '1/1 \"%d\"'")) + zyxelNewBootFlag = zyxelBootFlag and zyxelBootFlag == 1 and "\\xff" or "\\x01" + if zyxelNewBootFlag then + errorCode = luci.sys.call("printf \"" .. zyxelNewBootFlag .. "\" >" .. zyxelFlagPartition ) + if errorCode ~= 0 then + errorMessage = errorMessage .. luci.i18n.translate("Unable to set Dual Boot Flag Partition entry for partition") .. ": " .. zyxelFlagPartition .. ". " + luci.util.perror(luci.i18n.translate("Unable to set Dual Boot Flag Partition entry for partition") .. ": " .. zyxelFlagPartition .. ".") + end + end + end + end + if errorMessage == "" then + luci.template.render("admin_system/applyreboot", { + title = luci.i18n.translate("Rebooting..."), + msg = luci.i18n.translate("The system is rebooting to an alternative partition now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."), + addr = luci.ip.new(uci.cursor():get("network", "lan", "ipaddr")) or "192.168.1.1" + }) + luci.sys.reboot() + else + luci.template.render("advanced_reboot/advanced_reboot",{ + device_name=device_name, + boot_envvar1_partition_one=boot_envvar1_partition_one, + partition_one_os=partition_one_os, + boot_envvar1_partition_two=boot_envvar1_partition_two, + partition_two_os=partition_two_os, + current_partition=current_partition, + errorMessage = errorMessage}) + end end end diff --git a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm index 206d25054..0629c84b3 100644 --- a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm +++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm @@ -14,6 +14,10 @@ <p class="alert-message warning"><%:Warning: There are unsaved changes that will get lost on reboot!%></p> <%- end -%> +<%- if errorMessage and errorMessage ~= "" then -%> + <p class="alert-message warning"><%:ERROR: %><%=errorMessage%></p> +<%- end -%> + <%- if device_name then -%> <fieldset class="cbi-section"> <legend><%=device_name%><%: Partitions%></legend> @@ -26,7 +30,7 @@ </tr> <tr class="cbi-section-table-row"> <td> - <%=boot_envvar1_partition_one%> + <%=string.format("%X", boot_envvar1_partition_one)%> </td> <td> <%- if boot_envvar1_partition_one == current_partition then -%><%:Current%><%- else -%><%:Alternative%><%- end -%> @@ -50,7 +54,7 @@ </tr> <tr class="cbi-section-table-row"> <td> - <%=boot_envvar1_partition_two%> + <%=string.format("%X", boot_envvar1_partition_two)%> </td> <td> <%- if boot_envvar1_partition_two == current_partition then -%><%:Current%><%- else -%><%:Alternative%><%- end -%> diff --git a/applications/luci-app-advanced-reboot/po/ru/advanced-reboot.po b/applications/luci-app-advanced-reboot/po/ru/advanced-reboot.po new file mode 100644 index 000000000..75d463677 --- /dev/null +++ b/applications/luci-app-advanced-reboot/po/ru/advanced-reboot.po @@ -0,0 +1,163 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: advanced-reboot\n" +"POT-Creation-Date: 2017-11-30 15:20+0300\n" +"PO-Revision-Date: 2018-01-05 19:53+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "Action" +msgstr "Действие" + +msgid "Advanced Reboot" +msgstr "Дополнительная перезагрузка" + +msgid "Alternative" +msgstr "Альтернатива" + +msgid "Alternative reboot cancelled." +msgstr "Альтернативная перезагрузка отменена." + +msgid "Cancel" +msgstr "Отменить" + +msgid "Confirm" +msgstr "Подтвердить" + +msgid "Current" +msgstr "Текущий" + +msgid "ERROR:" +msgstr "ОШИБКА:" + +msgid "Firmware/OS (Kernel)" +msgstr "Прошивка/ОС (Ядро)" + +msgid "No access to fw_printenv or fw_printenv!" +msgstr "Нет доступа к fw_printenv или fw_printenv!" + +msgid "Partition" +msgstr "Раздел" + +msgid "Partitions" +msgstr "Разделы" + +msgid "Perform power off..." +msgstr "Выполнить отключение..." + +msgid "Power Off Device" +msgstr "Отключить питание устройства" + +msgid "Proceed" +msgstr "Продолжить" + +msgid "Reboot Device to an Alternative Partition" +msgstr "Перезагрузить устройство в альтернативный раздел" + +msgid "Reboot to alternative partition..." +msgstr "Перезагрузить до альтернативного раздела..." + +msgid "Reboot to current partition" +msgstr "Перезагрузка к текущему разделу" + +msgid "Rebooting..." +msgstr "Перезагрузка..." + +msgid "Shutting down..." +msgstr "Отключается..." + +msgid "Status" +msgstr "Состояние" + +msgid "" +"The system is rebooting now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a " +"few minutes before you try to reconnect. It might be necessary to renew the " +"address of your computer to reach the device again, depending on your " +"settings." +msgstr "" +"Система перезагружается сейчас.<br /> НЕ ОТКЛЮЧАЙТЕ ПИТАНИЕ УСТРОЙСТВА!<br /" +"> Подождите несколько минут, прежде чем попытаться установить соединение " +"снова. Возможно, потребуется обновить адрес компьютера для повторного " +"доступа к устройству в зависимости от ваших настроек." + +msgid "" +"The system is rebooting to an alternative partition now.<br /> DO NOT POWER " +"OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It " +"might be necessary to renew the address of your computer to reach the device " +"again, depending on your settings." +msgstr "" +"Система перезагружается на альтернативный раздел сейчас.<br /> НЕ ОТКЛЮЧАЙТЕ " +"ПИТАНИЕ УСТРОЙСТВА!<br /> Подождите несколько минут, прежде чем попытаться " +"установить соединение снова. Возможно, потребуется обновить адрес компьютера " +"для повторного доступа к устройству в зависимости от ваших настроек." + +msgid "" +"The system is shutting down now.<br /> DO NOT POWER OFF THE DEVICE!<br /> It " +"might be necessary to renew the address of your computer to reach the device " +"again, depending on your settings." +msgstr "" +"Система сейчас отключается.<br /> НЕ ОТКЛЮЧАЙТЕ ПИТАНИЕ УСТРОЙСТВА!<br /> " +"Возможно, потребуется обновить адрес компьютера для повторного доступа к " +"устройству в зависимости от настроек." + +msgid "Unable to find Dual Boot Flag Partition." +msgstr "Невозможно найти Dual Boot раздел." + +msgid "Unable to obtain firmware environment variable" +msgstr "Невозможно получить переменную среды прошивки" + +msgid "Unable to set Dual Boot Flag Partition entry for partition" +msgstr "Невозможно использовать Dual Boot раздел." + +msgid "Unable to set firmware environment variable" +msgstr "Невозможно установить переменную среды прошивки" + +msgid "" +"WARNING: An alternative partition might have its own settings and completely " +"different firmware.<br /><br /> As your network configuration and WiFi SSID/" +"password on alternative partition might be different, you might have to " +"adjust your computer settings to be able to access your device once it " +"reboots.<br /><br /> Please also be aware that alternative partition " +"firmware might not provide an easy way to switch active partition and boot " +"back to the currently active partition.<br /><br /> Click \"Proceed\" below " +"to reboot device to an alternative partition." +msgstr "" +"ВНИМАНИЕ: альтернативный раздел может иметь собственные настройки и " +"совершенно другую прошивку.<br /><br /> Поскольку ваши настройки сети и WiFi " +"SSID/пароли на альтернативных разделах могут отличаться, может потребоваться " +"изменить настройки компьютера, чтобы иметь возможность получить доступ к " +"устройству после перезагрузки .<br /><br /> Помните также, что " +"альтернативный раздел с прошивкой может не обеспечить простой способ " +"переключения активного раздела и загрузки обратно в текущий активный раздел." +"<br /><br /> Нажмите \"Продолжить\" ниже, чтобы перезагрузить устройство в " +"альтернативный раздел." + +msgid "" +"WARNING: Power off might result in a reboot on a device which doesn't " +"support power off.<br /><br /> Click \"Proceed\" below to power off your " +"device." +msgstr "" +"ВНИМАНИЕ: Отключение питания может привести к перезагрузке устройства, " +"которое не поддерживает выключение питания.<br /><br /> Нажмите \"Продолжить" +"\" ниже, чтобы выключить устройство." + +msgid "Warning: There are unsaved changes that will get lost on reboot!" +msgstr "" +"Внимание: Есть несохраненные изменения, которые будут потеряны при " +"перезагрузке!" + +msgid "Warning: This system does not have two partitions!" +msgstr "Внимание: Эта система не имеет двух разделов!" + +msgid "Warning: This system does not support powering off!" +msgstr "Внимание: Эта система не поддерживает отключение питания!" + +msgid "to" +msgstr "" diff --git a/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po b/applications/luci-app-advanced-reboot/po/sv/advanced-reboot.po index 20d77cbcf..e0e13cfda 100644 --- a/applications/luci-app-advanced-reboot/po/sv/luci-app-advanced-reboot.po +++ b/applications/luci-app-advanced-reboot/po/sv/advanced-reboot.po @@ -10,6 +10,9 @@ msgstr "Avancerad omstart" msgid "Alternative" msgstr "Alternativ" +msgid "Alternative reboot cancelled." +msgstr "" + msgid "Cancel" msgstr "Avbryt" @@ -19,9 +22,15 @@ msgstr "Bekräfta" msgid "Current" msgstr "Nuvarande" +msgid "ERROR:" +msgstr "" + msgid "Firmware/OS (Kernel)" msgstr "Inre mjukvara/OS (Kärna)" +msgid "No access to fw_printenv or fw_printenv!" +msgstr "" + msgid "Partition" msgstr "Partition" @@ -78,6 +87,18 @@ msgstr "" "inställningar så kan det vara nödvändigt att förnya din dators adress för " "att nå enheten igen." +msgid "Unable to find Dual Boot Flag Partition." +msgstr "" + +msgid "Unable to obtain firmware environment variable" +msgstr "" + +msgid "Unable to set Dual Boot Flag Partition entry for partition" +msgstr "" + +msgid "Unable to set firmware environment variable" +msgstr "" + msgid "" "WARNING: An alternative partition might have its own settings and completely " "different firmware.<br /><br /> As your network configuration and WiFi SSID/" @@ -107,3 +128,6 @@ msgstr "Varning: Det här systemet har inte två partitioner!" msgid "Warning: This system does not support powering off!" msgstr "Varning: Det här systemet har inte stöd för avstängning!" + +msgid "to" +msgstr "" diff --git a/applications/luci-app-advanced-reboot/po/templates/luci-app-advanced-reboot.pot b/applications/luci-app-advanced-reboot/po/templates/advanced-reboot.pot index 9c810892c..47a81e1dd 100644 --- a/applications/luci-app-advanced-reboot/po/templates/luci-app-advanced-reboot.pot +++ b/applications/luci-app-advanced-reboot/po/templates/advanced-reboot.pot @@ -10,6 +10,9 @@ msgstr "" msgid "Alternative" msgstr "" +msgid "Alternative reboot cancelled." +msgstr "" + msgid "Cancel" msgstr "" @@ -19,9 +22,15 @@ msgstr "" msgid "Current" msgstr "" +msgid "ERROR:" +msgstr "" + msgid "Firmware/OS (Kernel)" msgstr "" +msgid "No access to fw_printenv or fw_printenv!" +msgstr "" + msgid "Partition" msgstr "" @@ -75,6 +84,18 @@ msgid "" "again, depending on your settings." msgstr "" +msgid "Unable to find Dual Boot Flag Partition." +msgstr "" + +msgid "Unable to obtain firmware environment variable" +msgstr "" + +msgid "Unable to set Dual Boot Flag Partition entry for partition" +msgstr "" + +msgid "Unable to set firmware environment variable" +msgstr "" + msgid "" "WARNING: An alternative partition might have its own settings and completely " "different firmware.<br /><br /> As your network configuration and WiFi SSID/" @@ -100,3 +121,6 @@ msgstr "" msgid "Warning: This system does not support powering off!" msgstr "" + +msgid "to" +msgstr "" diff --git a/applications/luci-app-aria2/po/ru/aria2.po b/applications/luci-app-aria2/po/ru/aria2.po new file mode 100644 index 000000000..48a522d59 --- /dev/null +++ b/applications/luci-app-aria2/po/ru/aria2.po @@ -0,0 +1,222 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: aria2\n" +"POT-Creation-Date: 2017-11-30 23:45+0300\n" +"PO-Revision-Date: 2018-01-05 21:29+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "\"Falloc\" is not available in all cases." +msgstr "\"Falloc\" возможен не всегда." + +msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled" +msgstr "<abbr title=\"Распределенная Hash таблица\">DHT</abbr> включена" + +msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled" +msgstr "<abbr title=\"Обнаружение локальных пиров \">LPD</abbr> включено" + +msgid "Additional Bt tracker enabled" +msgstr "Дополнительный Bt tracker включен" + +msgid "Aria2" +msgstr "Aria2" + +msgid "Aria2 Settings" +msgstr "Aria2 настройки" + +msgid "Aria2 Status" +msgstr "Aria2 состояние" + +msgid "" +"Aria2 is a multi-protocol & multi-source download utility, here you can " +"configure the settings." +msgstr "" +"Aria2 - это мульти-протокольная и мульти-платформенная утилита загрузки, " +"здесь вы сможете ее настроить." + +msgid "Autosave session interval" +msgstr "Интервал сессии автосохранения" + +msgid "BitTorrent Settings" +msgstr "Настройки BitTorrent-а" + +msgid "BitTorrent listen port" +msgstr "Порт прослушивания BitTorrent-а" + +msgid "Collecting data..." +msgstr "Сбор информации..." + +msgid "Config file directory" +msgstr "Папка расположения сonfig файла" + +msgid "Debug" +msgstr "Отладка" + +msgid "Default download directory" +msgstr "Папка загрузки по умолчанию" + +msgid "Disk cache" +msgstr "Дисковый кэш" + +msgid "Enable log" +msgstr "Включить ведение системного журнала" + +msgid "Enabled" +msgstr "Включено" + +msgid "Error" +msgstr "Ошибка" + +msgid "Extra Settings" +msgstr "Дополнительные настройки" + +msgid "Falloc" +msgstr "Falloc" + +msgid "Files and Locations" +msgstr "Файлы и папки" + +msgid "Follow torrent" +msgstr "Запустить торрент-файл" + +msgid "General Settings" +msgstr "Основные настройки" + +msgid "Generate Randomly" +msgstr "Генерировать случайно" + +msgid "Info" +msgstr "Информация" + +msgid "List of additional Bt tracker" +msgstr "Список дополнительных BT tracker-ов" + +msgid "List of extra settings" +msgstr "Список дополнительных настроек" + +msgid "Log file is in the config file dir." +msgstr "Файл системного журнала находится в папке с config файлом." + +msgid "Log level" +msgstr "Уровень системного журнала" + +msgid "Max concurrent downloads" +msgstr "Максимальное количество одновременных загрузок" + +msgid "Max connection per server" +msgstr "Максимальное подключение на сервер" + +msgid "Max number of peers per torrent" +msgstr "Максимальное число пиров на торрент" + +msgid "Max number of split" +msgstr "Максимальное число разделений" + +msgid "Min split size" +msgstr "Минимальный размер разделений" + +msgid "No Authentication" +msgstr "Без проверки подлинности" + +msgid "Notice" +msgstr "Заметка" + +msgid "Off" +msgstr "Выключено" + +msgid "Open WebUI-Aria2" +msgstr "Открыть WebUI-Aria2" + +msgid "Open YAAW" +msgstr "Открыть YAAW" + +msgid "Overall download limit" +msgstr "Общий лимит загрузки" + +msgid "Overall speed limit enabled" +msgstr "Общий лимит скорости включен" + +msgid "Overall upload limit" +msgstr "Общий лимит скачивания" + +msgid "Per task download limit" +msgstr "Ограничить задачи загрузок" + +msgid "Per task speed limit enabled" +msgstr "Ограничить скорость выполнения каждой задачи" + +msgid "Per task upload limit" +msgstr "Ограничить задачи скачивания" + +msgid "Prealloc" +msgstr "Предварительно" + +msgid "Preallocation" +msgstr "Предварительное размещение" + +msgid "Prefix of peer ID" +msgstr "Префикс ID пира" + +msgid "RPC Token" +msgstr "RPC электронный ключ" + +msgid "RPC authentication method" +msgstr "RPC метод аутентификации" + +msgid "RPC password" +msgstr "RPC пароль" + +msgid "RPC port" +msgstr "RPC порт" + +msgid "RPC username" +msgstr "RPC логин" + +msgid "Run daemon as user" +msgstr "Запуск демона от имени пользователя" + +msgid "Sec" +msgstr "Секунды" + +msgid "Task Settings" +msgstr "Настройки параметров" + +msgid "The Aria2 service is not running." +msgstr "Aria2 сервис не запущен." + +msgid "The Aria2 service is running." +msgstr "Aria2 сервис запущен." + +msgid "Token" +msgstr "Электронный ключ" + +msgid "Trunc" +msgstr "Обрезать" + +msgid "Use WebSocket" +msgstr "Использовать WebSockets" + +msgid "User agent value" +msgstr "Агент пользователя" + +msgid "Username & Password" +msgstr "Имя и пароль" + +msgid "View Json-RPC URL" +msgstr "Показать URL Json-RPC" + +msgid "Warn" +msgstr "Внимание" + +msgid "in bytes, You can append K or M." +msgstr "в байтах. Вы можете добавить суффикс K (кило) или М (мега)." + +msgid "in bytes/sec, You can append K or M." +msgstr "в байтах/секундах. Вы можете добавить суффикс K (кило) или М (мега)." diff --git a/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm b/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm index 847ad5cfb..0a8c65ebd 100644 --- a/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm +++ b/applications/luci-app-attendedsysupgrade/luasrc/view/attendedsysupgrade.htm @@ -71,15 +71,14 @@ end apply_acls("/usr/share/rpcd/acl.d/attendedsysupgrade.json", luci.dispatcher.context.authsession) - apply_acls("/usr/share/rpcd/acl.d/packagelist.json", luci.dispatcher.context.authsession) %> <%+header%> <h2 name="content"><%:Attended Sysupgrade%></h2> <div class="cbi-map-descr"> - Easily search and install new releases and package upgrades. Sysupgrade images are created on demand based on locally installed packages. + Easily search and install new releases and package upgrades. Sysupgrade firmware are created on demand based on locally installed packages. </div> -<div style="display: none" id="upgrade_info" class="alert-message info"></div> -<div style="display: none" id="upgrade_error" class="alert-message danger"></div> +<div style="display: none" id="info_box" class="alert-message info"></div> +<div style="display: none" id="error_box" class="alert-message danger"></div> <div style="display: none" id="packages" class="alert-message success"></div> <p> <textarea style="display: none; width: 100%;" id="edit_packages" rows="15"></textarea> @@ -89,7 +88,7 @@ <div class="cbi-selection-node"> <div class="cbi-value" id="keep_container" style="display: none"> <div class="cbi-section-descr"> - Check "Keep settings" to retain the current configuration (requires a compatible firmware image). + Check "Keep settings" to retain the current configuration (requires a compatible firmware). </div> <label class="cbi-value-title" for="keep">Keep settings:</label> <div class="cbi-value-field"> @@ -116,353 +115,10 @@ </form> </fieldset> <script type="text/javascript"> -data = {}; -origin = document.location.href.replace(location.pathname, "") -ubus_url = origin + "/ubus/" - -function set_server() { - data.url = document.getElementById("server").value; - ubus_call("uci", "set", { "config": "attendedsysupgrade", "section": "server", values: { "url": data.url } }) - ubus_call("uci", "commit", { "config": "attendedsysupgrade" }) - var server = document.getElementById("server") - server.type = 'button'; - server.className = 'cbi-button cbi-button-edit'; - server.parentElement.removeChild(document.getElementById("button_set")); - server.onclick = edit_server; -} - -function edit_server() { - document.getElementById("server").type = 'text'; - document.getElementById("server").onkeydown = function(event) { - if(event.key === 'Enter') { - set_server(); - return false; - } - } - document.getElementById("server").className = ''; - document.getElementById("server").onclick = null; - - button_set = document.createElement("input"); - button_set.type = "button"; - button_set.value = "Save"; - button_set.name = "button_set"; - button_set.id = "button_set"; - button_set.className = 'cbi-button cbi-button-edit'; - button_set.style = 'background-image: url("/luci-static/resources/cbi/save.gif");' - button_set.onclick = set_server - document.getElementById("server").parentElement.appendChild(button_set); -} - -function edit_packages() { - data.edit_packages = true - document.getElementById("edit_button").style.display = "none"; - document.getElementById("edit_packages").value = data.packages.join("\n"); - document.getElementById("edit_packages").style.display = "block"; -} - -// requests to the upgrade server -function server_request(request_dict, path, callback) { - request_dict.distro = data.release.distribution; - request_dict.target = data.release.target.split("\/")[0]; - request_dict.subtarget = data.release.target.split("\/")[1]; - var request = new XMLHttpRequest(); - request.open("POST", data.url + "/" + path, true); - request.setRequestHeader("Content-type", "application/json"); - request.send(JSON.stringify(request_dict)); - request.onerror = function(e) { - upgrade_error("upgrade server down") - document.getElementById("server_div").style.display = "block"; - } - request.addEventListener('load', function(event) { - callback(request) - }); -} - -// initial setup, get system information -function setup() { + data = {}; data["ubus_rpc_session"] = "<%=luci.dispatcher.context.authsession%>" - ubus_call("packagelist", "list", {}, "packagelist"); - ubus_call("system", "board", {}, "release"); - ubus_call("system", "board", {}, "board_name"); - ubus_call("system", "board", {}, "model"); - uci_call({ "config": "attendedsysupgrade", "section": "server", "option": "url" }) - uci_call({ "config": "attendedsysupgrade", "section": "client", "option": "upgrade_packages" }) - uci_call({ "config": "attendedsysupgrade", "section": "client", "option": "advanced_mode" }) - uci_call({ "config": "attendedsysupgrade", "section": "client", "option": "auto_search" }) - setup_ready(); -} - -function setup_ready() { - if(ubus_counter != ubus_closed) { - setTimeout(setup_ready, 300) - } else { - if(data.auto_search == 1) { - upgrade_check(); - } else { - document.getElementById("upgrade_button").style.display = "block"; - document.getElementById("server_div").style.display = "block"; - document.getElementById("server").value = data.url; - } - } -} - -function uci_call(option) { - ubus_call("uci", "get", option, option["option"]) -} - -ubus_counter = 0; -ubus_closed = 0; -function ubus_call(command, argument, params, variable) { - request_data = {}; - request_data.jsonrpc = "2.0"; - request_data.id = ubus_counter; - request_data.method = "call"; - request_data.params = [ data.ubus_rpc_session, command, argument, params ] - request_json = JSON.stringify(request_data) - ubus_counter++; - var request = new XMLHttpRequest(); - request.open("POST", ubus_url, true); - request.setRequestHeader("Content-type", "application/json"); - request.addEventListener('load', function(event) { - if(request.status === 200) { - response = JSON.parse(request.responseText).result - if(response[0] == 0) { - if(response.length == 2) { - if(command === "uci") { - data[variable] = response[1].value - } else { - data[variable] = response[1][variable] - } - } - } else { - upgrade_error("ubus call faild: " + request_json) - } - ubus_closed++; - } - }); - request.send(request_json); -} - -// shows notification if upgrade is available -function upgrade_info(info_output, loading) { - document.getElementById("upgrade_info").style.display = "block"; - if(loading) { - loading_image = '<img src="/luci-static/resources/icons/loading.gif" alt="Loading" style="vertical-align:middle">' - } else { - loading_image = '' - } - document.getElementById("upgrade_info").innerHTML = loading_image + info_output; -} - -function upgrade_error(error_output) { - document.getElementById("upgrade_error").style.display = "block"; - document.getElementById("upgrade_error").innerHTML = error_output; - document.getElementById("upgrade_info").style.display = "none"; -} - -// asks server for news upgrades, actually only based on relesae not packages -function upgrade_check() { - document.getElementById("upgrade_error").style.display = "none"; - document.getElementById("server_div").style.display = "none"; - upgrade_info("Searching for upgrades", true); - request_dict = {} - request_dict.version = data.release.version; - request_dict.packages = data.packagelist; - // not only search for new release, but for new package versions as well - request_dict.upgrade_packages = data.upgrade_packages - server_request(request_dict, "api/upgrade-check", upgrade_check_callback) -} - -// request the image, need merge with upgrade_request -function upgrade_request() { - console.log("upgrade_request") - document.getElementById("upgrade_button").disabled = true; - document.getElementById("edit_packages").style.display = "none"; - document.getElementById("edit_button").style.display = "none"; - document.getElementById("keep_container").style.display = "none"; - request_dict = {} - request_dict.version = data.latest_version; - request_dict.board = data.board_name - - if(data.edit_packages == true) { - request_dict.packages = document.getElementById("edit_packages").value.split("\n") - } else { - request_dict.packages = data.packages; - } - request_dict.model = data.model - server_request(request_dict, "api/upgrade-request", upgrade_request_callback) -} - -function upgrade_request_callback(response) { - if (response.status === 400) { - response_content = JSON.parse(response.responseText) - upgrade_error(response_content.error) - } else if (response.status === 500) { - response_content = JSON.parse(response.responseText) - upgrade_error(response_content.error) - if(response_content.log != undefined) { - data.log_url = response_content.log - } - } else if (response.status === 503) { - upgrade_error("please wait. server overloaded") - // handle overload - setTimeout(upgrade_request, 30000) - } else if (response.status === 201) { - response_content = JSON.parse(response.responseText) - if(response_content.queue != undefined) { - // in queue - upgrade_info("please wait. you are in queue position " + response_content.queue, true) - console.log("queued") - } else { - upgrade_info("imagebuilder not ready, please wait", true) - console.log("setting up imagebuilder") - } - setTimeout(upgrade_request, 5000) - } else if (response.status === 206) { - // building - console.log("building") - upgrade_info("building image", true) - setTimeout(upgrade_request, 5000) - } else if (response.status === 200) { - // ready to download - response_content = JSON.parse(response.responseText); - data.sysupgrade_url = response_content.sysupgrade; - - info_output = "Image created" - if(data.advanced_mode == 1) { - build_log = '</br><a target="_blank" href="' + data.sysupgrade_url + '.log">Build log</a>' - info_output += build_log - } - upgrade_info(info_output); - - document.getElementById("keep_container").style.display = "block"; - var upgrade_button = document.getElementById("upgrade_button") - upgrade_button.disabled = false; - upgrade_button.style.display = "block"; - upgrade_button.value = "Flash firmware"; - upgrade_button.onclick = download_image; - } -} - -// uploads received blob data to the server using cgi-io -function upload_image(blob) { - var upload_request = new XMLHttpRequest(); - var form_data = new FormData(); - - form_data.append("sessionid", data.ubus_rpc_session) - form_data.append("filename", "/tmp/firmware.bin") - form_data.append("filemode", 755) // insecure? - form_data.append("filedata", blob) - - upload_request.addEventListener('load', function(event) { - // this checksum should be parsed - upgrade_info("Flashing firmware", true) - ubus_call("rpc-sys", "upgrade_start", { "keep": document.getElementById("keep").checked }, 'message'); - setTimeout(ping_ubus, 5000) - console.log(data.message); - }); - - upload_request.addEventListener('error', function(event) { - upgrade_info("uploading failed, please retry") - }); - - upload_request.open('POST', origin + '/cgi-bin/cgi-upload'); - upload_request.send(form_data); -} - -function ping_ubus() { - var request = new XMLHttpRequest(); - request.open("GET", ubus_url, true); - request.addEventListener('error', function(event) { - upgrade_info("Rebooting", true); - setTimeout(ping_ubus, 1000) - }); - request.addEventListener('load', function(event) { - upgrade_info("Success! Please reload web interface"); - document.getElementById("upgrade_button").value = "reload page"; - document.getElementById("upgrade_button").style.display = "block"; - document.getElementById("upgrade_button").disabled = false; - document.getElementById("upgrade_button").onclick = function() { location.reload(); } - }); - request.send(); -} - -// download image from server once the url was received by upgrade_request -function download_image() { - console.log("download_image") - document.getElementById("keep_container").style.display = "none"; - document.getElementById("upgrade_button").style.display = "none"; - var download_request = new XMLHttpRequest(); - download_request.open("GET", data.sysupgrade_url); - download_request.responseType = "arraybuffer"; - - download_request.onload = function () { - if (this.status === 200) { - var blob = new Blob([download_request.response], {type: "application/octet-stream"}); - upload_image(blob) - } - }; - upgrade_info("downloading image", true); - download_request.send(); -} - -function upgrade_check_callback(response_object) { - if (response_object.status === 500) { - // python crashed - upgrade_error("internal server error, please try again later") - console.log("upgrade server issue") - } else if (response_object.status === 502) { - // python part offline - upgrade_error("internal server error, please try again later") - console.log("upgrade server issue") - } else if (response_object.status === 503) { - // handle overload - upgrade_error("server overloaded, retry in 5 minutes") - console.log("server overloaded") - setTimeout(upgrade_request, 300000) - } else if (response_object.status === 201) { - upgrade_info("Setting up ImageBuilder", true) - console.log("setting up imagebuilder") - setTimeout(upgrade_request, 5000) - } else if (response_object.status === 204) { - // no upgrades - upgrade_info("No upgrades available") - } else if (response_object.status === 400) { - // bad request - console.log(response_object.responseText) - response_object_content = JSON.parse(response_object.responseText) - upgrade_error(response_object_content.error) - } else if (response_object.status === 200) { - // new release/upgrades - response_content = JSON.parse(response_object.responseText) - - // create simple output to tell user whats going to be upgrade (release/packages) - info_output = "" - if(response_content.version != undefined) { - info_output += "<h3>new upgrade available</h3>" - info_output += data.release.version + " to " + response_content.version - data.latest_version = response_content.version; - } - if(response_content.upgrades != undefined) { - info_output += "<h3>package upgrades available</h3>" - for (upgrade in response_content.upgrades) { - info_output += "<b>" + upgrade + "</b>: " + response_content.upgrades[upgrade][1] + " to " + response_content.upgrades[upgrade][0] + "</br>" - } - } - data.packages = response_content.packages - upgrade_info(info_output) - - if(data.advanced_mode == 1) { - document.getElementById("edit_button").style.display = "block"; - } - var upgrade_button = document.getElementById("upgrade_button") - upgrade_button.value = "Request image"; - upgrade_button.style.display = "block"; - upgrade_button.disabled = false; - upgrade_button.onclick = upgrade_request; - } -} -document.onload = setup() + origin = document.location.href.replace(location.pathname, "") + ubus_url = origin + "/ubus/" </script> - +<script type="text/javascript" src="<%=resource%>/attendedsysupgrade.js"></script> <%+footer%> diff --git a/applications/luci-app-attendedsysupgrade/root/usr/share/rpcd/acl.d/attendedsysupgrade.json b/applications/luci-app-attendedsysupgrade/root/usr/share/rpcd/acl.d/attendedsysupgrade.json index 97aa81492..754931926 100644 --- a/applications/luci-app-attendedsysupgrade/root/usr/share/rpcd/acl.d/attendedsysupgrade.json +++ b/applications/luci-app-attendedsysupgrade/root/usr/share/rpcd/acl.d/attendedsysupgrade.json @@ -4,10 +4,12 @@ "read": { "ubus": { "rpc-sys": [ - "upgrade_start" + "upgrade_start", + "packagelist" ], "system": [ - "board" + "board", + "info" ], "uci": [ "get", "set", "commit" diff --git a/applications/luci-app-attendedsysupgrade/root/www/luci-static/resources/attendedsysupgrade.js b/applications/luci-app-attendedsysupgrade/root/www/luci-static/resources/attendedsysupgrade.js new file mode 100644 index 000000000..c2fe81d58 --- /dev/null +++ b/applications/luci-app-attendedsysupgrade/root/www/luci-static/resources/attendedsysupgrade.js @@ -0,0 +1,402 @@ +function $(s) { + return document.getElementById(s.substring(1)); +} + +function show(s) { + $(s).style.display = 'block'; +} + +function hide(s) { + $(s).style.display = 'none'; +} + +function set_server() { + hide("#error_box"); + data.url = $("#server").value; + ubus_call("uci", "set", { "config": "attendedsysupgrade", "section": "server", values: { "url": data.url } }) + ubus_call("uci", "commit", { "config": "attendedsysupgrade" }) + var server_button = $("#server") + server_button.type = 'button'; + server_button.className = 'cbi-button cbi-button-edit'; + server_button.parentElement.removeChild($("#button_set")); + server_button.onclick = edit_server; +} + +function edit_server() { + $("#server").type = 'text'; + $("#server").onkeydown = function(event) { + if(event.key === 'Enter') { + set_server(); + return false; + } + } + $("#server").className = ''; + $("#server").onclick = null; + + button_set = document.createElement("input"); + button_set.type = "button"; + button_set.value = "Save"; + button_set.name = "button_set"; + button_set.id = "button_set"; + button_set.className = 'cbi-button cbi-button-edit'; + button_set.style = 'background-image: url("/luci-static/resources/cbi/save.gif");' + button_set.onclick = set_server + $("#server").parentElement.appendChild(button_set); +} + +function edit_packages() { + data.edit_packages = true + hide("#edit_button"); + $("#edit_packages").value = data.packages.join("\n"); + show("#edit_packages"); +} + +// requests to the upgrade server +function server_request(request_dict, path, callback) { + request_dict.distro = data.release.distribution; + request_dict.target = data.release.target.split("\/")[0]; + request_dict.subtarget = data.release.target.split("\/")[1]; + var request = new XMLHttpRequest(); + request.open("POST", data.url + "/" + path, true); + request.setRequestHeader("Content-type", "application/json"); + request.send(JSON.stringify(request_dict)); + request.onerror = function(e) { + error_box("upgrade server down") + show("#server_div"); + } + request.addEventListener('load', function(event) { + callback(request) + }); +} + +// initial setup, get system information +function setup() { + ubus_call("rpc-sys", "packagelist", {}, "packages"); + ubus_call("system", "board", {}, "release"); + ubus_call("system", "board", {}, "board_name"); + ubus_call("system", "board", {}, "model"); + ubus_call("system", "info", {}, "memory"); + uci_get({ "config": "attendedsysupgrade", "section": "server", "option": "url" }) + uci_get({ "config": "attendedsysupgrade", "section": "client", "option": "upgrade_packages" }) + uci_get({ "config": "attendedsysupgrade", "section": "client", "option": "advanced_mode" }) + uci_get({ "config": "attendedsysupgrade", "section": "client", "option": "auto_search" }) + setup_ready(); +} + +function setup_ready() { + // checks if a async ubus calls have finished + if(ubus_counter != ubus_closed) { + setTimeout(setup_ready, 300) + } else { + if(data.auto_search == 1) { + upgrade_check(); + } else { + show("#upgrade_button"); + show("#server_div"); + $("#server").value = data.url; + } + } +} + +function uci_get(option) { + // simple wrapper to get a uci value store in data.<option> + ubus_call("uci", "get", option, option["option"]) +} + +ubus_counter = 0; +ubus_closed = 0; +function ubus_call(command, argument, params, variable) { + var request_data = {}; + request_data.jsonrpc = "2.0"; + request_data.id = ubus_counter; + request_data.method = "call"; + request_data.params = [ data.ubus_rpc_session, command, argument, params ] + request_json = JSON.stringify(request_data) + ubus_counter++; + var request = new XMLHttpRequest(); + request.open("POST", ubus_url, true); + request.setRequestHeader("Content-type", "application/json"); + request.onload = function(event) { + if(request.status === 200) { + var response = JSON.parse(request.responseText) + if(!("error" in response) && "result" in response) { + if(response.result.length === 2) { + if(command === "uci") { + data[variable] = response.result[1].value + } else { + data[variable] = response.result[1][variable] + } + } + } else { + error_box("<b>Ubus call faild:</b></br>Request: " + request_json + "</br>Response: " + JSON.stringify(response)) + } + ubus_closed++; + } + } + request.send(request_json); +} + +function info_box(info_output, loading) { + // Shows notification if upgrade is available + // If loading is true then an "processing" animation is added + show("#info_box"); + var loading_image = ''; + if(loading) { + loading_image = '<img src="/luci-static/resources/icons/loading.gif" alt="Loading" style="vertical-align:middle">'; + } + $("#info_box").innerHTML = loading_image + info_output; +} + +function error_box(error_output) { + // Shows erros in red box + show("#error_box"); + $("#error_box").innerHTML = error_output; + hide("#info_box"); +} + +function upgrade_check() { + // Asks server for new firmware + // If data.upgrade_packages is set to true search for new package versions as well + hide("#error_box"); + hide("#server_div"); + info_box("Searching for upgrades", true); + var request_dict = {} + request_dict.version = data.release.version; + request_dict.packages = data.packages; + request_dict.upgrade_packages = data.upgrade_packages + server_request(request_dict, "api/upgrade-check", upgrade_check_callback) +} + +function upgrade_check_callback(request_text) { + var request_json = JSON.parse(request_text) + + // create simple output to tell user whats going to be upgrade (release/packages) + var info_output = "" + if(request_json.version != undefined) { + info_output += "<h3>New firmware release available</h3>" + info_output += data.release.version + " to " + request_json.version + data.latest_version = request_json.version; + } + if(request_json.upgrades != undefined) { + info_output += "<h3>Package upgrades available</h3>" + for (upgrade in request_json.upgrades) { + info_output += "<b>" + upgrade + "</b>: " + request_json.upgrades[upgrade][1] + " to " + request_json.upgrades[upgrade][0] + "</br>" + } + } + data.packages = request_json.packages + info_box(info_output) + + if(data.advanced_mode == 1) { + show("#edit_button"); + } + var upgrade_button = $("#upgrade_button") + upgrade_button.value = "Request firmware"; + upgrade_button.style.display = "block"; + upgrade_button.disabled = false; + upgrade_button.onclick = upgrade_request; + +} + +function upgrade_request() { + // Request the image + // Needed values + // version/release + // board_name or model (server tries to find the corrent profile) + // packages + // The rest is added by server_request() + $("#upgrade_button").disabled = true; + hide("#edit_packages"); + hide("#edit_button"); + hide("#keep_container"); + + var request_dict = {} + request_dict.version = data.latest_version; + request_dict.board = data.board_name + request_dict.model = data.model + + if(data.edit_packages == true) { + request_dict.packages = $("#edit_packages").value.split("\n") + } else { + request_dict.packages = data.packages; + } + + server_request(request_dict, "api/upgrade-request", upgrade_request_callback) +} + +function upgrade_request_callback(request) { + // ready to download + var request_json = JSON.parse(request); + data.sysupgrade_url = request_json.sysupgrade; + + var filename_split = data.sysupgrade_url.split("/") + data.filename = filename_split[filename_split.length - 1] + + info_output = "Firmware created</br><b>" + data.filename + "</b>" + if(data.advanced_mode == 1) { + info_output += '</br><a target="_blank" href="' + data.sysupgrade_url + '.log">Build log</a>' + } + info_box(info_output); + + show("#keep_container"); + var upgrade_button = $("#upgrade_button") + upgrade_button.disabled = false; + upgrade_button.style.display = "block"; + upgrade_button.value = "Flash firmware"; + upgrade_button.onclick = download_image; +} + +function flash_image() { + // Flash image via rpc-sys upgrade_start + info_box("Flashing firmware. Don't unpower device", true) + ubus_call("rpc-sys", "upgrade_start", { "keep": $("#keep").checked }, 'message'); + ping_max = 3600; // in seconds + setTimeout(ping_ubus, 10000) +} + +function ping_ubus() { + // Tries to connect to ubus. If the connection fails the device is likely still rebooting. + // If more time than ping_max passes update may failed + if(ping_max > 0) { + ping_max--; + var request = new XMLHttpRequest(); + request.open("GET", ubus_url, true); + request.addEventListener('error', function(event) { + info_box("Rebooting device", true); + setTimeout(ping_ubus, 1000) + }); + request.addEventListener('load', function(event) { + info_box("Success! Please reload web interface"); + $("#upgrade_button").value = "Reload page"; + show("#upgrade_button"); + $("#upgrade_button").disabled = false; + $("#upgrade_button").onclick = function() { location.reload(); } + }); + request.send(); + } else { + error_box("Web interface could not reconnect to your device. Please reload web interface or check device manually") + } +} + +function upload_image(blob) { + // Uploads received blob data to the server using cgi-io + var request = new XMLHttpRequest(); + var form_data = new FormData(); + + form_data.append("sessionid", data.ubus_rpc_session) + form_data.append("filename", "/tmp/firmware.bin") + form_data.append("filemode", 755) // insecure? + form_data.append("filedata", blob) + + request.addEventListener('load', function(event) { + request_json = JSON.parse(request.responseText) + flash_image(); + }); + + request.addEventListener('error', function(event) { + info_box("Upload of firmware failed, please retry by reloading web interface") + }); + + request.open('POST', origin + '/cgi-bin/cgi-upload'); + request.send(form_data); +} + + +function download_image() { + // Download image from server once the url was received by upgrade_request + hide("#keep_container"); + hide("#upgrade_button"); + var download_request = new XMLHttpRequest(); + download_request.open("GET", data.sysupgrade_url); + download_request.responseType = "arraybuffer"; + + download_request.onload = function () { + if (this.status === 200) { + var blob = new Blob([download_request.response], {type: "application/octet-stream"}); + upload_image(blob) + } + }; + info_box("Downloading firmware", true); + download_request.send(); +} + +function server_request(request_dict, path, callback) { + request_dict.distro = data.release.distribution; + request_dict.target = data.release.target.split("\/")[0]; + request_dict.subtarget = data.release.target.split("\/")[1]; + var request = new XMLHttpRequest(); + request.open("POST", data.url + "/" + path, true); + request.setRequestHeader("Content-type", "application/json"); + request.send(JSON.stringify(request_dict)); + request.onerror = function(e) { + error_box("Upgrade server down or could not connect") + show("#server_div"); + } + request.addEventListener('load', function(event) { + request_text = request.responseText; + if (request.status === 200) { + callback(request_text) + + } else if (request.status === 202) { + var imagebuilder = request.getResponseHeader("X-Imagebuilder-Status"); + if(imagebuilder === "queue") { + // in queue + var queue = request.getResponseHeader("X-Build-Queue-Position"); + info_box("In build queue position " + queue, true) + console.log("queued"); + } else if(imagebuilder === "initialize") { + info_box("Setting up ImageBuilder", true) + console.log("Setting up imagebuilder"); + } else if(imagebuilder === "building") { + info_box("Building image", true); + console.log("building"); + } else { + // fallback if for some reasons the headers are missing e.g. browser blocks access + info_box("Processing request", true); + console.log(imagebuilder) + } + setTimeout(function() { server_request(request_dict, path, callback) }, 5000) + + } else if (request.status === 204) { + // no upgrades available + info_box("No upgrades available") + + } else if (request.status === 400) { + // bad request + request_json = JSON.parse(request_text) + error_box(request_json.error) + + } else if (request.status === 412) { + // this is a bit generic + error_box("Unsupported device, release, target, subtraget or board") + + } else if (request.status === 413) { + error_box("No firmware created due to image size. Try again with less packages selected.") + + } else if (request.status === 422) { + error_box("Unknown package in request") + + } else if (request.status === 500) { + request_json = JSON.parse(request_text) + + error_box_content = "<b>Internal server error</b></br>" + error_box_content += request_json.error + if(request_json.log != undefined) { + data.log_url = request_json.log + } + error_box(error_box_content) + + } else if (request.status === 501) { + error_box("No sysupgrade file produced, may not supported by modell.") + + } else if (request.status === 502) { + // python part offline + error_box("Server down for maintenance") + setTimeout(function() { server_request(request_dict, path, callback) }, 30000) + } else if (request.status === 503) { + error_box("Server overloaded") + setTimeout(function() { server_request(request_dict, path, callback) }, 30000) + } + }); +} +document.onload = setup() + diff --git a/applications/luci-app-bcp38/po/ru/bcp38.po b/applications/luci-app-bcp38/po/ru/bcp38.po new file mode 100644 index 000000000..1c4348884 --- /dev/null +++ b/applications/luci-app-bcp38/po/ru/bcp38.po @@ -0,0 +1,70 @@ +msgid "" +msgstr "" +"Project-Id-Version: LuCI: bcp38\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-19 19:36+0200\n" +"PO-Revision-Date: 2017-11-30 21:48+0300\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Language-Team: http://cyber-place.ru\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Pootle 2.0.4\n" +"X-Poedit-SourceCharset: UTF-8\n" + +msgid "Allowed IP ranges" +msgstr "Диапазон разрешенных IP адресов" + +msgid "" +"Attempt to automatically detect if the upstream IP will be blocked by the " +"configuration, and add an exception if it will. If this does not work " +"correctly, you can add exceptions manually below." +msgstr "" +"Попытается автоматически обнаружить, если будет настроена блокировка раздающего IP, " +"и добавить событие в исключения. Если автоматичеки не получиться, можно добавить " +"данное событие в исключения вручную ниже." + +msgid "Auto-detect upstream IP" +msgstr "Автоматическое определение раздающего IP" + +msgid "BCP38" +msgstr "BCP38" + +msgid "BCP38 config" +msgstr "BCP38 config файл" + +msgid "Blocked IP ranges" +msgstr "Диапазон запрещенных IP адресов" + +msgid "Enable" +msgstr "Включить" + +msgid "Interface name" +msgstr "Имя интерфейса" + +msgid "" +"Interface to apply the blocking to (should be the upstream WAN interface)." +msgstr "" +"Интерфейс для применения блокировки (должен быть раздающим WAN интерфейсом)." + +msgid "" +"Takes precedence over blocked ranges. Use to whitelist your upstream network " +"if you're behind a double NAT and the auto-detection doesn't work." +msgstr "" +"Приоритет имеет блокировка диапазонов IP. Используйте для белого списка вашей " +"раздающей сети, если вы за двойным NAT-ом и автоматическое обнаружение не работает." + +msgid "" +"This function blocks packets with private address destinations from going " +"out onto the internet as per <a href=\"http://tools.ietf.org/html/" +"bcp38\">BCP 38</a>. For IPv6, only source specific default routes are " +"installed, so no BCP38 firewall routes are needed." +msgstr "" +"Эта функция блокирует пакеты с частными адресами назначения из выхода в " +"интернет согласно <a href=\"http://tools.ietf.org/html/ bcp38\">BCP 38</a>. " +"Для IPv6, устанавливаются только специфичные для источника маршруты по умолчанию " +"поэтому BCP38 не используется фаерволом." + diff --git a/applications/luci-app-clamav/po/ru/clamav.po b/applications/luci-app-clamav/po/ru/clamav.po new file mode 100644 index 000000000..6658693e8 --- /dev/null +++ b/applications/luci-app-clamav/po/ru/clamav.po @@ -0,0 +1,133 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: clamav\n" +"POT-Creation-Date: 2017-10-17 22:00+0300\n" +"PO-Revision-Date: 2018-01-05 20:13+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "10" +msgstr "10" + +msgid "1024" +msgstr "1024" + +msgid "15" +msgstr "15" + +msgid "150M" +msgstr "150M" + +msgid "1M" +msgstr "1M" + +msgid "20" +msgstr "20" + +msgid "2048" +msgstr "2048" + +msgid "2M" +msgstr "2M" + +msgid "50M" +msgstr "50M" + +msgid "512K" +msgstr "512K" + +msgid "600" +msgstr "600" + +msgid "Block encrypted archives" +msgstr "Блокировать зашифрованные архивы" + +msgid "ClamAV" +msgstr "Антивирус ClamAV" + +msgid "Database check every N sec" +msgstr "Проверка базы данных каждые N сек" + +msgid "Detect broken executables" +msgstr "Обнаружение нерабочих исполняемых файлов" + +msgid "Detect possibly unwanted apps" +msgstr "Обнаружение возможных нежелательных приложений" + +msgid "Enable verbose logging" +msgstr "Включить подробное ведение системного журнала" + +msgid "Follow directory symlinks" +msgstr "Следовать по ссылкам на папки" + +msgid "Follow file symlinks" +msgstr "Следовать по ссылкам на файлы" + +msgid "Log" +msgstr "Системный журнал" + +msgid "Log additional infection info" +msgstr "" +"Дополнительный файл системного журнала, содержащий информацию о заражении" + +msgid "Log time with each message" +msgstr "Время записи в системный журнал - каждого сообщения" + +msgid "Max directory scan depth" +msgstr "Максимальный размер сканируемой папки" + +msgid "Max number of threads" +msgstr "Максимальное кол-во потоков" + +msgid "Max size of log file" +msgstr "Максимальный размер системного журнала" + +msgid "Max size of scanned file" +msgstr "Максимальный размер сканируемого файла" + +msgid "No" +msgstr "Нет" + +msgid "Port range, highest port" +msgstr "Диапазон портов, максимальный номер порта" + +msgid "Port range, lowest port" +msgstr "Диапазон портов, наименьший номер порта" + +msgid "Scan ELF files" +msgstr "Сканировать elf файлы" + +msgid "Scan MS Office and .msi files" +msgstr "Сканировать MS Office и *.msi файлы" + +msgid "Scan RFC1341 messages split over many emails" +msgstr "" +"Сканирование сообщений RFC1341, разделенных на множество сообщений " +"электронной почты" + +msgid "Scan archives" +msgstr "Сканировать архивы" + +msgid "Scan emails" +msgstr "Сканировать е-майлы" + +msgid "Scan pdf files" +msgstr "Сканировать pdf файлы" + +msgid "Scan portable executables" +msgstr "Сканировать портативные исполняемые файлы" + +msgid "Scan swf files" +msgstr "Сканировать swf файлы" + +msgid "Settings" +msgstr "Настройки" + +msgid "Yes" +msgstr "Да" diff --git a/applications/luci-app-commands/po/ru/commands.po b/applications/luci-app-commands/po/ru/commands.po index 0c035ab73..30c84df06 100644 --- a/applications/luci-app-commands/po/ru/commands.po +++ b/applications/luci-app-commands/po/ru/commands.po @@ -1,38 +1,38 @@ msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"PO-Revision-Date: 2013-10-15 16:48+0200\n" -"Last-Translator: datasheet <michael.gritsaenko@gmail.com>\n" -"Language-Team: none\n" -"Language: ru\n" -"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: commands\n" +"POT-Creation-Date: 2013-10-15 16:48+0300\n" +"PO-Revision-Date: 2018-01-07 21:27+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.6\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "A short textual description of the configured command" msgstr "Короткое текстовое описание команды" -#, fuzzy msgid "" "Allow executing the command and downloading its output without prior " "authentication" msgstr "" -"Разрешить выполнение команды и загрузку ее вывода без предварительной " -"аутентификации" +"Разрешить выполнение команды и загрузку ее выходных данных без ввода пароля " +"пользователя" msgid "Allow the user to provide additional command line arguments" msgstr "" -"Разрешить пользователям использовать дополнительные аргументы командной " +"Разрешить пользователю предоставлять дополнительные аргументы командной " "строки" msgid "Arguments:" msgstr "Аргументы:" msgid "Binary data not displayed, download instead." -msgstr "Двоичные данные не отображаются, вместо этого - выгружаются" +msgstr "Двоичные данные не отображаются, вместо этого загружаются." msgid "Code:" msgstr "Код:" @@ -44,13 +44,13 @@ msgid "Command" msgstr "Команда" msgid "Command executed successfully." -msgstr "" +msgstr "Команда выполнена успешно." msgid "Command exited with status code" -msgstr "" +msgstr "Команда вышла с кодом состояния." msgid "Command failed" -msgstr "Команда не выполнена" +msgstr "Ошибка команды" msgid "Command line to execute" msgstr "Командная строка для выполнения" @@ -62,7 +62,7 @@ msgid "Command:" msgstr "Команда:" msgid "Configure" -msgstr "Настроить" +msgstr "Настройка панели управления" msgid "Custom Commands" msgstr "Пользовательские команды" @@ -71,7 +71,7 @@ msgid "Custom arguments" msgstr "Пользовательские аргументы" msgid "Dashboard" -msgstr "Информационная панель" +msgstr "Панель управления" msgid "Description" msgstr "Описание" @@ -80,7 +80,7 @@ msgid "Download" msgstr "Скачать" msgid "Download execution result" -msgstr "" +msgstr "Результат выполнения загрузки" msgid "Failed to execute command!" msgstr "Ошибка выполнения команды!" @@ -92,7 +92,7 @@ msgid "Loading" msgstr "Загрузка" msgid "Or display result" -msgstr "" +msgstr "Или отобразить результат" msgid "Public access" msgstr "Публичный доступ" @@ -101,20 +101,18 @@ msgid "Run" msgstr "Запуск" msgid "Standard Error" -msgstr "" +msgstr "Стандартная ошибка" msgid "Standard Output" -msgstr "" +msgstr "Стандартный вывод" msgid "" "This page allows you to configure custom shell commands which can be easily " "invoked from the web interface." msgstr "" -"Эта страница предоставляет возможность настраивать пользовательские " -"консольные команды, которые могут быть легко вызваны из веб-интерфейса" +"Страница позволяет настроить выполнение консольных команд пользователя, " +"которые могут быть легко вызваны из веб-интерфейса по нажатию соответсвующей " +"кнопки. Здесь вы можете подписать кнопки и указать команды." msgid "Waiting for command to complete..." msgstr "Ожидание завершения команды..." - -#~ msgid "Access command with" -#~ msgstr "Доступ к команде через" diff --git a/applications/luci-app-ddns/po/ru/ddns.po b/applications/luci-app-ddns/po/ru/ddns.po index a41d1f498..33ab9e775 100644 --- a/applications/luci-app-ddns/po/ru/ddns.po +++ b/applications/luci-app-ddns/po/ru/ddns.po @@ -1,183 +1,201 @@ msgid "" msgstr "" -"Project-Id-Version: luci-app-ddns 2.4.0-1\n" -"POT-Creation-Date: 2016-01-30 11:07+0100\n" -"PO-Revision-Date: 2012-11-01 21:54+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" -"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: ddns\n" +"POT-Creation-Date: 2017-10-17 21:00+0300\n" +"PO-Revision-Date: 2018-01-05 20:37+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Poedit 1.8.4\n" -"X-Poedit-SourceCharset: UTF-8\n" +"Language: ru\n" msgid "&" -msgstr "" +msgstr "и" msgid "-- custom --" -msgstr "" +msgstr "-- пользовательский --" msgid "-- default --" -msgstr "" +msgstr "-- по умолчанию --" msgid "Advanced Settings" -msgstr "" +msgstr "Дополнительные настройки" msgid "Allow non-public IP's" -msgstr "" +msgstr "Разрешить не публичные IP адреса" msgid "Applying changes" -msgstr "" +msgstr "Применение изменений" msgid "Basic Settings" -msgstr "" +msgstr "Основные настройки" msgid "" "Below a list of configuration tips for your system to run Dynamic DNS " "updates without limitations" msgstr "" +"Советы по настройке для запуска динамических обновлений DNS без ограничений." msgid "" "Below is a list of configured DDNS configurations and their current state." -msgstr "" +msgstr "Список настроек config файлов DDNS и их текущее состояние." msgid "Bind Network" -msgstr "" +msgstr "Привязать сеть" msgid "Binding to a specific network not supported" -msgstr "" +msgstr "Привязка к определенной сети, не поддерживается." msgid "" "BusyBox's nslookup and Wget do not support to specify the IP version to use " "for communication with DDNS Provider!" msgstr "" +"nslookup и Wget BusyBox-а, не поддерживают автоматическое назначение " +"случайного IP-адресадля связи с DDNS провайдером!" msgid "" "BusyBox's nslookup and hostip do not support to specify to use TCP instead " "of default UDP when requesting DNS server!" msgstr "" +"nslookup и hostip BusyBox-а, не поддерживают автоматическое определение " +"использования TCP (по умолчанию UDP) при запросе сервера DNS! " msgid "" "BusyBox's nslookup in the current compiled version does not handle given DNS " "Servers correctly!" msgstr "" +"Благодаря nslookup текущей случайно скомпилированной, BusyBox не " +"обрабатывает данные Серверы DNS правильно!" msgid "Casual users should not change this setting" -msgstr "" +msgstr "Случайные пользователи, не должны изменять эти настройки" msgid "Change provider" -msgstr "" +msgstr "Сменить провайдера" msgid "Check Interval" -msgstr "" +msgstr "Интервал проверки" msgid "Collecting data..." -msgstr "" +msgstr "Сбор данных" msgid "Config error" -msgstr "" +msgstr "Ошибка config файла" msgid "Configuration" -msgstr "" +msgstr "Настройка config файла" msgid "" "Configure here the details for all Dynamic DNS services including this LuCI " "application." -msgstr "" +msgstr "Настройка для всех служб DDNS, включая это приложение LuCI." msgid "Configure here the details for selected Dynamic DNS service." -msgstr "" +msgstr "Тонкая настройка выбранной службы DDNS." msgid "Current setting" -msgstr "" +msgstr "Текущие настройки" msgid "" "Currently DDNS updates are not started at boot or on interface events.<br /" ">This is the default if you run DDNS scripts by yourself (i.e. via cron with " "force_interval set to '0')" msgstr "" +"В настоящее время, обновления DDNS не запускаются при загрузке или при " +"событиях интерфейса.<br />по умолчанию, если вы запускаете DDNS скрипты сами " +"(т.е. через cron с force_interval set to '0')" msgid "" "Currently DDNS updates are not started at boot or on interface events.<br /" ">You can start/stop each configuration here. It will run until next reboot." msgstr "" +"В настоящее время, обновления DDNS не запускаются при загрузке или при " +"событиях интерфейса.<br />.<br />Вы можете запустить/остановить каждый " +"config здесь. Он будет работать до следующей перезагрузки." msgid "Custom update script to be used for updating your DDNS Provider." msgstr "" +"Пользовательский скрипт обновления, который будет использоваться для вашего " +"провайдера DDNS." msgid "Custom update-URL" msgstr "Пользовательский URL обновления" msgid "Custom update-script" -msgstr "" +msgstr "Пользовательский скрипт обновления" msgid "DDNS Autostart disabled" -msgstr "" +msgstr "Автостарт DDNS отключен" msgid "DDNS Client Configuration" -msgstr "" +msgstr "Настройка клиента DDNS" msgid "DDNS Client Documentation" -msgstr "" +msgstr "Информация клиента DDNS" msgid "DDNS Service provider" -msgstr "" +msgstr "Провайдер службы DDNS" msgid "DNS requests via TCP not supported" -msgstr "" +msgstr "DNS запросы по протоколу TCP не поддерживаются" msgid "DNS-Server" -msgstr "" +msgstr "DNS сервер" msgid "Date format" -msgstr "" +msgstr "Формат даты" msgid "Defines the Web page to read systems IPv4-Address from" -msgstr "" +msgstr "Определяет веб-страницу для чтения IPv4-адреса систем из" msgid "Defines the Web page to read systems IPv6-Address from" -msgstr "" +msgstr "Определяет веб-страницу для чтения IPv6-адреса систем из" msgid "Defines the interface to read systems IP-Address from" -msgstr "" +msgstr "Определяет интерфейс для чтения системных IP-адресов из" msgid "Defines the network to read systems IPv4-Address from" -msgstr "" +msgstr "Определяет сеть для чтения систем IPv4-адреса из" msgid "Defines the network to read systems IPv6-Address from" -msgstr "" +msgstr "Определяет сеть для чтения систем IPv6-адреса из" msgid "" "Defines the source to read systems IPv4-Address from, that will be send to " "the DDNS provider" msgstr "" +"Определяет источник для чтения IPv4-адресов систем, которые будут отправлены " +"DDNS провайдеру." msgid "" "Defines the source to read systems IPv6-Address from, that will be send to " "the DDNS provider" msgstr "" +"Определяет источник для чтения IPv6-адресов систем, которые будут отправлены " +"DDNS провайдеру." msgid "Defines which IP address 'IPv4/IPv6' is send to the DDNS provider" -msgstr "" +msgstr "Определяет, какой IP адрес 'IPv4/IPv6' отправляется провайдеру DDNS." msgid "Details for" -msgstr "" +msgstr "Подробно" msgid "Directory contains Log files for each running section" -msgstr "" +msgstr "Папка содержит файлы системного журнала для каждого запуска." msgid "" "Directory contains PID and other status information for each running section" -msgstr "" +msgstr "Папка содержит PID и прочую информацию о состояниии каждого запуска." msgid "Disabled" -msgstr "" +msgstr "Отключено" msgid "Domain" -msgstr "" +msgstr "Домен" msgid "Dynamic DNS" msgstr "Динамический DNS" @@ -186,136 +204,159 @@ msgid "" "Dynamic DNS allows that your router can be reached with a fixed hostname " "while having a dynamically changing IP address." msgstr "" -"Динамический DNS позволяет вашему маршрутизатору иметь постоянное доменное " -"имя при динамическом IP-адресе." +"DDNS разрешает вашему роутеру иметь постоянное доменное имя, при динамически " +"изменяемом IP-адресе." msgid "Enable secure communication with DDNS provider" -msgstr "" +msgstr "Включить безопасное соединение с провайдером DDNS" msgid "Enabled" -msgstr "" +msgstr "Включено" msgid "Error" -msgstr "" +msgstr "Ошибка" msgid "Error Retry Counter" -msgstr "" +msgstr "Ошибка учета попыток повтора" msgid "Error Retry Interval" -msgstr "" +msgstr "Ошибка интервала попытки повтора" msgid "Event Network" -msgstr "" +msgstr "Событие сети" msgid "File" -msgstr "" +msgstr "Файл" msgid "File not found" -msgstr "" +msgstr "Файл не найден" msgid "File not found or empty" -msgstr "" +msgstr "Файл не найден или пустой" msgid "" "Follow this link<br />You will find more hints to optimize your system to " "run DDNS scripts with all options" msgstr "" +"Пройдите по этой ссылке<br />там вы найдете больше информации, как настроить " +"вашу систему с использованием DDNS скриптов с наиболее полным функционалом." msgid "For detailed information about parameter settings look here." msgstr "" +"Здесь вы сможете получить, более подробную информацию о параметрах настройки." msgid "For supported codes look here" -msgstr "" +msgstr "С поддерживаемыми кодами, вы сможете ознакомится здесь." msgid "Force IP Version" -msgstr "" +msgstr "Назначенный случайный IP-адрес" msgid "Force IP Version not supported" -msgstr "" +msgstr "Назначенный случайный IP-адрес, не поддерживается" msgid "Force Interval" -msgstr "" +msgstr "Назначить интервал" msgid "Force TCP on DNS" -msgstr "" +msgstr "Выбрать протокол TCP для DNS" msgid "Forced IP Version don't matched" -msgstr "" +msgstr "Назначенный случайный IP-адрес, не транслируется" msgid "Format" -msgstr "" +msgstr "Значение" msgid "Format: IP or FQDN" -msgstr "" +msgstr "Значение: IP или полное доменное имя" msgid "" "GNU Wget will use the IP of given network, cURL will use the physical " "interface." msgstr "" +"GNU wget будет использовать IP присвоенный сетью, cURL будет использовать " +"физический интерфейс." msgid "Global Settings" -msgstr "" +msgstr "Основные настройки" msgid "HTTPS not supported" -msgstr "" +msgstr "HTTPS не поддерживается" msgid "Hints" -msgstr "" +msgstr "Подсказки" msgid "Hostname/FQDN to validate, if IP update happen or necessary" msgstr "" +"Имя хоста/полное доменное имя для проверки, если обновление IP происходит " +"или оно необходимо." msgid "IP address source" -msgstr "" +msgstr "IP адрес источника" msgid "IP address version" -msgstr "" +msgstr "Случайный IP-адрес" msgid "IPv4-Address" -msgstr "" +msgstr "IPv4-адрес" msgid "IPv6 address must be given in square brackets" -msgstr "" +msgstr "IPv6 адрес должен быть указан в квадратных скобках" msgid "" "IPv6 is currently not (fully) supported by this system<br />Please follow " "the instructions on OpenWrt's homepage to enable IPv6 support<br />or update " "your system to the latest OpenWrt Release" msgstr "" +"IPv6 не поддерживается вашей прошивкой < br />пожалуйста, следуйте " +"инструкциям на главной странице OpenWrt, чтобы включить поддержку IPv6<br / " +"> или обновить прошивку до последнего выпуска OpenWrt с включением поддержки " +"IPv6." msgid "IPv6 not supported" -msgstr "" +msgstr "IPv6 не поддерживается" msgid "IPv6-Address" -msgstr "" +msgstr "IPv6-адрес" msgid "If both cURL and GNU Wget are installed, Wget is used by default." msgstr "" +"Если установлены cURL и GNU Wget вместе, Wget будет использоваться по " +"умолчанию." msgid "" "If this service section is disabled it could not be started.<br />Neither " "from LuCI interface nor from console" msgstr "" +"Если этот режим службы отключен, его нельзя будет запустить. Не с веб-" +"интерфейса LuCI, ни с консоли." msgid "If using secure communication you should verify server certificates!" msgstr "" +"Если используется безопасное соединение, необходимо проверить сертификаты " +"сервера!" msgid "" "If you want to send updates for IPv4 and IPv6 you need to define two " "separate Configurations i.e. 'myddns_ipv4' and 'myddns_ipv6'" msgstr "" +"Протоколы IPv4 и IPv6 необходимо настроить раздельно , т. е. 'myddns_ipv4' и " +"'myddns_ipv6'." msgid "" "In some versions cURL/libcurl in OpenWrt is compiled without proxy support." msgstr "" +"В некоторых случаях cURL/libcurl, если OpenWrt скомпилирован без поддержки " +"прокси." msgid "Info" -msgstr "" +msgstr "Информация" msgid "" "Install 'ca-certificates' package or needed certificates by hand into /etc/" "ssl/certs default directory" msgstr "" +"Установите 'ca-certificates' или пакет необходимых сертификатов вручную в " +"папку/etc/ssl/certs" msgid "Interface" msgstr "Интерфейс" @@ -324,408 +365,438 @@ msgid "" "Interval to check for changed IP<br />Values below 5 minutes == 300 seconds " "are not supported" msgstr "" +"Интервал для проверки измененных IP<br />ниже 5 минут = = 300 секунд не " +"поддерживаются." msgid "" "Interval to force updates send to DDNS Provider<br />Setting this parameter " "to 0 will force the script to only run once<br />Values lower 'Check " "Interval' except '0' are not supported" msgstr "" +"Интервал для принудительного обновления отправить провайдеру DDNS<br /" +">Установка этого параметра в 0 заставит сценарий работать только один " +"раз<br />значения ниже 'Интервал проверки', за исключением '0' не " +"поддерживаются." msgid "It is NOT recommended for casual users to change settings on this page." msgstr "" +"Не рекомендуется случайным пользователям, изменять настройки на этой " +"странице." msgid "Last Update" -msgstr "" +msgstr "Последнее обновление" msgid "Loading" -msgstr "" +msgstr "Загрузка" msgid "Log File Viewer" -msgstr "" +msgstr "Просмотр системного журнала" msgid "Log directory" -msgstr "" +msgstr "Папка системного журнала" msgid "Log length" -msgstr "" +msgstr "Длина системного журнала" msgid "Log to file" -msgstr "" +msgstr "Запись в файл" msgid "Log to syslog" -msgstr "" +msgstr "Запись в системный журнал" msgid "Lookup Hostname" -msgstr "" +msgstr "Поиск имени хоста" msgid "NOT installed" -msgstr "" +msgstr "Не установлено" msgid "" "Neither GNU Wget with SSL nor cURL installed to select a network to use for " "communication." -msgstr "" +msgstr "Neither GNU Wget с SSL nor cURL установлены для выбора сети для связи." msgid "" "Neither GNU Wget with SSL nor cURL installed to support secure updates via " "HTTPS protocol." msgstr "" +"Neither GNU Wget с SSL nor cURL установлены для поддержки безопасных " +"обновлений по протоколу HTTPS." msgid "Network" msgstr "Сеть" msgid "Network on which the ddns-updater scripts will be started" -msgstr "" +msgstr "Сеть, в которой будут запущены скрипты DDNS-updater" msgid "Never" -msgstr "" +msgstr "Никогда" msgid "Next Update" -msgstr "" +msgstr "Следующее обновление" msgid "No certificates found" -msgstr "" +msgstr "Сертификаты не найдены" msgid "No data" -msgstr "" +msgstr "Нет данных" msgid "No logging" -msgstr "" +msgstr "Нет записи в системный журнал" msgid "Non-public and by default blocked IP's" -msgstr "" +msgstr "Непубличные и по умолчанию заблокированные IP-адреса" msgid "Notice" -msgstr "" +msgstr "Заметка" msgid "Number of last lines stored in log files" -msgstr "" +msgstr "Число последних строк, системного журнала." msgid "OPTIONAL: Force the usage of pure IPv4/IPv6 only communication." -msgstr "" +msgstr "Необязательно: Принудительное использование протоколов IPv4/IPv6." msgid "OPTIONAL: Force the use of TCP instead of default UDP on DNS requests." msgstr "" +"Необязательно: Принудительное использование протокола TCP вместо UDP по " +"умолчанию для DNS-запросов." msgid "OPTIONAL: Network to use for communication" -msgstr "" +msgstr "Необязательно: Сеть для связи" msgid "OPTIONAL: Proxy-Server for detection and updates." -msgstr "" +msgstr "Необязательно: Прокси-сервер для обнаружения и обновления." msgid "OPTIONAL: Use non-default DNS-Server to detect 'Registered IP'." msgstr "" +"Необязательно: Использовать по умолчанию DNS-сервер, чтобы обнаружить " +"'зарегистрирована IP." msgid "On Error the script will retry the failed action after given time" msgstr "" +"При ошибке скрипт повторит неудачное действие, по истечении заданного " +"времени." msgid "On Error the script will stop execution after given number of retrys" msgstr "" +"При ошибке скрипт прекратит выполнение, после заданного количества повторных " +"попыток." msgid "OpenWrt Wiki" -msgstr "" +msgstr "OpenWrt Wiki" msgid "Optional Encoded Parameter" -msgstr "" +msgstr "Необязательный кодированный параметр" msgid "Optional Parameter" -msgstr "" +msgstr "Необязательный параметр" msgid "Optional: Replaces [PARAMENC] in Update-URL (URL-encoded)" -msgstr "" +msgstr "Дополнительно: заменяет [PARAMENC] в Update-URL-адрес (URL-encoded)" msgid "Optional: Replaces [PARAMOPT] in Update-URL (NOT URL-encoded)" -msgstr "" +msgstr "Дополнительно: заменяет [PARAMOPT] в Update-URL-адрес (не URL-encoded)" msgid "Overview" -msgstr "" +msgstr "Главное меню" msgid "PROXY-Server" -msgstr "" +msgstr "Прокси сервер" msgid "PROXY-Server not supported" -msgstr "" +msgstr "Прокси сервер не поддерживается" msgid "Password" msgstr "Пароль" msgid "Path to CA-Certificate" -msgstr "" +msgstr "Путь к CA-Certificate" msgid "Please [Save & Apply] your changes first" -msgstr "" +msgstr "Нажмите [Сохранить и применить] чтобы сохранить ваши настройки." msgid "Please press [Read] button" -msgstr "" +msgstr "Нажмите кнопку [Читать / Перечитывать системный журнал]" msgid "Please update to the current version!" -msgstr "" +msgstr "Обновите до текущей версии!" msgid "Process ID" -msgstr "" +msgstr "ID процесса" msgid "Read / Reread log file" -msgstr "" +msgstr "Чтение / перечитка системного журнала" msgid "Really change DDNS provider?" -msgstr "" +msgstr "Действительно сменить DDNS провайдера?" msgid "Registered IP" -msgstr "" +msgstr "Зарегистрированный IP" msgid "Replaces [DOMAIN] in Update-URL" -msgstr "" +msgstr "Заменяет [ДОМЕН] в Update-URL" msgid "Replaces [PASSWORD] in Update-URL (URL-encoded)" -msgstr "" +msgstr "Заменяет [ПАРОЛЬ] в Update-URL (URL-encoded)" msgid "Replaces [USERNAME] in Update-URL (URL-encoded)" -msgstr "" +msgstr "Заменяет [ЛОГИН] in Update-URL (URL-encoded)" msgid "Run once" -msgstr "" +msgstr "Запуск один раз" msgid "Script" -msgstr "" +msgstr "Скрипт" msgid "Show more" -msgstr "" +msgstr "Показать больше" msgid "Software update required" -msgstr "" +msgstr "Требуется обновление программного обеспечения." msgid "Specifying a DNS-Server is not supported" -msgstr "" +msgstr "Указанный DNS-сервер не поддерживается" msgid "Start" -msgstr "" +msgstr "Старт" msgid "Start / Stop" -msgstr "" +msgstr "Старт / Стоп" msgid "Status directory" -msgstr "" +msgstr "Папка состояния" msgid "Stopped" -msgstr "" +msgstr "Остановлено" msgid "" "The currently installed 'ddns-scripts' package did not support all available " "settings." msgstr "" +"Пакет установленных 'ddns-scripts' не поддерживает все доступные настройки." msgid "The default setting of '0' will retry infinite." -msgstr "" +msgstr "Значение по умолчанию '0' будет повторяться бесконечно." msgid "There is no service configured." -msgstr "" +msgstr "Сервис не настроен." msgid "Timer Settings" -msgstr "" +msgstr "Настройка таймера" msgid "To change global settings click here" -msgstr "" +msgstr "Чтобы изменить основные настройки, нажмите здесь" msgid "To use cURL activate this option." -msgstr "" +msgstr "Для использования cURL активируйте режим." msgid "URL" msgstr "URL" msgid "URL to detect" -msgstr "" +msgstr "обнаружен URL" msgid "Unknown error" -msgstr "" +msgstr "Неизвестная ошибка" msgid "" "Update URL to be used for updating your DDNS Provider.<br />Follow " "instructions you will find on their WEB page." msgstr "" +"Update URL используется для обновления DDNS-провайдера.<br />Следуйте " +"инструкциям, вы найдете на их на их веб-странице." msgid "Update error" -msgstr "" +msgstr "Ошибка обновления" msgid "Use HTTP Secure" -msgstr "" +msgstr "Использовать HTTPS" msgid "Use cURL" -msgstr "" +msgstr "Использовать cURL" msgid "User defined script to read systems IP-Address" -msgstr "" +msgstr "Определяемый пользователем скрипт для чтения системного IP-адреса." msgid "Username" msgstr "Имя пользователя" msgid "Using specific DNS Server not supported" -msgstr "" +msgstr "Использование определенного DNS-сервера не поддерживается." msgid "Verify" -msgstr "" +msgstr "Проверить" msgid "Version" -msgstr "" +msgstr "Версия" msgid "Version Information" -msgstr "" +msgstr "Случайная информация" msgid "Waiting for changes to be applied..." -msgstr "" +msgstr "Ожидание применения изменений..." msgid "Warning" -msgstr "" +msgstr "Внимание" msgid "" "Writes detailed messages to log file. File will be truncated automatically." msgstr "" +"Пишет подробные сообщения в системный журнал. Файл будет автоматически " +"обрезан." msgid "" "Writes log messages to syslog. Critical Errors will always be written to " "syslog." msgstr "" +"Ведение логов. Критические ошибки, всегда будут записаны в системный журнал." msgid "" "You should install 'bind-host' or 'knot-host' or 'drill' or 'hostip' " "package, if you need to specify a DNS server to detect your registered IP." msgstr "" +"Установите 'bind-host' или 'knot-host' или 'drill' или 'hostip' пакеты если " +"вам нужно указать DNS-сервер для обнаружения вашего зарегистрированного IP-" +"адреса." msgid "" "You should install 'bind-host' or 'knot-host' or 'drill' package for DNS " "requests." -msgstr "" +msgstr "Установите 'bind-host' или 'knot-host' или 'drill' для DNS запросов." msgid "You should install 'wget' or 'curl' or 'uclient-fetch' package." -msgstr "" +msgstr "Установите 'wget' или 'curl' или 'uclient-fetch' пакет." msgid "" "You should install 'wget' or 'curl' or 'uclient-fetch' with 'libustream-" "*ssl' package." msgstr "" +"Установите 'wget' или 'curl' или 'uclient-fetch' с 'libustream-*ssl' пакетом." msgid "You should install 'wget' or 'curl' package." -msgstr "" +msgstr "Установите 'wget' или 'curl' пакеты." msgid "" "You should install 'wget' or 'uclient-fetch' package or replace libcurl." msgstr "" +"Вы должны установить 'wget' или пакет 'uclient-fetch' или заменить libcurl." msgid "cURL is installed, but libcurl was compiled without proxy support." -msgstr "" +msgstr "cURL установлен, но libcurl был скомпилирован без поддержки прокси." msgid "cURL without Proxy Support" -msgstr "" +msgstr "cURL без поддержки прокси" msgid "can not detect local IP. Please select a different Source combination" -msgstr "" +msgstr "не может определить локальный IP-адрес. Выберите другой вариант" msgid "can not resolve host:" -msgstr "" +msgstr "не может разрешить хост:" msgid "config error" -msgstr "" +msgstr "ошибка в config файле" msgid "days" -msgstr "" +msgstr "дни" msgid "directory or path/file" -msgstr "" +msgstr "папка или путь/к файлу" msgid "either url or script could be set" -msgstr "" +msgstr "или url или скрипт смог быть установлен" msgid "enable here" -msgstr "" +msgstr "Включить здесь" msgid "file or directory not found or not 'IGNORE'" -msgstr "" +msgstr "файл или папка не найдена или не 'Игнорировать'" msgid "help" -msgstr "" +msgstr "помощь" msgid "hours" -msgstr "" +msgstr "часы" msgid "installed" -msgstr "" +msgstr "установлено" msgid "invalid FQDN / required - Sample" -msgstr "" +msgstr "недопустимое полное доменное имя / обязательный образец" msgid "minimum value '0'" -msgstr "" +msgstr "минимальное значение '0'" msgid "minimum value '1'" -msgstr "" +msgstr "минимальное значение '1'" msgid "minimum value 5 minutes == 300 seconds" -msgstr "" +msgstr "минимальное значение 5 минут == 300 секунд" msgid "minutes" -msgstr "" +msgstr "минуты" msgid "missing / required" -msgstr "" +msgstr "отсутствует / не требуется" msgid "must be greater or equal 'Check Interval'" -msgstr "" +msgstr "должно быть больше или равно 'Интервал проверки'" msgid "must start with 'http://'" -msgstr "" +msgstr "должны начинаться с 'http://'" msgid "nc (netcat) can not connect" -msgstr "" +msgstr "NC (netcat) не может подключиться" msgid "never" -msgstr "" +msgstr "никогда" msgid "no data" -msgstr "" +msgstr "нет данных" msgid "not found or not executable - Sample: '/path/to/script.sh'" msgstr "" +"не найден или не является исполнительным, например: '/path/to/script.sh'" msgid "nslookup can not resolve host" -msgstr "" +msgstr "nslookup не может разрешить хост" msgid "or" -msgstr "" +msgstr "или" msgid "or higher" -msgstr "" +msgstr "или выше" msgid "please disable" -msgstr "" +msgstr "отключите" msgid "please remove entry" -msgstr "" +msgstr "удалите эту запись" msgid "please select 'IPv4' address version" -msgstr "" +msgstr "выберите случайный 'IPv4' адрес" msgid "please select 'IPv4' address version in" -msgstr "" +msgstr "выберите случайный 'IPv4' адрес в" msgid "please set to 'default'" -msgstr "" +msgstr "установите режим 'по умолчанию'" msgid "proxy port missing" -msgstr "" +msgstr "отсутствует прокси порт" msgid "required" -msgstr "" +msgstr "требовать" msgid "seconds" -msgstr "" +msgstr "секунды" msgid "to run HTTPS without verification of server certificates (insecure)" -msgstr "" +msgstr "использовать HTTPS без проверки сертификатов сервера (небезопасно)" msgid "unknown error" -msgstr "" +msgstr "неизвестная ошибка" msgid "unspecific error" -msgstr "" +msgstr "нетипичная ошибка" msgid "use hostname, FQDN, IPv4- or IPv6-Address" -msgstr "" +msgstr "использовать имя хоста, полное доменное имя, IPv4 или IPv6-адрес" diff --git a/applications/luci-app-diag-core/po/ru/diag_core.po b/applications/luci-app-diag-core/po/ru/diag_core.po index 1abaa8c6c..931cc2b23 100644 --- a/applications/luci-app-diag-core/po/ru/diag_core.po +++ b/applications/luci-app-diag-core/po/ru/diag_core.po @@ -1,21 +1,20 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: diag_core\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: 2012-08-15 11:44+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"POT-Creation-Date: 2012-08-15 11:44+0300\n" +"PO-Revision-Date: 2018-01-07 19:47+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.6\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "Configure Diagnostics" -msgstr "Настройки диагностики" +msgstr "Настройка диагностики" msgid "Diagnostics" msgstr "Диагностика" @@ -24,22 +23,19 @@ msgid "" "The diagnostics available under this menu depend on what modules you have " "installed on your device." msgstr "" -"Доступные в данном меню виды диагностики зависят от установленных на вашем " -"устройстве модулей. " +"Доступные виды диагностики зависят от установленных на вашем устройстве " +"модулей. " msgid "" "The entries in the menu allow you to perform diagnostic tests on your system " "to aid in troubleshooting." msgstr "" -"Записи в меню позволять вам выполнить диагностику системы, чтобы помочь в " +"Настройки позволять вам выполнить диагностику системы, чтобы помочь в " "обнаружении проблем." msgid "" "With this menu you can configure network diagnostics, such as network device " "scans and ping tests." msgstr "" -"Используя это меню, вы можете настроить диагностику сети, например, " +"На этой странице вы можете настроить диагностику сети, например, " "сканирование сетевых устройств или ping-тест." - -#~ msgid "l_d_diag" -#~ msgstr "l_d_diag" diff --git a/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua index 368c6673a..999c81dee 100644 --- a/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua +++ b/applications/luci-app-dnscrypt-proxy/luasrc/model/cbi/dnscrypt-proxy/overview_tab.lua @@ -1,4 +1,4 @@ --- Copyright 2017 Dirk Brenken (dev@brenken.org) +-- Copyright 2017-2018 Dirk Brenken (dev@brenken.org) -- This is free software, licensed under the Apache License, Version 2.0 local fs = require("nixio.fs") @@ -6,10 +6,11 @@ local uci = require("luci.model.uci").cursor() local util = require("luci.util") local date = require("luci.http.protocol.date") local res_input = "/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv" +local res_dir = fs.dirname(res_input) local dump = util.ubus("network.interface", "dump", {}) local plug_cnt = tonumber(luci.sys.exec("env -i /usr/sbin/dnscrypt-proxy --version | grep 'Support for plugins: present' | wc -l")) local res_list = {} -local url = "https://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-resolvers.csv" +local url = "https://raw.githubusercontent.com/dyne/dnscrypt-proxy/master/dnscrypt-resolvers.csv" if not fs.access(res_input) then if not fs.access("/lib/libustream-ssl.so") then @@ -29,22 +30,24 @@ if not uci:get_first("dnscrypt-proxy", "global") then uci:commit("dnscrypt-proxy") end -for line in io.lines(res_input) do - local name, - location, - dnssec, - nolog = line:match("^([^,]+),.-,\".-\",\"*(.-)\"*,.-,[0-9],\"*([yesno]+)\"*,\"*([yesno]+)\"*,.*") - if name ~= "" and name ~= "Name" then - if location == "" then - location = "-" - end - if dnssec == "" then - dnssec = "-" - end - if nolog == "" then - nolog = "-" +if fs.access(res_input) then + for line in io.lines(res_input) or {} do + local name, + location, + dnssec, + nolog = line:match("^([^,]+),.-,\".-\",\"*(.-)\"*,.-,[0-9],\"*([yesno]+)\"*,\"*([yesno]+)\"*,.*") + if name ~= "" and name ~= "Name" then + if location == "" then + location = "-" + end + if dnssec == "" then + dnssec = "-" + end + if nolog == "" then + nolog = "-" + end + res_list[#res_list + 1] = { name = name, location = location, dnssec = dnssec, nolog = nolog } end - res_list[#res_list + 1] = { name = name, location = location, dnssec = dnssec, nolog = nolog } end end @@ -60,7 +63,7 @@ function m.on_after_commit(self) if value == "1" then uci:commit("dnscrypt-proxy") uci:set("dhcp", s1, "noresolv", 1) - if not fs.access("/etc/resolv-crypt.conf") or nixio.fs.stat("/etc/resolv-crypt.conf").size == 0 then + if not fs.access("/etc/resolv-crypt.conf") or fs.stat("/etc/resolv-crypt.conf").size == 0 then uci:set("dhcp", s1, "resolvfile", "/tmp/resolv.conf.auto") else uci:set("dhcp", s1, "resolvfile", "/etc/resolv-crypt.conf") @@ -98,32 +101,43 @@ o1.value = res_input o2 = s:option(DummyValue, "", translate("File Date")) o2.template = "dnscrypt-proxy/res_options" -o2.value = date.to_http(nixio.fs.stat(res_input).mtime) +if fs.access(res_input) then + o2.value = date.to_http(fs.stat(res_input).mtime) +else + o2.value = "-" +end o3 = s:option(DummyValue, "", translate("File Checksum")) o3.template = "dnscrypt-proxy/res_options" -o3.value = luci.sys.exec("sha256sum " .. res_input .. " | awk '{print $1}'") +if fs.access(res_input) then + o3.value = luci.sys.exec("sha256sum " .. res_input .. " | awk '{print $1}'") +else + o3.value = "-" +end if fs.access("/lib/libustream-ssl.so") then btn1 = s:option(Button, "", translate("Refresh Resolver List"), - translate("Download the current resolver list from 'download.dnscrypt.org'.")) + translate("Download the current resolver list from 'github.com/dyne/dnscrypt-proxy'.")) btn1.inputtitle = translate("Refresh List") btn1.inputstyle = "apply" btn1.disabled = false function btn1.write() + if not fs.access(res_dir) then + fs.mkdir(res_dir) + end luci.sys.call("env -i /bin/uclient-fetch --no-check-certificate -O " .. res_input .. " " .. url .. " >/dev/null 2>&1") luci.http.redirect(luci.dispatcher.build_url("admin", "services", "dnscrypt-proxy")) end else btn1 = s:option(Button, "", translate("Refresh Resolver List"), translate("No SSL support available.<br />") - .. translate("Please install a 'libustream-ssl' library to download the current resolver list from 'download.dnscrypt.org'.")) + .. translate("Please install a 'libustream-ssl' library to download the current resolver list from 'github.com/dyne/dnscrypt-proxy'.")) btn1.inputtitle = translate("-------") btn1.inputstyle = "button" btn1.disabled = true end -if not fs.access("/etc/resolv-crypt.conf") or nixio.fs.stat("/etc/resolv-crypt.conf").size == 0 then +if not fs.access("/etc/resolv-crypt.conf") or fs.stat("/etc/resolv-crypt.conf").size == 0 then btn2 = s:option(Button, "", translate("Create Custom Config File"), translate("Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS upstream timeouts with multiple DNSCrypt instances.<br />") .. translatef("For further information " diff --git a/applications/luci-app-dnscrypt-proxy/po/ru/dnscrypt-proxy.po b/applications/luci-app-dnscrypt-proxy/po/ru/dnscrypt-proxy.po new file mode 100644 index 000000000..385d81219 --- /dev/null +++ b/applications/luci-app-dnscrypt-proxy/po/ru/dnscrypt-proxy.po @@ -0,0 +1,276 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: dnscrypt-proxy\n" +"POT-Creation-Date: 2017-10-17 14:30+0300\n" +"PO-Revision-Date: 2018-01-06 14:20+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "-------" +msgstr "" + +msgid "Advanced" +msgstr "Дополнительно" + +msgid "Alternate Resolver List" +msgstr "Альтернативный список разрешенных серверов" + +msgid "" +"Apply DNSCrypt-Proxy specific settings to the Dnsmasq configuration.<br />" +msgstr "" +"Применить специальные настройки DNSCrypt-Proxy для Dnsmasq config файла.<br /" +">" + +msgid "Blacklist" +msgstr "Черный список" + +msgid "Block IPv6" +msgstr "Блокировать IPv6" + +msgid "" +"By default the DNSCrypt-Proxy startup will be triggered by ifup events of " +"'All' available network interfaces.<br />" +msgstr "" +"По дефолту DNSCrypt-Proxy стартует на всех доступных интерфейсах 'All'.<br />" + +msgid "Configuration of the DNSCrypt-Proxy package." +msgstr "Настройка DNSCrypt-Proxy. " + +msgid "" +"Create '/etc/resolv-crypt.conf' with 'options timeout:1' to reduce DNS " +"upstream timeouts with multiple DNSCrypt instances.<br />" +msgstr "" +"Создать конфиг файл '/etc/resolv-crypt.conf' с 'options timeout:1' для " +"уменьшения восходящих тайм-аутов DNS с многократными DNSCrypt instances.<br /" +">" + +msgid "Create Config File" +msgstr "Создать сonfig файл" + +msgid "Create Custom Config File" +msgstr "Создать config" + +msgid "DNS Query Logfile" +msgstr "Файл системного журнала запроса DNS" + +msgid "DNSCrypt-Proxy" +msgstr "DNSCrypt-Proxy" + +msgid "DNSCrypt-Proxy Logfile" +msgstr "Файл системного журнала DNSCrypt-Proxy" + +msgid "DNSCrypt-Proxy Resolver List" +msgstr "DNSCrypt-Proxy список разрешенных серверов" + +msgid "Default Resolver List" +msgstr "Дефолтный список разрешенных серверов" + +msgid "Disable IPv6 to speed up DNSCrypt-Proxy." +msgstr "Отключить IPv6 для DNSCrypt-Proxy." + +msgid "Dnsmasq Options" +msgstr "Настройка Dnsmasq" + +msgid "Download the current resolver list from 'download.dnscrypt.org'." +msgstr "Скачать текущий список разрешенных серверов с 'download.dnscrypt.org'." + +msgid "Edit DNSCrypt-Proxy Configuration" +msgstr "Настройка config файла DNSCrypt-Proxy" + +msgid "Edit Dnsmasq Configuration" +msgstr "Настройка config файла Dnsmasq" + +msgid "Edit Resolvcrypt Configuration" +msgstr "Настройка config файла Resolvcrypt" + +msgid "Enable Caching to speed up DNSCcrypt-Proxy." +msgstr "Включить кэширование для ускорения DNSCcrypt-Proxy." + +msgid "Ephemeral Keys" +msgstr "Эфемерные ключи" + +msgid "File Checksum" +msgstr "Контрольная сумма файла" + +msgid "File Date" +msgstr "Дата и время создания файла" + +msgid "" +"For further information <a href=\"%s\" target=\"_blank\">see the wiki " +"online</a>" +msgstr "" +"Для более подробной информации <a href=\"%s\" target=\"_blank\">обратитесь к " +"wiki онлайн</a>." + +msgid "General Options" +msgstr "Основные настройки" + +msgid "IP Address" +msgstr "IP адрес" + +msgid "Improve privacy by using an ephemeral public key for each query." +msgstr "" +"Улучшить безопасность, используя эфемерный открытый ключ для каждого запроса." + +msgid "Input file not found, please check your configuration." +msgstr "Введенный файл не найден, пожалуйста проверьте ваши настройки." + +msgid "Instance Options" +msgstr "Дополнительные настройки" + +msgid "Local Cache" +msgstr "Местный кэш" + +msgid "" +"Local blacklists allow you to block abuse sites by domains or ip addresses." +msgstr "" +"Локальные Черные списки, позволяют блокировать сайты по их доменам или IP-" +"адресам." + +msgid "" +"Log the received DNS queries to a file, so you can watch in real-time what " +"is happening on the network." +msgstr "" +"Записывайте в журнал полученные запросы DNS. Таким образом, Вы сможете " +"наблюдать в режиме реального времени, что происходит в сети." + +msgid "" +"Name of the remote DNS service for resolving queries incl. Location, DNSSEC- " +"and NOLOG-Flag." +msgstr "" +"Имя удаленного сервера DNS для разрешения запросов к нему. Location, DNSSEC- " +"и NOLOG-Flag (LOC/SEC/NOLOG)." + +msgid "No SSL support available.<br />" +msgstr "Отсутствует поддержка SSL.<br />" + +msgid "No default resolver list and no SSL support available.<br />" +msgstr "Отсутствует список разрешенных серверов и не поддерживается SSL.<br />" + +msgid "Overview" +msgstr "Главное меню" + +msgid "Please edit the file manually in the 'Advanced' section." +msgstr "Пожалуйста, отредактируйте файл вручную в разделе 'Дополнительно'." + +msgid "" +"Please install a 'libustream-ssl' library to download the current resolver " +"list from 'download.dnscrypt.org'." +msgstr "" +"Пожалуйста установите 'libustream-openssl' для загрузки текущего списка " +"разрешенных серверов с 'download.dnscrypt.org'." + +msgid "" +"Please install a resolver list to '/usr/share/dnscrypt-proxy/dnscrypt-" +"resolvers.csv' to use this package." +msgstr "" +"Пожалуйста установите список разрешенных серверов в '/usr/share/dnscrypt-" +"proxy/dnscrypt-resolvers.csv' для использования данного сервиса." + +msgid "" +"Please note: This may change the values for 'noresolv', 'resolvfile', " +"'allservers' and the list 'server' settings." +msgstr "" +"Примечание: Этот режим, может изменить значения для 'noresolv', " +"'resolvfile', 'allservers' и параметры настройки списка 'серверов'." + +msgid "Port" +msgstr "Порт" + +msgid "Refresh List" +msgstr "Обновить список" + +msgid "Refresh Resolver List" +msgstr "Обновить список разрешенных серверов" + +msgid "Resolver (LOC/SEC/NOLOG)" +msgstr "Разрешено(LOC/SEC/NOLOG)" + +msgid "Save" +msgstr "Сохранить" + +msgid "Specify a non-default Resolver List." +msgstr "Специальный недефолтный список разрешенных серверов." + +msgid "Startup Trigger" +msgstr "Выберите интерфейс" + +msgid "The config file '/etc/resolv-crypt.conf' already exist.<br />" +msgstr "Config файл '/etc/resolv-crypt.conf' уже существует.<br />" + +msgid "The listening port for DNS queries." +msgstr "Прослушивание порта для DNS запросов." + +msgid "" +"The local IPv4 or IPv6 address. The latter one should be specified within " +"brackets, e.g. '[::1]'." +msgstr "" +"Локальные IPv4 или IPv6 адреса. Заключить в скобки, как образец '[::1]'." + +msgid "" +"The value for this property is the blocklist type and path to the file, e." +"g.'domains:/path/to/dbl.txt' or 'ips:/path/to/ipbl.txt'." +msgstr "" +"Описание свойств значения - тип Черного списка и путь к файлу как образец " +"'domains:/path/to/dbl.txt' или 'ips:/path/to/ipbl.txt'." + +msgid "" +"This form allows you to modify the content of the main DNSCrypt-Proxy " +"configuration file (/etc/config/dnscrypt-proxy)." +msgstr "" +"Страница позволяет изменять содержимое config файла DNSCrypt-Proxy (/etc/" +"config/dnscrypt-proxy)." + +msgid "" +"This form allows you to modify the content of the main Dnsmasq configuration " +"file (/etc/config/dhcp)." +msgstr "" +"Страница позволяет изменять содержимое config файла Dnsmasq (/etc/config/" +"dhcp)." + +msgid "" +"This form allows you to modify the content of the resolv-crypt configuration " +"file (/etc/resolv-crypt.conf)." +msgstr "" +"Страница позволяет изменять содержимое config файла resolv-crypt (/etc/" +"resolv-crypt.conf)." + +msgid "This form shows the content of the current DNSCrypt Resolver List." +msgstr "" +"Страница демонстрирует содержимое DNSCrypt списка разрешенных серверов." + +msgid "" +"This form shows the syslog output, pre-filtered for DNSCrypt-Proxy related " +"messages only." +msgstr "" +"Страница показывает вывод системного журнала, предварительно фильтруемый " +"только для DNSCrypt-Proxy." + +msgid "" +"This option requires extra CPU cycles and is useless with most DNSCrypt " +"server." +msgstr "" +"Этот режим нагружает CPU и большинством DNSCrypt серверов не поддерживается." + +msgid "" +"To restrict the trigger, select only the relevant network interface. Usually " +"the 'wan' interface should work for most users." +msgstr "" +"Выберите только соответствующий сетевой интерфейс. Обычно интерфейса 'wan', " +"достаточно для большинства пользователей." + +msgid "Transfer Options To Dnsmasq" +msgstr "Режим передачи Dnsmasq-у" + +msgid "View Logfile" +msgstr "Системный журнал" + +msgid "View Resolver List" +msgstr "Список разрешенных серверов" diff --git a/applications/luci-app-dynapoint/po/ru/dynapoint.po b/applications/luci-app-dynapoint/po/ru/dynapoint.po new file mode 100644 index 000000000..844eedb9a --- /dev/null +++ b/applications/luci-app-dynapoint/po/ru/dynapoint.po @@ -0,0 +1,114 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: dynapoint\n" +"POT-Creation-Date: 2017-12-01 16:15+0300\n" +"PO-Revision-Date: 2018-01-05 22:11+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "Activate this wVIF if status is:" +msgstr "Применение DynaPoint-а" + +msgid "Append hostname to ssid" +msgstr "Изменить SSID" + +msgid "Append the router's hostname to the SSID when connectivity check fails" +msgstr "" +"Добавление имени хоста роутера к SSID, если подключение к интернету " +"отсутствует." + +msgid "Check Internet connectivity via HTTP header download" +msgstr "Проверка подключения к интернету, с помощью получения HTTP-ответа." + +msgid "Configuration" +msgstr "Настройка config файла" + +msgid "Curl is currently not installed." +msgstr "Curl в настоящее время не установлен." + +msgid "Device" +msgstr "Устройство" + +msgid "Disabled" +msgstr "Отключено" + +msgid "DynaPoint" +msgstr "DynaPoint" + +msgid "Dynamic Access Point Manager" +msgstr "Диспетчер динамических точек доступа." + +msgid "Enabled" +msgstr "Включено" + +msgid "" +"Failure counter after how many failed download attempts, the state is " +"considered as offline" +msgstr "" +"Кол-во попыток получить HTTP-ответ, после чего подключение к интернету будет " +"считаться разорванным." + +msgid "List of Wireless Virtual Interfaces (wVIF)" +msgstr "Список беспроводных сетей (точек доступа):" + +msgid "List of host addresses" +msgstr "HTTP-адреса" + +msgid "" +"List of host addresses (url or IP) to track and request http headers from" +msgstr "" +"Список HTTP-адресов (ссылка или IP-адрес) для проверки подключения к " +"интернету." + +msgid "Mode" +msgstr "Режим" + +msgid "Not used by DynaPoint" +msgstr "Не используется DynaPoint" + +msgid "Offline" +msgstr "Отключен" + +msgid "Online" +msgstr "Включен" + +msgid "SSID" +msgstr "SSID" + +msgid "Switch_to_offline threshold" +msgstr "Кол-во попыток" + +msgid "Test-run interval" +msgstr "Интервал" + +msgid "Time interval in seconds to re-start a new test run" +msgstr "" +"Временной интервал в секундах, для повторного запуска проверки подключения к " +"интернету." + +msgid "Use curl" +msgstr "Использовать curl" + +msgid "Use curl instead of wget" +msgstr "Curl вместо wget" + +msgid "Use curl instead of wget for testing the connectivity." +msgstr "Используйте curl вместо команды wget для тестирования подключения." + +msgid "Used interface" +msgstr "Используемый интерфейс" + +msgid "Which interface should curl use. (Use ifconfig to find out)" +msgstr "" +"Какой интерфейс должен использовать curl. (Использовать команду ifconfig, " +"чтобы узнать)." + +msgid "WiFi Status" +msgstr "Состояние" diff --git a/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm b/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm index 463b2e05f..58121c420 100644 --- a/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm +++ b/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm @@ -5,7 +5,7 @@ %> <div class="cbi-section-create cbi-tblsection-create"> - <% if wz and lz then %> + <% if wz then %> <br /> <table class="cbi-section-table" style="margin-left:5px"> <tr class="cbi-section-table-titles"> @@ -37,7 +37,8 @@ </td> </tr> </table> - + <% end %> + <% if wz and lz then %> <table class="cbi-section-table" style="margin-left:5px"> <tr class="cbi-section-table-titles"> <th class="cbi-section-table-cell left" colspan="6"><br /><%:New forward rule%>:</th> @@ -71,7 +72,11 @@ </td> </tr> </table> + <% else %> + <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" /> + <% end %> + <% if wz then %> <script type="text/javascript">//<![CDATA[ cbi_validate_field('_newopen.extport', true, 'list(neg(portrange))'); cbi_bind(document.getElementById('_newopen.extport'), 'blur', @@ -106,7 +111,5 @@ cbi_validate_field('cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>', true, 'uciname'); //]]></script> - <% else %> - <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" /> <% end %> </div> diff --git a/applications/luci-app-firewall/po/ru/firewall.po b/applications/luci-app-firewall/po/ru/firewall.po index be16fece8..3657d742e 100644 --- a/applications/luci-app-firewall/po/ru/firewall.po +++ b/applications/luci-app-firewall/po/ru/firewall.po @@ -1,19 +1,17 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: firewall\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-30 17:00+0200\n" -"PO-Revision-Date: 2013-09-05 16:02+0200\n" -"Last-Translator: datasheet <michael.gritsaenko@gmail.com>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"POT-Creation-Date: 2013-09-05 16:02+0200\n" +"PO-Revision-Date: 2018-01-07 20:55+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.6\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "%s in %s" msgstr "%s в %s" @@ -55,10 +53,10 @@ msgid "Advanced Settings" msgstr "Расширенные настройки" msgid "Allow forward from <em>source zones</em>:" -msgstr "Разрешить перенаправление из <em>зон-источников</em>:" +msgstr "Разрешить перенаправление из <em>'зон-источников'</em>:" msgid "Allow forward to <em>destination zones</em>:" -msgstr "Разрешить перенаправление в <em>зоны назначения</em>:" +msgstr "Разрешить перенаправление в <em>'зоны назначения'</em>:" msgid "Any" msgstr "Любой" @@ -75,9 +73,8 @@ msgid "" "each firewall restart, right after the default ruleset has been loaded." msgstr "" "Пользовательские правила позволяют выполнять произвольные команды iptables, " -"которые так или иначе не покрываются данным фреймворком межсетевого экрана. " -"Команды выполняются при каждом перезапуске межсетевого экрана, сразу после " -"того, как загружен набор правил по умолчанию." +"которые не охвачены рамками брандмауэра. Команды выполняются после каждой " +"перезагрузки брандмауэра сразу после загрузки набора правил по умолчанию." msgid "Destination IP address" msgstr "IP-адрес назначения" @@ -100,7 +97,6 @@ msgstr "Не пропускать некорректные пакеты" msgid "Enable" msgstr "Включить" -#, fuzzy msgid "Enable NAT Loopback" msgstr "Включить NAT Loopback" @@ -147,7 +143,7 @@ msgid "Forward to" msgstr "Перенаправлять в" msgid "Friday" -msgstr "" +msgstr "Пятница" msgid "From %s in %s" msgstr "Из %s в %s" @@ -200,37 +196,36 @@ msgstr "Ограничение MSS" msgid "Masquerading" msgstr "Маскарадинг" -#, fuzzy msgid "Match" -msgstr "Выбирать" +msgstr "Проверка" msgid "Match ICMP type" msgstr "Соответствовать ICMP типу" msgid "Match forwarded traffic to the given destination port or port range." msgstr "" -"Перенаправить соответствующий трафик на определённый порт или диапазон " -"портов. " +"Проверять перенаправленный трафик с заданным портом назначения или " +"диапазоном портов. " msgid "" "Match incoming traffic directed at the given destination port or port range " "on this host" msgstr "" -"Выбирать входящий трафик, направленный на порт или диапазон портов данного " -"хоста" +"Проверять входящий трафик, направленный на порт или диапазон портов данного " +"хоста. " msgid "" "Match incoming traffic originating from the given source port or port range " "on the client host." msgstr "" -"Выбирать входящий трафик, исходящий из порта или диапазона портов " -"клиентского хоста." +"Проверять входящий трафик, исходящий от заданного исходного порта или " +"диапазона портов на клиентского хоста. " msgid "Monday" -msgstr "" +msgstr "Понедельник" msgid "Month Days" -msgstr "" +msgstr "Дни Месяца" msgid "Name" msgstr "Имя" @@ -301,7 +296,7 @@ msgid "Redirect matched incoming traffic to the specified internal host" msgstr "Перенаправить входящий трафик на указанный хост внутренней сети" msgid "Restart Firewall" -msgstr "" +msgstr "Перезапуск межсетевой экрана" msgid "Restrict Masquerading to given destination subnets" msgstr "Использовать маскарадинг только для указанных подсетей-получателей" @@ -335,29 +330,8 @@ msgid "SNAT port" msgstr "Порт SNAT" msgid "Saturday" -msgstr "" +msgstr "Суббота" -# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # -# Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua # -# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # -# msgid "Traffic Redirection" -# msgstr "" -# msgid "" -# "Traffic redirection allows you to change the destination address of " -# "forwarded packets." -# msgstr "" -# msgid "Overview" -# msgstr "" -# msgid "Name" -# msgstr "" -# msgid "Source zone" -# msgstr "" -# msgid "Source MAC-address" -# msgstr "" -# msgid "Source port" -# msgstr "" -# msgid "Protocol" -# msgstr "" msgid "Source IP address" msgstr "IP-адрес источника" @@ -387,19 +361,19 @@ msgid "Source zone" msgstr "Зона-источник" msgid "Start Date (yyyy-mm-dd)" -msgstr "" +msgstr "Дата начала (yyyy-mm-dd)" msgid "Start Time (hh:mm:ss)" -msgstr "" +msgstr "Время начала (hh:mm:ss)" msgid "Stop Date (yyyy-mm-dd)" -msgstr "" +msgstr "Дата остановки (yyyy-mm-dd)" msgid "Stop Time (hh:mm:ss)" -msgstr "" +msgstr "Время остановки (hh:mm:ss)" msgid "Sunday" -msgstr "" +msgstr "Воскресенье" msgid "" "The firewall creates zones over your network interfaces to control network " @@ -415,11 +389,11 @@ msgid "" "<em>not</em> imply a permission to forward from wan to lan as well." msgstr "" "Данные настройки управляют перенаправлением между этой (%s) и другими " -"зонами. Трафиком <em>зон-получателей</em> является трафик <strong>исходящий " -"из %q</strong>. Трафиком <em>зон-источников</em> является трафик " -"<strong>направленый в %q</strong>. Перенаправление является " -"<em>однонаправленным</em>, то есть перанаправление из lan в wan <em>не</em> " -"допускает перенаправление трафика из wan в lan." +"зонами. Трафиком <em>'зон-получателей'</em> является трафик " +"<strong>'исходящий из %q'</strong>. Трафиком <em>'зон-источников'</em> " +"является трафик <strong>'направленый в %q'</strong>. Перенаправление " +"является <em>'однонаправленным'</em>, то есть перенаправление из lan в wan " +"<em>'не'</em> допускает перенаправление трафика из wan в lan." msgid "" "This page allows you to change advanced properties of the port forwarding " @@ -435,7 +409,6 @@ msgstr "" "На этой странице можно изменить расширенные настройки правил для трафика. В " "большинстве случаев нет необходимости изменять эти параметры." -#, fuzzy msgid "" "This section defines common properties of %q. The <em>input</em> and " "<em>output</em> options set the default policies for traffic entering and " @@ -443,18 +416,18 @@ msgid "" "forwarded traffic between different networks within the zone. <em>Covered " "networks</em> specifies which available networks are members of this zone." msgstr "" -"Данная секция позволяет изменять общие настройки %q. Опции <em>входящий</em> " -"и <em>исходящий</em> устанавливают политику по умолчанию для входящего и " -"исходящего трафика. Опция <em>перенаправление</em> позволяет установить " -"политику для трафика, который перенаправляется через несколько сетей в зоне. " -"Пункт <em>использовать сети</em> позволяет указать, какие сети являются " -"частью данной зоны." +"Страница содержит общие свойства %q. Режимы <em>'Входящий'</em> и " +"<em>'Исходящий'</em> устанавливают политики по умолчанию для трафика, " +"поступающего и покидающего эту зону, в то время как режим " +"<em>'Перенаправление'</em> описывает политику пересылки трафика между " +"различными сетями внутри зоны. <em>'Использовать сети'</em> указывает, какие " +"доступные сети являются членами этой зоны." msgid "Thursday" -msgstr "" +msgstr "Четверг" msgid "Time in UTC" -msgstr "" +msgstr "Время UTC" msgid "To %s at %s on <var>this device</var>" msgstr "К %s, порту %s на <var>этом устройстве</var>" @@ -487,7 +460,7 @@ msgstr "" "портов маршрутизатора." msgid "Tuesday" -msgstr "" +msgstr "Вторник" msgid "Via %s" msgstr "Через %s" @@ -496,16 +469,16 @@ msgid "Via %s at %s" msgstr "Через %s, порт %s" msgid "Wednesday" -msgstr "" +msgstr "Среда" msgid "Week Days" -msgstr "" +msgstr "Дни недели" msgid "" "You may specify multiple by selecting \"-- custom --\" and then entering " "protocols separated by space." msgstr "" -"Вы можете указать несколько, выбрав \"-- пользовательский --\" и перечислив " +"Вы можете указать несколько, выбрав '-- пользовательский --' и перечислив " "через пробел названия протоколов." msgid "Zone %q" @@ -542,4 +515,4 @@ msgid "reject" msgstr "отвергать" msgid "traffic" -msgstr "" +msgstr "трафик" diff --git a/applications/luci-app-fwknopd/po/ru/fwknopd.po b/applications/luci-app-fwknopd/po/ru/fwknopd.po new file mode 100644 index 000000000..2e67e0d07 --- /dev/null +++ b/applications/luci-app-fwknopd/po/ru/fwknopd.po @@ -0,0 +1,115 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: fwknopd\n" +"POT-Creation-Date: 2017-12-01 12:15+0300\n" +"PO-Revision-Date: 2018-01-06 12:55+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "" +"Allow SPA clients to request access to services through an iptables firewall " +"instead of just to it." +msgstr "" +"Разрешить SPA клиентам запрашивать доступ к сервисам через файрвол iptables, " +"а не напрямую." + +msgid "Allow SPA clients to request forwarding destination by DNS name." +msgstr "" +"Разрешить SPA клиентам запрашивать проброс назначения используя DNS имена." + +msgid "Base 64 key" +msgstr "64-битный ключ" + +msgid "" +"Define a set of ports and protocols (tcp or udp) that will be opened if a " +"valid knock sequence is seen. If this entry is not set, fwknopd will attempt " +"to honor any proto/port request specified in the SPA data (unless of it " +"matches any “RESTRICT_PORTS” entries). Multiple entries are comma-separated." +msgstr "" +"Определите порты и протоколы (TCP или UDP), которые будут открыты, если " +"отображается допустимая последовательность защищенного постукивания. Если " +"этот параметр не задан, fwknopd постарается исполнить любой прото/порт " +"запрос, указанный в SPA данных (если он соответствует любой “RESTRICT_PORTS” " +"записи). Последовательность данных, разделенных запятыми." + +msgid "" +"Define the length of time access will be granted by fwknopd through the " +"firewall after a valid knock sequence from a source IP address. If " +"“FW_ACCESS_TIMEOUT” is not set then the default timeout of 30 seconds will " +"automatically be set." +msgstr "" +"Определите, какой срок доступа будет предоставлен fwknopd через файрвол, " +"после допустимой последовательности защищенного постукивания из исходящего " +"IP-адреса. Если параметр “FW_ACCESS_TIMEOUT” не установлен, то автоматически " +"устанавливается тайм-аут по умолчанию в 30 секунд." + +msgid "" +"Define the symmetric key used for decrypting an incoming SPA packet that is " +"encrypted by the fwknop client with Rijndael." +msgstr "" +"Определите симметричный ключ, используемый для расшифровки входящего SPA " +"пакета зашифрованного fwknop клиентом с помощью Rijndael." + +msgid "Enable Uci/Luci control" +msgstr "Включить управление в Uci/Luci" + +msgid "Enable config overwrite" +msgstr "Включить перезапись config файла" + +msgid "Firewall Knock Daemon" +msgstr "Firewall Knock Daemon" + +msgid "Firewall Knock Operator" +msgstr "Настройка защищенного постукивания файрвола" + +msgid "" +"Force all SPA packets to contain a real IP address within the encrypted " +"data. This makes it impossible to use the -s command line argument on the " +"fwknop client command line, so either -R has to be used to automatically " +"resolve the external address (if the client behind a NAT) or the client must " +"know the external IP and set it via the -a argument." +msgstr "" +"Обязать все SPA пакеты содержать реальный IP-адрес в зашифрованных данных. " +"Это делает невозможным использование аргумента командной строки -s в " +"командной строке fwknop клиента, поэтому либо -R должен использоваться для " +"автоматического разрешения внешнего адреса (если клиент за NAT), либо клиент " +"должен знать внешний IP и установить его используя аргумент -a." + +msgid "" +"Maximum age in seconds that an SPA packet will be accepted. defaults to 120 " +"seconds" +msgstr "" +"Максимальное время в секундах, в течение которых будет принят SPA пакет, по " +"умолчанию 120 секунд." + +msgid "Normal Key" +msgstr "Нормальный ключ" + +msgid "Specify the ethernet interface on which fwknopd will sniff packets." +msgstr "Укажите ethernet интерфейс, пакеты которого fwknopd будет снифить." + +msgid "The base64 hmac key" +msgstr "Основной 64-битный hmac ключ." + +msgid "Use ANY for any source ip" +msgstr "Использовать ЛЮБОЙ, для любого исходящего IP." + +msgid "" +"When unchecked, the config files in /etc/fwknopd will be used as is, " +"ignoring any settings here." +msgstr "" +"Если эта галочка не установлена, config файл /etc/fwknopd будет " +"использоваться как есть, игнорируя любые изменения настроек fwknopd здесь. " + +msgid "access.conf stanzas" +msgstr "Код доступа access.conf" + +msgid "fwknopd.conf config options" +msgstr "Настройка config файла - fwknopd.conf" diff --git a/applications/luci-app-hd-idle/po/ru/hd_idle.po b/applications/luci-app-hd-idle/po/ru/hd_idle.po index e58a32f1d..e776760f0 100644 --- a/applications/luci-app-hd-idle/po/ru/hd_idle.po +++ b/applications/luci-app-hd-idle/po/ru/hd_idle.po @@ -1,19 +1,17 @@ msgid "" msgstr "" -"Project-Id-Version: LuCI: hd_idle\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-14 10:33+0200\n" -"PO-Revision-Date: 2012-08-15 11:24+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" -"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: hd_idle\n" +"POT-Creation-Date: 2012-08-15 11:24+0300\n" +"PO-Revision-Date: 2018-01-07 19:56+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.6\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 " +"&& n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "Disk" msgstr "Диск" @@ -38,15 +36,10 @@ msgid "Idle time unit" msgstr "Единицы времени бездействия" msgid "Settings" -msgstr "Настройки" +msgstr "Настройка" -# Hours msgid "h" msgstr "ч" -# Minutes (not minimum) msgid "min" msgstr "мин" - -#~ msgid "Enable debug" -#~ msgstr "Включить отладку" diff --git a/applications/luci-app-mjpg-streamer/po/ru/mjpg-streamer.po b/applications/luci-app-mjpg-streamer/po/ru/mjpg-streamer.po new file mode 100644 index 000000000..55de0ad89 --- /dev/null +++ b/applications/luci-app-mjpg-streamer/po/ru/mjpg-streamer.po @@ -0,0 +1,174 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: mjpg-streamer\n" +"POT-Creation-Date: 2017-10-17 14:30+0300\n" +"PO-Revision-Date: 2018-01-05 19:39+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "Allow ringbuffer to exceed limit by this amount" +msgstr "" +"Позволить кольцевому буферу превысить ограничение, установив данное значение." + +msgid "Ask for username and password on connect" +msgstr "Задать доступ по имени и паролю." + +msgid "Authentication required" +msgstr "Логин и пароль" + +msgid "Auto" +msgstr "Автоматически" + +msgid "Automatic disabling of MJPEG mode" +msgstr "Автоматически отключится MJPEG." + +msgid "Blink" +msgstr "Мигает" + +msgid "Check to save the stream to an mjpeg file" +msgstr "Проверка сохранения потока в mjpeg файл." + +msgid "Command to run" +msgstr "Введите команду" + +msgid "Device" +msgstr "Устройство" + +msgid "Do not initalize dynctrls of Linux-UVC driver" +msgstr "Не задействует dynctrls драйвера Linux-UVC." + +msgid "Don't initalize dynctrls" +msgstr "Отключить dynctrls" + +msgid "Drop frames smaller then this limit" +msgstr "Ограничить кол-во кадров" + +msgid "Enable MJPG-streamer" +msgstr "Включить MJPG-streamer" + +msgid "Enable YUYV format" +msgstr "Включить YUYV формат" + +msgid "Enabled" +msgstr "Включить" + +msgid "Exceed" +msgstr "Превышение" + +msgid "" +"Execute command after saving picture. Mjpg-streamer parse the filename as " +"first parameter to your script." +msgstr "" +"Выполнить команду после сохранения изображения. Mjpg-streamer задаст имя " +"файла в качестве первого параметра вашего скрипта." + +msgid "File input" +msgstr "Файл ввода" + +msgid "File output" +msgstr "Вывод в файл" + +msgid "Folder" +msgstr "Папка" + +msgid "Folder that contains webpages" +msgstr "Содержимое вебстраницы, находится в этой папке." + +msgid "Frames per second" +msgstr "Кадров в секунду" + +msgid "General" +msgstr "Основные настройки" + +msgid "HTTP output" +msgstr "HTTP вывод" + +msgid "Input plugin" +msgstr "Плагин ввода" + +msgid "Interval between saving pictures" +msgstr "Интервал между снимками" + +msgid "JPEG compression quality" +msgstr "Качество JPEG" + +msgid "Led control" +msgstr "Управление светодиодным индикатором вебкамеры" + +msgid "MJPG-streamer" +msgstr "MJPG-streamer" + +msgid "Max. number of pictures to hold" +msgstr "Размер кольцевого буфера." + +msgid "Mjpeg output" +msgstr "Mjpeg вывод" + +msgid "Off" +msgstr "Выключить" + +msgid "On" +msgstr "Включить" + +msgid "Output plugin" +msgstr "Плагин вывода" + +msgid "Password" +msgstr "Пароль" + +msgid "Plugin settings" +msgstr "Настроить плагины" + +msgid "Port" +msgstr "Порт" + +msgid "Resolution" +msgstr "Разрешение" + +msgid "Ring buffer size" +msgstr "Задать размер буфера" + +msgid "Set folder to save pictures" +msgstr "Задать папку для сохранения снимков." + +msgid "Set the inteval in millisecond" +msgstr "Задать интервал в миллисекундах." + +msgid "" +"Set the minimum size if the webcam produces small-sized garbage frames. May " +"happen under low light conditions" +msgstr "" +"Задайте минимальное значение, если вебкамера не справляется при плохом " +"освещении." + +msgid "" +"Set the quality in percent. This setting activates YUYV format, disables " +"MJPEG" +msgstr "" +"Задать качество в процентах. Данная настройка активирует YUYV формат " +"отключая MJPEG." + +msgid "TCP port for this HTTP server" +msgstr "Задать TCP порт для HTTP сервера." + +msgid "UVC input" +msgstr "UVC ввод" + +msgid "Username" +msgstr "Логин" + +msgid "WWW folder" +msgstr "WWW папка" + +msgid "" +"mjpg streamer is a streaming application for Linux-UVC compatible webcams" +msgstr "" +"Приложение для трансляции потокового видео, для Linux-UVC совместимых веб-" +"камер. Просмотр http://192.168.1.1:8080/?action=stream" diff --git a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/memberconfig.lua b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/memberconfig.lua index eb6f417af..dc2e0da44 100644 --- a/applications/luci-app-mwan3/luasrc/model/cbi/mwan/memberconfig.lua +++ b/applications/luci-app-mwan3/luasrc/model/cbi/mwan/memberconfig.lua @@ -27,8 +27,8 @@ interface = mwan_member:option(Value, "interface", translate("Interface")) cbi_add_interface(interface) metric = mwan_member:option(Value, "metric", translate("Metric"), - translate("Acceptable values: 1-1000. Defaults to 1 if not set")) - metric.datatype = "range(1, 1000)" + translate("Acceptable values: 1-256. Defaults to 1 if not set")) + metric.datatype = "range(1, 256)" weight = mwan_member:option(Value, "weight", translate("Weight"), translate("Acceptable values: 1-1000. Defaults to 1 if not set")) diff --git a/applications/luci-app-mwan3/po/ja/mwan3.po b/applications/luci-app-mwan3/po/ja/mwan3.po index 34a9f1f3b..841a5e701 100644 --- a/applications/luci-app-mwan3/po/ja/mwan3.po +++ b/applications/luci-app-mwan3/po/ja/mwan3.po @@ -37,6 +37,9 @@ msgstr "" msgid "Acceptable values: 1-1000. Defaults to 1 if not set" msgstr "利用可能な値: 1-1000。空欄の場合のデフォルトは1です。" +msgid "Acceptable values: 1-256. Defaults to 1 if not set" +msgstr "利用可能な値: 1-256。空欄の場合のデフォルトは1です。" + msgid "Advanced" msgstr "詳細設定" diff --git a/applications/luci-app-mwan3/po/ru/mwan3.po b/applications/luci-app-mwan3/po/ru/mwan3.po new file mode 100644 index 000000000..f3f7a551d --- /dev/null +++ b/applications/luci-app-mwan3/po/ru/mwan3.po @@ -0,0 +1,663 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: mwan3\n" +"POT-Creation-Date: 2017-09-14 16:00+0300\n" +"PO-Revision-Date: 2018-01-05 17:54+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "%d hour" +msgstr "%d час" + +msgid "%d minute" +msgstr "%d минута" + +msgid "%d minutes" +msgstr "%d минуты" + +msgid "%d second" +msgstr "%d секунда" + +msgid "%d seconds" +msgstr "%d секунды" + +msgid "" +"Acceptable values: 1-100. This many Tracking IP addresses must respond for " +"the link to be deemed up" +msgstr "" +"Допустимые значения: 1-100. Установите количество ответов IP-адресов. " +"Сколько раз они должны ответить, чтобы соединение было признано активным." + +msgid "Acceptable values: 1-1000. Defaults to 1 if not set" +msgstr "Допустимые значения: 1-1000. По умолчанию 1, если значение не задано." + +msgid "Acceptable values: 1-256. Defaults to 1 if not set" +msgstr "Допустимые значения: 1-256 По умолчанию 1, если значение не задано." + +msgid "Advanced" +msgstr "Дополнительно" + +msgid "Check IP rules" +msgstr "Проверить правила IP" + +msgid "Check routing table" +msgstr "Проверить таблицу маршрутизации" + +msgid "Collecting data..." +msgstr "Сбор информации..." + +msgid "Configuration" +msgstr "Настройка config файла" + +msgid "Currently Configured Interfaces" +msgstr "Настроенные интерфейсы" + +msgid "Currently Configured Members" +msgstr "Настроенные узлы" + +msgid "Currently Configured Policies" +msgstr "Настроенных политики" + +msgid "Destination address" +msgstr "Адрес назначения" + +msgid "Destination port" +msgstr "Порт назначения" + +msgid "Detailed Status" +msgstr "Подробная Информация" + +msgid "Diagnostic Results" +msgstr "Результаты диагностики" + +msgid "Diagnostics" +msgstr "Диагностика" + +msgid "Disabled" +msgstr "Отключено" + +msgid "" +"Downed interface will be deemed up after this many successful ping tests" +msgstr "Интерфейс будет считаться отключенным, после продолжительного пинга." + +msgid "Enabled" +msgstr "Включено" + +msgid "Enter value in hex, starting with <code>0x</code>" +msgstr "Введите значение в шестнадцатеричной форме, начиная с <code>0x</code>." + +msgid "Error collecting troubleshooting information" +msgstr "Сбор сведений об устранении неполадок." + +msgid "Errors" +msgstr "Ошибки" + +msgid "Expect interface state on up event" +msgstr "Ожидание " + +msgid "Failure interval" +msgstr "Интервал отказа" + +msgid "Firewall mask" +msgstr "Маска межсетевого экрана" + +msgid "Flush conntrack table" +msgstr "Сбросьте conntrack таблицу" + +msgid "Flush global firewall conntrack table on interface events" +msgstr "" +"Сбросьте глобальные настройки межсетевого экрана conntrack таблицы по " +"истории интерфейса." + +msgid "Globals" +msgstr "Общие" + +msgid "Globals mwan3 options" +msgstr "Общие mwan3 настройки" + +msgid "Hotplug Script" +msgstr "Скрипт Hotplug" + +msgid "Hotplug ifdown" +msgstr "Hotplug ifdown" + +msgid "Hotplug ifup" +msgstr "Hotplug ifup" + +msgid "IPset" +msgstr "IPset" + +msgid "IPv4" +msgstr "IPv4" + +msgid "IPv6" +msgstr "IPv6" + +msgid "Initial state" +msgstr "Исходное состояние" + +msgid "Interface" +msgstr "Интерфейс" + +msgid "Interface Status" +msgstr "Состояние интерфейса" + +msgid "Interface down" +msgstr "Интерфейс отключить" + +msgid "Interface up" +msgstr "Интерфейс включить" + +msgid "Interface will be deemed down after this many failed ping tests" +msgstr "Интерфейс будут считать отключенным, после данного количества пингов." + +msgid "Interfaces" +msgstr "Интерфейсы" + +msgid "Internet Protocol" +msgstr "Протокол интернета" + +msgid "Keep failure interval" +msgstr "Сохранить интервал сбоя" + +msgid "Keep ping failure interval during failure state" +msgstr "Сохранить интервал сбоя ping-а, во время состояния сбоя" + +msgid "Last 50 MWAN systemlog entries. Newest entries sorted at the top :" +msgstr "" +"Последние 50 systemlog записей MWAN . Новые записи расположены сверху :" + +msgid "Last resort" +msgstr "Последнее средство" + +msgid "Load Balancing" +msgstr "Балансировка нагрузки" + +msgid "Loading" +msgstr "Загрузка" + +msgid "Local source interface" +msgstr "Локальный исходящий интефейс" + +msgid "MWAN Config" +msgstr "MWAN config файл" + +msgid "MWAN Detailed Status" +msgstr "Состояние MWAN" + +msgid "MWAN Interface Configuration" +msgstr "Настройка интерфейса MWAN" + +msgid "MWAN Interface Configuration - %s" +msgstr "Настройка интерфейса MWAN - %s" + +msgid "MWAN Interface Diagnostics" +msgstr "Диагностика интерфейса MWAN" + +msgid "MWAN Interface Live Status" +msgstr "Состояние интерфейса MWAN" + +msgid "MWAN Interface Systemlog" +msgstr "Systemlog MWAN интерфейса " + +msgid "MWAN Member Configuration" +msgstr "MWAN настройка узла" + +msgid "MWAN Member Configuration - %s" +msgstr "MWAN настройка узла - %s" + +msgid "MWAN Policy Configuration" +msgstr "MWAN настройка политики" + +msgid "MWAN Policy Configuration - %s" +msgstr "MWAN настройка политики - %s" + +msgid "MWAN Rule Configuration" +msgstr "MWAN настройка правила" + +msgid "MWAN Rule Configuration - %s" +msgstr "MWAN настройка правила - %s" + +msgid "MWAN Service Control" +msgstr "Управление службой MWAN" + +msgid "" +"MWAN supports up to 250 physical and/or logical interfaces<br />MWAN " +"requires that all interfaces have a unique metric configured in /etc/config/" +"network<br />Names must match the interface name found in /etc/config/" +"network (see advanced tab)<br />Names may contain characters A-Z, a-z, 0-9, " +"_ and no spaces<br />Interfaces may not share the same name as configured " +"members, policies or rules" +msgstr "" +"MWAN поддерживает до 250 физических и / или логических интерфейсов<br />MWAN " +"требует, чтобы все интерфейсы имели уникальную метрику, сконфигурированную " +"в /etc/config/network<br />Имена должны соответствовать имени интерфейса, " +"найденному в /etc/config/network (см. соответствующую страницу)<br />Имена " +"могут содержать символы A-Z, a-z, 0-9, _ и пробелы<br />Интерфейсы могут не " +"совпадать с тем же именем, что и для настроенных узлов, политик или правил." + +msgid "" +"May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or " +"as a portrange (eg \"1024:2048\") without quotes" +msgstr "" +"Может быть введено как один или несколько портов (например, \"22\" или " +"\"80,443\") или как диапазон портов (например, \"1024:2048\") без кавычек." + +msgid "Member" +msgstr "Узел" + +msgid "Member used" +msgstr "Используемый узел" + +msgid "Members" +msgstr "Узлы" + +msgid "" +"Members are profiles attaching a metric and weight to an MWAN interface<br /" +">Names may contain characters A-Z, a-z, 0-9, _ and no spaces<br />Members " +"may not share the same name as configured interfaces, policies or rules" +msgstr "" +"Узлы имеют профили, содержащие метрику и вес к интерфейсу MWAN<br />Имена " +"могут содержать символы A-Z, a-z, 0-9, _ и пробелы<br />Узлы могут не иметь " +"то же имя, что и настроенные интерфейсы, политики или правила." + +msgid "Members assigned" +msgstr "Назначенные узлы" + +msgid "Metric" +msgstr "Metric" + +msgid "" +"Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/" +"youtube.com/youtube\")" +msgstr "" +"Имя IPset правила. Требуется правило IPset в /etc/dnsmasq.conf (eg \"ipset=/" +"youtube.com/youtube\")." + +msgid "Network Config" +msgstr "Config файл сети" + +msgid "No" +msgstr "Нет" + +msgid "No MWAN interfaces found" +msgstr "Интерфейсы MWAN не найдены" + +msgid "No MWAN systemlog history found" +msgstr "Не найдено истории - systemlog MWAN" + +msgid "No detailed status information available" +msgstr "Подробная информация о состоянии отсутствует" + +msgid "No diagnostic results returned" +msgstr "Результаты диагностики не возвращаются" + +msgid "No protocol specified" +msgstr "Протокол не указан" + +msgid "Offline" +msgstr "Отключен" + +msgid "Online" +msgstr "Включен" + +msgid "Online (tracking active)" +msgstr "Включен (отслеживание активно)" + +msgid "Online (tracking off)" +msgstr "Включен (отслеживание отключено)" + +msgid "Overview" +msgstr "Главное меню" + +msgid "Ping count" +msgstr "Кол-во пингов" + +msgid "Ping default gateway" +msgstr "Пинг шлюза по умолчанию" + +msgid "Ping interval" +msgstr "Интервал пинга" + +msgid "Ping interval during failure detection" +msgstr "Интервал пинга во время обнаружения отказов" + +msgid "Ping interval during failure recovering" +msgstr "Интервал пинга во время восстановления отказа" + +msgid "Ping size" +msgstr "Размер пинга" + +msgid "Ping timeout" +msgstr "Таймаут пинга" + +msgid "Ping tracking IP" +msgstr "Пинг отслеживания IP" + +msgid "Policies" +msgstr "Политики" + +msgid "" +"Policies are profiles grouping one or more members controlling how MWAN " +"distributes traffic<br />Member interfaces with lower metrics are used " +"first. Interfaces with the same metric load-balance<br />Load-balanced " +"member interfaces distribute more traffic out those with higher weights<br /" +">Names may contain characters A-Z, a-z, 0-9, _ and no spaces. Names must be " +"15 characters or less<br />Policies may not share the same name as " +"configured interfaces, members or rules" +msgstr "" +"Политики-это профили, группирующие один или несколько узлов, контролирующие " +"распределение трафика MWAN<br />Интерфейсы узлов с более низкими метриками " +"используются сначала. Интерфейсы с тем же метрическим балансом загрузки<br /" +">Интерфейсы элементов с балансировкой нагрузки распределяют больше трафика с " +"более высокими значениями<br />Имена могут содержать символы A-Z, a-z, 0-9, " +"_ и пробелы. Имена должны быть не более 15 символов<br />Политики могут не " +"иметь то же имя, что и настроенные интерфейсы, узлы или правила." + +msgid "Policy" +msgstr "Политика" + +msgid "Policy assigned" +msgstr "Назначенная политика" + +msgid "Protocol" +msgstr "Протокол" + +msgid "Recovery interval" +msgstr "Интервал восстановления" + +msgid "Restart MWAN" +msgstr "Рестарт MWAN." + +msgid "Rule" +msgstr "Правило" + +msgid "Rules" +msgstr "Правила" + +msgid "" +"Rules specify which traffic will use a particular MWAN policy based on IP " +"address, port or protocol<br />Rules are matched from top to bottom. Rules " +"below a matching rule are ignored. Traffic not matching any rule is routed " +"using the main routing table<br />Traffic destined for known (other than " +"default) networks is handled by the main routing table. Traffic matching a " +"rule, but all WAN interfaces for that policy are down will be blackholed<br /" +">Names may contain characters A-Z, a-z, 0-9, _ and no spaces<br />Rules may " +"not share the same name as configured interfaces, members or policies" +msgstr "" +"Правила определяют, какой трафик будет использовать определенную политику " +"MWAN на основе IP-адреса, порта и протокола<br />Список правил используется " +"сверху вниз. Правила ниже правила сопоставления игнорируются. Трафик, не " +"соответствующий никакому правилу, маршрутизируется с помощью главной таблицы " +"маршрутизации<br />трафик, предназначенный для известных (кроме сети по " +"умолчанию), обрабатывается основной таблицей маршрутизации. Трафик " +"соответствует правилам, но все интерфейсы WAN для этой политики будут " +"заблокированы<br />Имена могут содержать символы A-Z, a-z, 0-9, _ , пробелы " +"запрещены<br />Правила не могут совместно использовать то же имя, что и " +"настроенные интерфейсы, члены или политики." + +msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set" +msgstr "" +"Секунды. Допустимые значения: 1-1000000. По умолчанию 600, если значение не " +"установлено." + +msgid "Source address" +msgstr "Исходящий адрес" + +msgid "Source port" +msgstr "Исходящий порт" + +msgid "Start MWAN" +msgstr "Старт MWAN." + +msgid "Sticky" +msgstr "Липкий" + +msgid "Sticky timeout" +msgstr "Липкое значение таймаута" + +msgid "Stop MWAN" +msgstr "Стоп MWAN." + +msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes" +msgstr "Поддерживает CIDR нотацию (например \"192.168.100.0/24\") без кавычек." + +msgid "There are currently %d of 250 supported interfaces configured" +msgstr "В настоящее время настроен %d из 250 поддерживаемых интерфейсов." + +msgid "" +"This displays the metric assigned to this interface in /etc/config/network" +msgstr "" +"Страница отображает метрики назначения этого интерфейса в /etc/config/" +"network." + +msgid "" +"This hostname or IP address will be pinged to determine if the link is up or " +"down. Leave blank to assume interface is always online" +msgstr "" +"Это имя хоста или IP-адрес для пинга, чтобы определить активно ли соединение " +"или нет. Оставьте пустым, чтобы предположить, что интерфейс всегда находится " +"в сети." + +msgid "" +"This section allows you to modify the content of \"/etc/mwan3.user\".<br /" +">The file is also preserved during sysupgrade.<br /><br />Notes:<br />This " +"file is interpreted as a shell script.<br />The first line of the script " +"must be "#!/bin/sh" without quotes.<br />Lines beginning with # are " +"comments and are not executed.<br />Put your custom mwan3 action here, they " +"will<br />be executed with each netifd hotplug interface event<br />on " +"interfaces for which mwan3 is enabled.<br /><br />There are three main " +"environment variables that are passed to this script.<br /><br />$ACTION " +"Either \"ifup\" or \"ifdown\"<br />$INTERFACE Name of the interface which " +"went up or down (e.g. \"wan\" or \"wwan\")<br />$DEVICE Physical device name " +"which interface went up or down (e.g. \"eth0\" or \"wwan0\")<br /><br />" +msgstr "" +"Страница позволяет изменять содержимое \"/etc/mwan3.user\".<br />Файл также " +"сохраняется во время sysupgrade.<br /><br />Примечание:<br />Этот файл " +"интерпретируется как shell скрипт.<br />Первая строка скрипта должна быть " +""#!/bin/sh" без кавычек.<br />Строки начинающиеся с #, являются " +"комментариями и не исполняются.<br />Поместите свои пользовательские " +"действия mwan3 здесь, они будут<br />выполняться с каждым событием netifd " +"hotplug интерфейса<br />на интерфейсах, для которых включен mwan3.<br /><br /" +">В этот сценарий передаются три основные переменные среды.<br /><br />" +"$ACTION либо \"ifup\" или \"ifdown\"<br />$INTERFACE - имя интерфейса, " +"который включили или отключили (например, \"wan\" или \"wwan\") <br />" +"$DEVICE - имя физического устройства, чей интерфейс включили или отключили " +"(например, \"wan\" или \"wwan\")<br /><br />." + +msgid "This section allows you to modify the contents of /etc/config/mwan3" +msgstr "Страница позволяет изменять содержимое config файла /etc/config/mwan3." + +msgid "This section allows you to modify the contents of /etc/config/network" +msgstr "" +"Страница позволяет изменять содержимое config файла /etc/config/network." + +msgid "This section allows you to modify the contents of /etc/config/wireless" +msgstr "" +"Страница позволяет изменять содержимое config файла /etc/config/wireless." + +msgid "Tracking IP" +msgstr "Отслеживание IP" + +msgid "Tracking hostname or IP address" +msgstr "Отслеживание имени хоста или IP-адреса" + +msgid "Tracking method" +msgstr "Метод отслеживания" + +msgid "Tracking reliability" +msgstr "Надежность отслеживания" + +msgid "Traffic Rules" +msgstr "Правила трафика" + +msgid "" +"Traffic from the same source IP address that previously matched this rule " +"within the sticky timeout period will use the same WAN interface" +msgstr "" +"Трафик с того же IP-адреса источника, который ранее соответствовал этому " +"правилу в период тайм-аута sticky, будет использовать тот же интерфейс WAN." + +msgid "Troubleshooting" +msgstr "Устранение неполадок" + +msgid "Troubleshooting Data" +msgstr "Устранение неполадок данных" + +msgid "" +"Use the IP address of this interface as source IP address for traffic " +"initiated by the router itself" +msgstr "" +"Используйте IP-адрес этого интерфейса в качестве IP-адреса источника для " +"трафика, инициированного самим роутером." + +msgid "View the contents of /etc/protocols for protocol descriptions" +msgstr "Просмотреть содержимое файла /etc/protocols для описания протокола." + +msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!" +msgstr "ВНИМАНИЕ: интерфейсы %d настроены, превышая максимум 250!" + +msgid "" +"WARNING: Some interfaces are configured incorrectly or not at all in /etc/" +"config/network!" +msgstr "" +"ВНИМАНИЕ: Некоторые интерфейсы настроены неправильно или вовсе не в /etc/" +"config/network!" + +msgid "" +"WARNING: Some interfaces have a higher reliability requirement than there " +"are tracking IP addresses!" +msgstr "" +"ВНИМАНИЕ: Некоторые интерфейсы имеют более высокое требование к надежности " +"чем отслеживая IP-адреса!" + +msgid "" +"WARNING: Some interfaces have duplicate metrics configured in /etc/config/" +"network!" +msgstr "" +"ВНИМАНИЕ: Некоторые интерфейсы имеют повторяющиеся метрики, настроенные в /" +"etc/config/network!" + +msgid "" +"WARNING: Some interfaces have no default route in the main routing table!" +msgstr "" +"ВНИМАНИЕ: Некоторые интерфейсы не имеют маршрута по умолчанию в основной " +"таблице маршрутизации!" + +msgid "" +"WARNING: Some interfaces have no metric configured in /etc/config/network!" +msgstr "" +"ВНИМАНИЕ: Некоторые интерфейсы не имеют метрики, настроенной в /etc/config/" +"network!" + +msgid "" +"WARNING: Some policies have names exceeding the maximum of 15 characters!" +msgstr "" +"ВНИМАНИЕ: Некоторые политики имеют имена, превышающие максимум 15 символов!" + +msgid "" +"WARNING: Some rules have a port configured with no or improper protocol " +"specified! Please configure a specific protocol!" +msgstr "" +"ВНИМАНИЕ: некоторые правила имеют порт, настроенный без или неправильный " +"протокол указан! Пожалуйста, настройте конкретный протокол!" + +msgid "" +"WARNING: This and other interfaces have duplicate metrics configured in /etc/" +"config/network!" +msgstr "" +"ВНИМАНИЕ: этот и другие интерфейсы имеют повторяющиеся метрики, настроенные " +"в /etc/config/network!" + +msgid "" +"WARNING: This interface has a higher reliability requirement than there are " +"tracking IP addresses!" +msgstr "" +"ВНИМАНИЕ: этот интерфейс имеет более высокое требование к надежности, чем " +"есть отслеживание IP-адресов!" + +msgid "WARNING: This interface has no default route in the main routing table!" +msgstr "" +"ВНИМАНИЕ: этот интерфейс не имеет маршрута по умолчанию в основной таблице " +"маршрутизации!" + +msgid "" +"WARNING: This interface has no metric configured in /etc/config/network!" +msgstr "" +"ВНИМАНИЕ: этот интерфейс не имеет метрики, настроенной в /etc/config/network!" + +msgid "" +"WARNING: This interface is configured incorrectly or not at all in /etc/" +"config/network!" +msgstr "" +"ВНИМАНИЕ: этот интерфейс настроен неправильно или его вообще нет в /etc/" +"config/network!" + +msgid "" +"WARNING: This policy's name is %d characters exceeding the maximum of 15!" +msgstr "ВНИМАНИЕ: имя этой политики- % D символов, превышающих максимум 15!" + +msgid "" +"WARNING: This rule is incorrectly configured with no or improper protocol " +"specified! Please configure a specific protocol!" +msgstr "" +"ВНИМАНИЕ: это правило неправильно настроено или неправильно указан протокол! " +"Пожалуйста, настройте конкретный протокол!" + +msgid "Waiting for MWAN to %s..." +msgstr "Ожидание MWAN до %s..." + +msgid "Waiting for diagnostic results..." +msgstr "Ожидание результатов диагностики..." + +msgid "Weight" +msgstr "Вес" + +msgid "" +"When all policy members are offline use this behavior for matched traffic" +msgstr "" +"Когда все члены политики находятся в автономном режиме, используйте это " +"поведение для сопоставленного трафика." + +msgid "Wireless Config" +msgstr "Настройка беспроводного соединения" + +msgid "Yes" +msgstr "Да" + +msgid "always" +msgstr "всегда" + +msgid "blackhole (drop)" +msgstr "blackhole (drop)" + +msgid "default (use main routing table)" +msgstr "по умолчанию (использовать основную таблицу маршрутизации)" + +msgid "ifdown" +msgstr "ifdown" + +msgid "ifup" +msgstr "ifup" + +msgid "never" +msgstr "никогда" + +msgid "restart" +msgstr "рестарт" + +msgid "start" +msgstr "cтарт" + +msgid "stop" +msgstr "стоп" + +msgid "unreachable (reject)" +msgstr "недоступен (отклонить)" diff --git a/applications/luci-app-mwan3/po/templates/mwan3.pot b/applications/luci-app-mwan3/po/templates/mwan3.pot index ed9fdb131..a993a81b6 100644 --- a/applications/luci-app-mwan3/po/templates/mwan3.pot +++ b/applications/luci-app-mwan3/po/templates/mwan3.pot @@ -24,6 +24,9 @@ msgstr "" msgid "Acceptable values: 1-1000. Defaults to 1 if not set" msgstr "" +msgid "Acceptable values: 1-256. Defaults to 1 if not set" +msgstr "" + msgid "Advanced" msgstr "" diff --git a/applications/luci-app-mwan3/po/zh-cn/mwan3.po b/applications/luci-app-mwan3/po/zh-cn/mwan3.po index d0b92a6df..966f53c71 100644 --- a/applications/luci-app-mwan3/po/zh-cn/mwan3.po +++ b/applications/luci-app-mwan3/po/zh-cn/mwan3.po @@ -33,7 +33,10 @@ msgstr "" "取值范围:1-100。这个设置项指定了当多少个 IP 地址能够连通时接口会被认为在线" msgid "Acceptable values: 1-1000. Defaults to 1 if not set" -msgstr "取值范围:1-100。如果不填写,默认值为 1" +msgstr "取值范围:1-1000。如果不填写,默认值为 1" + +msgid "Acceptable values: 1-256. Defaults to 1 if not set" +msgstr "取值范围:1-256。如果不填写,默认值为 1" msgid "Advanced" msgstr "高级" diff --git a/applications/luci-app-mwan3/po/zh-tw/mwan3.po b/applications/luci-app-mwan3/po/zh-tw/mwan3.po index 04711ac3d..d4a652a5d 100644 --- a/applications/luci-app-mwan3/po/zh-tw/mwan3.po +++ b/applications/luci-app-mwan3/po/zh-tw/mwan3.po @@ -33,7 +33,10 @@ msgstr "" "取值範圍:1-100。這個設定項指定了當多少個 IP 位址能夠連通時介面會被認為線上" msgid "Acceptable values: 1-1000. Defaults to 1 if not set" -msgstr "取值範圍:1-100。如果不填寫,預設值為 1" +msgstr "取值範圍:1-1000。如果不填寫,預設值為 1" + +msgid "Acceptable values: 1-256. Defaults to 1 if not set" +msgstr "取值範圍:1-256。如果不填寫,預設值為 1" msgid "Advanced" msgstr "高階" diff --git a/applications/luci-app-privoxy/po/ru/privoxy.po b/applications/luci-app-privoxy/po/ru/privoxy.po new file mode 100644 index 000000000..76fd9f6fd --- /dev/null +++ b/applications/luci-app-privoxy/po/ru/privoxy.po @@ -0,0 +1,512 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: privoxy\n" +"POT-Creation-Date: 2017-12-14 16:00+0300\n" +"PO-Revision-Date: 2018-01-05 17:40+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "" +"A URL to be displayed in the error page that users will see if access to an " +"untrusted page is denied." +msgstr "" +"URL-адрес, отображаемый на странице ошибки, который пользователи будут " +"видеть, если доступ к ненадежной странице запрещен." + +msgid "" +"A URL to documentation about the local Privoxy setup, configuration or " +"policies." +msgstr "" +"URL-адрес к документации о локальной настройке, конфигурации или политиках " +"Privoxy." + +msgid "A directory where Privoxy can create temporary files." +msgstr "Папка в которой Privoxy может создавать временные файлы." + +msgid "Access Control" +msgstr "Контроль доступа" + +msgid "Actions that are applied to all sites and maybe overruled later on." +msgstr "" +"Действия, которые применяются ко всем сайтам и могут быть отменены позже." + +msgid "An alternative directory where the templates are loaded from." +msgstr "Альтернативный каталог, из которого загружаются шаблоны." + +msgid "An email address to reach the Privoxy administrator." +msgstr "Адрес электронной почты, чтобы связаться с администратором Privoxy." + +msgid "" +"Assumed server-side keep-alive timeout (in seconds) if not specified by the " +"server." +msgstr "" +"Взятый на стороне сервера keep-alive тайм-аут (в секундах), если не указан " +"сервер." + +msgid "Boot delay" +msgstr "Задержка загрузки" + +msgid "CGI user interface" +msgstr "Пользовательский интерфейс CGI." + +msgid "Common Log Format" +msgstr "Типичный формат системного журнала." + +msgid "" +"Configure here the routing of HTTP requests through a chain of multiple " +"proxies. Note that parent proxies can severely decrease your privacy level. " +"Also specified here are SOCKS proxies." +msgstr "" +"Страница настройки маршрутизации HTTP-запросов через цепочку из нескольких " +"прокси-серверов. Обратите внимание, что родительские прокси могут " +"значительно снизить уровень конфиденциальности. Здесь же настройка SOCKS " +"прокси." + +msgid "Debug GIF de-animation" +msgstr "Отладка GIF де-анимации." + +msgid "Debug force feature" +msgstr "Отладка функции назначения." + +msgid "Debug redirects" +msgstr "Отладка пере направлений." + +msgid "Debug regular expression filters" +msgstr "Отладка фильтров регулярных выражений." + +msgid "Delay (in seconds) during system boot before Privoxy start" +msgstr "Задержка (в секундах) во время загрузки системы до запуска Privoxy." + +msgid "Directory does not exist!" +msgstr "Папка не существует!" + +msgid "Disabled == Transparent Proxy Mode" +msgstr "Отключен == Прозрачный Режим Прокси-Сервера." + +msgid "Documentation" +msgstr "Информация" + +msgid "During delay ifup-events are not monitored !" +msgstr "Во время задержки ifup-events не отслеживаются!" + +msgid "Enable proxy authentication forwarding" +msgstr "Включить проверку подлинности прокси-сервера пере адресации." + +msgid "" +"Enable/Disable autostart of Privoxy on system startup and interface events" +msgstr "" +"Включить / Выключить авто запуск Privoxy, при старте системы и событиях " +"интерфейса." + +msgid "Enable/Disable filtering when Privoxy starts." +msgstr "Включить / Выключить фильтрацию при запуске Privoxy." + +msgid "Enabled" +msgstr "Включено" + +msgid "" +"Enabling this option is NOT recommended if there is no parent proxy that " +"requires authentication!" +msgstr "" +"Включение этой опции не рекомендуется, если отсутствует родительский прокси, " +"который требует аутентификации!" + +msgid "File '%s' not found inside Configuration Directory" +msgstr "Файл \"%S \" не найден в папке с config файлами" + +msgid "File not found or empty" +msgstr "Файл не найден или пустой" + +msgid "Files and Directories" +msgstr "Файлы и папки" + +msgid "For help use link at the relevant option" +msgstr "Для помощи используйте ссылку по соответствующей опции." + +msgid "Forwarding" +msgstr "Маршрутизация" + +msgid "" +"If enabled, Privoxy hides the 'go there anyway' link. The user obviously " +"should not be able to bypass any blocks." +msgstr "" +"Если включено, Privoxy скрывает \"идти туда в любом случае\". Пользователь " +"не сможет обойти блокировку." + +msgid "" +"If you intend to operate Privoxy for more users than just yourself, it might " +"be a good idea to let them know how to reach you, what you block and why you " +"do that, your policies, etc." +msgstr "" +"Если вы используете Privoxy, вы сможете сообщить большому количеству " +"пользователей, как связаться с вами, что вы блокируете и почему вы это " +"делаете, ваши политики и т.д." + +msgid "Invalid email address" +msgstr "Неверный email адрес" + +msgid "It is NOT recommended for the casual user." +msgstr "Нельзя использовать случайному пользователю." + +msgid "Location of the Privoxy User Manual." +msgstr "Расположение руководства пользователя Privoxy." + +msgid "Log File Viewer" +msgstr "Просмотр системного журнала" + +msgid "Log all data read from the network" +msgstr "Записывать в системный журнал все данные, считываемые сетью." + +msgid "Log all data written to the network" +msgstr "Записывать в системный журнал все данные, отправленные в сеть." + +msgid "Log the applying actions" +msgstr "Записывать в системный журнал все действия." + +msgid "" +"Log the destination for each request Privoxy let through. See also 'Debug " +"1024'." +msgstr "" +"Записывать в системный журнал места назначения для каждого запроса, который " +"передает Privoxy. См. также \"Debug 1024\"." + +msgid "" +"Log the destination for requests Privoxy didn't let through, and the reason " +"why." +msgstr "Записывать в системный журнал неудачные попытки Privoxy и их причины." + +msgid "Logging" +msgstr "Настройка системного журнала" + +msgid "Main actions file" +msgstr "Дефолтные действия." + +msgid "Mandatory Input: No Data given!" +msgstr "Обязательный ввод: не указаны данные!" + +msgid "Mandatory Input: No Directory given!" +msgstr "Обязательный ввод: не указана папка!" + +msgid "Mandatory Input: No File given!" +msgstr "Обязательный ввод: не указан файл!" + +msgid "Mandatory Input: No Port given!" +msgstr "Обязательный ввод: Не указан порт!" + +msgid "Mandatory Input: No files given!" +msgstr "Обязательный ввод: не указаны файлы!" + +msgid "Mandatory Input: No valid IPv4 address or host given!" +msgstr "Обязательный ввод: Не указан действительный IPv4 адрес или хост!" + +msgid "Mandatory Input: No valid IPv6 address given!" +msgstr "Обязательный ввод: Не указан действительный IPv6 адрес!" + +msgid "Mandatory Input: No valid Port given!" +msgstr "Обязательный ввод: Не указан действительный порт!" + +msgid "Maximum number of client connections that will be served." +msgstr "Максимальное число обслуживаемых клиентских подключений." + +msgid "Maximum size (in KB) of the buffer for content filtering." +msgstr "Максимальный размер буфера для фильтрации содержимого (в KB)." + +msgid "Miscellaneous" +msgstr "Дополнительно" + +msgid "NOT installed" +msgstr "Не установлена" + +msgid "No trailing '/', please." +msgstr "Не используйте символ '/'." + +msgid "Non-fatal errors - *we highly recommended enabling this*" +msgstr "" +"Отсутствуют неустранимые ошибки - *мы настоятельно рекомендуем включить эту " +"функцию*." + +msgid "" +"Number of seconds after which a socket times out if no data is received." +msgstr "" +"Количество секунд по истечении которых, время сокета истекает, если данные " +"не получены." + +msgid "" +"Number of seconds after which an open connection will no longer be reused." +msgstr "" +"Количество секунд по истечении которых, соединение не будет использоваться " +"повторно." + +msgid "" +"Only when using 'external filters', Privoxy has to create temporary files." +msgstr "" +"Только когда используются 'сторонние фильтры', Privoxy должен создавать " +"временные файлы." + +msgid "Please install current version !" +msgstr "Установите текущую версию !" + +msgid "Please press [Read] button" +msgstr "Нажмите кнопку [Читать / Перечитывать системный журнал]" + +msgid "Please read Privoxy manual for details!" +msgstr "Ознакомьтесь с руководством Privoxy!" + +msgid "Please update to the current version!" +msgstr "Обновите до текущей версии!" + +msgid "Privoxy WEB proxy" +msgstr "Privoxy WEB proxy" + +msgid "" +"Privoxy can (and normally does) use a number of other files for additional " +"configuration, help and logging. This section of the configuration file " +"tells Privoxy where to find those other files." +msgstr "" +"Страница настройки расположения вспомогательных файлов Privoxy. Privoxy - " +"использует ряд других файлов для дополнительной настройки, оказания помощи и " +"ведения системного журнала. " + +msgid "" +"Privoxy is a non-caching web proxy with advanced filtering capabilities for " +"enhancing privacy, modifying web page data and HTTP headers, controlling " +"access, and removing ads and other obnoxious Internet junk." +msgstr "" +"Privoxy - это свободный веб-прокси с расширенными возможностями фильтрации " +"интернет-контента для защиты конфиденциальности (приватности) пользователей " +"сети Интернет. Изменения содержания веб-страниц, управления cookies, " +"ограничения доступа к некоторым сайтам и удаления рекламы, баннеров, " +"всплывающих окон, а также любого другого нежелательного контента («интернет-" +"мусора»)." + +msgid "Read / Reread log file" +msgstr "Читать / Перечитывать системный журнал" + +msgid "Show I/O status" +msgstr "Показать статус ввода-вывода." + +msgid "Show each connection status" +msgstr "Показать состояние каждого соединения." + +msgid "Show header parsing" +msgstr "Показать анализ заголовка." + +msgid "Software package '%s' is not installed." +msgstr "Пакет программного обеспечения '%s' не установлен." + +msgid "Software package '%s' is outdated." +msgstr "Пакет программного обеспечения '%s' устарел." + +msgid "Start" +msgstr "Старт" + +msgid "Start / Stop" +msgstr "Старт / Стоп" + +msgid "Start/Stop Privoxy WEB Proxy" +msgstr "Старт / Стоп Privoxy WEB proxy." + +msgid "Startup banner and warnings." +msgstr "Баннер запуска и предупреждения." + +msgid "Syntax:" +msgstr "Синтаксис:" + +msgid "Syntax: Client header names delimited by spaces." +msgstr "Синтаксис: имя заголовка клиента, разделенное пробелами." + +msgid "Syntax: target_pattern http_parent[:port]" +msgstr "Синтаксис: target_pattern http_parent[:port]" + +msgid "Syntax: target_pattern socks_proxy[:port] http_parent[:port]" +msgstr "Синтаксис: target_pattern socks_proxy[:port] http_parent[:port]" + +msgid "System" +msgstr "Система" + +msgid "" +"The actions file(s) to use. Multiple actionsfile lines are permitted, and " +"are in fact recommended!" +msgstr "" +"Файл (или файлы) действий для использования. Желательно использовать " +"несколько строк 'Action Files'." + +msgid "" +"The address and TCP port on which Privoxy will listen for client requests." +msgstr "" +"Адрес и TCP-порт, на котором Privoxy будет прослушивать запросы клиентов." + +msgid "" +"The compression level that is passed to the zlib library when compressing " +"buffered content." +msgstr "" +"Уровень сжатия, который передается в библиотеку zlib при сжатии содержимого " +"буфера." + +msgid "" +"The directory where all logging takes place (i.e. where the logfile is " +"located)." +msgstr "Папка в которой находится системный журнал (т. е. его файл)." + +msgid "The directory where the other configuration files are located." +msgstr "Папка, в которой находятся другие config файлы." + +msgid "" +"The filter files contain content modification rules that use regular " +"expressions." +msgstr "" +"Файлы фильтров содержат правила изменения содержимого, использующие " +"регулярные выражения." + +msgid "The hostname shown on the CGI pages." +msgstr "Имя хоста, показанное на страницах CGI." + +msgid "The log file to use. File name, relative to log directory." +msgstr "" +"Используемый файл системного журнала. Имя файла относительно папки системных " +"журналов." + +msgid "The order in which client headers are sorted before forwarding them." +msgstr "Порядок сортировки заголовков клиентов перед их пересылкой." + +msgid "" +"The status code Privoxy returns for pages blocked with +handle-as-empty-" +"document." +msgstr "" +"Код статуса заблокированных Privoxy страниц с пометкой +handle-as-empty-" +"document." + +msgid "" +"The trust mechanism is an experimental feature for building white-lists and " +"should be used with care." +msgstr "" +"Механизм доверия, является экспериментальной функцией для построения Белых " +"списков и должен использоваться с осторожностью." + +msgid "" +"The value of this option only matters if the experimental trust mechanism " +"has been activated." +msgstr "" +"Этот параметр будет задействован, только если активирован экспериментальный " +"механизм доверия." + +msgid "" +"This option is only there for debugging purposes. It will drastically reduce " +"performance." +msgstr "" +"Этот режим доступен только для отладки. Он существенно снизит " +"производительность." + +msgid "" +"This option will be removed in future releases as it has been obsoleted by " +"the more general header taggers." +msgstr "" +"Этот параметр будет удален в будущих выпусках, поскольку он устарел " +"благодаря введению основных меток заголовков." + +msgid "" +"This tab controls the security-relevant aspects of Privoxy's configuration." +msgstr "Страница контролирует безопасность, важные аспекты настройки Privoxy." + +msgid "" +"Through which SOCKS proxy (and optionally to which parent HTTP proxy) " +"specific requests should be routed." +msgstr "" +"Через какой SOCKS прокси (как вариант, с каким из родительских http-прокси) " +"конкретные запросы должны быть направлены." + +msgid "To which parent HTTP proxy specific requests should be routed." +msgstr "" +"На какой родительский прокси HTTP должны быть направлены определенные " +"запросы." + +msgid "User customizations" +msgstr "Пользовательские действия." + +msgid "Value is not a number" +msgstr "Значение не является числом" + +msgid "Value not between 0 and 300" +msgstr "Значение не от 0 до 300" + +msgid "Value not between 0 and 9" +msgstr "Значение не от 0 до 9" + +msgid "Value not between 1 and 4096" +msgstr "Значения не от 1 до 4096" + +msgid "Value not greater 0 or empty" +msgstr "Значение не больше 0 или пустое" + +msgid "Value range 1 to 4096, no entry defaults to 4096" +msgstr "Диапазон значений от 1 до 4096, значение по умолчанию 4096." + +msgid "Version" +msgstr "Версия" + +msgid "Version Information" +msgstr "Информация о версии" + +msgid "Whether intercepted requests should be treated as valid." +msgstr "Следует ли рассматривать перехваченные запросы как действительные." + +msgid "" +"Whether or not Privoxy recognizes special HTTP headers to change toggle " +"state." +msgstr "" +"Распознает ли Privoxy специальные заголовки HTTP для изменения состояния " +"переключения." + +msgid "Whether or not buffered content is compressed before delivery." +msgstr "Сжатие буферизованного содержимого перед доставкой." + +msgid "" +"Whether or not outgoing connections that have been kept alive should be " +"shared between different incoming connections." +msgstr "" +"Должны ли исходящие соединения, сохраненные в действующих, совместно " +"использоваться различными входящими соединениями." + +msgid "Whether or not pipelined requests should be served." +msgstr "Могут или нет подаваться pipelined запросы." + +msgid "Whether or not proxy authentication through Privoxy should work." +msgstr "Должена ли работать прокси-аутентификация через Privoxy." + +msgid "Whether or not the web-based actions file editor may be used." +msgstr "Может ли использоваться редактор файлов веб-действий." + +msgid "Whether or not the web-based toggle feature may be used." +msgstr "Может ли использоваться веб-функция переключения." + +msgid "Whether requests to Privoxy's CGI pages can be blocked or redirected." +msgstr "" +"Могут ли запросы на CGI-страницы Privoxy быть заблокированы или " +"перенаправлены." + +msgid "" +"Whether the CGI interface should stay compatible with broken HTTP clients." +msgstr "" +"Должен ли CGI интерфейс оставаться совместимым со сломанными http-клиентами." + +msgid "Whether to run only one server thread." +msgstr "Должен ли выполняться только один серверный поток." + +msgid "Who can access what." +msgstr "Кто имеет доступ." + +msgid "installed" +msgstr "установлено" + +msgid "or higher" +msgstr "или выше" + +msgid "required" +msgstr "требовать" diff --git a/applications/luci-app-radicale/po/ru/radicale.po b/applications/luci-app-radicale/po/ru/radicale.po new file mode 100644 index 000000000..85f010e7f --- /dev/null +++ b/applications/luci-app-radicale/po/ru/radicale.po @@ -0,0 +1,448 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: radicale\n" +"POT-Creation-Date: 2018-01-08 23:00+0300\n" +"PO-Revision-Date: 2018-01-09 01:11+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "" +"'AUTO' selects the highest protocol version that client and server support." +msgstr "" +"'АВТО' выбирает самую высокую версию протокола, которую поддерживают клиент " +"и сервер." + +msgid "" +"'Hostname:Port' or 'IPv4:Port' or '[IPv6]:Port' Radicale should listen on" +msgstr "" +"Задайте 'Имя_хоста:порт' или 'адрес IPv4:порт' или 'адрес IPv6:порт' - адрес " +"и порт работы сервера Radicale." + +msgid "AUTO" +msgstr "АВТО" + +msgid "Access-Control-Allow-Headers" +msgstr "Доступ-Контроль-Разрешить-Заголовки" + +msgid "Access-Control-Allow-Methods" +msgstr "Доступ-Контроль-Разрешить-Методы" + +msgid "Access-Control-Allow-Origin" +msgstr "Доступ-Контроль-Разрешить-Источник" + +msgid "Access-Control-Expose-Headers" +msgstr "Доступ-Контроль-Подвергать-Заголовки" + +msgid "Additional HTTP headers" +msgstr "Дополнительные заголовки HTTP" + +msgid "Address:Port" +msgstr "Адрес:Порт" + +msgid "Authentication" +msgstr "Аутентификация" + +msgid "" +"Authentication login is matched against the 'user' key, and collection's " +"path is matched against the 'collection' key." +msgstr "" +"Имя входа для проверки подлинности сопоставляется с ключом 'пользователь', и " +"пути коллекции сопоставляется с ключом 'коллекция'." + +msgid "Authentication method" +msgstr "Метод аутентификации" + +msgid "Authentication method to allow access to Radicale server." +msgstr "Методы аутентификации для разрешения доступа к серверу Radicale." + +msgid "Auto-start" +msgstr "Авто-старт" + +msgid "Boot delay" +msgstr "Задержка загрузки" + +msgid "CalDAV/CardDAV" +msgstr "CalDAV/CardDAV" + +msgid "" +"Calendars and address books are available for both local and remote access, " +"possibly limited through authentication policies." +msgstr "" +"Календари и адресные книги доступны как для локального, так и для удаленного " +"доступа, возможно ограниченного с помощью политик проверки подлинности." + +msgid "Certificate file" +msgstr "Файл сертификата" + +msgid "" +"Change here the encoding Radicale will use instead of 'UTF-8' for responses " +"to the client and/or to store data inside collections." +msgstr "" +"Выбранный здесь стандарт кодирования текстов, будет использоваться вместо " +"'UTF-8' для ответов клиенту и/или для хранения данных внутри коллекций." + +msgid "Ciphers" +msgstr "Протоколы шифрования" + +msgid "Console Log level" +msgstr "Уровень журнала консоли" + +msgid "Control the access to data collections." +msgstr "Управляйте доступом к сбору данных коллекций." + +msgid "Critical" +msgstr "Критический" + +msgid "" +"Cross-origin resource sharing (CORS) is a mechanism that allows restricted " +"resources (e.g. fonts, JavaScript, etc.) on a web page to be requested from " +"another domain outside the domain from which the resource originated." +msgstr "" +"Cross-Origin Resource Sharing (CORS) - это механизм совместного " +"использования ресурсов между разными источниками, позволяющий использовать " +"ограниченные ресурсы (например, шрифты, JavaScript и т.д.) на веб-странице, " +"запрашиваемой из другого домена, за пределами домена, из которого был создан " +"ресурс." + +msgid "Custom" +msgstr "Пользовательский" + +msgid "Database" +msgstr "База данных" + +msgid "Debug" +msgstr "Отладка" + +msgid "Delay (in seconds) during system boot before Radicale start" +msgstr "" +"Задержка (в секундах) во время загрузки системы перед стартом Radicale." + +msgid "Directory" +msgstr "Папка" + +msgid "Directory not exists/found !" +msgstr "Папка не существует / не найдена !" + +msgid "Directory required !" +msgstr "Папка требуется !" + +msgid "Directory where the rotating log-files are stored" +msgstr "Папка в которой хранятся перезаписываемые файлы системного журнала." + +msgid "During delay ifup-events are not monitored !" +msgstr "Во время задержки ifup-события не отслеживаются!" + +msgid "Enable HTTPS" +msgstr "Включить HTTPS" + +msgid "" +"Enable/Disable auto-start of Radicale on system start-up and interface events" +msgstr "Авто-старт Radicale сервера при запуске прошивки устройства." + +msgid "Encoding" +msgstr "Кодировка" + +msgid "Encoding for responding requests." +msgstr "Кодировка для ответов на запросы." + +msgid "Encoding for storing local collections." +msgstr "Кодировка для хранения локальных данных коллекций." + +msgid "Encryption method" +msgstr "Метод шифрования" + +msgid "Error" +msgstr "Ошибка" + +msgid "File '%s' not found !" +msgstr "Файл '%s' не найден !" + +msgid "File Log level" +msgstr "Уровень лог файла" + +msgid "File not found !" +msgstr "Файл не найден !" + +msgid "File-system" +msgstr "Файловая система" + +msgid "" +"For example, for the 'user' key, '.+' means 'authenticated user' and '.*' " +"means 'anybody' (including anonymous users)." +msgstr "" +"Например для ключа 'пользователь', '+' означает 'аутентифицированный " +"пользователь' и '.*' означает 'кто угодно' (включая анонимных пользователей)." + +msgid "Full access for Owner only" +msgstr "Полный доступ только для владельца" + +msgid "Full access for authenticated Users" +msgstr "Полный доступ для авторизованных пользователей" + +msgid "Full access for everybody (including anonymous)" +msgstr "Полный доступ для всех (включая анонимных)" + +msgid "Full path and file name of certificate" +msgstr "Полный путь и имя файла сертификата" + +msgid "Full path and file name of private key" +msgstr "Полный путь и имя файла личного ключа" + +msgid "Info" +msgstr "Информация" + +msgid "Keep in mind to use the correct hashing algorithm !" +msgstr "Используйте только правильный алгоритм хэширования!" + +msgid "Leading or ending slashes are trimmed from collection's path." +msgstr "Начальные или конечные '/' - удаляются при указании пути." + +msgid "Log-backup Count" +msgstr "Количество резервных копий журнала" + +msgid "Log-file Viewer" +msgstr "Показ файла системного журнала" + +msgid "Log-file directory" +msgstr "Папка файла журналов" + +msgid "Log-file size" +msgstr "Размер файла журнала" + +msgid "Logging" +msgstr "Журналирование" + +msgid "Logon message" +msgstr "Сообщение входа в систему" + +msgid "Maximum size of each rotation log-file." +msgstr "Максимальный размер каждой перезаписи файла журнала." + +msgid "Message displayed in the client when a password is needed." +msgstr "Отображаемое сообщение клиенту, когда требуется пароль." + +msgid "NOT installed" +msgstr "Не установлена" + +msgid "None" +msgstr "Нет" + +msgid "Number of backup files of log to create." +msgstr "Количество резервных копий журнала." + +msgid "OPTIONAL: See python's ssl module for available ciphers" +msgstr "" +"Необязательно: используйте SSL Python плагин для доступных протоколов " +"шифрования." + +msgid "One or more missing/invalid fields on tab" +msgstr "Одно или несколько отсутствующих/недопустимых полей на странице." + +msgid "Owner allow write, authenticated users allow read" +msgstr "" +"Владелец разрешает запись, прошедшие проверку пользователи разрешают чтение" + +msgid "Path/File required !" +msgstr "Путь/файл требуется!" + +msgid "" +"Place here the 'user:password' pairs for your users which should have access " +"to Radicale." +msgstr "" +"Разместите здесь пары 'логин:пароль' для ваших пользователей, которые должны " +"иметь доступ к Radicale." + +msgid "Please install current version !" +msgstr "Установите текущую версию!" + +msgid "Please press [Reload] button below to reread the file." +msgstr "Нажмите кнопку [Перезагрузить], чтобы перечитать файл." + +msgid "Please update to current version !" +msgstr "Обновите текущую версию!" + +msgid "Port numbers below 1024 (Privileged ports) are not supported" +msgstr "Номера портов менее 1024 (привилегированные порты) не поддерживаются." + +msgid "Private key file" +msgstr "Файл Личного Ключа" + +msgid "Radicale CalDAV/CardDAV Server" +msgstr "Radicale CalDAV/CardDAV сервер" + +msgid "Radicale uses '/etc/radicale/rights' as regexp-based file." +msgstr "" +"Radicale использует '/etc/radicale/rights' в качестве файла на основе " +"регулярного выражения (RegExp)." + +msgid "Radicale uses '/etc/radicale/users' as htpasswd file." +msgstr "Radicale использует '/etc/radicale/users' как htpasswd файл." + +msgid "Read only!" +msgstr "Только для чтения!" + +msgid "RegExp file" +msgstr "Файл регулярного выражения (RegExp)" + +msgid "Reload" +msgstr "Перезагрузить" + +msgid "Response Encoding" +msgstr "Кодировка ответов" + +msgid "Rights" +msgstr "Права" + +msgid "Rights are based on a regexp-based file" +msgstr "Права основаны на файле, основанном на регулярных выражениях" + +msgid "Rights backend" +msgstr "Права доступа" + +msgid "SHA-1" +msgstr "SHA-1" + +msgid "SSL Protocol" +msgstr "SSL протокол" + +msgid "Save" +msgstr "Сохранить" + +msgid "Section names are only used for naming the rule." +msgstr "Имена строк используются только для переименования правила." + +msgid "Server" +msgstr "Сервер" + +msgid "Setting this parameter to '0' will disable rotation of log-file." +msgstr "" +"Установка этого параметра в значение '0' приведет к отключению перезаписи " +"файла журнала." + +msgid "Software package '%s' is not installed." +msgstr "Программный пакет '%s' не установлен." + +msgid "Software package '%s' is outdated." +msgstr "Программный пакет '%s' устарел." + +msgid "Software update required" +msgstr "Требуется обновление программного обеспечения" + +msgid "Start" +msgstr "Старт" + +msgid "Start / Stop" +msgstr "Старт / Стоп" + +msgid "Start/Stop Radicale server" +msgstr "Запуск и остановка сервера Radicale." + +msgid "Storage" +msgstr "Хранилище" + +msgid "Storage Encoding" +msgstr "Кодировка хранилища" + +msgid "Storage backend" +msgstr "Сервер хранения" + +msgid "Syslog Log level" +msgstr "Уровень системного журнала" + +msgid "System" +msgstr "Система" + +msgid "" +"The Radicale Project is a complete CalDAV (calendar) and CardDAV (contact) " +"server solution." +msgstr "" +"Radicale - это сервер, объединяющий в себе CalDAV (календарь) и CardDAV " +"(контакты)." + +msgid "" +"They can be viewed and edited by calendar and contact clients on mobile " +"phones or computers." +msgstr "" +"Их можно просматривать и редактировать по календарю и связываться с " +"клиентами на мобильных телефонах или компьютерах." + +msgid "To edit the file follow this link!" +msgstr "Чтобы отредактировать файл, следуйте по этой ссылке!" + +msgid "To view latest log file follow this link!" +msgstr "Для просмотра последних записей в журнале, следуйте по этой ссылке!" + +msgid "Value is not a number" +msgstr "Значение не является числом" + +msgid "Value is not an Integer >= 0 !" +msgstr "Значение не является целым числом > = 0!" + +msgid "Value not between 0 and 300" +msgstr "Значение не между 0 и 300" + +msgid "Value required ! Integer >= 0 !" +msgstr "Требуемое значение ! Целое число >= 0 !" + +msgid "Version" +msgstr "Версия" + +msgid "Version Information" +msgstr "Информация о версии" + +msgid "" +"WARNING: Only 'File-system' is documented and tested by Radicale development" +msgstr "" +"ВНИМАНИЕ: только 'Файловая система' документирована и протестирована " +"сообществом Radicale." + +msgid "Warning" +msgstr "Внимание" + +msgid "" +"You can also get groups from the user regex in the collection with {0}, {1}, " +"etc." +msgstr "" +"Можно также получить группы из пользовательского regex вместе с {0}, {1} и т." +"д." + +msgid "" +"You can use Python's ConfigParser interpolation values %(login)s and " +"%(path)s." +msgstr "" +"Вы можете использовать ConfigParser интерполяции Python значений %(логин)ы и " +"%(путь)и." + +msgid "crypt" +msgstr "crypt" + +msgid "custom" +msgstr "пользовательский" + +msgid "htpasswd file" +msgstr "htpasswd файл" + +msgid "installed" +msgstr "установлено" + +msgid "no valid path given!" +msgstr "не указан допустимый путь!" + +msgid "or higher" +msgstr "или выше" + +msgid "plain" +msgstr "простой" + +msgid "required" +msgstr "требовать" + +msgid "salted SHA-1" +msgstr "salted SHA-1" diff --git a/applications/luci-app-samba/po/ru/samba.po b/applications/luci-app-samba/po/ru/samba.po index 534770f5f..9e6d1341d 100644 --- a/applications/luci-app-samba/po/ru/samba.po +++ b/applications/luci-app-samba/po/ru/samba.po @@ -1,32 +1,31 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: samba\n" -"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-05-19 19:36+0200\n" -"PO-Revision-Date: 2012-08-15 13:48+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"PO-Revision-Date: 2018-01-05 19:07+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.4\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "Allow guests" msgstr "Разрешить гостевой вход" msgid "Allow system users to reach their home directories via network shares" msgstr "" -"Разрешить пользователям получать доступ к их домашним директориям через сеть" +"Разрешить пользователям получать доступ к их домашним папкам, через " +"локальную сеть." msgid "Allowed users" -msgstr "Разрешённые пользователи" +msgstr "Разрешенные пользователи" msgid "Browseable" -msgstr "" +msgstr "Виден в списке доступных ресурсов" msgid "Create mask" msgstr "Создать маску" @@ -35,22 +34,22 @@ msgid "Description" msgstr "Описание" msgid "Directory mask" -msgstr "Маска директории" +msgstr "Маска папок" msgid "Edit Template" -msgstr "Редактировать шаблон" +msgstr "Настройка config файла" msgid "Edit the template that is used for generating the samba configuration." -msgstr "Редактировать шаблон, используемый для генерации конфигурации samba." +msgstr "Настройка config файла samba." msgid "General Settings" -msgstr "Общие настройки" +msgstr "Основные настройки" msgid "Hostname" msgstr "Имя хоста" msgid "Mask for new directories" -msgstr "Маска для новых директорий" +msgstr "Маска для новых папок" msgid "Mask for new files" msgstr "Маска для новых файлов" @@ -68,15 +67,17 @@ msgid "" "Please add directories to share. Each directory refers to a folder on a " "mounted device." msgstr "" +"Добавьте папки для совместного доступа. Каждая папка - соответствует разделу " +"на подключенном устройстве." msgid "Read-only" msgstr "Только для чтения" msgid "Share home-directories" -msgstr "Совместно использовать домашние директории" +msgstr "Совместно использовать домашние папки" msgid "Shared Directories" -msgstr "Совместно используемые директории" +msgstr "Совместно используемые папки" msgid "" "This is the content of the file '/etc/samba/smb.conf.template' from which " @@ -85,9 +86,9 @@ msgid "" "Settings' tab." msgstr "" "Это содержимое файла '/etc/samba/smb.conf.template', из которого " -"генерируется конфигурация samba. Значения, заключённые в символы \"|\", не " -"должны быть изменены. Они будут автоматически заменены на значения из " -"вкладки 'Общие настройки'." +"генерируется config файл - samba. Значения, заключенные в символы ('|'), не " +"должны быть изменены. Они будут автоматически заменены на значения со " +"страницы 'Основные настройки'." msgid "Workgroup" msgstr "Рабочая группа" diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua index 22f3106d0..19f5ddc31 100644 --- a/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua +++ b/applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua @@ -34,8 +34,6 @@ if stype == "ss_server" then o.datatype = "ipaddr" o.placeholder = "0.0.0.0" ss.values_ipaddr(o) - o = s:taboption("general", Value, "manager_address", translate("Manager address")) - o.datatype = "hostport" else ss.options_client(s, "general") if stype == "ss_tunnel" then diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua index 7ba6b40c5..fc51dcd46 100644 --- a/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua +++ b/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua @@ -42,7 +42,8 @@ function values_serverlist(o) local server = sdata["server"] local server_port = sdata["server_port"] if server and server_port then - local desc = "%s - %s:%s" % {sname, sdata["server"], sdata["server_port"]} + local disabled = ucival_to_bool(sdata[".disabled"]) and " - disabled" or "" + local desc = "%s - %s:%s%s" % {sname, server, server_port, disabled} o:value(sname, desc) end end) @@ -121,6 +122,7 @@ function options_common(s, tab) s:taboption(tab, Flag, "verbose", translate("Verbose")) s:taboption(tab, Flag, "ipv6_first", translate("IPv6 First"), translate("Prefer IPv6 addresses when resolving names")) s:taboption(tab, Flag, "fast_open", translate("Enable TCP Fast Open")) + s:taboption(tab, Flag, "no_delay", translate("Enable TCP_NODELAY")) s:taboption(tab, Flag, "reuse_port", translate("Enable SO_REUSEPORT")) end @@ -137,7 +139,6 @@ function cfgvalue_overview(sdata) cfgvalue_overview_(sdata, lines, names_options_common) cfgvalue_overview_(sdata, lines, { "bind_address", - "manager_address", }) elseif stype == "ss_local" or stype == "ss_redir" or stype == "ss_tunnel" then cfgvalue_overview_(sdata, lines, names_options_client) diff --git a/applications/luci-app-shairplay/po/ru/shairplay.po b/applications/luci-app-shairplay/po/ru/shairplay.po new file mode 100644 index 000000000..da06322e8 --- /dev/null +++ b/applications/luci-app-shairplay/po/ru/shairplay.po @@ -0,0 +1,54 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: shairplay\n" +"POT-Creation-Date: 2017-12-06 11:15+0300\n" +"PO-Revision-Date: 2018-01-05 22:43+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "AO Device ID" +msgstr "AO ID устройства" + +msgid "AO Device Name" +msgstr "AO имя устройства" + +msgid "AO Driver" +msgstr "AO драйвер" + +msgid "Airport Name" +msgstr "Имя Air-порта" + +msgid "Default" +msgstr "По умолчанию" + +msgid "Enabled" +msgstr "Включено" + +msgid "HW Address" +msgstr "HW адрес" + +msgid "Password" +msgstr "Пароль" + +msgid "Port" +msgstr "Порт" + +msgid "Respawn" +msgstr "Перерождение" + +msgid "Shairplay" +msgstr "Shairplay" + +msgid "" +"Shairplay is a simple AirPlay server implementation, here you can configure " +"the settings." +msgstr "" +"Shairplay является простой реализацией сервера AirPlay, здесь вы можете его " +"настроить." diff --git a/applications/luci-app-simple-adblock/po/ru/simple-adblock.po b/applications/luci-app-simple-adblock/po/ru/simple-adblock.po new file mode 100644 index 000000000..51e56b3d1 --- /dev/null +++ b/applications/luci-app-simple-adblock/po/ru/simple-adblock.po @@ -0,0 +1,94 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: simple-adblock\n" +"POT-Creation-Date: 2017-12-07 14:00+0300\n" +"PO-Revision-Date: 2018-01-06 13:04+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "Blacklisted Domain URLs" +msgstr "Черный список доменных URL адресов" + +msgid "Blacklisted Domains" +msgstr "Черный список доменов" + +msgid "Blacklisted Hosts URLs" +msgstr "Черный список хостов URL адресов" + +msgid "Controls system log and console output verbosity" +msgstr "Проверка системного журнала и уровень детализации вывода консоли." + +msgid "Enable/start service" +msgstr "Включение / Запуск утилиты" + +msgid "Force Router DNS" +msgstr "Назначить DNS роутера" + +msgid "Force Router DNS server to all local devices" +msgstr "Назначить DNS роутера всем локальным устройствам" + +msgid "Forces Router DNS use on local devices, also known as DNS Hijacking" +msgstr "" +"Назначить DNS роутера всем локальным устройствам, методом DNS Hijacking." + +msgid "Individual domains to be blacklisted" +msgstr "Домены добавленные пользователем в Черный список." + +msgid "Individual domains to be whitelisted" +msgstr "Домены добавленные пользователем в Белый список." + +msgid "LED to indicate status" +msgstr "LED индикация состояния" + +msgid "Let local devices use their own DNS servers if set" +msgstr "" +"Разрешить локальным устройствам использовать собственные DNS, если они " +"прописаны в настройках сети устройства" + +msgid "Output Verbosity Setting" +msgstr "Настройка детализации вывода" + +msgid "Pick the LED not already used in" +msgstr "Выберите LED не используется в " + +msgid "Simple AdBlock" +msgstr "Simple AdBlock" + +msgid "Simple AdBlock Settings" +msgstr "Simple AdBlock настройки" + +msgid "Some output" +msgstr "Неполный вывод" + +msgid "Suppress output" +msgstr "Подавить вывод" + +msgid "System LED Configuration" +msgstr "Настройка LED индикации системы." + +msgid "URLs to lists of domains to be blacklisted" +msgstr "URL адреса доменов для Черного списка." + +msgid "URLs to lists of domains to be whitelisted" +msgstr "URL адреса доменов для Белого списка." + +msgid "URLs to lists of hosts to be blacklisted" +msgstr "URL адреса хостов для Черного списка." + +msgid "Verbose output" +msgstr "Подробный вывод" + +msgid "Whitelisted Domain URLs" +msgstr "URLs доменов Белого списка" + +msgid "Whitelisted Domains" +msgstr "Белый список доменов" + +msgid "none" +msgstr "Нет" diff --git a/applications/luci-app-splash/po/ru/splash.po b/applications/luci-app-splash/po/ru/splash.po index 3f470dba0..bfee7ef59 100644 --- a/applications/luci-app-splash/po/ru/splash.po +++ b/applications/luci-app-splash/po/ru/splash.po @@ -1,19 +1,17 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: splash\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-01-26 15:10+0200\n" -"PO-Revision-Date: 2013-11-13 18:52+0200\n" -"Last-Translator: Роман <x.wserfer@gmail.com>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"POT-Creation-Date: 2013-11-13 18:52+0200\n" +"PO-Revision-Date: 2018-01-08 19:21+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.6\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "Accept" msgstr "Принять" @@ -35,17 +33,23 @@ msgid "" "without notice for any reason, for certain devices, and/or may be blocked " "for certain users." msgstr "" +"Доступ к сети не гарантируется. Он может быть прерван в любое время без " +"предварительного уведомления по любой причине, для определенных устройств, и/" +"или может быть заблокирован для определенных пользователей." msgid "Active Clients" msgstr "Активные клиенты" msgid "Allowed hosts/subnets" -msgstr "Разрешённые хосты/подсети" +msgstr "Разрешенные хосты/подсети" msgid "" "As an alternative to editing the complete splash text you can also just " "include some custom text in the default splash page by entering it here." msgstr "" +"В качестве альтернативы редактированию полного текста заставки, можно также " +"просто включить некоторый пользовательский текст на странице заставки по " +"умолчанию, введя его здесь." msgid "" "Bandwidth limit for clients is only activated when both up- and download " @@ -53,14 +57,14 @@ msgid "" "Whitelisted clients are not limited." msgstr "" "Ограничение полосы для клиентов активируется только при указанных лимитах " -"нисходящего и восходящего каналов. Значение 0 полностью отключает " -"ограничение. Клиенты из \"белого\" списка не имеют ограничений." +"нисходящего и восходящего каналов. Значение '0' полностью отключает " +"ограничение. Клиенты из Белого списка не имеют ограничений." msgid "" "Become an active member of this community and help by operating your own node" msgstr "" "Станьте активным участником данного сообщества и окажите содействие, " -"запустив свой узел сети" +"запустив свой узел сети." msgid "Blacklist" msgstr "Чёрный список" @@ -72,24 +76,29 @@ msgid "" "By accepting these rules you can use this network for %s hour(s). After this " "time you need to accept these rules again." msgstr "" +"Приняв эти правила, вы можете использовать эту сеть для %s час (ы). По " +"истечении этого времени вам необходимо снова принять эти правила." msgid "Clearance time" msgstr "Разрешённое время" msgid "Client-Splash" -msgstr "Client-Splash" +msgstr "Splash-Клиент" msgid "" "Client-Splash is a hotspot authentification system for wireless mesh " "networks." msgstr "" -"Client-Splash - это система аутентификации точек доступа для беспроводных " +"Splash-Клиент - это система аутентификации точек доступа для беспроводных " "ячеистых сетей." msgid "" "Clients are redirected to this page after they have accepted the splash. If " "this is left empty they are redirected to the page they had requested." msgstr "" +"Клиенты перенаправляются на эту страницу после того, как они вступили в " +"Splash. Если эта страница пуста, они перенаправляются на запрашиваемую " +"страницу." msgid "Clients download speed is limited to this value (kbyte/s)" msgstr "" @@ -99,7 +108,7 @@ msgid "" "Clients that have accepted the splash are allowed to use the network for " "that many hours." msgstr "" -"Клиенты, принявшие приглашение splash-экрана, могут использовать сеть данное " +"Клиенты, принявшие приглашение Splash-экрана, могут использовать сеть данное " "количество часов." msgid "Clients upload speed is limited to this value (kbyte/s)" @@ -116,6 +125,8 @@ msgid "" "Destination hosts and networks that are excluded from splashing, i.e. they " "are always allowed." msgstr "" +"Назначенные хосты и сети, которые исключены из Splash, т.е. они всегда " +"разрешены." msgid "Donate some money to help us keep this project alive." msgstr "Пожертвовать деньги на поддержку этого проекта." @@ -124,7 +135,7 @@ msgid "Download limit" msgstr "Лимит загрузки" msgid "Edit the complete splash text" -msgstr "" +msgstr "Изменение полного текста заставки" msgid "Fair Use Policy" msgstr "Политика добровольного использования" @@ -136,7 +147,7 @@ msgid "General" msgstr "Общие" msgid "Get in %s with the operator of this access point." -msgstr "" +msgstr "Получить в% s с оператором этой точки доступа." msgid "Hostname" msgstr "Имя хоста" @@ -154,7 +165,7 @@ msgid "If you use this network on a regular basis we ask for your support:" msgstr "Если вы используете эту сеть регулярно, мы просим вашей поддержки:" msgid "Include your own text in the default splash" -msgstr "" +msgstr "Включить собственный текст в заставку по умолчанию" msgid "Intercept client traffic on this Interface" msgstr "Перехватывать клиентский трафик на этом интерфейсе" @@ -173,7 +184,7 @@ msgstr "" "участии в этом проекте." msgid "Legally Prohibited Activities" -msgstr "" +msgstr "Запрещенные законом виды деятельности" msgid "Legally Prohibited content" msgstr "Юридически запрещенный контент" @@ -188,8 +199,8 @@ msgid "" "MAC addresses of whitelisted clients. These do not need to accept the splash " "and are not bandwidth limited." msgstr "" -"MAC-адреса клиентов из \"белого\" списка. Данные клиенты не имеют " -"ограничений пропускной способности." +"MAC-адреса клиентов из Белого списка. Данных клиентов не нужно принимать в " +"Splash и они не имеют ограничений по пропускной способности." msgid "Netmask" msgstr "Маска сети" @@ -204,14 +215,14 @@ msgid "" "Please note that we are not an internet service provider but an experimental " "community network." msgstr "" -"Пожалуйста, обратите внимание, что мы не интернет-провайдер, а " -"экспериментальная сеть сообщества." +"Обратите внимание, что мы не интернет-провайдер, а сообщество " +"экспериментальной сети ." msgid "Policy" msgstr "Политика" msgid "Redirect target" -msgstr "" +msgstr "Назначение перенаправления" msgid "Safety" msgstr "Безопасный" @@ -223,44 +234,59 @@ msgid "Splash rules are integrated in this firewall zone" msgstr "Правила Splash интегрированы в зону этого межсетевого экрана" msgid "Splashtext" -msgstr "Текст splash-экрана" +msgstr "Текст Splash-экрана" msgid "" "The network, like the Internet, is unencrypted and open. Each participant is " "responsible for the safety of their own connections and devices." msgstr "" +"Сеть, как и Интернет, не зашифрована и открыта. Каждый участник несет " +"ответственность за безопасность своих собственных подключений и устройств." msgid "" "The open and free wireless network of volunteers (\"Operators\") provides " "the necessary equipment and Internet connections (\"Infrastructure\") at " "their own expense." msgstr "" +"Открытая и бесплатная беспроводная сеть волонтеров 'операторы' обеспечивает " +"необходимое оборудование и подключение к Интернету 'инфраструктура' за свой " +"счет." msgid "" "The operator claims no liability for loss of data, unauthorized access/" "damage to devices, or financial losses that participants may suffer from the " "use of the network." msgstr "" +"Оператор не несет ответственности за потерю данных, несанкционированного " +"доступа/повреждения устройств или финансовых потерь, которые участники могут " +"пострадать от использования сети." msgid "" "The participant agrees to not perform any action and refrain from acts which " "may violate the law or infringe upon the rights of third parties." msgstr "" +"Участник соглашается не предпринимать никаких действий и воздерживаться от " +"действий, которые могут нарушать закон или нарушать права третьих лиц." msgid "" "The participant agrees to not transfer content over the network which " "violates the law." -msgstr "" +msgstr "Участник соглашается не передавать контент по сети, нарушающей закон." msgid "" "The participant agrees to not use the network in any way which will harm the " "infrastructure, the network itself, its operators or other participants." msgstr "" +"Участник соглашается не использовать сеть любым способом, который нанесет " +"ущерб инфраструктуре, самой сети, ее операторам или другим участникам." msgid "" "These Terms of Use govern the use of the network by its participants' " "computer, PDA, or similar device (\"Devices\") within the network." msgstr "" +"Настоящие условия использования регулируют использование сети компьютером " +"участников, КПК, смартфоном или аналогичным устройством 'устройствами' в " +"сети." msgid "Time remaining" msgstr "Оставшееся время" @@ -276,29 +302,28 @@ msgid "Traffic in/out" msgstr "Трафик вх/исх" msgid "Upload limit" -msgstr "Лимит отдачи" +msgstr "Предел загрузки" msgid "Usage Agreement" -msgstr "" +msgstr "Соглашение об использовании" msgid "Welcome" msgstr "Добро пожаловать" msgid "Whitelist" -msgstr "\"Белый\" список" +msgstr "Белый список" msgid "You are now connected to the free wireless mesh network" -msgstr "Теперь вы подключены к бесплатной беспроводной ячеистой сети" +msgstr "Теперь вы подключены к свободной беспроводной сети Mesh." msgid "" "You can enter your own text that is displayed to clients here.<br />It is " "possible to use the following markers: ###COMMUNITY###, ###COMMUNITY_URL###, " "###CONTACTURL###, ###LEASETIME###, ###LIMIT### and ###ACCEPT###." msgstr "" -"Здесь вы можете указать свой текст, который будет отображаться клиентам.<br /" -">Возможно использовать следующие маркеры: ###COMMUNITY###, " -"###COMMUNITY_URL###, ###CONTACTURL###, ###LEASETIME###, ###LIMIT### and " -"###ACCEPT###." +"Здесь можно ввести собственный текст, отображаемый для клиентов.<br />Можно " +"использовать следующие маркеры: ###COMMUNITY###, ###COMMUNITY_URL###, " +"###CONTACTURL###, ###LEASETIME###, ###LIMIT### и ###ACCEPT###." msgid "" "Your access to this network has been blocked, most likely because you did " @@ -311,7 +336,7 @@ msgid "Your bandwidth is limited to" msgstr "Ваша полоса пропускания ограничена значением" msgid "blacklisted" -msgstr "в \"чёрном\" списке" +msgstr "в Черном списке" msgid "expired" msgstr "истёк" @@ -323,7 +348,7 @@ msgid "perform any kind of illegal activities" msgstr "выполнять любые незаконные действия" msgid "splashed" -msgstr "уже в splash" +msgstr "вы в Splash" msgid "temporarily blocked" msgstr "временно заблокирован" @@ -338,25 +363,4 @@ msgid "waste bandwidth with unneccesary downloads or streams" msgstr "тратить пропускную способность на ненужные загрузки или потоки" msgid "whitelisted" -msgstr "в \"белом\" списке" - -#~ msgid "" -#~ "Hosts and Networks that are listed here are excluded from splashing, i.e. " -#~ "they are always allowed." -#~ msgstr "" -#~ "Перечисленные хосты и сети не получают приглашения splash-экрана, т.е. они " -#~ "всегда разрешены." - -#~ msgid "By accepting these rules you can use this network for" -#~ msgstr "Принимая эти правила, вы можете использовать данную сеть для" - -#~ msgid "Edit Splash text" -#~ msgstr "Редактировать текст splash-экрана" - -#~ msgid "hour(s). After this time you need to accept these rules again." -#~ msgstr "" -#~ "час(ы). После указанного времени Вы должны вновь принять эти правила." - -# Здесь наверняка нужно склонить в другом падеже, надо смотреть по контексту -#~ msgid "the owner of this access point." -#~ msgstr "с владельцем этой точки доступа." +msgstr "в Белом списке" diff --git a/applications/luci-app-statistics/po/ru/rrdtool.po b/applications/luci-app-statistics/po/ru/rrdtool.po index a63a85080..098ed4ced 100644 --- a/applications/luci-app-statistics/po/ru/rrdtool.po +++ b/applications/luci-app-statistics/po/ru/rrdtool.po @@ -1,18 +1,18 @@ +# rrdtool.pot +# generated from ./applications/luci-statistics/luasrc/i18n/rrdtool.en.lua msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-05-19 19:36+0200\n" -"PO-Revision-Date: 2012-03-26 15:36+0200\n" -"Last-Translator: Anonymous Pootle User\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"Language: ru\n" -"MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: rrdtool\n" +"POT-Creation-Date: 2017-10-17 22:00+0300\n" +"PO-Revision-Date: 2018-01-06 01:05+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.4\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" #. %H: Wireless - Signal Noise Ratio #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:1 @@ -187,7 +187,7 @@ msgstr "%di" #. %H: Process %pi - used cpu time #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:35 msgid "stat_dg_title_processes__ps_cputime" -msgstr "%H: Процесс %pi - время ЦП" +msgstr "%H: Процесс %pi - время CPU" #. Jiffies #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:36 @@ -197,12 +197,12 @@ msgstr "Jiffies" #. system #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:37 msgid "stat_ds_ps_cputime__syst" -msgstr "система" +msgstr "Система" #. user #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:38 msgid "stat_ds_ps_cputime__user" -msgstr "пользователь" +msgstr "Пользователь" #. %H: Process %pi - threads and processes #: applications/luci-statistics/luasrc/i18n/rrdtool.en.lua:39 diff --git a/applications/luci-app-statistics/po/ru/statistics.po b/applications/luci-app-statistics/po/ru/statistics.po index 9d0ff9fdf..702dbe7f8 100644 --- a/applications/luci-app-statistics/po/ru/statistics.po +++ b/applications/luci-app-statistics/po/ru/statistics.po @@ -1,25 +1,23 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: statistics\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-05-19 19:36+0200\n" -"PO-Revision-Date: 2013-12-05 17:11+0200\n" -"Last-Translator: Dmitri <4glitch@gmail.com>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"POT-Creation-Date: 2017-10-17 22:00+0300\n" +"PO-Revision-Date: 2018-01-06 13:32+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.6\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "APC UPS" -msgstr "" +msgstr "APC ИБП" msgid "APCUPS Plugin Configuration" -msgstr "" +msgstr "Настройка плагина APCUPS" msgid "Action (target)" msgstr "Действие (цель)" @@ -37,34 +35,34 @@ msgid "Add notification command" msgstr "Добавить команду уведомления" msgid "Aggregate number of connected users" -msgstr "" +msgstr "Общее число подключенных пользователей" msgid "Base Directory" -msgstr "Базовая директория" +msgstr "Основная папка приложения" msgid "Basic monitoring" msgstr "Базовая статистика" msgid "CPU Context Switches Plugin Configuration" -msgstr "" +msgstr "Настройка плагина контекстных переключателей CPU" msgid "CPU Frequency" -msgstr "" +msgstr "Частота CPU" msgid "CPU Frequency Plugin Configuration" -msgstr "" +msgstr "Настройка плагина частоты CPU" msgid "CPU Plugin Configuration" -msgstr "Конфигурация модуля CPU" +msgstr "Настройка плагина 'CPU'" msgid "CSV Output" -msgstr "Вывод в CSV" +msgstr "CSV вывод" msgid "CSV Plugin Configuration" -msgstr "Конфигурация модуля CSV" +msgstr "Настройка плагина CSV" msgid "Cache collected data for" -msgstr "Кэшировать собранную статистику в течение" +msgstr "Кэшировать собранную статистику в течении" msgid "Cache flush interval" msgstr "Интервал сброса кэша" @@ -89,8 +87,8 @@ msgid "" "different plugins. On this page you can change general settings for the " "collectd daemon." msgstr "" -"Collectd - это сервис для сбора данных с разных модулей. На этой странице вы " -"можете изменить настройки Сollectd." +"Collectd - это сервис для сбора данных с разных плагинов. На этой странице " +"вы можете изменить настройки Сollectd." msgid "Conntrack" msgstr "Отслеживание подключения (Conntrack)" @@ -99,16 +97,16 @@ msgid "Conntrack Plugin Configuration" msgstr "Настройка плагина Conntrack" msgid "Context Switches" -msgstr "" +msgstr "Переключатели контекста" msgid "DF Plugin Configuration" -msgstr "Конфигурация модуля DF" +msgstr "Настройка плагина DF" msgid "DNS" msgstr "DNS" msgid "DNS Plugin Configuration" -msgstr "Конфигурация модуля DNS" +msgstr "Настройка плагина DNS" msgid "Data collection interval" msgstr "Интервал сбора данных" @@ -120,56 +118,55 @@ msgid "Destination ip range" msgstr "Диапазон IP-адресов назначения" msgid "Directory for collectd plugins" -msgstr "Директория с модулями collectd" +msgstr "Папка с плагинами collectd" msgid "Directory for sub-configurations" -msgstr "Директория конфигураций" +msgstr "Папка с config файлом" msgid "Disk Plugin Configuration" -msgstr "Конфигурация модуля Disk" +msgstr "Настройка плагина Disk" msgid "Disk Space Usage" -msgstr "Использование диска" +msgstr "Использовано места на диске" msgid "Disk Usage" msgstr "Использование диска" msgid "Display Host »" -msgstr "Показать узел »" +msgstr "Показать хост »" msgid "Display timespan »" msgstr "Показать за промежуток »" msgid "E-Mail Plugin Configuration" -msgstr "Конфигурация модуля E-Mail" +msgstr "Настройка плагина E-Mail" msgid "Email" msgstr "E-mail" msgid "Empty value = monitor all" -msgstr "" +msgstr "Если пусто = monitor all" msgid "Enable this plugin" -msgstr "Включить этот модуль" +msgstr "Включить этот плагин" msgid "Entropy" -msgstr "" +msgstr "Entropy" msgid "Entropy Plugin Configuration" -msgstr "" +msgstr "Настройка плагина Entropy" msgid "Exec" msgstr "Exec" msgid "Exec Plugin Configuration" -msgstr "Конфигурация модуля Exec" +msgstr "Настройка плагина Exec" -#, fuzzy msgid "Filter class monitoring" -msgstr "Мониторинг классов фильтров" +msgstr "Мониторинг класса фильтров" msgid "Firewall" -msgstr "Firewall" +msgstr "Фаервол" msgid "Flush cache after" msgstr "Сбросить кэш после" @@ -178,13 +175,13 @@ msgid "Forwarding between listen and server addresses" msgstr "Перенаправление между локальным адресом и адресом сервера" msgid "Gather compression statistics" -msgstr "" +msgstr "Сбор статистики сжатия" msgid "General plugins" -msgstr "" +msgstr "Основные плагины" msgid "Generate a separate graph for each logged user" -msgstr "" +msgstr "Создать отдельный график для каждого пользователя" msgid "Graphs" msgstr "Графики" @@ -196,27 +193,30 @@ msgid "" "Here you can define external commands which will be started by collectd in " "order to read certain values. The values will be read from stdout." msgstr "" -"Здесь вы можете определить внешние команды, которые будут выполнены для " -"чтения определённых значений. Значения будут считаны со стандартного вывода." +"На странице вы можете определить внешние команды, которые будут выполнены " +"для чтения определенных значений. Значения будут считаны со стандартного " +"вывода." msgid "" "Here you can define external commands which will be started by collectd when " "certain threshold values have been reached. The values leading to invokation " "will be feeded to the the called programs stdin." msgstr "" -"Здесь вы можете определить внешние команды, которые будут выполнены, когда " -"значения достигнут определённого порога. Значения будут переданы на " +"На странице вы можете определить внешние команды, которые будут выполнены, " +"когда значения достигнут определенного порога. Значения будут переданы на " "стандартный ввод вызванным программам." msgid "" "Here you can define various criteria by which the monitored iptables rules " "are selected." msgstr "" -"Здесь вы можете указать различные критерии, по которым будут выбраны правила " -"для сбора статистики." +"На странице вы можете указать различные критерии, по которым будут выбраны " +"правила для сбора статистики." msgid "Hold Ctrl to select multiple items or to deselect entries." msgstr "" +"Удерживая нажатой клавишу Ctrl, выберите несколько элементов или отмените " +"выбор записей." msgid "Host" msgstr "Хост" @@ -228,16 +228,16 @@ msgid "IP or hostname where to get the txtinfo output from" msgstr "IP-адрес или имя хоста, с которых получать текстовый вывод" msgid "IRQ Plugin Configuration" -msgstr "Конфигурация модуля IRQ" +msgstr "Настройка плагина IRQ" msgid "Ignore source addresses" -msgstr "Игнорировать адреса-источники" +msgstr "Игнорировать исходящие адреса" msgid "Incoming interface" msgstr "Входящий интерфейс" msgid "Interface Plugin Configuration" -msgstr "Конфигурация модуля Interface" +msgstr "Настройка плагина 'Интерфейсы'" msgid "Interfaces" msgstr "Интерфейсы" @@ -249,7 +249,7 @@ msgid "Interval for pings" msgstr "Интервал для ping-запросов" msgid "Iptables Plugin Configuration" -msgstr "Конфигурация модуля Iptables" +msgstr "Настройка плагина Iptables" msgid "Leave unselected to automatically determine interfaces to monitor." msgstr "" @@ -257,30 +257,32 @@ msgstr "" "мониторинга." msgid "Listen host" -msgstr "Хост" +msgstr "Слушать хост" msgid "Listen port" -msgstr "Порт" +msgstr "Слушать порт" msgid "Listener interfaces" -msgstr "Использовать интерфейсы" +msgstr "Прослушивать интерфейсы" msgid "Load Plugin Configuration" -msgstr "Конфигурация модуля Load" +msgstr "Настройка плагина 'Загрузка системы'" msgid "" "Max values for a period can be used instead of averages when not using 'only " "average RRAs'" msgstr "" +"Максимальные значения для периода, могут использоваться вместо средних " +"значений, когда не используется 'only average RRAs'" msgid "Maximum allowed connections" -msgstr "Максимальное число соединений" +msgstr "Максимум разрешенных соединений" msgid "Memory" msgstr "Память" msgid "Memory Plugin Configuration" -msgstr "Конфигурация модуля Memory" +msgstr "Настройка плагина 'Память'" msgid "Monitor all except specified" msgstr "Собирать статистику со всех, кроме указанных" @@ -289,61 +291,61 @@ msgid "Monitor all local listen ports" msgstr "Собирать статистику со всех портов, ожидающих соединения" msgid "Monitor all sensors" -msgstr "" +msgstr "Мониторить все сенсоры" msgid "Monitor device(s) / thermal zone(s)" -msgstr "" +msgstr "Мониторить устройство(а) / зону(ы) нагрева" msgid "Monitor devices" -msgstr "Собирать статистику с устройств" +msgstr "Мониторить устройства" msgid "Monitor disks and partitions" -msgstr "Собирать статистику с дисков и разделов" +msgstr "Мониторить диски и разделы" msgid "Monitor filesystem types" -msgstr "Собирать статистику с файловых систем" +msgstr "Монитоить типы файловых систем" msgid "Monitor host" -msgstr "" +msgstr "Мониторить хост" msgid "Monitor hosts" -msgstr "Собирать статистику с хостов" +msgstr "Мониторить хосты" msgid "Monitor interfaces" -msgstr "Собирать статистику с интерфейсов" +msgstr "Мониторить интерфейсы" msgid "Monitor interrupts" -msgstr "Собирать статистику по прерываниям" +msgstr "Мониторить прерывания" msgid "Monitor local ports" -msgstr "Собирать статистику с локальных портов" +msgstr "Мониторить локальные порты" msgid "Monitor mount points" -msgstr "Собирать статистику с точек монтирования" +msgstr "Мониторить точки монтирования" msgid "Monitor processes" -msgstr "Собирать статистику с процессов" +msgstr "Мониторить процессы" msgid "Monitor remote ports" -msgstr "Собирать статистику с удалённых портов" +msgstr "Мониторить удаленные порты" msgid "Name of the rule" -msgstr "Название правила" +msgstr "Имя правила" msgid "Netlink" msgstr "Netlink" msgid "Netlink Plugin Configuration" -msgstr "Конфигурация модуля Netlink" +msgstr "Настройка плагина 'Netlink'" msgid "Network" msgstr "Network" msgid "Network Plugin Configuration" -msgstr "Конфигурация модуля Network" +msgstr "Настройка плагина 'Сеть'" msgid "Network plugins" -msgstr "Сетевые модули" +msgstr "Сетевые плагины" msgid "Network protocol" msgstr "Сетевой протокол" @@ -352,6 +354,8 @@ msgid "" "Note: as pages are rendered by user 'nobody', the *.rrd files, the storage " "directory and all its parent directories need to be world readable." msgstr "" +"Внимание: все операции осуществляются под пользователем 'nobody', " +"соответственно все файлы *.rrd и папки будут доступны любому пользователю." msgid "Number of threads for data collection" msgstr "Количество потоков сбора данных" @@ -366,69 +370,67 @@ msgid "Only create average RRAs" msgstr "Создавать только средние RRA" msgid "OpenVPN" -msgstr "" +msgstr "OpenVPN" msgid "OpenVPN Plugin Configuration" -msgstr "" +msgstr "Настройка плагина OpenVPN" msgid "OpenVPN status files" -msgstr "" +msgstr "Состояние файлов OpenVPN" msgid "Options" -msgstr "Опции" +msgstr "Настройки" msgid "Outgoing interface" msgstr "Исходящий интерфейс" msgid "Output plugins" -msgstr "Модули вывода" +msgstr "Плагины вывода" msgid "Ping" msgstr "Ping" msgid "Ping Plugin Configuration" -msgstr "Конфигурация модуля Ping" +msgstr "Настройка плагина Ping" msgid "Port" msgstr "Порт" msgid "Port for apcupsd communication" -msgstr "" +msgstr "Порт для связи apcupsd" msgid "Processes" msgstr "Процессы" msgid "Processes Plugin Configuration" -msgstr "Конфигурация модуля Processes" +msgstr "Настройка плагина Processes" msgid "Processes to monitor separated by space" msgstr "Процессы для мониторинга (разделённые пробелом)" msgid "Processor" -msgstr "Processor" +msgstr "CPU" msgid "Qdisc monitoring" msgstr "Мониторинг Qdisc" -#, fuzzy msgid "RRD XFiles Factor" -msgstr "Фактор XFiles RRD" +msgstr "RRD XFiles Factor" -#, fuzzy msgid "RRD heart beat interval" -msgstr "Интервал heartbeat RRD" +msgstr "RRD heartbeat interval" msgid "RRD step interval" -msgstr "Интервал шага RRD" +msgstr "RRD step interval" msgid "RRDTool" msgstr "RRDTool" msgid "RRDTool Plugin Configuration" -msgstr "Конфигурация модуля RRDTool" +msgstr "Настройка плагина 'RRDTool'" msgid "Rows per RRA" -msgstr "Количество строк в RRA" +msgstr "Rows per RRA" msgid "Script" msgstr "Скрипт" @@ -437,13 +439,13 @@ msgid "Seconds" msgstr "Секунды" msgid "Sensor list" -msgstr "" +msgstr "Список сенсоров" msgid "Sensors" -msgstr "" +msgstr "Сенсоры" msgid "Sensors Plugin Configuration" -msgstr "" +msgstr "Настройка плагина сенсоров" msgid "Server host" msgstr "Хост сервера" @@ -452,13 +454,13 @@ msgid "Server port" msgstr "Порт сервера" msgid "Setup" -msgstr "" +msgstr "Настройка" msgid "Shaping class monitoring" -msgstr "Мониторинг классов шейпинга" +msgstr "Мониторинг классов Shaping" msgid "Show max values instead of averages" -msgstr "" +msgstr "Показывают максимальные значения, а не средние" msgid "Socket file" msgstr "Файл сокета" @@ -482,19 +484,19 @@ msgid "Specifies what information to collect about the global topology." msgstr "Указывает, какую информацию собирать о глобальной топологии." msgid "Splash Leases" -msgstr "" +msgstr "Splash Leases" msgid "Splash Leases Plugin Configuration" -msgstr "" +msgstr "Настройка плагина Splash Leases" msgid "Statistics" msgstr "Статистика" msgid "Storage directory" -msgstr "Директория с данными" +msgstr "Папка с данными" msgid "Storage directory for the csv files" -msgstr "Директория для CSV-файлов" +msgstr "Папка для CSV-файлов" msgid "Store data values as rates instead of absolute values" msgstr "Хранить данные в виде коэффициентов вместо абсолютных значений" @@ -509,7 +511,7 @@ msgid "TCP Connections" msgstr "TCPConns" msgid "TCPConns Plugin Configuration" -msgstr "Конфигурация модуля TCPConns" +msgstr "Настройка плагина TCPConns" msgid "TTL for network packets" msgstr "TTL для сетевых пакетов" @@ -521,56 +523,58 @@ msgid "Table" msgstr "Таблица" msgid "The APCUPS plugin collects statistics about the APC UPS." -msgstr "" +msgstr "Плагин 'APCUPS' собирает статистику об ИБП APC." msgid "The NUT plugin reads information about Uninterruptible Power Supplies." msgstr "" +"Плагин 'NUT' считывает информацию об источниках бесперебойного питания." msgid "" "The OLSRd plugin reads information about meshed networks from the txtinfo " "plugin of OLSRd." msgstr "" -"Модуль OLSRd считывает информацию о узловых сетях с модуля txtinfo OLSRd." +"Плагин 'OLSRd' считывает информацию о узловых сетях с плагина txtinfo OLSRd." msgid "" "The OpenVPN plugin gathers information about the current vpn connection " "status." msgstr "" +"Плагин 'OpenVPN' собирает информацию о текущем состоянии VPN подключения." msgid "" "The conntrack plugin collects statistics about the number of tracked " "connections." msgstr "" -"Модуль Conntrack собирает статистику о количестве отслеживаемых соединений." +"Плагин 'Conntrack' собирает статистику о количестве отслеживаемых соединений." msgid "The cpu plugin collects basic statistics about the processor usage." -msgstr "Модуль CPU собирает статистику по использованию процессора." +msgstr "Плагин 'CPU' собирает статистику об использовании процессора." msgid "" "The csv plugin stores collected data in csv file format for further " "processing by external programs." msgstr "" -"Модуль CSV позволяет сохранить статистику в формате CSV для последующей " +"Плагин 'CSV' позволяет сохранить статистику в формате CSV для последующей " "обработки." msgid "" "The df plugin collects statistics about the disk space usage on different " "devices, mount points or filesystem types." msgstr "" -"Модуль DF собирает статистику о доступном пространстве на различных " +"Плагин 'DF' собирает статистику о доступном пространстве на различных " "устройствах, точках монтирования или файловых системах." msgid "" "The disk plugin collects detailled usage statistics for selected partitions " "or whole disks." msgstr "" -"Модуль Disk собирает подробную статистику для выбранных разделов или дисков." +"Плагин 'Disk' собирает подробную статистику по выбранным разделам или дискам." msgid "" "The dns plugin collects detailled statistics about dns related traffic on " "selected interfaces." msgstr "" -"Модуль DNS собирает подробную статистику о DNS-трафике на выбранных " +"Плагин 'DNS' собирает подробную статистику о DNS трафике на выбранных " "интерфейсах." msgid "" @@ -579,55 +583,58 @@ msgid "" "to be used in conjunction with Mail::SpamAssasin::Plugin::Collectd but can " "be used in other ways as well." msgstr "" -"Модуль E-mail создает Unix-сокет, который может быть использован для " -"передачи статистики эл. почты работающему сервису collectd. В основном, этот " -"модуль предназначен для использования вместе с Mail::SpamAssasin::Plugin::" +"Плагин 'E-mail' создает Unix-сокет, который может быть использован для " +"передачи статистики email работающему сервису collectd. В основном, этот " +"плагин предназначен для использования вместе с Mail::SpamAssasin::Plugin::" "Collectd." msgid "The entropy plugin collects statistics about the available entropy." -msgstr "" +msgstr "Плагин 'Entropy' собирает статистику о доступной энтропии." msgid "" "The exec plugin starts external commands to read values from or to notify " "external processes when certain threshold values have been reached." msgstr "" -"Модуль Exec выполняет внешнюю команду в случае, когда определённые значения " -"достигают заданного порога." +"Плагин 'Exec' выполняет внешнюю команду в случае, когда определенные " +"значения достигают заданного порога." msgid "" "The interface plugin collects traffic statistics on selected interfaces." -msgstr "Модуль Interface собирает статистику на выбранных сетевых интерфейсах." +msgstr "" +"Плагин 'Интерфейсы' собирает статистику на выбранных сетевых интерфейсах." msgid "" "The iptables plugin will monitor selected firewall rules and collect " "informations about processed bytes and packets per rule." msgstr "" -"Модуль Iptables собирает статистику с определённых правил межсетевого экрана." +"Плагин 'Iptables' собирает статистику с определенных правил межсетевого " +"экрана." msgid "" "The irq plugin will monitor the rate of issues per second for each selected " "interrupt. If no interrupt is selected then all interrupts are monitored." msgstr "" -"Модуль IRQ собирает статистику по выбранным прерываниям. Если ни одно " +"Плагин 'IRQ' собирает статистику по выбранным прерываниям. Если ни одно " "прерывание не выбрано, сбор статистики будет проводиться по всем прерываниям." msgid "" "The iwinfo plugin collects statistics about wireless signal strength, noise " "and quality." msgstr "" -"Модуль Iwinfo собирает статистику о беспроводном сигнале, шуме и качестве." +"Плагин 'Беспроводные соединения' собирает статистику о беспроводном сигнале, " +"шуме и качестве." msgid "The load plugin collects statistics about the general system load." -msgstr "Модуль Load собирает статистику о загрузке системы." +msgstr "Плагин 'Загрузка системы' собирает статистику о загрузке системы." msgid "The memory plugin collects statistics about the memory usage." -msgstr "Модуль Memory собирает статистику об использовании памяти." +msgstr "Плагин 'Память' собирает статистику об использовании памяти." msgid "" "The netlink plugin collects extended informations like qdisc-, class- and " "filter-statistics for selected interfaces." msgstr "" -"Модуль Netlink собирает расширенную статистику с выбранных интерфейсов." +"Плагин 'Netlink' собирает расширенную статистику с выбранных интерфейсов." msgid "" "The network plugin provides network based communication between different " @@ -635,23 +642,24 @@ msgid "" "client mode locally collected data is transferred to a collectd server " "instance, in server mode the local instance receives data from other hosts." msgstr "" -"Модуль Network предоставляет возможность сетевого обмена данными между " +"Плагин 'Сеть' предоставляет возможность сетевого обмена данными между " "разными сервисами collectd. Collectd может работать в режиме сервера или " "клиента. В режиме клиента, локальная статистика передается collectd-серверу, " -"в режиме сервера collectd собирает статистику с удалённых хостов." +"в режиме сервера collectd собирает статистику с удаленных хостов." msgid "" "The ping plugin will send icmp echo replies to selected hosts and measure " "the roundtrip time for each host." msgstr "" -"Модуль Ping посылает ICMP-запросы выбранным хостам и измеряет время отклика." +"Плагин 'Ping' посылает ICMP-запросы выбранным хостам и измеряет время " +"отклика." msgid "" "The processes plugin collects informations like cpu time, page faults and " "memory usage of selected processes." msgstr "" -"Модуль Processes собирает статистику для выбранных процессов об " -"использовании ЦП, ошибках обращения к страницам памяти, использовании памяти." +"Плагин 'Processes' собирает информацию, такую как время CPU, ошибки страницы " +"и использование памяти выбранных процессов." msgid "" "The rrdtool plugin stores the collected data in rrd database files, the " @@ -659,61 +667,70 @@ msgid "" "values will result in a very high memory consumption in the temporary " "directory. This can render the device unusable!</strong>" msgstr "" -"Модуль Rrdtool сохраняет статистику в формате rrd для последующего " +"Плагин 'Rrdtool' сохраняет статистику в формате rrd для последующего " "построения диаграмм.<br /><br /><strong>Внимание: установка неверных " -"параметров может привезти к высокому потреблению памяти во временной " -"директории. Это, в свою очередь, может привести к отказу устройства!</strong>" +"параметров может привезти к высокому потреблению памяти при считывании " +"данных из temp. Что в свою очередь, может привести к зависанию устройства!</" +"strong>" msgid "" "The sensors plugin uses the Linux Sensors framework to gather environmental " "statistics." msgstr "" +"Плагин 'Sensors' использует сенсоры Linux, чтобы собрать статистику " +"состояния устройства." msgid "" "The splash leases plugin uses libuci to collect statistics about splash " "leases." -msgstr "" +msgstr "Плагин 'Splash' использует libuci для сбора статистики работы splash." msgid "" "The statistics package uses <a href=\"https://collectd.org/\">Collectd</a> " "to gather data and <a href=\"http://oss.oetiker.ch/rrdtool/\">RRDtool</a> to " "render diagram images." msgstr "" +"Страница 'Статистика' использует <a href=\"https://collectd.org/\">Collectd</" +"a> для сбора данных и <a href=\"http://oss.oetiker.ch/rrdtool/\">RRDtool</a> " +"для от рисовки графиков." msgid "" "The tcpconns plugin collects informations about open tcp connections on " "selected ports." msgstr "" -"Модуль TCPConns собирает информацию об открытых TCP-соединениях на выбранных " -"портах." +"Плагин 'TCPConns' собирает информацию об открытых TCP соединениях на " +"выбранных портах." msgid "" "The thermal plugin will monitor temperature of the system. Data is typically " "read from /sys/class/thermal/*/temp ( '*' denotes the thermal device to be " "read, e.g. thermal_zone1 )" msgstr "" +"Плагин 'Thermal', будет контролировать температурные сенсоры. Данные будут " +"считываются из /sys/class/thermal/*/temp ( '*' обозначает сенсор " +"устройства , как-то thermal_zone1 )" msgid "" "The unixsock plugin creates a unix socket which can be used to read " "collected data from a running collectd instance." msgstr "" -"Модуль UnixSock создает Unix-сокет, который может быть использован для " +"Плагин 'UnixSock' создает Unix-сокет, который может быть использован для " "получения статистики от работающего сервиса collectd." msgid "The uptime plugin collects statistics about the uptime of the system." -msgstr "" +msgstr "Плагин 'Uptime' собирает статистику о времени работы системы." msgid "Thermal" -msgstr "" +msgstr "Thermal" msgid "Thermal Plugin Configuration" -msgstr "" +msgstr "Настройка плагина Thermal" msgid "This plugin collects statistics about the processor context switches." -msgstr "" +msgstr "Данный плагин собирает статистику о переключение контекста процессора." msgid "This plugin collects statistics about the processor frequency scaling." -msgstr "" +msgstr "Этот плагин собирает статистику о частоте процессора масштабирования." msgid "" "This section defines on which interfaces collectd will wait for incoming " @@ -735,26 +752,25 @@ msgid "UPS" msgstr "ИБП" msgid "UPS Plugin Configuration" -msgstr "Настройка плагина ИБП" +msgstr "Настройка плагина UPS" -#, fuzzy msgid "UPS name in NUT ups@host format" -msgstr "Имя ИБП в ups@host NUT-формате" +msgstr "Имя ИБП в формате NUT ups@host" msgid "UnixSock" msgstr "UnixSock" msgid "Unixsock Plugin Configuration" -msgstr "Конфигурация модуля UnixSock" +msgstr "Настройка плагина UnixSock" msgid "Uptime" -msgstr "" +msgstr "Uptime" msgid "Uptime Plugin Configuration" -msgstr "" +msgstr "Настройка плагина Uptime" msgid "Use improved naming schema" -msgstr "" +msgstr "Используйте улучшенную схему наименования" msgid "Used PID file" msgstr "Используемый PID-файл" @@ -766,14 +782,16 @@ msgid "Verbose monitoring" msgstr "Расширенная статистика" msgid "Wireless" -msgstr "Wireless" +msgstr "Беспроводные соединения" msgid "Wireless iwinfo Plugin Configuration" -msgstr "Конфигурация модуля Iwinfo" +msgstr "Настройка плагина 'Беспроводные соединения'" msgid "" "You can install additional collectd-mod-* plugins to enable more statistics." msgstr "" +"Вы можете установить плагины collectd-mod-* для включения дополнительной " +"статистики." msgid "e.g. br-ff" msgstr "напр. br-ff" @@ -790,64 +808,8 @@ msgstr "не более 16 символов" msgid "reduces rrd size" msgstr "уменьшает размер rrd" -#, fuzzy msgid "seconds; multiple separated by space" -msgstr "секунды; разделяются пробелом" +msgstr "секунд; значения разделенные пробелом" msgid "server interfaces" msgstr "интерфейсы сервера" - -#~ msgid "Collectd" -#~ msgstr "Collectd" - -#~ msgid "System plugins" -#~ msgstr "Системные модули" - -#~ msgid "" -#~ "The statistics package is based on <a href=\"http://collectd.org/index." -#~ "shtml\">Collectd</a> and uses <a href=\"http://oss.oetiker.ch/rrdtool/" -#~ "\">RRD Tool</a> to render diagram images from collected data." -#~ msgstr "" -#~ "Данная статистика основана на программе <a href=\"http://collectd.org/" -#~ "index.shtml\">Collectd</a> и использует <a href=\"http://oss.oetiker.ch/" -#~ "rrdtool/\">RRD Tool</a> для построения диаграмм." - -#~ msgid "Installed network plugins:" -#~ msgstr "Установленные сетевые модули:" - -#~ msgid "Installed output plugins:" -#~ msgstr "Установленные модули вывода:" - -#~ msgid "" -#~ "Network plugins are used to collect information about open tcp " -#~ "connections, interface traffic, iptables rules etc." -#~ msgstr "" -#~ "Сетевые модули используются для сбора информации об открытых TCP-" -#~ "соединениях, трафике, правилах iptables и т.п." - -#~ msgid "" -#~ "Output plugins provide different possibilities to store collected data. " -#~ "It is possible to enable multiple plugin at one, for example to store " -#~ "collected data in rrd databases and to transmit the data over the network " -#~ "to other collectd instances." -#~ msgstr "" -#~ "Модули вывода обеспечивают различные варианты сохранения собранных " -#~ "данных. Можно включить несколько модулей, например, чтобы сохранить " -#~ "собранные данные в базе данных RRD и передать их по сети другим " -#~ "инстанциям collectd." - -#~ msgid "" -#~ "System plugins collecting values about system state and ressource usage " -#~ "on the device.:" -#~ msgstr "" -#~ "Системные модули, собирающие данные о состоянии системы и использовании " -#~ "ресурсов устройства:" - -#~ msgid "" -#~ "The wireless plugin collects statistics about wireless signal strength, " -#~ "noise and quality." -#~ msgstr "" -#~ "Модуль Wireless собирает статистику о силе, шуме и качестве сигнала." - -#~ msgid "Wireless Plugin Configuration" -#~ msgstr "Конфигурация модуля Wireless" diff --git a/applications/luci-app-tinyproxy/po/ru/tinyproxy.po b/applications/luci-app-tinyproxy/po/ru/tinyproxy.po index f9a3c23d1..1e177f7c9 100644 --- a/applications/luci-app-tinyproxy/po/ru/tinyproxy.po +++ b/applications/luci-app-tinyproxy/po/ru/tinyproxy.po @@ -1,82 +1,80 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: tinyproxy\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-05-19 19:36+0200\n" -"PO-Revision-Date: 2012-08-15 20:24+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"POT-Creation-Date: 2012-08-15 20:24+0300\n" +"PO-Revision-Date: 2018-01-08 17:50+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.4\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "" "<em>Via proxy</em> routes requests to the given target via the specifed " "upstream proxy, <em>Reject access</em> disables any upstream proxy for the " "target" msgstr "" -"<em>Через прокси</em> перенаправляет запросы на заданные узлы через " -"указанный прокси, <em>Отклонять доступ</em> отключает использование прокси " -"для всех узлов" +"<em>'Через прокси'</em> перенаправляет запросы на заданные узлы через " +"указанный восходящий прокси-сервер, <em>'Отклонять доступ'</em> отключает " +"использование прокси-сервер для всех узлов." msgid "" "Adds an \"X-Tinyproxy\" HTTP header with the client IP address to forwarded " "requests" msgstr "" -"Добавляет HTTP-заголовок \"X-Tinyproxy\" с IP-адресом клиента ко всем " -"перенаправленным запросам" +"Добавляет HTTP-заголовок 'X-Tinyproxy' с IP-адресом клиента ко всем " +"перенаправленным запросам." msgid "Allowed clients" -msgstr "Разрешённые клиенты" +msgstr "Разрешенные клиенты" msgid "Allowed connect ports" -msgstr "Разрешённые порты подключения" +msgstr "Разрешенные порты подключения" msgid "Bind address" -msgstr "Адрес привязки" +msgstr "Привязка адреса" msgid "" "By default, basic POSIX expressions are used for filtering. Enable this to " "activate extended regular expressions" msgstr "" -"Разрешить использование расширенных регулярных выражений для фильтрации. По " -"умолчанию, используются базовые POSIX-выражения" +"По умолчанию для фильтрации используются базовые POSIX-выражения. Включить " +"эту функцию для активации расширенных регулярных выражений." msgid "" "By default, filter strings are treated as case-insensitive. Enable this to " "make the matching case-sensitive" msgstr "" -"По умолчанию, строки фильтрации регистро-независимы. Включите эту опцию, " -"чтобы сделать сравнение регистро-зависимым" +"По умолчанию строки фильтрации регистро-независимы. Включите эту опцию, " +"чтобы сделать сравнение регистро-зависимым." msgid "" "By default, filtering is done based on domain names. Enable this to match " "against URLs instead" msgstr "" -"По умолчанию, фильтрация выполняется на основе имени домена. Включите эту " -"опцию, чтобы фильтровать при помощи URL" +"По умолчанию фильтрация выполняется на основе доменных имен. Включите это " +"для сопоставления с URL-адресами." msgid "" "By default, the filter rules act as blacklist. Enable this option to only " "allow matched URLs or domain names" msgstr "" -"По умолчанию, фильтрация работает в режиме чёрного списка. Включите эту " -"опцию, чтобы разрешить только опредёленные URL или доменные имена" +"По умолчанию правила фильтрации действуют как Черный список. Включите эту " +"опцию, чтобы разрешить только совпадающие URL-адреса или имена доменов." msgid "" "Can be either an IP address or range, a domain name or \".\" for any host " "without domain" msgstr "" -"Может быть IP-адресом, диапазоном, именем домена или \".\" для любого хоста " +"Может быть IP-адресом, диапазоном, именем домена или '.' для любого хоста " "без домена" msgid "Configuration" -msgstr "Конфигурация" +msgstr "Настройка" msgid "Connection timeout" msgstr "Таймаут соединения" @@ -91,34 +89,34 @@ msgid "Error page" msgstr "Страница ошибки" msgid "Failed to retrieve statistics from url:" -msgstr "Ошибка получения статистики по URL:" +msgstr "Не удалось получить статистику по URL-адресу:" msgid "Filter by RegExp" -msgstr "Фильтровать при помощи регулярных выражений" +msgstr "Фильтровать по регулярным выражениям (RegExp)" msgid "Filter by URLs" -msgstr "Фильтровать по URL" +msgstr "Фильтровать по URL-адресам" msgid "Filter case-sensitive" -msgstr "Фильтровать с учётом регистра" +msgstr "Фильтровать с учетом регистра" msgid "Filter file" msgstr "Файл фильтрации" msgid "Filtering and ACLs" -msgstr "Фильтрация и ACL" +msgstr "Фильтрация и ACL-ы" msgid "General settings" -msgstr "Общие настройки" +msgstr "Основные настройки" msgid "Group" msgstr "Группа" msgid "HTML template file to serve for stat host requests" -msgstr "HTML-шаблон для статистики хостов" +msgstr "HTML-файл шаблона для вывода статистики хостов." msgid "HTML template file to serve when HTTP errors occur" -msgstr "HTML-шаблон для вывода ошибок HTTP" +msgstr "HTML-файл шаблона для вывода ошибок HTTP." msgid "Header whitelist" msgstr "Белый список заголовков" @@ -126,32 +124,32 @@ msgstr "Белый список заголовков" msgid "" "List of IP addresses or ranges which are allowed to use the proxy server" msgstr "" -"Список или диапазон IP-адресов, которым разрешено использовать прокси-сервер" +"Список или диапазон IP-адресов, которым разрешено использовать прокси-сервер." msgid "" "List of allowed ports for the CONNECT method. A single value \"0\" allows " "all ports" msgstr "" -"Список разрешённых портов для метода CONNECT. Значение \"0\" разрешает все " -"порты" +"Список разрешенных портов для опции 'CONNECT'. Значение '0' разрешает все " +"порты." msgid "Listen address" -msgstr "Адрес" +msgstr "Слушать адрес" msgid "Listen port" -msgstr "Порт" +msgstr "Слушать порт" msgid "Log file" -msgstr "Файл журналирования" +msgstr "Файл системного журнала" msgid "Log file to use for dumping messages" -msgstr "Файл для записи сообщений" +msgstr "Файл системного журнала, используемый для сброса сообщений" msgid "Log level" -msgstr "Уровень журналирования" +msgstr "Настройка журналирования" msgid "Logging verbosity of the Tinyproxy process" -msgstr "Уровень подробности журналирования процесса Tinyproxy" +msgstr "Настройка подробного журналирования процессов Tinyproxy." msgid "Max. clients" msgstr "Макс. кол-во клиентов" @@ -163,34 +161,37 @@ msgid "Max. spare servers" msgstr "Макс. кол-во серверов ожидания" msgid "Maximum allowed number of concurrently connected clients" -msgstr "Максимально допустимое количество одновременно подключенных клиентов" +msgstr "Максимально допустимое число параллельно подключенных клиентов." msgid "" "Maximum allowed number of requests per process. If it is exeeded, the " "process is restarted. Zero means unlimited." msgstr "" -"Максимально допустимое количество запросов на процесс. Если превышено, " -"процесс будет перезапущен. Ноль отключает данное ограничение." +"Максимальное допустимое число запросов для каждого процесса. Если превышено, " +"процесс будет перезапущен. Ноль означает неограниченное." msgid "Maximum number of prepared idle processes" -msgstr "Максимальное количество готовых к обработке процессов" +msgstr "Максимальное количество подготовленных бездействующих процессов" msgid "Maximum number of seconds an inactive connection is held open" msgstr "" "Максимальное количество секунд, в течение которых неактивное соединение " -"остаётся открытым" +"удерживается открытым." msgid "Min. spare servers" -msgstr "Мин. кол-во серверов ожидания" +msgstr "Мин. количество серверов ожидания" msgid "Minimum number of prepared idle processes" -msgstr "Минимальное количество готовых к обработке процессов" +msgstr "Минимальное количество подготовленных бездействующих процессов" msgid "Number of idle processes to start when launching Tinyproxy" -msgstr "Количество готовых к обработке процессов при старте Tinyproxy" +msgstr "" +"Количество бездействующих процессов, запускаемых при запуске Tinyproxy." msgid "Plaintext file with URLs or domains to filter. One entry per line" -msgstr "Файл с URL или доменами для фильтрации. Одна запись на строку" +msgstr "" +"Текстовый файл с URL-адресами или доменами для фильтрации. Одна запись - " +"одна строка." msgid "Policy" msgstr "Политика" @@ -211,25 +212,25 @@ msgid "" "Specifies HTTP header names which are allowed to pass-through, all others " "are discarded. Leave empty to disable header filtering" msgstr "" -"Определяет HTTP-заголовки, которым разрешено проходить через прокси. " -"Оставьте пустым, чтобы не фильтровать заголовки" +"Определяет имена HTTP-заголовков, которые разрешено передавать, все " +"остальные отбрасываются. Оставьте пустым, чтобы отключить фильтрацию " +"заголовков." msgid "Specifies the HTTP port Tinyproxy is listening on for requests" -msgstr "Определяет порт HTTP, на котором Tinyproxy ожидает запросы" +msgstr "Указывает HTTP-порт Tinyproxy, который прослушивает запросы" msgid "Specifies the Tinyproxy hostname to use in the Via HTTP header" msgstr "" -"Определяет имя хоста Tinyproxy, которое будет использовано в HTTP-заголовке " -"Via" +"Определяет имя хоста Tinyproxy, которое будет использовано в HTTP-заголовке." msgid "" "Specifies the address Tinyproxy binds to for outbound forwarded requests" msgstr "" -"Определяет адрес, к которому привязывается Tinyproxy для отправки исходящих " -"запросов" +"Определяет адрес, к которому привязывается Tinyproxy для отправки " +"перенаправленных исходящих запросов." msgid "Specifies the addresses Tinyproxy is listening on for requests" -msgstr "Определяет адрес, на котором Tinyproxy ожидает запросы" +msgstr "Определяет адрес, на котором Tinyproxy ожидает запросы." msgid "Specifies the group name the Tinyproxy process is running as" msgstr "Определяет имя группы, в которой работает Tinyproxy" @@ -238,14 +239,14 @@ msgid "" "Specifies the upstream proxy to use for accessing the target host. Format is " "<code>address:port</code>" msgstr "" -"Определяет прокси восходящего канала для доступа к хосту в формате " -"<code>адрес:порт</code>" +"Определяет восходящий прокси-сервер, используемый для доступа к хосту " +"назначения. Формат <code>'адрес:порт'</code>." msgid "Specifies the user name the Tinyproxy process is running as" -msgstr "Определяет пользователя, от имени которого работает Tinyproxy" +msgstr "Задать пользователя, от имени которого работает Tinyproxy" msgid "Start spare servers" -msgstr "Запустить указанное количество готовых к обработке процессов" +msgstr "Запустить запасные серверы" msgid "Statistics page" msgstr "Страница статистики" @@ -263,7 +264,7 @@ msgid "Tinyproxy Status" msgstr "Состояние Tinyproxy" msgid "Tinyproxy is a small and fast non-caching HTTP(S)-Proxy" -msgstr "Tinyproxy - быстрый HTTP(S)-прокси, не использующий кэш" +msgstr "Tinyproxy - небольшой и быстрый HTTP(S)-прокси, не использующий кэш." msgid "Upstream Proxies" msgstr "Прокси для исходящего трафика" @@ -272,23 +273,25 @@ msgid "" "Upstream proxy rules define proxy servers to use when accessing certain IP " "addresses or domains." msgstr "" -"Прокси для исходящего трафика при обращении к определённым IP-адресам или " -"доменам." +"Правила исходящего трафика прокси-серверов для использования при доступе к " +"определенным IP-адресам или доменам." msgid "Use syslog" -msgstr "Использовать системный журнал" +msgstr "Системный журнал" msgid "User" msgstr "Пользователь" msgid "Via hostname" -msgstr "Имя хоста Via" +msgstr "Через имя хоста" msgid "Via proxy" msgstr "Через прокси" msgid "Writes log messages to syslog instead of a log file" -msgstr "Записывать сообщения журнала в системный журнал вместо файла" +msgstr "" +"Записывать сообщения журнала в общий системный журнал, вместо файла " +"отдельного файла Tinyproxy." msgid "X-Tinyproxy header" msgstr "Заголовок X-Tinyproxy" diff --git a/applications/luci-app-travelmate/po/ja/travelmate.po b/applications/luci-app-travelmate/po/ja/travelmate.po index febdbd583..0e497c1ca 100644 --- a/applications/luci-app-travelmate/po/ja/travelmate.po +++ b/applications/luci-app-travelmate/po/ja/travelmate.po @@ -7,7 +7,7 @@ msgstr "" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.3\n" +"X-Generator: Poedit 2.0.5\n" "Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n" "Plural-Forms: nplurals=1; plural=0;\n" "Language: ja\n" @@ -31,9 +31,21 @@ msgstr "Travelmate の処理が開始されるまでの、追加の遅延時間 msgid "Advanced" msgstr "詳細設定" +msgid "Authentication" +msgstr "認証" + +msgid "Automatic" +msgstr "自動" + +msgid "BSSID" +msgstr "BSSID" + msgid "Back to overview" msgstr "概要へ戻る" +msgid "Cipher" +msgstr "暗号化方式" + msgid "" "Configuration of the travelmate package to to enable travel router " "functionality." @@ -61,6 +73,9 @@ msgstr "このアップリンクを削除" msgid "Device" msgstr "デバイス" +msgid "EAP-Method" +msgstr "EAP メソッド" + msgid "Edit" msgstr "編集" @@ -107,6 +122,19 @@ msgstr "" "詳細な情報は <a href=\"%s\" target=\"_blank\">オンライン ドキュメント</a> を" "確認してください。" +msgid "Force CCMP (AES)" +msgstr "CCMP (AES)" + +msgid "Force TKIP" +msgstr "TKIP" + +msgid "Force TKIP and CCMP (AES)" +msgstr "TKIP と CCMP (AES)" + +msgid "Force a manual uplink rescan / reconnect in 'trigger' mode." +msgstr "" +"'trigger' モード時に、手動でアップリンクの再スキャンと再接続を行います。" + msgid "How long should travelmate wait for a successful wlan interface reload." msgstr "" "無線LAN インターフェースのリロードが成功するまでの、Travelmate の待機時間で" @@ -115,6 +143,12 @@ msgstr "" msgid "How many times should travelmate try to connect to an Uplink." msgstr "Travelmate がアップリンクへの接続を試行する回数です。" +msgid "Identity" +msgstr "ID" + +msgid "Ignore BSSID" +msgstr "" + msgid "Input file not found, please check your configuration." msgstr "入力ファイルが見つかりません。設定を確認してください。" @@ -143,12 +177,8 @@ msgstr "下へ" msgid "Move up" msgstr "上へ" -msgid "" -"Name of the uplink interface that triggers travelmate processing in 'manual' " -"mode." -msgstr "" -"'manual' モード時に Travelmate の処理のトリガーとなる、アップリンク インター" -"フェースの名前です。" +msgid "Name of the used uplink interface." +msgstr "使用されるアップリンク インターフェースの名前です。" msgid "Online Status" msgstr "オンライン ステータス" @@ -166,8 +196,23 @@ msgstr "実行間隔" msgid "Overview" msgstr "概要" -msgid "Passphrase (%s)" -msgstr "暗号フレーズ (%s)" +msgid "Passphrase" +msgstr "パスフレーズ" + +msgid "Password" +msgstr "パスワード" + +msgid "Password of Private Key" +msgstr "秘密鍵のパスワード" + +msgid "Path to CA-Certificate" +msgstr "CA 証明書へのパス" + +msgid "Path to Client-Certificate" +msgstr "クライアント証明書へのパス" + +msgid "Path to Private Key" +msgstr "秘密鍵へのパス" msgid "" "Provides an overview of all configured uplinks for the travelmate interface " @@ -191,7 +236,7 @@ msgstr "再スキャン" msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'." msgstr "Travelmate が指定された無線に接続するよう制御します。(例: 'radio0')" -msgid "Runtime information" +msgid "Runtime Information" msgstr "実行情報" msgid "SSID" @@ -209,8 +254,8 @@ msgstr "スキャン:" msgid "Signal strength" msgstr "信号強度" -msgid "Specify the secret encryption key here." -msgstr "暗号キーを設定します。" +msgid "Station ID (SSID/BSSID)" +msgstr "ステーション ID (SSID / BSSID)" msgid "Station Interface" msgstr "ステーション インターフェース" @@ -218,9 +263,6 @@ msgstr "ステーション インターフェース" msgid "Station Radio" msgstr "ステーション電波" -msgid "Station SSID" -msgstr "ステーション SSID" - msgid "" "This form allows you to modify the content of the main firewall " "configuration file (/etc/config/firewall)." @@ -281,6 +323,9 @@ msgstr "不明" msgid "Uplink / Trigger interface" msgstr "アップリンク / トリガー インターフェース" +msgid "Uplink BSSID" +msgstr "アップリンク BSSID" + msgid "Uplink SSID" msgstr "アップリンク SSID" @@ -293,14 +338,20 @@ msgstr "ログファイルの確認" msgid "WEP" msgstr "WEP" -msgid "WEP passphrase" -msgstr "WEP 暗号キー" +msgid "WEP-Passphrase" +msgstr "WEP パスフレーズ" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA-Passphrase" +msgstr "WPA パスフレーズ" -msgid "WPA / WPA2" -msgstr "WPA / WPA2" +msgid "WPA/WPA2" +msgstr "WPA/WPA2" -msgid "WPA passphrase" -msgstr "WPA 暗号キー" +msgid "WPA2" +msgstr "WPA2" msgid "Wireless Scan" msgstr "無線スキャン" diff --git a/applications/luci-app-travelmate/po/pt-br/travelmate.po b/applications/luci-app-travelmate/po/pt-br/travelmate.po index 41fab7014..c4e9b9852 100644 --- a/applications/luci-app-travelmate/po/pt-br/travelmate.po +++ b/applications/luci-app-travelmate/po/pt-br/travelmate.po @@ -31,9 +31,21 @@ msgstr "" msgid "Advanced" msgstr "" +msgid "Authentication" +msgstr "" + +msgid "Automatic" +msgstr "" + +msgid "BSSID" +msgstr "" + msgid "Back to overview" msgstr "" +msgid "Cipher" +msgstr "" + msgid "" "Configuration of the travelmate package to to enable travel router " "functionality." @@ -58,6 +70,9 @@ msgstr "" msgid "Device" msgstr "" +msgid "EAP-Method" +msgstr "" + msgid "Edit" msgstr "" @@ -102,12 +117,30 @@ msgid "" "documentation</a>" msgstr "" +msgid "Force CCMP (AES)" +msgstr "" + +msgid "Force TKIP" +msgstr "" + +msgid "Force TKIP and CCMP (AES)" +msgstr "" + +msgid "Force a manual uplink rescan / reconnect in 'trigger' mode." +msgstr "" + msgid "How long should travelmate wait for a successful wlan interface reload." msgstr "" msgid "How many times should travelmate try to connect to an Uplink." msgstr "" +msgid "Identity" +msgstr "" + +msgid "Ignore BSSID" +msgstr "" + msgid "Input file not found, please check your configuration." msgstr "" @@ -134,9 +167,7 @@ msgstr "" msgid "Move up" msgstr "" -msgid "" -"Name of the uplink interface that triggers travelmate processing in 'manual' " -"mode." +msgid "Name of the used uplink interface." msgstr "" msgid "Online Status" @@ -155,7 +186,22 @@ msgstr "" msgid "Overview" msgstr "" -msgid "Passphrase (%s)" +msgid "Passphrase" +msgstr "" + +msgid "Password" +msgstr "" + +msgid "Password of Private Key" +msgstr "" + +msgid "Path to CA-Certificate" +msgstr "" + +msgid "Path to Client-Certificate" +msgstr "" + +msgid "Path to Private Key" msgstr "" msgid "" @@ -176,7 +222,7 @@ msgstr "" msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'." msgstr "" -msgid "Runtime information" +msgid "Runtime Information" msgstr "" msgid "SSID" @@ -194,7 +240,7 @@ msgstr "" msgid "Signal strength" msgstr "" -msgid "Specify the secret encryption key here." +msgid "Station ID (SSID/BSSID)" msgstr "" msgid "Station Interface" @@ -203,9 +249,6 @@ msgstr "" msgid "Station Radio" msgstr "" -msgid "Station SSID" -msgstr "" - msgid "" "This form allows you to modify the content of the main firewall " "configuration file (/etc/config/firewall)." @@ -255,6 +298,9 @@ msgstr "" msgid "Uplink / Trigger interface" msgstr "" +msgid "Uplink BSSID" +msgstr "" + msgid "Uplink SSID" msgstr "" @@ -267,13 +313,19 @@ msgstr "" msgid "WEP" msgstr "" -msgid "WEP passphrase" +msgid "WEP-Passphrase" +msgstr "" + +msgid "WPA" +msgstr "" + +msgid "WPA-Passphrase" msgstr "" -msgid "WPA / WPA2" +msgid "WPA/WPA2" msgstr "" -msgid "WPA passphrase" +msgid "WPA2" msgstr "" msgid "Wireless Scan" diff --git a/applications/luci-app-travelmate/po/ru/travelmate.po b/applications/luci-app-travelmate/po/ru/travelmate.po new file mode 100644 index 000000000..3e8429c5b --- /dev/null +++ b/applications/luci-app-travelmate/po/ru/travelmate.po @@ -0,0 +1,382 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: travelmate\n" +"POT-Creation-Date: 2017-12-07 21:00+0300\n" +"PO-Revision-Date: 2018-01-07 19:15+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "Actions" +msgstr "Действия" + +msgid "Add Interface" +msgstr "Добавить интерфейс" + +msgid "Add Uplink" +msgstr "Подключение к сети" + +msgid "Add Wireless Uplink Configuration" +msgstr "Добавить настройку беспроводной сети" + +msgid "" +"Additional trigger delay in seconds before travelmate processing begins." +msgstr "Дополнительная задержка в секундах до запуска TravelMate." + +msgid "Advanced" +msgstr "Дополнительно" + +msgid "Authentication" +msgstr "Аутентификация" + +msgid "Automatic" +msgstr "Автоматически" + +msgid "BSSID" +msgstr "BSSID" + +msgid "Back to overview" +msgstr "Вернуться в главное меню" + +msgid "Cipher" +msgstr "Шифрование" + +msgid "" +"Configuration of the travelmate package to to enable travel router " +"functionality." +msgstr "Настройка утилиты TravelMate - помощника путешественника. " + +msgid "Connection Limit" +msgstr "Ограничение соединений" + +msgid "Create Uplink Interface" +msgstr "Создать интерфейс сети" + +msgid "" +"Create a new wireless wan uplink interface, configure it to use dhcp and" +msgstr "" +"Создать новый wwan интерфейс беспроводной сети, настроить его на " +"использование с DHCP и" + +msgid "Delete" +msgstr "Удалить" + +msgid "Delete this Uplink" +msgstr "Удалить сеть" + +msgid "Device" +msgstr "Устройство" + +msgid "EAP-Method" +msgstr "Метод EAP" + +msgid "Edit" +msgstr "Редактировать" + +msgid "Edit Firewall Configuration" +msgstr "Редактировать настройки фаервола" + +msgid "Edit Network Configuration" +msgstr "Редактировать настройки сети" + +msgid "Edit Travelmate Configuration" +msgstr "Редактировать настройки Travelmate" + +msgid "Edit Wireless Configuration" +msgstr "Редактировать настройки беспроводного соединения" + +msgid "Edit Wireless Uplink Configuration" +msgstr "Редактировать настройки беспроводной сети" + +msgid "Edit this Uplink" +msgstr "Редактировать настройки сети" + +msgid "Enable 'automatic' mode" +msgstr "Включить режим 'автоматически'" + +msgid "Enable travelmate" +msgstr "Включить Travelmate" + +msgid "Enable verbose debug logging" +msgstr "Включить подробное ведение журнала отладки" + +msgid "Encryption" +msgstr "Шифрование" + +msgid "Extra options" +msgstr "Дополнительные настройки" + +msgid "Find and join network on" +msgstr "Найти сеть и подключится к ней" + +msgid "" +"For further information <a href=\"%s\" target=\"_blank\">see online " +"documentation</a>" +msgstr "" +"Для получения дополнительной информации <a href=\"%s\" target=\"_blank\"> " +"смотрите онлайн документацию</a>." + +msgid "Force CCMP (AES)" +msgstr "Назначить CCMP (AES)" + +msgid "Force TKIP" +msgstr "Назначить TKIP" + +msgid "Force TKIP and CCMP (AES)" +msgstr "Назначить TKIP и CCMP (AES)" + +msgid "Force a manual uplink rescan / reconnect in 'trigger' mode." +msgstr "" +"Назначить ручное повторное сканирование / повторное подключение в режиме " +"'ручной'." + +msgid "How long should travelmate wait for a successful wlan interface reload." +msgstr "" +"Временная задержка TravelMate неоходимая для полной перезагрузки wlan " +"интерфейса." + +msgid "How many times should travelmate try to connect to an Uplink." +msgstr "Сколько раз TravelMate должен пытаться подключиться к сети. " + +msgid "Identity" +msgstr "Идентификация EAP" + +msgid "Ignore BSSID" +msgstr "Игнорировать BSSID" + +msgid "Input file not found, please check your configuration." +msgstr "Входной файл не найден, проверьте настройки." + +msgid "Interface Timeout" +msgstr "Временная задержка интерфейса" + +msgid "Interface Wizard" +msgstr "Помощник настройки интерфейса" + +msgid "" +"Keep travelmate in an active state. Check every n seconds the connection " +"status, i.e. the uplink availability." +msgstr "" +"Поддержка TravelMate в активном состоянии. Проверка состояния соединения " +"каждые n секунд, т.е. доступность сети." + +msgid "Last rundate" +msgstr "Дата последнего запуска" + +msgid "Manual Rescan" +msgstr "Пересканировать вручную" + +msgid "Move down" +msgstr "Двигаться вниз" + +msgid "Move up" +msgstr "Двигаться вверх" + +msgid "Name of the used uplink interface." +msgstr "Имя используемого интерфейса сети." + +msgid "Online Status" +msgstr "Онлайн состояние" + +msgid "Open" +msgstr "Открыть" + +msgid "" +"Options for further tweaking in case the defaults are not suitable for you." +msgstr "" +"Возможные варианты детальной настройки, если значения по умолчанию не " +"подходят для вас." + +msgid "Overall Timeout" +msgstr "Общее время ожидания" + +msgid "Overview" +msgstr "Главное меню" + +msgid "Passphrase" +msgstr "Парольная фраза" + +msgid "Password" +msgstr "Пароль" + +msgid "Password of Private Key" +msgstr "Пароль к Личному Ключу" + +msgid "Path to CA-Certificate" +msgstr "Путь к CA-Сертификатам" + +msgid "Path to Client-Certificate" +msgstr "Путь к Client-Сертификатам" + +msgid "Path to Private Key" +msgstr "Путь к личному ключу" + +msgid "" +"Provides an overview of all configured uplinks for the travelmate interface " +"(%s). You can edit, delete or re-order existing uplinks or scan for a new " +"one. The currently used uplink is emphasized in blue." +msgstr "" +"Общие сведения обо всех настроенных сетевых соединениях интерфейса " +"TravelMate (%s). Вы можете редактировать, удалять или переупорядочивать " +"существующие сети или сканировать их. Используемое сетевое соединение " +"подчеркнуто синим цветом." + +msgid "Radio selection" +msgstr "Выбор Wi-Fi устройства" + +msgid "Repeat scan" +msgstr "Повторить сканирование" + +msgid "Rescan" +msgstr "Пересканировать" + +msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'." +msgstr "Выделить TravelMate-у конкретное Wi-Fi устройство, например 'radio0'." + +msgid "Runtime Information" +msgstr "Информация о состоянии" + +msgid "SSID" +msgstr "SSID" + +msgid "SSID (hidden)" +msgstr "SSID (скрытый)" + +msgid "Save" +msgstr "Сохранить" + +msgid "Scan" +msgstr "Сканировать" + +msgid "Signal strength" +msgstr "Мощность сигнала" + +msgid "Station ID (SSID/BSSID)" +msgstr "ID (SSID/BSSID) клиента" + +msgid "Station Interface" +msgstr "Интерфейс клиента" + +msgid "Station Radio" +msgstr "Wi-Fi устройство клиента" + +msgid "" +"This form allows you to modify the content of the main firewall " +"configuration file (/etc/config/firewall)." +msgstr "" +"Страница настройки фаервола, изменение содержимого config файла настройки " +"фаервола (/etc/config/firewall)." + +msgid "" +"This form allows you to modify the content of the main network configuration " +"file (/etc/config/network)." +msgstr "" +"Страница настройки сети, изменение содержимого config файла настройки сети (/" +"etc/config/network)." + +msgid "" +"This form allows you to modify the content of the main travelmate " +"configuration file (/etc/config/travelmate)." +msgstr "" +"Страница настройки Travelmate, изменение содержимого config файла настройки " +"Travelmate (/etc/config/travelmate)." + +msgid "" +"This form allows you to modify the content of the main wireless " +"configuration file (/etc/config/wireless)." +msgstr "" +"Страница настройки беспроводных соединений, изменение содержимого config " +"файла настройки беспроводных сетей (/etc/config/wireless)." + +msgid "" +"This form shows the syslog output, pre-filtered for travelmate related " +"messages only." +msgstr "" +"Страница просмотра системного журнала, показаны только события связанные с " +"работой утилиты TravelMate." + +msgid "Timeout in seconds between retries in 'automatic' mode." +msgstr "" +"Время ожидания в секундах между повторными попытками соединения в режиме " +"'автоматически'." + +msgid "To disable this feature set it to '0' which means unlimited retries." +msgstr "" +"Чтобы отключить эту функцию, установите значение '0', что означает " +"неограниченное количество попыток." + +msgid "Travelmate" +msgstr "TravelMate" + +msgid "Travelmate Logfile" +msgstr "Системный журнал TravelMate" + +msgid "Travelmate version" +msgstr "Версия TravelMate" + +msgid "Trigger delay" +msgstr "Задержка запуска" + +msgid "Unknown" +msgstr "Неизвестно" + +msgid "Uplink / Trigger interface" +msgstr "Сеть / Включить интерфейс" + +msgid "Uplink BSSID" +msgstr "BSSID сети" + +msgid "Uplink SSID" +msgstr "SSID сети" + +msgid "Uplink interface" +msgstr "Интерфейс сети" + +msgid "View Logfile" +msgstr "Просмотр системного журнала" + +msgid "WEP" +msgstr "WEP" + +msgid "WEP-Passphrase" +msgstr "Пароль WEP" + +msgid "WPA" +msgstr "WPA" + +msgid "WPA-Passphrase" +msgstr "Пароль WPA" + +msgid "WPA/WPA2" +msgstr "WPA/WPA2" + +msgid "WPA2" +msgstr "WPA2" + +msgid "Wireless Scan" +msgstr "Сканирование беспроводных сетей" + +msgid "Wireless Stations" +msgstr "Клиенты беспроводной сети" + +msgid "" +"add it to the wan zone of the firewall. This step has only to be done once." +msgstr "добавить в wan зону фаервола. Можно сделать только один раз." + +msgid "connected" +msgstr "подключен" + +msgid "hidden" +msgstr "скрытый" + +msgid "n/a" +msgstr "нет данных" + +msgid "not connected" +msgstr "не подключено" diff --git a/applications/luci-app-travelmate/po/templates/travelmate.pot b/applications/luci-app-travelmate/po/templates/travelmate.pot index a9ceafe23..13e10dee8 100644 --- a/applications/luci-app-travelmate/po/templates/travelmate.pot +++ b/applications/luci-app-travelmate/po/templates/travelmate.pot @@ -20,9 +20,21 @@ msgstr "" msgid "Advanced" msgstr "" +msgid "Authentication" +msgstr "" + +msgid "Automatic" +msgstr "" + +msgid "BSSID" +msgstr "" + msgid "Back to overview" msgstr "" +msgid "Cipher" +msgstr "" + msgid "" "Configuration of the travelmate package to to enable travel router " "functionality." @@ -47,6 +59,9 @@ msgstr "" msgid "Device" msgstr "" +msgid "EAP-Method" +msgstr "" + msgid "Edit" msgstr "" @@ -91,12 +106,30 @@ msgid "" "documentation</a>" msgstr "" +msgid "Force CCMP (AES)" +msgstr "" + +msgid "Force TKIP" +msgstr "" + +msgid "Force TKIP and CCMP (AES)" +msgstr "" + +msgid "Force a manual uplink rescan / reconnect in 'trigger' mode." +msgstr "" + msgid "How long should travelmate wait for a successful wlan interface reload." msgstr "" msgid "How many times should travelmate try to connect to an Uplink." msgstr "" +msgid "Identity" +msgstr "" + +msgid "Ignore BSSID" +msgstr "" + msgid "Input file not found, please check your configuration." msgstr "" @@ -123,9 +156,7 @@ msgstr "" msgid "Move up" msgstr "" -msgid "" -"Name of the uplink interface that triggers travelmate processing in 'manual' " -"mode." +msgid "Name of the used uplink interface." msgstr "" msgid "Online Status" @@ -144,7 +175,22 @@ msgstr "" msgid "Overview" msgstr "" -msgid "Passphrase (%s)" +msgid "Passphrase" +msgstr "" + +msgid "Password" +msgstr "" + +msgid "Password of Private Key" +msgstr "" + +msgid "Path to CA-Certificate" +msgstr "" + +msgid "Path to Client-Certificate" +msgstr "" + +msgid "Path to Private Key" msgstr "" msgid "" @@ -165,7 +211,7 @@ msgstr "" msgid "Restrict travelmate to a dedicated radio, e.g. 'radio0'." msgstr "" -msgid "Runtime information" +msgid "Runtime Information" msgstr "" msgid "SSID" @@ -183,7 +229,7 @@ msgstr "" msgid "Signal strength" msgstr "" -msgid "Specify the secret encryption key here." +msgid "Station ID (SSID/BSSID)" msgstr "" msgid "Station Interface" @@ -192,9 +238,6 @@ msgstr "" msgid "Station Radio" msgstr "" -msgid "Station SSID" -msgstr "" - msgid "" "This form allows you to modify the content of the main firewall " "configuration file (/etc/config/firewall)." @@ -244,6 +287,9 @@ msgstr "" msgid "Uplink / Trigger interface" msgstr "" +msgid "Uplink BSSID" +msgstr "" + msgid "Uplink SSID" msgstr "" @@ -256,13 +302,19 @@ msgstr "" msgid "WEP" msgstr "" -msgid "WEP passphrase" +msgid "WEP-Passphrase" +msgstr "" + +msgid "WPA" +msgstr "" + +msgid "WPA-Passphrase" msgstr "" -msgid "WPA / WPA2" +msgid "WPA/WPA2" msgstr "" -msgid "WPA passphrase" +msgid "WPA2" msgstr "" msgid "Wireless Scan" diff --git a/applications/luci-app-uhttpd/po/ru/uhttpd.po b/applications/luci-app-uhttpd/po/ru/uhttpd.po new file mode 100644 index 000000000..cf9bc57ec --- /dev/null +++ b/applications/luci-app-uhttpd/po/ru/uhttpd.po @@ -0,0 +1,214 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: uhttpd\n" +"POT-Creation-Date: 2017-12-06 22:30+0300\n" +"PO-Revision-Date: 2018-01-07 19:05+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "" +"(/old/path=/new/path) or (just /old/path which becomes /cgi-prefix/old/path)" +msgstr "" +"(/старый/путь=/новый/путь) или (просто /старый/путь становится /cgi-prefix/" +"старый/путь)." + +msgid "404 Error" +msgstr "Ошибка 404" + +msgid "A lightweight single-threaded HTTP(S) server" +msgstr "Легкий однопоточный HTTP(S) сервер." + +msgid "Advanced Settings" +msgstr "Дополнительные настройки" + +msgid "Aliases" +msgstr "Псевдонимы (Aliases)" + +msgid "Base directory for files to be served" +msgstr "Основная папка для файлов, которые будут обслуживаться сервером." + +msgid "Bind to specific interface:port (by specifying interface address" +msgstr "Привязка к конкретному интерфейсу:порту." + +msgid "CGI filetype handler" +msgstr "Интерпретатор файла CGI" + +msgid "CGI is disabled if not present." +msgstr "CGI отключается, если он отсутствует." + +msgid "Config file (e.g. for credentials for Basic Auth)" +msgstr "Config файл" + +msgid "Connection reuse" +msgstr "Повторное использование соединения" + +msgid "Country" +msgstr "Страна" + +msgid "Disable JSON-RPC authorization via ubus session API" +msgstr "Отключение авторизации JSON-RPC через API в систему ubus" + +msgid "Do not follow symlinks outside document root" +msgstr "" +"Не следовать по символическим ссылкам вне корневого каталога документов" + +msgid "Do not generate directory listings." +msgstr "Не создавать списки папок" + +msgid "Document root" +msgstr "Основная папка" + +msgid "E.g specify with index.html and index.php when using PHP" +msgstr "Например, укажите index.html и index.php если использовуется PHP." + +msgid "Embedded Lua interpreter is disabled if not present." +msgstr "Встроенный интерпретатор Lua отключается, если скрипт отсутствует." + +msgid "Enable JSON-RPC Cross-Origin Resource Support" +msgstr "Включение поддержки JSON-RPC разных источников" + +msgid "For settings primarily geared to serving more than the web UI" +msgstr "" +"Страница предназначена для настройки обслуживания, а не веб-интерфейса." + +msgid "Full Web Server Settings" +msgstr "Полные настройки web сервера" + +msgid "Full real path to handler for Lua scripts" +msgstr "Полный путь к интерпретатору скриптов Lua" + +msgid "General Settings" +msgstr "Основные настройки" + +msgid "HTTP listeners (address:port)" +msgstr "Слушать HTTP (адрес:порт)" + +msgid "HTTPS Certificate (DER Encoded)" +msgstr "HTTPS сертификат (кодировка DER)" + +msgid "HTTPS Private Key (DER Encoded)" +msgstr "HTTPS частный ключ (кодировка DER)" + +msgid "HTTPS listener (address:port)" +msgstr "Слушать HTTPS (адрес:порт)" + +msgid "Ignore private IPs on public interface" +msgstr "Игнорировать частный IPS на публичном интерфейсе" + +msgid "Index page(s)" +msgstr "Страница(ы) индекса" + +msgid "" +"Interpreter to associate with file endings ('suffix=handler', e.g. '.php=/" +"usr/bin/php-cgi')" +msgstr "" +"Интерпретатор для сопоставления расширений файлов ('суффикс=обработчик', " +"например: '.php=/usr/bin/php-cgi')." + +msgid "Length of key in bits" +msgstr "Длина ключа в битах" + +msgid "Location" +msgstr "Расположение" + +msgid "Maximum number of connections" +msgstr "Максимальное количество соединений" + +msgid "Maximum number of script requests" +msgstr "Максимальное количество запросов скрипта" + +msgid "Maximum wait time for Lua, CGI, or ubus execution" +msgstr "Максимальное время ожидания для Lua, CGI, или выполнение ubus" + +msgid "Maximum wait time for network activity" +msgstr "Максимальное время ожидания сетевой активности" + +msgid "Override path for ubus socket" +msgstr "Переопределить путь для сокета ubus" + +msgid "Path prefix for CGI scripts" +msgstr "Префикс пути для CGI скриптов" + +msgid "" +"Prevent access from private (RFC1918) IPs on an interface if it has an " +"public IP address" +msgstr "" +"Запретить доступ к частному интерфейсу IPS (RFC1918), если он имеет " +"общедоступный IP-адрес." + +msgid "Realm for Basic Auth" +msgstr "Хост для аутентификации" + +msgid "Redirect all HTTP to HTTPS" +msgstr "Перенаправление всех HTTP на HTTPS" + +msgid "Remove configuration for certificate and key" +msgstr "Удалить настройки для сертификата и ключа" + +msgid "Remove old certificate and key" +msgstr "Удалить старый сертификат и ключ" + +msgid "Server Hostname" +msgstr "Имя хоста" + +msgid "" +"Settings which are either rarely needed or which affect serving the WebUI" +msgstr "" +"Страница содержит параметры, которые редко используются или влияют на " +"обслуживание веб-интерфейса." + +msgid "State" +msgstr "Указывать" + +msgid "TCP Keepalive" +msgstr "TCP активность" + +msgid "This permanently deletes the cert, key, and configuration to use same." +msgstr "Полное удаление сертификата, ключа и настроек вкладки меню внизу." + +msgid "Valid for # of Days" +msgstr "Действителен в течение указанного кол-ва дней" + +msgid "" +"Virtual URL or CGI script to display on status '404 Not Found'. Must begin " +"with '/'" +msgstr "" +"Виртуальный URL-адрес или CGI скрипт для отображения статуса '404 не " +"найдено'. Надо начинать с '/'." + +msgid "Virtual path prefix for Lua scripts" +msgstr "Виртуальный путь префикса для скриптов Lua" + +msgid "Virtual path prefix for ubus via JSON-RPC integration" +msgstr "Виртуальный префикс пути для ubus через для JSON-RPC интеграции" + +msgid "Will not use HTTP authentication if not present" +msgstr "" +"Например, учетные данные для основной авторизации. Не будет использоваться " +"проверка подлинности HTTP, если она отсутствует." + +msgid "a.k.a CommonName" +msgstr "Имя хоста сервера, так называемое - 'CommonName'." + +msgid "uHTTPd" +msgstr "uHTTPd" + +msgid "uHTTPd Self-signed Certificate Parameters" +msgstr "Параметры самозаверяющего сертификата uHTTPd" + +msgid "" +"uHTTPd will generate a new self-signed certificate using the configuration " +"shown below." +msgstr "" +"uHTTPd создаст самозаверяющий сертификат используя вкладку расположенную " +"ниже." + +msgid "ubus integration is disabled if not present" +msgstr "Интеграция с ubus будет отключена, если она отсутствует." diff --git a/applications/luci-app-upnp/po/ja/upnp.po b/applications/luci-app-upnp/po/ja/upnp.po index b9dae4f8d..fe2dd6456 100644 --- a/applications/luci-app-upnp/po/ja/upnp.po +++ b/applications/luci-app-upnp/po/ja/upnp.po @@ -17,8 +17,8 @@ msgid "" "ACLs specify which external ports may be redirected to which internal " "addresses and ports" msgstr "" -"アクセス制御リスト(ACL) は、どの外部ポートからどの内部アドレス及びポートへ" -"リダイレクトするかを設定します。" +"アクセス制御リスト(ACL) は、どの外部ポートからどの内部アドレス及びポートへリ" +"ダイレクトするかを設定します。" msgid "Action" msgstr "動作" @@ -132,8 +132,8 @@ msgid "" "UPnP allows clients in the local network to automatically configure the " "router." msgstr "" -"UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルータ" -"を構成することができます。" +"UPnPを使用することで、ローカルネットワーク内のクライアントが自動的にルータを" +"構成することができます。" msgid "UPnP lease file" msgstr "UPnP リースファイル" diff --git a/applications/luci-app-upnp/po/ru/upnp.po b/applications/luci-app-upnp/po/ru/upnp.po index 0c195ad85..6800a1ab7 100644 --- a/applications/luci-app-upnp/po/ru/upnp.po +++ b/applications/luci-app-upnp/po/ru/upnp.po @@ -1,26 +1,24 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: upnp\n" -"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-05-19 19:36+0200\n" -"PO-Revision-Date: 2012-08-15 15:20+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"PO-Revision-Date: 2018-01-07 18:46+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.6\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "" "ACLs specify which external ports may be redirected to which internal " "addresses and ports" msgstr "" "Список доступа определяет, какие внешние порты могут быть перенаправлены на " -"внутренние адреса и порты" +"внутренние адреса и порты." msgid "Action" msgstr "Действие" @@ -29,10 +27,10 @@ msgid "Active UPnP Redirects" msgstr "Активные UPnP-переадресации" msgid "Advanced Settings" -msgstr "Расширенные настройки" +msgstr "Дополнительные настройки" msgid "Allow adding forwards only to requesting ip addresses" -msgstr "Разрешить перенаправление только для запрашивающих IP-адресов" +msgstr "Разрешить перенаправление только для запрашивающих IP-адресов." msgid "Announced model number" msgstr "Номер модели" @@ -53,22 +51,22 @@ msgid "Client Port" msgstr "Порт клиента" msgid "Collecting data..." -msgstr "Сбор данных..." +msgstr "Сбор информации..." msgid "Comment" msgstr "Комментарий" msgid "Delete" -msgstr "" +msgstr "Удалить" msgid "Description" -msgstr "" +msgstr "Описание" msgid "Device UUID" msgstr "UUID устройства" msgid "Downlink" -msgstr "Нисходящий канал" +msgstr "Входящее соединение" msgid "Enable NAT-PMP functionality" msgstr "Включить NAT-PMP" @@ -89,7 +87,7 @@ msgid "External ports" msgstr "Внешние порты" msgid "General Settings" -msgstr "Общие настройки" +msgstr "Основные настройки" msgid "Internal addresses" msgstr "Внутренние адреса" @@ -116,7 +114,7 @@ msgid "Protocol" msgstr "Протокол" msgid "Puts extra debugging information into the system log" -msgstr "Добавлять дополнительную отладочную информацию в системный журнал" +msgstr "Добавлять дополнительную отладочную информацию в системный журнал." msgid "Report system instead of daemon uptime" msgstr "Сообщать время работы системы вместо сервиса" @@ -144,21 +142,7 @@ msgid "Universal Plug & Play" msgstr "Universal Plug & Play" msgid "Uplink" -msgstr "Восходящий канал" +msgstr "Исходящее соединение" msgid "Value in KByte/s, informational only" msgstr "Значение в КБ/с, только для информации" - -#~ msgid "Delete Redirect" -#~ msgstr "Удалить переадресацию" - -# Used in upnpmini.lua, which is marked broken, thus can be removed -#~ msgid "" -#~ "UPNP allows clients in the local network to automatically configure the " -#~ "router." -#~ msgstr "" -#~ "UPnP позволяет клиентам в локальной сети автоматически настраивать " -#~ "маршрутизатор." - -#~ msgid "enable" -#~ msgstr "включить" diff --git a/applications/luci-app-ushare/po/ru/ushare.po b/applications/luci-app-ushare/po/ru/ushare.po index ac08e946d..42b16fbe1 100644 --- a/applications/luci-app-ushare/po/ru/ushare.po +++ b/applications/luci-app-ushare/po/ru/ushare.po @@ -1,22 +1,20 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: ushare\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-05-19 19:36+0200\n" -"PO-Revision-Date: 2012-08-15 11:29+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"POT-Creation-Date: 2012-08-15 11:29+0300\n" +"PO-Revision-Date: 2018-01-08 00:25+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.6\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "Content directories" -msgstr "Директории с содержимым" +msgstr "Папки с содержимым" msgid "Disable telnet console" msgstr "Выключить telnet-консоль" diff --git a/applications/luci-app-vnstat/po/ru/vnstat.po b/applications/luci-app-vnstat/po/ru/vnstat.po index 5254ca1ee..78f3a24b7 100644 --- a/applications/luci-app-vnstat/po/ru/vnstat.po +++ b/applications/luci-app-vnstat/po/ru/vnstat.po @@ -1,21 +1,20 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: vnstat\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: 2012-08-15 11:48+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"POT-Creation-Date: 2012-08-15 11:48+0300\n" +"PO-Revision-Date: 2018-01-07 17:38+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.4\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "Configuration" -msgstr "Конфигурация" +msgstr "Настройка" msgid "Daily traffic" msgstr "Трафик за день" @@ -36,8 +35,8 @@ msgid "" "No database has been set up yet. Go to the VnStat configuration and enable " "monitoring for one or more interfaces." msgstr "" -"База данных не настроена. Перейдите в конфигурацию и укажите интерфейсы для " -"сбора статистики." +"База данных не настроена. Выполните настройки и укажите интерфейсы для сбора " +"статистики." msgid "Restart VnStat" msgstr "Перезапустить VnStat" @@ -66,6 +65,3 @@ msgid "" msgstr "" "VnStat - монитор сетевого трафика для Linux, собирающий статистику по " "выбранным интерфейсам." - -#~ msgid "The VnStat service has been restarted." -#~ msgstr "VnStat сервис перезапущен." diff --git a/applications/luci-app-voice-core/po/ru/voice_core.po b/applications/luci-app-voice-core/po/ru/voice_core.po index b6631dfc0..4b89c6222 100644 --- a/applications/luci-app-voice-core/po/ru/voice_core.po +++ b/applications/luci-app-voice-core/po/ru/voice_core.po @@ -1,24 +1,19 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: voice_core\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: 2012-08-15 11:23+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"POT-Creation-Date: 2012-08-15 11:23+0300\n" +"PO-Revision-Date: 2018-01-08 00:20+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.6\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "Phones" msgstr "Телефоны" msgid "Voice" msgstr "Голос" - -#~ msgid "l_v_adminphones" -#~ msgstr "l_v_adminphones" diff --git a/applications/luci-app-voice-diag/po/ru/voice_diag.po b/applications/luci-app-voice-diag/po/ru/voice_diag.po index 5c98de015..2b8b808db 100644 --- a/applications/luci-app-voice-diag/po/ru/voice_diag.po +++ b/applications/luci-app-voice-diag/po/ru/voice_diag.po @@ -1,18 +1,17 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: voice_diag\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: 2012-08-15 11:22+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"POT-Creation-Date: 2012-08-15 11:22+0300\n" +"PO-Revision-Date: 2018-01-08 00:17+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.4\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "Diagnostics" msgstr "Диагностика" @@ -20,14 +19,11 @@ msgstr "Диагностика" msgid "" "The diagnostics available on your device depend on the modules that you have " "installed." -msgstr "Доступные виды диагностики зависят от установленных модулей." +msgstr "Доступные виды диагностики зависят от установленных плагинов." msgid "" "Under this menu are options that allow you to configure and perform tests on " "the voice operations of your system. These are known as diagnostics." msgstr "" -"В данном меню содержатся опции, которые позволяют вам протестировать " -"голосовые службы вашей системы. Это известно как \"диагностика\"." - -#~ msgid "l_v_d_admindiag" -#~ msgstr "l_v_d_admindiag" +"Утилита Диагностика, позволит вам протестировать голосовые службы вашей " +"системы." diff --git a/applications/luci-app-vpnbypass/po/ru/vpnbypass.po b/applications/luci-app-vpnbypass/po/ru/vpnbypass.po new file mode 100644 index 000000000..a50ea8b9f --- /dev/null +++ b/applications/luci-app-vpnbypass/po/ru/vpnbypass.po @@ -0,0 +1,95 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: vpnbypass\n" +"POT-Creation-Date: 2017-09-14 16:00+0300\n" +"PO-Revision-Date: 2017-10-17 21:00+0300\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Pootle 2.0.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "Domains to Bypass" +msgstr "Домены, для обхода блокировки" + +msgid "Domains to be accessed directly (outside of the VPN tunnel), see" +msgstr "Домены должны быть доступны напрямую (вне VPN-туннеля), см." + +msgid "Enable/start service" +msgstr "Включить/запустить сервис" + +msgid "Local IP Addresses to Bypass" +msgstr "Локальный IP адрес обхода VPN" + +msgid "" +"Local IP addresses or subnets with direct internet access (outside of the " +"VPN tunnel)" +msgstr "" +"Локальные IP адреса или подсети с прямым доступом в интернет (вне VPN-" +"туннеля)." + +msgid "Local Ports to Bypass" +msgstr "Локальные порты для обхода VPN" + +msgid "Local ports to trigger VPN Bypass" +msgstr "Локальные порты для запуска обхода VPN" + +msgid "README" +msgstr "Описание" + +msgid "Remote IP Addresses to Bypass" +msgstr "Удаленные IP адреса обхода VPN" + +msgid "" +"Remote IP addresses or subnets which will be accessed directly (outside of " +"the VPN tunnel)" +msgstr "" +"Удаленные IP-адреса или подсети, которые будут доступны напрямую (вне " +"туннеля VPN)." + +msgid "Remote Ports to Bypass" +msgstr "Удаленные порты для обхода VPN" + +msgid "Remote ports to trigger VPN Bypass" +msgstr "Удаленные порты для запуска обхода VPN" + +msgid "VPN Bypass" +msgstr "Обход VPN" + +msgid "VPN Bypass Settings" +msgstr "Настройки обхода VPN" + +msgid "for syntax" +msgstr "для синтаксиса" + +#~ msgid "Enable VPN Bypass" +#~ msgstr "Habilitar o VPN Bypass" + +#~ msgid "Configuration of VPN Bypass Settings" +#~ msgstr "Configurações do VPN Bypass" + +#~ msgid "Domains which will be accessed directly (outside of the VPN tunnel)" +#~ msgstr "Domínios que serão acessados diretamente (fora do túnel VPN)" + +#~ msgid "Local IP Subnets to Bypass" +#~ msgstr "Subredes IP locais para evitar a VPN" + +#~ msgid "" +#~ "Local IP ranges with direct internet access (outside of the VPN tunnel)" +#~ msgstr "" +#~ "Faixa de endereços IP locais que terão acesso internet direto (fora do " +#~ "túnel VPN)" + +#~ msgid "Remote IP Subnets to Bypass" +#~ msgstr "Subredes IP remotas para evitar a VPN" + +#~ msgid "" +#~ "Remote IP ranges which will be accessed directly (outside of the VPN " +#~ "tunnel)" +#~ msgstr "" +#~ "Faixa de endereços IP remotos que serão acessados diretamente (fora do " +#~ "túnel VPN)" diff --git a/applications/luci-app-watchcat/po/ru/watchcat.po b/applications/luci-app-watchcat/po/ru/watchcat.po index 83b95e201..5616baf42 100644 --- a/applications/luci-app-watchcat/po/ru/watchcat.po +++ b/applications/luci-app-watchcat/po/ru/watchcat.po @@ -1,17 +1,17 @@ msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: watchcat\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: \n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"POT-Creation-Date: 2013-10-06 11:15+0300\n" +"PO-Revision-Date: 2018-01-07 22:46+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "Forced reboot delay" msgstr "Задержка принудительной перезагрузки" @@ -25,7 +25,7 @@ msgid "" msgstr "" "Как часто проверять интернет-соединение. По умолчанию значение в секундах, " "вы можете использовать суффикс 'm' для указания минут, 'h' - часов, 'd' - " -"дней" +"дней." msgid "" "In periodic mode, it defines the reboot period. In internet mode, it defines " @@ -37,7 +37,7 @@ msgstr "" "интернет-режиме, данная настройка определяет максимальный период времени без " "доступа в интернет, после которого устройство перезагружается. По умолчанию " "значение в секундах, вы можете использовать суффикс 'm' для указания минут, " -"'h' - часов, 'd' - дней" +"'h' - часов, 'd' - дней." msgid "Operating mode" msgstr "Режим работы" @@ -54,21 +54,19 @@ msgstr "Период опроса" msgid "Watchcat" msgstr "Watchcat" -#, fuzzy msgid "" "Watchcat allows configuring a periodic reboot when the Internet connection " "has been lost for a certain period of time." msgstr "" -"Watchcat позволяет настроить периодическую перезагрузку устройства и/или " -"перезагрузку при потере интернет-соединения на определённое время." +"Watchcat позволяет настроить периодическую перезагрузку, при потере Интернет " +"соединения на определенное время." -#, fuzzy msgid "" "When rebooting the system, the watchcat will trigger a soft reboot. Entering " "a non zero value here will trigger a delayed hard reboot if the soft reboot " "fails. Enter a number of seconds to enable, use 0 to disable" msgstr "" -"При необходимости перезагрузке системы, watchcat вызовет программную " -"перезагрузку. При установке ненулевого значения, будет выполнена отложенная " -"аппаратная перезагрузка при неудачной программной. Установите количество " -"секунд для отложенной аппаратной перезагрузки или значение 0 для программной." +"При перезагрузке системы, watchcat вызовет программную перезагрузку. Ввод " +"ненулевого значения здесь, вызовет отложенную аппаратную перезагрузку, если " +"программная перезагрузка не удастся. Введите количество секунд, чтобы " +"включить, используйте '0', чтобы отключить." diff --git a/applications/luci-app-wifischedule/po/ru/wifischedule.po b/applications/luci-app-wifischedule/po/ru/wifischedule.po new file mode 100644 index 000000000..a5fd3ed40 --- /dev/null +++ b/applications/luci-app-wifischedule/po/ru/wifischedule.po @@ -0,0 +1,113 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: wifischedule\n" +"POT-Creation-Date: 2017-11-30 15:30+0300\n" +"PO-Revision-Date: 2018-01-07 17:52+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" + +msgid "Activate wifi" +msgstr "Включить Wi-Fi" + +msgid "Could not find required /usr/bin/wifi_schedule.sh or /sbin/wifi" +msgstr "Не удалось найти файл /usr/bin/wifi_schedule.sh или /sbin/wifi" + +msgid "Could not find required programm /usr/bin/iwinfo" +msgstr "Не удалось найти требуемую программу /usr/bin/iwinfo" + +msgid "Cron Jobs" +msgstr "Cron задания" + +msgid "Day(s) of Week" +msgstr "День (дни) недели" + +msgid "Defines a schedule when to turn on and off wifi." +msgstr "Определяет расписание включения и выключения Wi-Fi." + +msgid "Determine Modules Automatically" +msgstr "Автоматическое определение модулей" + +msgid "Disable wifi gracefully" +msgstr "Отключить Wi-Fi корректно" + +msgid "Disabled wifi forced" +msgstr "Отключить Wi-Fi принудительно" + +msgid "Enable" +msgstr "Включить" + +msgid "Enable Wifi Schedule" +msgstr "Включить Wi-Fi планировщик" + +msgid "Enable logging" +msgstr "Включить ведение системного журнала" + +msgid "Force disabling wifi even if stations associated" +msgstr "Принудительно отключить Wi-Fi даже если имеются подключенные клиенты" + +msgid "Friday" +msgstr "Пятница" + +msgid "Global Settings" +msgstr "Основные настройки" + +msgid "Monday" +msgstr "Понедельник" + +msgid "Saturday" +msgstr "Суббота" + +msgid "Schedule" +msgstr "Планировщик" + +msgid "Schedule events" +msgstr "Планировщик событий" + +msgid "Start Time" +msgstr "Время начала" + +msgid "Start WiFi" +msgstr "Время включения Wi-Fi" + +msgid "Stop Time" +msgstr "Время окончания" + +msgid "Stop WiFi" +msgstr "Время отключения Wi-Fi" + +msgid "Sunday" +msgstr "Воскресенье" + +msgid "The value %s is invalid" +msgstr "Значение %s является недействительным" + +msgid "Thursday" +msgstr "Четверг" + +msgid "Tuesday" +msgstr "Вторник" + +msgid "Unload Modules (experimental; saves more power)" +msgstr "" +"Плагины не загружаются (экспериментальная опция; экономит больше энергии)" + +msgid "View Cron Jobs" +msgstr "Показать сron задания" + +msgid "View Logfile" +msgstr "Показать системный журнал" + +msgid "Wednesday" +msgstr "Среда" + +msgid "Wifi Schedule" +msgstr "Wi-Fi планировщик" + +msgid "Wifi Schedule Logfile" +msgstr "Системный журнал Wi-Fi планировщика" diff --git a/applications/luci-app-wireguard/po/ru/wireguard.po b/applications/luci-app-wireguard/po/ru/wireguard.po new file mode 100644 index 000000000..0cbc8bb75 --- /dev/null +++ b/applications/luci-app-wireguard/po/ru/wireguard.po @@ -0,0 +1,77 @@ +msgid "" +msgstr "" +"Project-Id-Version: LuCI: wireguard\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-19 19:36+0200\n" +"PO-Revision-Date: 2017-11-30 21:48+0300\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Language-Team: http://cyber-place.ru\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Pootle 2.0.4\n" +"X-Poedit-SourceCharset: UTF-8\n" + +msgid "Allowed IPs" +msgstr "Разрешенные IP адреса" + +msgid "Collecting data..." +msgstr "Сбор информации..." + +msgid "Configuration" +msgstr "Настройка config файла" + +msgid "Data Received" +msgstr "Полученные данные" + +msgid "Data Transmitted" +msgstr "Переданные данные" + +msgid "Endpoint" +msgstr "Конечная точка" + +msgid "Firewall Mark" +msgstr "Метка фаервола" + +msgid "Interface" +msgstr "Интерфейс" + +msgid "Interface does not have a public key!" +msgstr "Интерфейс не имеет Публичного Ключа!" + +msgid "Latest Handshake" +msgstr "Последний хендшейк" + +msgid "Listen Port" +msgstr "Слушать порт" + +msgid "Never" +msgstr "Никогда" + +msgid "Peer" +msgstr "Пир" + +msgid "Persistent Keepalive" +msgstr "Постоянные Проверки Активности" + +msgid "Public Key" +msgstr "Публичный ключ" + +msgid "WireGuard Status" +msgstr "Состояние WireGuard" + +msgid "h ago" +msgstr "час назад" + +msgid "m ago" +msgstr "минуту назад" + +msgid "over a day ago" +msgstr "более суток назад" + +msgid "s ago" +msgstr "секунду назад" + diff --git a/applications/luci-app-wol/po/ru/wol.po b/applications/luci-app-wol/po/ru/wol.po index 9d3e08d56..b454a133a 100644 --- a/applications/luci-app-wol/po/ru/wol.po +++ b/applications/luci-app-wol/po/ru/wol.po @@ -1,46 +1,42 @@ -# Generated from applications/luci-wol/luasrc/model/cbi/wol.lua -# msgid "" msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: LuCI: wol\n" -"Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-19 00:29+0200\n" -"PO-Revision-Date: 2012-08-15 12:07+0300\n" -"Last-Translator: Roman A. aka BasicXP <x12ozmouse@ya.ru>\n" -"Language-Team: Russian <x12ozmouse@ya.ru>\n" -"Language: ru\n" +"PO-Revision-Date: 2018-01-07 18:00+0300\n" +"Language-Team: http://cyber-place.ru\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Pootle 2.0.4\n" -"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny <picfun@ya.ru>\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" msgid "Broadcast on all interfaces" msgstr "Использовать широковещательную передачу на все интерфейсы" msgid "Choose the host to wake up or enter a custom MAC address to use" -msgstr "Выберите хост, который необходимо разбудить, или введите его MAC-адрес" +msgstr "" +"Задать хост, который необходимо разбудить. Можно использовать MAC-адрес или " +"имя хоста." msgid "Host to wake up" -msgstr "Хост, который необходимо разбудить" +msgstr "Выбрать хост" msgid "Network interface to use" -msgstr "Используемый сетевой интерфейс" +msgstr "Выбрать интерфейс" msgid "Send to broadcast address" -msgstr "" +msgstr "Отправить на широковещательный адрес" -#, fuzzy msgid "" "Sometimes only one of the two tools works. If one fails, try the other one" msgstr "" -"Иногда только одна из двух утилит работает. В случае ошибки, попробуйте " -"использовать другую" +"Иногда работает только один из двух инструментов. Если один терпит неудачу, " +"попробуйте другой." msgid "Specifies the interface the WoL packet is sent on" -msgstr "Определяет интерфейс, по которому будут посланы пакеты WoL" +msgstr "Задать сетевой интерфейс, по которому будут посланы пакеты WoL." msgid "Starting WoL utility:" msgstr "Запуск WoL утилиты:" @@ -59,4 +55,4 @@ msgid "Wake up host" msgstr "Разбудить хост" msgid "WoL program" -msgstr "Программа WoL" +msgstr "Утилита WoL" |