OSDN Git Service

luci-app-v2raya: use built-in validator for address
authorTianling Shen <cnsztl@immortalwrt.org>
Thu, 8 Sep 2022 06:04:22 +0000 (14:04 +0800)
committerTianling Shen <cnsztl@immortalwrt.org>
Thu, 8 Sep 2022 06:04:22 +0000 (14:04 +0800)
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
luci-app-v2raya/htdocs/luci-static/resources/view/v2raya/config.js
luci-app-v2raya/po/templates/v2raya.pot
luci-app-v2raya/po/zh_Hans/v2raya.po

index 561ee40..0c4b1d0 100644 (file)
@@ -34,7 +34,7 @@ function renderStatus(isRunning, port) {
        var spanTemp = '<span style="color:%s"><strong>%s %s</strong></span>';
        var renderHTML;
        if (isRunning) {
-               var button = String.format('&nbsp;<a class="btn cbi-button" href="%s:%s" target="_blank" rel="noreferrer noopener">%s</a>',
+               var button = String.format('&#160;<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 {
@@ -44,7 +44,7 @@ function renderStatus(isRunning, port) {
        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)
@@ -57,11 +57,11 @@ function uploadCertificate(type, filename, ev) {
                }
 
                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({
@@ -100,29 +100,9 @@ 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';
@@ -183,13 +163,13 @@ return view.extend({
                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();
index e80b7c5..a64580f 100644 (file)
@@ -1,21 +1,21 @@
 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 ""
 
@@ -32,19 +32,19 @@ 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 ""
 
@@ -52,22 +52,16 @@ 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 ""
 
@@ -75,15 +69,11 @@ 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 ""
 
@@ -103,7 +93,7 @@ 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 ""
 
@@ -111,19 +101,19 @@ 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 ""
 
@@ -131,11 +121,11 @@ 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 ""
 
@@ -151,7 +141,7 @@ 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."
@@ -161,7 +151,7 @@ msgstr ""
 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 ""
 
@@ -169,21 +159,21 @@ 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 ""
 
@@ -191,15 +181,15 @@ 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 ""
 
@@ -215,8 +205,3 @@ msgid ""
 "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 ""
index 469deff..b685290 100644 (file)
@@ -8,22 +8,22 @@ 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 入站证书目录"
 
@@ -40,19 +40,19 @@ 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 "禁用日志时间戳"
 
@@ -60,22 +60,16 @@ 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 "附加配置目录"
 
@@ -83,15 +77,11 @@ 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 "信息"
 
@@ -111,7 +101,7 @@ 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 "日志文件路径"
 
@@ -119,19 +109,19 @@ 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 "保留日志文件的最长天数。"
 
@@ -139,11 +129,11 @@ 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 "开"
 
@@ -159,7 +149,7 @@ 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."
@@ -169,7 +159,7 @@ msgstr "指定证书目录而不是自动生成自签证书。"
 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 "跟踪"
 
@@ -177,21 +167,21 @@ 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 "警告"
 
@@ -199,15 +189,15 @@ 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 二进制路径"
 
@@ -225,8 +215,3 @@ msgid ""
 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 "有效 地址:端口 值"