var spanTemp = '<span style="color:%s"><strong>%s %s</strong></span>';
var renderHTML;
if (isRunning) {
- var button = String.format(' <a class="btn cbi-button" href="%s:%s" target="_blank" rel="noreferrer noopener">%s</a>',
+ var button = String.format(' <a class="btn cbi-button" href="%s:%s" target="_blank" rel="noreferrer noopener">%s</a>',
window.location.origin, port, _('Open Web Interface'));
renderHTML = spanTemp.format('green', _('v2rayA'), _('RUNNING')) + button;
} else {
return renderHTML;
}
-function uploadCertificate(type, filename, ev) {
+function uploadCertificate(option, type, filename, ev) {
L.resolveDefault(fs.exec('/bin/mkdir', [ '-p', '/etc/v2raya/' ]));
return ui.uploadFile('/etc/v2raya/' + filename, ev.target)
}
ui.addNotification(null, E('p', _('Your %s was successfully uploaded. Size: %sB.').format(type, res.size)));
- }, this, ev.target))
+ }, option, ev.target))
.catch(function(e) { ui.addNotification(null, E('p', e.message)) })
.finally(L.bind(function(btn, input) {
btn.firstChild.data = _('Upload...');
- }, this, ev.target));
+ }, option, ev.target));
}
return view.extend({
o.rmempty = false;
o = s.option(form.Value, 'address', _('Listening address'));
+ o.datatype = 'ipaddrport(1)';
o.default = '0.0.0.0:2017';
- o.validate = function(section_id, value) {
- if (!section_id)
- return true;
- else if (!value)
- return _('Expecting: %s').format('non-empty value');
-
- var addr = value.split(':').slice(0, -1).join(':'),
- port = validation.parseInteger(value.split(':').slice(-1)[0]);
-
- if (!addr || !port || port < 0 || port > 65535)
- return _('Expecting: %s').format(_('valid address:port value'));
- else if (!validation.parseIPv4(addr)) {
- if (validation.parseIPv6(addr))
- return _('IPv6 address should be used with [].')
- else if (addr.match(/\[(.+)\]/) && validation.parseIPv6(RegExp.$1))
- return true;
- else
- return _('Expecting: %s').format(_('valid address:port value'));
- }
-
- return true;
- }
+ o.rmempty = false;
o = s.option(form.Value, 'config', _('Configuration directory'));
o.datatype = 'path';
o = s.option(form.Button, '_upload_cert', _('Upload certificate'));
o.inputstyle = 'action';
o.inputtitle = _('Upload...');
- o.onclick = L.bind(uploadCertificate, this, _('certificate'), 'grpc_certificate.crt');
+ o.onclick = L.bind(uploadCertificate, this, o, _('certificate'), 'grpc_certificate.crt');
o.depends('vless_grpc_inbound_cert_key', '/etc/v2raya/grpc_certificate.crt,/etc/v2raya/grpc_private.key');
o = s.option(form.Button, '_upload_key', _('Upload privateKey'));
o.inputstyle = 'action';
o.inputtitle = _('Upload...');
- o.onclick = L.bind(uploadCertificate, this, _('private key'), 'grpc_private.key');
+ o.onclick = L.bind(uploadCertificate, this, o, _('private key'), 'grpc_private.key');
o.depends('vless_grpc_inbound_cert_key', '/etc/v2raya/grpc_certificate.crt,/etc/v2raya/grpc_private.key');
return m.render();
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:175
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:155
msgid ""
"Additional v2ray config directory, files in it will be combined with config "
"generated by v2rayA."
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:134
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:114
msgid "Auto"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:180
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:160
msgid "Automatically generate"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:178
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:158
msgid "Certpath for gRPC inbound"
msgstr ""
msgid "Configuration"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:127
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:107
msgid "Configuration directory"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:142
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:122
msgid "Debug"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:162
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:142
msgid "Disable log color output"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:166
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:146
msgid "Disable log timestamp"
msgstr ""
msgid "Enable"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:145
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:125
msgid "Error"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:171
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:151
msgid ""
"Executable v2ray binary path. Auto-detect if put it empty (recommended)."
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:108
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:114
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:121
-msgid "Expecting: %s"
-msgstr ""
-
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:174
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:154
msgid "Extra config directory"
msgstr ""
msgid "Grant access to v2rayA configuration"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:117
-msgid "IPv6 address should be used with []."
-msgstr ""
-
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:132
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:112
msgid "IPv6 support"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:143
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:123
msgid "Info"
msgstr ""
msgid "Log file does not exist."
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:149
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:129
msgid "Log file path"
msgstr ""
msgid "Log is clean."
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:140
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:120
msgid "Log level"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:133
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:113
msgid "Make sure your IPv6 network works fine before you turn it on."
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:156
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:136
msgid "Max log retention period"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:157
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:137
msgid "Maximum number of days to keep log files."
msgstr ""
msgid "NOT RUNNING"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:136
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:116
msgid "Off"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:135
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:115
msgid "On"
msgstr ""
msgid "Refresh every %s seconds."
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:179
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:159
msgid ""
"Specify the certification path instead of automatically generating a self-"
"signed certificate."
msgid "The uploaded %s is empty."
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:141
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:121
msgid "Trace"
msgstr ""
msgid "Unknown error: %s"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:183
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:163
msgid "Upload certificate"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:189
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:169
msgid "Upload privateKey"
msgstr ""
#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:63
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:185
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:191
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:165
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:171
msgid "Upload..."
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:144
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:124
msgid "Warn"
msgstr ""
msgid "Your %s was successfully uploaded. Size: %sB."
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:186
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:166
msgid "certificate"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:192
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:172
msgid "private key"
msgstr ""
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:170
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:150
msgid "v2ray binary path"
msgstr ""
"v2rayA is a V2Ray Linux client supporting global transparent proxy, "
"compatible with SS, SSR, Trojan(trojan-go), PingTunnel protocols."
msgstr ""
-
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:114
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:121
-msgid "valid address:port value"
-msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:175
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:155
msgid ""
"Additional v2ray config directory, files in it will be combined with config "
"generated by v2rayA."
msgstr ""
"附加 v2ray 配置目录,包含在其中的文件将被合并至 v2rayA 生成的配置文件中。"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:134
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:114
msgid "Auto"
msgstr "自动"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:180
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:160
msgid "Automatically generate"
msgstr "自动生成"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:178
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:158
msgid "Certpath for gRPC inbound"
msgstr "gPRC 入站证书目录"
msgid "Configuration"
msgstr "配置"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:127
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:107
msgid "Configuration directory"
msgstr "配置文件目录"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:142
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:122
msgid "Debug"
msgstr "调试"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:162
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:142
msgid "Disable log color output"
msgstr "禁用日志彩色输出"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:166
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:146
msgid "Disable log timestamp"
msgstr "禁用日志时间戳"
msgid "Enable"
msgstr "启用"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:145
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:125
msgid "Error"
msgstr "错误"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:171
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:151
msgid ""
"Executable v2ray binary path. Auto-detect if put it empty (recommended)."
msgstr "v2ray 可执行二进制文件目录。留空以自动检测(推荐)。"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:108
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:114
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:121
-msgid "Expecting: %s"
-msgstr "请输入:%s"
-
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:174
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:154
msgid "Extra config directory"
msgstr "附加配置目录"
msgid "Grant access to v2rayA configuration"
msgstr "授予访问 v2rayA 配置的权限"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:117
-msgid "IPv6 address should be used with []."
-msgstr "IPv6 地址应与 [] 一起使用。"
-
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:132
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:112
msgid "IPv6 support"
msgstr "IPv6 支持"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:143
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:123
msgid "Info"
msgstr "信息"
msgid "Log file does not exist."
msgstr "日志文件不存在。"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:149
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:129
msgid "Log file path"
msgstr "日志文件路径"
msgid "Log is clean."
msgstr "日志为空。"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:140
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:120
msgid "Log level"
msgstr "日志等级"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:133
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:113
msgid "Make sure your IPv6 network works fine before you turn it on."
msgstr "开启前,请确保您的 IPv6 网络工作正常。"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:156
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:136
msgid "Max log retention period"
msgstr "最长日志保留时间"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:157
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:137
msgid "Maximum number of days to keep log files."
msgstr "保留日志文件的最长天数。"
msgid "NOT RUNNING"
msgstr "未运行"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:136
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:116
msgid "Off"
msgstr "关"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:135
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:115
msgid "On"
msgstr "开"
msgid "Refresh every %s seconds."
msgstr "每 %s 秒刷新。"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:179
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:159
msgid ""
"Specify the certification path instead of automatically generating a self-"
"signed certificate."
msgid "The uploaded %s is empty."
msgstr "上传的%s为空。"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:141
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:121
msgid "Trace"
msgstr "跟踪"
msgid "Unknown error: %s"
msgstr "未知错误:%s"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:183
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:163
msgid "Upload certificate"
msgstr "上传证书"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:189
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:169
msgid "Upload privateKey"
msgstr "上传私钥"
#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:63
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:185
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:191
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:165
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:171
msgid "Upload..."
msgstr "上传..."
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:144
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:124
msgid "Warn"
msgstr "警告"
msgid "Your %s was successfully uploaded. Size: %sB."
msgstr "您的%s上传成功。大小:%sB。"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:186
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:166
msgid "certificate"
msgstr "证书"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:192
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:172
msgid "private key"
msgstr "私钥"
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:170
+#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:150
msgid "v2ray binary path"
msgstr "v2ray 二进制路径"
msgstr ""
"v2rayA 是一个易用而强大的,跨平台的 V2Ray 客户端,支持 SS、SSR、"
"Trojan(trojan-go)、PingTunnel 协议。"
-
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:114
-#: applications/luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js:121
-msgid "valid address:port value"
-msgstr "有效 地址:端口 值"