docs: update Russian translations and add new strings for FakeIP status check
This commit is contained in:
@@ -55,7 +55,7 @@ return view.extend({
|
|||||||
|
|
||||||
o = s.taboption('basic', form.TextValue, 'proxy_string', _('Proxy Configuration URL'), _('Enter connection string starting with vless:// or ss:// for proxy configuration'));
|
o = s.taboption('basic', form.TextValue, 'proxy_string', _('Proxy Configuration URL'), _('Enter connection string starting with vless:// or ss:// for proxy configuration'));
|
||||||
o.depends('proxy_config_type', 'url');
|
o.depends('proxy_config_type', 'url');
|
||||||
o.rows = 7;
|
o.rows = 5;
|
||||||
o.ucisection = 'main';
|
o.ucisection = 'main';
|
||||||
o.validate = function (section_id, value) {
|
o.validate = function (section_id, value) {
|
||||||
if (!value || value.length === 0) {
|
if (!value || value.length === 0) {
|
||||||
@@ -198,7 +198,7 @@ return view.extend({
|
|||||||
|
|
||||||
o = s.taboption('basic', form.TextValue, 'outbound_json', _('Outbound Configuration'), _('Enter complete outbound configuration in JSON format'));
|
o = s.taboption('basic', form.TextValue, 'outbound_json', _('Outbound Configuration'), _('Enter complete outbound configuration in JSON format'));
|
||||||
o.depends('proxy_config_type', 'outbound');
|
o.depends('proxy_config_type', 'outbound');
|
||||||
o.rows = 7;
|
o.rows = 10;
|
||||||
o.ucisection = 'main';
|
o.ucisection = 'main';
|
||||||
o.validate = function (section_id, value) {
|
o.validate = function (section_id, value) {
|
||||||
if (!value || value.length === 0) {
|
if (!value || value.length === 0) {
|
||||||
@@ -986,9 +986,10 @@ return view.extend({
|
|||||||
// Diagnostics Column
|
// Diagnostics Column
|
||||||
E('div', { 'style': 'flex: 1; padding: 15px; background: #f8f9fa; border-radius: 8px;' }, [
|
E('div', { 'style': 'flex: 1; padding: 15px; background: #f8f9fa; border-radius: 8px;' }, [
|
||||||
E('div', { 'style': 'margin-bottom: 15px;' }, [
|
E('div', { 'style': 'margin-bottom: 15px;' }, [
|
||||||
E('strong', {}, _('Diagnostic Tools')),
|
E('strong', {}, _('FakeIP Status')),
|
||||||
E('br'),
|
E('div', { 'id': 'fakeip-status' }, [
|
||||||
E('div', { 'style': 'height: 18px;' })
|
E('span', {}, _('Checking FakeIP...'))
|
||||||
|
])
|
||||||
]),
|
]),
|
||||||
E('div', { 'class': 'btn-group', 'style': 'display: flex; flex-direction: column; gap: 8px;' }, [
|
E('div', { 'class': 'btn-group', 'style': 'display: flex; flex-direction: column; gap: 8px;' }, [
|
||||||
E('button', {
|
E('button', {
|
||||||
@@ -1168,7 +1169,7 @@ return view.extend({
|
|||||||
E('strong', {}, 'Device Model: '), system.stdout ? system.stdout.split('\n')[4].trim() : _('Unknown')
|
E('strong', {}, 'Device Model: '), system.stdout ? system.stdout.split('\n')[4].trim() : _('Unknown')
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
])
|
]),
|
||||||
])
|
])
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
@@ -1179,6 +1180,44 @@ return view.extend({
|
|||||||
return E('div', { id: 'diagnostics-status' }, _('Loading diagnostics...'));
|
return E('div', { id: 'diagnostics-status' }, _('Loading diagnostics...'));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function checkFakeIP() {
|
||||||
|
fetch('http://httpbin.org/ip')
|
||||||
|
.then(response => response.text())
|
||||||
|
.then(text => {
|
||||||
|
const statusElement = document.getElementById('fakeip-status');
|
||||||
|
if (!statusElement) return;
|
||||||
|
|
||||||
|
console.log('FakeIP check response:', text);
|
||||||
|
|
||||||
|
if (text.includes('Cannot GET /ip')) {
|
||||||
|
console.log('FakeIP status: working (Cannot GET /ip)');
|
||||||
|
statusElement.innerHTML = E('span', { 'style': 'color: #4caf50' }, [
|
||||||
|
'✔ ',
|
||||||
|
_('working')
|
||||||
|
]).outerHTML;
|
||||||
|
} else if (text.includes('"origin":')) {
|
||||||
|
console.log('FakeIP status: not working (got IP response)');
|
||||||
|
statusElement.innerHTML = E('span', { 'style': 'color: #f44336' }, [
|
||||||
|
'✘ ',
|
||||||
|
_('not working')
|
||||||
|
]).outerHTML;
|
||||||
|
} else {
|
||||||
|
console.log('FakeIP status: check error (unexpected response)');
|
||||||
|
statusElement.innerHTML = E('span', { 'style': 'color: #ff9800' }, [
|
||||||
|
'! ',
|
||||||
|
_('check error')
|
||||||
|
]).outerHTML;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.log('FakeIP check error:', error.message);
|
||||||
|
const statusElement = document.getElementById('fakeip-status');
|
||||||
|
if (statusElement) {
|
||||||
|
statusElement.innerHTML = E('span', { 'style': 'color: #ff9800' }, 'check error').outerHTML;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function updateDiagnostics() {
|
function updateDiagnostics() {
|
||||||
Promise.all([
|
Promise.all([
|
||||||
fs.exec('/etc/init.d/podkop', ['get_status']),
|
fs.exec('/etc/init.d/podkop', ['get_status']),
|
||||||
@@ -1196,6 +1235,7 @@ return view.extend({
|
|||||||
if (container) {
|
if (container) {
|
||||||
container.innerHTML = '';
|
container.innerHTML = '';
|
||||||
container.appendChild(newContent);
|
container.appendChild(newContent);
|
||||||
|
checkFakeIP();
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('Error parsing diagnostics status:', e);
|
console.error('Error parsing diagnostics status:', e);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -25,18 +25,318 @@ msgstr ""
|
|||||||
msgid "Select between VPN and Proxy connection methods for traffic routing"
|
msgid "Select between VPN and Proxy connection methods for traffic routing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Configuration Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Select how to configure the proxy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Connection URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Outbound Config"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Proxy Configuration URL"
|
msgid "Proxy Configuration URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Enter connection string starting with vless:// or ss:// for proxy configuration"
|
msgid "Enter connection string starting with vless:// or ss:// for proxy configuration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Outbound Configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enter complete outbound configuration in JSON format"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Network Interface"
|
msgid "Network Interface"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Select network interface for VPN connection"
|
msgid "Select network interface for VPN connection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Community Lists"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Service List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Select predefined service for routing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "User Domain List Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Select how to add your custom domains"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Disabled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Dynamic List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Text List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "User Domains"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "User Domains List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enter domain names separated by comma, space or newline (example: sub.example.com, example.com or one domain per line)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Local Domain Lists"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Use the list from the router filesystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Local Domain Lists Path"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enter to the list file path"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Remote Domain Lists"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Download and use domain lists from remote URLs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Remote Domain URLs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enter full URLs starting with http:// or https://"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "User Subnet List Type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Select how to add your custom subnets"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Text List (comma/space/newline separated)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "User Subnets"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "User Subnets List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Remote Subnet Lists"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Download and use subnet lists from remote URLs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Remote Subnet URLs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "IP for full redirection"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Specify local IP addresses whose traffic will always use the configured route"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Local IPs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enter valid IPv4 addresses"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "IP for exclusion"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Specify local IP addresses that will never use the configured route"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Mixed enable"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Browser port: 2080"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Yacd enable"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Exclude NTP"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "For issues with open connections sing-box"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "QUIC disable"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "For issues with the video stream"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "List Update Frequency"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Select how often the lists will be updated"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Every hour"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Every 2 hours"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Every 3 hours"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Every 4 hours"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Every 6 hours"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Every 12 hours"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Every day"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Every 3 days"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Once a day at 04:00"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Once a week on Sunday at 04:00"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL must use http:// or https:// protocol"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid URL format. URL must start with http:// or https://"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "IP address parts must be between 0 and 255"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "CIDR must be between 0 and 32"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid domain format: %s. Enter domain without protocol"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid format: %s. Use format: X.X.X.X or X.X.X.X/Y"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "IP parts must be between 0 and 255 in: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "CIDR must be between 0 and 32 in: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid path format. Path must start with \"/\" and contain only valid characters (letters, numbers, \"-\", \"_\", \"/\", \".\")"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid path format"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "JSON must contain at least type, server and server_port fields"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid JSON format"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Regional options cannot be used together"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Warning: Russia inside can only be used with Meta, Twitter, Discord, and Telegram. %s already in Russia inside and have been removed from selection."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Russia inside restrictions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL must start with vless:// or ss://"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid Shadowsocks URL format: missing method and password separator \":\""
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid Shadowsocks URL format"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid Shadowsocks URL: missing server address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid Shadowsocks URL: missing server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid Shadowsocks URL: missing port"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid port number. Must be between 1 and 65535"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid Shadowsocks URL: missing or invalid server/port format"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing UUID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing server address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing port"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing or invalid server/port format"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing query parameters"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing type parameter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing security parameter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing pbk parameter for reality security"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing fp parameter for reality security"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid VLESS URL: missing sni parameter for tls security"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Invalid URL format: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Community Domain Lists"
|
msgid "Community Domain Lists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -64,292 +364,169 @@ msgstr ""
|
|||||||
msgid "Enable and manage your custom list of domains for selective routing"
|
msgid "Enable and manage your custom list of domains for selective routing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "User Domains"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Remote Domain Lists"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Download and use domain lists from remote URLs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Remote Domain URLs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Enter full URLs starting with http:// or https://"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "User Subnet List"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Enable and manage your custom list of IP subnets for selective routing"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "User Subnets"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Enter subnet in CIDR notation (example: 103.21.244.0/22)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Remote Subnet Lists"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Download and use subnet lists from remote URLs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Remote Subnet URLs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Domain Exclusions"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Exclude specific domains from routing rules"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Excluded Domains"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Domains to be excluded from routing"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "IP for full redirection"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Specify local IP addresses whose traffic will always use the configured route"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Local IPs"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Enter valid IPv4 addresses"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "IP for exclusion"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Specify local IP addresses that will never use the configured route"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "List Update Frequency"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select how often the lists will be updated"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Every hour"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Every 2 hours"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Every 4 hours"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Every 6 hours"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Every 12 hours"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Once a day at 04:00"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Once a week on Sunday at 04:00"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Yacd enable"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Mixed enable"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Browser port: 2080"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Exclude NTP"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "For issues with open connections sing-box"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Service Domain List Enable"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Enable predefined service domain lists for routing"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Service List"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select predefined services for routing"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Domains"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Subnet List"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Configure custom subnets for routing"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Subnets"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "URL must use http:// or https:// protocol"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Invalid URL format. URL must start with http:// or https://"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Invalid subnet format. Use format: X.X.X.X/Y (like 103.21.244.0/22)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "IP address parts must be between 0 and 255"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "CIDR must be between 0 and 32"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "User Domain List Type"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Select how to add your custom domains"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Disabled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Dynamic List"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Text List"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "User Domains List"
|
msgid "User Domains List"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Enter domain names separated by comma, space or newline (example: sub.example.com, example.com or one domain per line)"
|
msgid "Enter domain names separated by comma, space or newline (example: sub.example.com, example.com or one domain per line)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Invalid domain format: %s. Enter domain without protocol"
|
msgid "Remote Domain Lists URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "User Subnet List Type"
|
msgid "Enter URL to download domain list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Select how to add your custom subnets"
|
msgid "Update Interval"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Text List (comma/space/newline separated)"
|
msgid "Select how often to update the lists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
|
msgid "Last Update"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "User Subnets List"
|
msgid "Last update time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline"
|
msgid "Next Update"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
|
msgid "Next scheduled update time"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "IP parts must be between 0 and 255 in: %s"
|
msgid "Version"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Configuration Type"
|
msgid "Component version"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Select how to configure the proxy"
|
msgid "Installed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Connection URL"
|
msgid "Not installed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Outbound Config"
|
msgid "Unknown version"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Outbound Configuration"
|
msgid "Error parsing version"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Enter complete outbound configuration in JSON format"
|
msgid "Error parsing status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "JSON must contain at least type, server and server_port fields"
|
msgid "Service is running"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Invalid JSON format"
|
msgid "Service is stopped"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Diagnostics"
|
msgid "Service is enabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Main Check"
|
msgid "Service is disabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Run a comprehensive diagnostic check of all components"
|
msgid "Service Status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Run Check"
|
msgid "working"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Full Diagnostic Results"
|
msgid "not working"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Failed to copy: %s"
|
msgid "check error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Copy to Clipboard"
|
msgid "Diagnostic check in progress..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Close"
|
msgid "Diagnostic check completed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "No output"
|
msgid "Diagnostic check failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "System Logs"
|
msgid "Update in progress..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "View recent system logs related to Podkop"
|
msgid "Update completed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "View Logs"
|
msgid "Update failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Failed to copy logs: %s"
|
msgid "Check in progress..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show Config"
|
msgid "Check completed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show current podkop configuration with masked sensitive data"
|
msgid "Check failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Podkop Configuration"
|
msgid "Version Information"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Update lists"
|
msgid "Copied!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Update all lists in config"
|
msgid "Podkop Status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "List Update"
|
msgid "Start Podkop"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Lists will be updated in background. You can check the progress in system logs."
|
msgid "Stop Podkop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Restart Podkop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable Podkop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Disable Podkop"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Loading diagnostics..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Error loading diagnostics"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sing-box Status"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Diagnostic Tools"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Unknown"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Device Model: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "OpenWrt Version: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Sing-box: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "LuCI App: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Podkop: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check NFT Rules"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Update Lists"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Lists Update Results"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Extra configurations"
|
msgid "Extra configurations"
|
||||||
@@ -361,25 +538,7 @@ msgstr ""
|
|||||||
msgid "Add Section"
|
msgid "Add Section"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "QUIC disable"
|
msgid "Lists Update Results"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "For issues with the video stream"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Community Lists"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Local Domain Lists"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Use the list from the router filesystem"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Local Domain Lists Path"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Enter to the list file path"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Proxy Check"
|
msgid "Proxy Check"
|
||||||
@@ -463,148 +622,6 @@ msgstr ""
|
|||||||
msgid "Lists Update Results"
|
msgid "Lists Update Results"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
|
||||||
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
|
||||||
msgid "Warning: Russia inside can only be used with Meta, Twitter, Discord, and Telegram. %s already in Russia inside and have been removed from selection."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
|
||||||
msgid "Regional options cannot be used together"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
|
||||||
msgid "Russia inside restrictions"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Version Information"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Show version information for all components"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Show Versions"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Copied!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Service Status"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Podkop Status"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Start Podkop"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Stop Podkop"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Restart Podkop"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Enable Podkop"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Disable Podkop"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Loading diagnostics..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Error loading diagnostics"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Sing-box Status"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Diagnostic Tools"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Unknown"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Every 3 hours"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Every day"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Every 3 days"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Device Model: "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "OpenWrt Version: "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Sing-box: "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "LuCI App: "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Podkop: "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Check NFT Rules"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Update Lists"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Invalid path format. Path must start with \"/\" and contain only valid characters (letters, numbers, \"-\", \"_\", \"/\", \".\")"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Invalid path format"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "CIDR must be between 0 and 32 in: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Invalid format: %s. Use format: X.X.X.X or X.X.X.X/Y"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Failed to copy: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Failed to apply changes: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Operation completed successfully"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Operation failed: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Configuration saved"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Save failed: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Loading..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Processing..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Updating..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Checking..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Please wait..."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Alert"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Warning"
|
msgid "Warning"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -800,10 +817,16 @@ msgstr ""
|
|||||||
msgid "Service is disabled"
|
msgid "Service is disabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Service status unknown"
|
msgid "Service Status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Error checking service status"
|
msgid "working"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "not working"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "check error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Diagnostic check in progress..."
|
msgid "Diagnostic check in progress..."
|
||||||
|
|||||||
@@ -153,6 +153,7 @@ main() {
|
|||||||
sing_box_dns
|
sing_box_dns
|
||||||
sing_box_dns_rule_fakeip
|
sing_box_dns_rule_fakeip
|
||||||
sing_box_rule_dns
|
sing_box_rule_dns
|
||||||
|
sing_box_add_secure_dns_probe_domain
|
||||||
sing_box_cache_file
|
sing_box_cache_file
|
||||||
process_socks5
|
process_socks5
|
||||||
|
|
||||||
@@ -1698,4 +1699,40 @@ get_status() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "{\"running\":$running,\"enabled\":$enabled,\"status\":\"$status\"}"
|
echo "{\"running\":$running,\"enabled\":$enabled,\"status\":\"$status\"}"
|
||||||
|
}
|
||||||
|
|
||||||
|
sing_box_add_secure_dns_probe_domain() {
|
||||||
|
local domain="httpbin.org"
|
||||||
|
local override_address="numbersapi.com"
|
||||||
|
|
||||||
|
if [ -z "$override_address" ]; then
|
||||||
|
log "Error: Could not get br-lan IP address"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Adding DNS probe domain ${domain} to fakeip-server configuration"
|
||||||
|
|
||||||
|
jq \
|
||||||
|
--arg domain "$domain" \
|
||||||
|
--arg override "$override_address" \
|
||||||
|
'.dns.rules |= map(
|
||||||
|
if .server == "fakeip-server" then
|
||||||
|
{
|
||||||
|
"server": .server,
|
||||||
|
"domain": $domain,
|
||||||
|
"rule_set": .rule_set
|
||||||
|
}
|
||||||
|
else
|
||||||
|
.
|
||||||
|
end
|
||||||
|
) |
|
||||||
|
.route.rules |= . + [
|
||||||
|
{
|
||||||
|
"domain": $domain,
|
||||||
|
"action": "route-options",
|
||||||
|
"override_address": $override
|
||||||
|
}
|
||||||
|
]' "$SING_BOX_CONFIG" >/tmp/sing-box-config-tmp.json && mv /tmp/sing-box-config-tmp.json "$SING_BOX_CONFIG"
|
||||||
|
|
||||||
|
log "DNS probe domain ${domain} configured with override to ${override_address}"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user