Преглед на файлове

chore: update translations

Jacky преди 9 месеца
родител
ревизия
e75dce92ad

+ 124 - 45
app/src/language/en/app.po

@@ -17,15 +17,15 @@ msgstr ""
 msgid "2FA Settings"
 msgstr ""
 
-#: src/routes/index.ts:266
+#: src/routes/index.ts:277
 msgid "About"
 msgstr "About"
 
-#: src/routes/index.ts:193 src/views/domain/ngx_conf/LogEntry.vue:76
+#: src/routes/index.ts:204 src/views/domain/ngx_conf/LogEntry.vue:76
 msgid "Access Logs"
 msgstr ""
 
-#: src/routes/index.ts:131 src/views/certificate/ACMEUser.vue:76
+#: src/routes/index.ts:142 src/views/certificate/ACMEUser.vue:76
 #: src/views/certificate/ACMEUserSelector.vue:85
 #, fuzzy
 msgid "ACME User"
@@ -33,8 +33,9 @@ msgstr "Username"
 
 #: src/views/certificate/ACMEUser.vue:59
 #: src/views/certificate/CertificateList/certColumns.tsx:89
-#: src/views/certificate/DNSCredential.vue:33 src/views/config/config.ts:34
-#: src/views/domain/DomainList.vue:47 src/views/environment/envColumns.tsx:131
+#: src/views/certificate/DNSCredential.vue:33
+#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
+#: src/views/environment/envColumns.tsx:131
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
 #: src/views/user/userColumns.tsx:60
@@ -51,6 +52,12 @@ msgstr "Action"
 msgid "Add"
 msgstr ""
 
+#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:128
+#: src/views/config/ConfigEditor.vue:187
+#, fuzzy
+msgid "Add Configuration"
+msgstr "Edit Configuration"
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:95
 msgid "Add Directive Below"
 msgstr "Add Directive Below"
@@ -187,7 +194,7 @@ msgid "Auto-renewal enabled for %{name}"
 msgstr "Auto-renewal enabled for %{name}"
 
 #: src/views/certificate/CertificateEditor.vue:247
-#: src/views/config/Config.vue:71 src/views/config/ConfigEdit.vue:87
+#: src/views/config/Config.vue:143 src/views/config/ConfigEditor.vue:196
 #: src/views/domain/DomainEdit.vue:253 src/views/nginx_log/NginxLog.vue:168
 #: src/views/stream/StreamEdit.vue:245
 msgid "Back"
@@ -218,7 +225,7 @@ msgstr ""
 msgid "Base information"
 msgstr "Base information"
 
-#: src/views/config/ConfigEdit.vue:115
+#: src/views/config/ConfigEditor.vue:224
 #: src/views/domain/components/RightSettings.vue:75
 #: src/views/preference/Preference.vue:110
 #: src/views/stream/components/RightSettings.vue:74
@@ -280,13 +287,13 @@ msgid_plural "Certificates Status"
 msgstr[0] "Certificate Status"
 msgstr[1] "Certificate Status"
 
-#: src/routes/index.ts:122
+#: src/routes/index.ts:133
 #: src/views/certificate/CertificateList/Certificate.vue:13
 #, fuzzy
 msgid "Certificates"
 msgstr "Certificate Status"
 
-#: src/routes/index.ts:139
+#: src/routes/index.ts:150
 #, fuzzy
 msgid "Certificates List"
 msgstr "Certificate is valid"
@@ -308,6 +315,11 @@ msgid_plural "Changed Certificates"
 msgstr[0] "Certificate is valid"
 msgstr[1] "Certificate is valid"
 
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "Changed Path"
+msgstr "Certificate is valid"
+
 #: src/views/environment/BatchUpgrader.vue:161 src/views/system/Upgrade.vue:190
 msgid "Channel"
 msgstr ""
@@ -357,7 +369,7 @@ msgstr ""
 msgid "Configuration Name"
 msgstr "Configuration Name"
 
-#: src/views/config/Config.vue:42
+#: src/views/config/Config.vue:91
 msgid "Configurations"
 msgstr "Configurations"
 
@@ -408,10 +420,25 @@ msgstr "Created at"
 msgid "Create Another"
 msgstr "Create Another"
 
+#: src/views/config/Config.vue:99
+#, fuzzy
+msgid "Create File"
+msgstr "Created at"
+
+#: src/views/config/components/Mkdir.vue:50 src/views/config/Config.vue:100
+#, fuzzy
+msgid "Create Folder"
+msgstr "Create Another"
+
 #: src/views/notification/Notification.vue:31 src/views/user/userColumns.tsx:48
 msgid "Created at"
 msgstr "Created at"
 
+#: src/views/config/components/Mkdir.vue:35
+#, fuzzy
+msgid "Created successfully"
+msgstr "Disabled successfully"
+
 #: src/language/constants.ts:9
 msgid "Creating client facilitates communication with the CA server"
 msgstr ""
@@ -447,7 +474,8 @@ msgid ""
 "indicator."
 msgstr ""
 
-#: src/routes/index.ts:39
+#: src/routes/index.ts:39 src/views/config/Config.vue:57
+#: src/views/config/ConfigEditor.vue:118 src/views/config/ConfigEditor.vue:79
 msgid "Dashboard"
 msgstr "Dashboard"
 
@@ -528,7 +556,7 @@ msgstr "Directive"
 msgid "Directives"
 msgstr "Directives"
 
-#: src/views/config/config.ts:18
+#: src/views/config/configColumns.ts:22
 #, fuzzy
 msgid "Directory"
 msgstr "Directive"
@@ -560,7 +588,7 @@ msgstr "Disabled successfully"
 msgid "Disk IO"
 msgstr "Disk IO"
 
-#: src/routes/index.ts:167 src/views/certificate/DNSCredential.vue:40
+#: src/routes/index.ts:178 src/views/certificate/DNSCredential.vue:40
 msgid "DNS Credentials"
 msgstr ""
 
@@ -683,7 +711,7 @@ msgstr "Saved successfully"
 msgid "Edit %{n}"
 msgstr "Edit %{n}"
 
-#: src/routes/index.ts:112 src/views/config/ConfigEdit.vue:81
+#: src/routes/index.ts:122 src/views/config/ConfigEditor.vue:187
 msgid "Edit Configuration"
 msgstr "Edit Configuration"
 
@@ -775,7 +803,7 @@ msgstr "Enabled successfully"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Encrypt website with Let's Encrypt"
 
-#: src/routes/index.ts:217 src/views/environment/Environment.vue:34
+#: src/routes/index.ts:228 src/views/environment/Environment.vue:34
 msgid "Environment"
 msgstr ""
 
@@ -792,7 +820,7 @@ msgstr "Comments"
 msgid "Error"
 msgstr ""
 
-#: src/routes/index.ts:200 src/views/domain/ngx_conf/LogEntry.vue:84
+#: src/routes/index.ts:211 src/views/domain/ngx_conf/LogEntry.vue:84
 msgid "Error Logs"
 msgstr ""
 
@@ -841,7 +869,7 @@ msgstr ""
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr ""
 
-#: src/views/config/config.ts:20
+#: src/views/config/configColumns.ts:24
 msgid "File"
 msgstr ""
 
@@ -871,16 +899,16 @@ msgstr "Finished"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:90
+#: src/views/config/ConfigEditor.vue:199
 msgid "Format Code"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:68
+#: src/views/config/ConfigEditor.vue:166
 #, fuzzy
 msgid "Format error %{msg}"
 msgstr "Save error %{msg}"
 
-#: src/views/config/ConfigEdit.vue:66
+#: src/views/config/ConfigEditor.vue:164
 #, fuzzy
 msgid "Format successfully"
 msgstr "Saved successfully"
@@ -961,7 +989,7 @@ msgstr ""
 msgid "Import"
 msgstr ""
 
-#: src/routes/index.ts:157 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:168 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Import Certificate"
 msgstr "Certificate Status"
@@ -991,7 +1019,7 @@ msgstr ""
 msgid "Input the recovery code:"
 msgstr ""
 
-#: src/routes/index.ts:288 src/views/other/Install.vue:134
+#: src/routes/index.ts:299 src/views/other/Install.vue:134
 msgid "Install"
 msgstr "Install"
 
@@ -1013,7 +1041,17 @@ msgstr "Invalid E-mail!"
 msgid "Invalid 2FA or recovery code"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:60
+#: src/views/config/components/Rename.vue:62
+#: src/views/config/ConfigEditor.vue:233
+#, fuzzy
+msgid "Invalid filename"
+msgstr "Invalid E-mail!"
+
+#: src/views/config/components/Mkdir.vue:60
+msgid "Invalid folder name"
+msgstr ""
+
+#: src/components/OTP/useOTPModal.ts:64
 msgid "Invalid passcode or recovery code"
 msgstr ""
 
@@ -1118,7 +1156,7 @@ msgstr "Locations"
 msgid "Log"
 msgstr "Login"
 
-#: src/routes/index.ts:294 src/views/other/Login.vue:192
+#: src/routes/index.ts:305 src/views/other/Login.vue:192
 msgid "Login"
 msgstr "Login"
 
@@ -1153,7 +1191,8 @@ msgstr ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "HTTPChallengePort (default: 9180) before getting the certificate."
 
-#: src/routes/index.ts:102
+#: src/routes/index.ts:102 src/views/config/Config.vue:62
+#: src/views/config/ConfigEditor.vue:123 src/views/config/ConfigEditor.vue:84
 msgid "Manage Configs"
 msgstr "Manage Configs"
 
@@ -1166,7 +1205,7 @@ msgstr "Manage Sites"
 msgid "Manage Streams"
 msgstr "Manage Sites"
 
-#: src/routes/index.ts:240 src/views/user/User.vue:9
+#: src/routes/index.ts:251 src/views/user/User.vue:9
 msgid "Manage Users"
 msgstr "Manage Users"
 
@@ -1204,7 +1243,7 @@ msgstr "Advance Mode"
 msgid "Modify"
 msgstr "Modify Config"
 
-#: src/routes/index.ts:147 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:158 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "Certificate Status"
@@ -1226,7 +1265,9 @@ msgstr "Single Directive"
 #: src/views/certificate/ACMEUser.vue:13
 #: src/views/certificate/CertificateEditor.vue:152
 #: src/views/certificate/CertificateList/certColumns.tsx:10
-#: src/views/certificate/DNSCredential.vue:11 src/views/config/config.ts:7
+#: src/views/certificate/DNSCredential.vue:11
+#: src/views/config/components/Mkdir.vue:67 src/views/config/configColumns.ts:8
+#: src/views/config/ConfigEditor.vue:239
 #: src/views/domain/components/RightSettings.vue:83
 #: src/views/domain/components/SiteDuplicate.vue:129
 #: src/views/domain/DomainList.vue:13
@@ -1254,6 +1295,16 @@ msgstr "Network Total Receive"
 msgid "Network Total Send"
 msgstr "Network Total Send"
 
+#: src/views/config/components/Rename.vue:70
+#, fuzzy
+msgid "New name"
+msgstr "Username"
+
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "New Path"
+msgstr "Path"
+
 #: src/views/system/Upgrade.vue:210
 msgid "New version released"
 msgstr ""
@@ -1285,7 +1336,7 @@ msgstr ""
 msgid "Nginx Error Log Path"
 msgstr ""
 
-#: src/routes/index.ts:185 src/views/nginx_log/NginxLog.vue:143
+#: src/routes/index.ts:196 src/views/nginx_log/NginxLog.vue:143
 msgid "Nginx Log"
 msgstr ""
 
@@ -1322,7 +1373,7 @@ msgstr ""
 msgid "Not After"
 msgstr ""
 
-#: src/routes/index.ts:300
+#: src/routes/index.ts:311
 msgid "Not Found"
 msgstr "Not Found"
 
@@ -1340,7 +1391,7 @@ msgstr ""
 msgid "Notification"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/Notification.vue:82 src/routes/index.ts:231
+#: src/components/Notification/Notification.vue:82 src/routes/index.ts:242
 #, fuzzy
 msgid "Notifications"
 msgstr "Certificate is valid"
@@ -1410,6 +1461,10 @@ msgstr ""
 msgid "OpenAI"
 msgstr ""
 
+#: src/views/config/components/Rename.vue:66
+msgid "Original name"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:177
 #, fuzzy
 msgid "OS"
@@ -1441,7 +1496,7 @@ msgstr "Password"
 msgid "Password (*)"
 msgstr "Password (*)"
 
-#: src/views/config/ConfigEdit.vue:118
+#: src/views/config/ConfigEditor.vue:245
 #: src/views/domain/ngx_conf/LocationEditor.vue:118
 #: src/views/domain/ngx_conf/LocationEditor.vue:90
 msgid "Path"
@@ -1479,6 +1534,17 @@ msgid ""
 "select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
 
+#: src/views/config/components/Rename.vue:61
+#: src/views/config/ConfigEditor.vue:232
+#, fuzzy
+msgid "Please input a filename"
+msgstr "Please input your username!"
+
+#: src/views/config/components/Mkdir.vue:59
+#, fuzzy
+msgid "Please input a folder name"
+msgstr "Please input your username!"
+
 #: src/views/domain/components/SiteDuplicate.vue:38
 #: src/views/stream/components/StreamDuplicate.vue:38
 msgid ""
@@ -1514,7 +1580,7 @@ msgstr ""
 msgid "Pre-release"
 msgstr ""
 
-#: src/routes/index.ts:249 src/views/preference/Preference.vue:105
+#: src/routes/index.ts:260 src/views/preference/Preference.vue:105
 msgid "Preference"
 msgstr ""
 
@@ -1637,11 +1703,17 @@ msgstr "Saved successfully"
 msgid "Removed successfully"
 msgstr "Saved successfully"
 
+#: src/views/config/components/Rename.vue:52 src/views/config/Config.vue:130
 #: src/views/domain/ngx_conf/NgxUpstream.vue:123
 #, fuzzy
 msgid "Rename"
 msgstr "Username"
 
+#: src/views/config/components/Rename.vue:37
+#, fuzzy
+msgid "Rename successfully"
+msgstr "Enabled successfully"
+
 #: src/views/certificate/RenewCert.vue:43
 #: src/views/certificate/RenewCert.vue:47
 #, fuzzy
@@ -1695,7 +1767,7 @@ msgstr ""
 
 #: src/components/ChatGPT/ChatGPT.vue:251
 #: src/views/certificate/CertificateEditor.vue:254
-#: src/views/config/ConfigEdit.vue:96 src/views/domain/DomainEdit.vue:260
+#: src/views/config/ConfigEditor.vue:205 src/views/domain/DomainEdit.vue:260
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
 #: src/views/preference/Preference.vue:145 src/views/stream/StreamEdit.vue:252
 msgid "Save"
@@ -1705,7 +1777,7 @@ msgstr "Save"
 msgid "Save Directive"
 msgstr "Save Directive"
 
-#: src/views/config/ConfigEdit.vue:57 src/views/domain/DomainAdd.vue:46
+#: src/views/config/ConfigEditor.vue:154 src/views/domain/DomainAdd.vue:46
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:41
 msgid "Save error %{msg}"
 msgstr "Save error %{msg}"
@@ -1718,7 +1790,7 @@ msgstr "Save error %{msg}"
 msgid "Save successfully"
 msgstr "Saved successfully"
 
-#: src/views/config/ConfigEdit.vue:55 src/views/domain/DomainAdd.vue:37
+#: src/views/config/ConfigEditor.vue:150 src/views/domain/DomainAdd.vue:37
 #: src/views/domain/DomainEdit.vue:143
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/stream/StreamEdit.vue:138
@@ -1749,7 +1821,9 @@ msgstr "Send"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:213
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:253
-#: src/views/config/ConfigEdit.vue:40 src/views/domain/DomainList.vue:81
+#: src/views/config/components/Mkdir.vue:38
+#: src/views/config/components/Rename.vue:40
+#: src/views/config/ConfigEditor.vue:93 src/views/domain/DomainList.vue:81
 #: src/views/environment/BatchUpgrader.vue:57
 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
 #: src/views/preference/AuthSettings.vue:49
@@ -1803,7 +1877,7 @@ msgstr ""
 msgid "Single Directive"
 msgstr "Single Directive"
 
-#: src/routes/index.ts:207
+#: src/routes/index.ts:218
 #, fuzzy
 msgid "Site Logs"
 msgstr "Sites List"
@@ -1913,7 +1987,7 @@ msgstr "Certificate is valid"
 msgid "Sync to"
 msgstr ""
 
-#: src/routes/index.ts:258
+#: src/routes/index.ts:269
 msgid "System"
 msgstr ""
 
@@ -1926,7 +2000,7 @@ msgstr ""
 msgid "Target"
 msgstr ""
 
-#: src/routes/index.ts:177 src/views/pty/Terminal.vue:114
+#: src/routes/index.ts:188 src/views/pty/Terminal.vue:114
 msgid "Terminal"
 msgstr "Terminal"
 
@@ -2077,18 +2151,19 @@ msgstr ""
 msgid "Trash"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:66
+#: src/components/OTP/useOTPModal.ts:70
 msgid "Two-factor authentication required"
 msgstr ""
 
 #: src/views/certificate/CertificateList/certColumns.tsx:25
-#: src/views/config/config.ts:12 src/views/notification/Notification.vue:13
+#: src/views/config/configColumns.ts:16
+#: src/views/notification/Notification.vue:13
 msgid "Type"
 msgstr ""
 
 #: src/views/certificate/ACMEUser.vue:53
-#: src/views/certificate/DNSCredential.vue:27 src/views/config/config.ts:27
-#: src/views/config/ConfigEdit.vue:121
+#: src/views/certificate/DNSCredential.vue:27
+#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:258
 #: src/views/domain/components/RightSettings.vue:86
 #: src/views/domain/DomainList.vue:41 src/views/environment/envColumns.tsx:124
 #: src/views/stream/components/RightSettings.vue:85
@@ -2101,7 +2176,7 @@ msgstr "Updated at"
 msgid "Updated successfully"
 msgstr "Saved successfully"
 
-#: src/routes/index.ts:273 src/views/environment/Environment.vue:50
+#: src/routes/index.ts:284 src/views/environment/Environment.vue:50
 #: src/views/system/Upgrade.vue:145 src/views/system/Upgrade.vue:228
 msgid "Upgrade"
 msgstr ""
@@ -2231,6 +2306,10 @@ msgstr ""
 msgid "You can check Nginx UI upgrade at this page."
 msgstr ""
 
+#, fuzzy
+#~ msgid "Rename "
+#~ msgstr "Username"
+
 #~ msgid "Certificate has expired"
 #~ msgstr "Certificate has expired"
 

+ 124 - 45
app/src/language/es/app.po

@@ -22,15 +22,15 @@ msgstr ""
 msgid "2FA Settings"
 msgstr ""
 
-#: src/routes/index.ts:266
+#: src/routes/index.ts:277
 msgid "About"
 msgstr "Acerca de"
 
-#: src/routes/index.ts:193 src/views/domain/ngx_conf/LogEntry.vue:76
+#: src/routes/index.ts:204 src/views/domain/ngx_conf/LogEntry.vue:76
 msgid "Access Logs"
 msgstr "Registros de acceso"
 
-#: src/routes/index.ts:131 src/views/certificate/ACMEUser.vue:76
+#: src/routes/index.ts:142 src/views/certificate/ACMEUser.vue:76
 #: src/views/certificate/ACMEUserSelector.vue:85
 #, fuzzy
 msgid "ACME User"
@@ -38,8 +38,9 @@ msgstr "Usuario"
 
 #: src/views/certificate/ACMEUser.vue:59
 #: src/views/certificate/CertificateList/certColumns.tsx:89
-#: src/views/certificate/DNSCredential.vue:33 src/views/config/config.ts:34
-#: src/views/domain/DomainList.vue:47 src/views/environment/envColumns.tsx:131
+#: src/views/certificate/DNSCredential.vue:33
+#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
+#: src/views/environment/envColumns.tsx:131
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
 #: src/views/user/userColumns.tsx:60
@@ -56,6 +57,12 @@ msgstr "Acción"
 msgid "Add"
 msgstr "Agregar"
 
+#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:128
+#: src/views/config/ConfigEditor.vue:187
+#, fuzzy
+msgid "Add Configuration"
+msgstr "Editar Configuración"
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:95
 msgid "Add Directive Below"
 msgstr "Añadir directiva a continuación"
@@ -187,7 +194,7 @@ msgid "Auto-renewal enabled for %{name}"
 msgstr "Renovación automática habilitada por %{name}"
 
 #: src/views/certificate/CertificateEditor.vue:247
-#: src/views/config/Config.vue:71 src/views/config/ConfigEdit.vue:87
+#: src/views/config/Config.vue:143 src/views/config/ConfigEditor.vue:196
 #: src/views/domain/DomainEdit.vue:253 src/views/nginx_log/NginxLog.vue:168
 #: src/views/stream/StreamEdit.vue:245
 msgid "Back"
@@ -217,7 +224,7 @@ msgstr ""
 msgid "Base information"
 msgstr "Información general"
 
-#: src/views/config/ConfigEdit.vue:115
+#: src/views/config/ConfigEditor.vue:224
 #: src/views/domain/components/RightSettings.vue:75
 #: src/views/preference/Preference.vue:110
 #: src/views/stream/components/RightSettings.vue:74
@@ -278,12 +285,12 @@ msgid_plural "Certificates Status"
 msgstr[0] "Estado del Certificado"
 msgstr[1] "Estado del Certificado"
 
-#: src/routes/index.ts:122
+#: src/routes/index.ts:133
 #: src/views/certificate/CertificateList/Certificate.vue:13
 msgid "Certificates"
 msgstr "Certificados"
 
-#: src/routes/index.ts:139
+#: src/routes/index.ts:150
 msgid "Certificates List"
 msgstr "Lista de Certificados"
 
@@ -303,6 +310,11 @@ msgid_plural "Changed Certificates"
 msgstr[0] "Cambiar Certificado"
 msgstr[1] "Cambiar Certificado"
 
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "Changed Path"
+msgstr "Cambiar Certificado"
+
 #: src/views/environment/BatchUpgrader.vue:161 src/views/system/Upgrade.vue:190
 msgid "Channel"
 msgstr "Canal"
@@ -350,7 +362,7 @@ msgstr "El archivo de configuración se probó exitosamente"
 msgid "Configuration Name"
 msgstr "Nombre de la configuración"
 
-#: src/views/config/Config.vue:42
+#: src/views/config/Config.vue:91
 msgid "Configurations"
 msgstr "Configuraciones"
 
@@ -400,10 +412,25 @@ msgstr "Crear"
 msgid "Create Another"
 msgstr "Crear otro"
 
+#: src/views/config/Config.vue:99
+#, fuzzy
+msgid "Create File"
+msgstr "Crear"
+
+#: src/views/config/components/Mkdir.vue:50 src/views/config/Config.vue:100
+#, fuzzy
+msgid "Create Folder"
+msgstr "Crear otro"
+
 #: src/views/notification/Notification.vue:31 src/views/user/userColumns.tsx:48
 msgid "Created at"
 msgstr "Creado el"
 
+#: src/views/config/components/Mkdir.vue:35
+#, fuzzy
+msgid "Created successfully"
+msgstr "Limpiado exitoso"
+
 #: src/language/constants.ts:9
 msgid "Creating client facilitates communication with the CA server"
 msgstr "La creación de un cliente facilita la comunicación con el servidor CA"
@@ -439,7 +466,8 @@ msgid ""
 "indicator."
 msgstr ""
 
-#: src/routes/index.ts:39
+#: src/routes/index.ts:39 src/views/config/Config.vue:57
+#: src/views/config/ConfigEditor.vue:118 src/views/config/ConfigEditor.vue:79
 msgid "Dashboard"
 msgstr "Panel"
 
@@ -518,7 +546,7 @@ msgstr "Directiva"
 msgid "Directives"
 msgstr "Directivas"
 
-#: src/views/config/config.ts:18
+#: src/views/config/configColumns.ts:22
 msgid "Directory"
 msgstr "Directorio"
 
@@ -548,7 +576,7 @@ msgstr "Desactivado con éxito"
 msgid "Disk IO"
 msgstr "I/O del disco"
 
-#: src/routes/index.ts:167 src/views/certificate/DNSCredential.vue:40
+#: src/routes/index.ts:178 src/views/certificate/DNSCredential.vue:40
 msgid "DNS Credentials"
 msgstr "Credenciales de DNS"
 
@@ -661,7 +689,7 @@ msgstr "Duplicado con éxito a local"
 msgid "Edit %{n}"
 msgstr "Editar %{n}"
 
-#: src/routes/index.ts:112 src/views/config/ConfigEdit.vue:81
+#: src/routes/index.ts:122 src/views/config/ConfigEditor.vue:187
 msgid "Edit Configuration"
 msgstr "Editar Configuración"
 
@@ -750,7 +778,7 @@ msgstr "Habilitado con éxito"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Encriptar sitio web con Let's Encrypt"
 
-#: src/routes/index.ts:217 src/views/environment/Environment.vue:34
+#: src/routes/index.ts:228 src/views/environment/Environment.vue:34
 msgid "Environment"
 msgstr "Entorno"
 
@@ -767,7 +795,7 @@ msgstr "Entornos"
 msgid "Error"
 msgstr "Error"
 
-#: src/routes/index.ts:200 src/views/domain/ngx_conf/LogEntry.vue:84
+#: src/routes/index.ts:211 src/views/domain/ngx_conf/LogEntry.vue:84
 msgid "Error Logs"
 msgstr "Registros de acceso"
 
@@ -816,7 +844,7 @@ msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr ""
 "No se pudo guardar, se detectó un error(es) de sintaxis en la configuración."
 
-#: src/views/config/config.ts:20
+#: src/views/config/configColumns.ts:24
 msgid "File"
 msgstr "Archivo"
 
@@ -845,15 +873,15 @@ msgstr "Terminado"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "Para usuario chino: https://mirror.ghproxy.com/"
 
-#: src/views/config/ConfigEdit.vue:90
+#: src/views/config/ConfigEditor.vue:199
 msgid "Format Code"
 msgstr "Código de formato"
 
-#: src/views/config/ConfigEdit.vue:68
+#: src/views/config/ConfigEditor.vue:166
 msgid "Format error %{msg}"
 msgstr "Error de formato %{msg}"
 
-#: src/views/config/ConfigEdit.vue:66
+#: src/views/config/ConfigEditor.vue:164
 msgid "Format successfully"
 msgstr "Formateado correctamente"
 
@@ -931,7 +959,7 @@ msgstr ""
 msgid "Import"
 msgstr "Importar"
 
-#: src/routes/index.ts:157 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:168 src/views/certificate/CertificateEditor.vue:79
 msgid "Import Certificate"
 msgstr "Importar Certificado"
 
@@ -961,7 +989,7 @@ msgstr ""
 msgid "Input the recovery code:"
 msgstr ""
 
-#: src/routes/index.ts:288 src/views/other/Install.vue:134
+#: src/routes/index.ts:299 src/views/other/Install.vue:134
 msgid "Install"
 msgstr "Instalar"
 
@@ -982,7 +1010,17 @@ msgstr "Válido"
 msgid "Invalid 2FA or recovery code"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:60
+#: src/views/config/components/Rename.vue:62
+#: src/views/config/ConfigEditor.vue:233
+#, fuzzy
+msgid "Invalid filename"
+msgstr "Válido"
+
+#: src/views/config/components/Mkdir.vue:60
+msgid "Invalid folder name"
+msgstr ""
+
+#: src/components/OTP/useOTPModal.ts:64
 msgid "Invalid passcode or recovery code"
 msgstr ""
 
@@ -1080,7 +1118,7 @@ msgstr "Ubicaciones"
 msgid "Log"
 msgstr "Registro"
 
-#: src/routes/index.ts:294 src/views/other/Login.vue:192
+#: src/routes/index.ts:305 src/views/other/Login.vue:192
 msgid "Login"
 msgstr "Acceso"
 
@@ -1114,7 +1152,8 @@ msgstr ""
 "Asegúrese de haber configurado un proxy reverso para el directorio .well-"
 "known en HTTPChallengePort antes de obtener el certificado."
 
-#: src/routes/index.ts:102
+#: src/routes/index.ts:102 src/views/config/Config.vue:62
+#: src/views/config/ConfigEditor.vue:123 src/views/config/ConfigEditor.vue:84
 msgid "Manage Configs"
 msgstr "Administrar configuraciones"
 
@@ -1126,7 +1165,7 @@ msgstr "Administrar sitios"
 msgid "Manage Streams"
 msgstr "Administrar Transmisiones"
 
-#: src/routes/index.ts:240 src/views/user/User.vue:9
+#: src/routes/index.ts:251 src/views/user/User.vue:9
 msgid "Manage Users"
 msgstr "Administrar usuarios"
 
@@ -1162,7 +1201,7 @@ msgstr "Modo de ejecución"
 msgid "Modify"
 msgstr "Modificar"
 
-#: src/routes/index.ts:147 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:158 src/views/certificate/CertificateEditor.vue:79
 msgid "Modify Certificate"
 msgstr "Modificar Certificado"
 
@@ -1182,7 +1221,9 @@ msgstr "Directiva multilínea"
 #: src/views/certificate/ACMEUser.vue:13
 #: src/views/certificate/CertificateEditor.vue:152
 #: src/views/certificate/CertificateList/certColumns.tsx:10
-#: src/views/certificate/DNSCredential.vue:11 src/views/config/config.ts:7
+#: src/views/certificate/DNSCredential.vue:11
+#: src/views/config/components/Mkdir.vue:67 src/views/config/configColumns.ts:8
+#: src/views/config/ConfigEditor.vue:239
 #: src/views/domain/components/RightSettings.vue:83
 #: src/views/domain/components/SiteDuplicate.vue:129
 #: src/views/domain/DomainList.vue:13
@@ -1210,6 +1251,16 @@ msgstr "Total recibido por la red"
 msgid "Network Total Send"
 msgstr "Total enviado por la red"
 
+#: src/views/config/components/Rename.vue:70
+#, fuzzy
+msgid "New name"
+msgstr "Renombrar"
+
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "New Path"
+msgstr "Ruta"
+
 #: src/views/system/Upgrade.vue:210
 msgid "New version released"
 msgstr "Se liberó una nueva versión"
@@ -1240,7 +1291,7 @@ msgstr "Control de Nginx"
 msgid "Nginx Error Log Path"
 msgstr "Ruta de registro de errores de Nginx"
 
-#: src/routes/index.ts:185 src/views/nginx_log/NginxLog.vue:143
+#: src/routes/index.ts:196 src/views/nginx_log/NginxLog.vue:143
 msgid "Nginx Log"
 msgstr "Registro Nginx"
 
@@ -1275,7 +1326,7 @@ msgstr "Secreto del nodo"
 msgid "Not After"
 msgstr "No después de"
 
-#: src/routes/index.ts:300
+#: src/routes/index.ts:311
 msgid "Not Found"
 msgstr "No encontrado"
 
@@ -1292,7 +1343,7 @@ msgstr "Nota"
 msgid "Notification"
 msgstr "Notificación"
 
-#: src/components/Notification/Notification.vue:82 src/routes/index.ts:231
+#: src/components/Notification/Notification.vue:82 src/routes/index.ts:242
 msgid "Notifications"
 msgstr "Notificaciones"
 
@@ -1360,6 +1411,10 @@ msgstr "En línea"
 msgid "OpenAI"
 msgstr "OpenAI"
 
+#: src/views/config/components/Rename.vue:66
+msgid "Original name"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:177
 msgid "OS"
 msgstr "SO"
@@ -1390,7 +1445,7 @@ msgstr "Contraseña"
 msgid "Password (*)"
 msgstr "Contraseña (*)"
 
-#: src/views/config/ConfigEdit.vue:118
+#: src/views/config/ConfigEditor.vue:245
 #: src/views/domain/ngx_conf/LocationEditor.vue:118
 #: src/views/domain/ngx_conf/LocationEditor.vue:90
 msgid "Path"
@@ -1433,6 +1488,17 @@ msgstr ""
 "luego seleccione una de las credenciales de aquí debajo para llamar a la API "
 "del proveedor de DNS."
 
+#: src/views/config/components/Rename.vue:61
+#: src/views/config/ConfigEditor.vue:232
+#, fuzzy
+msgid "Please input a filename"
+msgstr "¡Por favor ingrese su nombre de usuario!"
+
+#: src/views/config/components/Mkdir.vue:59
+#, fuzzy
+msgid "Please input a folder name"
+msgstr "¡Por favor ingrese su nombre de usuario!"
+
 #: src/views/domain/components/SiteDuplicate.vue:38
 #: src/views/stream/components/StreamDuplicate.vue:38
 msgid ""
@@ -1472,7 +1538,7 @@ msgstr "¡Seleccione al menos un nodo!"
 msgid "Pre-release"
 msgstr "Prelanzamiento"
 
-#: src/routes/index.ts:249 src/views/preference/Preference.vue:105
+#: src/routes/index.ts:260 src/views/preference/Preference.vue:105
 msgid "Preference"
 msgstr "Configuración"
 
@@ -1594,10 +1660,16 @@ msgstr "Eliminado con éxito"
 msgid "Removed successfully"
 msgstr "Eliminado con éxito"
 
+#: src/views/config/components/Rename.vue:52 src/views/config/Config.vue:130
 #: src/views/domain/ngx_conf/NgxUpstream.vue:123
 msgid "Rename"
 msgstr "Renombrar"
 
+#: src/views/config/components/Rename.vue:37
+#, fuzzy
+msgid "Rename successfully"
+msgstr "Renovado con éxito"
+
 #: src/views/certificate/RenewCert.vue:43
 #: src/views/certificate/RenewCert.vue:47
 msgid "Renew Certificate"
@@ -1647,7 +1719,7 @@ msgstr "Corriendo"
 
 #: src/components/ChatGPT/ChatGPT.vue:251
 #: src/views/certificate/CertificateEditor.vue:254
-#: src/views/config/ConfigEdit.vue:96 src/views/domain/DomainEdit.vue:260
+#: src/views/config/ConfigEditor.vue:205 src/views/domain/DomainEdit.vue:260
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
 #: src/views/preference/Preference.vue:145 src/views/stream/StreamEdit.vue:252
 msgid "Save"
@@ -1657,7 +1729,7 @@ msgstr "Guardar"
 msgid "Save Directive"
 msgstr "Guardar Directiva"
 
-#: src/views/config/ConfigEdit.vue:57 src/views/domain/DomainAdd.vue:46
+#: src/views/config/ConfigEditor.vue:154 src/views/domain/DomainAdd.vue:46
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:41
 msgid "Save error %{msg}"
 msgstr "Error al guardar %{msg}"
@@ -1669,7 +1741,7 @@ msgstr "Error al guardar %{msg}"
 msgid "Save successfully"
 msgstr "Guardado con éxito"
 
-#: src/views/config/ConfigEdit.vue:55 src/views/domain/DomainAdd.vue:37
+#: src/views/config/ConfigEditor.vue:150 src/views/domain/DomainAdd.vue:37
 #: src/views/domain/DomainEdit.vue:143
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/stream/StreamEdit.vue:138
@@ -1700,7 +1772,9 @@ msgstr "Enviado"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:213
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:253
-#: src/views/config/ConfigEdit.vue:40 src/views/domain/DomainList.vue:81
+#: src/views/config/components/Mkdir.vue:38
+#: src/views/config/components/Rename.vue:40
+#: src/views/config/ConfigEditor.vue:93 src/views/domain/DomainList.vue:81
 #: src/views/environment/BatchUpgrader.vue:57
 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
 #: src/views/preference/AuthSettings.vue:49
@@ -1754,7 +1828,7 @@ msgstr ""
 msgid "Single Directive"
 msgstr "Directiva de una sola línea"
 
-#: src/routes/index.ts:207
+#: src/routes/index.ts:218
 msgid "Site Logs"
 msgstr "Registros del sitio"
 
@@ -1857,7 +1931,7 @@ msgstr "Renovado de Certificado exitoso"
 msgid "Sync to"
 msgstr ""
 
-#: src/routes/index.ts:258
+#: src/routes/index.ts:269
 msgid "System"
 msgstr "Sistema"
 
@@ -1870,7 +1944,7 @@ msgstr ""
 msgid "Target"
 msgstr "Objetivo"
 
-#: src/routes/index.ts:177 src/views/pty/Terminal.vue:114
+#: src/routes/index.ts:188 src/views/pty/Terminal.vue:114
 msgid "Terminal"
 msgstr "Terminal"
 
@@ -2026,18 +2100,19 @@ msgstr ""
 msgid "Trash"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:66
+#: src/components/OTP/useOTPModal.ts:70
 msgid "Two-factor authentication required"
 msgstr ""
 
 #: src/views/certificate/CertificateList/certColumns.tsx:25
-#: src/views/config/config.ts:12 src/views/notification/Notification.vue:13
+#: src/views/config/configColumns.ts:16
+#: src/views/notification/Notification.vue:13
 msgid "Type"
 msgstr "Tipo"
 
 #: src/views/certificate/ACMEUser.vue:53
-#: src/views/certificate/DNSCredential.vue:27 src/views/config/config.ts:27
-#: src/views/config/ConfigEdit.vue:121
+#: src/views/certificate/DNSCredential.vue:27
+#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:258
 #: src/views/domain/components/RightSettings.vue:86
 #: src/views/domain/DomainList.vue:41 src/views/environment/envColumns.tsx:124
 #: src/views/stream/components/RightSettings.vue:85
@@ -2049,7 +2124,7 @@ msgstr "Actualizado a"
 msgid "Updated successfully"
 msgstr "Actualización exitosa"
 
-#: src/routes/index.ts:273 src/views/environment/Environment.vue:50
+#: src/routes/index.ts:284 src/views/environment/Environment.vue:50
 #: src/views/system/Upgrade.vue:145 src/views/system/Upgrade.vue:228
 msgid "Upgrade"
 msgstr "Actualizar"
@@ -2182,6 +2257,10 @@ msgstr "Estás usando la última versión"
 msgid "You can check Nginx UI upgrade at this page."
 msgstr "Puede consultar la actualización de Nginx UI en esta página."
 
+#, fuzzy
+#~ msgid "Rename "
+#~ msgstr "Renombrar"
+
 #~ msgid "Auto Cert"
 #~ msgstr "Certificado automático"
 

+ 123 - 45
app/src/language/fr_FR/app.po

@@ -19,15 +19,15 @@ msgstr ""
 msgid "2FA Settings"
 msgstr ""
 
-#: src/routes/index.ts:266
+#: src/routes/index.ts:277
 msgid "About"
 msgstr "À propos"
 
-#: src/routes/index.ts:193 src/views/domain/ngx_conf/LogEntry.vue:76
+#: src/routes/index.ts:204 src/views/domain/ngx_conf/LogEntry.vue:76
 msgid "Access Logs"
 msgstr "Journaux d'accès"
 
-#: src/routes/index.ts:131 src/views/certificate/ACMEUser.vue:76
+#: src/routes/index.ts:142 src/views/certificate/ACMEUser.vue:76
 #: src/views/certificate/ACMEUserSelector.vue:85
 #, fuzzy
 msgid "ACME User"
@@ -35,8 +35,9 @@ msgstr "Nom d'utilisateur"
 
 #: src/views/certificate/ACMEUser.vue:59
 #: src/views/certificate/CertificateList/certColumns.tsx:89
-#: src/views/certificate/DNSCredential.vue:33 src/views/config/config.ts:34
-#: src/views/domain/DomainList.vue:47 src/views/environment/envColumns.tsx:131
+#: src/views/certificate/DNSCredential.vue:33
+#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
+#: src/views/environment/envColumns.tsx:131
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
 #: src/views/user/userColumns.tsx:60
@@ -53,6 +54,12 @@ msgstr "Action"
 msgid "Add"
 msgstr "Ajouter"
 
+#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:128
+#: src/views/config/ConfigEditor.vue:187
+#, fuzzy
+msgid "Add Configuration"
+msgstr "Modifier la configuration"
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:95
 msgid "Add Directive Below"
 msgstr "Ajouter une directive"
@@ -190,7 +197,7 @@ msgid "Auto-renewal enabled for %{name}"
 msgstr "Renouvellement automatique activé pour %{name}"
 
 #: src/views/certificate/CertificateEditor.vue:247
-#: src/views/config/Config.vue:71 src/views/config/ConfigEdit.vue:87
+#: src/views/config/Config.vue:143 src/views/config/ConfigEditor.vue:196
 #: src/views/domain/DomainEdit.vue:253 src/views/nginx_log/NginxLog.vue:168
 #: src/views/stream/StreamEdit.vue:245
 msgid "Back"
@@ -220,7 +227,7 @@ msgstr ""
 msgid "Base information"
 msgstr "Information générale"
 
-#: src/views/config/ConfigEdit.vue:115
+#: src/views/config/ConfigEditor.vue:224
 #: src/views/domain/components/RightSettings.vue:75
 #: src/views/preference/Preference.vue:110
 #: src/views/stream/components/RightSettings.vue:74
@@ -282,13 +289,13 @@ msgid_plural "Certificates Status"
 msgstr[0] "État du certificat"
 msgstr[1] "État du certificat"
 
-#: src/routes/index.ts:122
+#: src/routes/index.ts:133
 #: src/views/certificate/CertificateList/Certificate.vue:13
 #, fuzzy
 msgid "Certificates"
 msgstr "État du certificat"
 
-#: src/routes/index.ts:139
+#: src/routes/index.ts:150
 #, fuzzy
 msgid "Certificates List"
 msgstr "Liste des certifications"
@@ -309,6 +316,11 @@ msgid_plural "Changed Certificates"
 msgstr[0] "Changer de certificat"
 msgstr[1] "Changer de certificat"
 
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "Changed Path"
+msgstr "Changer de certificat"
+
 #: src/views/environment/BatchUpgrader.vue:161 src/views/system/Upgrade.vue:190
 msgid "Channel"
 msgstr ""
@@ -357,7 +369,7 @@ msgstr "Le fichier de configuration est testé avec succès"
 msgid "Configuration Name"
 msgstr "Nom de la configuration"
 
-#: src/views/config/Config.vue:42
+#: src/views/config/Config.vue:91
 msgid "Configurations"
 msgstr "Configurations"
 
@@ -408,10 +420,25 @@ msgstr "Créé le"
 msgid "Create Another"
 msgstr "Créer un autre"
 
+#: src/views/config/Config.vue:99
+#, fuzzy
+msgid "Create File"
+msgstr "Créé le"
+
+#: src/views/config/components/Mkdir.vue:50 src/views/config/Config.vue:100
+#, fuzzy
+msgid "Create Folder"
+msgstr "Créer un autre"
+
 #: src/views/notification/Notification.vue:31 src/views/user/userColumns.tsx:48
 msgid "Created at"
 msgstr "Créé le"
 
+#: src/views/config/components/Mkdir.vue:35
+#, fuzzy
+msgid "Created successfully"
+msgstr "Désactivé avec succès"
+
 #: src/language/constants.ts:9
 msgid "Creating client facilitates communication with the CA server"
 msgstr "La création du client facilite la communication avec le serveur CA"
@@ -447,7 +474,8 @@ msgid ""
 "indicator."
 msgstr ""
 
-#: src/routes/index.ts:39
+#: src/routes/index.ts:39 src/views/config/Config.vue:57
+#: src/views/config/ConfigEditor.vue:118 src/views/config/ConfigEditor.vue:79
 msgid "Dashboard"
 msgstr "Dashboard"
 
@@ -529,7 +557,7 @@ msgstr "Directive"
 msgid "Directives"
 msgstr "Directives"
 
-#: src/views/config/config.ts:18
+#: src/views/config/configColumns.ts:22
 #, fuzzy
 msgid "Directory"
 msgstr "Directive"
@@ -561,7 +589,7 @@ msgstr "Désactivé avec succès"
 msgid "Disk IO"
 msgstr "E/S disque"
 
-#: src/routes/index.ts:167 src/views/certificate/DNSCredential.vue:40
+#: src/routes/index.ts:178 src/views/certificate/DNSCredential.vue:40
 msgid "DNS Credentials"
 msgstr "Identifiants DNS"
 
@@ -683,7 +711,7 @@ msgstr "Dupliqué avec succès"
 msgid "Edit %{n}"
 msgstr "Modifier %{n}"
 
-#: src/routes/index.ts:112 src/views/config/ConfigEdit.vue:81
+#: src/routes/index.ts:122 src/views/config/ConfigEditor.vue:187
 msgid "Edit Configuration"
 msgstr "Modifier la configuration"
 
@@ -775,7 +803,7 @@ msgstr "Activé avec succès"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Crypter le site Web avec Let's Encrypt"
 
-#: src/routes/index.ts:217 src/views/environment/Environment.vue:34
+#: src/routes/index.ts:228 src/views/environment/Environment.vue:34
 msgid "Environment"
 msgstr ""
 
@@ -793,7 +821,7 @@ msgstr "Commentaires"
 msgid "Error"
 msgstr "Erreur"
 
-#: src/routes/index.ts:200 src/views/domain/ngx_conf/LogEntry.vue:84
+#: src/routes/index.ts:211 src/views/domain/ngx_conf/LogEntry.vue:84
 msgid "Error Logs"
 msgstr "Journaux d'erreurs"
 
@@ -844,7 +872,7 @@ msgstr ""
 "Échec de l'enregistrement, une ou plusieurs erreurs de syntaxe ont été "
 "détectées dans la configuration."
 
-#: src/views/config/config.ts:20
+#: src/views/config/configColumns.ts:24
 msgid "File"
 msgstr "Fichier"
 
@@ -875,15 +903,15 @@ msgstr "Finie"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "Utilisateur chinois : https://mirror.ghproxy.com/"
 
-#: src/views/config/ConfigEdit.vue:90
+#: src/views/config/ConfigEditor.vue:199
 msgid "Format Code"
 msgstr "Code de formatage"
 
-#: src/views/config/ConfigEdit.vue:68
+#: src/views/config/ConfigEditor.vue:166
 msgid "Format error %{msg}"
 msgstr "Erreur de format %{msg}"
 
-#: src/views/config/ConfigEdit.vue:66
+#: src/views/config/ConfigEditor.vue:164
 msgid "Format successfully"
 msgstr "Formaté avec succès"
 
@@ -963,7 +991,7 @@ msgstr ""
 msgid "Import"
 msgstr "Exporter"
 
-#: src/routes/index.ts:157 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:168 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Import Certificate"
 msgstr "État du certificat"
@@ -994,7 +1022,7 @@ msgstr ""
 msgid "Input the recovery code:"
 msgstr ""
 
-#: src/routes/index.ts:288 src/views/other/Install.vue:134
+#: src/routes/index.ts:299 src/views/other/Install.vue:134
 msgid "Install"
 msgstr "Installer"
 
@@ -1014,7 +1042,16 @@ msgstr ""
 msgid "Invalid 2FA or recovery code"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:60
+#: src/views/config/components/Rename.vue:62
+#: src/views/config/ConfigEditor.vue:233
+msgid "Invalid filename"
+msgstr ""
+
+#: src/views/config/components/Mkdir.vue:60
+msgid "Invalid folder name"
+msgstr ""
+
+#: src/components/OTP/useOTPModal.ts:64
 msgid "Invalid passcode or recovery code"
 msgstr ""
 
@@ -1121,7 +1158,7 @@ msgstr "Localisations"
 msgid "Log"
 msgstr "Connexion"
 
-#: src/routes/index.ts:294 src/views/other/Login.vue:192
+#: src/routes/index.ts:305 src/views/other/Login.vue:192
 msgid "Login"
 msgstr "Connexion"
 
@@ -1156,7 +1193,8 @@ msgstr ""
 "Assurez vous d'avoir configuré un reverse proxy pour le répertoire .well-"
 "known vers HTTPChallengePort avant d'obtenir le certificat."
 
-#: src/routes/index.ts:102
+#: src/routes/index.ts:102 src/views/config/Config.vue:62
+#: src/views/config/ConfigEditor.vue:123 src/views/config/ConfigEditor.vue:84
 msgid "Manage Configs"
 msgstr "Gérer les configurations"
 
@@ -1169,7 +1207,7 @@ msgstr "Gérer les sites"
 msgid "Manage Streams"
 msgstr "Gérer les sites"
 
-#: src/routes/index.ts:240 src/views/user/User.vue:9
+#: src/routes/index.ts:251 src/views/user/User.vue:9
 msgid "Manage Users"
 msgstr "Gérer les utilisateurs"
 
@@ -1206,7 +1244,7 @@ msgstr "Mode d'exécution"
 msgid "Modify"
 msgstr "Modifier"
 
-#: src/routes/index.ts:147 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:158 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "État du certificat"
@@ -1227,7 +1265,9 @@ msgstr "Directive multiligne"
 #: src/views/certificate/ACMEUser.vue:13
 #: src/views/certificate/CertificateEditor.vue:152
 #: src/views/certificate/CertificateList/certColumns.tsx:10
-#: src/views/certificate/DNSCredential.vue:11 src/views/config/config.ts:7
+#: src/views/certificate/DNSCredential.vue:11
+#: src/views/config/components/Mkdir.vue:67 src/views/config/configColumns.ts:8
+#: src/views/config/ConfigEditor.vue:239
 #: src/views/domain/components/RightSettings.vue:83
 #: src/views/domain/components/SiteDuplicate.vue:129
 #: src/views/domain/DomainList.vue:13
@@ -1255,6 +1295,16 @@ msgstr "Réception totale du réseau"
 msgid "Network Total Send"
 msgstr "Envoi total réseau"
 
+#: src/views/config/components/Rename.vue:70
+#, fuzzy
+msgid "New name"
+msgstr "Nom d'utilisateur"
+
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "New Path"
+msgstr "Chemin"
+
 #: src/views/system/Upgrade.vue:210
 msgid "New version released"
 msgstr "Nouvelle version publiée"
@@ -1286,7 +1336,7 @@ msgstr "Contrôle Nginx"
 msgid "Nginx Error Log Path"
 msgstr "Chemin du journal des erreurs Nginx"
 
-#: src/routes/index.ts:185 src/views/nginx_log/NginxLog.vue:143
+#: src/routes/index.ts:196 src/views/nginx_log/NginxLog.vue:143
 msgid "Nginx Log"
 msgstr "Journal Nginx"
 
@@ -1322,7 +1372,7 @@ msgstr "Secret Jwt"
 msgid "Not After"
 msgstr ""
 
-#: src/routes/index.ts:300
+#: src/routes/index.ts:311
 msgid "Not Found"
 msgstr "Introuvable"
 
@@ -1340,7 +1390,7 @@ msgstr "Note"
 msgid "Notification"
 msgstr "Certification"
 
-#: src/components/Notification/Notification.vue:82 src/routes/index.ts:231
+#: src/components/Notification/Notification.vue:82 src/routes/index.ts:242
 #, fuzzy
 msgid "Notifications"
 msgstr "Certification"
@@ -1409,6 +1459,10 @@ msgstr ""
 msgid "OpenAI"
 msgstr "OpenAI"
 
+#: src/views/config/components/Rename.vue:66
+msgid "Original name"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:177
 msgid "OS"
 msgstr "OS"
@@ -1439,7 +1493,7 @@ msgstr "Mot de passe"
 msgid "Password (*)"
 msgstr "Mot de passe (*)"
 
-#: src/views/config/ConfigEdit.vue:118
+#: src/views/config/ConfigEditor.vue:245
 #: src/views/domain/ngx_conf/LocationEditor.vue:118
 #: src/views/domain/ngx_conf/LocationEditor.vue:90
 msgid "Path"
@@ -1482,6 +1536,17 @@ msgstr ""
 "des informations d'identification ci-dessous pour demander l'API du "
 "fournisseur DNS."
 
+#: src/views/config/components/Rename.vue:61
+#: src/views/config/ConfigEditor.vue:232
+#, fuzzy
+msgid "Please input a filename"
+msgstr "Veuillez saisir votre nom d'utilisateur !"
+
+#: src/views/config/components/Mkdir.vue:59
+#, fuzzy
+msgid "Please input a folder name"
+msgstr "Veuillez saisir votre nom d'utilisateur !"
+
 #: src/views/domain/components/SiteDuplicate.vue:38
 #: src/views/stream/components/StreamDuplicate.vue:38
 msgid ""
@@ -1519,7 +1584,7 @@ msgstr ""
 msgid "Pre-release"
 msgstr ""
 
-#: src/routes/index.ts:249 src/views/preference/Preference.vue:105
+#: src/routes/index.ts:260 src/views/preference/Preference.vue:105
 msgid "Preference"
 msgstr "Préférence"
 
@@ -1645,11 +1710,17 @@ msgstr "Enregistré avec succès"
 msgid "Removed successfully"
 msgstr "Enregistré avec succès"
 
+#: src/views/config/components/Rename.vue:52 src/views/config/Config.vue:130
 #: src/views/domain/ngx_conf/NgxUpstream.vue:123
 #, fuzzy
 msgid "Rename"
 msgstr "Nom d'utilisateur"
 
+#: src/views/config/components/Rename.vue:37
+#, fuzzy
+msgid "Rename successfully"
+msgstr "Activé avec succès"
+
 #: src/views/certificate/RenewCert.vue:43
 #: src/views/certificate/RenewCert.vue:47
 #, fuzzy
@@ -1703,7 +1774,7 @@ msgstr "En cours d'éxécution"
 
 #: src/components/ChatGPT/ChatGPT.vue:251
 #: src/views/certificate/CertificateEditor.vue:254
-#: src/views/config/ConfigEdit.vue:96 src/views/domain/DomainEdit.vue:260
+#: src/views/config/ConfigEditor.vue:205 src/views/domain/DomainEdit.vue:260
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
 #: src/views/preference/Preference.vue:145 src/views/stream/StreamEdit.vue:252
 msgid "Save"
@@ -1713,7 +1784,7 @@ msgstr "Enregistrer"
 msgid "Save Directive"
 msgstr "Enregistrer la directive"
 
-#: src/views/config/ConfigEdit.vue:57 src/views/domain/DomainAdd.vue:46
+#: src/views/config/ConfigEditor.vue:154 src/views/domain/DomainAdd.vue:46
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:41
 msgid "Save error %{msg}"
 msgstr "Enregistrer l'erreur %{msg}"
@@ -1725,7 +1796,7 @@ msgstr "Enregistrer l'erreur %{msg}"
 msgid "Save successfully"
 msgstr "Sauvegarde réussie"
 
-#: src/views/config/ConfigEdit.vue:55 src/views/domain/DomainAdd.vue:37
+#: src/views/config/ConfigEditor.vue:150 src/views/domain/DomainAdd.vue:37
 #: src/views/domain/DomainEdit.vue:143
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/stream/StreamEdit.vue:138
@@ -1756,7 +1827,9 @@ msgstr "Envoyer"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:213
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:253
-#: src/views/config/ConfigEdit.vue:40 src/views/domain/DomainList.vue:81
+#: src/views/config/components/Mkdir.vue:38
+#: src/views/config/components/Rename.vue:40
+#: src/views/config/ConfigEditor.vue:93 src/views/domain/DomainList.vue:81
 #: src/views/environment/BatchUpgrader.vue:57
 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
 #: src/views/preference/AuthSettings.vue:49
@@ -1812,7 +1885,7 @@ msgstr ""
 msgid "Single Directive"
 msgstr "Directive unique"
 
-#: src/routes/index.ts:207
+#: src/routes/index.ts:218
 msgid "Site Logs"
 msgstr "Journaux du site"
 
@@ -1920,7 +1993,7 @@ msgstr "Changer de certificat"
 msgid "Sync to"
 msgstr ""
 
-#: src/routes/index.ts:258
+#: src/routes/index.ts:269
 msgid "System"
 msgstr "Système"
 
@@ -1933,7 +2006,7 @@ msgstr ""
 msgid "Target"
 msgstr ""
 
-#: src/routes/index.ts:177 src/views/pty/Terminal.vue:114
+#: src/routes/index.ts:188 src/views/pty/Terminal.vue:114
 msgid "Terminal"
 msgstr "Terminal"
 
@@ -2092,18 +2165,19 @@ msgstr ""
 msgid "Trash"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:66
+#: src/components/OTP/useOTPModal.ts:70
 msgid "Two-factor authentication required"
 msgstr ""
 
 #: src/views/certificate/CertificateList/certColumns.tsx:25
-#: src/views/config/config.ts:12 src/views/notification/Notification.vue:13
+#: src/views/config/configColumns.ts:16
+#: src/views/notification/Notification.vue:13
 msgid "Type"
 msgstr "Type"
 
 #: src/views/certificate/ACMEUser.vue:53
-#: src/views/certificate/DNSCredential.vue:27 src/views/config/config.ts:27
-#: src/views/config/ConfigEdit.vue:121
+#: src/views/certificate/DNSCredential.vue:27
+#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:258
 #: src/views/domain/components/RightSettings.vue:86
 #: src/views/domain/DomainList.vue:41 src/views/environment/envColumns.tsx:124
 #: src/views/stream/components/RightSettings.vue:85
@@ -2115,7 +2189,7 @@ msgstr "Mis à jour le"
 msgid "Updated successfully"
 msgstr "Mis à jour avec succés"
 
-#: src/routes/index.ts:273 src/views/environment/Environment.vue:50
+#: src/routes/index.ts:284 src/views/environment/Environment.vue:50
 #: src/views/system/Upgrade.vue:145 src/views/system/Upgrade.vue:228
 msgid "Upgrade"
 msgstr "Mettre à niveau"
@@ -2247,6 +2321,10 @@ msgstr "Vous utilisez la dernière version"
 msgid "You can check Nginx UI upgrade at this page."
 msgstr "Vous pouvez vérifier la mise à niveau de Nginx UI sur cette page."
 
+#, fuzzy
+#~ msgid "Rename "
+#~ msgstr "Nom d'utilisateur"
+
 #~ msgid "Auto Cert"
 #~ msgstr "Auto Cert"
 

+ 124 - 48
app/src/language/ko_KR/app.po

@@ -21,15 +21,15 @@ msgstr ""
 msgid "2FA Settings"
 msgstr ""
 
-#: src/routes/index.ts:266
+#: src/routes/index.ts:277
 msgid "About"
 msgstr "소개"
 
-#: src/routes/index.ts:193 src/views/domain/ngx_conf/LogEntry.vue:76
+#: src/routes/index.ts:204 src/views/domain/ngx_conf/LogEntry.vue:76
 msgid "Access Logs"
 msgstr "접근 로그"
 
-#: src/routes/index.ts:131 src/views/certificate/ACMEUser.vue:76
+#: src/routes/index.ts:142 src/views/certificate/ACMEUser.vue:76
 #: src/views/certificate/ACMEUserSelector.vue:85
 #, fuzzy
 msgid "ACME User"
@@ -37,8 +37,9 @@ msgstr "사용자 이름"
 
 #: src/views/certificate/ACMEUser.vue:59
 #: src/views/certificate/CertificateList/certColumns.tsx:89
-#: src/views/certificate/DNSCredential.vue:33 src/views/config/config.ts:34
-#: src/views/domain/DomainList.vue:47 src/views/environment/envColumns.tsx:131
+#: src/views/certificate/DNSCredential.vue:33
+#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
+#: src/views/environment/envColumns.tsx:131
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
 #: src/views/user/userColumns.tsx:60
@@ -55,6 +56,12 @@ msgstr "작업"
 msgid "Add"
 msgstr "추가"
 
+#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:128
+#: src/views/config/ConfigEditor.vue:187
+#, fuzzy
+msgid "Add Configuration"
+msgstr "구성 편집"
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:95
 msgid "Add Directive Below"
 msgstr "아래에 지시문 추가"
@@ -186,7 +193,7 @@ msgid "Auto-renewal enabled for %{name}"
 msgstr "%{name}에 대한 자동 갱신 활성화됨"
 
 #: src/views/certificate/CertificateEditor.vue:247
-#: src/views/config/Config.vue:71 src/views/config/ConfigEdit.vue:87
+#: src/views/config/Config.vue:143 src/views/config/ConfigEditor.vue:196
 #: src/views/domain/DomainEdit.vue:253 src/views/nginx_log/NginxLog.vue:168
 #: src/views/stream/StreamEdit.vue:245
 msgid "Back"
@@ -216,7 +223,7 @@ msgstr ""
 msgid "Base information"
 msgstr "기본 정보"
 
-#: src/views/config/ConfigEdit.vue:115
+#: src/views/config/ConfigEditor.vue:224
 #: src/views/domain/components/RightSettings.vue:75
 #: src/views/preference/Preference.vue:110
 #: src/views/stream/components/RightSettings.vue:74
@@ -277,12 +284,12 @@ msgid_plural "Certificates Status"
 msgstr[0] "인증서 상태"
 msgstr[1] "인증서 상태"
 
-#: src/routes/index.ts:122
+#: src/routes/index.ts:133
 #: src/views/certificate/CertificateList/Certificate.vue:13
 msgid "Certificates"
 msgstr "인증서"
 
-#: src/routes/index.ts:139
+#: src/routes/index.ts:150
 msgid "Certificates List"
 msgstr "인증서 목록"
 
@@ -302,6 +309,11 @@ msgid_plural "Changed Certificates"
 msgstr[0] "인증서 변경"
 msgstr[1] "인증서 변경"
 
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "Changed Path"
+msgstr "인증서 변경"
+
 #: src/views/environment/BatchUpgrader.vue:161 src/views/system/Upgrade.vue:190
 msgid "Channel"
 msgstr "채널"
@@ -348,7 +360,7 @@ msgstr "구성 파일 테스트 성공"
 msgid "Configuration Name"
 msgstr "구성 이름"
 
-#: src/views/config/Config.vue:42
+#: src/views/config/Config.vue:91
 msgid "Configurations"
 msgstr "구성들"
 
@@ -398,10 +410,25 @@ msgstr "생성"
 msgid "Create Another"
 msgstr "다른 것 생성하기"
 
+#: src/views/config/Config.vue:99
+#, fuzzy
+msgid "Create File"
+msgstr "생성"
+
+#: src/views/config/components/Mkdir.vue:50 src/views/config/Config.vue:100
+#, fuzzy
+msgid "Create Folder"
+msgstr "다른 것 생성하기"
+
 #: src/views/notification/Notification.vue:31 src/views/user/userColumns.tsx:48
 msgid "Created at"
 msgstr "생성 시간"
 
+#: src/views/config/components/Mkdir.vue:35
+#, fuzzy
+msgid "Created successfully"
+msgstr "성공적으로 제거됨"
+
 #: src/language/constants.ts:9
 msgid "Creating client facilitates communication with the CA server"
 msgstr "클라이언트 생성은 CA 서버와의 통신을 용이하게 합니다"
@@ -437,7 +464,8 @@ msgid ""
 "indicator."
 msgstr ""
 
-#: src/routes/index.ts:39
+#: src/routes/index.ts:39 src/views/config/Config.vue:57
+#: src/views/config/ConfigEditor.vue:118 src/views/config/ConfigEditor.vue:79
 msgid "Dashboard"
 msgstr "대시보드"
 
@@ -516,7 +544,7 @@ msgstr "지시문"
 msgid "Directives"
 msgstr "지시문들"
 
-#: src/views/config/config.ts:18
+#: src/views/config/configColumns.ts:22
 msgid "Directory"
 msgstr "디렉토리"
 
@@ -546,7 +574,7 @@ msgstr "성공적으로 비활성화됨"
 msgid "Disk IO"
 msgstr "디스크 IO"
 
-#: src/routes/index.ts:167 src/views/certificate/DNSCredential.vue:40
+#: src/routes/index.ts:178 src/views/certificate/DNSCredential.vue:40
 msgid "DNS Credentials"
 msgstr "DNS 인증 정보"
 
@@ -659,7 +687,7 @@ msgstr "로컬로 성공적으로 복제됨"
 msgid "Edit %{n}"
 msgstr "%{n} 편집"
 
-#: src/routes/index.ts:112 src/views/config/ConfigEdit.vue:81
+#: src/routes/index.ts:122 src/views/config/ConfigEditor.vue:187
 msgid "Edit Configuration"
 msgstr "구성 편집"
 
@@ -748,7 +776,7 @@ msgstr "성공적으로 활성화됨"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Let's Encrypt로 웹사이트 암호화"
 
-#: src/routes/index.ts:217 src/views/environment/Environment.vue:34
+#: src/routes/index.ts:228 src/views/environment/Environment.vue:34
 msgid "Environment"
 msgstr "환경"
 
@@ -765,7 +793,7 @@ msgstr "환경"
 msgid "Error"
 msgstr "오류"
 
-#: src/routes/index.ts:200 src/views/domain/ngx_conf/LogEntry.vue:84
+#: src/routes/index.ts:211 src/views/domain/ngx_conf/LogEntry.vue:84
 msgid "Error Logs"
 msgstr "오류 로그"
 
@@ -814,7 +842,7 @@ msgstr "인증서 정보 가져오기 실패"
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr "저장 실패, 구성에서 구문 오류가 감지되었습니다."
 
-#: src/views/config/config.ts:20
+#: src/views/config/configColumns.ts:24
 msgid "File"
 msgstr "파일"
 
@@ -844,16 +872,16 @@ msgstr "완료됨"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "중국 사용자를 위해: https://mirror.ghproxy.com/"
 
-#: src/views/config/ConfigEdit.vue:90
+#: src/views/config/ConfigEditor.vue:199
 msgid "Format Code"
 msgstr "코드 형식"
 
-#: src/views/config/ConfigEdit.vue:68
+#: src/views/config/ConfigEditor.vue:166
 #, fuzzy
 msgid "Format error %{msg}"
 msgstr "형식 오류 %{msg}"
 
-#: src/views/config/ConfigEdit.vue:66
+#: src/views/config/ConfigEditor.vue:164
 #, fuzzy
 msgid "Format successfully"
 msgstr "성공적으로 형식 지정됨"
@@ -934,7 +962,7 @@ msgstr ""
 msgid "Import"
 msgstr "가져오기"
 
-#: src/routes/index.ts:157 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:168 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Import Certificate"
 msgstr "인증서 상태"
@@ -965,7 +993,7 @@ msgstr ""
 msgid "Input the recovery code:"
 msgstr ""
 
-#: src/routes/index.ts:288 src/views/other/Install.vue:134
+#: src/routes/index.ts:299 src/views/other/Install.vue:134
 msgid "Install"
 msgstr "설치"
 
@@ -987,7 +1015,17 @@ msgstr "유효함"
 msgid "Invalid 2FA or recovery code"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:60
+#: src/views/config/components/Rename.vue:62
+#: src/views/config/ConfigEditor.vue:233
+#, fuzzy
+msgid "Invalid filename"
+msgstr "Invalid E-mail!"
+
+#: src/views/config/components/Mkdir.vue:60
+msgid "Invalid folder name"
+msgstr ""
+
+#: src/components/OTP/useOTPModal.ts:64
 msgid "Invalid passcode or recovery code"
 msgstr ""
 
@@ -1092,7 +1130,7 @@ msgstr "위치들"
 msgid "Log"
 msgstr "로그인"
 
-#: src/routes/index.ts:294 src/views/other/Login.vue:192
+#: src/routes/index.ts:305 src/views/other/Login.vue:192
 msgid "Login"
 msgstr "로그인"
 
@@ -1132,7 +1170,8 @@ msgstr ""
 "인증서를 획득하기 전에 .well-known 디렉토리에 대한역방향 프록시를 "
 "HTTPChallengePort(기본값: 9180)로 구성했는지 확인하세요."
 
-#: src/routes/index.ts:102
+#: src/routes/index.ts:102 src/views/config/Config.vue:62
+#: src/views/config/ConfigEditor.vue:123 src/views/config/ConfigEditor.vue:84
 msgid "Manage Configs"
 msgstr "구성 관리"
 
@@ -1145,7 +1184,7 @@ msgstr "사이트 관리"
 msgid "Manage Streams"
 msgstr "스트림 관리"
 
-#: src/routes/index.ts:240 src/views/user/User.vue:9
+#: src/routes/index.ts:251 src/views/user/User.vue:9
 msgid "Manage Users"
 msgstr "사용자 관리"
 
@@ -1183,7 +1222,7 @@ msgstr "실행 모드"
 msgid "Modify"
 msgstr "설정 수정"
 
-#: src/routes/index.ts:147 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:158 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "인증서 상태"
@@ -1205,7 +1244,9 @@ msgstr "단일 지시문"
 #: src/views/certificate/ACMEUser.vue:13
 #: src/views/certificate/CertificateEditor.vue:152
 #: src/views/certificate/CertificateList/certColumns.tsx:10
-#: src/views/certificate/DNSCredential.vue:11 src/views/config/config.ts:7
+#: src/views/certificate/DNSCredential.vue:11
+#: src/views/config/components/Mkdir.vue:67 src/views/config/configColumns.ts:8
+#: src/views/config/ConfigEditor.vue:239
 #: src/views/domain/components/RightSettings.vue:83
 #: src/views/domain/components/SiteDuplicate.vue:129
 #: src/views/domain/DomainList.vue:13
@@ -1233,6 +1274,16 @@ msgstr "네트워크 총 수신"
 msgid "Network Total Send"
 msgstr "네트워크 총 송신"
 
+#: src/views/config/components/Rename.vue:70
+#, fuzzy
+msgid "New name"
+msgstr "이름 변경"
+
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "New Path"
+msgstr "경로"
+
 #: src/views/system/Upgrade.vue:210
 msgid "New version released"
 msgstr "새 버전 출시"
@@ -1264,7 +1315,7 @@ msgstr "Nginx 제어"
 msgid "Nginx Error Log Path"
 msgstr "Nginx 오류 로그 경로"
 
-#: src/routes/index.ts:185 src/views/nginx_log/NginxLog.vue:143
+#: src/routes/index.ts:196 src/views/nginx_log/NginxLog.vue:143
 msgid "Nginx Log"
 msgstr "Nginx 로그"
 
@@ -1301,7 +1352,7 @@ msgstr "노드 시크릿"
 msgid "Not After"
 msgstr "만료일"
 
-#: src/routes/index.ts:300
+#: src/routes/index.ts:311
 msgid "Not Found"
 msgstr "찾을 수 없음"
 
@@ -1319,7 +1370,7 @@ msgstr "참고"
 msgid "Notification"
 msgstr "알림"
 
-#: src/components/Notification/Notification.vue:82 src/routes/index.ts:231
+#: src/components/Notification/Notification.vue:82 src/routes/index.ts:242
 #, fuzzy
 msgid "Notifications"
 msgstr "알림"
@@ -1389,6 +1440,10 @@ msgstr "온라인"
 msgid "OpenAI"
 msgstr "오픈AI"
 
+#: src/views/config/components/Rename.vue:66
+msgid "Original name"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:177
 #, fuzzy
 msgid "OS"
@@ -1420,7 +1475,7 @@ msgstr "비밀번호"
 msgid "Password (*)"
 msgstr "비밀번호 (*)"
 
-#: src/views/config/ConfigEdit.vue:118
+#: src/views/config/ConfigEditor.vue:245
 #: src/views/domain/ngx_conf/LocationEditor.vue:118
 #: src/views/domain/ngx_conf/LocationEditor.vue:90
 msgid "Path"
@@ -1460,6 +1515,17 @@ msgstr ""
 "먼저 인증서 > DNS 자격 증명에 자격 증명을 추가한 다음,DNS 제공자의 API를 요청"
 "하려면 아래 자격 증명 중 하나를 선택해주세요."
 
+#: src/views/config/components/Rename.vue:61
+#: src/views/config/ConfigEditor.vue:232
+#, fuzzy
+msgid "Please input a filename"
+msgstr "사용자 이름을 입력해주세요!"
+
+#: src/views/config/components/Mkdir.vue:59
+#, fuzzy
+msgid "Please input a folder name"
+msgstr "사용자 이름을 입력해주세요!"
+
 #: src/views/domain/components/SiteDuplicate.vue:38
 #: src/views/stream/components/StreamDuplicate.vue:38
 msgid ""
@@ -1495,7 +1561,7 @@ msgstr "적어도 하나의 노드를 선택해주세요!"
 msgid "Pre-release"
 msgstr "사전 출시"
 
-#: src/routes/index.ts:249 src/views/preference/Preference.vue:105
+#: src/routes/index.ts:260 src/views/preference/Preference.vue:105
 msgid "Preference"
 msgstr "환경설정"
 
@@ -1620,11 +1686,17 @@ msgstr "성공적으로 제거됨"
 msgid "Removed successfully"
 msgstr "성공적으로 제거됨"
 
+#: src/views/config/components/Rename.vue:52 src/views/config/Config.vue:130
 #: src/views/domain/ngx_conf/NgxUpstream.vue:123
 #, fuzzy
 msgid "Rename"
 msgstr "이름 변경"
 
+#: src/views/config/components/Rename.vue:37
+#, fuzzy
+msgid "Rename successfully"
+msgstr "성공적으로 갱신됨"
+
 #: src/views/certificate/RenewCert.vue:43
 #: src/views/certificate/RenewCert.vue:47
 #, fuzzy
@@ -1679,7 +1751,7 @@ msgstr "실행 중"
 
 #: src/components/ChatGPT/ChatGPT.vue:251
 #: src/views/certificate/CertificateEditor.vue:254
-#: src/views/config/ConfigEdit.vue:96 src/views/domain/DomainEdit.vue:260
+#: src/views/config/ConfigEditor.vue:205 src/views/domain/DomainEdit.vue:260
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
 #: src/views/preference/Preference.vue:145 src/views/stream/StreamEdit.vue:252
 msgid "Save"
@@ -1689,7 +1761,7 @@ msgstr "저장"
 msgid "Save Directive"
 msgstr "지시문 저장"
 
-#: src/views/config/ConfigEdit.vue:57 src/views/domain/DomainAdd.vue:46
+#: src/views/config/ConfigEditor.vue:154 src/views/domain/DomainAdd.vue:46
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:41
 msgid "Save error %{msg}"
 msgstr "저장 오류 %{msg}"
@@ -1702,7 +1774,7 @@ msgstr "저장 오류 %{msg}"
 msgid "Save successfully"
 msgstr "성공적으로 저장됨"
 
-#: src/views/config/ConfigEdit.vue:55 src/views/domain/DomainAdd.vue:37
+#: src/views/config/ConfigEditor.vue:150 src/views/domain/DomainAdd.vue:37
 #: src/views/domain/DomainEdit.vue:143
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/stream/StreamEdit.vue:138
@@ -1733,7 +1805,9 @@ msgstr "보내기"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:213
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:253
-#: src/views/config/ConfigEdit.vue:40 src/views/domain/DomainList.vue:81
+#: src/views/config/components/Mkdir.vue:38
+#: src/views/config/components/Rename.vue:40
+#: src/views/config/ConfigEditor.vue:93 src/views/domain/DomainList.vue:81
 #: src/views/environment/BatchUpgrader.vue:57
 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
 #: src/views/preference/AuthSettings.vue:49
@@ -1787,7 +1861,7 @@ msgstr ""
 msgid "Single Directive"
 msgstr "단일 지시문"
 
-#: src/routes/index.ts:207
+#: src/routes/index.ts:218
 #, fuzzy
 msgid "Site Logs"
 msgstr "사이트 로그"
@@ -1896,7 +1970,7 @@ msgstr "인증서 갱신 성공"
 msgid "Sync to"
 msgstr ""
 
-#: src/routes/index.ts:258
+#: src/routes/index.ts:269
 msgid "System"
 msgstr "시스템"
 
@@ -1909,7 +1983,7 @@ msgstr ""
 msgid "Target"
 msgstr "대상"
 
-#: src/routes/index.ts:177 src/views/pty/Terminal.vue:114
+#: src/routes/index.ts:188 src/views/pty/Terminal.vue:114
 msgid "Terminal"
 msgstr "터미널"
 
@@ -2065,18 +2139,19 @@ msgstr ""
 msgid "Trash"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:66
+#: src/components/OTP/useOTPModal.ts:70
 msgid "Two-factor authentication required"
 msgstr ""
 
 #: src/views/certificate/CertificateList/certColumns.tsx:25
-#: src/views/config/config.ts:12 src/views/notification/Notification.vue:13
+#: src/views/config/configColumns.ts:16
+#: src/views/notification/Notification.vue:13
 msgid "Type"
 msgstr "유형"
 
 #: src/views/certificate/ACMEUser.vue:53
-#: src/views/certificate/DNSCredential.vue:27 src/views/config/config.ts:27
-#: src/views/config/ConfigEdit.vue:121
+#: src/views/certificate/DNSCredential.vue:27
+#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:258
 #: src/views/domain/components/RightSettings.vue:86
 #: src/views/domain/DomainList.vue:41 src/views/environment/envColumns.tsx:124
 #: src/views/stream/components/RightSettings.vue:85
@@ -2089,7 +2164,7 @@ msgstr "업데이트됨"
 msgid "Updated successfully"
 msgstr "성공적으로 저장되었습니다"
 
-#: src/routes/index.ts:273 src/views/environment/Environment.vue:50
+#: src/routes/index.ts:284 src/views/environment/Environment.vue:50
 #: src/views/system/Upgrade.vue:145 src/views/system/Upgrade.vue:228
 msgid "Upgrade"
 msgstr "업그레이드"
@@ -2225,6 +2300,10 @@ msgstr "최신 버전을 사용하고 있습니다"
 msgid "You can check Nginx UI upgrade at this page."
 msgstr "이 페이지에서 Nginx UI 업그레이드를 확인할 수 있습니다."
 
+#, fuzzy
+#~ msgid "Rename "
+#~ msgstr "이름 변경"
+
 #~ msgid "Auto Cert"
 #~ msgstr "자동 인증"
 
@@ -2284,6 +2363,3 @@ msgstr "이 페이지에서 Nginx UI 업그레이드를 확인할 수 있습니
 
 #~ msgid "404 Not Found"
 #~ msgstr "404 Not Found"
-
-#~ msgid "Invalid E-mail!"
-#~ msgstr "Invalid E-mail!"

+ 113 - 44
app/src/language/messages.pot

@@ -10,16 +10,16 @@ msgstr ""
 msgid "2FA Settings"
 msgstr ""
 
-#: src/routes/index.ts:266
+#: src/routes/index.ts:277
 msgid "About"
 msgstr ""
 
-#: src/routes/index.ts:193
+#: src/routes/index.ts:204
 #: src/views/domain/ngx_conf/LogEntry.vue:76
 msgid "Access Logs"
 msgstr ""
 
-#: src/routes/index.ts:131
+#: src/routes/index.ts:142
 #: src/views/certificate/ACMEUser.vue:76
 #: src/views/certificate/ACMEUserSelector.vue:85
 msgid "ACME User"
@@ -28,7 +28,7 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:59
 #: src/views/certificate/CertificateList/certColumns.tsx:89
 #: src/views/certificate/DNSCredential.vue:33
-#: src/views/config/config.ts:34
+#: src/views/config/configColumns.ts:38
 #: src/views/domain/DomainList.vue:47
 #: src/views/environment/envColumns.tsx:131
 #: src/views/notification/Notification.vue:37
@@ -48,6 +48,12 @@ msgstr ""
 msgid "Add"
 msgstr ""
 
+#: src/routes/index.ts:112
+#: src/views/config/ConfigEditor.vue:128
+#: src/views/config/ConfigEditor.vue:187
+msgid "Add Configuration"
+msgstr ""
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:95
 msgid "Add Directive Below"
 msgstr ""
@@ -175,8 +181,8 @@ msgid "Auto-renewal enabled for %{name}"
 msgstr ""
 
 #: src/views/certificate/CertificateEditor.vue:247
-#: src/views/config/Config.vue:71
-#: src/views/config/ConfigEdit.vue:87
+#: src/views/config/Config.vue:143
+#: src/views/config/ConfigEditor.vue:196
 #: src/views/domain/DomainEdit.vue:253
 #: src/views/nginx_log/NginxLog.vue:168
 #: src/views/stream/StreamEdit.vue:245
@@ -207,7 +213,7 @@ msgstr ""
 msgid "Base information"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:115
+#: src/views/config/ConfigEditor.vue:224
 #: src/views/domain/components/RightSettings.vue:75
 #: src/views/preference/Preference.vue:110
 #: src/views/stream/components/RightSettings.vue:74
@@ -266,12 +272,12 @@ msgid_plural "Certificates Status"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/routes/index.ts:122
+#: src/routes/index.ts:133
 #: src/views/certificate/CertificateList/Certificate.vue:13
 msgid "Certificates"
 msgstr ""
 
-#: src/routes/index.ts:139
+#: src/routes/index.ts:150
 msgid "Certificates List"
 msgstr ""
 
@@ -290,6 +296,10 @@ msgid_plural "Changed Certificates"
 msgstr[0] ""
 msgstr[1] ""
 
+#: src/views/config/ConfigEditor.vue:251
+msgid "Changed Path"
+msgstr ""
+
 #: src/views/environment/BatchUpgrader.vue:161
 #: src/views/system/Upgrade.vue:190
 msgid "Channel"
@@ -337,7 +347,7 @@ msgstr ""
 msgid "Configuration Name"
 msgstr ""
 
-#: src/views/config/Config.vue:42
+#: src/views/config/Config.vue:91
 msgid "Configurations"
 msgstr ""
 
@@ -387,11 +397,24 @@ msgstr ""
 msgid "Create Another"
 msgstr ""
 
+#: src/views/config/Config.vue:99
+msgid "Create File"
+msgstr ""
+
+#: src/views/config/components/Mkdir.vue:50
+#: src/views/config/Config.vue:100
+msgid "Create Folder"
+msgstr ""
+
 #: src/views/notification/Notification.vue:31
 #: src/views/user/userColumns.tsx:48
 msgid "Created at"
 msgstr ""
 
+#: src/views/config/components/Mkdir.vue:35
+msgid "Created successfully"
+msgstr ""
+
 #: src/language/constants.ts:9
 msgid "Creating client facilitates communication with the CA server"
 msgstr ""
@@ -426,6 +449,9 @@ msgid "Customize the name of local server to be displayed in the environment ind
 msgstr ""
 
 #: src/routes/index.ts:39
+#: src/views/config/Config.vue:57
+#: src/views/config/ConfigEditor.vue:118
+#: src/views/config/ConfigEditor.vue:79
 msgid "Dashboard"
 msgstr ""
 
@@ -504,7 +530,7 @@ msgstr ""
 msgid "Directives"
 msgstr ""
 
-#: src/views/config/config.ts:18
+#: src/views/config/configColumns.ts:22
 msgid "Directory"
 msgstr ""
 
@@ -538,7 +564,7 @@ msgstr ""
 msgid "Disk IO"
 msgstr ""
 
-#: src/routes/index.ts:167
+#: src/routes/index.ts:178
 #: src/views/certificate/DNSCredential.vue:40
 msgid "DNS Credentials"
 msgstr ""
@@ -652,8 +678,8 @@ msgstr ""
 msgid "Edit %{n}"
 msgstr ""
 
-#: src/routes/index.ts:112
-#: src/views/config/ConfigEdit.vue:81
+#: src/routes/index.ts:122
+#: src/views/config/ConfigEditor.vue:187
 msgid "Edit Configuration"
 msgstr ""
 
@@ -742,7 +768,7 @@ msgstr ""
 msgid "Encrypt website with Let's Encrypt"
 msgstr ""
 
-#: src/routes/index.ts:217
+#: src/routes/index.ts:228
 #: src/views/environment/Environment.vue:34
 msgid "Environment"
 msgstr ""
@@ -760,7 +786,7 @@ msgstr ""
 msgid "Error"
 msgstr ""
 
-#: src/routes/index.ts:200
+#: src/routes/index.ts:211
 #: src/views/domain/ngx_conf/LogEntry.vue:84
 msgid "Error Logs"
 msgstr ""
@@ -809,7 +835,7 @@ msgstr ""
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr ""
 
-#: src/views/config/config.ts:20
+#: src/views/config/configColumns.ts:24
 msgid "File"
 msgstr ""
 
@@ -839,15 +865,15 @@ msgstr ""
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:90
+#: src/views/config/ConfigEditor.vue:199
 msgid "Format Code"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:68
+#: src/views/config/ConfigEditor.vue:166
 msgid "Format error %{msg}"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:66
+#: src/views/config/ConfigEditor.vue:164
 msgid "Format successfully"
 msgstr ""
 
@@ -920,7 +946,7 @@ msgstr ""
 msgid "Import"
 msgstr ""
 
-#: src/routes/index.ts:157
+#: src/routes/index.ts:168
 #: src/views/certificate/CertificateEditor.vue:79
 msgid "Import Certificate"
 msgstr ""
@@ -950,7 +976,7 @@ msgstr ""
 msgid "Input the recovery code:"
 msgstr ""
 
-#: src/routes/index.ts:288
+#: src/routes/index.ts:299
 #: src/views/other/Install.vue:134
 msgid "Install"
 msgstr ""
@@ -971,7 +997,16 @@ msgstr ""
 msgid "Invalid 2FA or recovery code"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:60
+#: src/views/config/components/Rename.vue:62
+#: src/views/config/ConfigEditor.vue:233
+msgid "Invalid filename"
+msgstr ""
+
+#: src/views/config/components/Mkdir.vue:60
+msgid "Invalid folder name"
+msgstr ""
+
+#: src/components/OTP/useOTPModal.ts:64
 msgid "Invalid passcode or recovery code"
 msgstr ""
 
@@ -1067,7 +1102,7 @@ msgstr ""
 msgid "Log"
 msgstr ""
 
-#: src/routes/index.ts:294
+#: src/routes/index.ts:305
 #: src/views/other/Login.vue:192
 msgid "Login"
 msgstr ""
@@ -1094,6 +1129,9 @@ msgid "Make sure you have configured a reverse proxy for .well-known directory t
 msgstr ""
 
 #: src/routes/index.ts:102
+#: src/views/config/Config.vue:62
+#: src/views/config/ConfigEditor.vue:123
+#: src/views/config/ConfigEditor.vue:84
 msgid "Manage Configs"
 msgstr ""
 
@@ -1107,7 +1145,7 @@ msgstr ""
 msgid "Manage Streams"
 msgstr ""
 
-#: src/routes/index.ts:240
+#: src/routes/index.ts:251
 #: src/views/user/User.vue:9
 msgid "Manage Users"
 msgstr ""
@@ -1143,7 +1181,7 @@ msgstr ""
 msgid "Modify"
 msgstr ""
 
-#: src/routes/index.ts:147
+#: src/routes/index.ts:158
 #: src/views/certificate/CertificateEditor.vue:79
 msgid "Modify Certificate"
 msgstr ""
@@ -1164,7 +1202,9 @@ msgstr ""
 #: src/views/certificate/CertificateEditor.vue:152
 #: src/views/certificate/CertificateList/certColumns.tsx:10
 #: src/views/certificate/DNSCredential.vue:11
-#: src/views/config/config.ts:7
+#: src/views/config/components/Mkdir.vue:67
+#: src/views/config/configColumns.ts:8
+#: src/views/config/ConfigEditor.vue:239
 #: src/views/domain/components/RightSettings.vue:83
 #: src/views/domain/components/SiteDuplicate.vue:129
 #: src/views/domain/DomainList.vue:13
@@ -1193,6 +1233,14 @@ msgstr ""
 msgid "Network Total Send"
 msgstr ""
 
+#: src/views/config/components/Rename.vue:70
+msgid "New name"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:251
+msgid "New Path"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:210
 msgid "New version released"
 msgstr ""
@@ -1224,7 +1272,7 @@ msgstr ""
 msgid "Nginx Error Log Path"
 msgstr ""
 
-#: src/routes/index.ts:185
+#: src/routes/index.ts:196
 #: src/views/nginx_log/NginxLog.vue:143
 msgid "Nginx Log"
 msgstr ""
@@ -1260,7 +1308,7 @@ msgstr ""
 msgid "Not After"
 msgstr ""
 
-#: src/routes/index.ts:300
+#: src/routes/index.ts:311
 msgid "Not Found"
 msgstr ""
 
@@ -1278,7 +1326,7 @@ msgid "Notification"
 msgstr ""
 
 #: src/components/Notification/Notification.vue:82
-#: src/routes/index.ts:231
+#: src/routes/index.ts:242
 msgid "Notifications"
 msgstr ""
 
@@ -1344,6 +1392,10 @@ msgstr ""
 msgid "OpenAI"
 msgstr ""
 
+#: src/views/config/components/Rename.vue:66
+msgid "Original name"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:177
 msgid "OS"
 msgstr ""
@@ -1375,7 +1427,7 @@ msgstr ""
 msgid "Password (*)"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:118
+#: src/views/config/ConfigEditor.vue:245
 #: src/views/domain/ngx_conf/LocationEditor.vue:118
 #: src/views/domain/ngx_conf/LocationEditor.vue:90
 msgid "Path"
@@ -1409,6 +1461,15 @@ msgstr ""
 msgid "Please first add credentials in Certification > DNS Credentials, and then select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
 
+#: src/views/config/components/Rename.vue:61
+#: src/views/config/ConfigEditor.vue:232
+msgid "Please input a filename"
+msgstr ""
+
+#: src/views/config/components/Mkdir.vue:59
+msgid "Please input a folder name"
+msgstr ""
+
 #: src/views/domain/components/SiteDuplicate.vue:38
 #: src/views/stream/components/StreamDuplicate.vue:38
 msgid "Please input name, this will be used as the filename of the new configuration!"
@@ -1444,7 +1505,7 @@ msgstr ""
 msgid "Pre-release"
 msgstr ""
 
-#: src/routes/index.ts:249
+#: src/routes/index.ts:260
 #: src/views/preference/Preference.vue:105
 msgid "Preference"
 msgstr ""
@@ -1561,10 +1622,16 @@ msgstr ""
 msgid "Removed successfully"
 msgstr ""
 
+#: src/views/config/components/Rename.vue:52
+#: src/views/config/Config.vue:130
 #: src/views/domain/ngx_conf/NgxUpstream.vue:123
 msgid "Rename"
 msgstr ""
 
+#: src/views/config/components/Rename.vue:37
+msgid "Rename successfully"
+msgstr ""
+
 #: src/views/certificate/RenewCert.vue:43
 #: src/views/certificate/RenewCert.vue:47
 msgid "Renew Certificate"
@@ -1613,7 +1680,7 @@ msgstr ""
 
 #: src/components/ChatGPT/ChatGPT.vue:251
 #: src/views/certificate/CertificateEditor.vue:254
-#: src/views/config/ConfigEdit.vue:96
+#: src/views/config/ConfigEditor.vue:205
 #: src/views/domain/DomainEdit.vue:260
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
 #: src/views/preference/Preference.vue:145
@@ -1625,7 +1692,7 @@ msgstr ""
 msgid "Save Directive"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:57
+#: src/views/config/ConfigEditor.vue:154
 #: src/views/domain/DomainAdd.vue:46
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:41
 msgid "Save error %{msg}"
@@ -1638,7 +1705,7 @@ msgstr ""
 msgid "Save successfully"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:55
+#: src/views/config/ConfigEditor.vue:150
 #: src/views/domain/DomainAdd.vue:37
 #: src/views/domain/DomainEdit.vue:143
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
@@ -1670,7 +1737,9 @@ msgstr ""
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:213
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:253
-#: src/views/config/ConfigEdit.vue:40
+#: src/views/config/components/Mkdir.vue:38
+#: src/views/config/components/Rename.vue:40
+#: src/views/config/ConfigEditor.vue:93
 #: src/views/domain/DomainList.vue:81
 #: src/views/environment/BatchUpgrader.vue:57
 #: src/views/environment/Environment.vue:15
@@ -1725,7 +1794,7 @@ msgstr ""
 msgid "Single Directive"
 msgstr ""
 
-#: src/routes/index.ts:207
+#: src/routes/index.ts:218
 msgid "Site Logs"
 msgstr ""
 
@@ -1822,7 +1891,7 @@ msgstr ""
 msgid "Sync to"
 msgstr ""
 
-#: src/routes/index.ts:258
+#: src/routes/index.ts:269
 msgid "System"
 msgstr ""
 
@@ -1835,7 +1904,7 @@ msgstr ""
 msgid "Target"
 msgstr ""
 
-#: src/routes/index.ts:177
+#: src/routes/index.ts:188
 #: src/views/pty/Terminal.vue:114
 msgid "Terminal"
 msgstr ""
@@ -1957,20 +2026,20 @@ msgstr ""
 msgid "Trash"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:66
+#: src/components/OTP/useOTPModal.ts:70
 msgid "Two-factor authentication required"
 msgstr ""
 
 #: src/views/certificate/CertificateList/certColumns.tsx:25
-#: src/views/config/config.ts:12
+#: src/views/config/configColumns.ts:16
 #: src/views/notification/Notification.vue:13
 msgid "Type"
 msgstr ""
 
 #: src/views/certificate/ACMEUser.vue:53
 #: src/views/certificate/DNSCredential.vue:27
-#: src/views/config/config.ts:27
-#: src/views/config/ConfigEdit.vue:121
+#: src/views/config/configColumns.ts:31
+#: src/views/config/ConfigEditor.vue:258
 #: src/views/domain/components/RightSettings.vue:86
 #: src/views/domain/DomainList.vue:41
 #: src/views/environment/envColumns.tsx:124
@@ -1984,7 +2053,7 @@ msgstr ""
 msgid "Updated successfully"
 msgstr ""
 
-#: src/routes/index.ts:273
+#: src/routes/index.ts:284
 #: src/views/environment/Environment.vue:50
 #: src/views/system/Upgrade.vue:145
 #: src/views/system/Upgrade.vue:228

+ 124 - 48
app/src/language/ru_RU/app.po

@@ -17,15 +17,15 @@ msgstr ""
 msgid "2FA Settings"
 msgstr ""
 
-#: src/routes/index.ts:266
+#: src/routes/index.ts:277
 msgid "About"
 msgstr "О проекте"
 
-#: src/routes/index.ts:193 src/views/domain/ngx_conf/LogEntry.vue:76
+#: src/routes/index.ts:204 src/views/domain/ngx_conf/LogEntry.vue:76
 msgid "Access Logs"
 msgstr "Журнал доступа"
 
-#: src/routes/index.ts:131 src/views/certificate/ACMEUser.vue:76
+#: src/routes/index.ts:142 src/views/certificate/ACMEUser.vue:76
 #: src/views/certificate/ACMEUserSelector.vue:85
 #, fuzzy
 msgid "ACME User"
@@ -33,8 +33,9 @@ msgstr "Пользователь"
 
 #: src/views/certificate/ACMEUser.vue:59
 #: src/views/certificate/CertificateList/certColumns.tsx:89
-#: src/views/certificate/DNSCredential.vue:33 src/views/config/config.ts:34
-#: src/views/domain/DomainList.vue:47 src/views/environment/envColumns.tsx:131
+#: src/views/certificate/DNSCredential.vue:33
+#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
+#: src/views/environment/envColumns.tsx:131
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
 #: src/views/user/userColumns.tsx:60
@@ -51,6 +52,12 @@ msgstr "Действие"
 msgid "Add"
 msgstr "Добавить"
 
+#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:128
+#: src/views/config/ConfigEditor.vue:187
+#, fuzzy
+msgid "Add Configuration"
+msgstr "Редактировать Конфигурацию"
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:95
 msgid "Add Directive Below"
 msgstr "Добавить директиву ниже"
@@ -188,7 +195,7 @@ msgid "Auto-renewal enabled for %{name}"
 msgstr "Автообновление включено для %{name}"
 
 #: src/views/certificate/CertificateEditor.vue:247
-#: src/views/config/Config.vue:71 src/views/config/ConfigEdit.vue:87
+#: src/views/config/Config.vue:143 src/views/config/ConfigEditor.vue:196
 #: src/views/domain/DomainEdit.vue:253 src/views/nginx_log/NginxLog.vue:168
 #: src/views/stream/StreamEdit.vue:245
 msgid "Back"
@@ -219,7 +226,7 @@ msgstr ""
 msgid "Base information"
 msgstr "Основная информация"
 
-#: src/views/config/ConfigEdit.vue:115
+#: src/views/config/ConfigEditor.vue:224
 #: src/views/domain/components/RightSettings.vue:75
 #: src/views/preference/Preference.vue:110
 #: src/views/stream/components/RightSettings.vue:74
@@ -282,13 +289,13 @@ msgid_plural "Certificates Status"
 msgstr[0] "Статус сертификата"
 msgstr[1] "Статус сертификата"
 
-#: src/routes/index.ts:122
+#: src/routes/index.ts:133
 #: src/views/certificate/CertificateList/Certificate.vue:13
 #, fuzzy
 msgid "Certificates"
 msgstr "Статус сертификата"
 
-#: src/routes/index.ts:139
+#: src/routes/index.ts:150
 #, fuzzy
 msgid "Certificates List"
 msgstr "Список"
@@ -310,6 +317,11 @@ msgid_plural "Changed Certificates"
 msgstr[0] "Сертификат действителен"
 msgstr[1] "Сертификат действителен"
 
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "Changed Path"
+msgstr "Сертификат действителен"
+
 #: src/views/environment/BatchUpgrader.vue:161 src/views/system/Upgrade.vue:190
 msgid "Channel"
 msgstr "Канал"
@@ -359,7 +371,7 @@ msgstr "Проверка конфигурации успешна"
 msgid "Configuration Name"
 msgstr "Название конфигурации"
 
-#: src/views/config/Config.vue:42
+#: src/views/config/Config.vue:91
 msgid "Configurations"
 msgstr "Конфигурации"
 
@@ -410,10 +422,25 @@ msgstr "Создан в"
 msgid "Create Another"
 msgstr "Создать еще"
 
+#: src/views/config/Config.vue:99
+#, fuzzy
+msgid "Create File"
+msgstr "Создан в"
+
+#: src/views/config/components/Mkdir.vue:50 src/views/config/Config.vue:100
+#, fuzzy
+msgid "Create Folder"
+msgstr "Создать еще"
+
 #: src/views/notification/Notification.vue:31 src/views/user/userColumns.tsx:48
 msgid "Created at"
 msgstr "Создан в"
 
+#: src/views/config/components/Mkdir.vue:35
+#, fuzzy
+msgid "Created successfully"
+msgstr "Отключено успешно"
+
 #: src/language/constants.ts:9
 msgid "Creating client facilitates communication with the CA server"
 msgstr ""
@@ -449,7 +476,8 @@ msgid ""
 "indicator."
 msgstr ""
 
-#: src/routes/index.ts:39
+#: src/routes/index.ts:39 src/views/config/Config.vue:57
+#: src/views/config/ConfigEditor.vue:118 src/views/config/ConfigEditor.vue:79
 msgid "Dashboard"
 msgstr "Доска"
 
@@ -530,7 +558,7 @@ msgstr "Деректива"
 msgid "Directives"
 msgstr "Дерективы"
 
-#: src/views/config/config.ts:18
+#: src/views/config/configColumns.ts:22
 #, fuzzy
 msgid "Directory"
 msgstr "Деректива"
@@ -562,7 +590,7 @@ msgstr "Отключено успешно"
 msgid "Disk IO"
 msgstr "Нагрузка на Диск IO"
 
-#: src/routes/index.ts:167 src/views/certificate/DNSCredential.vue:40
+#: src/routes/index.ts:178 src/views/certificate/DNSCredential.vue:40
 msgid "DNS Credentials"
 msgstr ""
 
@@ -687,7 +715,7 @@ msgstr "Saved successfully"
 msgid "Edit %{n}"
 msgstr "Редактировать %{n}"
 
-#: src/routes/index.ts:112 src/views/config/ConfigEdit.vue:81
+#: src/routes/index.ts:122 src/views/config/ConfigEditor.vue:187
 msgid "Edit Configuration"
 msgstr "Редактировать Конфигурацию"
 
@@ -779,7 +807,7 @@ msgstr "Активировано успешно"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Использовать для сайта Let's Encrypt"
 
-#: src/routes/index.ts:217 src/views/environment/Environment.vue:34
+#: src/routes/index.ts:228 src/views/environment/Environment.vue:34
 msgid "Environment"
 msgstr "Окружение"
 
@@ -797,7 +825,7 @@ msgstr "Комментарии"
 msgid "Error"
 msgstr "Ошибка"
 
-#: src/routes/index.ts:200 src/views/domain/ngx_conf/LogEntry.vue:84
+#: src/routes/index.ts:211 src/views/domain/ngx_conf/LogEntry.vue:84
 msgid "Error Logs"
 msgstr "Ошибка логирования"
 
@@ -846,7 +874,7 @@ msgstr "Не удалось получить информацию о серти
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr "Не удалось сохранить, обнаружены синтаксические ошибки в конфигурации."
 
-#: src/views/config/config.ts:20
+#: src/views/config/configColumns.ts:24
 msgid "File"
 msgstr "Файл"
 
@@ -876,16 +904,16 @@ msgstr "Готово"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr ""
 
-#: src/views/config/ConfigEdit.vue:90
+#: src/views/config/ConfigEditor.vue:199
 msgid "Format Code"
 msgstr "Форматировать код"
 
-#: src/views/config/ConfigEdit.vue:68
+#: src/views/config/ConfigEditor.vue:166
 #, fuzzy
 msgid "Format error %{msg}"
 msgstr "Ошибка форматирования %{msg}"
 
-#: src/views/config/ConfigEdit.vue:66
+#: src/views/config/ConfigEditor.vue:164
 #, fuzzy
 msgid "Format successfully"
 msgstr "Форматирование успешно"
@@ -967,7 +995,7 @@ msgstr ""
 msgid "Import"
 msgstr "Экспорт"
 
-#: src/routes/index.ts:157 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:168 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Import Certificate"
 msgstr "Статус сертификата"
@@ -998,7 +1026,7 @@ msgstr ""
 msgid "Input the recovery code:"
 msgstr ""
 
-#: src/routes/index.ts:288 src/views/other/Install.vue:134
+#: src/routes/index.ts:299 src/views/other/Install.vue:134
 msgid "Install"
 msgstr "Установить"
 
@@ -1020,7 +1048,17 @@ msgstr "Действительный"
 msgid "Invalid 2FA or recovery code"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:60
+#: src/views/config/components/Rename.vue:62
+#: src/views/config/ConfigEditor.vue:233
+#, fuzzy
+msgid "Invalid filename"
+msgstr "Invalid E-mail!"
+
+#: src/views/config/components/Mkdir.vue:60
+msgid "Invalid folder name"
+msgstr ""
+
+#: src/components/OTP/useOTPModal.ts:64
 msgid "Invalid passcode or recovery code"
 msgstr ""
 
@@ -1126,7 +1164,7 @@ msgstr "Locations"
 msgid "Log"
 msgstr "Логин"
 
-#: src/routes/index.ts:294 src/views/other/Login.vue:192
+#: src/routes/index.ts:305 src/views/other/Login.vue:192
 msgid "Login"
 msgstr "Логин"
 
@@ -1161,7 +1199,8 @@ msgstr ""
 "Убедитесь, что вы настроили обратный прокси-сервер для каталога .well-known "
 "на HTTPChallengePort перед получением сертификата»."
 
-#: src/routes/index.ts:102
+#: src/routes/index.ts:102 src/views/config/Config.vue:62
+#: src/views/config/ConfigEditor.vue:123 src/views/config/ConfigEditor.vue:84
 msgid "Manage Configs"
 msgstr "Конфигурации"
 
@@ -1174,7 +1213,7 @@ msgstr "Сайты"
 msgid "Manage Streams"
 msgstr "Управление потоками"
 
-#: src/routes/index.ts:240 src/views/user/User.vue:9
+#: src/routes/index.ts:251 src/views/user/User.vue:9
 msgid "Manage Users"
 msgstr "Пользователи"
 
@@ -1212,7 +1251,7 @@ msgstr "Расширенный режим"
 msgid "Modify"
 msgstr "Изменить"
 
-#: src/routes/index.ts:147 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:158 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "Статус сертификата"
@@ -1234,7 +1273,9 @@ msgstr "Одиночная директива"
 #: src/views/certificate/ACMEUser.vue:13
 #: src/views/certificate/CertificateEditor.vue:152
 #: src/views/certificate/CertificateList/certColumns.tsx:10
-#: src/views/certificate/DNSCredential.vue:11 src/views/config/config.ts:7
+#: src/views/certificate/DNSCredential.vue:11
+#: src/views/config/components/Mkdir.vue:67 src/views/config/configColumns.ts:8
+#: src/views/config/ConfigEditor.vue:239
 #: src/views/domain/components/RightSettings.vue:83
 #: src/views/domain/components/SiteDuplicate.vue:129
 #: src/views/domain/DomainList.vue:13
@@ -1262,6 +1303,16 @@ msgstr "Всего получено"
 msgid "Network Total Send"
 msgstr "Всего отправлено"
 
+#: src/views/config/components/Rename.vue:70
+#, fuzzy
+msgid "New name"
+msgstr "Имя пользователя"
+
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "New Path"
+msgstr "Путь"
+
 #: src/views/system/Upgrade.vue:210
 msgid "New version released"
 msgstr "Вышла новая версия"
@@ -1294,7 +1345,7 @@ msgstr "Управление Nginx"
 msgid "Nginx Error Log Path"
 msgstr "Путь для Nginx Error Log"
 
-#: src/routes/index.ts:185 src/views/nginx_log/NginxLog.vue:143
+#: src/routes/index.ts:196 src/views/nginx_log/NginxLog.vue:143
 msgid "Nginx Log"
 msgstr "Журнал"
 
@@ -1331,7 +1382,7 @@ msgstr ""
 msgid "Not After"
 msgstr ""
 
-#: src/routes/index.ts:300
+#: src/routes/index.ts:311
 msgid "Not Found"
 msgstr "Не найден"
 
@@ -1349,7 +1400,7 @@ msgstr "Заметка"
 msgid "Notification"
 msgstr "Сертификат"
 
-#: src/components/Notification/Notification.vue:82 src/routes/index.ts:231
+#: src/components/Notification/Notification.vue:82 src/routes/index.ts:242
 #, fuzzy
 msgid "Notifications"
 msgstr "Уведомления"
@@ -1419,6 +1470,10 @@ msgstr ""
 msgid "OpenAI"
 msgstr ""
 
+#: src/views/config/components/Rename.vue:66
+msgid "Original name"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:177
 #, fuzzy
 msgid "OS"
@@ -1450,7 +1505,7 @@ msgstr "Пароль"
 msgid "Password (*)"
 msgstr "Пароль (*)"
 
-#: src/views/config/ConfigEdit.vue:118
+#: src/views/config/ConfigEditor.vue:245
 #: src/views/domain/ngx_conf/LocationEditor.vue:118
 #: src/views/domain/ngx_conf/LocationEditor.vue:90
 msgid "Path"
@@ -1488,6 +1543,17 @@ msgid ""
 "select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
 
+#: src/views/config/components/Rename.vue:61
+#: src/views/config/ConfigEditor.vue:232
+#, fuzzy
+msgid "Please input a filename"
+msgstr "Введите ваше имя пользователя!"
+
+#: src/views/config/components/Mkdir.vue:59
+#, fuzzy
+msgid "Please input a folder name"
+msgstr "Введите ваше имя пользователя!"
+
 #: src/views/domain/components/SiteDuplicate.vue:38
 #: src/views/stream/components/StreamDuplicate.vue:38
 msgid ""
@@ -1525,7 +1591,7 @@ msgstr ""
 msgid "Pre-release"
 msgstr ""
 
-#: src/routes/index.ts:249 src/views/preference/Preference.vue:105
+#: src/routes/index.ts:260 src/views/preference/Preference.vue:105
 msgid "Preference"
 msgstr "Настройки"
 
@@ -1650,11 +1716,17 @@ msgstr "Успешно сохранено"
 msgid "Removed successfully"
 msgstr "Успешно сохранено"
 
+#: src/views/config/components/Rename.vue:52 src/views/config/Config.vue:130
 #: src/views/domain/ngx_conf/NgxUpstream.vue:123
 #, fuzzy
 msgid "Rename"
 msgstr "Имя пользователя"
 
+#: src/views/config/components/Rename.vue:37
+#, fuzzy
+msgid "Rename successfully"
+msgstr "Активировано успешно"
+
 #: src/views/certificate/RenewCert.vue:43
 #: src/views/certificate/RenewCert.vue:47
 #, fuzzy
@@ -1709,7 +1781,7 @@ msgstr "Выполняется"
 
 #: src/components/ChatGPT/ChatGPT.vue:251
 #: src/views/certificate/CertificateEditor.vue:254
-#: src/views/config/ConfigEdit.vue:96 src/views/domain/DomainEdit.vue:260
+#: src/views/config/ConfigEditor.vue:205 src/views/domain/DomainEdit.vue:260
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
 #: src/views/preference/Preference.vue:145 src/views/stream/StreamEdit.vue:252
 msgid "Save"
@@ -1719,7 +1791,7 @@ msgstr "Сохранить"
 msgid "Save Directive"
 msgstr "Сохранить директиву"
 
-#: src/views/config/ConfigEdit.vue:57 src/views/domain/DomainAdd.vue:46
+#: src/views/config/ConfigEditor.vue:154 src/views/domain/DomainAdd.vue:46
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:41
 msgid "Save error %{msg}"
 msgstr "Ошибка сохранения %{msg}"
@@ -1732,7 +1804,7 @@ msgstr "Ошибка сохранения %{msg}"
 msgid "Save successfully"
 msgstr "Успешно сохранено"
 
-#: src/views/config/ConfigEdit.vue:55 src/views/domain/DomainAdd.vue:37
+#: src/views/config/ConfigEditor.vue:150 src/views/domain/DomainAdd.vue:37
 #: src/views/domain/DomainEdit.vue:143
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/stream/StreamEdit.vue:138
@@ -1763,7 +1835,9 @@ msgstr "Отправлено"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:213
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:253
-#: src/views/config/ConfigEdit.vue:40 src/views/domain/DomainList.vue:81
+#: src/views/config/components/Mkdir.vue:38
+#: src/views/config/components/Rename.vue:40
+#: src/views/config/ConfigEditor.vue:93 src/views/domain/DomainList.vue:81
 #: src/views/environment/BatchUpgrader.vue:57
 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
 #: src/views/preference/AuthSettings.vue:49
@@ -1817,7 +1891,7 @@ msgstr ""
 msgid "Single Directive"
 msgstr "Одиночная Директива"
 
-#: src/routes/index.ts:207
+#: src/routes/index.ts:218
 #, fuzzy
 msgid "Site Logs"
 msgstr "Логи сайтов"
@@ -1927,7 +2001,7 @@ msgstr "Сертификат действителен"
 msgid "Sync to"
 msgstr ""
 
-#: src/routes/index.ts:258
+#: src/routes/index.ts:269
 msgid "System"
 msgstr "Система"
 
@@ -1940,7 +2014,7 @@ msgstr ""
 msgid "Target"
 msgstr ""
 
-#: src/routes/index.ts:177 src/views/pty/Terminal.vue:114
+#: src/routes/index.ts:188 src/views/pty/Terminal.vue:114
 msgid "Terminal"
 msgstr "Терминал"
 
@@ -2094,18 +2168,19 @@ msgstr ""
 msgid "Trash"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:66
+#: src/components/OTP/useOTPModal.ts:70
 msgid "Two-factor authentication required"
 msgstr ""
 
 #: src/views/certificate/CertificateList/certColumns.tsx:25
-#: src/views/config/config.ts:12 src/views/notification/Notification.vue:13
+#: src/views/config/configColumns.ts:16
+#: src/views/notification/Notification.vue:13
 msgid "Type"
 msgstr "Тип"
 
 #: src/views/certificate/ACMEUser.vue:53
-#: src/views/certificate/DNSCredential.vue:27 src/views/config/config.ts:27
-#: src/views/config/ConfigEdit.vue:121
+#: src/views/certificate/DNSCredential.vue:27
+#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:258
 #: src/views/domain/components/RightSettings.vue:86
 #: src/views/domain/DomainList.vue:41 src/views/environment/envColumns.tsx:124
 #: src/views/stream/components/RightSettings.vue:85
@@ -2118,7 +2193,7 @@ msgstr "Обновлено в"
 msgid "Updated successfully"
 msgstr "Обновлено успешно"
 
-#: src/routes/index.ts:273 src/views/environment/Environment.vue:50
+#: src/routes/index.ts:284 src/views/environment/Environment.vue:50
 #: src/views/system/Upgrade.vue:145 src/views/system/Upgrade.vue:228
 msgid "Upgrade"
 msgstr "Обновление"
@@ -2251,6 +2326,10 @@ msgstr "Вы используете последнюю версию"
 msgid "You can check Nginx UI upgrade at this page."
 msgstr "Вы можете проверить обновление Nginx UI на этой странице."
 
+#, fuzzy
+#~ msgid "Rename "
+#~ msgstr "Имя пользователя"
+
 #~ msgid "Auto Cert"
 #~ msgstr "Авто Сертификат"
 
@@ -2321,6 +2400,3 @@ msgstr "Вы можете проверить обновление Nginx UI на
 
 #~ msgid "404 Not Found"
 #~ msgstr "404 Not Found"
-
-#~ msgid "Invalid E-mail!"
-#~ msgstr "Invalid E-mail!"

+ 124 - 48
app/src/language/vi_VN/app.po

@@ -17,15 +17,15 @@ msgstr ""
 msgid "2FA Settings"
 msgstr ""
 
-#: src/routes/index.ts:266
+#: src/routes/index.ts:277
 msgid "About"
 msgstr "Tác giả"
 
-#: src/routes/index.ts:193 src/views/domain/ngx_conf/LogEntry.vue:76
+#: src/routes/index.ts:204 src/views/domain/ngx_conf/LogEntry.vue:76
 msgid "Access Logs"
 msgstr "Log truy cập"
 
-#: src/routes/index.ts:131 src/views/certificate/ACMEUser.vue:76
+#: src/routes/index.ts:142 src/views/certificate/ACMEUser.vue:76
 #: src/views/certificate/ACMEUserSelector.vue:85
 #, fuzzy
 msgid "ACME User"
@@ -33,8 +33,9 @@ msgstr "Người dùng"
 
 #: src/views/certificate/ACMEUser.vue:59
 #: src/views/certificate/CertificateList/certColumns.tsx:89
-#: src/views/certificate/DNSCredential.vue:33 src/views/config/config.ts:34
-#: src/views/domain/DomainList.vue:47 src/views/environment/envColumns.tsx:131
+#: src/views/certificate/DNSCredential.vue:33
+#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
+#: src/views/environment/envColumns.tsx:131
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
 #: src/views/user/userColumns.tsx:60
@@ -51,6 +52,12 @@ msgstr "Hành động"
 msgid "Add"
 msgstr "Thêm"
 
+#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:128
+#: src/views/config/ConfigEditor.vue:187
+#, fuzzy
+msgid "Add Configuration"
+msgstr "Sửa cấu hình"
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:95
 msgid "Add Directive Below"
 msgstr "Thêm Directive"
@@ -188,7 +195,7 @@ msgid "Auto-renewal enabled for %{name}"
 msgstr "Đã bật tự động gia hạn SSL cho %{name}"
 
 #: src/views/certificate/CertificateEditor.vue:247
-#: src/views/config/Config.vue:71 src/views/config/ConfigEdit.vue:87
+#: src/views/config/Config.vue:143 src/views/config/ConfigEditor.vue:196
 #: src/views/domain/DomainEdit.vue:253 src/views/nginx_log/NginxLog.vue:168
 #: src/views/stream/StreamEdit.vue:245
 msgid "Back"
@@ -219,7 +226,7 @@ msgstr ""
 msgid "Base information"
 msgstr "Thông tin"
 
-#: src/views/config/ConfigEdit.vue:115
+#: src/views/config/ConfigEditor.vue:224
 #: src/views/domain/components/RightSettings.vue:75
 #: src/views/preference/Preference.vue:110
 #: src/views/stream/components/RightSettings.vue:74
@@ -282,13 +289,13 @@ msgid_plural "Certificates Status"
 msgstr[0] "Trạng thái chứng chỉ"
 msgstr[1] "Trạng thái chứng chỉ"
 
-#: src/routes/index.ts:122
+#: src/routes/index.ts:133
 #: src/views/certificate/CertificateList/Certificate.vue:13
 #, fuzzy
 msgid "Certificates"
 msgstr "Chứng chỉ"
 
-#: src/routes/index.ts:139
+#: src/routes/index.ts:150
 #, fuzzy
 msgid "Certificates List"
 msgstr "Danh sách chứng chỉ"
@@ -310,6 +317,11 @@ msgid_plural "Changed Certificates"
 msgstr[0] "Thay đổi chứng chỉ"
 msgstr[1] "Thay đổi chứng chỉ"
 
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "Changed Path"
+msgstr "Thay đổi chứng chỉ"
+
 #: src/views/environment/BatchUpgrader.vue:161 src/views/system/Upgrade.vue:190
 msgid "Channel"
 msgstr "Kênh"
@@ -359,7 +371,7 @@ msgstr "Tệp cấu hình được kiểm tra thành công"
 msgid "Configuration Name"
 msgstr "Tên cấu hình"
 
-#: src/views/config/Config.vue:42
+#: src/views/config/Config.vue:91
 msgid "Configurations"
 msgstr "Cấu hình"
 
@@ -410,10 +422,25 @@ msgstr "Ngày tạo"
 msgid "Create Another"
 msgstr "Tạo thêm"
 
+#: src/views/config/Config.vue:99
+#, fuzzy
+msgid "Create File"
+msgstr "Ngày tạo"
+
+#: src/views/config/components/Mkdir.vue:50 src/views/config/Config.vue:100
+#, fuzzy
+msgid "Create Folder"
+msgstr "Tạo thêm"
+
 #: src/views/notification/Notification.vue:31 src/views/user/userColumns.tsx:48
 msgid "Created at"
 msgstr "Ngày tạo"
 
+#: src/views/config/components/Mkdir.vue:35
+#, fuzzy
+msgid "Created successfully"
+msgstr "Đã xóa thành công"
+
 #: src/language/constants.ts:9
 msgid "Creating client facilitates communication with the CA server"
 msgstr "Tạo client để giao tiếp với CA server"
@@ -449,7 +476,8 @@ msgid ""
 "indicator."
 msgstr ""
 
-#: src/routes/index.ts:39
+#: src/routes/index.ts:39 src/views/config/Config.vue:57
+#: src/views/config/ConfigEditor.vue:118 src/views/config/ConfigEditor.vue:79
 msgid "Dashboard"
 msgstr "Bảng điều khiển"
 
@@ -531,7 +559,7 @@ msgstr "Directive"
 msgid "Directives"
 msgstr "Directives"
 
-#: src/views/config/config.ts:18
+#: src/views/config/configColumns.ts:22
 #, fuzzy
 msgid "Directory"
 msgstr "Thư mục"
@@ -563,7 +591,7 @@ msgstr "Đã tắt thành công"
 msgid "Disk IO"
 msgstr "Disk IO"
 
-#: src/routes/index.ts:167 src/views/certificate/DNSCredential.vue:40
+#: src/routes/index.ts:178 src/views/certificate/DNSCredential.vue:40
 msgid "DNS Credentials"
 msgstr "Xác thực DNS"
 
@@ -688,7 +716,7 @@ msgstr "Đã sao chép thành công vào máy cục bộ"
 msgid "Edit %{n}"
 msgstr "Sửa %{n}"
 
-#: src/routes/index.ts:112 src/views/config/ConfigEdit.vue:81
+#: src/routes/index.ts:122 src/views/config/ConfigEditor.vue:187
 msgid "Edit Configuration"
 msgstr "Sửa cấu hình"
 
@@ -780,7 +808,7 @@ msgstr "Đã bật"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Bảo mật trang web với Let's Encrypt"
 
-#: src/routes/index.ts:217 src/views/environment/Environment.vue:34
+#: src/routes/index.ts:228 src/views/environment/Environment.vue:34
 msgid "Environment"
 msgstr "Environment"
 
@@ -798,7 +826,7 @@ msgstr "Environments"
 msgid "Error"
 msgstr "Lỗi"
 
-#: src/routes/index.ts:200 src/views/domain/ngx_conf/LogEntry.vue:84
+#: src/routes/index.ts:211 src/views/domain/ngx_conf/LogEntry.vue:84
 msgid "Error Logs"
 msgstr "Log lỗi"
 
@@ -847,7 +875,7 @@ msgstr "Không thể truy xuất thông tin chứng chỉ"
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr "Không lưu được, đã phát hiện thấy (các) lỗi cú pháp trong cấu hình."
 
-#: src/views/config/config.ts:20
+#: src/views/config/configColumns.ts:24
 msgid "File"
 msgstr "Tệp tin"
 
@@ -878,16 +906,16 @@ msgstr "Đã hoàn thành"
 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:90
+#: src/views/config/ConfigEditor.vue:199
 msgid "Format Code"
 msgstr "Định dạng code"
 
-#: src/views/config/ConfigEdit.vue:68
+#: src/views/config/ConfigEditor.vue:166
 #, fuzzy
 msgid "Format error %{msg}"
 msgstr "Lưu lỗi %{msg}"
 
-#: src/views/config/ConfigEdit.vue:66
+#: src/views/config/ConfigEditor.vue:164
 #, fuzzy
 msgid "Format successfully"
 msgstr "Định dạng thành công"
@@ -969,7 +997,7 @@ msgstr ""
 msgid "Import"
 msgstr "Xuất"
 
-#: src/routes/index.ts:157 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:168 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Import Certificate"
 msgstr "Chứng chỉ"
@@ -1000,7 +1028,7 @@ msgstr ""
 msgid "Input the recovery code:"
 msgstr ""
 
-#: src/routes/index.ts:288 src/views/other/Install.vue:134
+#: src/routes/index.ts:299 src/views/other/Install.vue:134
 msgid "Install"
 msgstr "Cài đặt"
 
@@ -1022,7 +1050,17 @@ msgstr "Hợp lệ"
 msgid "Invalid 2FA or recovery code"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:60
+#: src/views/config/components/Rename.vue:62
+#: src/views/config/ConfigEditor.vue:233
+#, fuzzy
+msgid "Invalid filename"
+msgstr "E-mail không chính xác!"
+
+#: src/views/config/components/Mkdir.vue:60
+msgid "Invalid folder name"
+msgstr ""
+
+#: src/components/OTP/useOTPModal.ts:64
 msgid "Invalid passcode or recovery code"
 msgstr ""
 
@@ -1128,7 +1166,7 @@ msgstr "Locations"
 msgid "Log"
 msgstr "Log"
 
-#: src/routes/index.ts:294 src/views/other/Login.vue:192
+#: src/routes/index.ts:305 src/views/other/Login.vue:192
 msgid "Login"
 msgstr "Đăng nhập"
 
@@ -1163,7 +1201,8 @@ msgstr ""
 "Đảm bảo rằng bạn đã định cấu hình proxy ngược (reverse proxy) thư mục .well-"
 "known tới HTTPChallengePort (default: 9180) trước khi ký chứng chỉ SSL."
 
-#: src/routes/index.ts:102
+#: src/routes/index.ts:102 src/views/config/Config.vue:62
+#: src/views/config/ConfigEditor.vue:123 src/views/config/ConfigEditor.vue:84
 msgid "Manage Configs"
 msgstr "Quản lý cấu hình"
 
@@ -1176,7 +1215,7 @@ msgstr "Quản lý Website"
 msgid "Manage Streams"
 msgstr "Quản lý Website"
 
-#: src/routes/index.ts:240 src/views/user/User.vue:9
+#: src/routes/index.ts:251 src/views/user/User.vue:9
 msgid "Manage Users"
 msgstr "Người dùng"
 
@@ -1213,7 +1252,7 @@ msgstr "Run Mode"
 msgid "Modify"
 msgstr "Sửa"
 
-#: src/routes/index.ts:147 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:158 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "Sửa chứng chỉ"
@@ -1235,7 +1274,9 @@ msgstr "Single Directive"
 #: src/views/certificate/ACMEUser.vue:13
 #: src/views/certificate/CertificateEditor.vue:152
 #: src/views/certificate/CertificateList/certColumns.tsx:10
-#: src/views/certificate/DNSCredential.vue:11 src/views/config/config.ts:7
+#: src/views/certificate/DNSCredential.vue:11
+#: src/views/config/components/Mkdir.vue:67 src/views/config/configColumns.ts:8
+#: src/views/config/ConfigEditor.vue:239
 #: src/views/domain/components/RightSettings.vue:83
 #: src/views/domain/components/SiteDuplicate.vue:129
 #: src/views/domain/DomainList.vue:13
@@ -1263,6 +1304,16 @@ msgstr "Tổng lưu lượng mạng đã nhận"
 msgid "Network Total Send"
 msgstr "Tổng lưu lượng mạng đã gửi"
 
+#: src/views/config/components/Rename.vue:70
+#, fuzzy
+msgid "New name"
+msgstr "Username"
+
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "New Path"
+msgstr "Đường dẫn"
+
 #: src/views/system/Upgrade.vue:210
 msgid "New version released"
 msgstr "Đã có phiên bản mới"
@@ -1294,7 +1345,7 @@ msgstr ""
 msgid "Nginx Error Log Path"
 msgstr "Vị trí lưu log lỗi (Error log) của Nginx"
 
-#: src/routes/index.ts:185 src/views/nginx_log/NginxLog.vue:143
+#: src/routes/index.ts:196 src/views/nginx_log/NginxLog.vue:143
 msgid "Nginx Log"
 msgstr ""
 
@@ -1331,7 +1382,7 @@ msgstr ""
 msgid "Not After"
 msgstr "Không phải sau khi"
 
-#: src/routes/index.ts:300
+#: src/routes/index.ts:311
 msgid "Not Found"
 msgstr "Không tìm thấy"
 
@@ -1349,7 +1400,7 @@ msgstr "Ghi chú"
 msgid "Notification"
 msgstr "Thông báo"
 
-#: src/components/Notification/Notification.vue:82 src/routes/index.ts:231
+#: src/components/Notification/Notification.vue:82 src/routes/index.ts:242
 #, fuzzy
 msgid "Notifications"
 msgstr "Thông báo"
@@ -1419,6 +1470,10 @@ msgstr "Trực tuyến"
 msgid "OpenAI"
 msgstr ""
 
+#: src/views/config/components/Rename.vue:66
+msgid "Original name"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:177
 #, fuzzy
 msgid "OS"
@@ -1450,7 +1505,7 @@ msgstr "Mật khẩu"
 msgid "Password (*)"
 msgstr "Mật khẩu (*)"
 
-#: src/views/config/ConfigEdit.vue:118
+#: src/views/config/ConfigEditor.vue:245
 #: src/views/domain/ngx_conf/LocationEditor.vue:118
 #: src/views/domain/ngx_conf/LocationEditor.vue:90
 msgid "Path"
@@ -1491,6 +1546,17 @@ msgstr ""
 "Trước tiên, vui lòng thêm thông tin xác thực trong Chứng chỉ > Thông tin xác "
 "thực DNS, sau đó chọn nhà cung cấp DNS"
 
+#: src/views/config/components/Rename.vue:61
+#: src/views/config/ConfigEditor.vue:232
+#, fuzzy
+msgid "Please input a filename"
+msgstr "Vui lòng nhập username!"
+
+#: src/views/config/components/Mkdir.vue:59
+#, fuzzy
+msgid "Please input a folder name"
+msgstr "Vui lòng nhập username!"
+
 #: src/views/domain/components/SiteDuplicate.vue:38
 #: src/views/stream/components/StreamDuplicate.vue:38
 msgid ""
@@ -1527,7 +1593,7 @@ msgstr ""
 msgid "Pre-release"
 msgstr ""
 
-#: src/routes/index.ts:249 src/views/preference/Preference.vue:105
+#: src/routes/index.ts:260 src/views/preference/Preference.vue:105
 msgid "Preference"
 msgstr "Cài đặt"
 
@@ -1652,11 +1718,17 @@ msgstr "Xoá thành công"
 msgid "Removed successfully"
 msgstr "Xoá thành công"
 
+#: src/views/config/components/Rename.vue:52 src/views/config/Config.vue:130
 #: src/views/domain/ngx_conf/NgxUpstream.vue:123
 #, fuzzy
 msgid "Rename"
 msgstr "Username"
 
+#: src/views/config/components/Rename.vue:37
+#, fuzzy
+msgid "Rename successfully"
+msgstr "Gia hạn chứng chỉ SSL"
+
 #: src/views/certificate/RenewCert.vue:43
 #: src/views/certificate/RenewCert.vue:47
 #, fuzzy
@@ -1711,7 +1783,7 @@ msgstr "Running"
 
 #: src/components/ChatGPT/ChatGPT.vue:251
 #: src/views/certificate/CertificateEditor.vue:254
-#: src/views/config/ConfigEdit.vue:96 src/views/domain/DomainEdit.vue:260
+#: src/views/config/ConfigEditor.vue:205 src/views/domain/DomainEdit.vue:260
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
 #: src/views/preference/Preference.vue:145 src/views/stream/StreamEdit.vue:252
 msgid "Save"
@@ -1721,7 +1793,7 @@ msgstr "Lưu"
 msgid "Save Directive"
 msgstr "Lưu Directive"
 
-#: src/views/config/ConfigEdit.vue:57 src/views/domain/DomainAdd.vue:46
+#: src/views/config/ConfigEditor.vue:154 src/views/domain/DomainAdd.vue:46
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:41
 msgid "Save error %{msg}"
 msgstr "Đã xảy ra lỗi khi lưu %{msg}"
@@ -1734,7 +1806,7 @@ msgstr "Đã xảy ra lỗi khi lưu %{msg}"
 msgid "Save successfully"
 msgstr "Lưu thành công"
 
-#: src/views/config/ConfigEdit.vue:55 src/views/domain/DomainAdd.vue:37
+#: src/views/config/ConfigEditor.vue:150 src/views/domain/DomainAdd.vue:37
 #: src/views/domain/DomainEdit.vue:143
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/stream/StreamEdit.vue:138
@@ -1765,7 +1837,9 @@ msgstr "Gửi"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:213
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:253
-#: src/views/config/ConfigEdit.vue:40 src/views/domain/DomainList.vue:81
+#: src/views/config/components/Mkdir.vue:38
+#: src/views/config/components/Rename.vue:40
+#: src/views/config/ConfigEditor.vue:93 src/views/domain/DomainList.vue:81
 #: src/views/environment/BatchUpgrader.vue:57
 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
 #: src/views/preference/AuthSettings.vue:49
@@ -1820,7 +1894,7 @@ msgstr ""
 msgid "Single Directive"
 msgstr "Single Directive"
 
-#: src/routes/index.ts:207
+#: src/routes/index.ts:218
 #, fuzzy
 msgid "Site Logs"
 msgstr "Logs"
@@ -1925,7 +1999,7 @@ msgstr "Gia hạn chứng chỉ SSL thành công"
 msgid "Sync to"
 msgstr ""
 
-#: src/routes/index.ts:258
+#: src/routes/index.ts:269
 msgid "System"
 msgstr "Thông tin"
 
@@ -1938,7 +2012,7 @@ msgstr ""
 msgid "Target"
 msgstr "Mục tiêu"
 
-#: src/routes/index.ts:177 src/views/pty/Terminal.vue:114
+#: src/routes/index.ts:188 src/views/pty/Terminal.vue:114
 msgid "Terminal"
 msgstr "Terminal"
 
@@ -2090,18 +2164,19 @@ msgstr ""
 msgid "Trash"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:66
+#: src/components/OTP/useOTPModal.ts:70
 msgid "Two-factor authentication required"
 msgstr ""
 
 #: src/views/certificate/CertificateList/certColumns.tsx:25
-#: src/views/config/config.ts:12 src/views/notification/Notification.vue:13
+#: src/views/config/configColumns.ts:16
+#: src/views/notification/Notification.vue:13
 msgid "Type"
 msgstr "Loại"
 
 #: src/views/certificate/ACMEUser.vue:53
-#: src/views/certificate/DNSCredential.vue:27 src/views/config/config.ts:27
-#: src/views/config/ConfigEdit.vue:121
+#: src/views/certificate/DNSCredential.vue:27
+#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:258
 #: src/views/domain/components/RightSettings.vue:86
 #: src/views/domain/DomainList.vue:41 src/views/environment/envColumns.tsx:124
 #: src/views/stream/components/RightSettings.vue:85
@@ -2114,7 +2189,7 @@ msgstr "Ngày cập nhật"
 msgid "Updated successfully"
 msgstr "Cập nhật thành công"
 
-#: src/routes/index.ts:273 src/views/environment/Environment.vue:50
+#: src/routes/index.ts:284 src/views/environment/Environment.vue:50
 #: src/views/system/Upgrade.vue:145 src/views/system/Upgrade.vue:228
 msgid "Upgrade"
 msgstr "Cập nhật"
@@ -2250,6 +2325,10 @@ msgstr "Bạn đang sử dụng phiên bản mới nhất"
 msgid "You can check Nginx UI upgrade at this page."
 msgstr "Bạn có thể kiểm tra nâng cấp Nginx UI tại trang này"
 
+#, fuzzy
+#~ msgid "Rename "
+#~ msgstr "Username"
+
 #~ msgid "Auto Cert"
 #~ msgstr "Tự động ký chứng chỉ SSL"
 
@@ -2291,6 +2370,3 @@ msgstr "Bạn có thể kiểm tra nâng cấp Nginx UI tại trang này"
 
 #~ msgid "404 Not Found"
 #~ msgstr "404 Not Found"
-
-#~ msgid "Invalid E-mail!"
-#~ msgstr "E-mail không chính xác!"

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


+ 113 - 48
app/src/language/zh_CN/app.po

@@ -21,23 +21,24 @@ msgstr "2FA"
 msgid "2FA Settings"
 msgstr "2FA 设置"
 
-#: src/routes/index.ts:266
+#: src/routes/index.ts:277
 msgid "About"
 msgstr "关于"
 
-#: src/routes/index.ts:193 src/views/domain/ngx_conf/LogEntry.vue:76
+#: src/routes/index.ts:204 src/views/domain/ngx_conf/LogEntry.vue:76
 msgid "Access Logs"
 msgstr "访问日志"
 
-#: src/routes/index.ts:131 src/views/certificate/ACMEUser.vue:76
+#: src/routes/index.ts:142 src/views/certificate/ACMEUser.vue:76
 #: src/views/certificate/ACMEUserSelector.vue:85
 msgid "ACME User"
 msgstr "ACME 用户"
 
 #: src/views/certificate/ACMEUser.vue:59
 #: src/views/certificate/CertificateList/certColumns.tsx:89
-#: src/views/certificate/DNSCredential.vue:33 src/views/config/config.ts:34
-#: src/views/domain/DomainList.vue:47 src/views/environment/envColumns.tsx:131
+#: src/views/certificate/DNSCredential.vue:33
+#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
+#: src/views/environment/envColumns.tsx:131
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
 #: src/views/user/userColumns.tsx:60
@@ -54,6 +55,11 @@ msgstr "操作"
 msgid "Add"
 msgstr "添加"
 
+#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:128
+#: src/views/config/ConfigEditor.vue:187
+msgid "Add Configuration"
+msgstr "添加配置"
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:95
 msgid "Add Directive Below"
 msgstr "在下面添加指令"
@@ -178,7 +184,7 @@ msgid "Auto-renewal enabled for %{name}"
 msgstr "成功启用 %{name} 自动续签"
 
 #: src/views/certificate/CertificateEditor.vue:247
-#: src/views/config/Config.vue:71 src/views/config/ConfigEdit.vue:87
+#: src/views/config/Config.vue:143 src/views/config/ConfigEditor.vue:196
 #: src/views/domain/DomainEdit.vue:253 src/views/nginx_log/NginxLog.vue:168
 #: src/views/stream/StreamEdit.vue:245
 msgid "Back"
@@ -208,7 +214,7 @@ msgstr "禁用至"
 msgid "Base information"
 msgstr "基本信息"
 
-#: src/views/config/ConfigEdit.vue:115
+#: src/views/config/ConfigEditor.vue:224
 #: src/views/domain/components/RightSettings.vue:75
 #: src/views/preference/Preference.vue:110
 #: src/views/stream/components/RightSettings.vue:74
@@ -265,12 +271,12 @@ msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgstr[0] "证书状态"
 
-#: src/routes/index.ts:122
+#: src/routes/index.ts:133
 #: src/views/certificate/CertificateList/Certificate.vue:13
 msgid "Certificates"
 msgstr "证书"
 
-#: src/routes/index.ts:139
+#: src/routes/index.ts:150
 msgid "Certificates List"
 msgstr "证书列表"
 
@@ -288,6 +294,10 @@ msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgstr[0] "变更证书"
 
+#: src/views/config/ConfigEditor.vue:251
+msgid "Changed Path"
+msgstr "变更后的路径"
+
 #: src/views/environment/BatchUpgrader.vue:161 src/views/system/Upgrade.vue:190
 msgid "Channel"
 msgstr "通道"
@@ -334,7 +344,7 @@ msgstr "配置文件测试成功"
 msgid "Configuration Name"
 msgstr "配置名称"
 
-#: src/views/config/Config.vue:42
+#: src/views/config/Config.vue:91
 msgid "Configurations"
 msgstr "配置"
 
@@ -384,10 +394,22 @@ msgstr "创建"
 msgid "Create Another"
 msgstr "再创建一个"
 
+#: src/views/config/Config.vue:99
+msgid "Create File"
+msgstr "创建文件"
+
+#: src/views/config/components/Mkdir.vue:50 src/views/config/Config.vue:100
+msgid "Create Folder"
+msgstr "创建文件夹"
+
 #: src/views/notification/Notification.vue:31 src/views/user/userColumns.tsx:48
 msgid "Created at"
 msgstr "创建时间"
 
+#: src/views/config/components/Mkdir.vue:35
+msgid "Created successfully"
+msgstr "创建成功"
+
 #: src/language/constants.ts:9
 msgid "Creating client facilitates communication with the CA server"
 msgstr "正在创建客户端用于与 CA 服务器通信"
@@ -423,7 +445,8 @@ msgid ""
 "indicator."
 msgstr "自定义显示在环境指示器中的本地服务器名称。"
 
-#: src/routes/index.ts:39
+#: src/routes/index.ts:39 src/views/config/Config.vue:57
+#: src/views/config/ConfigEditor.vue:118 src/views/config/ConfigEditor.vue:79
 msgid "Dashboard"
 msgstr "仪表盘"
 
@@ -502,7 +525,7 @@ msgstr "指令"
 msgid "Directives"
 msgstr "指令"
 
-#: src/views/config/config.ts:18
+#: src/views/config/configColumns.ts:22
 msgid "Directory"
 msgstr "目录"
 
@@ -532,7 +555,7 @@ msgstr "禁用成功"
 msgid "Disk IO"
 msgstr "磁盘 IO"
 
-#: src/routes/index.ts:167 src/views/certificate/DNSCredential.vue:40
+#: src/routes/index.ts:178 src/views/certificate/DNSCredential.vue:40
 msgid "DNS Credentials"
 msgstr "DNS 凭证"
 
@@ -642,7 +665,7 @@ msgstr "成功复制到本地"
 msgid "Edit %{n}"
 msgstr "编辑 %{n}"
 
-#: src/routes/index.ts:112 src/views/config/ConfigEdit.vue:81
+#: src/routes/index.ts:122 src/views/config/ConfigEditor.vue:187
 msgid "Edit Configuration"
 msgstr "编辑配置"
 
@@ -728,7 +751,7 @@ msgstr "启用成功"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "用 Let's Encrypt 对网站进行加密"
 
-#: src/routes/index.ts:217 src/views/environment/Environment.vue:34
+#: src/routes/index.ts:228 src/views/environment/Environment.vue:34
 msgid "Environment"
 msgstr "环境"
 
@@ -744,7 +767,7 @@ msgstr "环境"
 msgid "Error"
 msgstr "错误"
 
-#: src/routes/index.ts:200 src/views/domain/ngx_conf/LogEntry.vue:84
+#: src/routes/index.ts:211 src/views/domain/ngx_conf/LogEntry.vue:84
 msgid "Error Logs"
 msgstr "错误日志"
 
@@ -791,7 +814,7 @@ msgstr "获取证书信息失败"
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr "保存失败,在配置中检测到语法错误。"
 
-#: src/views/config/config.ts:20
+#: src/views/config/configColumns.ts:24
 msgid "File"
 msgstr "文件"
 
@@ -820,15 +843,15 @@ msgstr "完成"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "中国用户:https://mirror.ghproxy.com/"
 
-#: src/views/config/ConfigEdit.vue:90
+#: src/views/config/ConfigEditor.vue:199
 msgid "Format Code"
 msgstr "代码格式化"
 
-#: src/views/config/ConfigEdit.vue:68
+#: src/views/config/ConfigEditor.vue:166
 msgid "Format error %{msg}"
 msgstr "保存错误 %{msg}"
 
-#: src/views/config/ConfigEdit.vue:66
+#: src/views/config/ConfigEditor.vue:164
 msgid "Format successfully"
 msgstr "格式化成功"
 
@@ -908,7 +931,7 @@ msgstr "如果您的域名有 CNAME 记录且无法获取证书,则需要启
 msgid "Import"
 msgstr "导入"
 
-#: src/routes/index.ts:157 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:168 src/views/certificate/CertificateEditor.vue:79
 msgid "Import Certificate"
 msgstr "导入证书"
 
@@ -937,7 +960,7 @@ msgstr "输入应用程序中的代码:"
 msgid "Input the recovery code:"
 msgstr "输入恢复代码:"
 
-#: src/routes/index.ts:288 src/views/other/Install.vue:134
+#: src/routes/index.ts:299 src/views/other/Install.vue:134
 msgid "Install"
 msgstr "安装"
 
@@ -957,7 +980,16 @@ msgstr "无效的"
 msgid "Invalid 2FA or recovery code"
 msgstr "无效的二步验证码或恢复密码"
 
-#: src/components/OTP/useOTPModal.ts:60
+#: src/views/config/components/Rename.vue:62
+#: src/views/config/ConfigEditor.vue:233
+msgid "Invalid filename"
+msgstr "文件名无效"
+
+#: src/views/config/components/Mkdir.vue:60
+msgid "Invalid folder name"
+msgstr "无效文件夹名"
+
+#: src/components/OTP/useOTPModal.ts:64
 msgid "Invalid passcode or recovery code"
 msgstr "二次验证码或恢复代码无效"
 
@@ -1053,7 +1085,7 @@ msgstr "Locations"
 msgid "Log"
 msgstr "日志"
 
-#: src/routes/index.ts:294 src/views/other/Login.vue:192
+#: src/routes/index.ts:305 src/views/other/Login.vue:192
 msgid "Login"
 msgstr "登录"
 
@@ -1091,7 +1123,8 @@ msgstr ""
 "在获取签发证书前,请确保配置文件中已将 .well-known 目录反向代理到 "
 "HTTPChallengePort。"
 
-#: src/routes/index.ts:102
+#: src/routes/index.ts:102 src/views/config/Config.vue:62
+#: src/views/config/ConfigEditor.vue:123 src/views/config/ConfigEditor.vue:84
 msgid "Manage Configs"
 msgstr "配置管理"
 
@@ -1103,7 +1136,7 @@ msgstr "网站管理"
 msgid "Manage Streams"
 msgstr "管理 Stream"
 
-#: src/routes/index.ts:240 src/views/user/User.vue:9
+#: src/routes/index.ts:251 src/views/user/User.vue:9
 msgid "Manage Users"
 msgstr "用户管理"
 
@@ -1138,7 +1171,7 @@ msgstr "模型"
 msgid "Modify"
 msgstr "修改"
 
-#: src/routes/index.ts:147 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:158 src/views/certificate/CertificateEditor.vue:79
 msgid "Modify Certificate"
 msgstr "修改证书"
 
@@ -1157,7 +1190,9 @@ msgstr "多行指令"
 #: src/views/certificate/ACMEUser.vue:13
 #: src/views/certificate/CertificateEditor.vue:152
 #: src/views/certificate/CertificateList/certColumns.tsx:10
-#: src/views/certificate/DNSCredential.vue:11 src/views/config/config.ts:7
+#: src/views/certificate/DNSCredential.vue:11
+#: src/views/config/components/Mkdir.vue:67 src/views/config/configColumns.ts:8
+#: src/views/config/ConfigEditor.vue:239
 #: src/views/domain/components/RightSettings.vue:83
 #: src/views/domain/components/SiteDuplicate.vue:129
 #: src/views/domain/DomainList.vue:13
@@ -1185,6 +1220,14 @@ msgstr "下载流量"
 msgid "Network Total Send"
 msgstr "上传流量"
 
+#: src/views/config/components/Rename.vue:70
+msgid "New name"
+msgstr "新名称"
+
+#: src/views/config/ConfigEditor.vue:251
+msgid "New Path"
+msgstr "新路径"
+
 #: src/views/system/Upgrade.vue:210
 msgid "New version released"
 msgstr "新版本发布"
@@ -1215,7 +1258,7 @@ msgstr "控制 Nginx"
 msgid "Nginx Error Log Path"
 msgstr "Nginx 错误日志路径"
 
-#: src/routes/index.ts:185 src/views/nginx_log/NginxLog.vue:143
+#: src/routes/index.ts:196 src/views/nginx_log/NginxLog.vue:143
 msgid "Nginx Log"
 msgstr "Nginx 日志"
 
@@ -1250,7 +1293,7 @@ msgstr "节点密钥"
 msgid "Not After"
 msgstr "有效期"
 
-#: src/routes/index.ts:300
+#: src/routes/index.ts:311
 msgid "Not Found"
 msgstr "找不到页面"
 
@@ -1267,7 +1310,7 @@ msgstr "注意"
 msgid "Notification"
 msgstr "通知"
 
-#: src/components/Notification/Notification.vue:82 src/routes/index.ts:231
+#: src/components/Notification/Notification.vue:82 src/routes/index.ts:242
 msgid "Notifications"
 msgstr "通知"
 
@@ -1335,6 +1378,10 @@ msgstr "在线"
 msgid "OpenAI"
 msgstr "OpenAI"
 
+#: src/views/config/components/Rename.vue:66
+msgid "Original name"
+msgstr "原名"
+
 #: src/views/system/Upgrade.vue:177
 msgid "OS"
 msgstr "OS"
@@ -1365,7 +1412,7 @@ msgstr "密码"
 msgid "Password (*)"
 msgstr "密码 (*)"
 
-#: src/views/config/ConfigEdit.vue:118
+#: src/views/config/ConfigEditor.vue:245
 #: src/views/domain/ngx_conf/LocationEditor.vue:118
 #: src/views/domain/ngx_conf/LocationEditor.vue:90
 msgid "Path"
@@ -1405,6 +1452,15 @@ msgstr ""
 "请首先在 “证书”> “DNS 凭证” 中添加凭证,然后在下方选择一个凭证,请求 DNS 提供"
 "商的 API。"
 
+#: src/views/config/components/Rename.vue:61
+#: src/views/config/ConfigEditor.vue:232
+msgid "Please input a filename"
+msgstr "请输入文件名"
+
+#: src/views/config/components/Mkdir.vue:59
+msgid "Please input a folder name"
+msgstr "请输入文件夹名称"
+
 #: src/views/domain/components/SiteDuplicate.vue:38
 #: src/views/stream/components/StreamDuplicate.vue:38
 msgid ""
@@ -1440,7 +1496,7 @@ msgstr "请至少选择一个节点!"
 msgid "Pre-release"
 msgstr "预发布"
 
-#: src/routes/index.ts:249 src/views/preference/Preference.vue:105
+#: src/routes/index.ts:260 src/views/preference/Preference.vue:105
 msgid "Preference"
 msgstr "偏好设置"
 
@@ -1556,10 +1612,15 @@ msgstr "移除成功"
 msgid "Removed successfully"
 msgstr "删除成功"
 
+#: src/views/config/components/Rename.vue:52 src/views/config/Config.vue:130
 #: src/views/domain/ngx_conf/NgxUpstream.vue:123
 msgid "Rename"
 msgstr "重命名"
 
+#: src/views/config/components/Rename.vue:37
+msgid "Rename successfully"
+msgstr "重命名成功"
+
 #: src/views/certificate/RenewCert.vue:43
 #: src/views/certificate/RenewCert.vue:47
 msgid "Renew Certificate"
@@ -1608,7 +1669,7 @@ msgstr "运行中"
 
 #: src/components/ChatGPT/ChatGPT.vue:251
 #: src/views/certificate/CertificateEditor.vue:254
-#: src/views/config/ConfigEdit.vue:96 src/views/domain/DomainEdit.vue:260
+#: src/views/config/ConfigEditor.vue:205 src/views/domain/DomainEdit.vue:260
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
 #: src/views/preference/Preference.vue:145 src/views/stream/StreamEdit.vue:252
 msgid "Save"
@@ -1618,7 +1679,7 @@ msgstr "保存"
 msgid "Save Directive"
 msgstr "保存指令"
 
-#: src/views/config/ConfigEdit.vue:57 src/views/domain/DomainAdd.vue:46
+#: src/views/config/ConfigEditor.vue:154 src/views/domain/DomainAdd.vue:46
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:41
 msgid "Save error %{msg}"
 msgstr "保存错误 %{msg}"
@@ -1630,7 +1691,7 @@ msgstr "保存错误 %{msg}"
 msgid "Save successfully"
 msgstr "保存成功"
 
-#: src/views/config/ConfigEdit.vue:55 src/views/domain/DomainAdd.vue:37
+#: src/views/config/ConfigEditor.vue:150 src/views/domain/DomainAdd.vue:37
 #: src/views/domain/DomainEdit.vue:143
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/stream/StreamEdit.vue:138
@@ -1661,7 +1722,9 @@ msgstr "上传"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:213
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:253
-#: src/views/config/ConfigEdit.vue:40 src/views/domain/DomainList.vue:81
+#: src/views/config/components/Mkdir.vue:38
+#: src/views/config/components/Rename.vue:40
+#: src/views/config/ConfigEditor.vue:93 src/views/domain/DomainList.vue:81
 #: src/views/environment/BatchUpgrader.vue:57
 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
 #: src/views/preference/AuthSettings.vue:49
@@ -1714,7 +1777,7 @@ msgstr "显示"
 msgid "Single Directive"
 msgstr "单行指令"
 
-#: src/routes/index.ts:207
+#: src/routes/index.ts:218
 msgid "Site Logs"
 msgstr "站点列表"
 
@@ -1813,7 +1876,7 @@ msgstr "同步证书成功"
 msgid "Sync to"
 msgstr "同步到"
 
-#: src/routes/index.ts:258
+#: src/routes/index.ts:269
 msgid "System"
 msgstr "系统"
 
@@ -1826,7 +1889,7 @@ msgstr "系统初始用户"
 msgid "Target"
 msgstr "目标"
 
-#: src/routes/index.ts:177 src/views/pty/Terminal.vue:114
+#: src/routes/index.ts:188 src/views/pty/Terminal.vue:114
 msgid "Terminal"
 msgstr "终端"
 
@@ -1976,18 +2039,19 @@ msgstr "TOTP 是一种使用基于时间的一次性密码算法的双因素身
 msgid "Trash"
 msgstr "回收站"
 
-#: src/components/OTP/useOTPModal.ts:66
+#: src/components/OTP/useOTPModal.ts:70
 msgid "Two-factor authentication required"
 msgstr "需要两步验证"
 
 #: src/views/certificate/CertificateList/certColumns.tsx:25
-#: src/views/config/config.ts:12 src/views/notification/Notification.vue:13
+#: src/views/config/configColumns.ts:16
+#: src/views/notification/Notification.vue:13
 msgid "Type"
 msgstr "类型"
 
 #: src/views/certificate/ACMEUser.vue:53
-#: src/views/certificate/DNSCredential.vue:27 src/views/config/config.ts:27
-#: src/views/config/ConfigEdit.vue:121
+#: src/views/certificate/DNSCredential.vue:27
+#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:258
 #: src/views/domain/components/RightSettings.vue:86
 #: src/views/domain/DomainList.vue:41 src/views/environment/envColumns.tsx:124
 #: src/views/stream/components/RightSettings.vue:85
@@ -1999,7 +2063,7 @@ msgstr "修改时间"
 msgid "Updated successfully"
 msgstr "更新成功"
 
-#: src/routes/index.ts:273 src/views/environment/Environment.vue:50
+#: src/routes/index.ts:284 src/views/environment/Environment.vue:50
 #: src/views/system/Upgrade.vue:145 src/views/system/Upgrade.vue:228
 msgid "Upgrade"
 msgstr "升级"
@@ -2125,6 +2189,10 @@ msgstr "您使用的是最新版本"
 msgid "You can check Nginx UI upgrade at this page."
 msgstr "你可以在这个页面检查Nginx UI的升级。"
 
+#, fuzzy
+#~ msgid "Rename "
+#~ msgstr "重命名"
+
 #~ msgid "Auto Cert"
 #~ msgstr "自动更新"
 
@@ -2277,9 +2345,6 @@ msgstr "你可以在这个页面检查Nginx UI的升级。"
 #~ msgid "404 Not Found"
 #~ msgstr "404 未找到页面"
 
-#~ msgid "Invalid E-mail!"
-#~ msgstr "无效的邮箱!"
-
 #~ msgid "Are you sure you want to restore?"
 #~ msgstr "您确定要反删除?"
 

+ 124 - 45
app/src/language/zh_TW/app.po

@@ -22,15 +22,15 @@ msgstr ""
 msgid "2FA Settings"
 msgstr ""
 
-#: src/routes/index.ts:266
+#: src/routes/index.ts:277
 msgid "About"
 msgstr "關於"
 
-#: src/routes/index.ts:193 src/views/domain/ngx_conf/LogEntry.vue:76
+#: src/routes/index.ts:204 src/views/domain/ngx_conf/LogEntry.vue:76
 msgid "Access Logs"
 msgstr "存取日誌"
 
-#: src/routes/index.ts:131 src/views/certificate/ACMEUser.vue:76
+#: src/routes/index.ts:142 src/views/certificate/ACMEUser.vue:76
 #: src/views/certificate/ACMEUserSelector.vue:85
 #, fuzzy
 msgid "ACME User"
@@ -38,8 +38,9 @@ msgstr "使用者名稱"
 
 #: src/views/certificate/ACMEUser.vue:59
 #: src/views/certificate/CertificateList/certColumns.tsx:89
-#: src/views/certificate/DNSCredential.vue:33 src/views/config/config.ts:34
-#: src/views/domain/DomainList.vue:47 src/views/environment/envColumns.tsx:131
+#: src/views/certificate/DNSCredential.vue:33
+#: src/views/config/configColumns.ts:38 src/views/domain/DomainList.vue:47
+#: src/views/environment/envColumns.tsx:131
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:26 src/views/stream/StreamList.vue:47
 #: src/views/user/userColumns.tsx:60
@@ -56,6 +57,12 @@ msgstr "操作"
 msgid "Add"
 msgstr "新增"
 
+#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:128
+#: src/views/config/ConfigEditor.vue:187
+#, fuzzy
+msgid "Add Configuration"
+msgstr "編輯設定"
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:95
 msgid "Add Directive Below"
 msgstr "在下方新增指令"
@@ -190,7 +197,7 @@ msgid "Auto-renewal enabled for %{name}"
 msgstr "已啟用 %{name} 的自動續簽"
 
 #: src/views/certificate/CertificateEditor.vue:247
-#: src/views/config/Config.vue:71 src/views/config/ConfigEdit.vue:87
+#: src/views/config/Config.vue:143 src/views/config/ConfigEditor.vue:196
 #: src/views/domain/DomainEdit.vue:253 src/views/nginx_log/NginxLog.vue:168
 #: src/views/stream/StreamEdit.vue:245
 msgid "Back"
@@ -220,7 +227,7 @@ msgstr ""
 msgid "Base information"
 msgstr "基本資訊"
 
-#: src/views/config/ConfigEdit.vue:115
+#: src/views/config/ConfigEditor.vue:224
 #: src/views/domain/components/RightSettings.vue:75
 #: src/views/preference/Preference.vue:110
 #: src/views/stream/components/RightSettings.vue:74
@@ -280,13 +287,13 @@ msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgstr[0] "憑證狀態"
 
-#: src/routes/index.ts:122
+#: src/routes/index.ts:133
 #: src/views/certificate/CertificateList/Certificate.vue:13
 #, fuzzy
 msgid "Certificates"
 msgstr "憑證狀態"
 
-#: src/routes/index.ts:139
+#: src/routes/index.ts:150
 #, fuzzy
 msgid "Certificates List"
 msgstr "憑證清單"
@@ -306,6 +313,11 @@ msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgstr[0] "更換憑證"
 
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "Changed Path"
+msgstr "更換憑證"
+
 #: src/views/environment/BatchUpgrader.vue:161 src/views/system/Upgrade.vue:190
 msgid "Channel"
 msgstr "通道"
@@ -354,7 +366,7 @@ msgstr "設定檔案測試成功"
 msgid "Configuration Name"
 msgstr "設定名稱"
 
-#: src/views/config/Config.vue:42
+#: src/views/config/Config.vue:91
 msgid "Configurations"
 msgstr "設定"
 
@@ -405,10 +417,25 @@ msgstr "建立時間"
 msgid "Create Another"
 msgstr "再建立一個"
 
+#: src/views/config/Config.vue:99
+#, fuzzy
+msgid "Create File"
+msgstr "建立時間"
+
+#: src/views/config/components/Mkdir.vue:50 src/views/config/Config.vue:100
+#, fuzzy
+msgid "Create Folder"
+msgstr "再建立一個"
+
 #: src/views/notification/Notification.vue:31 src/views/user/userColumns.tsx:48
 msgid "Created at"
 msgstr "建立時間"
 
+#: src/views/config/components/Mkdir.vue:35
+#, fuzzy
+msgid "Created successfully"
+msgstr "成功停用"
+
 #: src/language/constants.ts:9
 msgid "Creating client facilitates communication with the CA server"
 msgstr "建立客戶端方便與CA伺服器通訊"
@@ -444,7 +471,8 @@ msgid ""
 "indicator."
 msgstr ""
 
-#: src/routes/index.ts:39
+#: src/routes/index.ts:39 src/views/config/Config.vue:57
+#: src/views/config/ConfigEditor.vue:118 src/views/config/ConfigEditor.vue:79
 msgid "Dashboard"
 msgstr "儀表板"
 
@@ -525,7 +553,7 @@ msgstr "指令"
 msgid "Directives"
 msgstr "指令"
 
-#: src/views/config/config.ts:18
+#: src/views/config/configColumns.ts:22
 #, fuzzy
 msgid "Directory"
 msgstr "指令"
@@ -556,7 +584,7 @@ msgstr "成功停用"
 msgid "Disk IO"
 msgstr "磁碟 IO"
 
-#: src/routes/index.ts:167 src/views/certificate/DNSCredential.vue:40
+#: src/routes/index.ts:178 src/views/certificate/DNSCredential.vue:40
 msgid "DNS Credentials"
 msgstr "DNS 認證"
 
@@ -670,7 +698,7 @@ msgstr "成功複製至本機"
 msgid "Edit %{n}"
 msgstr "編輯 %{n}"
 
-#: src/routes/index.ts:112 src/views/config/ConfigEdit.vue:81
+#: src/routes/index.ts:122 src/views/config/ConfigEditor.vue:187
 msgid "Edit Configuration"
 msgstr "編輯設定"
 
@@ -760,7 +788,7 @@ msgstr "成功啟用"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "用 Let's Encrypt 對網站進行加密"
 
-#: src/routes/index.ts:217 src/views/environment/Environment.vue:34
+#: src/routes/index.ts:228 src/views/environment/Environment.vue:34
 msgid "Environment"
 msgstr "環境"
 
@@ -777,7 +805,7 @@ msgstr "環境"
 msgid "Error"
 msgstr "錯誤"
 
-#: src/routes/index.ts:200 src/views/domain/ngx_conf/LogEntry.vue:84
+#: src/routes/index.ts:211 src/views/domain/ngx_conf/LogEntry.vue:84
 msgid "Error Logs"
 msgstr "錯誤日誌"
 
@@ -826,7 +854,7 @@ msgstr "取得憑證資訊失敗"
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr "儲存失敗,在設定中檢測到語法錯誤。"
 
-#: src/views/config/config.ts:20
+#: src/views/config/configColumns.ts:24
 msgid "File"
 msgstr "檔案"
 
@@ -857,15 +885,15 @@ msgstr "完成"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "中國使用者:https://mirror.ghproxy.com/"
 
-#: src/views/config/ConfigEdit.vue:90
+#: src/views/config/ConfigEditor.vue:199
 msgid "Format Code"
 msgstr "格式化程式碼"
 
-#: src/views/config/ConfigEdit.vue:68
+#: src/views/config/ConfigEditor.vue:166
 msgid "Format error %{msg}"
 msgstr "格式錯誤 %{msg}"
 
-#: src/views/config/ConfigEdit.vue:66
+#: src/views/config/ConfigEditor.vue:164
 msgid "Format successfully"
 msgstr "成功格式化"
 
@@ -945,7 +973,7 @@ msgstr ""
 msgid "Import"
 msgstr "匯出"
 
-#: src/routes/index.ts:157 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:168 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Import Certificate"
 msgstr "憑證狀態"
@@ -976,7 +1004,7 @@ msgstr ""
 msgid "Input the recovery code:"
 msgstr ""
 
-#: src/routes/index.ts:288 src/views/other/Install.vue:134
+#: src/routes/index.ts:299 src/views/other/Install.vue:134
 msgid "Install"
 msgstr "安裝"
 
@@ -997,7 +1025,17 @@ msgstr "無效的郵箱!"
 msgid "Invalid 2FA or recovery code"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:60
+#: src/views/config/components/Rename.vue:62
+#: src/views/config/ConfigEditor.vue:233
+#, fuzzy
+msgid "Invalid filename"
+msgstr "無效的郵箱!"
+
+#: src/views/config/components/Mkdir.vue:60
+msgid "Invalid folder name"
+msgstr ""
+
+#: src/components/OTP/useOTPModal.ts:64
 msgid "Invalid passcode or recovery code"
 msgstr ""
 
@@ -1101,7 +1139,7 @@ msgstr "Locations"
 msgid "Log"
 msgstr "登入"
 
-#: src/routes/index.ts:294 src/views/other/Login.vue:192
+#: src/routes/index.ts:305 src/views/other/Login.vue:192
 msgid "Login"
 msgstr "登入"
 
@@ -1134,7 +1172,8 @@ msgid ""
 msgstr ""
 "在取得憑證前,請確保您已將 .well-known 目錄反向代理到 HTTPChallengePort。"
 
-#: src/routes/index.ts:102
+#: src/routes/index.ts:102 src/views/config/Config.vue:62
+#: src/views/config/ConfigEditor.vue:123 src/views/config/ConfigEditor.vue:84
 msgid "Manage Configs"
 msgstr "管理設定"
 
@@ -1147,7 +1186,7 @@ msgstr "管理網站"
 msgid "Manage Streams"
 msgstr "管理網站"
 
-#: src/routes/index.ts:240 src/views/user/User.vue:9
+#: src/routes/index.ts:251 src/views/user/User.vue:9
 msgid "Manage Users"
 msgstr "管理使用者"
 
@@ -1184,7 +1223,7 @@ msgstr "執行模式"
 msgid "Modify"
 msgstr "修改"
 
-#: src/routes/index.ts:147 src/views/certificate/CertificateEditor.vue:79
+#: src/routes/index.ts:158 src/views/certificate/CertificateEditor.vue:79
 #, fuzzy
 msgid "Modify Certificate"
 msgstr "憑證狀態"
@@ -1205,7 +1244,9 @@ msgstr "多行指令"
 #: src/views/certificate/ACMEUser.vue:13
 #: src/views/certificate/CertificateEditor.vue:152
 #: src/views/certificate/CertificateList/certColumns.tsx:10
-#: src/views/certificate/DNSCredential.vue:11 src/views/config/config.ts:7
+#: src/views/certificate/DNSCredential.vue:11
+#: src/views/config/components/Mkdir.vue:67 src/views/config/configColumns.ts:8
+#: src/views/config/ConfigEditor.vue:239
 #: src/views/domain/components/RightSettings.vue:83
 #: src/views/domain/components/SiteDuplicate.vue:129
 #: src/views/domain/DomainList.vue:13
@@ -1233,6 +1274,16 @@ msgstr "下載流量"
 msgid "Network Total Send"
 msgstr "上傳流量"
 
+#: src/views/config/components/Rename.vue:70
+#, fuzzy
+msgid "New name"
+msgstr "使用者名稱"
+
+#: src/views/config/ConfigEditor.vue:251
+#, fuzzy
+msgid "New Path"
+msgstr "路徑"
+
 #: src/views/system/Upgrade.vue:210
 msgid "New version released"
 msgstr "新版本發布"
@@ -1263,7 +1314,7 @@ msgstr "Nginx 控制元件"
 msgid "Nginx Error Log Path"
 msgstr "Nginx 錯誤日誌路徑"
 
-#: src/routes/index.ts:185 src/views/nginx_log/NginxLog.vue:143
+#: src/routes/index.ts:196 src/views/nginx_log/NginxLog.vue:143
 msgid "Nginx Log"
 msgstr "Nginx 日誌"
 
@@ -1298,7 +1349,7 @@ msgstr "Node Secret"
 msgid "Not After"
 msgstr ""
 
-#: src/routes/index.ts:300
+#: src/routes/index.ts:311
 msgid "Not Found"
 msgstr "找不到頁面"
 
@@ -1316,7 +1367,7 @@ msgstr "備註"
 msgid "Notification"
 msgstr "憑證"
 
-#: src/components/Notification/Notification.vue:82 src/routes/index.ts:231
+#: src/components/Notification/Notification.vue:82 src/routes/index.ts:242
 #, fuzzy
 msgid "Notifications"
 msgstr "憑證"
@@ -1385,6 +1436,10 @@ msgstr "線上"
 msgid "OpenAI"
 msgstr "OpenAI"
 
+#: src/views/config/components/Rename.vue:66
+msgid "Original name"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:177
 msgid "OS"
 msgstr "作業系統"
@@ -1415,7 +1470,7 @@ msgstr "密碼"
 msgid "Password (*)"
 msgstr "密碼 (*)"
 
-#: src/views/config/ConfigEdit.vue:118
+#: src/views/config/ConfigEditor.vue:245
 #: src/views/domain/ngx_conf/LocationEditor.vue:118
 #: src/views/domain/ngx_conf/LocationEditor.vue:90
 msgid "Path"
@@ -1456,6 +1511,17 @@ msgstr ""
 "請先在 Certification > DNS Credentials 中新增認證,然後選擇以下認證之一以請"
 "求 DNS 供應商的 API。"
 
+#: src/views/config/components/Rename.vue:61
+#: src/views/config/ConfigEditor.vue:232
+#, fuzzy
+msgid "Please input a filename"
+msgstr "請輸入您的使用者名稱!"
+
+#: src/views/config/components/Mkdir.vue:59
+#, fuzzy
+msgid "Please input a folder name"
+msgstr "請輸入您的使用者名稱!"
+
 #: src/views/domain/components/SiteDuplicate.vue:38
 #: src/views/stream/components/StreamDuplicate.vue:38
 msgid ""
@@ -1491,7 +1557,7 @@ msgstr "請至少選擇一個節點!"
 msgid "Pre-release"
 msgstr "預先發布"
 
-#: src/routes/index.ts:249 src/views/preference/Preference.vue:105
+#: src/routes/index.ts:260 src/views/preference/Preference.vue:105
 msgid "Preference"
 msgstr "偏好設定"
 
@@ -1615,11 +1681,17 @@ msgstr "儲存成功"
 msgid "Removed successfully"
 msgstr "儲存成功"
 
+#: src/views/config/components/Rename.vue:52 src/views/config/Config.vue:130
 #: src/views/domain/ngx_conf/NgxUpstream.vue:123
 #, fuzzy
 msgid "Rename"
 msgstr "使用者名稱"
 
+#: src/views/config/components/Rename.vue:37
+#, fuzzy
+msgid "Rename successfully"
+msgstr "啟用成功"
+
 #: src/views/certificate/RenewCert.vue:43
 #: src/views/certificate/RenewCert.vue:47
 #, fuzzy
@@ -1673,7 +1745,7 @@ msgstr "執行中"
 
 #: src/components/ChatGPT/ChatGPT.vue:251
 #: src/views/certificate/CertificateEditor.vue:254
-#: src/views/config/ConfigEdit.vue:96 src/views/domain/DomainEdit.vue:260
+#: src/views/config/ConfigEditor.vue:205 src/views/domain/DomainEdit.vue:260
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
 #: src/views/preference/Preference.vue:145 src/views/stream/StreamEdit.vue:252
 msgid "Save"
@@ -1683,7 +1755,7 @@ msgstr "儲存"
 msgid "Save Directive"
 msgstr "儲存指令"
 
-#: src/views/config/ConfigEdit.vue:57 src/views/domain/DomainAdd.vue:46
+#: src/views/config/ConfigEditor.vue:154 src/views/domain/DomainAdd.vue:46
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:41
 msgid "Save error %{msg}"
 msgstr "儲存錯誤 %{msg}"
@@ -1695,7 +1767,7 @@ msgstr "儲存錯誤 %{msg}"
 msgid "Save successfully"
 msgstr "儲存成功"
 
-#: src/views/config/ConfigEdit.vue:55 src/views/domain/DomainAdd.vue:37
+#: src/views/config/ConfigEditor.vue:150 src/views/domain/DomainAdd.vue:37
 #: src/views/domain/DomainEdit.vue:143
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/stream/StreamEdit.vue:138
@@ -1726,7 +1798,9 @@ msgstr "傳送"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:213
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:253
-#: src/views/config/ConfigEdit.vue:40 src/views/domain/DomainList.vue:81
+#: src/views/config/components/Mkdir.vue:38
+#: src/views/config/components/Rename.vue:40
+#: src/views/config/ConfigEditor.vue:93 src/views/domain/DomainList.vue:81
 #: src/views/environment/BatchUpgrader.vue:57
 #: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
 #: src/views/preference/AuthSettings.vue:49
@@ -1782,7 +1856,7 @@ msgstr ""
 msgid "Single Directive"
 msgstr "單一指令"
 
-#: src/routes/index.ts:207
+#: src/routes/index.ts:218
 msgid "Site Logs"
 msgstr "網站日誌"
 
@@ -1888,7 +1962,7 @@ msgstr "更換憑證"
 msgid "Sync to"
 msgstr ""
 
-#: src/routes/index.ts:258
+#: src/routes/index.ts:269
 msgid "System"
 msgstr "系統"
 
@@ -1901,7 +1975,7 @@ msgstr ""
 msgid "Target"
 msgstr "目標"
 
-#: src/routes/index.ts:177 src/views/pty/Terminal.vue:114
+#: src/routes/index.ts:188 src/views/pty/Terminal.vue:114
 msgid "Terminal"
 msgstr "終端機"
 
@@ -2055,18 +2129,19 @@ msgstr ""
 msgid "Trash"
 msgstr ""
 
-#: src/components/OTP/useOTPModal.ts:66
+#: src/components/OTP/useOTPModal.ts:70
 msgid "Two-factor authentication required"
 msgstr ""
 
 #: src/views/certificate/CertificateList/certColumns.tsx:25
-#: src/views/config/config.ts:12 src/views/notification/Notification.vue:13
+#: src/views/config/configColumns.ts:16
+#: src/views/notification/Notification.vue:13
 msgid "Type"
 msgstr "類型"
 
 #: src/views/certificate/ACMEUser.vue:53
-#: src/views/certificate/DNSCredential.vue:27 src/views/config/config.ts:27
-#: src/views/config/ConfigEdit.vue:121
+#: src/views/certificate/DNSCredential.vue:27
+#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:258
 #: src/views/domain/components/RightSettings.vue:86
 #: src/views/domain/DomainList.vue:41 src/views/environment/envColumns.tsx:124
 #: src/views/stream/components/RightSettings.vue:85
@@ -2078,7 +2153,7 @@ msgstr "更新時間"
 msgid "Updated successfully"
 msgstr "更新成功"
 
-#: src/routes/index.ts:273 src/views/environment/Environment.vue:50
+#: src/routes/index.ts:284 src/views/environment/Environment.vue:50
 #: src/views/system/Upgrade.vue:145 src/views/system/Upgrade.vue:228
 msgid "Upgrade"
 msgstr "升級"
@@ -2209,6 +2284,10 @@ msgstr "您正在使用最新版本"
 msgid "You can check Nginx UI upgrade at this page."
 msgstr "您可以在此頁面檢查 Nginx UI 的升級。"
 
+#, fuzzy
+#~ msgid "Rename "
+#~ msgstr "使用者名稱"
+
 #~ msgid "Auto Cert"
 #~ msgstr "自動憑證"
 

+ 1 - 1
app/src/views/config/Config.vue

@@ -127,7 +127,7 @@ const refRename = ref()
     >
       <template #actions="{ record }">
         <ADivider type="vertical" />
-        <a @click="() => refRename.open(basePath, record.name)">{{ $gettext('Rename ') }}</a>
+        <a @click="() => refRename.open(basePath, record.name)">{{ $gettext('Rename') }}</a>
       </template>
     </StdTable>
     <Mkdir