mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-05 01:44:16 +08:00
🎉 Sync 2026-07-23 18:16:40
This commit is contained in:
1 parent
4e2583c9a2
commit
aecee003c5
19 files changed
+2559
-941
No files matched your search
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-openlist2
|
||||
PKG_VERSION:=1.0.2
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
LUCI_TITLE:=LuCI support for openlist
|
||||
LUCI_DEPENDS:=+openlist2
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
'use strict';
|
||||
'require dom';
|
||||
'require form';
|
||||
'require fs';
|
||||
'require poll';
|
||||
@@ -23,24 +24,128 @@ const getServiceStatus = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const renderStatus = (isRunning, protocol, webport, site_url) => {
|
||||
const spanTemp = '<em><span style="color:%s"><strong>%s %s</strong></span></em>';
|
||||
let renderHTML;
|
||||
if (isRunning) {
|
||||
let buttonUrl = '';
|
||||
if (site_url && site_url.trim() !== '') {
|
||||
buttonUrl = site_url;
|
||||
} else {
|
||||
buttonUrl = `${protocol}//${window.location.hostname}:${webport}/`;
|
||||
}
|
||||
const button = String.format('<input class="cbi-button-reload" type="button" style="margin-left: 50px" value="%s" onclick="window.open(\'%s\')">',
|
||||
_('Open Web Interface'), buttonUrl);
|
||||
renderHTML = spanTemp.format('green', 'OpenList', _('RUNNING')) + button;
|
||||
} else {
|
||||
renderHTML = spanTemp.format('red', 'OpenList', _('NOT RUNNING'));
|
||||
const getWebInterfaceUrl = (protocol, webport, site_url) => {
|
||||
const fallbackUrl = `${protocol}//${window.location.hostname}:${webport}/`;
|
||||
const configuredUrl = (site_url || '').trim();
|
||||
if (configuredUrl) {
|
||||
try {
|
||||
const url = new URL(configuredUrl, fallbackUrl);
|
||||
if (url.protocol === 'http:' || url.protocol === 'https:')
|
||||
return url.href;
|
||||
} catch (e) { }
|
||||
}
|
||||
|
||||
return renderHTML;
|
||||
return fallbackUrl;
|
||||
};
|
||||
|
||||
const renderStatus = (isRunning, protocol, webport, site_url) => {
|
||||
const status = E('em', {}, E('span', { 'style': `color:${isRunning ? 'green' : 'red'}` },
|
||||
E('strong', {}, ['OpenList ', isRunning ? _('RUNNING') : _('NOT RUNNING')])));
|
||||
|
||||
if (isRunning && webport) {
|
||||
const buttonUrl = getWebInterfaceUrl(protocol, webport, site_url);
|
||||
const button = E('input', {
|
||||
'class': 'cbi-button-reload',
|
||||
'type': 'button',
|
||||
'style': 'margin-left: 50px',
|
||||
'value': _('Open Web Interface')
|
||||
});
|
||||
button.addEventListener('click', () => window.open(buttonUrl, '_blank', 'noopener'));
|
||||
|
||||
return E('span', {}, [status, button]);
|
||||
}
|
||||
|
||||
return status;
|
||||
};
|
||||
|
||||
const isSafeLogPath = value => /^\/var\/log\/openlist2(?:[._-][A-Za-z0-9._-]+)?$/.test(value || '');
|
||||
|
||||
const isEnabledPort = value => {
|
||||
const port = (value || '').trim();
|
||||
return port !== '' && port !== '-1';
|
||||
};
|
||||
|
||||
const HTTPS_ENABLED_PORT = /^[1-9][0-9]*$/;
|
||||
|
||||
const getListenPortValue = (section_id, option, fallback) => {
|
||||
const value = uci.get('openlist2', section_id, option);
|
||||
return value == null || String(value).trim() === '' ? fallback : value;
|
||||
};
|
||||
|
||||
const getHttpsPortValue = (section_id, httpsPortOption) => {
|
||||
const value = httpsPortOption.formvalue(section_id);
|
||||
return value == null || String(value).trim() === ''
|
||||
? getListenPortValue(section_id, 'listen_https_port', '-1')
|
||||
: value;
|
||||
};
|
||||
|
||||
const validateHttpsRequiredFile = (section_id, httpsPortOption, value, message) => {
|
||||
if (!HTTPS_ENABLED_PORT.test(String(getHttpsPortValue(section_id, httpsPortOption)).trim()))
|
||||
return true;
|
||||
|
||||
return (value || '').trim() ? true : message;
|
||||
};
|
||||
|
||||
const validateListenPort = value => {
|
||||
const port = (value || '').trim();
|
||||
if (port === '-1')
|
||||
return true;
|
||||
|
||||
if (/^\d+$/.test(port)) {
|
||||
const number = Number(port);
|
||||
if (number >= 1 && number <= 65535)
|
||||
return true;
|
||||
}
|
||||
|
||||
return _('Port must be -1 or a valid port number from 1 to 65535.');
|
||||
};
|
||||
|
||||
const isHttpUrl = value => {
|
||||
try {
|
||||
const url = new URL(value);
|
||||
return !!url.hostname && (url.protocol === 'http:' || url.protocol === 'https:');
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
const validateSiteUrl = value => {
|
||||
const url = (value || '').trim();
|
||||
if (!url)
|
||||
return true;
|
||||
|
||||
if (isHttpUrl(url) && !url.endsWith('/'))
|
||||
return true;
|
||||
|
||||
return _('Site URL must start with http:// or https:// and must not end with /.');
|
||||
};
|
||||
|
||||
const validateCorsOrigins = value => {
|
||||
const origins = (value || '').split(',')
|
||||
.map(origin => origin.trim())
|
||||
.filter(Boolean);
|
||||
|
||||
for (const origin of origins) {
|
||||
if (origin === '*' || isHttpUrl(origin))
|
||||
continue;
|
||||
|
||||
return _('CORS origins must be * or include http:// or https://.');
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
const getEffectiveWebEndpoint = config => {
|
||||
const httpPort = uci.get(config, '@openlist2[0]', 'listen_http_port') || '5244';
|
||||
const httpsPort = uci.get(config, '@openlist2[0]', 'listen_https_port') || '-1';
|
||||
|
||||
if (isEnabledPort(httpsPort))
|
||||
return { protocol: 'https:', port: httpsPort };
|
||||
|
||||
if (isEnabledPort(httpPort))
|
||||
return { protocol: 'http:', port: httpPort };
|
||||
|
||||
return { protocol: 'http:', port: '' };
|
||||
};
|
||||
|
||||
return view.extend({
|
||||
@@ -69,19 +174,15 @@ return view.extend({
|
||||
},
|
||||
|
||||
render(data) {
|
||||
let m, s, o;
|
||||
const webport = uci.get(data[0], '@openlist2[0]', 'port') || '5244';
|
||||
const ssl = uci.get(data[0], '@openlist2[0]', 'ssl') || '0';
|
||||
let protocol;
|
||||
if (ssl === '0') {
|
||||
protocol = 'http:';
|
||||
} else if (ssl === '1') {
|
||||
protocol = 'https:';
|
||||
}
|
||||
let m, s, o, httpsPortOption;
|
||||
const endpoint = getEffectiveWebEndpoint(data[0]);
|
||||
const webport = endpoint.port;
|
||||
const protocol = endpoint.protocol;
|
||||
const site_url = uci.get(data[0], '@openlist2[0]', 'site_url') || '';
|
||||
|
||||
m = new form.Map('openlist2', _('OpenList'),
|
||||
_('A file list program that supports multiple storage.'));
|
||||
_('A file list program that supports multiple storage.') + '<br />' +
|
||||
_('Initial login username is "%s" and password is "%s". Change it immediately after first login.').format('admin', 'admin'));
|
||||
|
||||
s = m.section(form.TypedSection);
|
||||
s.anonymous = true;
|
||||
@@ -92,7 +193,7 @@ return view.extend({
|
||||
return L.resolveDefault(getServiceStatus()).then(res => {
|
||||
const view = document.getElementById('service_status');
|
||||
if (view)
|
||||
view.innerHTML = renderStatus(res, protocol, webport, site_url);
|
||||
dom.content(view, renderStatus(res, protocol, webport, site_url));
|
||||
});
|
||||
});
|
||||
|
||||
@@ -107,6 +208,7 @@ return view.extend({
|
||||
s.tab('global', _('Global Settings'));
|
||||
s.tab('log', _('Logs'));
|
||||
s.tab('database', _('Database'));
|
||||
s.tab('search', _('Search'));
|
||||
s.tab('scheme', _('Web Protocol'));
|
||||
s.tab('tasks', _('Task threads'));
|
||||
s.tab('cors', _('CORS Settings'));
|
||||
@@ -119,9 +221,8 @@ return view.extend({
|
||||
o.default = o.disabled;
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('basic', form.Value, 'port', _('Port'));
|
||||
o.datatype = 'and(port,min(1))';
|
||||
o.default = '5244';
|
||||
o = s.taboption('basic', form.Flag, 'debug', _('Debug logging'),
|
||||
_('Pass --debug to OpenList and send stderr to procd logs.'));
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('basic', form.Value, 'delayed_start', _('Delayed Start (seconds)'));
|
||||
@@ -153,6 +254,9 @@ return view.extend({
|
||||
|
||||
o = s.taboption('global', form.Value, 'site_url', _('Site URL'),
|
||||
_('When the web is reverse proxied to a subdirectory, this option must be filled out to ensure proper functioning of the web. Do not include \'/\' at the end of the URL'));
|
||||
o.validate = function(section_id, value) {
|
||||
return validateSiteUrl(value);
|
||||
};
|
||||
|
||||
o = s.taboption('global', form.Value, 'cdn', _('CDN URL'));
|
||||
o.default = '';
|
||||
@@ -165,6 +269,28 @@ return view.extend({
|
||||
o.default = '48';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('global', form.Value, 'proxy_address', _('Proxy address'),
|
||||
_('HTTP, HTTPS, SOCKS4, SOCKS5 or SOCKS5HOSTNAME proxy used by OpenList outbound requests.'));
|
||||
o.default = '';
|
||||
|
||||
o = s.taboption('global', form.Value, 'auto_memory_limit', _('Auto memory limit (MB)'),
|
||||
_('0 disables the automatic memory limit. The upstream default is 4 MB.'));
|
||||
o.default = '4';
|
||||
o.datatype = 'uinteger';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('global', form.Value, 'min_free_memory', _('Minimum free memory (MB)'),
|
||||
_('Values below 16 let OpenList calculate a default; negative values disable memory cache.'));
|
||||
o.default = '0';
|
||||
o.datatype = 'integer';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('global', form.Value, 'max_block_limit', _('Maximum block size (MB)'),
|
||||
_('Values below 4 let OpenList calculate a default.'));
|
||||
o.default = '0';
|
||||
o.datatype = 'uinteger';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('global', form.Value, 'max_connections', _('Max Connections'),
|
||||
_('0 is unlimited, It is recommend to set a low number of concurrency (10-20) for poor performance device'));
|
||||
o.default = '0';
|
||||
@@ -172,13 +298,14 @@ return view.extend({
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('global', form.Value, 'max_concurrency', _('Max concurrency of local proxies'),
|
||||
_('0 is unlimited, Limit the maximum concurrency of local agents. The default value is 64'));
|
||||
o.default = '0';
|
||||
_('0 is unlimited, Limit the maximum concurrency of local agents. The default value is 64'));
|
||||
o.default = '64';
|
||||
o.datatype = 'uinteger';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('global', form.Flag, 'tls_insecure_skip_verify', _('Disable TLS Verify'));
|
||||
o.default = true;
|
||||
o = s.taboption('global', form.Flag, 'tls_insecure_skip_verify', _('Disable TLS Verify'),
|
||||
_('Skip remote TLS certificate verification (not recommended).'));
|
||||
o.default = false;
|
||||
o.rmempty = false;
|
||||
|
||||
// Logs
|
||||
@@ -190,16 +317,22 @@ return view.extend({
|
||||
o.default = '/var/log/openlist2.log';
|
||||
o.rmempty = false;
|
||||
o.depends('log', '1');
|
||||
o.validate = function(section_id, value) {
|
||||
if (isSafeLogPath(value))
|
||||
return true;
|
||||
|
||||
return _('Log path must be /var/log/openlist2* without subdirectories.');
|
||||
};
|
||||
|
||||
o = s.taboption('log', form.Value, 'log_max_size', _('Max Size (MB)'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '10';
|
||||
o.default = '50';
|
||||
o.rmempty = false;
|
||||
o.depends('log', '1');
|
||||
|
||||
o = s.taboption('log', form.Value, 'log_max_backups', _('Max backups'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '5';
|
||||
o.default = '30';
|
||||
o.rmempty = false;
|
||||
o.depends('log', '1');
|
||||
|
||||
@@ -214,6 +347,20 @@ return view.extend({
|
||||
o.rmempty = false;
|
||||
o.depends('log', '1');
|
||||
|
||||
o = s.taboption('log', form.Flag, 'log_filter', _('Enable common log filters'),
|
||||
_('Filter noisy access logs such as health checks, HEAD requests and WebDAV PROPFIND.'));
|
||||
o.rmempty = false;
|
||||
o.depends('log', '1');
|
||||
|
||||
o = s.taboption('log', form.Value, 'log_filter_cidr', _('Custom log filter CIDR'));
|
||||
o.depends('log_filter', '1');
|
||||
|
||||
o = s.taboption('log', form.Value, 'log_filter_path', _('Custom log filter path'));
|
||||
o.depends('log_filter', '1');
|
||||
|
||||
o = s.taboption('log', form.Value, 'log_filter_method', _('Custom log filter method'));
|
||||
o.depends('log_filter', '1');
|
||||
|
||||
// database
|
||||
o = s.taboption('database', form.ListValue, 'database_type', _('Database Type'));
|
||||
o.default = 'sqlite3';
|
||||
@@ -225,9 +372,10 @@ return view.extend({
|
||||
o.depends('database_type', 'mysql');
|
||||
o.depends('database_type', 'postgres');
|
||||
|
||||
o = s.taboption('database', form.Value, 'mysql_port', _('Database Port'));
|
||||
o = s.taboption('database', form.Value, 'mysql_port', _('Database Port'),
|
||||
_('Use 0 to apply the usual default for the selected database: 3306 for MySQL, 5432 for PostgreSQL.'));
|
||||
o.datatype = 'port';
|
||||
o.default = '3306';
|
||||
o.default = '0';
|
||||
o.depends('database_type', 'mysql');
|
||||
o.depends('database_type', 'postgres');
|
||||
|
||||
@@ -256,23 +404,71 @@ return view.extend({
|
||||
o.depends('database_type', 'mysql');
|
||||
o.depends('database_type', 'postgres');
|
||||
|
||||
// scheme
|
||||
o = s.taboption('scheme', form.Flag, 'ssl', _('Enable SSL'));
|
||||
o = s.taboption('search', form.Value, 'meilisearch_host', _('Meilisearch Host'));
|
||||
o.default = 'http://localhost:7700';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('search', form.Value, 'meilisearch_api_key', _('Meilisearch API Key'));
|
||||
o.password = true;
|
||||
|
||||
o = s.taboption('search', form.Value, 'meilisearch_index', _('Meilisearch Index'));
|
||||
o.default = 'openlist';
|
||||
o.rmempty = false;
|
||||
|
||||
// scheme
|
||||
o = s.taboption('scheme', form.Value, 'listen_addr', _('Listen address'));
|
||||
o.default = '0.0.0.0';
|
||||
o.datatype = 'ipaddr';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('scheme', form.Value, 'listen_http_port', _('HTTP listen port'),
|
||||
_('The upstream default is 5244. Set to -1 to disable HTTP.'));
|
||||
o.datatype = 'integer';
|
||||
o.default = '5244';
|
||||
o.rmempty = false;
|
||||
o.cfgvalue = section_id => getListenPortValue(section_id, 'listen_http_port', '5244');
|
||||
o.validate = function(section_id, value) {
|
||||
return validateListenPort(value);
|
||||
};
|
||||
|
||||
httpsPortOption = o = s.taboption('scheme', form.Value, 'listen_https_port', _('HTTPS listen port'),
|
||||
_('The upstream default is -1 (disabled). Set a valid port number to enable HTTPS.'));
|
||||
o.datatype = 'integer';
|
||||
o.default = '-1';
|
||||
o.rmempty = false;
|
||||
o.cfgvalue = section_id => getListenPortValue(section_id, 'listen_https_port', '-1');
|
||||
o.validate = function(section_id, value) {
|
||||
return validateListenPort(value);
|
||||
};
|
||||
|
||||
o = s.taboption('scheme', form.Flag, 'force_https', _('Force HTTPS'));
|
||||
o.rmempty = false;
|
||||
o.depends('ssl', '1');
|
||||
|
||||
o = s.taboption('scheme', form.Value, 'ssl_cert', _('SSL cert'),
|
||||
_('SSL certificate file path'));
|
||||
o.rmempty = false;
|
||||
o.depends('ssl', '1');
|
||||
o.validate = function(section_id, value) {
|
||||
return validateHttpsRequiredFile(section_id, httpsPortOption, value,
|
||||
_('SSL certificate file path is required when HTTPS is enabled.'));
|
||||
};
|
||||
|
||||
o = s.taboption('scheme', form.Value, 'ssl_key', _('SSL key'),
|
||||
_('SSL key file path'));
|
||||
o.validate = function(section_id, value) {
|
||||
return validateHttpsRequiredFile(section_id, httpsPortOption, value,
|
||||
_('SSL key file path is required when HTTPS is enabled.'));
|
||||
};
|
||||
|
||||
o = s.taboption('scheme', form.Value, 'listen_unix_file', _('Unix socket file'));
|
||||
|
||||
o = s.taboption('scheme', form.Value, 'listen_unix_file_perm', _('Unix socket permission'));
|
||||
|
||||
o = s.taboption('scheme', form.Flag, 'listen_enable_h2c', _('Enable H2C'),
|
||||
_('Enable cleartext HTTP/2 for reverse proxies that use grpc_pass.'));
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('scheme', form.Flag, 'listen_enable_h3', _('Enable HTTP/3/QUIC'),
|
||||
_('Enable HTTP/3 over QUIC on the HTTPS listen port. HTTPS must be enabled and certificate files must be configured.'));
|
||||
o.rmempty = false;
|
||||
o.depends('ssl', '1');
|
||||
|
||||
// tasks
|
||||
o = s.taboption('tasks', form.Value, 'download_workers', _('Download Workers'));
|
||||
@@ -285,6 +481,9 @@ return view.extend({
|
||||
o.default = '1';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Flag, 'download_task_persistant', _('Download Task Persistence'));
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Value, 'transfer_workers', _('Transfer Workers'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '5';
|
||||
@@ -295,6 +494,9 @@ return view.extend({
|
||||
o.default = '2';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Flag, 'transfer_task_persistant', _('Transfer Task Persistence'));
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Value, 'upload_workers', _('Upload Workers'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '5';
|
||||
@@ -305,6 +507,9 @@ return view.extend({
|
||||
o.default = '0';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Flag, 'upload_task_persistant', _('Upload Task Persistence'));
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Value, 'copy_workers', _('Copy Workers'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '5';
|
||||
@@ -315,16 +520,67 @@ return view.extend({
|
||||
o.default = '2';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Flag, 'copy_task_persistant', _('Copy Task Persistence'));
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Value, 'move_workers', _('Move Workers'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '5';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Value, 'move_max_retry', _('Move Max Retry'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '2';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Flag, 'move_task_persistant', _('Move Task Persistence'));
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Value, 'decompress_workers', _('Decompress Workers'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '5';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Value, 'decompress_max_retry', _('Decompress Max Retry'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '2';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Flag, 'decompress_task_persistant', _('Decompress Task Persistence'));
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Value, 'decompress_upload_workers', _('Decompress Upload Workers'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '5';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Value, 'decompress_upload_max_retry', _('Decompress Upload Max Retry'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '2';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Flag, 'decompress_upload_task_persistant', _('Decompress Upload Task Persistence'));
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('tasks', form.Flag, 'allow_retry_canceled', _('Allow retry canceled tasks'));
|
||||
o.rmempty = false;
|
||||
|
||||
// cors
|
||||
o = s.taboption('cors', form.Value, 'cors_allow_origins', _('Allow Origins'));
|
||||
o = s.taboption('cors', form.Value, 'cors_allow_origins', _('Allow Origins'),
|
||||
_('Comma-separated list. Use * to allow any value.'));
|
||||
o.default = '*';
|
||||
o.rmempty = false;
|
||||
o.validate = function(section_id, value) {
|
||||
return validateCorsOrigins(value);
|
||||
};
|
||||
|
||||
o = s.taboption('cors', form.Value, 'cors_allow_methods', _('Allow Methods'),
|
||||
_('Comma-separated list. Use * to allow any value.'));
|
||||
o.default = '*';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('cors', form.Value, 'cors_allow_methods', _('Allow Methods'));
|
||||
o.default = '*';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('cors', form.Value, 'cors_allow_headers', _('Allow Headers'));
|
||||
o = s.taboption('cors', form.Value, 'cors_allow_headers', _('Allow Headers'),
|
||||
_('Comma-separated list. Use * to allow any value.'));
|
||||
o.default = '*';
|
||||
o.rmempty = false;
|
||||
|
||||
@@ -364,7 +620,7 @@ return view.extend({
|
||||
|
||||
o = s.taboption('ftp', form.Value, 'connection_timeout', _('Connection timeout (seconds)'));
|
||||
o.datatype = 'uinteger';
|
||||
o.default = '900';
|
||||
o.default = '30';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('ftp', form.Flag, 'disable_active_mode', _('Disable active transfer mode'));
|
||||
@@ -374,9 +630,11 @@ return view.extend({
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('ftp', form.Flag, 'enable_active_conn_ip_check', _('Client IP check in active transfer mode'));
|
||||
o.default = '1';
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('ftp', form.Flag, 'enable_pasv_conn_ip_check', _('Client IP check in passive transfer mode'));
|
||||
o.default = '1';
|
||||
o.rmempty = false;
|
||||
|
||||
// sftp
|
||||
|
||||
@@ -1,42 +1,60 @@
|
||||
'use strict';
|
||||
'require dom';
|
||||
'require fs';
|
||||
'require poll';
|
||||
'require uci';
|
||||
'require ui';
|
||||
'require view';
|
||||
|
||||
const DEFAULT_LOG_PATH = '/var/log/openlist2.log';
|
||||
|
||||
let scrollPosition = 0;
|
||||
let userScrolled = false;
|
||||
let logTextarea;
|
||||
let log_path;
|
||||
let log_path = DEFAULT_LOG_PATH;
|
||||
|
||||
uci.load('openlist2').then(() => {
|
||||
log_path = uci.get('openlist2', '@openlist2[0]', 'log_path') || '/var/log/openlist2.log';
|
||||
});
|
||||
const isSafeLogPath = value => /^\/var\/log\/openlist2(?:[._-][A-Za-z0-9._-]+)?$/.test(value || '');
|
||||
|
||||
const formatLog = res => {
|
||||
const log = (res || '').trim().replace(/\u001b\[[0-9;]*m/g, '');
|
||||
|
||||
return log || _('No log data.');
|
||||
};
|
||||
|
||||
const pollLog = () => {
|
||||
return Promise.all([
|
||||
fs.read_direct(log_path, 'text').then(res => {
|
||||
return res.trim().split(/\n/).join('\n').replace(/\u001b\[33mWARN\u001b\[0m/g, '').replace(/\u001b\[36mINFO\u001b\[0m/g, '').replace(/\u001b\[31mERRO\u001b\[0m/g, '');
|
||||
}),
|
||||
]).then(data => {
|
||||
logTextarea.value = data[0] || _('No log data.');
|
||||
if (!logTextarea)
|
||||
return Promise.resolve();
|
||||
|
||||
if (!userScrolled) {
|
||||
logTextarea.scrollTop = logTextarea.scrollHeight;
|
||||
} else {
|
||||
logTextarea.scrollTop = scrollPosition;
|
||||
}
|
||||
});
|
||||
return fs.read_direct(log_path, 'text')
|
||||
.then(formatLog)
|
||||
.catch(() => _('No log data.'))
|
||||
.then(log => {
|
||||
logTextarea.value = log;
|
||||
|
||||
if (!userScrolled) {
|
||||
logTextarea.scrollTop = logTextarea.scrollHeight;
|
||||
} else {
|
||||
logTextarea.scrollTop = scrollPosition;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
return view.extend({
|
||||
load() {
|
||||
return uci.load('openlist2');
|
||||
},
|
||||
|
||||
handleCleanLogs() {
|
||||
return fs.write(log_path, '')
|
||||
.catch(e => { ui.addNotification(null, E('p', e.message)) });
|
||||
.then(pollLog)
|
||||
.catch(e => {
|
||||
ui.addNotification(null, E('p', e.message));
|
||||
});
|
||||
},
|
||||
|
||||
render() {
|
||||
const configuredLogPath = uci.get('openlist2', '@openlist2[0]', 'log_path');
|
||||
log_path = isSafeLogPath(configuredLogPath) ? configuredLogPath : DEFAULT_LOG_PATH;
|
||||
|
||||
logTextarea = E('textarea', {
|
||||
'id': 'log_content',
|
||||
'class': 'cbi-input-textarea',
|
||||
|
||||
@@ -1,384 +1,623 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:169
|
||||
msgid ""
|
||||
"0 is unlimited, It is recommend to set a low number of concurrency (10-20) "
|
||||
"for poor performance device"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:175
|
||||
msgid ""
|
||||
"0 is unlimited, Limit the maximum concurrency of local agents. The default "
|
||||
"value is 64"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:84
|
||||
msgid "A file list program that supports multiple storage."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:327
|
||||
msgid "Allow Headers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:323
|
||||
msgid "Allow Methods"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:319
|
||||
msgid "Allow Origins"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:106
|
||||
msgid "Basic Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:157
|
||||
msgid "CDN URL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:112
|
||||
msgid "CORS Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:138
|
||||
msgid "Cache directory"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:59
|
||||
msgid "Clear logs"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:376
|
||||
msgid "Client IP check in active transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:379
|
||||
msgid "Client IP check in passive transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:360
|
||||
msgid "Client idle timeout (seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:100
|
||||
msgid "Collecting data..."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:365
|
||||
msgid "Connection timeout (seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:313
|
||||
msgid "Copy Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:308
|
||||
msgid "Copy Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:135
|
||||
msgid "Data directory"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:109
|
||||
msgid "Database"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:255
|
||||
msgid "Database DSN"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:224
|
||||
msgid "Database Host"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:242
|
||||
msgid "Database Name"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:238
|
||||
msgid "Database Password"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:228
|
||||
msgid "Database Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:251
|
||||
msgid "Database SSL Mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:246
|
||||
msgid "Database Table Prefix"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:218
|
||||
msgid "Database Type"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:234
|
||||
msgid "Database Username"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:127
|
||||
msgid "Delayed Start (seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:180
|
||||
msgid "Disable TLS Verify"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:370
|
||||
msgid "Disable active transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:283
|
||||
msgid "Download Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:278
|
||||
msgid "Download Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:185
|
||||
msgid "Enable Logs"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:260
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:340
|
||||
msgid "Enable SSL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:373
|
||||
msgid "Enable binary transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:357
|
||||
msgid "Enable non-20 port for active transfer"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:118
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:344
|
||||
msgid "Enabled FTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:332
|
||||
msgid "Enabled S3"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:383
|
||||
msgid "Enabled SFTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:114
|
||||
msgid "FTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:347
|
||||
msgid "FTP Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:263
|
||||
msgid "Force HTTPS"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:149
|
||||
msgid "Force read config"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:143
|
||||
msgid "Generate a new random password."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:107
|
||||
msgid "Global Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/rpcd/acl.d/luci-app-openlist2.json:3
|
||||
msgid "Grant UCI access for luci-app-openlist2"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:160
|
||||
msgid "JWT Key"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:212
|
||||
msgid "Log Compress"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:189
|
||||
msgid "Log path"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:163
|
||||
msgid "Login Validity Period (hours)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:108
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:21
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:168
|
||||
msgid "Max Connections"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:194
|
||||
msgid "Max Size (MB)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:206
|
||||
msgid "Max age"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:200
|
||||
msgid "Max backups"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:174
|
||||
msgid "Max concurrency of local proxies"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:352
|
||||
msgid "Max retries on port conflict during passive transfer"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:221
|
||||
msgid "MySQL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:40
|
||||
msgid "NOT RUNNING"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "New Password:"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "New password has been copied to clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:23
|
||||
msgid "No log data."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:113
|
||||
msgid "Object Storage"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:37
|
||||
msgid "Open Web Interface"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:132
|
||||
msgid "Open firewall port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:83
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:3
|
||||
msgid "OpenList"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:122
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:335
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:222
|
||||
msgid "PostgreSQL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:38
|
||||
"Project-Id-Version: luci-app-openlist2\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-06-27 09:57+0800\n"
|
||||
"PO-Revision-Date: 2026-06-26 00:00+0800\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:43
|
||||
msgid "RUNNING"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:68
|
||||
msgid "Refresh every %s seconds."
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:43
|
||||
msgid "NOT RUNNING"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:142
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:144
|
||||
msgid "Reset Password"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:51
|
||||
msgid "Open Web Interface"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:115
|
||||
msgid "SFTP"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:100
|
||||
msgid "Port must be -1 or a valid port number from 1 to 65535."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:386
|
||||
msgid "SFTP Port"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:120
|
||||
msgid "Site URL must start with http:// or https:// and must not end with /."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:220
|
||||
msgid "SQLite"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:132
|
||||
msgid "CORS origins must be * or include http:// or https://."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:267
|
||||
msgid "SSL cert"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:170
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:268
|
||||
msgid "SSL certificate file path"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:170
|
||||
msgid "New Password:"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:272
|
||||
msgid "SSL key"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:170
|
||||
msgid "New password has been copied to clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:273
|
||||
msgid "SSL key file path"
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:3
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:183
|
||||
msgid "OpenList"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:184
|
||||
msgid "A file list program that supports multiple storage."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:185
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Initial login username is \"%s\" and password is \"%s\". Change it "
|
||||
"immediately after first login."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:201
|
||||
msgid "Collecting data..."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:207
|
||||
msgid "Basic Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:208
|
||||
msgid "Global Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:13
|
||||
msgid "Setting"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:150
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:21
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:209
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:210
|
||||
msgid "Database"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:211
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:212
|
||||
msgid "Web Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:213
|
||||
msgid "Task threads"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:214
|
||||
msgid "CORS Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:215
|
||||
msgid "Object Storage"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:216
|
||||
msgid "FTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:217
|
||||
msgid "SFTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:220
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:224
|
||||
msgid "Debug logging"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:225
|
||||
msgid "Pass --debug to OpenList and send stderr to procd logs."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:228
|
||||
msgid "Delayed Start (seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:233
|
||||
msgid "Open firewall port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:236
|
||||
msgid "Data directory"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:239
|
||||
msgid "Cache directory"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:243
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:245
|
||||
msgid "Reset Password"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:244
|
||||
msgid "Generate a new random password."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:250
|
||||
msgid "Force read config"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:251
|
||||
msgid ""
|
||||
"Setting this to true will force the program to read the configuration file, "
|
||||
"ignoring environment variables."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:154
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:255
|
||||
msgid "Site URL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:111
|
||||
msgid "Task threads"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:293
|
||||
msgid "Transfer Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:288
|
||||
msgid "Transfer Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:303
|
||||
msgid "Upload Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:298
|
||||
msgid "Upload Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:110
|
||||
msgid "Web Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:155
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:256
|
||||
msgid ""
|
||||
"When the web is reverse proxied to a subdirectory, this option must be "
|
||||
"filled out to ensure proper functioning of the web. Do not include '/' at "
|
||||
"the end of the URL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:261
|
||||
msgid "CDN URL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:264
|
||||
msgid "JWT Key"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:267
|
||||
msgid "Login Validity Period (hours)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:272
|
||||
msgid "Proxy address"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:273
|
||||
msgid ""
|
||||
"HTTP, HTTPS, SOCKS4, SOCKS5 or SOCKS5HOSTNAME proxy used by OpenList "
|
||||
"outbound requests."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:276
|
||||
msgid "Auto memory limit (MB)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:277
|
||||
msgid "0 disables the automatic memory limit. The upstream default is 4 MB."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:282
|
||||
msgid "Minimum free memory (MB)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:283
|
||||
msgid ""
|
||||
"Values below 16 let OpenList calculate a default; negative values disable "
|
||||
"memory cache."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:288
|
||||
msgid "Maximum block size (MB)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:289
|
||||
msgid "Values below 4 let OpenList calculate a default."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:294
|
||||
msgid "Max Connections"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:295
|
||||
msgid ""
|
||||
"0 is unlimited, It is recommend to set a low number of concurrency (10-20) "
|
||||
"for poor performance device"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:300
|
||||
msgid "Max concurrency of local proxies"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:301
|
||||
msgid ""
|
||||
"0 is unlimited, Limit the maximum concurrency of local agents. The default "
|
||||
"value is 64"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:306
|
||||
msgid "Disable TLS Verify"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:307
|
||||
msgid "Skip remote TLS certificate verification (not recommended)."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:312
|
||||
msgid "Enable Logs"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:316
|
||||
msgid "Log path"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:324
|
||||
msgid "Log path must be /var/log/openlist2* without subdirectories."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:327
|
||||
msgid "Max Size (MB)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:333
|
||||
msgid "Max backups"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:339
|
||||
msgid "Max age"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:345
|
||||
msgid "Log Compress"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:350
|
||||
msgid "Enable common log filters"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:351
|
||||
msgid ""
|
||||
"Filter noisy access logs such as health checks, HEAD requests and WebDAV "
|
||||
"PROPFIND."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:355
|
||||
msgid "Custom log filter CIDR"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:358
|
||||
msgid "Custom log filter path"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:361
|
||||
msgid "Custom log filter method"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:365
|
||||
msgid "Database Type"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:367
|
||||
msgid "SQLite"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:368
|
||||
msgid "MySQL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:369
|
||||
msgid "PostgreSQL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:371
|
||||
msgid "Database Host"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:375
|
||||
msgid "Database Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:376
|
||||
msgid ""
|
||||
"Use 0 to apply the usual default for the selected database: 3306 for MySQL, "
|
||||
"5432 for PostgreSQL."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:382
|
||||
msgid "Database Username"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:386
|
||||
msgid "Database Password"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:390
|
||||
msgid "Database Name"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:394
|
||||
msgid "Database Table Prefix"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:399
|
||||
msgid "Database SSL Mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:403
|
||||
msgid "Database DSN"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:407
|
||||
msgid "Meilisearch Host"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:411
|
||||
msgid "Meilisearch API Key"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:414
|
||||
msgid "Meilisearch Index"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:419
|
||||
msgid "Listen address"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:424
|
||||
msgid "HTTP listen port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:425
|
||||
msgid "The upstream default is 5244. Set to -1 to disable HTTP."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:434
|
||||
msgid "HTTPS listen port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:435
|
||||
msgid ""
|
||||
"The upstream default is -1 (disabled). Set a valid port number to enable "
|
||||
"HTTPS."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:444
|
||||
msgid "Force HTTPS"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:447
|
||||
msgid "SSL cert"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:448
|
||||
msgid "SSL certificate file path"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:451
|
||||
msgid "SSL certificate file path is required when HTTPS is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:454
|
||||
msgid "SSL key"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:455
|
||||
msgid "SSL key file path"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:458
|
||||
msgid "SSL key file path is required when HTTPS is enabled."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:461
|
||||
msgid "Unix socket file"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:463
|
||||
msgid "Unix socket permission"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:465
|
||||
msgid "Enable H2C"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:466
|
||||
msgid "Enable cleartext HTTP/2 for reverse proxies that use grpc_pass."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:469
|
||||
msgid "Enable HTTP/3/QUIC"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:470
|
||||
msgid ""
|
||||
"Enable HTTP/3 over QUIC on the HTTPS listen port. HTTPS must be enabled and "
|
||||
"certificate files must be configured."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:474
|
||||
msgid "Download Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:479
|
||||
msgid "Download Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:484
|
||||
msgid "Download Task Persistence"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:487
|
||||
msgid "Transfer Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:492
|
||||
msgid "Transfer Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:497
|
||||
msgid "Transfer Task Persistence"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:500
|
||||
msgid "Upload Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:505
|
||||
msgid "Upload Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:510
|
||||
msgid "Upload Task Persistence"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:513
|
||||
msgid "Copy Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:518
|
||||
msgid "Copy Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:523
|
||||
msgid "Copy Task Persistence"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:526
|
||||
msgid "Move Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:531
|
||||
msgid "Move Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:536
|
||||
msgid "Move Task Persistence"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:539
|
||||
msgid "Decompress Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:544
|
||||
msgid "Decompress Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:549
|
||||
msgid "Decompress Task Persistence"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:552
|
||||
msgid "Decompress Upload Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:557
|
||||
msgid "Decompress Upload Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:562
|
||||
msgid "Decompress Upload Task Persistence"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:565
|
||||
msgid "Allow retry canceled tasks"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:569
|
||||
msgid "Allow Origins"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:570
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:578
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:583
|
||||
msgid "Comma-separated list. Use * to allow any value."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:577
|
||||
msgid "Allow Methods"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:582
|
||||
msgid "Allow Headers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:588
|
||||
msgid "Enabled S3"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:591
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:596
|
||||
msgid "Enable SSL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:600
|
||||
msgid "Enabled FTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:603
|
||||
msgid "FTP Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:608
|
||||
msgid "Max retries on port conflict during passive transfer"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:613
|
||||
msgid "Enable non-20 port for active transfer"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:616
|
||||
msgid "Client idle timeout (seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:621
|
||||
msgid "Connection timeout (seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:626
|
||||
msgid "Disable active transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:629
|
||||
msgid "Enable binary transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:632
|
||||
msgid "Client IP check in active transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:636
|
||||
msgid "Client IP check in passive transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:641
|
||||
msgid "Enabled SFTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:644
|
||||
msgid "SFTP Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:20
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:29
|
||||
msgid "No log data."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:77
|
||||
msgid "Clear logs"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:86
|
||||
#, javascript-format
|
||||
msgid "Refresh every %s seconds."
|
||||
msgstr ""
|
||||
@@ -1,389 +1,174 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: luci-app-openlist2\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-06-27 09:57+0800\n"
|
||||
"PO-Revision-Date: 2026-06-25 00:00+0800\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: zh_Hans\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:169
|
||||
msgid ""
|
||||
"0 is unlimited, It is recommend to set a low number of concurrency (10-20) "
|
||||
"for poor performance device"
|
||||
msgstr "默认 0 不限制,低性能设备建议设置较低的并发数(10-20)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:175
|
||||
msgid ""
|
||||
"0 is unlimited, Limit the maximum concurrency of local agents. The default "
|
||||
"value is 64"
|
||||
msgstr "限制本地代理最大并发数,值为 0 表示不限制,默认值 64"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:84
|
||||
msgid "A file list program that supports multiple storage."
|
||||
msgstr "一款支持多种存储的目录文件列表程序。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:327
|
||||
msgid "Allow Headers"
|
||||
msgstr "允许标头(Headers)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:323
|
||||
msgid "Allow Methods"
|
||||
msgstr "允许方法(Methods)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:319
|
||||
msgid "Allow Origins"
|
||||
msgstr "允许来源(Origins)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:106
|
||||
msgid "Basic Settings"
|
||||
msgstr "基本设置"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:157
|
||||
msgid "CDN URL"
|
||||
msgstr "CDN 地址"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:112
|
||||
msgid "CORS Settings"
|
||||
msgstr "跨域设置"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:138
|
||||
msgid "Cache directory"
|
||||
msgstr "缓存目录"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:59
|
||||
msgid "Clear logs"
|
||||
msgstr "清空日志"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:376
|
||||
msgid "Client IP check in active transfer mode"
|
||||
msgstr "主动传输模式下对客户端进行 IP 检查"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:379
|
||||
msgid "Client IP check in passive transfer mode"
|
||||
msgstr "被动传输模式下对客户端进行 IP 检查"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:360
|
||||
msgid "Client idle timeout (seconds)"
|
||||
msgstr "客户端空闲超时(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:100
|
||||
msgid "Collecting data..."
|
||||
msgstr "收集数据..."
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:365
|
||||
msgid "Connection timeout (seconds)"
|
||||
msgstr "连接超时(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:313
|
||||
msgid "Copy Max Retry"
|
||||
msgstr "复制任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:308
|
||||
msgid "Copy Workers"
|
||||
msgstr "复制任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:135
|
||||
msgid "Data directory"
|
||||
msgstr "数据目录"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:109
|
||||
msgid "Database"
|
||||
msgstr "数据库"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:255
|
||||
msgid "Database DSN"
|
||||
msgstr "DSN"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:224
|
||||
msgid "Database Host"
|
||||
msgstr "主机"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:242
|
||||
msgid "Database Name"
|
||||
msgstr "数据库名"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:238
|
||||
msgid "Database Password"
|
||||
msgstr "密码"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:228
|
||||
msgid "Database Port"
|
||||
msgstr "端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:251
|
||||
msgid "Database SSL Mode"
|
||||
msgstr "SSL模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:246
|
||||
msgid "Database Table Prefix"
|
||||
msgstr "数据库表前缀"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:218
|
||||
msgid "Database Type"
|
||||
msgstr "数据库类型"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:234
|
||||
msgid "Database Username"
|
||||
msgstr "用户名"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:127
|
||||
msgid "Delayed Start (seconds)"
|
||||
msgstr "开机延时启动(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:180
|
||||
msgid "Disable TLS Verify"
|
||||
msgstr "禁用 TLS 验证"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:370
|
||||
msgid "Disable active transfer mode"
|
||||
msgstr "禁用主动传输模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:283
|
||||
msgid "Download Max Retry"
|
||||
msgstr "下载任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:278
|
||||
msgid "Download Workers"
|
||||
msgstr "下载任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:185
|
||||
msgid "Enable Logs"
|
||||
msgstr "启用日志"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:260
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:340
|
||||
msgid "Enable SSL"
|
||||
msgstr "启用 SSL"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:373
|
||||
msgid "Enable binary transfer mode"
|
||||
msgstr "启用二进制传输模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:357
|
||||
msgid "Enable non-20 port for active transfer"
|
||||
msgstr "启用非 20 端口进行主动传输"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:118
|
||||
msgid "Enabled"
|
||||
msgstr "启用"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:344
|
||||
msgid "Enabled FTP"
|
||||
msgstr "启用 FTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:332
|
||||
msgid "Enabled S3"
|
||||
msgstr "启用 S3"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:383
|
||||
msgid "Enabled SFTP"
|
||||
msgstr "启用 SFTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:114
|
||||
msgid "FTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:347
|
||||
msgid "FTP Port"
|
||||
msgstr "FTP 端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:263
|
||||
msgid "Force HTTPS"
|
||||
msgstr "强制 HTTPS"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:149
|
||||
msgid "Force read config"
|
||||
msgstr "强制读取配置"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:143
|
||||
msgid "Generate a new random password."
|
||||
msgstr "随机生成一个新密码。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:107
|
||||
msgid "Global Settings"
|
||||
msgstr "全局设置"
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/rpcd/acl.d/luci-app-openlist2.json:3
|
||||
msgid "Grant UCI access for luci-app-openlist2"
|
||||
msgstr "授予 luci-app-openlist2 的 UCI 访问权限"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:160
|
||||
msgid "JWT Key"
|
||||
msgstr "JWT 密钥"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:212
|
||||
msgid "Log Compress"
|
||||
msgstr "日志压缩"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:189
|
||||
msgid "Log path"
|
||||
msgstr "日志文件路径"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:163
|
||||
msgid "Login Validity Period (hours)"
|
||||
msgstr "登录有效期(小时)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:108
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:21
|
||||
msgid "Logs"
|
||||
msgstr "日志"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:168
|
||||
msgid "Max Connections"
|
||||
msgstr "最大并发连接数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:194
|
||||
msgid "Max Size (MB)"
|
||||
msgstr "日志文件大小(MB)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:206
|
||||
msgid "Max age"
|
||||
msgstr "日志保存天数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:200
|
||||
msgid "Max backups"
|
||||
msgstr "日志备份数量"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:174
|
||||
msgid "Max concurrency of local proxies"
|
||||
msgstr "本地代理最大并发数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:352
|
||||
msgid "Max retries on port conflict during passive transfer"
|
||||
msgstr "被动传输端口冲突时最大重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:221
|
||||
msgid "MySQL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:40
|
||||
msgid "NOT RUNNING"
|
||||
msgstr "未运行"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "New Password:"
|
||||
msgstr "新密码:"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "New password has been copied to clipboard."
|
||||
msgstr "新密码已复制到剪贴板。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:23
|
||||
msgid "No log data."
|
||||
msgstr "无日志数据。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:113
|
||||
msgid "Object Storage"
|
||||
msgstr "对象存储"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:37
|
||||
msgid "Open Web Interface"
|
||||
msgstr "打开 Web 界面"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:132
|
||||
msgid "Open firewall port"
|
||||
msgstr "打开防火墙端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:83
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:3
|
||||
msgid "OpenList"
|
||||
msgstr "OpenList"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:122
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:335
|
||||
msgid "Port"
|
||||
msgstr "端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:222
|
||||
msgid "PostgreSQL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:38
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:43
|
||||
msgid "RUNNING"
|
||||
msgstr "运行中"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:68
|
||||
msgid "Refresh every %s seconds."
|
||||
msgstr "每 %s 秒刷新。"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:43
|
||||
msgid "NOT RUNNING"
|
||||
msgstr "未运行"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:142
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:144
|
||||
msgid "Reset Password"
|
||||
msgstr "重置密码"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:51
|
||||
msgid "Open Web Interface"
|
||||
msgstr "打开 Web 界面"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:115
|
||||
msgid "SFTP"
|
||||
msgstr ""
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:100
|
||||
msgid "Port must be -1 or a valid port number from 1 to 65535."
|
||||
msgstr "端口必须为 -1,或 1 到 65535 之间的有效端口号。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:386
|
||||
msgid "SFTP Port"
|
||||
msgstr "SFTP 端口"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:120
|
||||
msgid "Site URL must start with http:// or https:// and must not end with /."
|
||||
msgstr "站点 URL 必须以 http:// 或 https:// 开头,且末尾不能带 /。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:220
|
||||
msgid "SQLite"
|
||||
msgstr ""
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:132
|
||||
msgid "CORS origins must be * or include http:// or https://."
|
||||
msgstr "CORS 来源必须为 *,或包含 http:// / https://。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:267
|
||||
msgid "SSL cert"
|
||||
msgstr "SSL 证书"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:170
|
||||
msgid "Username:"
|
||||
msgstr "用户名:"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:268
|
||||
msgid "SSL certificate file path"
|
||||
msgstr "SSL 证书文件路径"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:170
|
||||
msgid "New Password:"
|
||||
msgstr "新密码:"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:272
|
||||
msgid "SSL key"
|
||||
msgstr "SSL 密钥"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:170
|
||||
msgid "New password has been copied to clipboard."
|
||||
msgstr "新密码已复制到剪贴板。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:273
|
||||
msgid "SSL key file path"
|
||||
msgstr "SSL 密钥文件路径"
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:3
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:183
|
||||
msgid "OpenList"
|
||||
msgstr "OpenList"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:184
|
||||
msgid "A file list program that supports multiple storage."
|
||||
msgstr "一款支持多种存储的目录文件列表程序。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:185
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Initial login username is \"%s\" and password is \"%s\". Change it "
|
||||
"immediately after first login."
|
||||
msgstr "初始登录用户名为「%s」,密码为「%s」。首次登录后请立即修改。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:201
|
||||
msgid "Collecting data..."
|
||||
msgstr "收集数据..."
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:207
|
||||
msgid "Basic Settings"
|
||||
msgstr "基本设置"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:208
|
||||
msgid "Global Settings"
|
||||
msgstr "全局设置"
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:13
|
||||
msgid "Setting"
|
||||
msgstr "设置"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:150
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:21
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:209
|
||||
msgid "Logs"
|
||||
msgstr "日志"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:210
|
||||
msgid "Database"
|
||||
msgstr "数据库"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:211
|
||||
msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:212
|
||||
msgid "Web Protocol"
|
||||
msgstr "Web 协议"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:213
|
||||
msgid "Task threads"
|
||||
msgstr "任务线程"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:214
|
||||
msgid "CORS Settings"
|
||||
msgstr "跨域设置"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:215
|
||||
msgid "Object Storage"
|
||||
msgstr "对象存储"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:216
|
||||
msgid "FTP"
|
||||
msgstr "FTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:217
|
||||
msgid "SFTP"
|
||||
msgstr "SFTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:220
|
||||
msgid "Enabled"
|
||||
msgstr "启用"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:224
|
||||
msgid "Debug logging"
|
||||
msgstr "调试日志"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:225
|
||||
msgid "Pass --debug to OpenList and send stderr to procd logs."
|
||||
msgstr "向 OpenList 传递 --debug,并将 stderr 发送到 procd 日志。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:228
|
||||
msgid "Delayed Start (seconds)"
|
||||
msgstr "开机延时启动(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:233
|
||||
msgid "Open firewall port"
|
||||
msgstr "打开防火墙端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:236
|
||||
msgid "Data directory"
|
||||
msgstr "数据目录"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:239
|
||||
msgid "Cache directory"
|
||||
msgstr "缓存目录"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:243
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:245
|
||||
msgid "Reset Password"
|
||||
msgstr "重置密码"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:244
|
||||
msgid "Generate a new random password."
|
||||
msgstr "随机生成一个新密码。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:250
|
||||
msgid "Force read config"
|
||||
msgstr "强制读取配置"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:251
|
||||
msgid ""
|
||||
"Setting this to true will force the program to read the configuration file, "
|
||||
"ignoring environment variables."
|
||||
msgstr "将此设置为 true 可以强制程序读取配置文件,而忽略环境变量"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:154
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:255
|
||||
msgid "Site URL"
|
||||
msgstr "站点地址"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:111
|
||||
msgid "Task threads"
|
||||
msgstr "任务线程"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:293
|
||||
msgid "Transfer Max Retry"
|
||||
msgstr "中转任务下载重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:288
|
||||
msgid "Transfer Workers"
|
||||
msgstr "中转任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:303
|
||||
msgid "Upload Max Retry"
|
||||
msgstr "上传任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:298
|
||||
msgid "Upload Workers"
|
||||
msgstr "上传任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "Username:"
|
||||
msgstr "用户名:"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:110
|
||||
msgid "Web Protocol"
|
||||
msgstr "Web 协议"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:155
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:256
|
||||
msgid ""
|
||||
"When the web is reverse proxied to a subdirectory, this option must be "
|
||||
"filled out to ensure proper functioning of the web. Do not include '/' at "
|
||||
@@ -391,3 +176,457 @@ msgid ""
|
||||
msgstr ""
|
||||
"Web 被反向代理到二级目录时,必须填写该选项以确保 Web 正常工作。URL 结尾请勿携"
|
||||
"带 '/'"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:261
|
||||
msgid "CDN URL"
|
||||
msgstr "CDN 地址"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:264
|
||||
msgid "JWT Key"
|
||||
msgstr "JWT 密钥"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:267
|
||||
msgid "Login Validity Period (hours)"
|
||||
msgstr "登录有效期(小时)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:272
|
||||
msgid "Proxy address"
|
||||
msgstr "代理地址"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:273
|
||||
msgid ""
|
||||
"HTTP, HTTPS, SOCKS4, SOCKS5 or SOCKS5HOSTNAME proxy used by OpenList "
|
||||
"outbound requests."
|
||||
msgstr ""
|
||||
"OpenList 出站请求使用的 HTTP、HTTPS、SOCKS4、SOCKS5 或 SOCKS5HOSTNAME 代理。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:276
|
||||
msgid "Auto memory limit (MB)"
|
||||
msgstr "自动内存限制(MB)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:277
|
||||
msgid "0 disables the automatic memory limit. The upstream default is 4 MB."
|
||||
msgstr "0 表示禁用自动内存限制。上游默认值为 4 MB。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:282
|
||||
msgid "Minimum free memory (MB)"
|
||||
msgstr "最小可用内存(MB)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:283
|
||||
msgid ""
|
||||
"Values below 16 let OpenList calculate a default; negative values disable "
|
||||
"memory cache."
|
||||
msgstr "低于 16 时由 OpenList 自动计算默认值;负数表示禁用内存缓存。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:288
|
||||
msgid "Maximum block size (MB)"
|
||||
msgstr "最大块大小(MB)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:289
|
||||
msgid "Values below 4 let OpenList calculate a default."
|
||||
msgstr "低于 4 时由 OpenList 自动计算默认值。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:294
|
||||
msgid "Max Connections"
|
||||
msgstr "最大并发连接数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:295
|
||||
msgid ""
|
||||
"0 is unlimited, It is recommend to set a low number of concurrency (10-20) "
|
||||
"for poor performance device"
|
||||
msgstr "默认 0 不限制,低性能设备建议设置较低的并发数(10-20)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:300
|
||||
msgid "Max concurrency of local proxies"
|
||||
msgstr "本地代理最大并发数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:301
|
||||
msgid ""
|
||||
"0 is unlimited, Limit the maximum concurrency of local agents. The default "
|
||||
"value is 64"
|
||||
msgstr "限制本地代理最大并发数,值为 0 表示不限制,默认值 64"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:306
|
||||
msgid "Disable TLS Verify"
|
||||
msgstr "禁用 TLS 验证"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:307
|
||||
msgid "Skip remote TLS certificate verification (not recommended)."
|
||||
msgstr "跳过远程 TLS 证书校验(不推荐)。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:312
|
||||
msgid "Enable Logs"
|
||||
msgstr "启用日志"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:316
|
||||
msgid "Log path"
|
||||
msgstr "日志文件路径"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:324
|
||||
msgid "Log path must be /var/log/openlist2* without subdirectories."
|
||||
msgstr "日志路径必须为 /var/log/openlist2*,且不得包含子目录。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:327
|
||||
msgid "Max Size (MB)"
|
||||
msgstr "日志文件大小(MB)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:333
|
||||
msgid "Max backups"
|
||||
msgstr "日志备份数量"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:339
|
||||
msgid "Max age"
|
||||
msgstr "日志保存天数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:345
|
||||
msgid "Log Compress"
|
||||
msgstr "日志压缩"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:350
|
||||
msgid "Enable common log filters"
|
||||
msgstr "启用常用日志过滤"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:351
|
||||
msgid ""
|
||||
"Filter noisy access logs such as health checks, HEAD requests and WebDAV "
|
||||
"PROPFIND."
|
||||
msgstr "过滤健康检查、HEAD 请求和 WebDAV PROPFIND 等噪声访问日志。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:355
|
||||
msgid "Custom log filter CIDR"
|
||||
msgstr "自定义日志过滤 CIDR"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:358
|
||||
msgid "Custom log filter path"
|
||||
msgstr "自定义日志过滤路径"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:361
|
||||
msgid "Custom log filter method"
|
||||
msgstr "自定义日志过滤方法"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:365
|
||||
msgid "Database Type"
|
||||
msgstr "数据库类型"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:367
|
||||
msgid "SQLite"
|
||||
msgstr "SQLite"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:368
|
||||
msgid "MySQL"
|
||||
msgstr "MySQL"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:369
|
||||
msgid "PostgreSQL"
|
||||
msgstr "PostgreSQL"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:371
|
||||
msgid "Database Host"
|
||||
msgstr "主机"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:375
|
||||
msgid "Database Port"
|
||||
msgstr "端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:376
|
||||
msgid ""
|
||||
"Use 0 to apply the usual default for the selected database: 3306 for MySQL, "
|
||||
"5432 for PostgreSQL."
|
||||
msgstr ""
|
||||
"使用 0 时会按所选数据库使用常见默认端口:MySQL 为 3306,PostgreSQL 为 5432。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:382
|
||||
msgid "Database Username"
|
||||
msgstr "用户名"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:386
|
||||
msgid "Database Password"
|
||||
msgstr "密码"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:390
|
||||
msgid "Database Name"
|
||||
msgstr "数据库名"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:394
|
||||
msgid "Database Table Prefix"
|
||||
msgstr "数据库表前缀"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:399
|
||||
msgid "Database SSL Mode"
|
||||
msgstr "SSL模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:403
|
||||
msgid "Database DSN"
|
||||
msgstr "DSN"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:407
|
||||
msgid "Meilisearch Host"
|
||||
msgstr "Meilisearch 主机"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:411
|
||||
msgid "Meilisearch API Key"
|
||||
msgstr "Meilisearch API 密钥"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:414
|
||||
msgid "Meilisearch Index"
|
||||
msgstr "Meilisearch 索引"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:419
|
||||
msgid "Listen address"
|
||||
msgstr "监听地址"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:424
|
||||
msgid "HTTP listen port"
|
||||
msgstr "HTTP 监听端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:425
|
||||
msgid "The upstream default is 5244. Set to -1 to disable HTTP."
|
||||
msgstr "上游默认值为 5244。设为 -1 可禁用 HTTP。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:434
|
||||
msgid "HTTPS listen port"
|
||||
msgstr "HTTPS 监听端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:435
|
||||
msgid ""
|
||||
"The upstream default is -1 (disabled). Set a valid port number to enable "
|
||||
"HTTPS."
|
||||
msgstr "上游默认值为 -1(禁用)。设为有效端口号可启用 HTTPS。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:444
|
||||
msgid "Force HTTPS"
|
||||
msgstr "强制 HTTPS"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:447
|
||||
msgid "SSL cert"
|
||||
msgstr "SSL 证书"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:448
|
||||
msgid "SSL certificate file path"
|
||||
msgstr "SSL 证书文件路径"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:451
|
||||
msgid "SSL certificate file path is required when HTTPS is enabled."
|
||||
msgstr "启用 HTTPS 时必须填写 SSL 证书文件路径。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:454
|
||||
msgid "SSL key"
|
||||
msgstr "SSL 密钥"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:455
|
||||
msgid "SSL key file path"
|
||||
msgstr "SSL 密钥文件路径"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:458
|
||||
msgid "SSL key file path is required when HTTPS is enabled."
|
||||
msgstr "启用 HTTPS 时必须填写 SSL 密钥文件路径。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:461
|
||||
msgid "Unix socket file"
|
||||
msgstr "Unix Socket 文件"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:463
|
||||
msgid "Unix socket permission"
|
||||
msgstr "Unix Socket 权限"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:465
|
||||
msgid "Enable H2C"
|
||||
msgstr "启用 H2C"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:466
|
||||
msgid "Enable cleartext HTTP/2 for reverse proxies that use grpc_pass."
|
||||
msgstr "为使用 grpc_pass 的反向代理启用明文 HTTP/2。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:469
|
||||
msgid "Enable HTTP/3/QUIC"
|
||||
msgstr "启用 HTTP/3/QUIC"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:470
|
||||
msgid ""
|
||||
"Enable HTTP/3 over QUIC on the HTTPS listen port. HTTPS must be enabled and "
|
||||
"certificate files must be configured."
|
||||
msgstr ""
|
||||
"在 HTTPS 监听端口上启用基于 QUIC 的 HTTP/3。必须先启用 HTTPS 并配置证书文件。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:474
|
||||
msgid "Download Workers"
|
||||
msgstr "下载任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:479
|
||||
msgid "Download Max Retry"
|
||||
msgstr "下载任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:484
|
||||
msgid "Download Task Persistence"
|
||||
msgstr "下载任务持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:487
|
||||
msgid "Transfer Workers"
|
||||
msgstr "中转任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:492
|
||||
msgid "Transfer Max Retry"
|
||||
msgstr "中转任务下载重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:497
|
||||
msgid "Transfer Task Persistence"
|
||||
msgstr "中转任务持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:500
|
||||
msgid "Upload Workers"
|
||||
msgstr "上传任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:505
|
||||
msgid "Upload Max Retry"
|
||||
msgstr "上传任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:510
|
||||
msgid "Upload Task Persistence"
|
||||
msgstr "上传任务持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:513
|
||||
msgid "Copy Workers"
|
||||
msgstr "复制任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:518
|
||||
msgid "Copy Max Retry"
|
||||
msgstr "复制任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:523
|
||||
msgid "Copy Task Persistence"
|
||||
msgstr "复制任务持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:526
|
||||
msgid "Move Workers"
|
||||
msgstr "移动任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:531
|
||||
msgid "Move Max Retry"
|
||||
msgstr "移动任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:536
|
||||
msgid "Move Task Persistence"
|
||||
msgstr "移动任务持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:539
|
||||
msgid "Decompress Workers"
|
||||
msgstr "解压任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:544
|
||||
msgid "Decompress Max Retry"
|
||||
msgstr "解压任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:549
|
||||
msgid "Decompress Task Persistence"
|
||||
msgstr "解压任务持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:552
|
||||
msgid "Decompress Upload Workers"
|
||||
msgstr "解压上传任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:557
|
||||
msgid "Decompress Upload Max Retry"
|
||||
msgstr "解压上传任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:562
|
||||
msgid "Decompress Upload Task Persistence"
|
||||
msgstr "解压上传任务持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:565
|
||||
msgid "Allow retry canceled tasks"
|
||||
msgstr "允许重试已取消的任务"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:569
|
||||
msgid "Allow Origins"
|
||||
msgstr "允许来源(Origins)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:570
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:578
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:583
|
||||
msgid "Comma-separated list. Use * to allow any value."
|
||||
msgstr "使用英文逗号分隔。使用 * 表示允许任意值。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:577
|
||||
msgid "Allow Methods"
|
||||
msgstr "允许方法(Methods)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:582
|
||||
msgid "Allow Headers"
|
||||
msgstr "允许标头(Headers)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:588
|
||||
msgid "Enabled S3"
|
||||
msgstr "启用 S3"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:591
|
||||
msgid "Port"
|
||||
msgstr "端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:596
|
||||
msgid "Enable SSL"
|
||||
msgstr "启用 SSL"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:600
|
||||
msgid "Enabled FTP"
|
||||
msgstr "启用 FTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:603
|
||||
msgid "FTP Port"
|
||||
msgstr "FTP 端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:608
|
||||
msgid "Max retries on port conflict during passive transfer"
|
||||
msgstr "被动传输端口冲突时最大重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:613
|
||||
msgid "Enable non-20 port for active transfer"
|
||||
msgstr "启用非 20 端口进行主动传输"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:616
|
||||
msgid "Client idle timeout (seconds)"
|
||||
msgstr "客户端空闲超时(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:621
|
||||
msgid "Connection timeout (seconds)"
|
||||
msgstr "连接超时(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:626
|
||||
msgid "Disable active transfer mode"
|
||||
msgstr "禁用主动传输模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:629
|
||||
msgid "Enable binary transfer mode"
|
||||
msgstr "启用二进制传输模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:632
|
||||
msgid "Client IP check in active transfer mode"
|
||||
msgstr "主动传输模式下对客户端进行 IP 检查"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:636
|
||||
msgid "Client IP check in passive transfer mode"
|
||||
msgstr "被动传输模式下对客户端进行 IP 检查"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:641
|
||||
msgid "Enabled SFTP"
|
||||
msgstr "启用 SFTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:644
|
||||
msgid "SFTP Port"
|
||||
msgstr "SFTP 端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:20
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:29
|
||||
msgid "No log data."
|
||||
msgstr "无日志数据。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:77
|
||||
msgid "Clear logs"
|
||||
msgstr "清空日志"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:86
|
||||
#, javascript-format
|
||||
msgid "Refresh every %s seconds."
|
||||
msgstr "每 %s 秒刷新。"
|
||||
|
||||
#~ msgid "Grant UCI access for luci-app-openlist2"
|
||||
#~ msgstr "授予 luci-app-openlist2 的 UCI 访问权限"
|
||||
@@ -0,0 +1,634 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: luci-app-openlist2\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-06-27 09:57+0800\n"
|
||||
"PO-Revision-Date: 2026-06-25 00:00+0800\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: zh_Hant\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:43
|
||||
msgid "RUNNING"
|
||||
msgstr "執行中"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:43
|
||||
msgid "NOT RUNNING"
|
||||
msgstr "未執行"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:51
|
||||
msgid "Open Web Interface"
|
||||
msgstr "開啟 Web 介面"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:100
|
||||
msgid "Port must be -1 or a valid port number from 1 to 65535."
|
||||
msgstr "埠必須為 -1,或 1 到 65535 之間的有效埠號。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:120
|
||||
msgid "Site URL must start with http:// or https:// and must not end with /."
|
||||
msgstr "站點 URL 必須以 http:// 或 https:// 開頭,且末尾不能帶 /。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:132
|
||||
msgid "CORS origins must be * or include http:// or https://."
|
||||
msgstr "CORS 來源必須為 *,或包含 http:// / https://。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:170
|
||||
msgid "Username:"
|
||||
msgstr "使用者名稱:"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:170
|
||||
msgid "New Password:"
|
||||
msgstr "新密碼:"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:170
|
||||
msgid "New password has been copied to clipboard."
|
||||
msgstr "新密碼已複製到剪貼簿。"
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:3
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:183
|
||||
msgid "OpenList"
|
||||
msgstr "OpenList"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:184
|
||||
msgid "A file list program that supports multiple storage."
|
||||
msgstr "一款支援多種儲存的目錄檔案列表程式。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:185
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"Initial login username is \"%s\" and password is \"%s\". Change it "
|
||||
"immediately after first login."
|
||||
msgstr "初始登入使用者名稱為「%s」,密碼為「%s」。首次登入後請立即修改。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:201
|
||||
msgid "Collecting data..."
|
||||
msgstr "收集資料..."
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:207
|
||||
msgid "Basic Settings"
|
||||
msgstr "基本設定"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:208
|
||||
msgid "Global Settings"
|
||||
msgstr "全域性設定"
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:13
|
||||
msgid "Setting"
|
||||
msgstr "設定"
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:21
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:209
|
||||
msgid "Logs"
|
||||
msgstr "日誌"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:210
|
||||
msgid "Database"
|
||||
msgstr "資料庫"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:211
|
||||
msgid "Search"
|
||||
msgstr "搜尋"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:212
|
||||
msgid "Web Protocol"
|
||||
msgstr "Web 協議"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:213
|
||||
msgid "Task threads"
|
||||
msgstr "任務執行緒"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:214
|
||||
msgid "CORS Settings"
|
||||
msgstr "跨域設定"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:215
|
||||
msgid "Object Storage"
|
||||
msgstr "物件儲存"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:216
|
||||
msgid "FTP"
|
||||
msgstr "FTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:217
|
||||
msgid "SFTP"
|
||||
msgstr "SFTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:220
|
||||
msgid "Enabled"
|
||||
msgstr "啟用"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:224
|
||||
msgid "Debug logging"
|
||||
msgstr "偵錯日誌"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:225
|
||||
msgid "Pass --debug to OpenList and send stderr to procd logs."
|
||||
msgstr "向 OpenList 傳遞 --debug,並將 stderr 傳送到 procd 日誌。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:228
|
||||
msgid "Delayed Start (seconds)"
|
||||
msgstr "開機延時啟動(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:233
|
||||
msgid "Open firewall port"
|
||||
msgstr "開啟防火牆埠"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:236
|
||||
msgid "Data directory"
|
||||
msgstr "資料目錄"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:239
|
||||
msgid "Cache directory"
|
||||
msgstr "快取目錄"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:243
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:245
|
||||
msgid "Reset Password"
|
||||
msgstr "重置密碼"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:244
|
||||
msgid "Generate a new random password."
|
||||
msgstr "隨機生成一個新密碼。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:250
|
||||
msgid "Force read config"
|
||||
msgstr "強制讀取配置"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:251
|
||||
msgid ""
|
||||
"Setting this to true will force the program to read the configuration file, "
|
||||
"ignoring environment variables."
|
||||
msgstr "將此設定為 true 可以強制程式讀取配置檔案,而忽略環境變數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:255
|
||||
msgid "Site URL"
|
||||
msgstr "站點地址"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:256
|
||||
msgid ""
|
||||
"When the web is reverse proxied to a subdirectory, this option must be "
|
||||
"filled out to ensure proper functioning of the web. Do not include '/' at "
|
||||
"the end of the URL"
|
||||
msgstr ""
|
||||
"Web 被反向代理到二級目錄時,必須填寫該選項以確保 Web 正常工作。URL 結尾請勿攜"
|
||||
"帶 '/'"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:261
|
||||
msgid "CDN URL"
|
||||
msgstr "CDN 地址"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:264
|
||||
msgid "JWT Key"
|
||||
msgstr "JWT 金鑰"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:267
|
||||
msgid "Login Validity Period (hours)"
|
||||
msgstr "登入有效期(小時)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:272
|
||||
msgid "Proxy address"
|
||||
msgstr "代理地址"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:273
|
||||
msgid ""
|
||||
"HTTP, HTTPS, SOCKS4, SOCKS5 or SOCKS5HOSTNAME proxy used by OpenList "
|
||||
"outbound requests."
|
||||
msgstr ""
|
||||
"OpenList 出站請求使用的 HTTP、HTTPS、SOCKS4、SOCKS5 或 SOCKS5HOSTNAME 代理。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:276
|
||||
msgid "Auto memory limit (MB)"
|
||||
msgstr "自動記憶體限制(MB)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:277
|
||||
msgid "0 disables the automatic memory limit. The upstream default is 4 MB."
|
||||
msgstr "0 表示停用自動記憶體限制。上游預設值為 4 MB。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:282
|
||||
msgid "Minimum free memory (MB)"
|
||||
msgstr "最小可用記憶體(MB)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:283
|
||||
msgid ""
|
||||
"Values below 16 let OpenList calculate a default; negative values disable "
|
||||
"memory cache."
|
||||
msgstr "低於 16 時由 OpenList 自動計算預設值;負數表示停用記憶體快取。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:288
|
||||
msgid "Maximum block size (MB)"
|
||||
msgstr "最大區塊大小(MB)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:289
|
||||
msgid "Values below 4 let OpenList calculate a default."
|
||||
msgstr "低於 4 時由 OpenList 自動計算預設值。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:294
|
||||
msgid "Max Connections"
|
||||
msgstr "最大併發連線數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:295
|
||||
msgid ""
|
||||
"0 is unlimited, It is recommend to set a low number of concurrency (10-20) "
|
||||
"for poor performance device"
|
||||
msgstr "預設 0 不限制,低效能裝置建議設定較低的併發數(10-20)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:300
|
||||
msgid "Max concurrency of local proxies"
|
||||
msgstr "本地代理最大併發數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:301
|
||||
msgid ""
|
||||
"0 is unlimited, Limit the maximum concurrency of local agents. The default "
|
||||
"value is 64"
|
||||
msgstr "限制本地代理最大併發數,值為 0 表示不限制,預設值 64"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:306
|
||||
msgid "Disable TLS Verify"
|
||||
msgstr "停用 TLS 驗證"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:307
|
||||
msgid "Skip remote TLS certificate verification (not recommended)."
|
||||
msgstr "跳過遠端 TLS 憑證驗證(不建議)。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:312
|
||||
msgid "Enable Logs"
|
||||
msgstr "啟用日誌"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:316
|
||||
msgid "Log path"
|
||||
msgstr "日誌檔案路徑"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:324
|
||||
msgid "Log path must be /var/log/openlist2* without subdirectories."
|
||||
msgstr "日誌路徑必須為 /var/log/openlist2*,且不得包含子目錄。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:327
|
||||
msgid "Max Size (MB)"
|
||||
msgstr "日誌檔案大小(MB)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:333
|
||||
msgid "Max backups"
|
||||
msgstr "日誌備份數量"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:339
|
||||
msgid "Max age"
|
||||
msgstr "日誌儲存天數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:345
|
||||
msgid "Log Compress"
|
||||
msgstr "日誌壓縮"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:350
|
||||
msgid "Enable common log filters"
|
||||
msgstr "啟用常用日誌過濾"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:351
|
||||
msgid ""
|
||||
"Filter noisy access logs such as health checks, HEAD requests and WebDAV "
|
||||
"PROPFIND."
|
||||
msgstr "過濾健康檢查、HEAD 請求和 WebDAV PROPFIND 等噪聲存取日誌。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:355
|
||||
msgid "Custom log filter CIDR"
|
||||
msgstr "自訂日誌過濾 CIDR"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:358
|
||||
msgid "Custom log filter path"
|
||||
msgstr "自訂日誌過濾路徑"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:361
|
||||
msgid "Custom log filter method"
|
||||
msgstr "自訂日誌過濾方法"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:365
|
||||
msgid "Database Type"
|
||||
msgstr "資料庫型別"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:367
|
||||
msgid "SQLite"
|
||||
msgstr "SQLite"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:368
|
||||
msgid "MySQL"
|
||||
msgstr "MySQL"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:369
|
||||
msgid "PostgreSQL"
|
||||
msgstr "PostgreSQL"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:371
|
||||
msgid "Database Host"
|
||||
msgstr "主機"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:375
|
||||
msgid "Database Port"
|
||||
msgstr "埠"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:376
|
||||
msgid ""
|
||||
"Use 0 to apply the usual default for the selected database: 3306 for MySQL, "
|
||||
"5432 for PostgreSQL."
|
||||
msgstr ""
|
||||
"使用 0 時會依所選資料庫使用常見預設連接埠:MySQL 為 3306,PostgreSQL 為 "
|
||||
"5432。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:382
|
||||
msgid "Database Username"
|
||||
msgstr "使用者名稱"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:386
|
||||
msgid "Database Password"
|
||||
msgstr "密碼"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:390
|
||||
msgid "Database Name"
|
||||
msgstr "資料庫名"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:394
|
||||
msgid "Database Table Prefix"
|
||||
msgstr "資料庫表字首"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:399
|
||||
msgid "Database SSL Mode"
|
||||
msgstr "SSL模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:403
|
||||
msgid "Database DSN"
|
||||
msgstr "DSN"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:407
|
||||
msgid "Meilisearch Host"
|
||||
msgstr "Meilisearch 主機"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:411
|
||||
msgid "Meilisearch API Key"
|
||||
msgstr "Meilisearch API 金鑰"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:414
|
||||
msgid "Meilisearch Index"
|
||||
msgstr "Meilisearch 索引"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:419
|
||||
msgid "Listen address"
|
||||
msgstr "監聽地址"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:424
|
||||
msgid "HTTP listen port"
|
||||
msgstr "HTTP 監聽埠"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:425
|
||||
msgid "The upstream default is 5244. Set to -1 to disable HTTP."
|
||||
msgstr "上游預設值為 5244。設為 -1 可停用 HTTP。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:434
|
||||
msgid "HTTPS listen port"
|
||||
msgstr "HTTPS 監聽埠"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:435
|
||||
msgid ""
|
||||
"The upstream default is -1 (disabled). Set a valid port number to enable "
|
||||
"HTTPS."
|
||||
msgstr "上游預設值為 -1(停用)。設為有效埠號可啟用 HTTPS。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:444
|
||||
msgid "Force HTTPS"
|
||||
msgstr "強制 HTTPS"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:447
|
||||
msgid "SSL cert"
|
||||
msgstr "SSL 證書"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:448
|
||||
msgid "SSL certificate file path"
|
||||
msgstr "SSL 證書檔案路徑"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:451
|
||||
msgid "SSL certificate file path is required when HTTPS is enabled."
|
||||
msgstr "啟用 HTTPS 時必須填寫 SSL 證書檔案路徑。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:454
|
||||
msgid "SSL key"
|
||||
msgstr "SSL 金鑰"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:455
|
||||
msgid "SSL key file path"
|
||||
msgstr "SSL 金鑰檔案路徑"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:458
|
||||
msgid "SSL key file path is required when HTTPS is enabled."
|
||||
msgstr "啟用 HTTPS 時必須填寫 SSL 金鑰檔案路徑。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:461
|
||||
msgid "Unix socket file"
|
||||
msgstr "Unix Socket 檔案"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:463
|
||||
msgid "Unix socket permission"
|
||||
msgstr "Unix Socket 權限"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:465
|
||||
msgid "Enable H2C"
|
||||
msgstr "啟用 H2C"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:466
|
||||
msgid "Enable cleartext HTTP/2 for reverse proxies that use grpc_pass."
|
||||
msgstr "為使用 grpc_pass 的反向代理啟用明文 HTTP/2。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:469
|
||||
msgid "Enable HTTP/3/QUIC"
|
||||
msgstr "啟用 HTTP/3/QUIC"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:470
|
||||
msgid ""
|
||||
"Enable HTTP/3 over QUIC on the HTTPS listen port. HTTPS must be enabled and "
|
||||
"certificate files must be configured."
|
||||
msgstr ""
|
||||
"在 HTTPS 監聽連接埠上啟用基於 QUIC 的 HTTP/3。必須先啟用 HTTPS 並配置憑證檔"
|
||||
"案。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:474
|
||||
msgid "Download Workers"
|
||||
msgstr "下載任務執行緒數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:479
|
||||
msgid "Download Max Retry"
|
||||
msgstr "下載任務重試次數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:484
|
||||
msgid "Download Task Persistence"
|
||||
msgstr "下載任務持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:487
|
||||
msgid "Transfer Workers"
|
||||
msgstr "中轉任務執行緒數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:492
|
||||
msgid "Transfer Max Retry"
|
||||
msgstr "中轉任務下載重試次數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:497
|
||||
msgid "Transfer Task Persistence"
|
||||
msgstr "中轉任務持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:500
|
||||
msgid "Upload Workers"
|
||||
msgstr "上傳任務執行緒數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:505
|
||||
msgid "Upload Max Retry"
|
||||
msgstr "上傳任務重試次數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:510
|
||||
msgid "Upload Task Persistence"
|
||||
msgstr "上傳任務持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:513
|
||||
msgid "Copy Workers"
|
||||
msgstr "複製任務執行緒數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:518
|
||||
msgid "Copy Max Retry"
|
||||
msgstr "複製任務重試次數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:523
|
||||
msgid "Copy Task Persistence"
|
||||
msgstr "複製任務持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:526
|
||||
msgid "Move Workers"
|
||||
msgstr "移動任務執行緒數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:531
|
||||
msgid "Move Max Retry"
|
||||
msgstr "移動任務重試次數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:536
|
||||
msgid "Move Task Persistence"
|
||||
msgstr "移動任務持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:539
|
||||
msgid "Decompress Workers"
|
||||
msgstr "解壓縮任務執行緒數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:544
|
||||
msgid "Decompress Max Retry"
|
||||
msgstr "解壓縮任務重試次數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:549
|
||||
msgid "Decompress Task Persistence"
|
||||
msgstr "解壓縮任務持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:552
|
||||
msgid "Decompress Upload Workers"
|
||||
msgstr "解壓縮上傳任務執行緒數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:557
|
||||
msgid "Decompress Upload Max Retry"
|
||||
msgstr "解壓縮上傳任務重試次數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:562
|
||||
msgid "Decompress Upload Task Persistence"
|
||||
msgstr "解壓縮上傳任務持久化"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:565
|
||||
msgid "Allow retry canceled tasks"
|
||||
msgstr "允許重試已取消的任務"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:569
|
||||
msgid "Allow Origins"
|
||||
msgstr "允許來源(Origins)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:570
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:578
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:583
|
||||
msgid "Comma-separated list. Use * to allow any value."
|
||||
msgstr "使用英文逗號分隔。使用 * 表示允許任意值。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:577
|
||||
msgid "Allow Methods"
|
||||
msgstr "允許方法(Methods)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:582
|
||||
msgid "Allow Headers"
|
||||
msgstr "允許標頭(Headers)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:588
|
||||
msgid "Enabled S3"
|
||||
msgstr "啟用 S3"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:591
|
||||
msgid "Port"
|
||||
msgstr "埠"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:596
|
||||
msgid "Enable SSL"
|
||||
msgstr "啟用 SSL"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:600
|
||||
msgid "Enabled FTP"
|
||||
msgstr "啟用 FTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:603
|
||||
msgid "FTP Port"
|
||||
msgstr "FTP 埠"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:608
|
||||
msgid "Max retries on port conflict during passive transfer"
|
||||
msgstr "被動傳輸埠衝突時最大重試次數"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:613
|
||||
msgid "Enable non-20 port for active transfer"
|
||||
msgstr "啟用非 20 埠進行主動傳輸"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:616
|
||||
msgid "Client idle timeout (seconds)"
|
||||
msgstr "客戶端空閒超時(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:621
|
||||
msgid "Connection timeout (seconds)"
|
||||
msgstr "連線超時(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:626
|
||||
msgid "Disable active transfer mode"
|
||||
msgstr "停用主動傳輸模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:629
|
||||
msgid "Enable binary transfer mode"
|
||||
msgstr "啟用二進位制傳輸模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:632
|
||||
msgid "Client IP check in active transfer mode"
|
||||
msgstr "主動傳輸模式下對客戶端進行 IP 檢查"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:636
|
||||
msgid "Client IP check in passive transfer mode"
|
||||
msgstr "被動傳輸模式下對客戶端進行 IP 檢查"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:641
|
||||
msgid "Enabled SFTP"
|
||||
msgstr "啟用 SFTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:644
|
||||
msgid "SFTP Port"
|
||||
msgstr "SFTP 埠"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:20
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:29
|
||||
msgid "No log data."
|
||||
msgstr "無日誌資料。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:77
|
||||
msgid "Clear logs"
|
||||
msgstr "清空日誌"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:86
|
||||
#, javascript-format
|
||||
msgid "Refresh every %s seconds."
|
||||
msgstr "每 %s 秒重新整理。"
|
||||
|
||||
#~ msgid "Grant UCI access for luci-app-openlist2"
|
||||
#~ msgstr "授予 luci-app-openlist2 的 UCI 訪問許可權"
|
||||
@@ -4,7 +4,8 @@
|
||||
"read": {
|
||||
"file": {
|
||||
"/usr/bin/openlist2": [ "exec" ],
|
||||
"/*": [ "read" ]
|
||||
"/var/log/openlist2.log": [ "read" ],
|
||||
"/var/log/openlist2*": [ "read" ]
|
||||
},
|
||||
"ubus": {
|
||||
"service": [ "list" ]
|
||||
@@ -13,7 +14,8 @@
|
||||
},
|
||||
"write": {
|
||||
"file": {
|
||||
"/*": [ "write" ]
|
||||
"/var/log/openlist2.log": [ "write" ],
|
||||
"/var/log/openlist2*": [ "write" ]
|
||||
},
|
||||
"uci": [ "openlist2" ]
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user