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 结尾请勿携"
+"带 '/'"