mirror of
https://github.com/itdoginfo/podkop.git
synced 2025-12-06 11:36:50 +03:00
Merge pull request #184 from itdoginfo/split_dns
Replacing Split DNS with Domain Resolver and Bootstrap DNS
This commit is contained in:
@@ -60,38 +60,27 @@ function createAdditionalSection(mainSection, network) {
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
o = mainSection.taboption('additional', form.Flag, 'split_dns_enabled', _('Split DNS'), _('DNS for the list via proxy'));
|
o = mainSection.taboption('additional', form.Value, 'bootstrap_dns_server', _('Bootstrap DNS server'), _('The DNS server used to look up the IP address of an upstream DNS server'));
|
||||||
o.default = '1';
|
o.value('77.88.8.8', '77.88.8.8 (Yandex DNS)');
|
||||||
|
o.value('77.88.8.1', '77.88.8.1 (Yandex DNS)');
|
||||||
|
o.value('1.1.1.1', '1.1.1.1 (Cloudflare DNS)');
|
||||||
|
o.value('1.0.0.1', '1.0.0.1 (Cloudflare DNS)');
|
||||||
|
o.value('8.8.8.8', '8.8.8.8 (Google DNS)');
|
||||||
|
o.value('8.8.4.4', '8.8.4.4 (Google DNS)');
|
||||||
|
o.value('9.9.9.9', '9.9.9.9 (Quad9 DNS)');
|
||||||
|
o.value('9.9.9.11', '9.9.9.11 (Quad9 DNS)');
|
||||||
|
o.default = '77.88.8.8';
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
o.ucisection = 'main';
|
o.ucisection = 'main';
|
||||||
|
|
||||||
o = mainSection.taboption('additional', form.ListValue, 'split_dns_type', _('Split DNS Protocol Type'), _('Select DNS protocol for split'));
|
|
||||||
o.value('doh', _('DNS over HTTPS (DoH)'));
|
|
||||||
o.value('dot', _('DNS over TLS (DoT)'));
|
|
||||||
o.value('udp', _('UDP (Unprotected DNS)'));
|
|
||||||
o.default = 'udp';
|
|
||||||
o.rmempty = false;
|
|
||||||
o.depends('split_dns_enabled', '1');
|
|
||||||
o.ucisection = 'main';
|
|
||||||
|
|
||||||
o = mainSection.taboption('additional', form.Value, 'split_dns_server', _('Split DNS Server'), _('Select or enter DNS server address'));
|
|
||||||
Object.entries(constants.DNS_SERVER_OPTIONS).forEach(([key, label]) => {
|
|
||||||
o.value(key, _(label));
|
|
||||||
});
|
|
||||||
o.default = '1.1.1.1';
|
|
||||||
o.rmempty = false;
|
|
||||||
o.depends('split_dns_enabled', '1');
|
|
||||||
o.ucisection = 'main';
|
|
||||||
o.validate = function (section_id, value) {
|
o.validate = function (section_id, value) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
return _('DNS server address cannot be empty');
|
return _('DNS server address cannot be empty');
|
||||||
}
|
}
|
||||||
|
|
||||||
const ipRegex = /^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}(:[0-9]{1,5})?$/;
|
const ipRegex = /^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}(:[0-9]{1,5})?$/;
|
||||||
const domainRegex = /^(?:https:\/\/)?([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)+[a-zA-Z]{2,63}(:[0-9]{1,5})?(\/[^?#\s]*)?$/;
|
|
||||||
|
|
||||||
if (!ipRegex.test(value) && !domainRegex.test(value)) {
|
if (!ipRegex.test(value)) {
|
||||||
return _('Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com or dns.example.com/nicedns for DoH');
|
return _('Invalid DNS server format. Example: 8.8.8.8');
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -207,7 +196,6 @@ function createAdditionalSection(mainSection, network) {
|
|||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
o.ucisection = 'main';
|
o.ucisection = 'main';
|
||||||
|
|
||||||
// TODO(ampetelin): Can be moved to advanced settings in luci
|
|
||||||
// Extra IPs and exclusions (main section)
|
// Extra IPs and exclusions (main section)
|
||||||
o = mainSection.taboption('basic', form.Flag, 'exclude_from_ip_enabled', _('IP for exclusion'), _('Specify local IP addresses that will never use the configured route'));
|
o = mainSection.taboption('basic', form.Flag, 'exclude_from_ip_enabled', _('IP for exclusion'), _('Specify local IP addresses that will never use the configured route'));
|
||||||
o.default = '0';
|
o.default = '0';
|
||||||
|
|||||||
@@ -240,6 +240,44 @@ function createConfigSection(section, map, network) {
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
o = s.taboption('basic', form.Flag, 'domain_resolver_enabled', _('Domain Resolver'), _('Enable built-in DNS resolver for domains handled by this section'));
|
||||||
|
o.default = '0';
|
||||||
|
o.rmempty = false;
|
||||||
|
o.depends('mode', 'vpn');
|
||||||
|
o.ucisection = s.section;
|
||||||
|
|
||||||
|
o = s.taboption('basic', form.ListValue, 'domain_resolver_dns_type', _('DNS Protocol Type'), _('Select the DNS protocol type for the domain resolver'));
|
||||||
|
o.value('doh', _('DNS over HTTPS (DoH)'));
|
||||||
|
o.value('dot', _('DNS over TLS (DoT)'));
|
||||||
|
o.value('udp', _('UDP (Unprotected DNS)'));
|
||||||
|
o.default = 'udp';
|
||||||
|
o.rmempty = false;
|
||||||
|
o.depends('domain_resolver_enabled', '1');
|
||||||
|
o.ucisection = s.section;
|
||||||
|
|
||||||
|
o = s.taboption('basic', form.Value, 'domain_resolver_dns_server', _('DNS Server'), _('Select or enter DNS server address'));
|
||||||
|
Object.entries(constants.DNS_SERVER_OPTIONS).forEach(([key, label]) => {
|
||||||
|
o.value(key, _(label));
|
||||||
|
});
|
||||||
|
o.default = '8.8.8.8';
|
||||||
|
o.rmempty = false;
|
||||||
|
o.depends('domain_resolver_enabled', '1');
|
||||||
|
o.ucisection = s.section;
|
||||||
|
o.validate = function (section_id, value) {
|
||||||
|
if (!value) {
|
||||||
|
return _('DNS server address cannot be empty');
|
||||||
|
}
|
||||||
|
|
||||||
|
const ipRegex = /^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}(:[0-9]{1,5})?$/;
|
||||||
|
const domainRegex = /^(?:https:\/\/)?([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)+[a-zA-Z]{2,63}(:[0-9]{1,5})?(\/[^?#\s]*)?$/;
|
||||||
|
|
||||||
|
if (!ipRegex.test(value) && !domainRegex.test(value)) {
|
||||||
|
return _('Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com or dns.example.com/nicedns for DoH');
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
o = s.taboption('basic', form.Flag, 'community_lists_enabled', _('Community Lists'));
|
o = s.taboption('basic', form.Flag, 'community_lists_enabled', _('Community Lists'));
|
||||||
o.default = '0';
|
o.default = '0';
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
|
|||||||
@@ -62,12 +62,12 @@ const UPDATE_INTERVAL_OPTIONS = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const DNS_SERVER_OPTIONS = {
|
const DNS_SERVER_OPTIONS = {
|
||||||
'1.1.1.1': 'Cloudflare (1.1.1.1)',
|
'1.1.1.1': '1.1.1.1 (Cloudflare)',
|
||||||
'8.8.8.8': 'Google (8.8.8.8)',
|
'8.8.8.8': '8.8.8.8 (Google)',
|
||||||
'9.9.9.9': 'Quad9 (9.9.9.9)',
|
'9.9.9.9': '9.9.9.9 (Quad9)',
|
||||||
'dns.adguard-dns.com': 'AdGuard Default (dns.adguard-dns.com)',
|
'dns.adguard-dns.com': 'dns.adguard-dns.com (AdGuard Default)',
|
||||||
'unfiltered.adguard-dns.com': 'AdGuard Unfiltered (unfiltered.adguard-dns.com)',
|
'unfiltered.adguard-dns.com': 'unfiltered.adguard-dns.com (AdGuard Unfiltered)',
|
||||||
'family.adguard-dns.com': 'AdGuard Family (family.adguard-dns.com)'
|
'family.adguard-dns.com': 'family.adguard-dns.com (AdGuard Family)'
|
||||||
};
|
};
|
||||||
|
|
||||||
const DIAGNOSTICS_UPDATE_INTERVAL = 10000; // 10 seconds
|
const DIAGNOSTICS_UPDATE_INTERVAL = 10000; // 10 seconds
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ fi
|
|||||||
|
|
||||||
if [ -f "$POFILE" ]; then
|
if [ -f "$POFILE" ]; then
|
||||||
echo "Updating $POFILE"
|
echo "Updating $POFILE"
|
||||||
msgmerge --update --width="$WIDTH" "$POFILE" "$POTFILE"
|
msgmerge --update --width="$WIDTH" --no-location "$POFILE" "$POTFILE"
|
||||||
else
|
else
|
||||||
echo "Creating new $POFILE using msginit"
|
echo "Creating new $POFILE using msginit"
|
||||||
mkdir -p "$PODIR/$LANG"
|
mkdir -p "$PODIR/$LANG"
|
||||||
msginit --no-translator --locale="$LANG" --width="$WIDTH" --input="$POTFILE" --output-file="$POFILE"
|
msginit --no-translator --no-location --locale="$LANG" --width="$WIDTH" --input="$POTFILE" --output-file="$POFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Translation file for $LANG updated."
|
echo "Translation file for $LANG updated."
|
||||||
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PODKOP\n"
|
"Project-Id-Version: PODKOP\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-09-30 15:18+0500\n"
|
"POT-Creation-Date: 2025-10-02 19:37+0500\n"
|
||||||
"PO-Revision-Date: 2025-09-30 15:18+0500\n"
|
"PO-Revision-Date: 2025-09-30 15:18+0500\n"
|
||||||
"Last-Translator: Automatically generated\n"
|
"Last-Translator: Automatically generated\n"
|
||||||
"Language-Team: none\n"
|
"Language-Team: none\n"
|
||||||
@@ -17,292 +17,204 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\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"
|
"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"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:8
|
|
||||||
msgid "Additional Settings"
|
msgid "Additional Settings"
|
||||||
msgstr "Дополнительные настройки"
|
msgstr "Дополнительные настройки"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:10
|
|
||||||
msgid "Yacd enable"
|
msgid "Yacd enable"
|
||||||
msgstr "Включить Yacd"
|
msgstr "Включить Yacd"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:15
|
|
||||||
msgid "Exclude NTP"
|
msgid "Exclude NTP"
|
||||||
msgstr "Исключить NTP"
|
msgstr "Исключить NTP"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:15
|
|
||||||
msgid "Allows you to exclude NTP protocol traffic from the tunnel"
|
msgid "Allows you to exclude NTP protocol traffic from the tunnel"
|
||||||
msgstr "Позволяет исключить направление трафика NTP-протокола в туннель"
|
msgstr "Позволяет исключить направление трафика NTP-протокола в туннель"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:20
|
|
||||||
msgid "QUIC disable"
|
msgid "QUIC disable"
|
||||||
msgstr "Отключить QUIC"
|
msgstr "Отключить QUIC"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:20
|
|
||||||
msgid "For issues with the video stream"
|
msgid "For issues with the video stream"
|
||||||
msgstr "Для проблем с видеопотоком"
|
msgstr "Для проблем с видеопотоком"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:25
|
|
||||||
msgid "List Update Frequency"
|
msgid "List Update Frequency"
|
||||||
msgstr "Частота обновления списков"
|
msgstr "Частота обновления списков"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:25
|
|
||||||
msgid "Select how often the lists will be updated"
|
msgid "Select how often the lists will be updated"
|
||||||
msgstr "Выберите как часто будут обновляться списки"
|
msgstr "Выберите как часто будут обновляться списки"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:33
|
|
||||||
msgid "DNS Protocol Type"
|
msgid "DNS Protocol Type"
|
||||||
msgstr "Тип DNS протокола"
|
msgstr "Тип DNS протокола"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:33
|
|
||||||
msgid "Select DNS protocol to use"
|
msgid "Select DNS protocol to use"
|
||||||
msgstr "Выберите протокол DNS"
|
msgstr "Выберите протокол DNS"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:34
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:69
|
|
||||||
msgid "DNS over HTTPS (DoH)"
|
msgid "DNS over HTTPS (DoH)"
|
||||||
msgstr "DNS через HTTPS (DoH)"
|
msgstr "DNS через HTTPS (DoH)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:35
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:70
|
|
||||||
msgid "DNS over TLS (DoT)"
|
msgid "DNS over TLS (DoT)"
|
||||||
msgstr "DNS через TLS (DoT)"
|
msgstr "DNS через TLS (DoT)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:36
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:71
|
|
||||||
msgid "UDP (Unprotected DNS)"
|
msgid "UDP (Unprotected DNS)"
|
||||||
msgstr "UDP (Незащищённый DNS)"
|
msgstr "UDP (Незащищённый DNS)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:41
|
|
||||||
msgid "DNS Server"
|
msgid "DNS Server"
|
||||||
msgstr "DNS-сервер"
|
msgstr "DNS-сервер"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:41
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:77
|
|
||||||
msgid "Select or enter DNS server address"
|
msgid "Select or enter DNS server address"
|
||||||
msgstr "Выберите или введите адрес DNS-сервера"
|
msgstr "Выберите или введите адрес DNS-сервера"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:50
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:87
|
|
||||||
msgid "DNS server address cannot be empty"
|
msgid "DNS server address cannot be empty"
|
||||||
msgstr "Адрес DNS-сервера не может быть пустым"
|
msgstr "Адрес DNS-сервера не может быть пустым"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:57
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:94
|
|
||||||
msgid "Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com or dns.example.com/nicedns for DoH"
|
msgid "Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com or dns.example.com/nicedns for DoH"
|
||||||
msgstr "Неверный формат DNS-сервера. Примеры: 8.8.8.8 или dns.example.com или dns.example.com/nicedns для DoH"
|
msgstr "Неверный формат DNS-сервера. Примеры: 8.8.8.8 или dns.example.com или dns.example.com/nicedns для DoH"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:63
|
msgid "Bootstrap DNS server"
|
||||||
msgid "Split DNS"
|
msgstr "Bootstrap DNS-сервер"
|
||||||
msgstr "Раздельный DNS"
|
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:63
|
msgid "The DNS server used to look up the IP address of an upstream DNS server"
|
||||||
msgid "DNS for the list via proxy"
|
msgstr "DNS-сервер, используемый для поиска IP-адреса вышестоящего DNS-сервера"
|
||||||
msgstr "DNS для списка через прокси"
|
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:68
|
msgid "Invalid DNS server format. Example: 8.8.8.8"
|
||||||
msgid "Split DNS Protocol Type"
|
msgstr "Неверный формат DNS-сервера. Пример: 8.8.8.8"
|
||||||
msgstr "Тип протокола раздельного DNS"
|
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:68
|
|
||||||
msgid "Select DNS protocol for split"
|
|
||||||
msgstr "Выберите протокол DNS для разделения"
|
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:77
|
|
||||||
msgid "Split DNS Server"
|
|
||||||
msgstr "Раздельный DNS-сервер"
|
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:100
|
|
||||||
msgid "DNS Rewrite TTL"
|
msgid "DNS Rewrite TTL"
|
||||||
msgstr "Перезапись TTL для DNS"
|
msgstr "Перезапись TTL для DNS"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:100
|
|
||||||
msgid "Time in seconds for DNS record caching (default: 60)"
|
msgid "Time in seconds for DNS record caching (default: 60)"
|
||||||
msgstr "Время в секундах для кэширования DNS записей (по умолчанию: 60)"
|
msgstr "Время в секундах для кэширования DNS записей (по умолчанию: 60)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:106
|
|
||||||
msgid "TTL value cannot be empty"
|
msgid "TTL value cannot be empty"
|
||||||
msgstr "Значение TTL не может быть пустым"
|
msgstr "Значение TTL не может быть пустым"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:111
|
|
||||||
msgid "TTL must be a positive number"
|
msgid "TTL must be a positive number"
|
||||||
msgstr "TTL должно быть положительным числом"
|
msgstr "TTL должно быть положительным числом"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:117
|
|
||||||
msgid "Config File Path"
|
msgid "Config File Path"
|
||||||
msgstr "Путь к файлу конфигурации"
|
msgstr "Путь к файлу конфигурации"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:117
|
|
||||||
msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing"
|
msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing"
|
||||||
msgstr "Выберите путь к файлу конфигурации sing-box. Изменяйте это, ТОЛЬКО если вы знаете, что делаете"
|
msgstr "Выберите путь к файлу конфигурации sing-box. Изменяйте это, ТОЛЬКО если вы знаете, что делаете"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:124
|
|
||||||
msgid "Cache File Path"
|
msgid "Cache File Path"
|
||||||
msgstr "Путь к файлу кэша"
|
msgstr "Путь к файлу кэша"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:124
|
|
||||||
msgid "Select or enter path for sing-box cache file. Change this ONLY if you know what you are doing"
|
msgid "Select or enter path for sing-box cache file. Change this ONLY if you know what you are doing"
|
||||||
msgstr "Выберите или введите путь к файлу кеша sing-box. Изменяйте это, ТОЛЬКО если вы знаете, что делаете"
|
msgstr "Выберите или введите путь к файлу кеша sing-box. Изменяйте это, ТОЛЬКО если вы знаете, что делаете"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:132
|
|
||||||
msgid "Cache file path cannot be empty"
|
msgid "Cache file path cannot be empty"
|
||||||
msgstr "Путь к файлу кэша не может быть пустым"
|
msgstr "Путь к файлу кэша не может быть пустым"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:136
|
|
||||||
msgid "Path must be absolute (start with /)"
|
msgid "Path must be absolute (start with /)"
|
||||||
msgstr "Путь должен быть абсолютным (начинаться с /)"
|
msgstr "Путь должен быть абсолютным (начинаться с /)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:140
|
|
||||||
msgid "Path must end with cache.db"
|
msgid "Path must end with cache.db"
|
||||||
msgstr "Путь должен заканчиваться на cache.db"
|
msgstr "Путь должен заканчиваться на cache.db"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:145
|
|
||||||
msgid "Path must contain at least one directory (like /tmp/cache.db)"
|
msgid "Path must contain at least one directory (like /tmp/cache.db)"
|
||||||
msgstr "Путь должен содержать хотя бы одну директорию (например /tmp/cache.db)"
|
msgstr "Путь должен содержать хотя бы одну директорию (например /tmp/cache.db)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:151
|
|
||||||
msgid "Source Network Interface"
|
msgid "Source Network Interface"
|
||||||
msgstr "Сетевой интерфейс источника"
|
msgstr "Сетевой интерфейс источника"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:151
|
|
||||||
msgid "Select the network interface from which the traffic will originate"
|
msgid "Select the network interface from which the traffic will originate"
|
||||||
msgstr "Выберите сетевой интерфейс, с которого будет исходить трафик"
|
msgstr "Выберите сетевой интерфейс, с которого будет исходить трафик"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:175
|
|
||||||
msgid "Interface monitoring"
|
msgid "Interface monitoring"
|
||||||
msgstr "Мониторинг интерфейсов"
|
msgstr "Мониторинг интерфейсов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:175
|
|
||||||
msgid "Interface monitoring for bad WAN"
|
msgid "Interface monitoring for bad WAN"
|
||||||
msgstr "Мониторинг интерфейсов для плохого WAN"
|
msgstr "Мониторинг интерфейсов для плохого WAN"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:180
|
|
||||||
msgid "Interface for monitoring"
|
msgid "Interface for monitoring"
|
||||||
msgstr "Интерфейс для мониторинга"
|
msgstr "Интерфейс для мониторинга"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:180
|
|
||||||
msgid "Select the WAN interfaces to be monitored"
|
msgid "Select the WAN interfaces to be monitored"
|
||||||
msgstr "Выберите WAN интерфейсы для мониторинга"
|
msgstr "Выберите WAN интерфейсы для мониторинга"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:188
|
|
||||||
msgid "Interface Monitoring Delay"
|
msgid "Interface Monitoring Delay"
|
||||||
msgstr "Задержка при мониторинге интерфейсов"
|
msgstr "Задержка при мониторинге интерфейсов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:188
|
|
||||||
msgid "Delay in milliseconds before reloading podkop after interface UP"
|
msgid "Delay in milliseconds before reloading podkop after interface UP"
|
||||||
msgstr "Задержка в миллисекундах перед перезагрузкой podkop после поднятия интерфейса"
|
msgstr "Задержка в миллисекундах перед перезагрузкой podkop после поднятия интерфейса"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:195
|
|
||||||
msgid "Delay value cannot be empty"
|
msgid "Delay value cannot be empty"
|
||||||
msgstr "Значение задержки не может быть пустым"
|
msgstr "Значение задержки не может быть пустым"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:200
|
|
||||||
msgid "Dont touch my DHCP!"
|
msgid "Dont touch my DHCP!"
|
||||||
msgstr "Не трогать мой DHCP!"
|
msgstr "Не трогать мой DHCP!"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:200
|
|
||||||
msgid "Podkop will not change the DHCP config"
|
msgid "Podkop will not change the DHCP config"
|
||||||
msgstr "Podkop не будет изменять конфигурацию DHCP"
|
msgstr "Podkop не будет изменять конфигурацию DHCP"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:205
|
|
||||||
msgid "Proxy download of lists"
|
msgid "Proxy download of lists"
|
||||||
msgstr "Загрузка списков через прокси"
|
msgstr "Загрузка списков через прокси"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:205
|
|
||||||
msgid "Downloading all lists via main Proxy/VPN"
|
msgid "Downloading all lists via main Proxy/VPN"
|
||||||
msgstr "Загрузка всех списков через основной прокси/VPN"
|
msgstr "Загрузка всех списков через основной прокси/VPN"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:212
|
|
||||||
msgid "IP for exclusion"
|
msgid "IP for exclusion"
|
||||||
msgstr "IP для исключения"
|
msgstr "IP для исключения"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:212
|
|
||||||
msgid "Specify local IP addresses that will never use the configured route"
|
msgid "Specify local IP addresses that will never use the configured route"
|
||||||
msgstr "Укажите локальные IP-адреса, которые никогда не будут использовать настроенный маршрут"
|
msgstr "Укажите локальные IP-адреса, которые никогда не будут использовать настроенный маршрут"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:217
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:536
|
|
||||||
msgid "Local IPs"
|
msgid "Local IPs"
|
||||||
msgstr "Локальные IP адреса"
|
msgstr "Локальные IP адреса"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:217
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:536
|
|
||||||
msgid "Enter valid IPv4 addresses"
|
msgid "Enter valid IPv4 addresses"
|
||||||
msgstr "Введите действительные IPv4-адреса"
|
msgstr "Введите действительные IPv4-адреса"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:225
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:544
|
|
||||||
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
|
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
|
||||||
msgstr "Неверный формат IP. Используйте формат: X.X.X.X (например: 192.168.1.1)"
|
msgstr "Неверный формат IP. Используйте формат: X.X.X.X (например: 192.168.1.1)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:229
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:450
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:548
|
|
||||||
msgid "IP address parts must be between 0 and 255"
|
msgid "IP address parts must be between 0 and 255"
|
||||||
msgstr "Части IP-адреса должны быть между 0 и 255"
|
msgstr "Части IP-адреса должны быть между 0 и 255"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:234
|
|
||||||
msgid "Mixed enable"
|
msgid "Mixed enable"
|
||||||
msgstr "Включить смешанный режим"
|
msgstr "Включить смешанный режим"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:234
|
|
||||||
msgid "Browser port: 2080"
|
msgid "Browser port: 2080"
|
||||||
msgstr "Порт браузера: 2080"
|
msgstr "Порт браузера: 2080"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:13
|
|
||||||
msgid "URL must use one of the following protocols: "
|
msgid "URL must use one of the following protocols: "
|
||||||
msgstr "URL должен использовать один из следующих протоколов: "
|
msgstr "URL должен использовать один из следующих протоколов: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:17
|
|
||||||
msgid "Invalid URL format"
|
msgid "Invalid URL format"
|
||||||
msgstr "Неверный формат URL"
|
msgstr "Неверный формат URL"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:24
|
|
||||||
msgid "Basic Settings"
|
msgid "Basic Settings"
|
||||||
msgstr "Основные настройки"
|
msgstr "Основные настройки"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:26
|
|
||||||
msgid "Connection Type"
|
msgid "Connection Type"
|
||||||
msgstr "Тип подключения"
|
msgstr "Тип подключения"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:26
|
|
||||||
msgid "Select between VPN and Proxy connection methods for traffic routing"
|
msgid "Select between VPN and Proxy connection methods for traffic routing"
|
||||||
msgstr "Выберите между VPN и Proxy методами для маршрутизации трафика"
|
msgstr "Выберите между VPN и Proxy методами для маршрутизации трафика"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:32
|
|
||||||
msgid "Configuration Type"
|
msgid "Configuration Type"
|
||||||
msgstr "Тип конфигурации"
|
msgstr "Тип конфигурации"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:32
|
|
||||||
msgid "Select how to configure the proxy"
|
msgid "Select how to configure the proxy"
|
||||||
msgstr "Выберите способ настройки прокси"
|
msgstr "Выберите способ настройки прокси"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:33
|
|
||||||
msgid "Connection URL"
|
msgid "Connection URL"
|
||||||
msgstr "URL подключения"
|
msgstr "URL подключения"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:34
|
|
||||||
msgid "Outbound Config"
|
msgid "Outbound Config"
|
||||||
msgstr "Конфигурация Outbound"
|
msgstr "Конфигурация Outbound"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:35
|
|
||||||
msgid "URLTest"
|
msgid "URLTest"
|
||||||
msgstr "URLTest"
|
msgstr "URLTest"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:40
|
|
||||||
msgid "Proxy Configuration URL"
|
msgid "Proxy Configuration URL"
|
||||||
msgstr "URL конфигурации прокси"
|
msgstr "URL конфигурации прокси"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:64
|
|
||||||
msgid "Current config: "
|
msgid "Current config: "
|
||||||
msgstr "Текущая конфигурация: "
|
msgstr "Текущая конфигурация: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:67
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:71
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:77
|
|
||||||
msgid "Config without description"
|
msgid "Config without description"
|
||||||
msgstr "Конфигурация без описания"
|
msgstr "Конфигурация без описания"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:82
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Enter connection string starting with vless:// or ss:// for proxy configuration. Add comments with // for backup "
|
"Enter connection string starting with vless:// or ss:// for proxy configuration. Add comments with // for backup "
|
||||||
"configs"
|
"configs"
|
||||||
@@ -310,150 +222,121 @@ msgstr ""
|
|||||||
"Введите строку подключения, начинающуюся с vless:// или ss:// для настройки прокси. Добавляйте комментарии с // для "
|
"Введите строку подключения, начинающуюся с vless:// или ss:// для настройки прокси. Добавляйте комментарии с // для "
|
||||||
"сохранения других конфигураций"
|
"сохранения других конфигураций"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:100
|
|
||||||
msgid "No active configuration found. At least one non-commented line is required."
|
msgid "No active configuration found. At least one non-commented line is required."
|
||||||
msgstr "Активная конфигурация не найдена. Требуется хотя бы одна незакомментированная строка."
|
msgstr "Активная конфигурация не найдена. Требуется хотя бы одна незакомментированная строка."
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:104
|
|
||||||
msgid "URL must start with vless:// or ss://"
|
msgid "URL must start with vless:// or ss://"
|
||||||
msgstr "URL должен начинаться с vless:// или ss://"
|
msgstr "URL должен начинаться с vless:// или ss://"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:116
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:121
|
|
||||||
msgid "Invalid Shadowsocks URL format: missing method and password separator \":\""
|
msgid "Invalid Shadowsocks URL format: missing method and password separator \":\""
|
||||||
msgstr "Неверный формат URL Shadowsocks: отсутствует разделитель метода и пароля \":\""
|
msgstr "Неверный формат URL Shadowsocks: отсутствует разделитель метода и пароля \":\""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:125
|
|
||||||
msgid "Invalid Shadowsocks URL format"
|
msgid "Invalid Shadowsocks URL format"
|
||||||
msgstr "Неверный формат URL Shadowsocks"
|
msgstr "Неверный формат URL Shadowsocks"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:130
|
|
||||||
msgid "Invalid Shadowsocks URL: missing server address"
|
msgid "Invalid Shadowsocks URL: missing server address"
|
||||||
msgstr "Неверный URL Shadowsocks: отсутствует адрес сервера"
|
msgstr "Неверный URL Shadowsocks: отсутствует адрес сервера"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:132
|
|
||||||
msgid "Invalid Shadowsocks URL: missing server"
|
msgid "Invalid Shadowsocks URL: missing server"
|
||||||
msgstr "Неверный URL Shadowsocks: отсутствует сервер"
|
msgstr "Неверный URL Shadowsocks: отсутствует сервер"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:134
|
|
||||||
msgid "Invalid Shadowsocks URL: missing port"
|
msgid "Invalid Shadowsocks URL: missing port"
|
||||||
msgstr "Неверный URL Shadowsocks: отсутствует порт"
|
msgstr "Неверный URL Shadowsocks: отсутствует порт"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:137
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:157
|
|
||||||
msgid "Invalid port number. Must be between 1 and 65535"
|
msgid "Invalid port number. Must be between 1 and 65535"
|
||||||
msgstr "Неверный номер порта. Должен быть между 1 и 65535"
|
msgstr "Неверный номер порта. Должен быть между 1 и 65535"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:140
|
|
||||||
msgid "Invalid Shadowsocks URL: missing or invalid server/port format"
|
msgid "Invalid Shadowsocks URL: missing or invalid server/port format"
|
||||||
msgstr "Неверный URL Shadowsocks: отсутствует или неверный формат сервера/порта"
|
msgstr "Неверный URL Shadowsocks: отсутствует или неверный формат сервера/порта"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:146
|
|
||||||
msgid "Invalid VLESS URL: missing UUID"
|
msgid "Invalid VLESS URL: missing UUID"
|
||||||
msgstr "Неверный URL VLESS: отсутствует UUID"
|
msgstr "Неверный URL VLESS: отсутствует UUID"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:150
|
|
||||||
msgid "Invalid VLESS URL: missing server address"
|
msgid "Invalid VLESS URL: missing server address"
|
||||||
msgstr "Неверный URL VLESS: отсутствует адрес сервера"
|
msgstr "Неверный URL VLESS: отсутствует адрес сервера"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:152
|
|
||||||
msgid "Invalid VLESS URL: missing server"
|
msgid "Invalid VLESS URL: missing server"
|
||||||
msgstr "Неверный URL VLESS: отсутствует сервер"
|
msgstr "Неверный URL VLESS: отсутствует сервер"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:154
|
|
||||||
msgid "Invalid VLESS URL: missing port"
|
msgid "Invalid VLESS URL: missing port"
|
||||||
msgstr "Неверный URL VLESS: отсутствует порт"
|
msgstr "Неверный URL VLESS: отсутствует порт"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:160
|
|
||||||
msgid "Invalid VLESS URL: missing or invalid server/port format"
|
msgid "Invalid VLESS URL: missing or invalid server/port format"
|
||||||
msgstr "Неверный URL VLESS: отсутствует или неверный формат сервера/порта"
|
msgstr "Неверный URL VLESS: отсутствует или неверный формат сервера/порта"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:164
|
|
||||||
msgid "Invalid VLESS URL: missing query parameters"
|
msgid "Invalid VLESS URL: missing query parameters"
|
||||||
msgstr "Неверный URL VLESS: отсутствуют параметры запроса"
|
msgstr "Неверный URL VLESS: отсутствуют параметры запроса"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:170
|
|
||||||
msgid "Invalid VLESS URL: type must be one of tcp, raw, udp, grpc, http, ws"
|
msgid "Invalid VLESS URL: type must be one of tcp, raw, udp, grpc, http, ws"
|
||||||
msgstr "Неверный URL VLESS: тип должен быть одним из tcp, raw, udp, grpc, http, ws"
|
msgstr "Неверный URL VLESS: тип должен быть одним из tcp, raw, udp, grpc, http, ws"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:176
|
|
||||||
msgid "Invalid VLESS URL: security must be one of tls, reality, none"
|
msgid "Invalid VLESS URL: security must be one of tls, reality, none"
|
||||||
msgstr "Неверный URL VLESS: security должен быть одним из tls, reality, none"
|
msgstr "Неверный URL VLESS: security должен быть одним из tls, reality, none"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:180
|
|
||||||
msgid "Invalid VLESS URL: missing pbk parameter for reality security"
|
msgid "Invalid VLESS URL: missing pbk parameter for reality security"
|
||||||
msgstr "Неверный URL VLESS: отсутствует параметр pbk для security reality"
|
msgstr "Неверный URL VLESS: отсутствует параметр pbk для security reality"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:181
|
|
||||||
msgid "Invalid VLESS URL: missing fp parameter for reality security"
|
msgid "Invalid VLESS URL: missing fp parameter for reality security"
|
||||||
msgstr "Неверный URL VLESS: отсутствует параметр fp для security reality"
|
msgstr "Неверный URL VLESS: отсутствует параметр fp для security reality"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:188
|
|
||||||
msgid "Invalid URL format: "
|
msgid "Invalid URL format: "
|
||||||
msgstr "Неверный формат URL: "
|
msgstr "Неверный формат URL: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:192
|
|
||||||
msgid "Outbound Configuration"
|
msgid "Outbound Configuration"
|
||||||
msgstr "Конфигурация исходящего соединения"
|
msgstr "Конфигурация исходящего соединения"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:192
|
|
||||||
msgid "Enter complete outbound configuration in JSON format"
|
msgid "Enter complete outbound configuration in JSON format"
|
||||||
msgstr "Введите полную конфигурацию исходящего соединения в формате JSON"
|
msgstr "Введите полную конфигурацию исходящего соединения в формате JSON"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:201
|
|
||||||
msgid "JSON must contain at least type, server and server_port fields"
|
msgid "JSON must contain at least type, server and server_port fields"
|
||||||
msgstr "JSON должен содержать как минимум поля type, server и server_port"
|
msgstr "JSON должен содержать как минимум поля type, server и server_port"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:205
|
|
||||||
msgid "Invalid JSON format"
|
msgid "Invalid JSON format"
|
||||||
msgstr "Неверный формат JSON"
|
msgstr "Неверный формат JSON"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:209
|
|
||||||
msgid "URLTest Proxy Links"
|
msgid "URLTest Proxy Links"
|
||||||
msgstr "Ссылки прокси для URLTest"
|
msgstr "Ссылки прокси для URLTest"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:214
|
|
||||||
msgid "Shadowsocks UDP over TCP"
|
msgid "Shadowsocks UDP over TCP"
|
||||||
msgstr "Shadowsocks UDP через TCP"
|
msgstr "Shadowsocks UDP через TCP"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:214
|
|
||||||
msgid "Apply for SS2022"
|
msgid "Apply for SS2022"
|
||||||
msgstr "Применить для SS2022"
|
msgstr "Применить для SS2022"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:220
|
|
||||||
msgid "Network Interface"
|
msgid "Network Interface"
|
||||||
msgstr "Сетевой интерфейс"
|
msgstr "Сетевой интерфейс"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:220
|
|
||||||
msgid "Select network interface for VPN connection"
|
msgid "Select network interface for VPN connection"
|
||||||
msgstr "Выберите сетевой интерфейс для VPN подключения"
|
msgstr "Выберите сетевой интерфейс для VPN подключения"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:243
|
msgid "Domain Resolver"
|
||||||
|
msgstr "Резолвер доменов"
|
||||||
|
|
||||||
|
msgid "Enable built-in DNS resolver for domains handled by this section"
|
||||||
|
msgstr "Включить встроенный DNS-резолвер для доменов, обрабатываемых в этом разделе"
|
||||||
|
|
||||||
|
msgid "Select the DNS protocol type for the domain resolver"
|
||||||
|
msgstr "Выберите протокол DNS для резолвера доменов"
|
||||||
|
|
||||||
msgid "Community Lists"
|
msgid "Community Lists"
|
||||||
msgstr "Списки сообщества"
|
msgstr "Списки сообщества"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:248
|
|
||||||
msgid "Service List"
|
msgid "Service List"
|
||||||
msgstr "Список сервисов"
|
msgstr "Список сервисов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:248
|
|
||||||
msgid "Select predefined service for routing"
|
msgid "Select predefined service for routing"
|
||||||
msgstr "Выберите предустановленные сервисы для маршрутизации"
|
msgstr "Выберите предустановленные сервисы для маршрутизации"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:276
|
|
||||||
msgid "Regional options cannot be used together"
|
msgid "Regional options cannot be used together"
|
||||||
msgstr "Нельзя использовать несколько региональных опций"
|
msgstr "Нельзя использовать несколько региональных опций"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:277
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
||||||
msgstr "Предупреждение: %s нельзя использовать вместе с %s. Предыдущие варианты были удалены."
|
msgstr "Предупреждение: %s нельзя использовать вместе с %s. Предыдущие варианты были удалены."
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:287
|
|
||||||
msgid "Russia inside restrictions"
|
msgid "Russia inside restrictions"
|
||||||
msgstr "Ограничения Russia inside"
|
msgstr "Ограничения Russia inside"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:288
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Warning: Russia inside can only be used with %s. %s already in Russia inside and have been removed from selection."
|
"Warning: Russia inside can only be used with %s. %s already in Russia inside and have been removed from selection."
|
||||||
@@ -461,144 +344,105 @@ msgstr ""
|
|||||||
"Внимание: \"Russia inside\" может использоваться только с %s. %s уже находится в \"Russia inside\" и был удален из "
|
"Внимание: \"Russia inside\" может использоваться только с %s. %s уже находится в \"Russia inside\" и был удален из "
|
||||||
"выбора."
|
"выбора."
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:310
|
|
||||||
msgid "User Domain List Type"
|
msgid "User Domain List Type"
|
||||||
msgstr "Тип пользовательского списка доменов"
|
msgstr "Тип пользовательского списка доменов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:310
|
|
||||||
msgid "Select how to add your custom domains"
|
msgid "Select how to add your custom domains"
|
||||||
msgstr "Выберите способ добавления пользовательских доменов"
|
msgstr "Выберите способ добавления пользовательских доменов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:311
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:427
|
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr "Отключено"
|
msgstr "Отключено"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:312
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:428
|
|
||||||
msgid "Dynamic List"
|
msgid "Dynamic List"
|
||||||
msgstr "Динамический список"
|
msgstr "Динамический список"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:313
|
|
||||||
msgid "Text List"
|
msgid "Text List"
|
||||||
msgstr "Текстовый список"
|
msgstr "Текстовый список"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:318
|
|
||||||
msgid "User Domains"
|
msgid "User Domains"
|
||||||
msgstr "Пользовательские домены"
|
msgstr "Пользовательские домены"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:318
|
|
||||||
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
|
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
|
||||||
msgstr ""
|
msgstr "Введите доменные имена без указания протоколов (например: sub.example.com или example.com)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:327
|
|
||||||
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com or ru)"
|
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com or ru)"
|
||||||
msgstr "Введите имена доменов без протоколов (пример: sub.example.com или example.com)"
|
msgstr "Введите имена доменов без протоколов (пример: sub.example.com или example.com)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:332
|
|
||||||
msgid "User Domains List"
|
msgid "User Domains List"
|
||||||
msgstr "Список пользовательских доменов"
|
msgstr "Список пользовательских доменов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:332
|
|
||||||
msgid "Enter domain names separated by comma, space or newline. You can add comments after //"
|
msgid "Enter domain names separated by comma, space or newline. You can add comments after //"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Введите имена доменов, разделяя их запятой, пробелом или с новой строки. Вы можете добавлять комментарии после //"
|
"Введите имена доменов, разделяя их запятой, пробелом или с новой строки. Вы можете добавлять комментарии после //"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:360
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Invalid domain format: %s. Enter domain without protocol"
|
msgid "Invalid domain format: %s. Enter domain without protocol"
|
||||||
msgstr "Неверный формат домена: %s. Введите домен без протокола"
|
msgstr "Неверный формат домена: %s. Введите домен без протокола"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:367
|
|
||||||
msgid "At least one valid domain must be specified. Comments-only content is not allowed."
|
msgid "At least one valid domain must be specified. Comments-only content is not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Должен быть указан хотя бы один действительный домен. Содержимое, состоящее только из комментариев, не допускается."
|
"Должен быть указан хотя бы один действительный домен. Содержимое, состоящее только из комментариев, не допускается."
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:373
|
|
||||||
msgid "Local Domain Lists"
|
msgid "Local Domain Lists"
|
||||||
msgstr "Локальные списки доменов"
|
msgstr "Локальные списки доменов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:373
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:407
|
|
||||||
msgid "Use the list from the router filesystem"
|
msgid "Use the list from the router filesystem"
|
||||||
msgstr "Использовать список из файловой системы роутера"
|
msgstr "Использовать список из файловой системы роутера"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:378
|
|
||||||
msgid "Local Domain List Paths"
|
msgid "Local Domain List Paths"
|
||||||
msgstr "Пути к локальным спискам доменов"
|
msgstr "Пути к локальным спискам доменов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:378
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:412
|
|
||||||
msgid "Enter the list file path"
|
msgid "Enter the list file path"
|
||||||
msgstr "Введите путь к файлу списка"
|
msgstr "Введите путь к файлу списка"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:387
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:421
|
|
||||||
msgid "Invalid path format. Path must start with \"/\" and contain valid characters"
|
msgid "Invalid path format. Path must start with \"/\" and contain valid characters"
|
||||||
msgstr "Неверный формат пути. Путь должен начинаться с \"/\" и содержать допустимые символы"
|
msgstr "Неверный формат пути. Путь должен начинаться с \"/\" и содержать допустимые символы"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:392
|
|
||||||
msgid "Remote Domain Lists"
|
msgid "Remote Domain Lists"
|
||||||
msgstr "Удаленные списки доменов"
|
msgstr "Удаленные списки доменов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:392
|
|
||||||
msgid "Download and use domain lists from remote URLs"
|
msgid "Download and use domain lists from remote URLs"
|
||||||
msgstr "Загрузка и использование списков доменов с удаленных URL"
|
msgstr "Загрузка и использование списков доменов с удаленных URL"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:397
|
|
||||||
msgid "Remote Domain URLs"
|
msgid "Remote Domain URLs"
|
||||||
msgstr "URL удаленных доменов"
|
msgstr "URL удаленных доменов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:397
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:521
|
|
||||||
msgid "Enter full URLs starting with http:// or https://"
|
msgid "Enter full URLs starting with http:// or https://"
|
||||||
msgstr "Введите полные URL, начинающиеся с http:// или https://"
|
msgstr "Введите полные URL, начинающиеся с http:// или https://"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:407
|
|
||||||
msgid "Local Subnet Lists"
|
msgid "Local Subnet Lists"
|
||||||
msgstr "Локальные списки подсетей"
|
msgstr "Локальные списки подсетей"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:412
|
|
||||||
msgid "Local Subnet List Paths"
|
msgid "Local Subnet List Paths"
|
||||||
msgstr "Пути к локальным спискам подсетей"
|
msgstr "Пути к локальным спискам подсетей"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:426
|
|
||||||
msgid "User Subnet List Type"
|
msgid "User Subnet List Type"
|
||||||
msgstr "Тип пользовательского списка подсетей"
|
msgstr "Тип пользовательского списка подсетей"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:426
|
|
||||||
msgid "Select how to add your custom subnets"
|
msgid "Select how to add your custom subnets"
|
||||||
msgstr "Выберите способ добавления пользовательских подсетей"
|
msgstr "Выберите способ добавления пользовательских подсетей"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:429
|
|
||||||
msgid "Text List (comma/space/newline separated)"
|
msgid "Text List (comma/space/newline separated)"
|
||||||
msgstr "Текстовый список (разделенный запятыми/пробелами/новыми строками)"
|
msgstr "Текстовый список (разделенный запятыми/пробелами/новыми строками)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:434
|
|
||||||
msgid "User Subnets"
|
msgid "User Subnets"
|
||||||
msgstr "Пользовательские подсети"
|
msgstr "Пользовательские подсети"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:434
|
|
||||||
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
|
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
|
||||||
msgstr "Введите подсети в нотации CIDR (пример: 103.21.244.0/22) или отдельные IP-адреса"
|
msgstr "Введите подсети в нотации CIDR (пример: 103.21.244.0/22) или отдельные IP-адреса"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:442
|
|
||||||
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
|
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
|
||||||
msgstr "Неверный формат. Используйте формат: X.X.X.X или X.X.X.X/Y"
|
msgstr "Неверный формат. Используйте формат: X.X.X.X или X.X.X.X/Y"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:445
|
|
||||||
msgid "IP address 0.0.0.0 is not allowed"
|
msgid "IP address 0.0.0.0 is not allowed"
|
||||||
msgstr "IP адрес не может быть 0.0.0.0"
|
msgstr "IP адрес не может быть 0.0.0.0"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:454
|
|
||||||
msgid "CIDR must be between 0 and 32"
|
msgid "CIDR must be between 0 and 32"
|
||||||
msgstr "CIDR должен быть между 0 и 32"
|
msgstr "CIDR должен быть между 0 и 32"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:459
|
|
||||||
msgid "User Subnets List"
|
msgid "User Subnets List"
|
||||||
msgstr "Список пользовательских подсетей"
|
msgstr "Список пользовательских подсетей"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:459
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline. You can add comments "
|
"Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline. You can add comments "
|
||||||
"after //"
|
"after //"
|
||||||
@@ -606,254 +450,178 @@ msgstr ""
|
|||||||
"Введите подсети в нотации CIDR или отдельные IP-адреса, разделенные запятой, пробелом или новой строкой. Вы можете "
|
"Введите подсети в нотации CIDR или отдельные IP-адреса, разделенные запятой, пробелом или новой строкой. Вы можете "
|
||||||
"добавлять комментарии после //"
|
"добавлять комментарии после //"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:487
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Invalid format: %s. Use format: X.X.X.X or X.X.X.X/Y"
|
msgid "Invalid format: %s. Use format: X.X.X.X or X.X.X.X/Y"
|
||||||
msgstr "Неверный формат: %s. Используйте формат: X.X.X.X или X.X.X.X/Y"
|
msgstr "Неверный формат: %s. Используйте формат: X.X.X.X или X.X.X.X/Y"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:495
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "IP parts must be between 0 and 255 in: %s"
|
msgid "IP parts must be between 0 and 255 in: %s"
|
||||||
msgstr "Части IP-адреса должны быть между 0 и 255 в: %s"
|
msgstr "Части IP-адреса должны быть между 0 и 255 в: %s"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:502
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "CIDR must be between 0 and 32 in: %s"
|
msgid "CIDR must be between 0 and 32 in: %s"
|
||||||
msgstr "CIDR должен быть между 0 и 32 в: %s"
|
msgstr "CIDR должен быть между 0 и 32 в: %s"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:510
|
|
||||||
msgid "At least one valid subnet or IP must be specified. Comments-only content is not allowed."
|
msgid "At least one valid subnet or IP must be specified. Comments-only content is not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Должна быть указана хотя бы одна действительная подсеть или IP. Содержимое, состоящее только из комментариев, не "
|
"Должна быть указана хотя бы одна действительная подсеть или IP. Содержимое, состоящее только из комментариев, не "
|
||||||
"допускается."
|
"допускается."
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:516
|
|
||||||
msgid "Remote Subnet Lists"
|
msgid "Remote Subnet Lists"
|
||||||
msgstr "Удаленные списки подсетей"
|
msgstr "Удаленные списки подсетей"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:516
|
|
||||||
msgid "Download and use subnet lists from remote URLs"
|
msgid "Download and use subnet lists from remote URLs"
|
||||||
msgstr "Загрузка и использование списков подсетей с удаленных URL"
|
msgstr "Загрузка и использование списков подсетей с удаленных URL"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:521
|
|
||||||
msgid "Remote Subnet URLs"
|
msgid "Remote Subnet URLs"
|
||||||
msgstr "URL удаленных подсетей"
|
msgstr "URL удаленных подсетей"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:531
|
|
||||||
msgid "IP for full redirection"
|
msgid "IP for full redirection"
|
||||||
msgstr "IP для полного перенаправления"
|
msgstr "IP для полного перенаправления"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:531
|
|
||||||
msgid "Specify local IP addresses whose traffic will always use the configured route"
|
msgid "Specify local IP addresses whose traffic will always use the configured route"
|
||||||
msgstr "Укажите локальные IP-адреса, трафик которых всегда будет использовать настроенный маршрут"
|
msgstr "Укажите локальные IP-адреса, трафик которых всегда будет использовать настроенный маршрут"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:121
|
|
||||||
msgid "Copied!"
|
msgid "Copied!"
|
||||||
msgstr "Скопировано!"
|
msgstr "Скопировано!"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:124
|
|
||||||
msgid "Failed to copy: "
|
msgid "Failed to copy: "
|
||||||
msgstr "Не удалось скопировать: "
|
msgstr "Не удалось скопировать: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:272
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:303
|
|
||||||
msgid "Copy to Clipboard"
|
msgid "Copy to Clipboard"
|
||||||
msgstr "Копировать в буфер обмена"
|
msgstr "Копировать в буфер обмена"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:276
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:307
|
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Закрыть"
|
msgstr "Закрыть"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:293
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:439
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:579
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:580
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:581
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:582
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:583
|
|
||||||
msgid "Loading..."
|
msgid "Loading..."
|
||||||
msgstr "Загрузка..."
|
msgstr "Загрузка..."
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:326
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:388
|
|
||||||
msgid "No output"
|
msgid "No output"
|
||||||
msgstr "Нет вывода"
|
msgstr "Нет вывода"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:338
|
|
||||||
msgid "FakeIP is working in browser!"
|
msgid "FakeIP is working in browser!"
|
||||||
msgstr "FakeIP работает в браузере!"
|
msgstr "FakeIP работает в браузере!"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:340
|
|
||||||
msgid "FakeIP is not working in browser"
|
msgid "FakeIP is not working in browser"
|
||||||
msgstr "FakeIP не работает в браузере"
|
msgstr "FakeIP не работает в браузере"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:341
|
|
||||||
msgid "Check DNS server on current device (PC, phone)"
|
msgid "Check DNS server on current device (PC, phone)"
|
||||||
msgstr "Проверьте DNS сервер на текущем устройстве (ПК, телефон)"
|
msgstr "Проверьте DNS сервер на текущем устройстве (ПК, телефон)"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:342
|
|
||||||
msgid "Its must be router!"
|
msgid "Its must be router!"
|
||||||
msgstr "Это должен быть роутер!"
|
msgstr "Это должен быть роутер!"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:355
|
|
||||||
msgid "Proxy working correctly"
|
msgid "Proxy working correctly"
|
||||||
msgstr "Прокси работает корректно"
|
msgstr "Прокси работает корректно"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:356
|
|
||||||
msgid "Direct IP: "
|
msgid "Direct IP: "
|
||||||
msgstr "Прямой IP: "
|
msgstr "Прямой IP: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:357
|
|
||||||
msgid "Proxy IP: "
|
msgid "Proxy IP: "
|
||||||
msgstr "Прокси IP: "
|
msgstr "Прокси IP: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:359
|
|
||||||
msgid "Proxy is not working - same IP for both domains"
|
msgid "Proxy is not working - same IP for both domains"
|
||||||
msgstr "Прокси не работает - одинаковый IP для обоих доменов"
|
msgstr "Прокси не работает - одинаковый IP для обоих доменов"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:360
|
|
||||||
msgid "IP: "
|
msgid "IP: "
|
||||||
msgstr "IP: "
|
msgstr "IP: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:362
|
|
||||||
msgid "Proxy check failed"
|
msgid "Proxy check failed"
|
||||||
msgstr "Проверка прокси не удалась"
|
msgstr "Проверка прокси не удалась"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:368
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:373
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:378
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:382
|
|
||||||
msgid "Check failed: "
|
msgid "Check failed: "
|
||||||
msgstr "Проверка не удалась: "
|
msgstr "Проверка не удалась: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:368
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:373
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:378
|
|
||||||
msgid "timeout"
|
msgid "timeout"
|
||||||
msgstr "таймаут"
|
msgstr "таймаут"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:393
|
|
||||||
msgid "Error: "
|
msgid "Error: "
|
||||||
msgstr "Ошибка: "
|
msgstr "Ошибка: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:461
|
|
||||||
msgid "Podkop Status"
|
msgid "Podkop Status"
|
||||||
msgstr "Статус Podkop"
|
msgstr "Статус Podkop"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:486
|
|
||||||
msgid "Global check"
|
msgid "Global check"
|
||||||
msgstr "Глобальная проверка"
|
msgstr "Глобальная проверка"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:488
|
|
||||||
msgid "Click here for all the info"
|
msgid "Click here for all the info"
|
||||||
msgstr "Нажмите для просмотра всей информации"
|
msgstr "Нажмите для просмотра всей информации"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:496
|
|
||||||
msgid "Update Lists"
|
msgid "Update Lists"
|
||||||
msgstr "Обновить списки"
|
msgstr "Обновить списки"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:498
|
|
||||||
msgid "Lists Update Results"
|
msgid "Lists Update Results"
|
||||||
msgstr "Результаты обновления списков"
|
msgstr "Результаты обновления списков"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:506
|
|
||||||
msgid "Sing-box Status"
|
msgid "Sing-box Status"
|
||||||
msgstr "Статус Sing-box"
|
msgstr "Статус Sing-box"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:527
|
|
||||||
msgid "Check NFT Rules"
|
msgid "Check NFT Rules"
|
||||||
msgstr "Проверить правила NFT"
|
msgstr "Проверить правила NFT"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:529
|
|
||||||
msgid "NFT Rules"
|
msgid "NFT Rules"
|
||||||
msgstr "Правила NFT"
|
msgstr "Правила NFT"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:532
|
|
||||||
msgid "Check DNSMasq"
|
msgid "Check DNSMasq"
|
||||||
msgstr "Проверить DNSMasq"
|
msgstr "Проверить DNSMasq"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:534
|
|
||||||
msgid "DNSMasq Configuration"
|
msgid "DNSMasq Configuration"
|
||||||
msgstr "Конфигурация DNSMasq"
|
msgstr "Конфигурация DNSMasq"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:542
|
|
||||||
msgid "FakeIP Status"
|
msgid "FakeIP Status"
|
||||||
msgstr "Статус FakeIP"
|
msgstr "Статус FakeIP"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:555
|
|
||||||
msgid "DNS Status"
|
msgid "DNS Status"
|
||||||
msgstr "Статус DNS"
|
msgstr "Статус DNS"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:564
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:780
|
|
||||||
msgid "Main config"
|
msgid "Main config"
|
||||||
msgstr "Основная конфигурация"
|
msgstr "Основная конфигурация"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:575
|
|
||||||
msgid "Version Information"
|
msgid "Version Information"
|
||||||
msgstr "Информация о версии"
|
msgstr "Информация о версии"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:579
|
|
||||||
msgid "Podkop: "
|
msgid "Podkop: "
|
||||||
msgstr "Podkop: "
|
msgstr "Podkop: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:580
|
|
||||||
msgid "LuCI App: "
|
msgid "LuCI App: "
|
||||||
msgstr "LuCI App: "
|
msgstr "LuCI App: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:581
|
|
||||||
msgid "Sing-box: "
|
msgid "Sing-box: "
|
||||||
msgstr "Sing-box: "
|
msgstr "Sing-box: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:582
|
|
||||||
msgid "OpenWrt Version: "
|
msgid "OpenWrt Version: "
|
||||||
msgstr "Версия OpenWrt: "
|
msgstr "Версия OpenWrt: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:583
|
|
||||||
msgid "Device Model: "
|
msgid "Device Model: "
|
||||||
msgstr "Модель устройства: "
|
msgstr "Модель устройства: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:694
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:700
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:706
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:719
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:720
|
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Неизвестно"
|
msgstr "Неизвестно"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:729
|
|
||||||
msgid "works in browser"
|
msgid "works in browser"
|
||||||
msgstr "работает в браузере"
|
msgstr "работает в браузере"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:729
|
|
||||||
msgid "does not work in browser"
|
msgid "does not work in browser"
|
||||||
msgstr ""
|
msgstr "не работает в браузере"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:738
|
|
||||||
msgid "works on router"
|
msgid "works on router"
|
||||||
msgstr "не работает в браузере"
|
msgstr "не работает в браузере"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:738
|
|
||||||
msgid "does not work on router"
|
msgid "does not work on router"
|
||||||
msgstr "не работает на роутере"
|
msgstr "не работает на роутере"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:793
|
|
||||||
msgid "Config: "
|
msgid "Config: "
|
||||||
msgstr "Конфигурация: "
|
msgstr "Конфигурация: "
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:807
|
|
||||||
msgid "Diagnostics"
|
msgid "Diagnostics"
|
||||||
msgstr "Диагностика"
|
msgstr "Диагностика"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/diagnosticTab.js:818
|
|
||||||
msgid "Podkop"
|
msgid "Podkop"
|
||||||
msgstr "Podkop"
|
msgstr "Podkop"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/podkop.js:84
|
|
||||||
msgid "Extra configurations"
|
msgid "Extra configurations"
|
||||||
msgstr "Дополнительные конфигурации"
|
msgstr "Дополнительные конфигурации"
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/podkop.js:87
|
|
||||||
msgid "Add Section"
|
msgid "Add Section"
|
||||||
msgstr "Добавить раздел"
|
msgstr "Добавить раздел"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PODKOP\n"
|
"Project-Id-Version: PODKOP\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2025-09-30 15:18+0500\n"
|
"POT-Creation-Date: 2025-10-02 19:37+0500\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -50,6 +50,7 @@ msgid "Select how often the lists will be updated"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:33
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:33
|
||||||
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:249
|
||||||
msgid "DNS Protocol Type"
|
msgid "DNS Protocol Type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -58,193 +59,187 @@ msgid "Select DNS protocol to use"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:34
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:34
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:69
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:250
|
||||||
msgid "DNS over HTTPS (DoH)"
|
msgid "DNS over HTTPS (DoH)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:35
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:35
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:70
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:251
|
||||||
msgid "DNS over TLS (DoT)"
|
msgid "DNS over TLS (DoT)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:36
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:36
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:71
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:252
|
||||||
msgid "UDP (Unprotected DNS)"
|
msgid "UDP (Unprotected DNS)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:41
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:41
|
||||||
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:258
|
||||||
msgid "DNS Server"
|
msgid "DNS Server"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:41
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:41
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:77
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:258
|
||||||
msgid "Select or enter DNS server address"
|
msgid "Select or enter DNS server address"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:50
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:50
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:87
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:77
|
||||||
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:268
|
||||||
msgid "DNS server address cannot be empty"
|
msgid "DNS server address cannot be empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:57
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:57
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:94
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:275
|
||||||
msgid "Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com or dns.example.com/nicedns for DoH"
|
msgid "Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com or dns.example.com/nicedns for DoH"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:63
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:63
|
||||||
msgid "Split DNS"
|
msgid "Bootstrap DNS server"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:63
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:63
|
||||||
msgid "DNS for the list via proxy"
|
msgid "The DNS server used to look up the IP address of an upstream DNS server"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:68
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:83
|
||||||
msgid "Split DNS Protocol Type"
|
msgid "Invalid DNS server format. Example: 8.8.8.8"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:68
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:89
|
||||||
msgid "Select DNS protocol for split"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:77
|
|
||||||
msgid "Split DNS Server"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:100
|
|
||||||
msgid "DNS Rewrite TTL"
|
msgid "DNS Rewrite TTL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:100
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:89
|
||||||
msgid "Time in seconds for DNS record caching (default: 60)"
|
msgid "Time in seconds for DNS record caching (default: 60)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:106
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:95
|
||||||
msgid "TTL value cannot be empty"
|
msgid "TTL value cannot be empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:111
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:100
|
||||||
msgid "TTL must be a positive number"
|
msgid "TTL must be a positive number"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:117
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:106
|
||||||
msgid "Config File Path"
|
msgid "Config File Path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:117
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:106
|
||||||
msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing"
|
msgid "Select path for sing-box config file. Change this ONLY if you know what you are doing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:124
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:113
|
||||||
msgid "Cache File Path"
|
msgid "Cache File Path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:124
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:113
|
||||||
msgid "Select or enter path for sing-box cache file. Change this ONLY if you know what you are doing"
|
msgid "Select or enter path for sing-box cache file. Change this ONLY if you know what you are doing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:132
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:121
|
||||||
msgid "Cache file path cannot be empty"
|
msgid "Cache file path cannot be empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:136
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:125
|
||||||
msgid "Path must be absolute (start with /)"
|
msgid "Path must be absolute (start with /)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:140
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:129
|
||||||
msgid "Path must end with cache.db"
|
msgid "Path must end with cache.db"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:145
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:134
|
||||||
msgid "Path must contain at least one directory (like /tmp/cache.db)"
|
msgid "Path must contain at least one directory (like /tmp/cache.db)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:151
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:140
|
||||||
msgid "Source Network Interface"
|
msgid "Source Network Interface"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:151
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:140
|
||||||
msgid "Select the network interface from which the traffic will originate"
|
msgid "Select the network interface from which the traffic will originate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:175
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:164
|
||||||
msgid "Interface monitoring"
|
msgid "Interface monitoring"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:175
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:164
|
||||||
msgid "Interface monitoring for bad WAN"
|
msgid "Interface monitoring for bad WAN"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:180
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:169
|
||||||
msgid "Interface for monitoring"
|
msgid "Interface for monitoring"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:180
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:169
|
||||||
msgid "Select the WAN interfaces to be monitored"
|
msgid "Select the WAN interfaces to be monitored"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:188
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:177
|
||||||
msgid "Interface Monitoring Delay"
|
msgid "Interface Monitoring Delay"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:188
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:177
|
||||||
msgid "Delay in milliseconds before reloading podkop after interface UP"
|
msgid "Delay in milliseconds before reloading podkop after interface UP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:195
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:184
|
||||||
msgid "Delay value cannot be empty"
|
msgid "Delay value cannot be empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:200
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:189
|
||||||
msgid "Dont touch my DHCP!"
|
msgid "Dont touch my DHCP!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:200
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:189
|
||||||
msgid "Podkop will not change the DHCP config"
|
msgid "Podkop will not change the DHCP config"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:205
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:194
|
||||||
msgid "Proxy download of lists"
|
msgid "Proxy download of lists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:205
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:194
|
||||||
msgid "Downloading all lists via main Proxy/VPN"
|
msgid "Downloading all lists via main Proxy/VPN"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:212
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:200
|
||||||
msgid "IP for exclusion"
|
msgid "IP for exclusion"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:212
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:200
|
||||||
msgid "Specify local IP addresses that will never use the configured route"
|
msgid "Specify local IP addresses that will never use the configured route"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:217
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:205
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:536
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:574
|
||||||
msgid "Local IPs"
|
msgid "Local IPs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:217
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:205
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:536
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:574
|
||||||
msgid "Enter valid IPv4 addresses"
|
msgid "Enter valid IPv4 addresses"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:225
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:213
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:544
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:582
|
||||||
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
|
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:229
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:217
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:450
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:488
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:548
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:586
|
||||||
msgid "IP address parts must be between 0 and 255"
|
msgid "IP address parts must be between 0 and 255"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:234
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:222
|
||||||
msgid "Mixed enable"
|
msgid "Mixed enable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:234
|
#: htdocs/luci-static/resources/view/podkop/additionalTab.js:222
|
||||||
msgid "Browser port: 2080"
|
msgid "Browser port: 2080"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -427,213 +422,225 @@ msgid "Select network interface for VPN connection"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:243
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:243
|
||||||
|
msgid "Domain Resolver"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:243
|
||||||
|
msgid "Enable built-in DNS resolver for domains handled by this section"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:249
|
||||||
|
msgid "Select the DNS protocol type for the domain resolver"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:281
|
||||||
msgid "Community Lists"
|
msgid "Community Lists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:248
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:286
|
||||||
msgid "Service List"
|
msgid "Service List"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:248
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:286
|
||||||
msgid "Select predefined service for routing"
|
msgid "Select predefined service for routing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:276
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:314
|
||||||
msgid "Regional options cannot be used together"
|
msgid "Regional options cannot be used together"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:277
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:315
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:287
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:325
|
||||||
msgid "Russia inside restrictions"
|
msgid "Russia inside restrictions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:288
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:326
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Warning: Russia inside can only be used with %s. %s already in Russia inside and have been removed from selection."
|
"Warning: Russia inside can only be used with %s. %s already in Russia inside and have been removed from selection."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:310
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:348
|
||||||
msgid "User Domain List Type"
|
msgid "User Domain List Type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:310
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:348
|
||||||
msgid "Select how to add your custom domains"
|
msgid "Select how to add your custom domains"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:311
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:349
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:427
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:465
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:312
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:350
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:428
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:466
|
||||||
msgid "Dynamic List"
|
msgid "Dynamic List"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:313
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:351
|
||||||
msgid "Text List"
|
msgid "Text List"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:318
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:356
|
||||||
msgid "User Domains"
|
msgid "User Domains"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:318
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:356
|
||||||
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
|
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:327
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:365
|
||||||
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com or ru)"
|
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com or ru)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:332
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:370
|
||||||
msgid "User Domains List"
|
msgid "User Domains List"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:332
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:370
|
||||||
msgid "Enter domain names separated by comma, space or newline. You can add comments after //"
|
msgid "Enter domain names separated by comma, space or newline. You can add comments after //"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:360
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:398
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Invalid domain format: %s. Enter domain without protocol"
|
msgid "Invalid domain format: %s. Enter domain without protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:367
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:405
|
||||||
msgid "At least one valid domain must be specified. Comments-only content is not allowed."
|
msgid "At least one valid domain must be specified. Comments-only content is not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:373
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:411
|
||||||
msgid "Local Domain Lists"
|
msgid "Local Domain Lists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:373
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:411
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:407
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:445
|
||||||
msgid "Use the list from the router filesystem"
|
msgid "Use the list from the router filesystem"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:378
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:416
|
||||||
msgid "Local Domain List Paths"
|
msgid "Local Domain List Paths"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:378
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:416
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:412
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:450
|
||||||
msgid "Enter the list file path"
|
msgid "Enter the list file path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:387
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:425
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:421
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:459
|
||||||
msgid "Invalid path format. Path must start with \"/\" and contain valid characters"
|
msgid "Invalid path format. Path must start with \"/\" and contain valid characters"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:392
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:430
|
||||||
msgid "Remote Domain Lists"
|
msgid "Remote Domain Lists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:392
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:430
|
||||||
msgid "Download and use domain lists from remote URLs"
|
msgid "Download and use domain lists from remote URLs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:397
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:435
|
||||||
msgid "Remote Domain URLs"
|
msgid "Remote Domain URLs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:397
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:435
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:521
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:559
|
||||||
msgid "Enter full URLs starting with http:// or https://"
|
msgid "Enter full URLs starting with http:// or https://"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:407
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:445
|
||||||
msgid "Local Subnet Lists"
|
msgid "Local Subnet Lists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:412
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:450
|
||||||
msgid "Local Subnet List Paths"
|
msgid "Local Subnet List Paths"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:426
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:464
|
||||||
msgid "User Subnet List Type"
|
msgid "User Subnet List Type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:426
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:464
|
||||||
msgid "Select how to add your custom subnets"
|
msgid "Select how to add your custom subnets"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:429
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:467
|
||||||
msgid "Text List (comma/space/newline separated)"
|
msgid "Text List (comma/space/newline separated)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:434
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:472
|
||||||
msgid "User Subnets"
|
msgid "User Subnets"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:434
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:472
|
||||||
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
|
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:442
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:480
|
||||||
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
|
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:445
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:483
|
||||||
msgid "IP address 0.0.0.0 is not allowed"
|
msgid "IP address 0.0.0.0 is not allowed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:454
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:492
|
||||||
msgid "CIDR must be between 0 and 32"
|
msgid "CIDR must be between 0 and 32"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:459
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:497
|
||||||
msgid "User Subnets List"
|
msgid "User Subnets List"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:459
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:497
|
||||||
msgid ""
|
msgid ""
|
||||||
"Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline. You can add comments "
|
"Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline. You can add comments "
|
||||||
"after //"
|
"after //"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:487
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:525
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Invalid format: %s. Use format: X.X.X.X or X.X.X.X/Y"
|
msgid "Invalid format: %s. Use format: X.X.X.X or X.X.X.X/Y"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:495
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:533
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "IP parts must be between 0 and 255 in: %s"
|
msgid "IP parts must be between 0 and 255 in: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:502
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:540
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "CIDR must be between 0 and 32 in: %s"
|
msgid "CIDR must be between 0 and 32 in: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:510
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:548
|
||||||
msgid "At least one valid subnet or IP must be specified. Comments-only content is not allowed."
|
msgid "At least one valid subnet or IP must be specified. Comments-only content is not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:516
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:554
|
||||||
msgid "Remote Subnet Lists"
|
msgid "Remote Subnet Lists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:516
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:554
|
||||||
msgid "Download and use subnet lists from remote URLs"
|
msgid "Download and use subnet lists from remote URLs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:521
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:559
|
||||||
msgid "Remote Subnet URLs"
|
msgid "Remote Subnet URLs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:531
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:569
|
||||||
msgid "IP for full redirection"
|
msgid "IP for full redirection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: htdocs/luci-static/resources/view/podkop/configSection.js:531
|
#: htdocs/luci-static/resources/view/podkop/configSection.js:569
|
||||||
msgid "Specify local IP addresses whose traffic will always use the configured route"
|
msgid "Specify local IP addresses whose traffic will always use the configured route"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -576,16 +576,6 @@ list_update() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
find_working_resolver() {
|
|
||||||
for resolver in $DNS_RESOLVERS; do
|
|
||||||
if nslookup -timeout=2 $FAKEIP_TEST_DOMAIN $resolver > /dev/null 2>&1; then
|
|
||||||
echo "$resolver"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# sing-box funcs
|
# sing-box funcs
|
||||||
|
|
||||||
sing_box_uci() {
|
sing_box_uci() {
|
||||||
@@ -709,7 +699,7 @@ configure_outbound_handler() {
|
|||||||
else
|
else
|
||||||
outbound_tags="$outbound_tags,$outbound_tag"
|
outbound_tags="$outbound_tags,$outbound_tag"
|
||||||
fi
|
fi
|
||||||
i=$((i+1))
|
i=$((i + 1))
|
||||||
done
|
done
|
||||||
|
|
||||||
urltest_tag="$(get_outbound_tag_by_section "$section-urltest")"
|
urltest_tag="$(get_outbound_tag_by_section "$section-urltest")"
|
||||||
@@ -727,15 +717,32 @@ configure_outbound_handler() {
|
|||||||
;;
|
;;
|
||||||
vpn)
|
vpn)
|
||||||
log "Configuring outbound in VPN connection mode for the $section section"
|
log "Configuring outbound in VPN connection mode for the $section section"
|
||||||
local interface_name
|
local interface_name domain_resolver_enabled domain_resolver_dns_type domain_resolver_dns_server \
|
||||||
|
outbound_tag domain_resolver_tag dns_domain_resolver
|
||||||
|
|
||||||
config_get interface_name "$section" "interface"
|
config_get interface_name "$section" "interface"
|
||||||
|
config_get domain_resolver_enabled "$section" "domain_resolver_enabled"
|
||||||
|
config_get domain_resolver_dns_type "$section" "domain_resolver_dns_type"
|
||||||
|
config_get domain_resolver_dns_server "$section" "domain_resolver_dns_server"
|
||||||
|
|
||||||
if [ -z "$interface_name" ]; then
|
if [ -z "$interface_name" ]; then
|
||||||
log "VPN interface is not set. Aborted." "fatal"
|
log "VPN interface is not set. Aborted." "fatal"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
config=$(sing_box_cf_add_interface_outbound "$config" "$section" "$interface_name")
|
local outbound_tag
|
||||||
|
outbound_tag="$(get_outbound_tag_by_section "$section")"
|
||||||
|
|
||||||
|
if [ "$domain_resolver_enabled" -eq 1 ]; then
|
||||||
|
if ! is_ipv4 "$domain_resolver_dns_server"; then
|
||||||
|
dns_domain_resolver=$SB_BOOTSTRAP_SERVER_TAG
|
||||||
|
fi
|
||||||
|
domain_resolver_tag="$(get_domain_resolver_tag "$section")"
|
||||||
|
config=$(sing_box_cf_add_dns_server "$config" "$domain_resolver_dns_type" "$domain_resolver_tag" \
|
||||||
|
"$domain_resolver_dns_server" "$dns_domain_resolver" "$outbound_tag")
|
||||||
|
fi
|
||||||
|
|
||||||
|
config=$(sing_box_cm_add_interface_outbound "$config" "$outbound_tag" "$interface_name" "$domain_resolver_tag")
|
||||||
;;
|
;;
|
||||||
block)
|
block)
|
||||||
log "Connection mode 'block' detected for the $section section – no outbound will be created (handled via reject route rules)"
|
log "Connection mode 'block' detected for the $section section – no outbound will be created (handled via reject route rules)"
|
||||||
@@ -749,53 +756,21 @@ configure_outbound_handler() {
|
|||||||
|
|
||||||
sing_box_configure_dns() {
|
sing_box_configure_dns() {
|
||||||
log "Configure the DNS section of a sing-box JSON configuration"
|
log "Configure the DNS section of a sing-box JSON configuration"
|
||||||
local split_dns_enabled final_dns_server
|
config=$(sing_box_cm_configure_dns "$config" "$SB_DNS_SERVER_TAG" "ipv4_only" true)
|
||||||
config_get_bool split_dns_enabled "main" "split_dns_enabled" 0
|
|
||||||
if [ "$split_dns_enabled" -eq 1 ]; then
|
|
||||||
final_dns_server="$SB_SPLIT_DNS_SERVER_TAG"
|
|
||||||
else
|
|
||||||
final_dns_server="$SB_DNS_SERVER_TAG"
|
|
||||||
fi
|
|
||||||
config=$(sing_box_cm_configure_dns "$config" "$final_dns_server" "ipv4_only" true)
|
|
||||||
|
|
||||||
local dns_type dns_server split_dns_type split_dns_server dns_server_address split_dns_server_address
|
log "Adding DNS Servers" "debug"
|
||||||
|
local dns_type dns_server bootstrap_dns_server dns_domain_resolver
|
||||||
config_get dns_type "main" "dns_type" "doh"
|
config_get dns_type "main" "dns_type" "doh"
|
||||||
config_get dns_server "main" "dns_server" "1.1.1.1"
|
config_get dns_server "main" "dns_server" "1.1.1.1"
|
||||||
config_get split_dns_type "main" "split_dns_type" "udp"
|
config_get bootstrap_dns_server "main" "bootstrap_dns_server" "77.88.8.8"
|
||||||
config_get split_dns_server "main" "split_dns_server" "1.1.1.1"
|
|
||||||
dns_server_address=$(url_get_host "$dns_server")
|
|
||||||
split_dns_server_address=$(url_get_host "$split_dns_server")
|
|
||||||
|
|
||||||
local need_dns_domain_resolver=0
|
if ! is_ipv4 "$dns_server"; then
|
||||||
if ! is_ipv4 "$dns_server_address" || ! is_ipv4 "$split_dns_server_address"; then
|
dns_domain_resolver=$SB_BOOTSTRAP_SERVER_TAG
|
||||||
need_dns_domain_resolver=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Adding DNS Servers"
|
|
||||||
config=$(sing_box_cm_add_fakeip_dns_server "$config" "$SB_FAKEIP_DNS_SERVER_TAG" "$SB_FAKEIP_INET4_RANGE")
|
|
||||||
|
|
||||||
local dns_domain_resolver
|
|
||||||
if [ "$need_dns_domain_resolver" -eq 1 ]; then
|
|
||||||
log "One of the DNS server addresses is a domain. Searching for a working DNS server..."
|
|
||||||
dns_domain_resolver=$(find_working_resolver)
|
|
||||||
if [ -z "$dns_domain_resolver" ]; then
|
|
||||||
log "Working DNS server not found, using default DNS server"
|
|
||||||
dns_domain_resolver="1.1.1.1"
|
|
||||||
else
|
|
||||||
log "Working DNS server has been found: $dns_domain_resolver"
|
|
||||||
fi
|
|
||||||
config=$(sing_box_cm_add_udp_dns_server "$config" "$SB_DNS_DOMAIN_RESOLVER_TAG" "$dns_domain_resolver" 53)
|
|
||||||
dns_domain_resolver="$SB_DNS_DOMAIN_RESOLVER_TAG"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
config=$(sing_box_cm_add_udp_dns_server "$config" "$SB_BOOTSTRAP_SERVER_TAG" "$bootstrap_dns_server" 53)
|
||||||
config=$(sing_box_cf_add_dns_server "$config" "$dns_type" "$SB_DNS_SERVER_TAG" "$dns_server" "$dns_domain_resolver")
|
config=$(sing_box_cf_add_dns_server "$config" "$dns_type" "$SB_DNS_SERVER_TAG" "$dns_server" "$dns_domain_resolver")
|
||||||
|
config=$(sing_box_cm_add_fakeip_dns_server "$config" "$SB_FAKEIP_DNS_SERVER_TAG" "$SB_FAKEIP_INET4_RANGE")
|
||||||
if [ "$split_dns_enabled" -eq 1 ]; then
|
|
||||||
config=$(
|
|
||||||
sing_box_cf_add_dns_server "$config" "$split_dns_type" "$SB_SPLIT_DNS_SERVER_TAG" "$split_dns_server" \
|
|
||||||
"$dns_domain_resolver" "$SB_MAIN_OUTBOUND_TAG"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Adding DNS Rules"
|
log "Adding DNS Rules"
|
||||||
local rewrite_ttl service_domains
|
local rewrite_ttl service_domains
|
||||||
@@ -807,11 +782,6 @@ sing_box_configure_dns() {
|
|||||||
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_FAKEIP_DNS_RULE_TAG" "rewrite_ttl" "$rewrite_ttl")
|
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_FAKEIP_DNS_RULE_TAG" "rewrite_ttl" "$rewrite_ttl")
|
||||||
service_domains=$(comma_string_to_json_array "$FAKEIP_TEST_DOMAIN,$CHECK_PROXY_IP_DOMAIN")
|
service_domains=$(comma_string_to_json_array "$FAKEIP_TEST_DOMAIN,$CHECK_PROXY_IP_DOMAIN")
|
||||||
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_FAKEIP_DNS_RULE_TAG" "domain" "$service_domains")
|
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_FAKEIP_DNS_RULE_TAG" "domain" "$service_domains")
|
||||||
if [ "$split_dns_enabled" -eq 1 ]; then
|
|
||||||
config=$(sing_box_cm_add_dns_route_rule "$config" "$SB_DNS_SERVER_TAG" "$SB_INVERT_FAKEIP_DNS_RULE_TAG")
|
|
||||||
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_INVERT_FAKEIP_DNS_RULE_TAG" "invert" true)
|
|
||||||
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_INVERT_FAKEIP_DNS_RULE_TAG" "domain" "$service_domains")
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sing_box_configure_route() {
|
sing_box_configure_route() {
|
||||||
@@ -990,7 +960,9 @@ prepare_common_ruleset() {
|
|||||||
config=$(sing_box_cm_add_local_ruleset "$config" "$ruleset_tag" "source" "$ruleset_filepath")
|
config=$(sing_box_cm_add_local_ruleset "$config" "$ruleset_tag" "source" "$ruleset_filepath")
|
||||||
config=$(sing_box_cm_patch_route_rule "$config" "$route_rule_tag" "rule_set" "$ruleset_tag")
|
config=$(sing_box_cm_patch_route_rule "$config" "$route_rule_tag" "rule_set" "$ruleset_tag")
|
||||||
case "$type" in
|
case "$type" in
|
||||||
domains) _add_ruleset_to_dns_rules "$ruleset_tag" "$route_rule_tag" ;;
|
domains)
|
||||||
|
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_FAKEIP_DNS_RULE_TAG" "rule_set" "$ruleset_tag")
|
||||||
|
;;
|
||||||
subnets) ;;
|
subnets) ;;
|
||||||
*) log "Unsupported remote rule set type: $type" "warn" ;;
|
*) log "Unsupported remote rule set type: $type" "warn" ;;
|
||||||
esac
|
esac
|
||||||
@@ -1011,7 +983,7 @@ configure_community_list_handler() {
|
|||||||
|
|
||||||
config=$(sing_box_cm_add_remote_ruleset "$config" "$ruleset_tag" "$format" "$url" "$detour" "$update_interval")
|
config=$(sing_box_cm_add_remote_ruleset "$config" "$ruleset_tag" "$format" "$url" "$detour" "$update_interval")
|
||||||
config=$(sing_box_cm_patch_route_rule "$config" "$route_rule_tag" "rule_set" "$ruleset_tag")
|
config=$(sing_box_cm_patch_route_rule "$config" "$route_rule_tag" "rule_set" "$ruleset_tag")
|
||||||
_add_ruleset_to_dns_rules "$ruleset_tag"
|
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_FAKEIP_DNS_RULE_TAG" "rule_set" "$ruleset_tag")
|
||||||
}
|
}
|
||||||
|
|
||||||
configure_user_domain_or_subnets_list() {
|
configure_user_domain_or_subnets_list() {
|
||||||
@@ -1070,7 +1042,7 @@ configure_local_domain_or_subnet_lists() {
|
|||||||
domains)
|
domains)
|
||||||
config_list_foreach "$section" "local_domain_lists" import_local_domain_or_subnet_list "$type" \
|
config_list_foreach "$section" "local_domain_lists" import_local_domain_or_subnet_list "$type" \
|
||||||
"$section" "$ruleset_filepath"
|
"$section" "$ruleset_filepath"
|
||||||
_add_ruleset_to_dns_rules "$ruleset_tag" "$route_rule_tag"
|
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_FAKEIP_DNS_RULE_TAG" "rule_set" "$ruleset_tag")
|
||||||
;;
|
;;
|
||||||
subnets)
|
subnets)
|
||||||
config_list_foreach "$section" "local_subnet_lists" import_local_domain_or_subnet_list "$type" \
|
config_list_foreach "$section" "local_subnet_lists" import_local_domain_or_subnet_list "$type" \
|
||||||
@@ -1130,7 +1102,9 @@ configure_remote_domain_or_subnet_list_handler() {
|
|||||||
config=$(sing_box_cm_add_remote_ruleset "$config" "$ruleset_tag" "$format" "$url" "$detour" "$update_interval")
|
config=$(sing_box_cm_add_remote_ruleset "$config" "$ruleset_tag" "$format" "$url" "$detour" "$update_interval")
|
||||||
config=$(sing_box_cm_patch_route_rule "$config" "$route_rule_tag" "rule_set" "$ruleset_tag")
|
config=$(sing_box_cm_patch_route_rule "$config" "$route_rule_tag" "rule_set" "$ruleset_tag")
|
||||||
case "$type" in
|
case "$type" in
|
||||||
domains) _add_ruleset_to_dns_rules "$ruleset_tag" "$route_rule_tag" ;;
|
domains)
|
||||||
|
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_FAKEIP_DNS_RULE_TAG" "rule_set" "$ruleset_tag")
|
||||||
|
;;
|
||||||
subnets) ;;
|
subnets) ;;
|
||||||
*) log "Unsupported remote rule set type: $type" "warn" ;;
|
*) log "Unsupported remote rule set type: $type" "warn" ;;
|
||||||
esac
|
esac
|
||||||
@@ -1141,17 +1115,6 @@ configure_remote_domain_or_subnet_list_handler() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
_add_ruleset_to_dns_rules() {
|
|
||||||
local ruleset_tag="$1"
|
|
||||||
|
|
||||||
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_FAKEIP_DNS_RULE_TAG" "rule_set" "$ruleset_tag")
|
|
||||||
local split_dns_enabled final_dns_server
|
|
||||||
config_get_bool split_dns_enabled "main" "split_dns_enabled" 0
|
|
||||||
if [ "$split_dns_enabled" -eq 1 ]; then
|
|
||||||
config=$(sing_box_cm_patch_dns_route_rule "$config" "$SB_INVERT_FAKEIP_DNS_RULE_TAG" "rule_set" "$ruleset_tag")
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
sing_box_configure_experimental() {
|
sing_box_configure_experimental() {
|
||||||
log "Configure the experimental section of a sing-box JSON configuration"
|
log "Configure the experimental section of a sing-box JSON configuration"
|
||||||
|
|
||||||
@@ -1990,6 +1953,16 @@ print_global() {
|
|||||||
echo "$message"
|
echo "$message"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
find_working_resolver() {
|
||||||
|
for resolver in $DNS_RESOLVERS; do
|
||||||
|
if nslookup -timeout=2 "$FAKEIP_TEST_DOMAIN" "$resolver" > /dev/null 2>&1; then
|
||||||
|
echo "$resolver"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
global_check() {
|
global_check() {
|
||||||
print_global "📡 Global check run!"
|
print_global "📡 Global check run!"
|
||||||
print_global "━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
print_global "━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
|
|||||||
@@ -25,10 +25,9 @@ SB_REQUIRED_VERSION="1.12.0"
|
|||||||
SB_DEFAULT_LOG_LEVEL="warn"
|
SB_DEFAULT_LOG_LEVEL="warn"
|
||||||
# DNS
|
# DNS
|
||||||
SB_DNS_SERVER_TAG="dns-server"
|
SB_DNS_SERVER_TAG="dns-server"
|
||||||
SB_SPLIT_DNS_SERVER_TAG="split-dns-server"
|
|
||||||
SB_FAKEIP_DNS_SERVER_TAG="fakeip-server"
|
SB_FAKEIP_DNS_SERVER_TAG="fakeip-server"
|
||||||
SB_FAKEIP_INET4_RANGE="198.18.0.0/15"
|
SB_FAKEIP_INET4_RANGE="198.18.0.0/15"
|
||||||
SB_DNS_DOMAIN_RESOLVER_TAG="dns-domain-resolver"
|
SB_BOOTSTRAP_SERVER_TAG="bootstrap-dns-server"
|
||||||
SB_FAKEIP_DNS_RULE_TAG="fakeip-dns-rule-tag"
|
SB_FAKEIP_DNS_RULE_TAG="fakeip-dns-rule-tag"
|
||||||
SB_INVERT_FAKEIP_DNS_RULE_TAG="invert-fakeip-dns-rule-tag"
|
SB_INVERT_FAKEIP_DNS_RULE_TAG="invert-fakeip-dns-rule-tag"
|
||||||
# Inbounds
|
# Inbounds
|
||||||
|
|||||||
@@ -97,6 +97,14 @@ get_outbound_tag_by_section() {
|
|||||||
echo "$section-$postfix"
|
echo "$section-$postfix"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Constructs and returns a domain resolver tag by appending a fixed postfix to the given section
|
||||||
|
get_domain_resolver_tag() {
|
||||||
|
local section="$1"
|
||||||
|
local postfix="domain-resolver"
|
||||||
|
|
||||||
|
echo "$section-$postfix"
|
||||||
|
}
|
||||||
|
|
||||||
# Constructs and returns a ruleset tag using section, name, optional type, and a fixed postfix
|
# Constructs and returns a ruleset tag using section, name, optional type, and a fixed postfix
|
||||||
get_ruleset_tag() {
|
get_ruleset_tag() {
|
||||||
local section="$1"
|
local section="$1"
|
||||||
|
|||||||
@@ -788,6 +788,7 @@ sing_box_cm_set_vless_tls() {
|
|||||||
# config: JSON configuration (string)
|
# config: JSON configuration (string)
|
||||||
# tag: string, identifier for the outbound
|
# tag: string, identifier for the outbound
|
||||||
# interface: string, network interface to bind the outbound
|
# interface: string, network interface to bind the outbound
|
||||||
|
# domain_resolver: string, tag of the domain resolver to be used for this outbound (optional)
|
||||||
# Outputs:
|
# Outputs:
|
||||||
# Writes updated JSON configuration to stdout
|
# Writes updated JSON configuration to stdout
|
||||||
# Example:
|
# Example:
|
||||||
@@ -797,15 +798,20 @@ sing_box_cm_add_interface_outbound() {
|
|||||||
local config="$1"
|
local config="$1"
|
||||||
local tag="$2"
|
local tag="$2"
|
||||||
local interface="$3"
|
local interface="$3"
|
||||||
|
local domain_resolver="$4"
|
||||||
|
|
||||||
echo "$config" | jq \
|
echo "$config" | jq \
|
||||||
--arg tag "$tag" \
|
--arg tag "$tag" \
|
||||||
--arg interface "$interface" \
|
--arg interface "$interface" \
|
||||||
'.outbounds += [{
|
--arg domain_resolver "$domain_resolver" \
|
||||||
|
'.outbounds += [
|
||||||
|
{
|
||||||
type: "direct",
|
type: "direct",
|
||||||
tag: $tag,
|
tag: $tag,
|
||||||
bind_interface: $interface
|
bind_interface: $interface
|
||||||
}]'
|
}
|
||||||
|
+ (if $domain_resolver != "" then {domain_resolver: $domain_resolver} else {} end)
|
||||||
|
]'
|
||||||
}
|
}
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
|
|||||||
Reference in New Issue
Block a user