Browse Source

chore: update zh_CN translations

0xJacky 1 year ago
parent
commit
0381d2290c

+ 1 - 1
app/src/language/LINGUAS

@@ -1 +1 @@
-es fr_FR ru_RU vi_VN zh_CN zh_TW
+en zh_CN zh_TW fr_FR es ru_RU vi_VN

+ 93 - 53
app/src/language/en/app.po

@@ -66,15 +66,15 @@ msgstr "Add Location"
 msgid "Advance Mode"
 msgstr "Advance Mode"
 
-#: src/views/preference/OpenAISettings.vue:29
+#: src/views/preference/OpenAISettings.vue:31
 msgid "API Base Url"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:43
 msgid "API Proxy"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:41
+#: src/views/preference/OpenAISettings.vue:55
 msgid "API Token"
 msgstr ""
 
@@ -137,7 +137,7 @@ msgstr "Auto-renewal disabled for %{name}"
 msgid "Auto-renewal enabled for %{name}"
 msgstr "Auto-renewal enabled for %{name}"
 
-#: src/views/certificate/CertificateEditor.vue:207
+#: src/views/certificate/CertificateEditor.vue:238
 #: src/views/config/Config.vue:75 src/views/config/ConfigEdit.vue:89
 #: src/views/domain/DomainEdit.vue:256 src/views/nginx_log/NginxLog.vue:170
 #: src/views/stream/StreamEdit.vue:246
@@ -155,7 +155,7 @@ msgstr "Base information"
 
 #: src/views/config/ConfigEdit.vue:117
 #: src/views/domain/components/RightSettings.vue:76
-#: src/views/preference/Preference.vue:90
+#: src/views/preference/Preference.vue:96
 #: src/views/stream/components/RightSettings.vue:76
 #, fuzzy
 msgid "Basic"
@@ -175,7 +175,7 @@ msgstr "Modify Config"
 msgid "Build with"
 msgstr "Build with"
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/BasicSettings.vue:47
 msgid "CADir"
 msgstr ""
 
@@ -202,7 +202,7 @@ msgstr "Certificate has expired"
 msgid "Certificate is valid"
 msgstr "Certificate is valid"
 
-#: src/views/certificate/CertificateEditor.vue:127
+#: src/views/certificate/CertificateEditor.vue:130
 #: src/views/domain/cert/Cert.vue:35
 msgid "Certificate Status"
 msgstr "Certificate Status"
@@ -231,7 +231,7 @@ msgstr "Certificate is valid"
 msgid "Channel"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:13
+#: src/views/preference/OpenAISettings.vue:14
 msgid "ChatGPT Model"
 msgstr ""
 
@@ -239,10 +239,6 @@ msgstr ""
 msgid "Check again"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:36
-msgid "Chinese user: https://mirror.ghproxy.com/"
-msgstr ""
-
 #: src/language/constants.ts:17
 msgid "Cleaning environment variables"
 msgstr ""
@@ -347,7 +343,7 @@ msgstr ""
 msgid "Dashboard"
 msgstr "Dashboard"
 
-#: src/views/other/Install.vue:124
+#: src/views/other/Install.vue:123
 msgid "Database (Optional, default: database)"
 msgstr "Database (Optional, default: database)"
 
@@ -515,7 +511,7 @@ msgstr ""
 msgid "Domain Config Created Successfully"
 msgstr "Domain Config Created Successfully"
 
-#: src/views/certificate/CertificateEditor.vue:111
+#: src/views/certificate/CertificateEditor.vue:114
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
 
@@ -579,7 +575,7 @@ msgstr "Edit Site"
 msgid "Edit Stream"
 msgstr "Edit Site"
 
-#: src/views/other/Install.vue:93
+#: src/views/other/Install.vue:92
 msgid "Email (*)"
 msgstr "Email (*)"
 
@@ -705,6 +701,12 @@ msgstr ""
 msgid "File exists"
 msgstr ""
 
+#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:27
+#, fuzzy
+msgid "File not found"
+msgstr "File Not Found"
+
 #: src/views/other/Error.vue:14
 msgid "File Not Found"
 msgstr "File Not Found"
@@ -717,6 +719,10 @@ msgstr ""
 msgid "Finished"
 msgstr "Finished"
 
+#: src/views/preference/BasicSettings.vue:43
+msgid "For Chinese user: https://mirror.ghproxy.com/"
+msgstr ""
+
 #: src/views/config/ConfigEdit.vue:92
 msgid "Format Code"
 msgstr ""
@@ -753,23 +759,23 @@ msgstr "Base information"
 msgid "Getting the certificate, please wait..."
 msgstr "Getting the certificate, please wait..."
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/BasicSettings.vue:35
 msgid "Github Proxy"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:25
+#: src/views/preference/OpenAISettings.vue:26
 msgid "GPT-3.5-Turbo"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:19
+#: src/views/preference/OpenAISettings.vue:20
 msgid "GPT-4"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:22
+#: src/views/preference/OpenAISettings.vue:23
 msgid "GPT-4-32K"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:16
+#: src/views/preference/OpenAISettings.vue:17
 msgid "GPT-4-Turbo"
 msgstr ""
 
@@ -777,15 +783,15 @@ msgstr ""
 msgid "Home"
 msgstr "Home"
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/BasicSettings.vue:31
 msgid "HTTP Challenge Port"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:12
+#: src/views/preference/BasicSettings.vue:13
 msgid "HTTP Host"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:15
+#: src/views/preference/BasicSettings.vue:16
 msgid "HTTP Port"
 msgstr ""
 
@@ -797,7 +803,7 @@ msgstr ""
 msgid "Import"
 msgstr ""
 
-#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Import Certificate"
 msgstr "Certificate Status"
@@ -814,7 +820,7 @@ msgstr ""
 msgid "Initialing core upgrader"
 msgstr ""
 
-#: src/routes/index.ts:237 src/views/other/Install.vue:139
+#: src/routes/index.ts:237 src/views/other/Install.vue:138
 msgid "Install"
 msgstr "Install"
 
@@ -842,7 +848,7 @@ msgstr "Certificate Status"
 msgid "Issued certificate successfully"
 msgstr "Enabled successfully"
 
-#: src/views/preference/BasicSettings.vue:21
+#: src/views/preference/BasicSettings.vue:22
 msgid "Jwt Secret"
 msgstr ""
 
@@ -854,12 +860,12 @@ msgstr ""
 msgid "Leave blank for no change"
 msgstr "Leave blank for no change"
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:39
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:185
+#: src/views/certificate/CertificateEditor.vue:203
+#: src/views/certificate/CertificateEditor.vue:216
 #, fuzzy
 msgid "Leave blank will not change anything"
 msgstr "Leave blank for no change"
@@ -892,7 +898,7 @@ msgstr "Location"
 msgid "Locations"
 msgstr "Locations"
 
-#: src/views/certificate/CertificateEditor.vue:195
+#: src/views/certificate/CertificateEditor.vue:226
 #, fuzzy
 msgid "Log"
 msgstr "Login"
@@ -955,7 +961,7 @@ msgstr "Memory and Storage"
 msgid "Modify"
 msgstr "Modify Config"
 
-#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "Certificate Status"
@@ -970,7 +976,7 @@ msgid "Multi-line Directive"
 msgstr "Single Directive"
 
 #: src/views/certificate/Certificate.vue:24
-#: src/views/certificate/CertificateEditor.vue:145
+#: src/views/certificate/CertificateEditor.vue:149
 #: src/views/certificate/DNSCredential.vue:13 src/views/config/config.ts:9
 #: src/views/domain/cert/ChangeCert.vue:21
 #: src/views/domain/components/RightSettings.vue:84
@@ -1010,11 +1016,11 @@ msgstr ""
 msgid "Next"
 msgstr "Next"
 
-#: src/views/preference/Preference.vue:96
+#: src/views/preference/Preference.vue:102
 msgid "Nginx"
 msgstr ""
 
-#: src/views/preference/NginxSettings.vue:13
+#: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Access Log Path"
 msgstr ""
 
@@ -1027,7 +1033,7 @@ msgstr "Configuration Name"
 msgid "Nginx Control"
 msgstr ""
 
-#: src/views/preference/NginxSettings.vue:16
+#: src/views/preference/NginxSettings.vue:24
 msgid "Nginx Error Log Path"
 msgstr ""
 
@@ -1056,7 +1062,7 @@ msgstr "Saved successfully"
 msgid "No"
 msgstr "No"
 
-#: src/views/preference/BasicSettings.vue:24
+#: src/views/preference/BasicSettings.vue:25
 msgid "Node Secret"
 msgstr ""
 
@@ -1133,7 +1139,7 @@ msgstr ""
 msgid "Online"
 msgstr ""
 
-#: src/views/preference/Preference.vue:102
+#: src/views/preference/Preference.vue:108
 msgid "OpenAI"
 msgstr ""
 
@@ -1164,7 +1170,7 @@ msgstr "Params"
 msgid "Password"
 msgstr "Password"
 
-#: src/views/other/Install.vue:113
+#: src/views/other/Install.vue:112
 msgid "Password (*)"
 msgstr "Password (*)"
 
@@ -1227,7 +1233,7 @@ msgstr ""
 msgid "Pre-release"
 msgstr ""
 
-#: src/routes/index.ts:210 src/views/preference/Preference.vue:85
+#: src/routes/index.ts:210 src/views/preference/Preference.vue:91
 msgid "Preference"
 msgstr ""
 
@@ -1340,7 +1346,7 @@ msgstr ""
 msgid "Restarting"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:18
+#: src/views/preference/BasicSettings.vue:19
 #, fuzzy
 msgid "Run Mode"
 msgstr "Advance Mode"
@@ -1350,10 +1356,10 @@ msgid "Running"
 msgstr ""
 
 #: src/components/ChatGPT/ChatGPT.vue:259
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:245
 #: src/views/config/ConfigEdit.vue:98 src/views/domain/DomainEdit.vue:263
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:121
-#: src/views/preference/Preference.vue:113 src/views/stream/StreamEdit.vue:253
+#: src/views/preference/Preference.vue:119 src/views/stream/StreamEdit.vue:253
 msgid "Save"
 msgstr "Save"
 
@@ -1367,8 +1373,8 @@ msgid "Save error %{msg}"
 msgstr "Save error %{msg}"
 
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
-#: src/views/certificate/CertificateEditor.vue:47
-#: src/views/preference/Preference.vue:58
+#: src/views/certificate/CertificateEditor.vue:48
+#: src/views/preference/Preference.vue:61
 #, fuzzy
 msgid "Save successfully"
 msgstr "Saved successfully"
@@ -1401,7 +1407,7 @@ msgstr "Send"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:45
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:157
 #: src/views/config/ConfigEdit.vue:42 src/views/domain/DomainList.vue:84
-#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:60
+#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:65
 #: src/views/stream/StreamList.vue:116 src/views/stream/StreamList.vue:84
 #: src/views/system/Upgrade.vue:45
 msgid "Server error"
@@ -1445,24 +1451,24 @@ msgstr "Sites List"
 msgid "Sites List"
 msgstr "Sites List"
 
-#: src/views/certificate/CertificateEditor.vue:172
+#: src/views/certificate/CertificateEditor.vue:194
 #, fuzzy
 msgid "SSL Certificate Content"
 msgstr "Certificate Status"
 
-#: src/views/certificate/CertificateEditor.vue:180
+#: src/views/certificate/CertificateEditor.vue:207
 #, fuzzy
 msgid "SSL Certificate Key Content"
 msgstr "Certificate Status"
 
 #: src/views/certificate/Certificate.vue:73
-#: src/views/certificate/CertificateEditor.vue:163
+#: src/views/certificate/CertificateEditor.vue:179
 #, fuzzy
 msgid "SSL Certificate Key Path"
 msgstr "Certificate Status"
 
 #: src/views/certificate/Certificate.vue:65
-#: src/views/certificate/CertificateEditor.vue:154
+#: src/views/certificate/CertificateEditor.vue:164
 #, fuzzy
 msgid "SSL Certificate Path"
 msgstr "Certificate Status"
@@ -1529,7 +1535,7 @@ msgstr ""
 msgid "Terminal"
 msgstr "Terminal"
 
-#: src/views/preference/BasicSettings.vue:27
+#: src/views/preference/BasicSettings.vue:28
 msgid "Terminal Start Command"
 msgstr ""
 
@@ -1546,6 +1552,23 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "The filename cannot contain the following characters: %{c}"
 
+#: src/views/certificate/CertificateEditor.vue:197
+msgid "The input is not a SSL Certificate"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:210
+#, fuzzy
+msgid "The input is not a SSL Certificate Key"
+msgstr "Certificate Status"
+
+#: src/views/certificate/CertificateEditor.vue:183
+msgid "The path exists, but the file is not a private key"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:168
+msgid "The path exists, but the file is not a public key"
+msgstr ""
+
 #: src/views/domain/cert/components/AutoCertStepOne.vue:45
 #, fuzzy
 msgid ""
@@ -1555,18 +1578,31 @@ msgstr ""
 "Note: The server_name in the current configuration must be the domain name "
 "you need to get the certificate."
 
+#: src/views/preference/BasicSettings.vue:38
+#: src/views/preference/BasicSettings.vue:50
+#: src/views/preference/OpenAISettings.vue:34
+#: src/views/preference/OpenAISettings.vue:46
+msgid "The url is not valid"
+msgstr ""
+
 #: src/language/constants.ts:6
 msgid "The username or password is incorrect"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:101
+#: src/views/certificate/CertificateEditor.vue:104
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:91
+#: src/views/certificate/CertificateEditor.vue:94
 msgid "This certificate is managed by Nginx UI"
 msgstr ""
 
+#: src/views/certificate/CertificateEditor.vue:152
+#: src/views/certificate/CertificateEditor.vue:166
+#: src/views/certificate/CertificateEditor.vue:181
+msgid "This field is required"
+msgstr ""
+
 #: src/components/StdDesign/StdDataEntry/StdFormItem.vue:31
 msgid "This field should not be empty"
 msgstr ""
@@ -1583,6 +1619,10 @@ msgid ""
 "continue?"
 msgstr ""
 
+#: src/views/preference/OpenAISettings.vue:58
+msgid "Token is not valid"
+msgstr ""
+
 #: src/views/certificate/Certificate.vue:41 src/views/config/config.ts:14
 #: src/views/notification/Notification.vue:15
 msgid "Type"
@@ -1637,7 +1677,7 @@ msgstr "Username"
 msgid "Username"
 msgstr "Username"
 
-#: src/views/other/Install.vue:103
+#: src/views/other/Install.vue:102
 msgid "Username (*)"
 msgstr "Username (*)"
 

+ 94 - 53
app/src/language/es/app.po

@@ -68,15 +68,15 @@ msgstr "Adicional"
 msgid "Advance Mode"
 msgstr "Modo avanzado"
 
-#: src/views/preference/OpenAISettings.vue:29
+#: src/views/preference/OpenAISettings.vue:31
 msgid "API Base Url"
 msgstr "URL Base de la API"
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:43
 msgid "API Proxy"
 msgstr "Proxy de la API"
 
-#: src/views/preference/OpenAISettings.vue:41
+#: src/views/preference/OpenAISettings.vue:55
 msgid "API Token"
 msgstr "Token de la API"
 
@@ -135,7 +135,7 @@ msgstr "Renovación automática deshabilitada por %{name}"
 msgid "Auto-renewal enabled for %{name}"
 msgstr "Renovación automática habilitada por %{name}"
 
-#: src/views/certificate/CertificateEditor.vue:207
+#: src/views/certificate/CertificateEditor.vue:238
 #: src/views/config/Config.vue:75 src/views/config/ConfigEdit.vue:89
 #: src/views/domain/DomainEdit.vue:256 src/views/nginx_log/NginxLog.vue:170
 #: src/views/stream/StreamEdit.vue:246
@@ -152,7 +152,7 @@ msgstr "Información general"
 
 #: src/views/config/ConfigEdit.vue:117
 #: src/views/domain/components/RightSettings.vue:76
-#: src/views/preference/Preference.vue:90
+#: src/views/preference/Preference.vue:96
 #: src/views/stream/components/RightSettings.vue:76
 msgid "Basic"
 msgstr "Básico"
@@ -170,7 +170,7 @@ msgstr "Modificar por lotes"
 msgid "Build with"
 msgstr "Desarrollado con"
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/BasicSettings.vue:47
 msgid "CADir"
 msgstr "Directorio CA"
 
@@ -197,7 +197,7 @@ msgstr "El certificado expiró"
 msgid "Certificate is valid"
 msgstr "El certificado es válido"
 
-#: src/views/certificate/CertificateEditor.vue:127
+#: src/views/certificate/CertificateEditor.vue:130
 #: src/views/domain/cert/Cert.vue:35
 msgid "Certificate Status"
 msgstr "Estado del Certificado"
@@ -223,7 +223,7 @@ msgstr "Cambiar Certificado"
 msgid "Channel"
 msgstr "Canal"
 
-#: src/views/preference/OpenAISettings.vue:13
+#: src/views/preference/OpenAISettings.vue:14
 msgid "ChatGPT Model"
 msgstr "Modelo de ChatGPT"
 
@@ -231,10 +231,6 @@ msgstr "Modelo de ChatGPT"
 msgid "Check again"
 msgstr "Intentar nuevamente"
 
-#: src/views/preference/BasicSettings.vue:36
-msgid "Chinese user: https://mirror.ghproxy.com/"
-msgstr "Usuario chino: https://mirror.ghproxy.com/"
-
 #: src/language/constants.ts:17
 msgid "Cleaning environment variables"
 msgstr "Borrar las variables de entorno"
@@ -336,7 +332,7 @@ msgstr "Personalizado"
 msgid "Dashboard"
 msgstr "Panel"
 
-#: src/views/other/Install.vue:124
+#: src/views/other/Install.vue:123
 msgid "Database (Optional, default: database)"
 msgstr "Base de datos (Opcional, default: database)"
 
@@ -497,7 +493,7 @@ msgstr "Dominio"
 msgid "Domain Config Created Successfully"
 msgstr "Configuración de dominio creada con éxito"
 
-#: src/views/certificate/CertificateEditor.vue:111
+#: src/views/certificate/CertificateEditor.vue:114
 #, fuzzy
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
@@ -560,7 +556,7 @@ msgstr "Editar Sitio"
 msgid "Edit Stream"
 msgstr "Editar Sitio"
 
-#: src/views/other/Install.vue:93
+#: src/views/other/Install.vue:92
 msgid "Email (*)"
 msgstr "Correo (*)"
 
@@ -685,6 +681,12 @@ msgstr "Archivo"
 msgid "File exists"
 msgstr "El archivo existe"
 
+#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:27
+#, fuzzy
+msgid "File not found"
+msgstr "Archivo no encontrado"
+
 #: src/views/other/Error.vue:14
 msgid "File Not Found"
 msgstr "Archivo no encontrado"
@@ -697,6 +699,11 @@ msgstr "Filtro"
 msgid "Finished"
 msgstr "Terminado"
 
+#: src/views/preference/BasicSettings.vue:43
+#, fuzzy
+msgid "For Chinese user: https://mirror.ghproxy.com/"
+msgstr "Usuario chino: https://mirror.ghproxy.com/"
+
 #: src/views/config/ConfigEdit.vue:92
 msgid "Format Code"
 msgstr "Código de formato"
@@ -730,23 +737,23 @@ msgstr "Obtener error de información de versión"
 msgid "Getting the certificate, please wait..."
 msgstr "Obteniendo el certificado, por favor espere..."
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/BasicSettings.vue:35
 msgid "Github Proxy"
 msgstr "Proxy Github"
 
-#: src/views/preference/OpenAISettings.vue:25
+#: src/views/preference/OpenAISettings.vue:26
 msgid "GPT-3.5-Turbo"
 msgstr "GPT-3.5-Turbo"
 
-#: src/views/preference/OpenAISettings.vue:19
+#: src/views/preference/OpenAISettings.vue:20
 msgid "GPT-4"
 msgstr "GPT-4"
 
-#: src/views/preference/OpenAISettings.vue:22
+#: src/views/preference/OpenAISettings.vue:23
 msgid "GPT-4-32K"
 msgstr "GPT-4-32K"
 
-#: src/views/preference/OpenAISettings.vue:16
+#: src/views/preference/OpenAISettings.vue:17
 #, fuzzy
 msgid "GPT-4-Turbo"
 msgstr "GPT-3.5-Turbo"
@@ -755,15 +762,15 @@ msgstr "GPT-3.5-Turbo"
 msgid "Home"
 msgstr "Inicio"
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/BasicSettings.vue:31
 msgid "HTTP Challenge Port"
 msgstr "Puerto de desafío HTTP"
 
-#: src/views/preference/BasicSettings.vue:12
+#: src/views/preference/BasicSettings.vue:13
 msgid "HTTP Host"
 msgstr "Host HTTP"
 
-#: src/views/preference/BasicSettings.vue:15
+#: src/views/preference/BasicSettings.vue:16
 msgid "HTTP Port"
 msgstr "Puerto HTTP"
 
@@ -776,7 +783,7 @@ msgstr "HTTP01"
 msgid "Import"
 msgstr "Exportar"
 
-#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Import Certificate"
 msgstr "Estado del Certificado"
@@ -793,7 +800,7 @@ msgstr "Error de actualización de kernel inicial"
 msgid "Initialing core upgrader"
 msgstr "Inicializando la actualización del kernel"
 
-#: src/routes/index.ts:237 src/views/other/Install.vue:139
+#: src/routes/index.ts:237 src/views/other/Install.vue:138
 msgid "Install"
 msgstr "Instalar"
 
@@ -819,7 +826,7 @@ msgstr "Estado del Certificado"
 msgid "Issued certificate successfully"
 msgstr "Certificado emitido con éxito"
 
-#: src/views/preference/BasicSettings.vue:21
+#: src/views/preference/BasicSettings.vue:22
 msgid "Jwt Secret"
 msgstr "Secreto Jwt"
 
@@ -831,12 +838,12 @@ msgstr "Comprobado por última vez el"
 msgid "Leave blank for no change"
 msgstr "Para no modificar dejar en blanco"
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:39
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr "Dejar en blanco para el valor predeterminado: https://api.openai.com/"
 
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:185
+#: src/views/certificate/CertificateEditor.vue:203
+#: src/views/certificate/CertificateEditor.vue:216
 #, fuzzy
 msgid "Leave blank will not change anything"
 msgstr "Para no modificar dejar en blanco"
@@ -868,7 +875,7 @@ msgstr "Ubicación"
 msgid "Locations"
 msgstr "Ubicaciones"
 
-#: src/views/certificate/CertificateEditor.vue:195
+#: src/views/certificate/CertificateEditor.vue:226
 #, fuzzy
 msgid "Log"
 msgstr "Acceso"
@@ -929,7 +936,7 @@ msgstr "Memoria y almacenamiento"
 msgid "Modify"
 msgstr "Modificar"
 
-#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "Estado del Certificado"
@@ -943,7 +950,7 @@ msgid "Multi-line Directive"
 msgstr "Directiva multilínea"
 
 #: src/views/certificate/Certificate.vue:24
-#: src/views/certificate/CertificateEditor.vue:145
+#: src/views/certificate/CertificateEditor.vue:149
 #: src/views/certificate/DNSCredential.vue:13 src/views/config/config.ts:9
 #: src/views/domain/cert/ChangeCert.vue:21
 #: src/views/domain/components/RightSettings.vue:84
@@ -983,11 +990,11 @@ msgstr "Se liberó una nueva versión"
 msgid "Next"
 msgstr "Siguiente"
 
-#: src/views/preference/Preference.vue:96
+#: src/views/preference/Preference.vue:102
 msgid "Nginx"
 msgstr "Nginx"
 
-#: src/views/preference/NginxSettings.vue:13
+#: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Access Log Path"
 msgstr "Ruta de registro de acceso de Nginx"
 
@@ -999,7 +1006,7 @@ msgstr "Error de análisis de configuración de Nginx"
 msgid "Nginx Control"
 msgstr "Control de Nginx"
 
-#: src/views/preference/NginxSettings.vue:16
+#: src/views/preference/NginxSettings.vue:24
 msgid "Nginx Error Log Path"
 msgstr "Ruta de registro de errores de Nginx"
 
@@ -1026,7 +1033,7 @@ msgstr "Nginx reiniciado con éxito"
 msgid "No"
 msgstr "No"
 
-#: src/views/preference/BasicSettings.vue:24
+#: src/views/preference/BasicSettings.vue:25
 msgid "Node Secret"
 msgstr "Secreto del nodo"
 
@@ -1102,7 +1109,7 @@ msgstr "Una vez que se complete la verificación, los registros se eliminarán."
 msgid "Online"
 msgstr "En línea"
 
-#: src/views/preference/Preference.vue:102
+#: src/views/preference/Preference.vue:108
 msgid "OpenAI"
 msgstr "OpenAI"
 
@@ -1132,7 +1139,7 @@ msgstr "Parámetros"
 msgid "Password"
 msgstr "Contraseña"
 
-#: src/views/other/Install.vue:113
+#: src/views/other/Install.vue:112
 msgid "Password (*)"
 msgstr "Contraseña (*)"
 
@@ -1201,7 +1208,7 @@ msgstr "¡Seleccione al menos un nodo!"
 msgid "Pre-release"
 msgstr "Prelanzamiento"
 
-#: src/routes/index.ts:210 src/views/preference/Preference.vue:85
+#: src/routes/index.ts:210 src/views/preference/Preference.vue:91
 msgid "Preference"
 msgstr "Configuración"
 
@@ -1312,7 +1319,7 @@ msgstr "Reiniciar"
 msgid "Restarting"
 msgstr "Reiniciando"
 
-#: src/views/preference/BasicSettings.vue:18
+#: src/views/preference/BasicSettings.vue:19
 msgid "Run Mode"
 msgstr "Modo de ejecución"
 
@@ -1321,10 +1328,10 @@ msgid "Running"
 msgstr "Corriendo"
 
 #: src/components/ChatGPT/ChatGPT.vue:259
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:245
 #: src/views/config/ConfigEdit.vue:98 src/views/domain/DomainEdit.vue:263
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:121
-#: src/views/preference/Preference.vue:113 src/views/stream/StreamEdit.vue:253
+#: src/views/preference/Preference.vue:119 src/views/stream/StreamEdit.vue:253
 msgid "Save"
 msgstr "Guardar"
 
@@ -1338,8 +1345,8 @@ msgid "Save error %{msg}"
 msgstr "Error al guardar %{msg}"
 
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
-#: src/views/certificate/CertificateEditor.vue:47
-#: src/views/preference/Preference.vue:58
+#: src/views/certificate/CertificateEditor.vue:48
+#: src/views/preference/Preference.vue:61
 msgid "Save successfully"
 msgstr "Guardado con éxito"
 
@@ -1370,7 +1377,7 @@ msgstr "Enviado"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:45
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:157
 #: src/views/config/ConfigEdit.vue:42 src/views/domain/DomainList.vue:84
-#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:60
+#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:65
 #: src/views/stream/StreamList.vue:116 src/views/stream/StreamList.vue:84
 #: src/views/system/Upgrade.vue:45
 msgid "Server error"
@@ -1415,23 +1422,23 @@ msgstr "Registros del sitio"
 msgid "Sites List"
 msgstr "Lista de sitios"
 
-#: src/views/certificate/CertificateEditor.vue:172
+#: src/views/certificate/CertificateEditor.vue:194
 #, fuzzy
 msgid "SSL Certificate Content"
 msgstr "Contenido de certificado SSL"
 
-#: src/views/certificate/CertificateEditor.vue:180
+#: src/views/certificate/CertificateEditor.vue:207
 #, fuzzy
 msgid "SSL Certificate Key Content"
 msgstr "Contenido de la llave del certificado SSL"
 
 #: src/views/certificate/Certificate.vue:73
-#: src/views/certificate/CertificateEditor.vue:163
+#: src/views/certificate/CertificateEditor.vue:179
 msgid "SSL Certificate Key Path"
 msgstr "Ruta de la llave del certificado SSL"
 
 #: src/views/certificate/Certificate.vue:65
-#: src/views/certificate/CertificateEditor.vue:154
+#: src/views/certificate/CertificateEditor.vue:164
 msgid "SSL Certificate Path"
 msgstr "Ruta del certificado SSL"
 
@@ -1495,7 +1502,7 @@ msgstr "Objetivo"
 msgid "Terminal"
 msgstr "Terminal"
 
-#: src/views/preference/BasicSettings.vue:27
+#: src/views/preference/BasicSettings.vue:28
 msgid "Terminal Start Command"
 msgstr "Comando de inicio de terminal"
 
@@ -1513,6 +1520,23 @@ msgid "The filename cannot contain the following characters: %{c}"
 msgstr ""
 "El nombre del archivo no puede contener los siguientes caracteres: %{c}"
 
+#: src/views/certificate/CertificateEditor.vue:197
+msgid "The input is not a SSL Certificate"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:210
+#, fuzzy
+msgid "The input is not a SSL Certificate Key"
+msgstr "Ruta de la llave del certificado SSL"
+
+#: src/views/certificate/CertificateEditor.vue:183
+msgid "The path exists, but the file is not a private key"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:168
+msgid "The path exists, but the file is not a public key"
+msgstr ""
+
 #: src/views/domain/cert/components/AutoCertStepOne.vue:45
 #, fuzzy
 msgid ""
@@ -1522,19 +1546,32 @@ msgstr ""
 "El server_name en la configuración actual debe ser el nombre de dominio que "
 "necesita para obtener el certificado, soporta dominios múltiples."
 
+#: src/views/preference/BasicSettings.vue:38
+#: src/views/preference/BasicSettings.vue:50
+#: src/views/preference/OpenAISettings.vue:34
+#: src/views/preference/OpenAISettings.vue:46
+msgid "The url is not valid"
+msgstr ""
+
 #: src/language/constants.ts:6
 msgid "The username or password is incorrect"
 msgstr "El nombre de usuario o contraseña son incorrectos"
 
-#: src/views/certificate/CertificateEditor.vue:101
+#: src/views/certificate/CertificateEditor.vue:104
 #, fuzzy
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "Este elemento de auto-cert es inválido, elimínelo por favor."
 
-#: src/views/certificate/CertificateEditor.vue:91
+#: src/views/certificate/CertificateEditor.vue:94
 msgid "This certificate is managed by Nginx UI"
 msgstr "Este certificado es administrado por Nginx UI"
 
+#: src/views/certificate/CertificateEditor.vue:152
+#: src/views/certificate/CertificateEditor.vue:166
+#: src/views/certificate/CertificateEditor.vue:181
+msgid "This field is required"
+msgstr ""
+
 #: src/components/StdDesign/StdDataEntry/StdFormItem.vue:31
 msgid "This field should not be empty"
 msgstr "Este campo no debe estar vacío"
@@ -1555,6 +1592,10 @@ msgstr ""
 "de la autoridad al backend, y debemos guardar este archivo y volver a cargar "
 "Nginx. ¿Estás seguro de que quieres continuar?"
 
+#: src/views/preference/OpenAISettings.vue:58
+msgid "Token is not valid"
+msgstr ""
+
 #: src/views/certificate/Certificate.vue:41 src/views/config/config.ts:14
 #: src/views/notification/Notification.vue:15
 msgid "Type"
@@ -1606,7 +1647,7 @@ msgstr "Usuario"
 msgid "Username"
 msgstr "Nombre de usuario"
 
-#: src/views/other/Install.vue:103
+#: src/views/other/Install.vue:102
 msgid "Username (*)"
 msgstr "Nombre de usuario (*)"
 

+ 94 - 53
app/src/language/fr_FR/app.po

@@ -68,15 +68,15 @@ msgstr "Supplémentaire"
 msgid "Advance Mode"
 msgstr "Mode avancé"
 
-#: src/views/preference/OpenAISettings.vue:29
+#: src/views/preference/OpenAISettings.vue:31
 msgid "API Base Url"
 msgstr "URL de base de l'API"
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:43
 msgid "API Proxy"
 msgstr "Proxy d'API"
 
-#: src/views/preference/OpenAISettings.vue:41
+#: src/views/preference/OpenAISettings.vue:55
 msgid "API Token"
 msgstr "Jeton d'API"
 
@@ -138,7 +138,7 @@ msgstr "Renouvellement automatique désactivé pour %{name}"
 msgid "Auto-renewal enabled for %{name}"
 msgstr "Renouvellement automatique activé pour %{name}"
 
-#: src/views/certificate/CertificateEditor.vue:207
+#: src/views/certificate/CertificateEditor.vue:238
 #: src/views/config/Config.vue:75 src/views/config/ConfigEdit.vue:89
 #: src/views/domain/DomainEdit.vue:256 src/views/nginx_log/NginxLog.vue:170
 #: src/views/stream/StreamEdit.vue:246
@@ -155,7 +155,7 @@ msgstr "Information générale"
 
 #: src/views/config/ConfigEdit.vue:117
 #: src/views/domain/components/RightSettings.vue:76
-#: src/views/preference/Preference.vue:90
+#: src/views/preference/Preference.vue:96
 #: src/views/stream/components/RightSettings.vue:76
 msgid "Basic"
 msgstr "Basique"
@@ -174,7 +174,7 @@ msgstr "Batch Modify"
 msgid "Build with"
 msgstr "Build avec"
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/BasicSettings.vue:47
 msgid "CADir"
 msgstr ""
 
@@ -201,7 +201,7 @@ msgstr "Le certificat a expiré"
 msgid "Certificate is valid"
 msgstr "Le certificat est valide"
 
-#: src/views/certificate/CertificateEditor.vue:127
+#: src/views/certificate/CertificateEditor.vue:130
 #: src/views/domain/cert/Cert.vue:35
 msgid "Certificate Status"
 msgstr "État du certificat"
@@ -229,7 +229,7 @@ msgstr "Changer de certificat"
 msgid "Channel"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:13
+#: src/views/preference/OpenAISettings.vue:14
 msgid "ChatGPT Model"
 msgstr "Modèle ChatGPT"
 
@@ -237,10 +237,6 @@ msgstr "Modèle ChatGPT"
 msgid "Check again"
 msgstr "Revérifier"
 
-#: src/views/preference/BasicSettings.vue:36
-msgid "Chinese user: https://mirror.ghproxy.com/"
-msgstr "Utilisateur chinois : https://mirror.ghproxy.com/"
-
 #: src/language/constants.ts:17
 msgid "Cleaning environment variables"
 msgstr "Nettoyage des variables d'environnement"
@@ -344,7 +340,7 @@ msgstr "Custom"
 msgid "Dashboard"
 msgstr "Dashboard"
 
-#: src/views/other/Install.vue:124
+#: src/views/other/Install.vue:123
 msgid "Database (Optional, default: database)"
 msgstr "Base de données (Facultatif, par défaut : database)"
 
@@ -509,7 +505,7 @@ msgstr ""
 msgid "Domain Config Created Successfully"
 msgstr "La configuration du domaine a été créée avec succès"
 
-#: src/views/certificate/CertificateEditor.vue:111
+#: src/views/certificate/CertificateEditor.vue:114
 #, fuzzy
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
@@ -576,7 +572,7 @@ msgstr "Modifier le site"
 msgid "Edit Stream"
 msgstr "Modifier le site"
 
-#: src/views/other/Install.vue:93
+#: src/views/other/Install.vue:92
 msgid "Email (*)"
 msgstr "Email (*)"
 
@@ -704,6 +700,12 @@ msgstr "Fichier"
 msgid "File exists"
 msgstr "Le fichier existe"
 
+#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:27
+#, fuzzy
+msgid "File not found"
+msgstr "Fichier introuvable"
+
 #: src/views/other/Error.vue:14
 msgid "File Not Found"
 msgstr "Fichier introuvable"
@@ -716,6 +718,11 @@ msgstr "Filtrer"
 msgid "Finished"
 msgstr "Finie"
 
+#: src/views/preference/BasicSettings.vue:43
+#, fuzzy
+msgid "For Chinese user: https://mirror.ghproxy.com/"
+msgstr "Utilisateur chinois : https://mirror.ghproxy.com/"
+
 #: src/views/config/ConfigEdit.vue:92
 msgid "Format Code"
 msgstr "Code de formatage"
@@ -749,23 +756,23 @@ msgstr "Erreur d'obtention des informations sur la version"
 msgid "Getting the certificate, please wait..."
 msgstr "Obtention du certificat, veuillez patienter..."
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/BasicSettings.vue:35
 msgid "Github Proxy"
 msgstr "Proxy Github"
 
-#: src/views/preference/OpenAISettings.vue:25
+#: src/views/preference/OpenAISettings.vue:26
 msgid "GPT-3.5-Turbo"
 msgstr "GPT-3.5-Turbo"
 
-#: src/views/preference/OpenAISettings.vue:19
+#: src/views/preference/OpenAISettings.vue:20
 msgid "GPT-4"
 msgstr "GPT-4"
 
-#: src/views/preference/OpenAISettings.vue:22
+#: src/views/preference/OpenAISettings.vue:23
 msgid "GPT-4-32K"
 msgstr "GPT-4-32K"
 
-#: src/views/preference/OpenAISettings.vue:16
+#: src/views/preference/OpenAISettings.vue:17
 #, fuzzy
 msgid "GPT-4-Turbo"
 msgstr "GPT-3.5-Turbo"
@@ -774,15 +781,15 @@ msgstr "GPT-3.5-Turbo"
 msgid "Home"
 msgstr "Menu principal"
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/BasicSettings.vue:31
 msgid "HTTP Challenge Port"
 msgstr "Port de challenge HTTP"
 
-#: src/views/preference/BasicSettings.vue:12
+#: src/views/preference/BasicSettings.vue:13
 msgid "HTTP Host"
 msgstr "Host HTTP"
 
-#: src/views/preference/BasicSettings.vue:15
+#: src/views/preference/BasicSettings.vue:16
 msgid "HTTP Port"
 msgstr "Port HTTP"
 
@@ -795,7 +802,7 @@ msgstr "HTTP01"
 msgid "Import"
 msgstr "Exporter"
 
-#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Import Certificate"
 msgstr "État du certificat"
@@ -812,7 +819,7 @@ msgstr "Erreur du programme de mise à niveau initial du core"
 msgid "Initialing core upgrader"
 msgstr "Initialisation du programme de mise à niveau du core"
 
-#: src/routes/index.ts:237 src/views/other/Install.vue:139
+#: src/routes/index.ts:237 src/views/other/Install.vue:138
 msgid "Install"
 msgstr "Installer"
 
@@ -838,7 +845,7 @@ msgstr "État du certificat"
 msgid "Issued certificate successfully"
 msgstr "Certificat délivré avec succès"
 
-#: src/views/preference/BasicSettings.vue:21
+#: src/views/preference/BasicSettings.vue:22
 msgid "Jwt Secret"
 msgstr "Secret Jwt"
 
@@ -850,12 +857,12 @@ msgstr "Dernière vérification le"
 msgid "Leave blank for no change"
 msgstr "Laisser vide pour aucun changement"
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:39
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr "Laissez vide pour la valeur par défaut : https://api.openai.com/"
 
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:185
+#: src/views/certificate/CertificateEditor.vue:203
+#: src/views/certificate/CertificateEditor.vue:216
 #, fuzzy
 msgid "Leave blank will not change anything"
 msgstr "Laisser vide pour aucun changement"
@@ -890,7 +897,7 @@ msgstr "Localisation"
 msgid "Locations"
 msgstr "Localisations"
 
-#: src/views/certificate/CertificateEditor.vue:195
+#: src/views/certificate/CertificateEditor.vue:226
 #, fuzzy
 msgid "Log"
 msgstr "Connexion"
@@ -952,7 +959,7 @@ msgstr "Mémoire et stockage"
 msgid "Modify"
 msgstr "Modifier"
 
-#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "État du certificat"
@@ -966,7 +973,7 @@ msgid "Multi-line Directive"
 msgstr "Directive multiligne"
 
 #: src/views/certificate/Certificate.vue:24
-#: src/views/certificate/CertificateEditor.vue:145
+#: src/views/certificate/CertificateEditor.vue:149
 #: src/views/certificate/DNSCredential.vue:13 src/views/config/config.ts:9
 #: src/views/domain/cert/ChangeCert.vue:21
 #: src/views/domain/components/RightSettings.vue:84
@@ -1006,12 +1013,12 @@ msgstr "Nouvelle version publiée"
 msgid "Next"
 msgstr "Suivant"
 
-#: src/views/preference/Preference.vue:96
+#: src/views/preference/Preference.vue:102
 #, fuzzy
 msgid "Nginx"
 msgstr "Journal Nginx"
 
-#: src/views/preference/NginxSettings.vue:13
+#: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Access Log Path"
 msgstr "Chemin du journal d'accès Nginx"
 
@@ -1023,7 +1030,7 @@ msgstr "Erreur d'analyse de configuration Nginx"
 msgid "Nginx Control"
 msgstr "Contrôle Nginx"
 
-#: src/views/preference/NginxSettings.vue:16
+#: src/views/preference/NginxSettings.vue:24
 msgid "Nginx Error Log Path"
 msgstr "Chemin du journal des erreurs Nginx"
 
@@ -1050,7 +1057,7 @@ msgstr "Nginx a redémarré avec succès"
 msgid "No"
 msgstr "Non"
 
-#: src/views/preference/BasicSettings.vue:24
+#: src/views/preference/BasicSettings.vue:25
 #, fuzzy
 msgid "Node Secret"
 msgstr "Secret Jwt"
@@ -1127,7 +1134,7 @@ msgstr ""
 msgid "Online"
 msgstr ""
 
-#: src/views/preference/Preference.vue:102
+#: src/views/preference/Preference.vue:108
 msgid "OpenAI"
 msgstr "OpenAI"
 
@@ -1157,7 +1164,7 @@ msgstr "Paramètres"
 msgid "Password"
 msgstr "Mot de passe"
 
-#: src/views/other/Install.vue:113
+#: src/views/other/Install.vue:112
 msgid "Password (*)"
 msgstr "Mot de passe (*)"
 
@@ -1227,7 +1234,7 @@ msgstr ""
 msgid "Pre-release"
 msgstr ""
 
-#: src/routes/index.ts:210 src/views/preference/Preference.vue:85
+#: src/routes/index.ts:210 src/views/preference/Preference.vue:91
 msgid "Preference"
 msgstr "Préférence"
 
@@ -1341,7 +1348,7 @@ msgstr "Redémarrer"
 msgid "Restarting"
 msgstr "Redémarrage"
 
-#: src/views/preference/BasicSettings.vue:18
+#: src/views/preference/BasicSettings.vue:19
 msgid "Run Mode"
 msgstr "Mode d'exécution"
 
@@ -1350,10 +1357,10 @@ msgid "Running"
 msgstr "En cours d'éxécution"
 
 #: src/components/ChatGPT/ChatGPT.vue:259
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:245
 #: src/views/config/ConfigEdit.vue:98 src/views/domain/DomainEdit.vue:263
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:121
-#: src/views/preference/Preference.vue:113 src/views/stream/StreamEdit.vue:253
+#: src/views/preference/Preference.vue:119 src/views/stream/StreamEdit.vue:253
 msgid "Save"
 msgstr "Enregistrer"
 
@@ -1367,8 +1374,8 @@ msgid "Save error %{msg}"
 msgstr "Enregistrer l'erreur %{msg}"
 
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
-#: src/views/certificate/CertificateEditor.vue:47
-#: src/views/preference/Preference.vue:58
+#: src/views/certificate/CertificateEditor.vue:48
+#: src/views/preference/Preference.vue:61
 msgid "Save successfully"
 msgstr "Sauvegarde réussie"
 
@@ -1399,7 +1406,7 @@ msgstr "Envoyer"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:45
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:157
 #: src/views/config/ConfigEdit.vue:42 src/views/domain/DomainList.vue:84
-#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:60
+#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:65
 #: src/views/stream/StreamList.vue:116 src/views/stream/StreamList.vue:84
 #: src/views/system/Upgrade.vue:45
 msgid "Server error"
@@ -1444,23 +1451,23 @@ msgstr "Journaux du site"
 msgid "Sites List"
 msgstr "Liste des sites"
 
-#: src/views/certificate/CertificateEditor.vue:172
+#: src/views/certificate/CertificateEditor.vue:194
 #, fuzzy
 msgid "SSL Certificate Content"
 msgstr "Contenu de la certification SSL"
 
-#: src/views/certificate/CertificateEditor.vue:180
+#: src/views/certificate/CertificateEditor.vue:207
 #, fuzzy
 msgid "SSL Certificate Key Content"
 msgstr "Contenu de la clé de certification SSL"
 
 #: src/views/certificate/Certificate.vue:73
-#: src/views/certificate/CertificateEditor.vue:163
+#: src/views/certificate/CertificateEditor.vue:179
 msgid "SSL Certificate Key Path"
 msgstr "Chemin de la clé du certificat SSL"
 
 #: src/views/certificate/Certificate.vue:65
-#: src/views/certificate/CertificateEditor.vue:154
+#: src/views/certificate/CertificateEditor.vue:164
 msgid "SSL Certificate Path"
 msgstr "Chemin du certificat SSL"
 
@@ -1526,7 +1533,7 @@ msgstr ""
 msgid "Terminal"
 msgstr "Terminal"
 
-#: src/views/preference/BasicSettings.vue:27
+#: src/views/preference/BasicSettings.vue:28
 msgid "Terminal Start Command"
 msgstr "Commande de démarrage du terminal"
 
@@ -1543,6 +1550,23 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "Le nom de fichier ne peut pas contenir les caractères suivants : %{c}"
 
+#: src/views/certificate/CertificateEditor.vue:197
+msgid "The input is not a SSL Certificate"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:210
+#, fuzzy
+msgid "The input is not a SSL Certificate Key"
+msgstr "Chemin de la clé du certificat SSL"
+
+#: src/views/certificate/CertificateEditor.vue:183
+msgid "The path exists, but the file is not a private key"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:168
+msgid "The path exists, but the file is not a public key"
+msgstr ""
+
 #: src/views/domain/cert/components/AutoCertStepOne.vue:45
 #, fuzzy
 msgid ""
@@ -1553,21 +1577,34 @@ msgstr ""
 "dont vous avez besoin pour obtenir le certificat, prendre en charge "
 "plusieurs domaines."
 
+#: src/views/preference/BasicSettings.vue:38
+#: src/views/preference/BasicSettings.vue:50
+#: src/views/preference/OpenAISettings.vue:34
+#: src/views/preference/OpenAISettings.vue:46
+msgid "The url is not valid"
+msgstr ""
+
 #: src/language/constants.ts:6
 msgid "The username or password is incorrect"
 msgstr "Le pseudo ou mot de passe est incorect"
 
-#: src/views/certificate/CertificateEditor.vue:101
+#: src/views/certificate/CertificateEditor.vue:104
 #, fuzzy
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr ""
 "Cet élément de certification automatique n'est pas valide, veuillez le "
 "supprimer."
 
-#: src/views/certificate/CertificateEditor.vue:91
+#: src/views/certificate/CertificateEditor.vue:94
 msgid "This certificate is managed by Nginx UI"
 msgstr ""
 
+#: src/views/certificate/CertificateEditor.vue:152
+#: src/views/certificate/CertificateEditor.vue:166
+#: src/views/certificate/CertificateEditor.vue:181
+msgid "This field is required"
+msgstr ""
+
 #: src/components/StdDesign/StdDataEntry/StdFormItem.vue:31
 msgid "This field should not be empty"
 msgstr ""
@@ -1588,6 +1625,10 @@ msgstr ""
 "transmettre la demande de l'autorité au backend, et nous devons enregistrer "
 "ce fichier et recharger le Nginx. Êtes-vous sûr de vouloir continuer?"
 
+#: src/views/preference/OpenAISettings.vue:58
+msgid "Token is not valid"
+msgstr ""
+
 #: src/views/certificate/Certificate.vue:41 src/views/config/config.ts:14
 #: src/views/notification/Notification.vue:15
 msgid "Type"
@@ -1640,7 +1681,7 @@ msgstr "Nom d'utilisateur"
 msgid "Username"
 msgstr "Nom d'utilisateur"
 
-#: src/views/other/Install.vue:103
+#: src/views/other/Install.vue:102
 msgid "Username (*)"
 msgstr "Nom d'utilisateur (*)"
 

+ 91 - 53
app/src/language/messages.pot

@@ -62,15 +62,15 @@ msgstr ""
 msgid "Advance Mode"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:29
+#: src/views/preference/OpenAISettings.vue:31
 msgid "API Base Url"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:43
 msgid "API Proxy"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:41
+#: src/views/preference/OpenAISettings.vue:55
 msgid "API Token"
 msgstr ""
 
@@ -130,7 +130,7 @@ msgstr ""
 msgid "Auto-renewal enabled for %{name}"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:207
+#: src/views/certificate/CertificateEditor.vue:238
 #: src/views/config/Config.vue:75
 #: src/views/config/ConfigEdit.vue:89
 #: src/views/domain/DomainEdit.vue:256
@@ -149,7 +149,7 @@ msgstr ""
 
 #: src/views/config/ConfigEdit.vue:117
 #: src/views/domain/components/RightSettings.vue:76
-#: src/views/preference/Preference.vue:90
+#: src/views/preference/Preference.vue:96
 #: src/views/stream/components/RightSettings.vue:76
 msgid "Basic"
 msgstr ""
@@ -168,7 +168,7 @@ msgstr ""
 msgid "Build with"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/BasicSettings.vue:47
 msgid "CADir"
 msgstr ""
 
@@ -195,7 +195,7 @@ msgstr ""
 msgid "Certificate is valid"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:127
+#: src/views/certificate/CertificateEditor.vue:130
 #: src/views/domain/cert/Cert.vue:35
 msgid "Certificate Status"
 msgstr ""
@@ -222,7 +222,7 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:13
+#: src/views/preference/OpenAISettings.vue:14
 msgid "ChatGPT Model"
 msgstr ""
 
@@ -230,10 +230,6 @@ msgstr ""
 msgid "Check again"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:36
-msgid "Chinese user: https://mirror.ghproxy.com/"
-msgstr ""
-
 #: src/language/constants.ts:17
 msgid "Cleaning environment variables"
 msgstr ""
@@ -336,7 +332,7 @@ msgstr ""
 msgid "Dashboard"
 msgstr ""
 
-#: src/views/other/Install.vue:124
+#: src/views/other/Install.vue:123
 msgid "Database (Optional, default: database)"
 msgstr ""
 
@@ -496,7 +492,7 @@ msgstr ""
 msgid "Domain Config Created Successfully"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:111
+#: src/views/certificate/CertificateEditor.vue:114
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
 
@@ -557,7 +553,7 @@ msgstr ""
 msgid "Edit Stream"
 msgstr ""
 
-#: src/views/other/Install.vue:93
+#: src/views/other/Install.vue:92
 msgid "Email (*)"
 msgstr ""
 
@@ -686,6 +682,11 @@ msgstr ""
 msgid "File exists"
 msgstr ""
 
+#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:27
+msgid "File not found"
+msgstr ""
+
 #: src/views/other/Error.vue:14
 msgid "File Not Found"
 msgstr ""
@@ -699,6 +700,10 @@ msgstr ""
 msgid "Finished"
 msgstr ""
 
+#: src/views/preference/BasicSettings.vue:43
+msgid "For Chinese user: https://mirror.ghproxy.com/"
+msgstr ""
+
 #: src/views/config/ConfigEdit.vue:92
 msgid "Format Code"
 msgstr ""
@@ -731,23 +736,23 @@ msgstr ""
 msgid "Getting the certificate, please wait..."
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/BasicSettings.vue:35
 msgid "Github Proxy"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:25
+#: src/views/preference/OpenAISettings.vue:26
 msgid "GPT-3.5-Turbo"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:19
+#: src/views/preference/OpenAISettings.vue:20
 msgid "GPT-4"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:22
+#: src/views/preference/OpenAISettings.vue:23
 msgid "GPT-4-32K"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:16
+#: src/views/preference/OpenAISettings.vue:17
 msgid "GPT-4-Turbo"
 msgstr ""
 
@@ -755,15 +760,15 @@ msgstr ""
 msgid "Home"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/BasicSettings.vue:31
 msgid "HTTP Challenge Port"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:12
+#: src/views/preference/BasicSettings.vue:13
 msgid "HTTP Host"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:15
+#: src/views/preference/BasicSettings.vue:16
 msgid "HTTP Port"
 msgstr ""
 
@@ -776,7 +781,7 @@ msgid "Import"
 msgstr ""
 
 #: src/routes/index.ts:140
-#: src/views/certificate/CertificateEditor.vue:84
+#: src/views/certificate/CertificateEditor.vue:87
 msgid "Import Certificate"
 msgstr ""
 
@@ -793,7 +798,7 @@ msgid "Initialing core upgrader"
 msgstr ""
 
 #: src/routes/index.ts:237
-#: src/views/other/Install.vue:139
+#: src/views/other/Install.vue:138
 msgid "Install"
 msgstr ""
 
@@ -817,7 +822,7 @@ msgstr ""
 msgid "Issued certificate successfully"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:21
+#: src/views/preference/BasicSettings.vue:22
 msgid "Jwt Secret"
 msgstr ""
 
@@ -829,12 +834,12 @@ msgstr ""
 msgid "Leave blank for no change"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:39
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:185
+#: src/views/certificate/CertificateEditor.vue:203
+#: src/views/certificate/CertificateEditor.vue:216
 msgid "Leave blank will not change anything"
 msgstr ""
 
@@ -863,7 +868,7 @@ msgstr ""
 msgid "Locations"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:195
+#: src/views/certificate/CertificateEditor.vue:226
 msgid "Log"
 msgstr ""
 
@@ -923,7 +928,7 @@ msgid "Modify"
 msgstr ""
 
 #: src/routes/index.ts:132
-#: src/views/certificate/CertificateEditor.vue:84
+#: src/views/certificate/CertificateEditor.vue:87
 msgid "Modify Certificate"
 msgstr ""
 
@@ -936,7 +941,7 @@ msgid "Multi-line Directive"
 msgstr ""
 
 #: src/views/certificate/Certificate.vue:24
-#: src/views/certificate/CertificateEditor.vue:145
+#: src/views/certificate/CertificateEditor.vue:149
 #: src/views/certificate/DNSCredential.vue:13
 #: src/views/config/config.ts:9
 #: src/views/domain/cert/ChangeCert.vue:21
@@ -978,11 +983,11 @@ msgstr ""
 msgid "Next"
 msgstr ""
 
-#: src/views/preference/Preference.vue:96
+#: src/views/preference/Preference.vue:102
 msgid "Nginx"
 msgstr ""
 
-#: src/views/preference/NginxSettings.vue:13
+#: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Access Log Path"
 msgstr ""
 
@@ -995,7 +1000,7 @@ msgstr ""
 msgid "Nginx Control"
 msgstr ""
 
-#: src/views/preference/NginxSettings.vue:16
+#: src/views/preference/NginxSettings.vue:24
 msgid "Nginx Error Log Path"
 msgstr ""
 
@@ -1023,7 +1028,7 @@ msgstr ""
 msgid "No"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:24
+#: src/views/preference/BasicSettings.vue:25
 msgid "Node Secret"
 msgstr ""
 
@@ -1099,7 +1104,7 @@ msgstr ""
 msgid "Online"
 msgstr ""
 
-#: src/views/preference/Preference.vue:102
+#: src/views/preference/Preference.vue:108
 msgid "OpenAI"
 msgstr ""
 
@@ -1130,7 +1135,7 @@ msgstr ""
 msgid "Password"
 msgstr ""
 
-#: src/views/other/Install.vue:113
+#: src/views/other/Install.vue:112
 msgid "Password (*)"
 msgstr ""
 
@@ -1190,7 +1195,7 @@ msgid "Pre-release"
 msgstr ""
 
 #: src/routes/index.ts:210
-#: src/views/preference/Preference.vue:85
+#: src/views/preference/Preference.vue:91
 msgid "Preference"
 msgstr ""
 
@@ -1295,7 +1300,7 @@ msgstr ""
 msgid "Restarting"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:18
+#: src/views/preference/BasicSettings.vue:19
 msgid "Run Mode"
 msgstr ""
 
@@ -1304,11 +1309,11 @@ msgid "Running"
 msgstr ""
 
 #: src/components/ChatGPT/ChatGPT.vue:259
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:245
 #: src/views/config/ConfigEdit.vue:98
 #: src/views/domain/DomainEdit.vue:263
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:121
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:119
 #: src/views/stream/StreamEdit.vue:253
 msgid "Save"
 msgstr ""
@@ -1324,8 +1329,8 @@ msgid "Save error %{msg}"
 msgstr ""
 
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
-#: src/views/certificate/CertificateEditor.vue:47
-#: src/views/preference/Preference.vue:58
+#: src/views/certificate/CertificateEditor.vue:48
+#: src/views/preference/Preference.vue:61
 msgid "Save successfully"
 msgstr ""
 
@@ -1359,7 +1364,7 @@ msgstr ""
 #: src/views/config/ConfigEdit.vue:42
 #: src/views/domain/DomainList.vue:84
 #: src/views/other/Install.vue:72
-#: src/views/preference/Preference.vue:60
+#: src/views/preference/Preference.vue:65
 #: src/views/stream/StreamList.vue:116
 #: src/views/stream/StreamList.vue:84
 #: src/views/system/Upgrade.vue:45
@@ -1403,21 +1408,21 @@ msgstr ""
 msgid "Sites List"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:172
+#: src/views/certificate/CertificateEditor.vue:194
 msgid "SSL Certificate Content"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:180
+#: src/views/certificate/CertificateEditor.vue:207
 msgid "SSL Certificate Key Content"
 msgstr ""
 
 #: src/views/certificate/Certificate.vue:73
-#: src/views/certificate/CertificateEditor.vue:163
+#: src/views/certificate/CertificateEditor.vue:179
 msgid "SSL Certificate Key Path"
 msgstr ""
 
 #: src/views/certificate/Certificate.vue:65
-#: src/views/certificate/CertificateEditor.vue:154
+#: src/views/certificate/CertificateEditor.vue:164
 msgid "SSL Certificate Path"
 msgstr ""
 
@@ -1483,7 +1488,7 @@ msgstr ""
 msgid "Terminal"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:27
+#: src/views/preference/BasicSettings.vue:28
 msgid "Terminal Start Command"
 msgstr ""
 
@@ -1495,22 +1500,51 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr ""
 
+#: src/views/certificate/CertificateEditor.vue:197
+msgid "The input is not a SSL Certificate"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:210
+msgid "The input is not a SSL Certificate Key"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:183
+msgid "The path exists, but the file is not a private key"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:168
+msgid "The path exists, but the file is not a public key"
+msgstr ""
+
 #: src/views/domain/cert/components/AutoCertStepOne.vue:45
 msgid "The server_name in the current configuration must be the domain name you need to get the certificate, supportmultiple domains."
 msgstr ""
 
+#: src/views/preference/BasicSettings.vue:38
+#: src/views/preference/BasicSettings.vue:50
+#: src/views/preference/OpenAISettings.vue:34
+#: src/views/preference/OpenAISettings.vue:46
+msgid "The url is not valid"
+msgstr ""
+
 #: src/language/constants.ts:6
 msgid "The username or password is incorrect"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:101
+#: src/views/certificate/CertificateEditor.vue:104
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:91
+#: src/views/certificate/CertificateEditor.vue:94
 msgid "This certificate is managed by Nginx UI"
 msgstr ""
 
+#: src/views/certificate/CertificateEditor.vue:152
+#: src/views/certificate/CertificateEditor.vue:166
+#: src/views/certificate/CertificateEditor.vue:181
+msgid "This field is required"
+msgstr ""
+
 #: src/components/StdDesign/StdDataEntry/StdFormItem.vue:31
 msgid "This field should not be empty"
 msgstr ""
@@ -1523,6 +1557,10 @@ msgstr ""
 msgid "To make sure the certification auto-renewal can work normally, we need to add a location which can proxy the request from authority to backend, and we need to save this file and reload the Nginx. Are you sure you want to continue?"
 msgstr ""
 
+#: src/views/preference/OpenAISettings.vue:58
+msgid "Token is not valid"
+msgstr ""
+
 #: src/views/certificate/Certificate.vue:41
 #: src/views/config/config.ts:14
 #: src/views/notification/Notification.vue:15
@@ -1580,7 +1618,7 @@ msgstr ""
 msgid "Username"
 msgstr ""
 
-#: src/views/other/Install.vue:103
+#: src/views/other/Install.vue:102
 msgid "Username (*)"
 msgstr ""
 

+ 93 - 53
app/src/language/ru_RU/app.po

@@ -66,15 +66,15 @@ msgstr "Дополнительно"
 msgid "Advance Mode"
 msgstr "Расширенный режим"
 
-#: src/views/preference/OpenAISettings.vue:29
+#: src/views/preference/OpenAISettings.vue:31
 msgid "API Base Url"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:43
 msgid "API Proxy"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:41
+#: src/views/preference/OpenAISettings.vue:55
 msgid "API Token"
 msgstr ""
 
@@ -137,7 +137,7 @@ msgstr "Автообновление отключено для %{name}"
 msgid "Auto-renewal enabled for %{name}"
 msgstr "Автообновление включено для %{name}"
 
-#: src/views/certificate/CertificateEditor.vue:207
+#: src/views/certificate/CertificateEditor.vue:238
 #: src/views/config/Config.vue:75 src/views/config/ConfigEdit.vue:89
 #: src/views/domain/DomainEdit.vue:256 src/views/nginx_log/NginxLog.vue:170
 #: src/views/stream/StreamEdit.vue:246
@@ -155,7 +155,7 @@ msgstr "Основная информация"
 
 #: src/views/config/ConfigEdit.vue:117
 #: src/views/domain/components/RightSettings.vue:76
-#: src/views/preference/Preference.vue:90
+#: src/views/preference/Preference.vue:96
 #: src/views/stream/components/RightSettings.vue:76
 #, fuzzy
 msgid "Basic"
@@ -175,7 +175,7 @@ msgstr "Изменение конфигурации"
 msgid "Build with"
 msgstr "Собрать с"
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/BasicSettings.vue:47
 msgid "CADir"
 msgstr ""
 
@@ -202,7 +202,7 @@ msgstr "Срок действия сертификата истек"
 msgid "Certificate is valid"
 msgstr "Сертификат действителен"
 
-#: src/views/certificate/CertificateEditor.vue:127
+#: src/views/certificate/CertificateEditor.vue:130
 #: src/views/domain/cert/Cert.vue:35
 msgid "Certificate Status"
 msgstr "Статус сертификата"
@@ -231,7 +231,7 @@ msgstr "Сертификат действителен"
 msgid "Channel"
 msgstr "Канал"
 
-#: src/views/preference/OpenAISettings.vue:13
+#: src/views/preference/OpenAISettings.vue:14
 msgid "ChatGPT Model"
 msgstr ""
 
@@ -239,10 +239,6 @@ msgstr ""
 msgid "Check again"
 msgstr "Проверить повторно"
 
-#: src/views/preference/BasicSettings.vue:36
-msgid "Chinese user: https://mirror.ghproxy.com/"
-msgstr ""
-
 #: src/language/constants.ts:17
 msgid "Cleaning environment variables"
 msgstr "Очистка переменных среды"
@@ -347,7 +343,7 @@ msgstr "Пользовательский"
 msgid "Dashboard"
 msgstr "Доска"
 
-#: src/views/other/Install.vue:124
+#: src/views/other/Install.vue:123
 msgid "Database (Optional, default: database)"
 msgstr "База данных (Опционально, по умолчанию: database)"
 
@@ -515,7 +511,7 @@ msgstr ""
 msgid "Domain Config Created Successfully"
 msgstr "Конфигурация домена успешно создана"
 
-#: src/views/certificate/CertificateEditor.vue:111
+#: src/views/certificate/CertificateEditor.vue:114
 #, fuzzy
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
@@ -581,7 +577,7 @@ msgstr "Редактировать Сайт"
 msgid "Edit Stream"
 msgstr "Редактировать Сайт"
 
-#: src/views/other/Install.vue:93
+#: src/views/other/Install.vue:92
 msgid "Email (*)"
 msgstr "Email (*)"
 
@@ -707,6 +703,12 @@ msgstr "Файл"
 msgid "File exists"
 msgstr "Файл существует"
 
+#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:27
+#, fuzzy
+msgid "File not found"
+msgstr "Файл не найден"
+
 #: src/views/other/Error.vue:14
 msgid "File Not Found"
 msgstr "Файл не найден"
@@ -719,6 +721,10 @@ msgstr "Фильтр"
 msgid "Finished"
 msgstr "Готово"
 
+#: src/views/preference/BasicSettings.vue:43
+msgid "For Chinese user: https://mirror.ghproxy.com/"
+msgstr ""
+
 #: src/views/config/ConfigEdit.vue:92
 msgid "Format Code"
 msgstr "Форматировать код"
@@ -755,23 +761,23 @@ msgstr "Ошибка получения информации о релизе"
 msgid "Getting the certificate, please wait..."
 msgstr "Получение сертификата, пожалуйста, подождите..."
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/BasicSettings.vue:35
 msgid "Github Proxy"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:25
+#: src/views/preference/OpenAISettings.vue:26
 msgid "GPT-3.5-Turbo"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:19
+#: src/views/preference/OpenAISettings.vue:20
 msgid "GPT-4"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:22
+#: src/views/preference/OpenAISettings.vue:23
 msgid "GPT-4-32K"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:16
+#: src/views/preference/OpenAISettings.vue:17
 msgid "GPT-4-Turbo"
 msgstr ""
 
@@ -779,15 +785,15 @@ msgstr ""
 msgid "Home"
 msgstr "Главная"
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/BasicSettings.vue:31
 msgid "HTTP Challenge Port"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:12
+#: src/views/preference/BasicSettings.vue:13
 msgid "HTTP Host"
 msgstr "Хостинг HTTP"
 
-#: src/views/preference/BasicSettings.vue:15
+#: src/views/preference/BasicSettings.vue:16
 msgid "HTTP Port"
 msgstr "Порт HTTP"
 
@@ -800,7 +806,7 @@ msgstr ""
 msgid "Import"
 msgstr "Экспорт"
 
-#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Import Certificate"
 msgstr "Статус сертификата"
@@ -817,7 +823,7 @@ msgstr "Ошибка первоначального обновления ядр
 msgid "Initialing core upgrader"
 msgstr "Инициализация программы обновления ядра"
 
-#: src/routes/index.ts:237 src/views/other/Install.vue:139
+#: src/routes/index.ts:237 src/views/other/Install.vue:138
 msgid "Install"
 msgstr "Установить"
 
@@ -845,7 +851,7 @@ msgstr "Статус сертификата"
 msgid "Issued certificate successfully"
 msgstr "Сертификат успешно выдан"
 
-#: src/views/preference/BasicSettings.vue:21
+#: src/views/preference/BasicSettings.vue:22
 msgid "Jwt Secret"
 msgstr ""
 
@@ -857,12 +863,12 @@ msgstr "Последняя проверка в"
 msgid "Leave blank for no change"
 msgstr "Оставьте пустым без изменений"
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:39
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr "Оставьте пустым для значения по умолчанию: https://api.openai.com/"
 
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:185
+#: src/views/certificate/CertificateEditor.vue:203
+#: src/views/certificate/CertificateEditor.vue:216
 #, fuzzy
 msgid "Leave blank will not change anything"
 msgstr "Оставьте пустым без изменений"
@@ -895,7 +901,7 @@ msgstr "Location"
 msgid "Locations"
 msgstr "Locations"
 
-#: src/views/certificate/CertificateEditor.vue:195
+#: src/views/certificate/CertificateEditor.vue:226
 #, fuzzy
 msgid "Log"
 msgstr "Логин"
@@ -958,7 +964,7 @@ msgstr "Память и хранилище"
 msgid "Modify"
 msgstr "Изменить"
 
-#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "Статус сертификата"
@@ -973,7 +979,7 @@ msgid "Multi-line Directive"
 msgstr "Одиночная директива"
 
 #: src/views/certificate/Certificate.vue:24
-#: src/views/certificate/CertificateEditor.vue:145
+#: src/views/certificate/CertificateEditor.vue:149
 #: src/views/certificate/DNSCredential.vue:13 src/views/config/config.ts:9
 #: src/views/domain/cert/ChangeCert.vue:21
 #: src/views/domain/components/RightSettings.vue:84
@@ -1013,12 +1019,12 @@ msgstr "Вышла новая версия"
 msgid "Next"
 msgstr "Дальше"
 
-#: src/views/preference/Preference.vue:96
+#: src/views/preference/Preference.vue:102
 #, fuzzy
 msgid "Nginx"
 msgstr "Журнал"
 
-#: src/views/preference/NginxSettings.vue:13
+#: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Access Log Path"
 msgstr "Путь для Nginx Access Log"
 
@@ -1031,7 +1037,7 @@ msgstr "Ошибка синтаксического анализа конфиг
 msgid "Nginx Control"
 msgstr "Управление Nginx"
 
-#: src/views/preference/NginxSettings.vue:16
+#: src/views/preference/NginxSettings.vue:24
 msgid "Nginx Error Log Path"
 msgstr "Путь для Nginx Error Log"
 
@@ -1060,7 +1066,7 @@ msgstr "Nginx успешно перезапущен"
 msgid "No"
 msgstr "Нет"
 
-#: src/views/preference/BasicSettings.vue:24
+#: src/views/preference/BasicSettings.vue:25
 msgid "Node Secret"
 msgstr ""
 
@@ -1137,7 +1143,7 @@ msgstr ""
 msgid "Online"
 msgstr ""
 
-#: src/views/preference/Preference.vue:102
+#: src/views/preference/Preference.vue:108
 msgid "OpenAI"
 msgstr ""
 
@@ -1168,7 +1174,7 @@ msgstr "Параметры"
 msgid "Password"
 msgstr "Пароль"
 
-#: src/views/other/Install.vue:113
+#: src/views/other/Install.vue:112
 msgid "Password (*)"
 msgstr "Пароль (*)"
 
@@ -1233,7 +1239,7 @@ msgstr ""
 msgid "Pre-release"
 msgstr ""
 
-#: src/routes/index.ts:210 src/views/preference/Preference.vue:85
+#: src/routes/index.ts:210 src/views/preference/Preference.vue:91
 msgid "Preference"
 msgstr "Настройки"
 
@@ -1346,7 +1352,7 @@ msgstr "Перезапуск"
 msgid "Restarting"
 msgstr "Перезапускается"
 
-#: src/views/preference/BasicSettings.vue:18
+#: src/views/preference/BasicSettings.vue:19
 #, fuzzy
 msgid "Run Mode"
 msgstr "Расширенный режим"
@@ -1356,10 +1362,10 @@ msgid "Running"
 msgstr "Выполняется"
 
 #: src/components/ChatGPT/ChatGPT.vue:259
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:245
 #: src/views/config/ConfigEdit.vue:98 src/views/domain/DomainEdit.vue:263
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:121
-#: src/views/preference/Preference.vue:113 src/views/stream/StreamEdit.vue:253
+#: src/views/preference/Preference.vue:119 src/views/stream/StreamEdit.vue:253
 msgid "Save"
 msgstr "Сохранить"
 
@@ -1373,8 +1379,8 @@ msgid "Save error %{msg}"
 msgstr "Ошибка сохранения %{msg}"
 
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
-#: src/views/certificate/CertificateEditor.vue:47
-#: src/views/preference/Preference.vue:58
+#: src/views/certificate/CertificateEditor.vue:48
+#: src/views/preference/Preference.vue:61
 #, fuzzy
 msgid "Save successfully"
 msgstr "Успешно сохранено"
@@ -1407,7 +1413,7 @@ msgstr "Отправлено"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:45
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:157
 #: src/views/config/ConfigEdit.vue:42 src/views/domain/DomainList.vue:84
-#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:60
+#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:65
 #: src/views/stream/StreamList.vue:116 src/views/stream/StreamList.vue:84
 #: src/views/system/Upgrade.vue:45
 msgid "Server error"
@@ -1451,24 +1457,24 @@ msgstr "Логи сайтов"
 msgid "Sites List"
 msgstr "Список сайтов"
 
-#: src/views/certificate/CertificateEditor.vue:172
+#: src/views/certificate/CertificateEditor.vue:194
 #, fuzzy
 msgid "SSL Certificate Content"
 msgstr "Содержание сертификата SSL"
 
-#: src/views/certificate/CertificateEditor.vue:180
+#: src/views/certificate/CertificateEditor.vue:207
 #, fuzzy
 msgid "SSL Certificate Key Content"
 msgstr "Содержание ключа сертификата SSL"
 
 #: src/views/certificate/Certificate.vue:73
-#: src/views/certificate/CertificateEditor.vue:163
+#: src/views/certificate/CertificateEditor.vue:179
 #, fuzzy
 msgid "SSL Certificate Key Path"
 msgstr "Путь к ключу сертификата SSL"
 
 #: src/views/certificate/Certificate.vue:65
-#: src/views/certificate/CertificateEditor.vue:154
+#: src/views/certificate/CertificateEditor.vue:164
 #, fuzzy
 msgid "SSL Certificate Path"
 msgstr "Путь к сертификату SSL"
@@ -1535,7 +1541,7 @@ msgstr ""
 msgid "Terminal"
 msgstr "Терминал"
 
-#: src/views/preference/BasicSettings.vue:27
+#: src/views/preference/BasicSettings.vue:28
 msgid "Terminal Start Command"
 msgstr "Терминальная команда запуска"
 
@@ -1552,6 +1558,23 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "The filename cannot contain the following characters: %{c}"
 
+#: src/views/certificate/CertificateEditor.vue:197
+msgid "The input is not a SSL Certificate"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:210
+#, fuzzy
+msgid "The input is not a SSL Certificate Key"
+msgstr "Путь к ключу сертификата SSL"
+
+#: src/views/certificate/CertificateEditor.vue:183
+msgid "The path exists, but the file is not a private key"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:168
+msgid "The path exists, but the file is not a public key"
+msgstr ""
+
 #: src/views/domain/cert/components/AutoCertStepOne.vue:45
 #, fuzzy
 msgid ""
@@ -1561,19 +1584,32 @@ msgstr ""
 "Note: The server_name in the current configuration must be the domain name "
 "you need to get the certificate."
 
+#: src/views/preference/BasicSettings.vue:38
+#: src/views/preference/BasicSettings.vue:50
+#: src/views/preference/OpenAISettings.vue:34
+#: src/views/preference/OpenAISettings.vue:46
+msgid "The url is not valid"
+msgstr ""
+
 #: src/language/constants.ts:6
 msgid "The username or password is incorrect"
 msgstr "Имя пользователя или пароль неверны"
 
-#: src/views/certificate/CertificateEditor.vue:101
+#: src/views/certificate/CertificateEditor.vue:104
 #, fuzzy
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "Этот элемент автосертификата недействителен, удалите его.."
 
-#: src/views/certificate/CertificateEditor.vue:91
+#: src/views/certificate/CertificateEditor.vue:94
 msgid "This certificate is managed by Nginx UI"
 msgstr ""
 
+#: src/views/certificate/CertificateEditor.vue:152
+#: src/views/certificate/CertificateEditor.vue:166
+#: src/views/certificate/CertificateEditor.vue:181
+msgid "This field is required"
+msgstr ""
+
 #: src/components/StdDesign/StdDataEntry/StdFormItem.vue:31
 msgid "This field should not be empty"
 msgstr ""
@@ -1590,6 +1626,10 @@ msgid ""
 "continue?"
 msgstr ""
 
+#: src/views/preference/OpenAISettings.vue:58
+msgid "Token is not valid"
+msgstr ""
+
 #: src/views/certificate/Certificate.vue:41 src/views/config/config.ts:14
 #: src/views/notification/Notification.vue:15
 msgid "Type"
@@ -1644,7 +1684,7 @@ msgstr "Имя пользователя"
 msgid "Username"
 msgstr "Имя пользователя"
 
-#: src/views/other/Install.vue:103
+#: src/views/other/Install.vue:102
 msgid "Username (*)"
 msgstr "Имя пользователя (*)"
 

+ 93 - 53
app/src/language/vi_VN/app.po

@@ -66,15 +66,15 @@ msgstr "Tùy chọn bổ sung"
 msgid "Advance Mode"
 msgstr "Nâng cao"
 
-#: src/views/preference/OpenAISettings.vue:29
+#: src/views/preference/OpenAISettings.vue:31
 msgid "API Base Url"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:43
 msgid "API Proxy"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:41
+#: src/views/preference/OpenAISettings.vue:55
 msgid "API Token"
 msgstr ""
 
@@ -137,7 +137,7 @@ msgstr "Đã tắt tự động gia hạn SSL cho %{name}"
 msgid "Auto-renewal enabled for %{name}"
 msgstr "Đã bật tự động gia hạn SSL cho %{name}"
 
-#: src/views/certificate/CertificateEditor.vue:207
+#: src/views/certificate/CertificateEditor.vue:238
 #: src/views/config/Config.vue:75 src/views/config/ConfigEdit.vue:89
 #: src/views/domain/DomainEdit.vue:256 src/views/nginx_log/NginxLog.vue:170
 #: src/views/stream/StreamEdit.vue:246
@@ -155,7 +155,7 @@ msgstr "Thông tin"
 
 #: src/views/config/ConfigEdit.vue:117
 #: src/views/domain/components/RightSettings.vue:76
-#: src/views/preference/Preference.vue:90
+#: src/views/preference/Preference.vue:96
 #: src/views/stream/components/RightSettings.vue:76
 #, fuzzy
 msgid "Basic"
@@ -175,7 +175,7 @@ msgstr "Sửa đổi cấu hình"
 msgid "Build with"
 msgstr "Xây dựng với"
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/BasicSettings.vue:47
 msgid "CADir"
 msgstr ""
 
@@ -202,7 +202,7 @@ msgstr "Chứng chỉ đã hết hạn"
 msgid "Certificate is valid"
 msgstr "Chứng chỉ SSL hợp lệ"
 
-#: src/views/certificate/CertificateEditor.vue:127
+#: src/views/certificate/CertificateEditor.vue:130
 #: src/views/domain/cert/Cert.vue:35
 msgid "Certificate Status"
 msgstr "Trạng thái chứng chỉ"
@@ -231,7 +231,7 @@ msgstr "Thay đổi chứng chỉ"
 msgid "Channel"
 msgstr "Kênh"
 
-#: src/views/preference/OpenAISettings.vue:13
+#: src/views/preference/OpenAISettings.vue:14
 msgid "ChatGPT Model"
 msgstr ""
 
@@ -239,10 +239,6 @@ msgstr ""
 msgid "Check again"
 msgstr "Kiểm tra lại"
 
-#: src/views/preference/BasicSettings.vue:36
-msgid "Chinese user: https://mirror.ghproxy.com/"
-msgstr "Người dùng Trung Quốc: https://mirror.ghproxy.com/"
-
 #: src/language/constants.ts:17
 msgid "Cleaning environment variables"
 msgstr "Xoá các biến môi trường"
@@ -347,7 +343,7 @@ msgstr "Tuỳ chỉnh"
 msgid "Dashboard"
 msgstr "Bảng điều khiển"
 
-#: src/views/other/Install.vue:124
+#: src/views/other/Install.vue:123
 msgid "Database (Optional, default: database)"
 msgstr "Tên cơ sở dữ liệu (Tuỳ chọn, Mặc định là: database)"
 
@@ -516,7 +512,7 @@ msgstr ""
 msgid "Domain Config Created Successfully"
 msgstr "Tên miền đã được tạo"
 
-#: src/views/certificate/CertificateEditor.vue:111
+#: src/views/certificate/CertificateEditor.vue:114
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
 "Danh sách tên miền rỗng, hãy thử mở lại chức năng Tạo chứng chỉ tự động cho "
@@ -582,7 +578,7 @@ msgstr "Sửa trang web"
 msgid "Edit Stream"
 msgstr "Sửa trang web"
 
-#: src/views/other/Install.vue:93
+#: src/views/other/Install.vue:92
 msgid "Email (*)"
 msgstr "Email (*)"
 
@@ -708,6 +704,12 @@ msgstr "Tệp tin"
 msgid "File exists"
 msgstr "Tệp tin đã tồn tại"
 
+#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:27
+#, fuzzy
+msgid "File not found"
+msgstr "Không tìm thấy tệp tin"
+
 #: src/views/other/Error.vue:14
 msgid "File Not Found"
 msgstr "Không tìm thấy tệp tin"
@@ -720,6 +722,11 @@ msgstr "Lọc"
 msgid "Finished"
 msgstr "Đã hoàn thành"
 
+#: src/views/preference/BasicSettings.vue:43
+#, fuzzy
+msgid "For Chinese user: https://mirror.ghproxy.com/"
+msgstr "Người dùng Trung Quốc: https://mirror.ghproxy.com/"
+
 #: src/views/config/ConfigEdit.vue:92
 msgid "Format Code"
 msgstr "Định dạng code"
@@ -756,23 +763,23 @@ msgstr "Nhận lỗi thông tin phát hành"
 msgid "Getting the certificate, please wait..."
 msgstr "Đang lấy chứng chỉ, vui lòng đợi..."
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/BasicSettings.vue:35
 msgid "Github Proxy"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:25
+#: src/views/preference/OpenAISettings.vue:26
 msgid "GPT-3.5-Turbo"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:19
+#: src/views/preference/OpenAISettings.vue:20
 msgid "GPT-4"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:22
+#: src/views/preference/OpenAISettings.vue:23
 msgid "GPT-4-32K"
 msgstr ""
 
-#: src/views/preference/OpenAISettings.vue:16
+#: src/views/preference/OpenAISettings.vue:17
 msgid "GPT-4-Turbo"
 msgstr ""
 
@@ -780,15 +787,15 @@ msgstr ""
 msgid "Home"
 msgstr "Trang chủ"
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/BasicSettings.vue:31
 msgid "HTTP Challenge Port"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:12
+#: src/views/preference/BasicSettings.vue:13
 msgid "HTTP Host"
 msgstr ""
 
-#: src/views/preference/BasicSettings.vue:15
+#: src/views/preference/BasicSettings.vue:16
 msgid "HTTP Port"
 msgstr ""
 
@@ -801,7 +808,7 @@ msgstr ""
 msgid "Import"
 msgstr "Xuất"
 
-#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Import Certificate"
 msgstr "Chứng chỉ"
@@ -818,7 +825,7 @@ msgstr "Không thể khởi tạo trình nâng cấp"
 msgid "Initialing core upgrader"
 msgstr "Đang khởi tạo trình nâng cấp"
 
-#: src/routes/index.ts:237 src/views/other/Install.vue:139
+#: src/routes/index.ts:237 src/views/other/Install.vue:138
 msgid "Install"
 msgstr "Cài đặt"
 
@@ -846,7 +853,7 @@ msgstr "Thêm chứng chỉ SSL"
 msgid "Issued certificate successfully"
 msgstr "Cấp chứng chỉ thành công"
 
-#: src/views/preference/BasicSettings.vue:21
+#: src/views/preference/BasicSettings.vue:22
 msgid "Jwt Secret"
 msgstr ""
 
@@ -858,12 +865,12 @@ msgstr "Kiểm tra lần cuối lúc"
 msgid "Leave blank for no change"
 msgstr "Bỏ trống nếu không thay đổi"
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:39
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr "Bỏ trống để sử dụng địa chỉ mặc định: https://api.openai.com/"
 
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:185
+#: src/views/certificate/CertificateEditor.vue:203
+#: src/views/certificate/CertificateEditor.vue:216
 #, fuzzy
 msgid "Leave blank will not change anything"
 msgstr "Bỏ trống nếu không thay đổi"
@@ -896,7 +903,7 @@ msgstr "Location"
 msgid "Locations"
 msgstr "Locations"
 
-#: src/views/certificate/CertificateEditor.vue:195
+#: src/views/certificate/CertificateEditor.vue:226
 #, fuzzy
 msgid "Log"
 msgstr "Log"
@@ -958,7 +965,7 @@ msgstr "Memory và Storage"
 msgid "Modify"
 msgstr "Sửa"
 
-#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "Sửa chứng chỉ"
@@ -973,7 +980,7 @@ msgid "Multi-line Directive"
 msgstr "Single Directive"
 
 #: src/views/certificate/Certificate.vue:24
-#: src/views/certificate/CertificateEditor.vue:145
+#: src/views/certificate/CertificateEditor.vue:149
 #: src/views/certificate/DNSCredential.vue:13 src/views/config/config.ts:9
 #: src/views/domain/cert/ChangeCert.vue:21
 #: src/views/domain/components/RightSettings.vue:84
@@ -1013,11 +1020,11 @@ msgstr "Đã có phiên bản mới"
 msgid "Next"
 msgstr "Tiếp theo"
 
-#: src/views/preference/Preference.vue:96
+#: src/views/preference/Preference.vue:102
 msgid "Nginx"
 msgstr ""
 
-#: src/views/preference/NginxSettings.vue:13
+#: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Access Log Path"
 msgstr "Vị trí lưu log truy cập (Access log) của Nginx"
 
@@ -1030,7 +1037,7 @@ msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
 msgid "Nginx Control"
 msgstr ""
 
-#: src/views/preference/NginxSettings.vue:16
+#: src/views/preference/NginxSettings.vue:24
 msgid "Nginx Error Log Path"
 msgstr "Vị trí lưu log lỗi (Error log) của Nginx"
 
@@ -1059,7 +1066,7 @@ msgstr "Restart Nginx thành công"
 msgid "No"
 msgstr "Không"
 
-#: src/views/preference/BasicSettings.vue:24
+#: src/views/preference/BasicSettings.vue:25
 msgid "Node Secret"
 msgstr ""
 
@@ -1136,7 +1143,7 @@ msgstr "Sau khi quá trình xác minh hoàn tất, bản ghi sẽ bị xóa."
 msgid "Online"
 msgstr "Trực tuyến"
 
-#: src/views/preference/Preference.vue:102
+#: src/views/preference/Preference.vue:108
 msgid "OpenAI"
 msgstr ""
 
@@ -1167,7 +1174,7 @@ msgstr "Tham số"
 msgid "Password"
 msgstr "Mật khẩu"
 
-#: src/views/other/Install.vue:113
+#: src/views/other/Install.vue:112
 msgid "Password (*)"
 msgstr "Mật khẩu (*)"
 
@@ -1234,7 +1241,7 @@ msgstr ""
 msgid "Pre-release"
 msgstr ""
 
-#: src/routes/index.ts:210 src/views/preference/Preference.vue:85
+#: src/routes/index.ts:210 src/views/preference/Preference.vue:91
 msgid "Preference"
 msgstr "Cài đặt"
 
@@ -1347,7 +1354,7 @@ msgstr "Khởi động lại"
 msgid "Restarting"
 msgstr "Đang khởi động lại"
 
-#: src/views/preference/BasicSettings.vue:18
+#: src/views/preference/BasicSettings.vue:19
 #, fuzzy
 msgid "Run Mode"
 msgstr "Run Mode"
@@ -1357,10 +1364,10 @@ msgid "Running"
 msgstr "Running"
 
 #: src/components/ChatGPT/ChatGPT.vue:259
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:245
 #: src/views/config/ConfigEdit.vue:98 src/views/domain/DomainEdit.vue:263
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:121
-#: src/views/preference/Preference.vue:113 src/views/stream/StreamEdit.vue:253
+#: src/views/preference/Preference.vue:119 src/views/stream/StreamEdit.vue:253
 msgid "Save"
 msgstr "Lưu"
 
@@ -1374,8 +1381,8 @@ msgid "Save error %{msg}"
 msgstr "Đã xảy ra lỗi khi lưu %{msg}"
 
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
-#: src/views/certificate/CertificateEditor.vue:47
-#: src/views/preference/Preference.vue:58
+#: src/views/certificate/CertificateEditor.vue:48
+#: src/views/preference/Preference.vue:61
 #, fuzzy
 msgid "Save successfully"
 msgstr "Lưu thành công"
@@ -1408,7 +1415,7 @@ msgstr "Gửi"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:45
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:157
 #: src/views/config/ConfigEdit.vue:42 src/views/domain/DomainList.vue:84
-#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:60
+#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:65
 #: src/views/stream/StreamList.vue:116 src/views/stream/StreamList.vue:84
 #: src/views/system/Upgrade.vue:45
 msgid "Server error"
@@ -1453,21 +1460,21 @@ msgstr "Logs"
 msgid "Sites List"
 msgstr "Danh sách Website"
 
-#: src/views/certificate/CertificateEditor.vue:172
+#: src/views/certificate/CertificateEditor.vue:194
 msgid "SSL Certificate Content"
 msgstr ""
 
-#: src/views/certificate/CertificateEditor.vue:180
+#: src/views/certificate/CertificateEditor.vue:207
 msgid "SSL Certificate Key Content"
 msgstr ""
 
 #: src/views/certificate/Certificate.vue:73
-#: src/views/certificate/CertificateEditor.vue:163
+#: src/views/certificate/CertificateEditor.vue:179
 msgid "SSL Certificate Key Path"
 msgstr ""
 
 #: src/views/certificate/Certificate.vue:65
-#: src/views/certificate/CertificateEditor.vue:154
+#: src/views/certificate/CertificateEditor.vue:164
 msgid "SSL Certificate Path"
 msgstr ""
 
@@ -1532,7 +1539,7 @@ msgstr "Mục tiêu"
 msgid "Terminal"
 msgstr "Terminal"
 
-#: src/views/preference/BasicSettings.vue:27
+#: src/views/preference/BasicSettings.vue:28
 msgid "Terminal Start Command"
 msgstr ""
 
@@ -1549,6 +1556,22 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "Tên tệp không thể chứa các ký tự sau: %{c}"
 
+#: src/views/certificate/CertificateEditor.vue:197
+msgid "The input is not a SSL Certificate"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:210
+msgid "The input is not a SSL Certificate Key"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:183
+msgid "The path exists, but the file is not a private key"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:168
+msgid "The path exists, but the file is not a public key"
+msgstr ""
+
 #: src/views/domain/cert/components/AutoCertStepOne.vue:45
 #, fuzzy
 msgid ""
@@ -1557,18 +1580,31 @@ msgid ""
 msgstr ""
 "Lưu ý: server_name trong cấu hình hiện tại phải là tên miền bạn muốn ký SSL."
 
+#: src/views/preference/BasicSettings.vue:38
+#: src/views/preference/BasicSettings.vue:50
+#: src/views/preference/OpenAISettings.vue:34
+#: src/views/preference/OpenAISettings.vue:46
+msgid "The url is not valid"
+msgstr ""
+
 #: src/language/constants.ts:6
 msgid "The username or password is incorrect"
 msgstr "Tên người dùng hoặc mật khẩu không chính xác"
 
-#: src/views/certificate/CertificateEditor.vue:101
+#: src/views/certificate/CertificateEditor.vue:104
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "Mục Chứng chỉ tự động này không hợp lệ, vui lòng xóa nó"
 
-#: src/views/certificate/CertificateEditor.vue:91
+#: src/views/certificate/CertificateEditor.vue:94
 msgid "This certificate is managed by Nginx UI"
 msgstr "Chứng chỉ này được quản lý bởi Nginx UI"
 
+#: src/views/certificate/CertificateEditor.vue:152
+#: src/views/certificate/CertificateEditor.vue:166
+#: src/views/certificate/CertificateEditor.vue:181
+msgid "This field is required"
+msgstr ""
+
 #: src/components/StdDesign/StdDataEntry/StdFormItem.vue:31
 msgid "This field should not be empty"
 msgstr "Trường này không được để trống"
@@ -1589,6 +1625,10 @@ msgstr ""
 "quyền đến chương trình phụ trợ và chúng tôi cần lưu tệp này và tải lại "
 "Nginx. Bạn có chắc chắn muốn Tiếp tục?"
 
+#: src/views/preference/OpenAISettings.vue:58
+msgid "Token is not valid"
+msgstr ""
+
 #: src/views/certificate/Certificate.vue:41 src/views/config/config.ts:14
 #: src/views/notification/Notification.vue:15
 msgid "Type"
@@ -1643,7 +1683,7 @@ msgstr "Người dùng"
 msgid "Username"
 msgstr "Username"
 
-#: src/views/other/Install.vue:103
+#: src/views/other/Install.vue:102
 msgid "Username (*)"
 msgstr "Username (*)"
 

BIN
app/src/language/zh_CN/app.mo


+ 92 - 57
app/src/language/zh_CN/app.po

@@ -11,7 +11,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "Generated-By: easygettext\n"
-"X-Generator: Poedit 3.4.1\n"
+"X-Generator: Poedit 3.4.2\n"
 
 #: src/routes/index.ts:225
 msgid "About"
@@ -67,15 +67,15 @@ msgstr "额外选项"
 msgid "Advance Mode"
 msgstr "高级模式"
 
-#: src/views/preference/OpenAISettings.vue:29
+#: src/views/preference/OpenAISettings.vue:31
 msgid "API Base Url"
 msgstr "API 地址"
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:43
 msgid "API Proxy"
 msgstr "API 代理"
 
-#: src/views/preference/OpenAISettings.vue:41
+#: src/views/preference/OpenAISettings.vue:55
 msgid "API Token"
 msgstr "API Token"
 
@@ -134,7 +134,7 @@ msgstr "成功关闭 %{name} 自动续签"
 msgid "Auto-renewal enabled for %{name}"
 msgstr "成功启用 %{name} 自动续签"
 
-#: src/views/certificate/CertificateEditor.vue:207
+#: src/views/certificate/CertificateEditor.vue:238
 #: src/views/config/Config.vue:75 src/views/config/ConfigEdit.vue:89
 #: src/views/domain/DomainEdit.vue:256 src/views/nginx_log/NginxLog.vue:170
 #: src/views/stream/StreamEdit.vue:246
@@ -151,7 +151,7 @@ msgstr "基本信息"
 
 #: src/views/config/ConfigEdit.vue:117
 #: src/views/domain/components/RightSettings.vue:76
-#: src/views/preference/Preference.vue:90
+#: src/views/preference/Preference.vue:96
 #: src/views/stream/components/RightSettings.vue:76
 msgid "Basic"
 msgstr "基本"
@@ -169,7 +169,7 @@ msgstr "批量修改"
 msgid "Build with"
 msgstr "构建基于"
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/BasicSettings.vue:47
 msgid "CADir"
 msgstr "CADir"
 
@@ -196,7 +196,7 @@ msgstr "此证书已过期"
 msgid "Certificate is valid"
 msgstr "此证书有效"
 
-#: src/views/certificate/CertificateEditor.vue:127
+#: src/views/certificate/CertificateEditor.vue:130
 #: src/views/domain/cert/Cert.vue:35
 msgid "Certificate Status"
 msgstr "证书状态"
@@ -222,7 +222,7 @@ msgstr "更改证书"
 msgid "Channel"
 msgstr "通道"
 
-#: src/views/preference/OpenAISettings.vue:13
+#: src/views/preference/OpenAISettings.vue:14
 msgid "ChatGPT Model"
 msgstr "ChatGPT 模型"
 
@@ -230,10 +230,6 @@ msgstr "ChatGPT 模型"
 msgid "Check again"
 msgstr "重新检查"
 
-#: src/views/preference/BasicSettings.vue:36
-msgid "Chinese user: https://mirror.ghproxy.com/"
-msgstr "中国用户:https://mirror.ghproxy.com/"
-
 #: src/language/constants.ts:17
 msgid "Cleaning environment variables"
 msgstr "正在清理环境变量"
@@ -335,7 +331,7 @@ msgstr "自定义"
 msgid "Dashboard"
 msgstr "仪表盘"
 
-#: src/views/other/Install.vue:124
+#: src/views/other/Install.vue:123
 msgid "Database (Optional, default: database)"
 msgstr "数据库 (可选,默认: database)"
 
@@ -490,7 +486,7 @@ msgstr "域名"
 msgid "Domain Config Created Successfully"
 msgstr "域名配置文件创建成功"
 
-#: src/views/certificate/CertificateEditor.vue:111
+#: src/views/certificate/CertificateEditor.vue:114
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "域名列表为空,请尝试为 %{config} 重新打开证书自动续期。"
 
@@ -549,7 +545,7 @@ msgstr "编辑站点"
 msgid "Edit Stream"
 msgstr "编辑 Stream"
 
-#: src/views/other/Install.vue:93
+#: src/views/other/Install.vue:92
 msgid "Email (*)"
 msgstr "邮箱 (*)"
 
@@ -671,6 +667,11 @@ msgstr "文件"
 msgid "File exists"
 msgstr "文件已存在"
 
+#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:27
+msgid "File not found"
+msgstr "文件未找到"
+
 #: src/views/other/Error.vue:14
 msgid "File Not Found"
 msgstr "未找到文件"
@@ -683,6 +684,10 @@ msgstr "过滤"
 msgid "Finished"
 msgstr "完成"
 
+#: src/views/preference/BasicSettings.vue:43
+msgid "For Chinese user: https://mirror.ghproxy.com/"
+msgstr "中国用户:https://mirror.ghproxy.com/"
+
 #: src/views/config/ConfigEdit.vue:92
 msgid "Format Code"
 msgstr "代码格式化"
@@ -715,23 +720,23 @@ msgstr "获取发布信息错误"
 msgid "Getting the certificate, please wait..."
 msgstr "正在获取证书,请稍等..."
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/BasicSettings.vue:35
 msgid "Github Proxy"
 msgstr "Github代理"
 
-#: src/views/preference/OpenAISettings.vue:25
+#: src/views/preference/OpenAISettings.vue:26
 msgid "GPT-3.5-Turbo"
 msgstr "GPT-3.5-Turbo"
 
-#: src/views/preference/OpenAISettings.vue:19
+#: src/views/preference/OpenAISettings.vue:20
 msgid "GPT-4"
 msgstr "GPT-4"
 
-#: src/views/preference/OpenAISettings.vue:22
+#: src/views/preference/OpenAISettings.vue:23
 msgid "GPT-4-32K"
 msgstr "GPT-4-32K"
 
-#: src/views/preference/OpenAISettings.vue:16
+#: src/views/preference/OpenAISettings.vue:17
 msgid "GPT-4-Turbo"
 msgstr "GPT-4-Turbo"
 
@@ -739,15 +744,15 @@ msgstr "GPT-4-Turbo"
 msgid "Home"
 msgstr "首页"
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/BasicSettings.vue:31
 msgid "HTTP Challenge Port"
 msgstr "HTTP Challenge 监听端口"
 
-#: src/views/preference/BasicSettings.vue:12
+#: src/views/preference/BasicSettings.vue:13
 msgid "HTTP Host"
 msgstr "HTTP 监听主机"
 
-#: src/views/preference/BasicSettings.vue:15
+#: src/views/preference/BasicSettings.vue:16
 msgid "HTTP Port"
 msgstr "HTTP 监听端口"
 
@@ -759,7 +764,7 @@ msgstr "HTTP01"
 msgid "Import"
 msgstr "导入"
 
-#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:87
 msgid "Import Certificate"
 msgstr "导入证书"
 
@@ -775,7 +780,7 @@ msgstr "初始化核心升级程序错误"
 msgid "Initialing core upgrader"
 msgstr "初始化核心升级器"
 
-#: src/routes/index.ts:237 src/views/other/Install.vue:139
+#: src/routes/index.ts:237 src/views/other/Install.vue:138
 msgid "Install"
 msgstr "安装"
 
@@ -799,7 +804,7 @@ msgstr "颁发通配符证书"
 msgid "Issued certificate successfully"
 msgstr "证书申请成功"
 
-#: src/views/preference/BasicSettings.vue:21
+#: src/views/preference/BasicSettings.vue:22
 msgid "Jwt Secret"
 msgstr "Jwt 密钥"
 
@@ -811,12 +816,12 @@ msgstr "最后检查时间"
 msgid "Leave blank for no change"
 msgstr "留空表示不修改"
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:39
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr "留空为默认:https://api.openai.com/"
 
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:185
+#: src/views/certificate/CertificateEditor.vue:203
+#: src/views/certificate/CertificateEditor.vue:216
 msgid "Leave blank will not change anything"
 msgstr "留空不做任何更改"
 
@@ -845,7 +850,7 @@ msgstr "Location"
 msgid "Locations"
 msgstr "Locations"
 
-#: src/views/certificate/CertificateEditor.vue:195
+#: src/views/certificate/CertificateEditor.vue:226
 msgid "Log"
 msgstr "日志"
 
@@ -903,7 +908,7 @@ msgstr "内存与存储"
 msgid "Modify"
 msgstr "修改"
 
-#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:87
 msgid "Modify Certificate"
 msgstr "修改证书"
 
@@ -916,7 +921,7 @@ msgid "Multi-line Directive"
 msgstr "多行指令"
 
 #: src/views/certificate/Certificate.vue:24
-#: src/views/certificate/CertificateEditor.vue:145
+#: src/views/certificate/CertificateEditor.vue:149
 #: src/views/certificate/DNSCredential.vue:13 src/views/config/config.ts:9
 #: src/views/domain/cert/ChangeCert.vue:21
 #: src/views/domain/components/RightSettings.vue:84
@@ -956,11 +961,11 @@ msgstr "新版本发布"
 msgid "Next"
 msgstr "下一步"
 
-#: src/views/preference/Preference.vue:96
+#: src/views/preference/Preference.vue:102
 msgid "Nginx"
 msgstr "Nginx"
 
-#: src/views/preference/NginxSettings.vue:13
+#: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Access Log Path"
 msgstr "Nginx 访问日志路径"
 
@@ -972,7 +977,7 @@ msgstr "Nginx 配置解析错误"
 msgid "Nginx Control"
 msgstr "控制 Nginx"
 
-#: src/views/preference/NginxSettings.vue:16
+#: src/views/preference/NginxSettings.vue:24
 msgid "Nginx Error Log Path"
 msgstr "Nginx 错误日志路径"
 
@@ -999,7 +1004,7 @@ msgstr "Nginx 重启成功"
 msgid "No"
 msgstr "取消"
 
-#: src/views/preference/BasicSettings.vue:24
+#: src/views/preference/BasicSettings.vue:25
 msgid "Node Secret"
 msgstr "节点密钥"
 
@@ -1073,7 +1078,7 @@ msgstr "一旦验证完成,这些记录将被删除。"
 msgid "Online"
 msgstr "在线"
 
-#: src/views/preference/Preference.vue:102
+#: src/views/preference/Preference.vue:108
 msgid "OpenAI"
 msgstr "OpenAI"
 
@@ -1103,7 +1108,7 @@ msgstr "参数"
 msgid "Password"
 msgstr "密码"
 
-#: src/views/other/Install.vue:113
+#: src/views/other/Install.vue:112
 msgid "Password (*)"
 msgstr "密码 (*)"
 
@@ -1168,7 +1173,7 @@ msgstr "请至少选择一个节点!"
 msgid "Pre-release"
 msgstr "预发布"
 
-#: src/routes/index.ts:210 src/views/preference/Preference.vue:85
+#: src/routes/index.ts:210 src/views/preference/Preference.vue:91
 msgid "Preference"
 msgstr "偏好设置"
 
@@ -1273,7 +1278,7 @@ msgstr "重启"
 msgid "Restarting"
 msgstr "重启中"
 
-#: src/views/preference/BasicSettings.vue:18
+#: src/views/preference/BasicSettings.vue:19
 msgid "Run Mode"
 msgstr "运行模式"
 
@@ -1282,10 +1287,10 @@ msgid "Running"
 msgstr "运行中"
 
 #: src/components/ChatGPT/ChatGPT.vue:259
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:245
 #: src/views/config/ConfigEdit.vue:98 src/views/domain/DomainEdit.vue:263
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:121
-#: src/views/preference/Preference.vue:113 src/views/stream/StreamEdit.vue:253
+#: src/views/preference/Preference.vue:119 src/views/stream/StreamEdit.vue:253
 msgid "Save"
 msgstr "保存"
 
@@ -1299,8 +1304,8 @@ msgid "Save error %{msg}"
 msgstr "保存错误 %{msg}"
 
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
-#: src/views/certificate/CertificateEditor.vue:47
-#: src/views/preference/Preference.vue:58
+#: src/views/certificate/CertificateEditor.vue:48
+#: src/views/preference/Preference.vue:61
 msgid "Save successfully"
 msgstr "保存成功"
 
@@ -1331,7 +1336,7 @@ msgstr "上传"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:45
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:157
 #: src/views/config/ConfigEdit.vue:42 src/views/domain/DomainList.vue:84
-#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:60
+#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:65
 #: src/views/stream/StreamList.vue:116 src/views/stream/StreamList.vue:84
 #: src/views/system/Upgrade.vue:45
 msgid "Server error"
@@ -1374,21 +1379,21 @@ msgstr "站点列表"
 msgid "Sites List"
 msgstr "站点列表"
 
-#: src/views/certificate/CertificateEditor.vue:172
+#: src/views/certificate/CertificateEditor.vue:194
 msgid "SSL Certificate Content"
 msgstr "SSL 证书内容"
 
-#: src/views/certificate/CertificateEditor.vue:180
+#: src/views/certificate/CertificateEditor.vue:207
 msgid "SSL Certificate Key Content"
 msgstr "SSL 证书密钥内容"
 
 #: src/views/certificate/Certificate.vue:73
-#: src/views/certificate/CertificateEditor.vue:163
+#: src/views/certificate/CertificateEditor.vue:179
 msgid "SSL Certificate Key Path"
 msgstr "SSL证书密钥路径"
 
 #: src/views/certificate/Certificate.vue:65
-#: src/views/certificate/CertificateEditor.vue:154
+#: src/views/certificate/CertificateEditor.vue:164
 msgid "SSL Certificate Path"
 msgstr "SSL证书路径"
 
@@ -1450,7 +1455,7 @@ msgstr "目标"
 msgid "Terminal"
 msgstr "终端"
 
-#: src/views/preference/BasicSettings.vue:27
+#: src/views/preference/BasicSettings.vue:28
 msgid "Terminal Start Command"
 msgstr "终端启动命令"
 
@@ -1466,24 +1471,53 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "文件名不能包含以下字符: %{c}"
 
+#: src/views/certificate/CertificateEditor.vue:197
+msgid "The input is not a SSL Certificate"
+msgstr "输入的内容不是 SSL 证书"
+
+#: src/views/certificate/CertificateEditor.vue:210
+msgid "The input is not a SSL Certificate Key"
+msgstr "输入的内容不是 SSL 证书密钥"
+
+#: src/views/certificate/CertificateEditor.vue:183
+msgid "The path exists, but the file is not a private key"
+msgstr "路径存在,但文件不是私钥"
+
+#: src/views/certificate/CertificateEditor.vue:168
+msgid "The path exists, but the file is not a public key"
+msgstr "路径存在,但文件不是公钥"
+
 #: src/views/domain/cert/components/AutoCertStepOne.vue:45
 msgid ""
 "The server_name in the current configuration must be the domain name you "
 "need to get the certificate, supportmultiple domains."
 msgstr "当前配置中的 server_name 必须是获取证书所需的域名,支持多个域名。"
 
+#: src/views/preference/BasicSettings.vue:38
+#: src/views/preference/BasicSettings.vue:50
+#: src/views/preference/OpenAISettings.vue:34
+#: src/views/preference/OpenAISettings.vue:46
+msgid "The url is not valid"
+msgstr "URL 无效"
+
 #: src/language/constants.ts:6
 msgid "The username or password is incorrect"
 msgstr "用户名或密码错误"
 
-#: src/views/certificate/CertificateEditor.vue:101
+#: src/views/certificate/CertificateEditor.vue:104
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "这个证书自动续期项目是无效的,请删除。"
 
-#: src/views/certificate/CertificateEditor.vue:91
+#: src/views/certificate/CertificateEditor.vue:94
 msgid "This certificate is managed by Nginx UI"
 msgstr "该证书由 Nginx UI 托管"
 
+#: src/views/certificate/CertificateEditor.vue:152
+#: src/views/certificate/CertificateEditor.vue:166
+#: src/views/certificate/CertificateEditor.vue:181
+msgid "This field is required"
+msgstr "此字段必填"
+
 #: src/components/StdDesign/StdDataEntry/StdFormItem.vue:31
 msgid "This field should not be empty"
 msgstr "该字段不能为空"
@@ -1502,6 +1536,10 @@ msgstr ""
 "为了确保认证自动更新能够正常工作,我们需要添加一个能够代理从权威机构到后端的"
 "请求的 Location,并且我们需要保存这个文件并重新加载Nginx。你确定要继续吗?"
 
+#: src/views/preference/OpenAISettings.vue:58
+msgid "Token is not valid"
+msgstr "Token 无效"
+
 #: src/views/certificate/Certificate.vue:41 src/views/config/config.ts:14
 #: src/views/notification/Notification.vue:15
 msgid "Type"
@@ -1553,7 +1591,7 @@ msgstr "用户"
 msgid "Username"
 msgstr "用户名"
 
-#: src/views/other/Install.vue:103
+#: src/views/other/Install.vue:102
 msgid "Username (*)"
 msgstr "用户名 (*)"
 
@@ -1792,9 +1830,6 @@ msgstr "你可以在这个页面检查Nginx UI的升级。"
 #~ "只有在您的配置文件中有相应字段时,下列的配置才能生效。配置文件名称创建后不"
 #~ "可修改。"
 
-#~ msgid "This feature is not available in demo."
-#~ msgstr "该功能在 Demo 中不可用。"
-
 #~ msgid "This operation will lose the custom configuration."
 #~ msgstr "该操作将会丢失自定义配置。"
 

+ 95 - 56
app/src/language/zh_TW/app.po

@@ -70,15 +70,15 @@ msgstr "其他設定"
 msgid "Advance Mode"
 msgstr "進階模式"
 
-#: src/views/preference/OpenAISettings.vue:29
+#: src/views/preference/OpenAISettings.vue:31
 msgid "API Base Url"
 msgstr "API 基礎網址"
 
-#: src/views/preference/OpenAISettings.vue:35
+#: src/views/preference/OpenAISettings.vue:43
 msgid "API Proxy"
 msgstr "API 代理"
 
-#: src/views/preference/OpenAISettings.vue:41
+#: src/views/preference/OpenAISettings.vue:55
 msgid "API Token"
 msgstr "API Token"
 
@@ -138,7 +138,7 @@ msgstr "已關閉 %{name} 的自動續簽"
 msgid "Auto-renewal enabled for %{name}"
 msgstr "已啟用 %{name} 的自動續簽"
 
-#: src/views/certificate/CertificateEditor.vue:207
+#: src/views/certificate/CertificateEditor.vue:238
 #: src/views/config/Config.vue:75 src/views/config/ConfigEdit.vue:89
 #: src/views/domain/DomainEdit.vue:256 src/views/nginx_log/NginxLog.vue:170
 #: src/views/stream/StreamEdit.vue:246
@@ -155,7 +155,7 @@ msgstr "基本資訊"
 
 #: src/views/config/ConfigEdit.vue:117
 #: src/views/domain/components/RightSettings.vue:76
-#: src/views/preference/Preference.vue:90
+#: src/views/preference/Preference.vue:96
 #: src/views/stream/components/RightSettings.vue:76
 msgid "Basic"
 msgstr "基本"
@@ -173,7 +173,7 @@ msgstr "批次修改"
 msgid "Build with"
 msgstr "構建基於"
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/BasicSettings.vue:47
 msgid "CADir"
 msgstr "CADir"
 
@@ -200,7 +200,7 @@ msgstr "此憑證已過期"
 msgid "Certificate is valid"
 msgstr "此憑證有效"
 
-#: src/views/certificate/CertificateEditor.vue:127
+#: src/views/certificate/CertificateEditor.vue:130
 #: src/views/domain/cert/Cert.vue:35
 msgid "Certificate Status"
 msgstr "憑證狀態"
@@ -228,7 +228,7 @@ msgstr "更換憑證"
 msgid "Channel"
 msgstr "通道"
 
-#: src/views/preference/OpenAISettings.vue:13
+#: src/views/preference/OpenAISettings.vue:14
 msgid "ChatGPT Model"
 msgstr "ChatGPT 模型"
 
@@ -236,10 +236,6 @@ msgstr "ChatGPT 模型"
 msgid "Check again"
 msgstr "再次檢查"
 
-#: src/views/preference/BasicSettings.vue:36
-msgid "Chinese user: https://mirror.ghproxy.com/"
-msgstr "中國使用者:https://mirror.ghproxy.com/"
-
 #: src/language/constants.ts:17
 msgid "Cleaning environment variables"
 msgstr "清理環境變數"
@@ -343,7 +339,7 @@ msgstr "自訂"
 msgid "Dashboard"
 msgstr "儀表板"
 
-#: src/views/other/Install.vue:124
+#: src/views/other/Install.vue:123
 msgid "Database (Optional, default: database)"
 msgstr "資料庫 (可選,預設: database)"
 
@@ -504,7 +500,7 @@ msgstr "網域"
 msgid "Domain Config Created Successfully"
 msgstr "網域設定檔成功建立"
 
-#: src/views/certificate/CertificateEditor.vue:111
+#: src/views/certificate/CertificateEditor.vue:114
 #, fuzzy
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "網域列表為空,請嘗試重新開啟 %{config} 的自動憑證"
@@ -565,7 +561,7 @@ msgstr "編輯網站"
 msgid "Edit Stream"
 msgstr "編輯網站"
 
-#: src/views/other/Install.vue:93
+#: src/views/other/Install.vue:92
 msgid "Email (*)"
 msgstr "電子郵件 (*)"
 
@@ -688,6 +684,12 @@ msgstr "檔案"
 msgid "File exists"
 msgstr "檔案已存在"
 
+#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:27
+#, fuzzy
+msgid "File not found"
+msgstr "找不到檔案"
+
 #: src/views/other/Error.vue:14
 msgid "File Not Found"
 msgstr "找不到檔案"
@@ -700,6 +702,11 @@ msgstr "篩選"
 msgid "Finished"
 msgstr "完成"
 
+#: src/views/preference/BasicSettings.vue:43
+#, fuzzy
+msgid "For Chinese user: https://mirror.ghproxy.com/"
+msgstr "中國使用者:https://mirror.ghproxy.com/"
+
 #: src/views/config/ConfigEdit.vue:92
 msgid "Format Code"
 msgstr "格式化程式碼"
@@ -733,23 +740,23 @@ msgstr "取得發布資訊錯誤"
 msgid "Getting the certificate, please wait..."
 msgstr "正在取得憑證,請稍候..."
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/BasicSettings.vue:35
 msgid "Github Proxy"
 msgstr "Github 代理"
 
-#: src/views/preference/OpenAISettings.vue:25
+#: src/views/preference/OpenAISettings.vue:26
 msgid "GPT-3.5-Turbo"
 msgstr "GPT-3.5-Turbo"
 
-#: src/views/preference/OpenAISettings.vue:19
+#: src/views/preference/OpenAISettings.vue:20
 msgid "GPT-4"
 msgstr "GPT-4"
 
-#: src/views/preference/OpenAISettings.vue:22
+#: src/views/preference/OpenAISettings.vue:23
 msgid "GPT-4-32K"
 msgstr "GPT-4-32K"
 
-#: src/views/preference/OpenAISettings.vue:16
+#: src/views/preference/OpenAISettings.vue:17
 msgid "GPT-4-Turbo"
 msgstr "GPT-4-Turbo"
 
@@ -757,15 +764,15 @@ msgstr "GPT-4-Turbo"
 msgid "Home"
 msgstr "首頁"
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/BasicSettings.vue:31
 msgid "HTTP Challenge Port"
 msgstr "HTTP 挑戰埠"
 
-#: src/views/preference/BasicSettings.vue:12
+#: src/views/preference/BasicSettings.vue:13
 msgid "HTTP Host"
 msgstr "HTTP 監聽主機"
 
-#: src/views/preference/BasicSettings.vue:15
+#: src/views/preference/BasicSettings.vue:16
 msgid "HTTP Port"
 msgstr "HTTP 監聽埠"
 
@@ -778,7 +785,7 @@ msgstr "HTTP01"
 msgid "Import"
 msgstr "匯出"
 
-#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:140 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Import Certificate"
 msgstr "憑證狀態"
@@ -795,7 +802,7 @@ msgstr "初始化核心升級程式錯誤"
 msgid "Initialing core upgrader"
 msgstr "正在初始化核心升級程式"
 
-#: src/routes/index.ts:237 src/views/other/Install.vue:139
+#: src/routes/index.ts:237 src/views/other/Install.vue:138
 msgid "Install"
 msgstr "安裝"
 
@@ -821,7 +828,7 @@ msgstr "憑證狀態"
 msgid "Issued certificate successfully"
 msgstr "成功頒發憑證"
 
-#: src/views/preference/BasicSettings.vue:21
+#: src/views/preference/BasicSettings.vue:22
 msgid "Jwt Secret"
 msgstr "Jwt Secret"
 
@@ -833,12 +840,12 @@ msgstr "上次檢查時間"
 msgid "Leave blank for no change"
 msgstr "留空表示不修改"
 
-#: src/views/preference/OpenAISettings.vue:32
+#: src/views/preference/OpenAISettings.vue:39
 msgid "Leave blank for the default: https://api.openai.com/"
 msgstr "預設留空:https://api.openai.com/"
 
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:185
+#: src/views/certificate/CertificateEditor.vue:203
+#: src/views/certificate/CertificateEditor.vue:216
 #, fuzzy
 msgid "Leave blank will not change anything"
 msgstr "留空表示不修改"
@@ -870,7 +877,7 @@ msgstr "Location"
 msgid "Locations"
 msgstr "Locations"
 
-#: src/views/certificate/CertificateEditor.vue:195
+#: src/views/certificate/CertificateEditor.vue:226
 #, fuzzy
 msgid "Log"
 msgstr "登入"
@@ -930,7 +937,7 @@ msgstr "記憶體與儲存"
 msgid "Modify"
 msgstr "修改"
 
-#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:84
+#: src/routes/index.ts:132 src/views/certificate/CertificateEditor.vue:87
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "憑證狀態"
@@ -944,7 +951,7 @@ msgid "Multi-line Directive"
 msgstr "多行指令"
 
 #: src/views/certificate/Certificate.vue:24
-#: src/views/certificate/CertificateEditor.vue:145
+#: src/views/certificate/CertificateEditor.vue:149
 #: src/views/certificate/DNSCredential.vue:13 src/views/config/config.ts:9
 #: src/views/domain/cert/ChangeCert.vue:21
 #: src/views/domain/components/RightSettings.vue:84
@@ -984,11 +991,11 @@ msgstr "新版本發布"
 msgid "Next"
 msgstr "下一步"
 
-#: src/views/preference/Preference.vue:96
+#: src/views/preference/Preference.vue:102
 msgid "Nginx"
 msgstr "Nginx"
 
-#: src/views/preference/NginxSettings.vue:13
+#: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Access Log Path"
 msgstr "Nginx 存取日誌路徑"
 
@@ -1000,7 +1007,7 @@ msgstr "Nginx 設定解析錯誤"
 msgid "Nginx Control"
 msgstr "Nginx 控制元件"
 
-#: src/views/preference/NginxSettings.vue:16
+#: src/views/preference/NginxSettings.vue:24
 msgid "Nginx Error Log Path"
 msgstr "Nginx 錯誤日誌路徑"
 
@@ -1027,7 +1034,7 @@ msgstr "Nginx 重啟成功"
 msgid "No"
 msgstr "取消"
 
-#: src/views/preference/BasicSettings.vue:24
+#: src/views/preference/BasicSettings.vue:25
 msgid "Node Secret"
 msgstr "Node Secret"
 
@@ -1103,7 +1110,7 @@ msgstr ""
 msgid "Online"
 msgstr "線上"
 
-#: src/views/preference/Preference.vue:102
+#: src/views/preference/Preference.vue:108
 msgid "OpenAI"
 msgstr "OpenAI"
 
@@ -1133,7 +1140,7 @@ msgstr "參數"
 msgid "Password"
 msgstr "密碼"
 
-#: src/views/other/Install.vue:113
+#: src/views/other/Install.vue:112
 msgid "Password (*)"
 msgstr "密碼 (*)"
 
@@ -1199,7 +1206,7 @@ msgstr "請至少選擇一個節點!"
 msgid "Pre-release"
 msgstr "預先發布"
 
-#: src/routes/index.ts:210 src/views/preference/Preference.vue:85
+#: src/routes/index.ts:210 src/views/preference/Preference.vue:91
 msgid "Preference"
 msgstr "偏好設定"
 
@@ -1310,7 +1317,7 @@ msgstr "重新啟動"
 msgid "Restarting"
 msgstr "正在重新啟動"
 
-#: src/views/preference/BasicSettings.vue:18
+#: src/views/preference/BasicSettings.vue:19
 msgid "Run Mode"
 msgstr "執行模式"
 
@@ -1319,10 +1326,10 @@ msgid "Running"
 msgstr "執行中"
 
 #: src/components/ChatGPT/ChatGPT.vue:259
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:245
 #: src/views/config/ConfigEdit.vue:98 src/views/domain/DomainEdit.vue:263
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:121
-#: src/views/preference/Preference.vue:113 src/views/stream/StreamEdit.vue:253
+#: src/views/preference/Preference.vue:119 src/views/stream/StreamEdit.vue:253
 msgid "Save"
 msgstr "儲存"
 
@@ -1336,8 +1343,8 @@ msgid "Save error %{msg}"
 msgstr "儲存錯誤 %{msg}"
 
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
-#: src/views/certificate/CertificateEditor.vue:47
-#: src/views/preference/Preference.vue:58
+#: src/views/certificate/CertificateEditor.vue:48
+#: src/views/preference/Preference.vue:61
 msgid "Save successfully"
 msgstr "儲存成功"
 
@@ -1368,7 +1375,7 @@ msgstr "傳送"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:45
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:157
 #: src/views/config/ConfigEdit.vue:42 src/views/domain/DomainList.vue:84
-#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:60
+#: src/views/other/Install.vue:72 src/views/preference/Preference.vue:65
 #: src/views/stream/StreamList.vue:116 src/views/stream/StreamList.vue:84
 #: src/views/system/Upgrade.vue:45
 msgid "Server error"
@@ -1413,23 +1420,23 @@ msgstr "網站日誌"
 msgid "Sites List"
 msgstr "網站列表"
 
-#: src/views/certificate/CertificateEditor.vue:172
+#: src/views/certificate/CertificateEditor.vue:194
 #, fuzzy
 msgid "SSL Certificate Content"
 msgstr "SSL 認證內容"
 
-#: src/views/certificate/CertificateEditor.vue:180
+#: src/views/certificate/CertificateEditor.vue:207
 #, fuzzy
 msgid "SSL Certificate Key Content"
 msgstr "SSL 憑證金鑰內容"
 
 #: src/views/certificate/Certificate.vue:73
-#: src/views/certificate/CertificateEditor.vue:163
+#: src/views/certificate/CertificateEditor.vue:179
 msgid "SSL Certificate Key Path"
 msgstr "SSL 憑證金鑰路徑"
 
 #: src/views/certificate/Certificate.vue:65
-#: src/views/certificate/CertificateEditor.vue:154
+#: src/views/certificate/CertificateEditor.vue:164
 msgid "SSL Certificate Path"
 msgstr "SSL 憑證路徑"
 
@@ -1493,7 +1500,7 @@ msgstr "目標"
 msgid "Terminal"
 msgstr "終端機"
 
-#: src/views/preference/BasicSettings.vue:27
+#: src/views/preference/BasicSettings.vue:28
 msgid "Terminal Start Command"
 msgstr "終端機啟動指令"
 
@@ -1510,6 +1517,23 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "檔名不能包含以下字元: %{c}"
 
+#: src/views/certificate/CertificateEditor.vue:197
+msgid "The input is not a SSL Certificate"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:210
+#, fuzzy
+msgid "The input is not a SSL Certificate Key"
+msgstr "SSL 憑證金鑰路徑"
+
+#: src/views/certificate/CertificateEditor.vue:183
+msgid "The path exists, but the file is not a private key"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:168
+msgid "The path exists, but the file is not a public key"
+msgstr ""
+
 #: src/views/domain/cert/components/AutoCertStepOne.vue:45
 #, fuzzy
 msgid ""
@@ -1517,19 +1541,33 @@ msgid ""
 "need to get the certificate, supportmultiple domains."
 msgstr "注意:目前設定中的 server_name 必須為需要申請憑證的域名。"
 
+#: src/views/preference/BasicSettings.vue:38
+#: src/views/preference/BasicSettings.vue:50
+#: src/views/preference/OpenAISettings.vue:34
+#: src/views/preference/OpenAISettings.vue:46
+#, fuzzy
+msgid "The url is not valid"
+msgstr "此功能在演示中不可用。"
+
 #: src/language/constants.ts:6
 msgid "The username or password is incorrect"
 msgstr "使用者名稱或密碼不正確"
 
-#: src/views/certificate/CertificateEditor.vue:101
+#: src/views/certificate/CertificateEditor.vue:104
 #, fuzzy
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "此自動憑證項目無效,請將其移除。"
 
-#: src/views/certificate/CertificateEditor.vue:91
+#: src/views/certificate/CertificateEditor.vue:94
 msgid "This certificate is managed by Nginx UI"
 msgstr ""
 
+#: src/views/certificate/CertificateEditor.vue:152
+#: src/views/certificate/CertificateEditor.vue:166
+#: src/views/certificate/CertificateEditor.vue:181
+msgid "This field is required"
+msgstr ""
+
 #: src/components/StdDesign/StdDataEntry/StdFormItem.vue:31
 msgid "This field should not be empty"
 msgstr "此欄位不應為空"
@@ -1548,6 +1586,10 @@ msgstr ""
 "為了確保憑證自動續期能夠正常運作,我們需要新增一個 Location 來代理從授權後端"
 "的請求,我們需要儲存這個檔案並重新載入 Nginx。你確定你要繼續嗎?"
 
+#: src/views/preference/OpenAISettings.vue:58
+msgid "Token is not valid"
+msgstr ""
+
 #: src/views/certificate/Certificate.vue:41 src/views/config/config.ts:14
 #: src/views/notification/Notification.vue:15
 msgid "Type"
@@ -1599,7 +1641,7 @@ msgstr "使用者名稱"
 msgid "Username"
 msgstr "使用者名稱"
 
-#: src/views/other/Install.vue:103
+#: src/views/other/Install.vue:102
 msgid "Username (*)"
 msgstr "使用者名稱 (*)"
 
@@ -1814,9 +1856,6 @@ msgstr "您可以在此頁面檢查 Nginx UI 的升級。"
 #~ "只有在您的設定檔案中有相應欄位時,下列的設定才能生效。設定檔名稱建立後不可"
 #~ "修改。"
 
-#~ msgid "This feature is not available in demo."
-#~ msgstr "此功能在演示中不可用。"
-
 #~ msgid "This operation will lose the custom configuration."
 #~ msgstr "該操作將會遺失自定義設定。"