diff --git a/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js b/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js index 94bb154d..36453754 100644 --- a/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js +++ b/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js @@ -6,34 +6,34 @@ 'require uci'; 'require view'; -var callServiceList = rpc.declare({ +const callServiceList = rpc.declare({ object: 'service', method: 'list', params: ['name'], expect: { '': {} } }); -function getServiceStatus() { - return L.resolveDefault(callServiceList('openlist2'), {}).then(function (res) { - var isRunning = false; +const getServiceStatus = () => { + return L.resolveDefault(callServiceList('openlist2'), {}).then(res => { + let isRunning = false; try { isRunning = res['openlist2']['instances']['openlist2']['running']; } catch (e) { } return isRunning; }); -} +}; -function renderStatus(isRunning, protocol, webport, site_url) { - var spanTemp = '%s %s'; - var renderHTML; +const renderStatus = (isRunning, protocol, webport, site_url) => { + const spanTemp = '%s %s'; + let renderHTML; if (isRunning) { - var buttonUrl = ''; + let buttonUrl = ''; if (site_url && site_url.trim() !== '') { buttonUrl = site_url; } else { - buttonUrl = String.format('%s//%s:%s/', protocol, window.location.hostname, webport); + buttonUrl = `${protocol}//${window.location.hostname}:${webport}/`; } - var button = String.format('', + const button = String.format('', _('Open Web Interface'), buttonUrl); renderHTML = spanTemp.format('green', 'OpenList', _('RUNNING')) + button; } else { @@ -41,20 +41,20 @@ function renderStatus(isRunning, protocol, webport, site_url) { } return renderHTML; -} +}; return view.extend({ - load: function () { + load() { return Promise.all([ uci.load('openlist2') ]); }, - handleResetPassword: async function (data) { - var data_dir = uci.get(data[0], '@openlist2[0]', 'data_dir') || '/etc/openlist2'; + async handleResetPassword(data) { + const data_dir = uci.get(data[0], '@openlist2[0]', 'data_dir') || '/etc/openlist2'; try { - var newpassword = await fs.exec('/usr/bin/openlist2', ['admin', 'random', '--data', data_dir]); - var new_password = newpassword.stdout.match(/password:\s*(\S+)/)[1]; + const newpassword = await fs.exec('/usr/bin/openlist2', ['admin', 'random', '--data', data_dir]); + const new_password = newpassword.stdout.match(/password:\s*(\S+)/)[1]; const textArea = document.createElement('textarea'); textArea.value = new_password; @@ -62,23 +62,23 @@ return view.extend({ textArea.select(); document.execCommand('copy'); document.body.removeChild(textArea); - alert(_('Username:') + 'admin\n' + _('New Password:') + new_password + '\n\n' + _('New password has been copied to clipboard.')); + alert(`${_('Username:')}admin\n${_('New Password:')}${new_password}\n\n${_('New password has been copied to clipboard.')}`); } catch (error) { console.error('Failed to reset password: ', error); } }, - render: function (data) { - var m, s, o; - var webport = uci.get(data[0], '@openlist2[0]', 'port') || '5244'; - var ssl = uci.get(data[0], '@openlist2[0]', 'ssl') || '0'; - var protocol; + 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:'; } - var site_url = uci.get(data[0], '@openlist2[0]', 'site_url') || ''; + 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.')); @@ -87,26 +87,27 @@ return view.extend({ s.anonymous = true; s.addremove = false; - s.render = function () { - poll.add(function () { - return L.resolveDefault(getServiceStatus()).then(function (res) { - var view = document.getElementById('service_status'); - view.innerHTML = renderStatus(res, protocol, webport, site_url); + s.render = () => { + poll.add(() => { + return L.resolveDefault(getServiceStatus()).then(res => { + const view = document.getElementById('service_status'); + if (view) + view.innerHTML = renderStatus(res, protocol, webport, site_url); }); }); return E('div', { class: 'cbi-section', id: 'status_bar' }, [ E('p', { id: 'service_status' }, _('Collecting data...')) ]); - } + }; s = m.section(form.NamedSection, '@openlist2[0]', 'openlist2'); s.tab('basic', _('Basic Settings')); s.tab('global', _('Global Settings')); - s.tab("log", _("Logs")); - s.tab("database", _("Database")); - s.tab("scheme", _("Web Protocol")); + s.tab('log', _('Logs')); + s.tab('database', _('Database')); + s.tab('scheme', _('Web Protocol')); s.tab('tasks', _('Task threads')); s.tab('cors', _('CORS Settings')); s.tab('s3', _('Object Storage')); diff --git a/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js b/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js index c668007d..66351258 100644 --- a/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js +++ b/luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js @@ -5,21 +5,21 @@ 'require uci'; 'require view'; -var scrollPosition = 0; -var userScrolled = false; -var logTextarea; -var log_path; +let scrollPosition = 0; +let userScrolled = false; +let logTextarea; +let log_path; -uci.load('openlist2').then(function() { +uci.load('openlist2').then(() => { log_path = uci.get('openlist2', '@openlist2[0]', 'log_path') || '/var/log/openlist2.log'; }); -function pollLog() { +const pollLog = () => { return Promise.all([ - fs.read_direct(log_path, 'text').then(function (res) { + 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(function (data) { + ]).then(data => { logTextarea.value = data[0] || _('No log data.'); if (!userScrolled) { @@ -31,32 +31,33 @@ function pollLog() { }; return view.extend({ - handleCleanLogs: function () { + handleCleanLogs() { return fs.write(log_path, '') - .catch(function (e) { ui.addNotification(null, E('p', e.message)) }); + .catch(e => { ui.addNotification(null, E('p', e.message)) }); }, - render: function () { + render() { logTextarea = E('textarea', { + 'id': 'log_content', 'class': 'cbi-input-textarea', 'wrap': 'off', 'readonly': 'readonly', 'style': 'width: calc(100% - 20px);height: 535px;margin: 10px;overflow-y: scroll;', }); - logTextarea.addEventListener('scroll', function () { + logTextarea.addEventListener('scroll', () => { userScrolled = true; scrollPosition = logTextarea.scrollTop; }); - var log_textarea_wrapper = E('div', { 'id': 'log_textarea' }, logTextarea); + const log_textarea_wrapper = E('div', { 'id': 'log_textarea' }, logTextarea); - setTimeout(function () { + setTimeout(() => { poll.add(pollLog); }, 100); - var clear_logs_button = E('input', { 'class': 'btn cbi-button-action', 'type': 'button', 'style': 'margin-left: 10px; margin-top: 10px;', 'value': _('Clear logs') }); - clear_logs_button.addEventListener('click', this.handleCleanLogs.bind(this)); + const clear_logs_button = E('input', { 'class': 'btn cbi-button-action', 'type': 'button', 'style': 'margin-left: 10px; margin-top: 10px;', 'value': _('Clear logs') }); + clear_logs_button.addEventListener('click', L.bind(this.handleCleanLogs, this)); return E([ E('div', { 'class': 'cbi-map' }, [ diff --git a/luci-app-openlist2/po/templates/openlist2.po b/luci-app-openlist2/po/templates/openlist2.po new file mode 100644 index 00000000..4f91cafd --- /dev/null +++ b/luci-app-openlist2/po/templates/openlist2.po @@ -0,0 +1,384 @@ +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 +msgid "RUNNING" +msgstr "" + +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:68 +msgid "Refresh every %s seconds." +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:115 +msgid "SFTP" +msgstr "" + +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:386 +msgid "SFTP Port" +msgstr "" + +#: 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:267 +msgid "SSL cert" +msgstr "" + +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:268 +msgid "SSL certificate file path" +msgstr "" + +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:272 +msgid "SSL key" +msgstr "" + +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:273 +msgid "SSL key file path" +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 +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 +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 +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 "" diff --git a/luci-app-openlist2/po/zh_Hans/openlist2.po b/luci-app-openlist2/po/zh_Hans/openlist2.po index 3cdc4a02..ff12fb6e 100644 --- a/luci-app-openlist2/po/zh_Hans/openlist2.po +++ b/luci-app-openlist2/po/zh_Hans/openlist2.po @@ -1,267 +1,393 @@ msgid "" msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: PACKAGE VERSION\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" -msgid "OpenList" -msgstr "OpenList" +#: 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)" -msgid "Open Web Interface" -msgstr "打开 Web 界面" +#: 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 "一款支持多种存储的目录文件列表程序。" -msgid "Setting" -msgstr "设置" - -msgid "Basic Settings" -msgstr "基本设置" - -msgid "Global Settings" -msgstr "全局设置" - -msgid "Logs" -msgstr "日志" - -msgid "Enabled" -msgstr "启用" - -msgid "Port" -msgstr "端口" - -msgid "Web Protocol" -msgstr "Web 协议" - -msgid "Enable SSL" -msgstr "启用 SSL" - -msgid "Force HTTPS" -msgstr "强制 HTTPS" - -msgid "SSL cert" -msgstr "SSL 证书" - -msgid "SSL certificate file path" -msgstr "SSL 证书文件路径" - -msgid "SSL key" -msgstr "SSL 密钥" - -msgid "SSL key file path" -msgstr "SSL 密钥文件路径" - -msgid "Data directory" -msgstr "数据目录" - -msgid "Cache directory" -msgstr "缓存目录" - -msgid "RUNNING" -msgstr "运行中" - -msgid "NOT RUNNING" -msgstr "未运行" - -msgid "Collecting data..." -msgstr "收集数据..." - -msgid "NAS" -msgstr "网络存储" - -msgid "User Manual" -msgstr "用户手册" - -msgid "Open firewall port" -msgstr "打开防火墙端口" - -msgid "Enable Logs" -msgstr "启用日志" - -msgid "Log path" -msgstr "日志文件路径" - -msgid "Max Size (MB)" -msgstr "日志文件大小(MB)" - -msgid "Max backups" -msgstr "日志备份数量" - -msgid "Max age" -msgstr "日志保存天数" - -msgid "Log Compress" -msgstr "日志压缩" - -msgid "Clear logs" -msgstr "清空日志" - -msgid "Reset Password" -msgstr "重置密码" - -msgid "Generate a new random password." -msgstr "随机生成一个新密码。" - -msgid "Username:" -msgstr "用户名:" - -msgid "New Password:" -msgstr "新密码:" - -msgid "New password has been copied to clipboard." -msgstr "新密码已复制到剪贴板。" - -msgid "Force read config" -msgstr "强制读取配置" - -msgid "Setting this to true will force the program to read the configuration file, ignoring environment variables." -msgstr "将此设置为 true 可以强制程序读取配置文件,而忽略环境变量" - -msgid "Login Validity Period (hours)" -msgstr "登录有效期(小时)" - -msgid "Max Connections" -msgstr "最大并发连接数" - -msgid "0 is unlimited, It is recommend to set a low number of concurrency (10-20) for poor performance device" -msgstr "默认 0 不限制,低性能设备建议设置较低的并发数(10-20)" - -msgid "Max concurrency of local proxies" -msgstr "本地代理最大并发数" - -msgid "0 is unlimited, Limit the maximum concurrency of local agents. The default value is 64" -msgstr "限制本地代理最大并发数,值为 0 表示不限制,默认值 64" - -msgid "Site URL" -msgstr "站点地址" - -msgid "CDN URL" -msgstr "CDN 地址" - -msgid "JWT Key" -msgstr "JWT 密钥" - -msgid "Disable TLS Verify" -msgstr "禁用 TLS 验证" - -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 结尾请勿携带 '/'" - -msgid "Delayed Start (seconds)" -msgstr "开机延时启动(秒)" - -msgid "Database" -msgstr "数据库" - -msgid "Database Type" -msgstr "数据库类型" - -msgid "Database Host" -msgstr "主机" - -msgid "Database Port" -msgstr "端口" - -msgid "Database Username" -msgstr "用户名" - -msgid "Database Password" -msgstr "密码" - -msgid "Database Name" -msgstr "数据库名" - -msgid "Database Table Prefix" -msgstr "数据库表前缀" - -msgid "Database SSL Mode" -msgstr "SSL模式" - -msgid "Database DSN" -msgstr "DSN" - -msgid "Task threads" -msgstr "任务线程" - -msgid "Download Workers" -msgstr "下载任务线程数" - -msgid "Download Max Retry" -msgstr "下载任务重试次数" - -msgid "Transfer Workers" -msgstr "中转任务线程数" - -msgid "Transfer Max Retry" -msgstr "中转任务下载重试次数" - -msgid "Upload Workers" -msgstr "上传任务线程数" - -msgid "Upload Max Retry" -msgstr "上传任务重试次数" - -msgid "Copy Workers" -msgstr "复制任务线程数" - -msgid "Copy Max Retry" -msgstr "复制任务重试次数" - -msgid "CORS Settings" -msgstr "跨域设置" - -msgid "Allow Origins" -msgstr "允许来源(Origins)" - -msgid "Allow Methods" -msgstr "允许方法(Methods)" - +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:327 msgid "Allow Headers" msgstr "允许标头(Headers)" -msgid "Object Storage" -msgstr "对象存储" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:323 +msgid "Allow Methods" +msgstr "允许方法(Methods)" -msgid "Enabled S3" -msgstr "启用 S3" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:319 +msgid "Allow Origins" +msgstr "允许来源(Origins)" -msgid "Enabled FTP" -msgstr "启用 FTP" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:106 +msgid "Basic Settings" +msgstr "基本设置" -msgid "FTP Port" -msgstr "FTP 端口" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:157 +msgid "CDN URL" +msgstr "CDN 地址" -msgid "Max retries on port conflict during passive transfer" -msgstr "被动传输端口冲突时最大重试次数" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:112 +msgid "CORS Settings" +msgstr "跨域设置" -msgid "Enable non-20 port for active transfer" -msgstr "启用非 20 端口进行主动传输" +#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:138 +msgid "Cache directory" +msgstr "缓存目录" -msgid "Client idle timeout (seconds)" -msgstr "客户端空闲超时(秒)" - -msgid "Connection timeout (seconds)" -msgstr "连接超时(秒)" - -msgid "Disable active transfer mode" -msgstr "禁用主动传输模式" - -msgid "Enable binary transfer mode" -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 +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: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:115 +msgid "SFTP" +msgstr "" + +#: 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:220 +msgid "SQLite" +msgstr "" + +#: 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:268 +msgid "SSL certificate file path" +msgstr "SSL 证书文件路径" + +#: 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:273 +msgid "SSL key file path" +msgstr "SSL 密钥文件路径" + +#: 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 +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 +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 +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 结尾请勿携" +"带 '/'"