Ver código fonte

feat(translation): add tr_TR template

Jacky 6 meses atrás
pai
commit
6449322675

+ 2 - 1
app/i18n.json

@@ -6,5 +6,6 @@
   "es": "Es",
   "ru_RU": "Ru",
   "vi_VN": "Vi",
-  "ko_KR": "한글"
+  "ko_KR": "한글",
+  "tr_TR": "Tr"
 }

+ 1 - 1
app/src/language/LINGUAS

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

+ 20 - 18
app/src/language/en/app.po

@@ -37,7 +37,7 @@ msgstr "Username"
 #: src/views/config/configColumns.ts:38
 #: src/views/environment/envColumns.tsx:131
 #: src/views/notification/notificationColumns.tsx:54
-#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:47
+#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54
 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Action"
@@ -150,7 +150,7 @@ msgstr "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Are you sure you want to remove this directive?"
 
-#: src/views/site/SiteList.vue:146 src/views/stream/StreamList.vue:167
+#: src/views/site/SiteList.vue:153 src/views/stream/StreamList.vue:167
 #, fuzzy
 msgid "Are you sure you want to delete?"
 msgstr "Are you sure you want to remove this directive?"
@@ -518,7 +518,7 @@ msgstr ""
 
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:556
 #: src/views/site/ngx_conf/NgxServer.vue:110
-#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:155
+#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:162
 #: src/views/stream/StreamList.vue:176
 msgid "Delete"
 msgstr ""
@@ -527,7 +527,7 @@ msgstr ""
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/views/site/SiteList.vue:78
+#: src/views/site/SiteList.vue:85
 msgid "Delete site: %{site_name}"
 msgstr ""
 
@@ -590,7 +590,7 @@ msgstr "Directives"
 msgid "Directory"
 msgstr "Directive"
 
-#: src/views/site/SiteList.vue:124 src/views/stream/StreamList.vue:145
+#: src/views/site/SiteList.vue:131 src/views/stream/StreamList.vue:145
 #, fuzzy
 msgid "Disable"
 msgstr "Disabled"
@@ -601,13 +601,14 @@ msgstr "Disable auto-renewal failed for %{name}"
 
 #: src/views/environment/envColumns.tsx:113
 #: src/views/environment/envColumns.tsx:95 src/views/site/SiteEdit.vue:181
-#: src/views/site/SiteList.vue:33 src/views/stream/StreamEdit.vue:175
-#: src/views/stream/StreamList.vue:33 src/views/user/userColumns.tsx:41
+#: src/views/site/SiteList.vue:33 src/views/site/SiteList.vue:42
+#: src/views/stream/StreamEdit.vue:175 src/views/stream/StreamList.vue:33
+#: src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Disabled"
 
 #: src/views/site/components/RightSettings.vue:38
-#: src/views/site/SiteList.vue:67
+#: src/views/site/SiteList.vue:74
 #: src/views/stream/components/RightSettings.vue:38
 #: src/views/stream/StreamList.vue:67
 msgid "Disabled successfully"
@@ -712,7 +713,7 @@ msgid ""
 msgstr ""
 
 #: src/views/site/components/SiteDuplicate.vue:122
-#: src/views/site/SiteList.vue:140
+#: src/views/site/SiteList.vue:147
 #: src/views/stream/components/StreamDuplicate.vue:122
 #: src/views/stream/StreamList.vue:161
 msgid "Duplicate"
@@ -768,7 +769,7 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgstr "Email (*)"
 
-#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:132
+#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:139
 #: src/views/stream/components/Deploy.vue:83
 #: src/views/stream/StreamList.vue:153
 #, fuzzy
@@ -818,6 +819,7 @@ msgstr "Enable TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/site/components/RightSettings.vue:77
 #: src/views/site/SiteEdit.vue:175 src/views/site/SiteList.vue:29
+#: src/views/site/SiteList.vue:41
 #: src/views/stream/components/RightSettings.vue:76
 #: src/views/stream/StreamEdit.vue:169 src/views/stream/StreamList.vue:29
 #: src/views/user/userColumns.tsx:38
@@ -826,7 +828,7 @@ msgstr "Enabled"
 
 #: src/views/site/components/RightSettings.vue:29
 #: src/views/site/components/SiteDuplicate.vue:94 src/views/site/SiteAdd.vue:40
-#: src/views/site/SiteList.vue:57
+#: src/views/site/SiteList.vue:64
 #: src/views/stream/components/RightSettings.vue:29
 #: src/views/stream/components/StreamDuplicate.vue:94
 #: src/views/stream/StreamList.vue:57
@@ -883,14 +885,14 @@ msgid "Fail to obtain certificate"
 msgstr "Certificate is valid"
 
 #: src/views/site/components/RightSettings.vue:41
-#: src/views/site/SiteList.vue:71
+#: src/views/site/SiteList.vue:78
 #: src/views/stream/components/RightSettings.vue:41
 #: src/views/stream/StreamList.vue:71
 msgid "Failed to disable %{msg}"
 msgstr "Failed to disable %{msg}"
 
 #: src/views/site/components/RightSettings.vue:32
-#: src/views/site/SiteList.vue:61
+#: src/views/site/SiteList.vue:68
 #: src/views/stream/components/RightSettings.vue:32
 #: src/views/stream/StreamList.vue:61
 msgid "Failed to enable %{msg}"
@@ -1251,7 +1253,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Manage Configs"
 
-#: src/routes/index.ts:48 src/views/site/SiteList.vue:102
+#: src/routes/index.ts:48 src/views/site/SiteList.vue:109
 msgid "Manage Sites"
 msgstr "Manage Sites"
 
@@ -1419,7 +1421,7 @@ msgstr "Saved successfully"
 #: src/views/preference/BasicSettings.vue:101
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90
 #: src/views/site/ngx_conf/LocationEditor.vue:90
-#: src/views/site/SiteList.vue:144 src/views/stream/StreamList.vue:165
+#: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165
 msgid "No"
 msgstr "No"
 
@@ -1496,7 +1498,7 @@ msgstr ""
 #: src/views/site/components/RightSettings.vue:50
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
-#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:145
+#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:152
 #: src/views/stream/components/Deploy.vue:20
 #: src/views/stream/components/RightSettings.vue:50
 #: src/views/stream/StreamList.vue:166
@@ -1972,7 +1974,7 @@ msgstr "Send"
 #: src/views/preference/components/Passkey.vue:56
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:58
-#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:81
+#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88
 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81
 #: src/views/system/Upgrade.vue:42
 msgid "Server error"
@@ -2368,7 +2370,7 @@ msgstr "Saved successfully"
 #: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
 #: src/views/environment/envColumns.tsx:124
 #: src/views/site/components/RightSettings.vue:86
-#: src/views/site/SiteList.vue:41
+#: src/views/site/SiteList.vue:48
 #: src/views/stream/components/RightSettings.vue:85
 #: src/views/stream/StreamList.vue:41 src/views/user/userColumns.tsx:54
 msgid "Updated at"

+ 20 - 18
app/src/language/es/app.po

@@ -43,7 +43,7 @@ msgstr "Usuario ACME"
 #: src/views/config/configColumns.ts:38
 #: src/views/environment/envColumns.tsx:131
 #: src/views/notification/notificationColumns.tsx:54
-#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:47
+#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54
 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Acción"
@@ -147,7 +147,7 @@ msgstr "¿Está seguro de que desea eliminar este elemento de forma permanente?"
 msgid "Are you sure you want to delete this item?"
 msgstr "¿Está seguro de que quiere borrar este elemento?"
 
-#: src/views/site/SiteList.vue:146 src/views/stream/StreamList.vue:167
+#: src/views/site/SiteList.vue:153 src/views/stream/StreamList.vue:167
 msgid "Are you sure you want to delete?"
 msgstr "¿Está seguro de que quiere borrar?"
 
@@ -500,7 +500,7 @@ msgstr "Días"
 
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:556
 #: src/views/site/ngx_conf/NgxServer.vue:110
-#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:155
+#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:162
 #: src/views/stream/StreamList.vue:176
 msgid "Delete"
 msgstr "Eliminar"
@@ -509,7 +509,7 @@ msgstr "Eliminar"
 msgid "Delete Permanently"
 msgstr "Eliminar Permanentemente"
 
-#: src/views/site/SiteList.vue:78
+#: src/views/site/SiteList.vue:85
 msgid "Delete site: %{site_name}"
 msgstr "Eliminar sitio: %{site_name}"
 
@@ -569,7 +569,7 @@ msgstr "Directivas"
 msgid "Directory"
 msgstr "Directorio"
 
-#: src/views/site/SiteList.vue:124 src/views/stream/StreamList.vue:145
+#: src/views/site/SiteList.vue:131 src/views/stream/StreamList.vue:145
 msgid "Disable"
 msgstr "Desactivar"
 
@@ -579,13 +579,14 @@ msgstr "No se pudo desactivar la renovación automática por %{name}"
 
 #: src/views/environment/envColumns.tsx:113
 #: src/views/environment/envColumns.tsx:95 src/views/site/SiteEdit.vue:181
-#: src/views/site/SiteList.vue:33 src/views/stream/StreamEdit.vue:175
-#: src/views/stream/StreamList.vue:33 src/views/user/userColumns.tsx:41
+#: src/views/site/SiteList.vue:33 src/views/site/SiteList.vue:42
+#: src/views/stream/StreamEdit.vue:175 src/views/stream/StreamList.vue:33
+#: src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Desactivado"
 
 #: src/views/site/components/RightSettings.vue:38
-#: src/views/site/SiteList.vue:67
+#: src/views/site/SiteList.vue:74
 #: src/views/stream/components/RightSettings.vue:38
 #: src/views/stream/StreamList.vue:67
 msgid "Disabled successfully"
@@ -684,7 +685,7 @@ msgid ""
 msgstr ""
 
 #: src/views/site/components/SiteDuplicate.vue:122
-#: src/views/site/SiteList.vue:140
+#: src/views/site/SiteList.vue:147
 #: src/views/stream/components/StreamDuplicate.vue:122
 #: src/views/stream/StreamList.vue:161
 msgid "Duplicate"
@@ -734,7 +735,7 @@ msgstr "Correo"
 msgid "Email (*)"
 msgstr "Correo (*)"
 
-#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:132
+#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:139
 #: src/views/stream/components/Deploy.vue:83
 #: src/views/stream/StreamList.vue:153
 msgid "Enable"
@@ -781,6 +782,7 @@ msgstr "Habilitar TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/site/components/RightSettings.vue:77
 #: src/views/site/SiteEdit.vue:175 src/views/site/SiteList.vue:29
+#: src/views/site/SiteList.vue:41
 #: src/views/stream/components/RightSettings.vue:76
 #: src/views/stream/StreamEdit.vue:169 src/views/stream/StreamList.vue:29
 #: src/views/user/userColumns.tsx:38
@@ -789,7 +791,7 @@ msgstr "Habilitado"
 
 #: src/views/site/components/RightSettings.vue:29
 #: src/views/site/components/SiteDuplicate.vue:94 src/views/site/SiteAdd.vue:40
-#: src/views/site/SiteList.vue:57
+#: src/views/site/SiteList.vue:64
 #: src/views/stream/components/RightSettings.vue:29
 #: src/views/stream/components/StreamDuplicate.vue:94
 #: src/views/stream/StreamList.vue:57
@@ -843,14 +845,14 @@ msgid "Fail to obtain certificate"
 msgstr "Falla al obtener el certificado"
 
 #: src/views/site/components/RightSettings.vue:41
-#: src/views/site/SiteList.vue:71
+#: src/views/site/SiteList.vue:78
 #: src/views/stream/components/RightSettings.vue:41
 #: src/views/stream/StreamList.vue:71
 msgid "Failed to disable %{msg}"
 msgstr "Error al deshabilitar %{msg}"
 
 #: src/views/site/components/RightSettings.vue:32
-#: src/views/site/SiteList.vue:61
+#: src/views/site/SiteList.vue:68
 #: src/views/stream/components/RightSettings.vue:32
 #: src/views/stream/StreamList.vue:61
 msgid "Failed to enable %{msg}"
@@ -1207,7 +1209,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Administrar configuraciones"
 
-#: src/routes/index.ts:48 src/views/site/SiteList.vue:102
+#: src/routes/index.ts:48 src/views/site/SiteList.vue:109
 msgid "Manage Sites"
 msgstr "Administrar sitios"
 
@@ -1363,7 +1365,7 @@ msgstr "Nginx reiniciado con éxito"
 #: src/views/preference/BasicSettings.vue:101
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90
 #: src/views/site/ngx_conf/LocationEditor.vue:90
-#: src/views/site/SiteList.vue:144 src/views/stream/StreamList.vue:165
+#: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165
 msgid "No"
 msgstr "No"
 
@@ -1439,7 +1441,7 @@ msgstr "Ok"
 #: src/views/site/components/RightSettings.vue:50
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
-#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:145
+#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:152
 #: src/views/stream/components/Deploy.vue:20
 #: src/views/stream/components/RightSettings.vue:50
 #: src/views/stream/StreamList.vue:166
@@ -1910,7 +1912,7 @@ msgstr "Enviado"
 #: src/views/preference/components/Passkey.vue:56
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:58
-#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:81
+#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88
 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81
 #: src/views/system/Upgrade.vue:42
 msgid "Server error"
@@ -2318,7 +2320,7 @@ msgstr "Actualización exitosa"
 #: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
 #: src/views/environment/envColumns.tsx:124
 #: src/views/site/components/RightSettings.vue:86
-#: src/views/site/SiteList.vue:41
+#: src/views/site/SiteList.vue:48
 #: src/views/stream/components/RightSettings.vue:85
 #: src/views/stream/StreamList.vue:41 src/views/user/userColumns.tsx:54
 msgid "Updated at"

+ 20 - 18
app/src/language/fr_FR/app.po

@@ -39,7 +39,7 @@ msgstr "Nom d'utilisateur"
 #: src/views/config/configColumns.ts:38
 #: src/views/environment/envColumns.tsx:131
 #: src/views/notification/notificationColumns.tsx:54
-#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:47
+#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54
 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Action"
@@ -153,7 +153,7 @@ msgstr "Etes-vous sûr que vous voulez supprimer ?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Etes-vous sûr que vous voulez supprimer ?"
 
-#: src/views/site/SiteList.vue:146 src/views/stream/StreamList.vue:167
+#: src/views/site/SiteList.vue:153 src/views/stream/StreamList.vue:167
 msgid "Are you sure you want to delete?"
 msgstr "Etes-vous sûr que vous voulez supprimer ?"
 
@@ -518,7 +518,7 @@ msgstr ""
 
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:556
 #: src/views/site/ngx_conf/NgxServer.vue:110
-#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:155
+#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:162
 #: src/views/stream/StreamList.vue:176
 msgid "Delete"
 msgstr "Supprimer"
@@ -527,7 +527,7 @@ msgstr "Supprimer"
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/views/site/SiteList.vue:78
+#: src/views/site/SiteList.vue:85
 msgid "Delete site: %{site_name}"
 msgstr "Supprimer le site : %{site_name}"
 
@@ -591,7 +591,7 @@ msgstr "Directives"
 msgid "Directory"
 msgstr "Directive"
 
-#: src/views/site/SiteList.vue:124 src/views/stream/StreamList.vue:145
+#: src/views/site/SiteList.vue:131 src/views/stream/StreamList.vue:145
 #, fuzzy
 msgid "Disable"
 msgstr "Désactivé"
@@ -602,13 +602,14 @@ msgstr "La désactivation du renouvellement automatique a échoué pour %{name}"
 
 #: src/views/environment/envColumns.tsx:113
 #: src/views/environment/envColumns.tsx:95 src/views/site/SiteEdit.vue:181
-#: src/views/site/SiteList.vue:33 src/views/stream/StreamEdit.vue:175
-#: src/views/stream/StreamList.vue:33 src/views/user/userColumns.tsx:41
+#: src/views/site/SiteList.vue:33 src/views/site/SiteList.vue:42
+#: src/views/stream/StreamEdit.vue:175 src/views/stream/StreamList.vue:33
+#: src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Désactivé"
 
 #: src/views/site/components/RightSettings.vue:38
-#: src/views/site/SiteList.vue:67
+#: src/views/site/SiteList.vue:74
 #: src/views/stream/components/RightSettings.vue:38
 #: src/views/stream/StreamList.vue:67
 msgid "Disabled successfully"
@@ -712,7 +713,7 @@ msgid ""
 msgstr ""
 
 #: src/views/site/components/SiteDuplicate.vue:122
-#: src/views/site/SiteList.vue:140
+#: src/views/site/SiteList.vue:147
 #: src/views/stream/components/StreamDuplicate.vue:122
 #: src/views/stream/StreamList.vue:161
 msgid "Duplicate"
@@ -768,7 +769,7 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgstr "Email (*)"
 
-#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:132
+#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:139
 #: src/views/stream/components/Deploy.vue:83
 #: src/views/stream/StreamList.vue:153
 #, fuzzy
@@ -818,6 +819,7 @@ msgstr "Activer TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/site/components/RightSettings.vue:77
 #: src/views/site/SiteEdit.vue:175 src/views/site/SiteList.vue:29
+#: src/views/site/SiteList.vue:41
 #: src/views/stream/components/RightSettings.vue:76
 #: src/views/stream/StreamEdit.vue:169 src/views/stream/StreamList.vue:29
 #: src/views/user/userColumns.tsx:38
@@ -826,7 +828,7 @@ msgstr "Activé"
 
 #: src/views/site/components/RightSettings.vue:29
 #: src/views/site/components/SiteDuplicate.vue:94 src/views/site/SiteAdd.vue:40
-#: src/views/site/SiteList.vue:57
+#: src/views/site/SiteList.vue:64
 #: src/views/stream/components/RightSettings.vue:29
 #: src/views/stream/components/StreamDuplicate.vue:94
 #: src/views/stream/StreamList.vue:57
@@ -884,14 +886,14 @@ msgid "Fail to obtain certificate"
 msgstr "Obtenir un certificat"
 
 #: src/views/site/components/RightSettings.vue:41
-#: src/views/site/SiteList.vue:71
+#: src/views/site/SiteList.vue:78
 #: src/views/stream/components/RightSettings.vue:41
 #: src/views/stream/StreamList.vue:71
 msgid "Failed to disable %{msg}"
 msgstr "Impossible de désactiver %{msg}"
 
 #: src/views/site/components/RightSettings.vue:32
-#: src/views/site/SiteList.vue:61
+#: src/views/site/SiteList.vue:68
 #: src/views/stream/components/RightSettings.vue:32
 #: src/views/stream/StreamList.vue:61
 msgid "Failed to enable %{msg}"
@@ -1253,7 +1255,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Gérer les configurations"
 
-#: src/routes/index.ts:48 src/views/site/SiteList.vue:102
+#: src/routes/index.ts:48 src/views/site/SiteList.vue:109
 msgid "Manage Sites"
 msgstr "Gérer les sites"
 
@@ -1417,7 +1419,7 @@ msgstr "Nginx a redémarré avec succès"
 #: src/views/preference/BasicSettings.vue:101
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90
 #: src/views/site/ngx_conf/LocationEditor.vue:90
-#: src/views/site/SiteList.vue:144 src/views/stream/StreamList.vue:165
+#: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165
 msgid "No"
 msgstr "Non"
 
@@ -1494,7 +1496,7 @@ msgstr ""
 #: src/views/site/components/RightSettings.vue:50
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
-#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:145
+#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:152
 #: src/views/stream/components/Deploy.vue:20
 #: src/views/stream/components/RightSettings.vue:50
 #: src/views/stream/StreamList.vue:166
@@ -1980,7 +1982,7 @@ msgstr "Envoyer"
 #: src/views/preference/components/Passkey.vue:56
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:58
-#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:81
+#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88
 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81
 #: src/views/system/Upgrade.vue:42
 msgid "Server error"
@@ -2384,7 +2386,7 @@ msgstr "Mis à jour avec succés"
 #: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
 #: src/views/environment/envColumns.tsx:124
 #: src/views/site/components/RightSettings.vue:86
-#: src/views/site/SiteList.vue:41
+#: src/views/site/SiteList.vue:48
 #: src/views/stream/components/RightSettings.vue:85
 #: src/views/stream/StreamList.vue:41 src/views/user/userColumns.tsx:54
 msgid "Updated at"

+ 20 - 18
app/src/language/ko_KR/app.po

@@ -41,7 +41,7 @@ msgstr "ACME 사용자"
 #: src/views/config/configColumns.ts:38
 #: src/views/environment/envColumns.tsx:131
 #: src/views/notification/notificationColumns.tsx:54
-#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:47
+#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54
 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "작업"
@@ -145,7 +145,7 @@ msgstr "이 항목을 영구적으로 삭제하시겠습니까?"
 msgid "Are you sure you want to delete this item?"
 msgstr "이 항목을 삭제하시겠습니까?"
 
-#: src/views/site/SiteList.vue:146 src/views/stream/StreamList.vue:167
+#: src/views/site/SiteList.vue:153 src/views/stream/StreamList.vue:167
 msgid "Are you sure you want to delete?"
 msgstr "정말 삭제하시겠습니까?"
 
@@ -497,7 +497,7 @@ msgstr ""
 
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:556
 #: src/views/site/ngx_conf/NgxServer.vue:110
-#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:155
+#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:162
 #: src/views/stream/StreamList.vue:176
 msgid "Delete"
 msgstr "삭제"
@@ -506,7 +506,7 @@ msgstr "삭제"
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/views/site/SiteList.vue:78
+#: src/views/site/SiteList.vue:85
 msgid "Delete site: %{site_name}"
 msgstr "사이트 삭제: %{site_name}"
 
@@ -566,7 +566,7 @@ msgstr "지시문들"
 msgid "Directory"
 msgstr "디렉토리"
 
-#: src/views/site/SiteList.vue:124 src/views/stream/StreamList.vue:145
+#: src/views/site/SiteList.vue:131 src/views/stream/StreamList.vue:145
 msgid "Disable"
 msgstr "비활성화"
 
@@ -576,13 +576,14 @@ msgstr "%{name}의 자동 갱신 비활성화 실패"
 
 #: src/views/environment/envColumns.tsx:113
 #: src/views/environment/envColumns.tsx:95 src/views/site/SiteEdit.vue:181
-#: src/views/site/SiteList.vue:33 src/views/stream/StreamEdit.vue:175
-#: src/views/stream/StreamList.vue:33 src/views/user/userColumns.tsx:41
+#: src/views/site/SiteList.vue:33 src/views/site/SiteList.vue:42
+#: src/views/stream/StreamEdit.vue:175 src/views/stream/StreamList.vue:33
+#: src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "비활성화됨"
 
 #: src/views/site/components/RightSettings.vue:38
-#: src/views/site/SiteList.vue:67
+#: src/views/site/SiteList.vue:74
 #: src/views/stream/components/RightSettings.vue:38
 #: src/views/stream/StreamList.vue:67
 msgid "Disabled successfully"
@@ -680,7 +681,7 @@ msgid ""
 msgstr ""
 
 #: src/views/site/components/SiteDuplicate.vue:122
-#: src/views/site/SiteList.vue:140
+#: src/views/site/SiteList.vue:147
 #: src/views/stream/components/StreamDuplicate.vue:122
 #: src/views/stream/StreamList.vue:161
 msgid "Duplicate"
@@ -732,7 +733,7 @@ msgstr "이메일 (*)"
 msgid "Email (*)"
 msgstr "이메일 (*)"
 
-#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:132
+#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:139
 #: src/views/stream/components/Deploy.vue:83
 #: src/views/stream/StreamList.vue:153
 msgid "Enable"
@@ -780,6 +781,7 @@ msgstr "TLS 활성화"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/site/components/RightSettings.vue:77
 #: src/views/site/SiteEdit.vue:175 src/views/site/SiteList.vue:29
+#: src/views/site/SiteList.vue:41
 #: src/views/stream/components/RightSettings.vue:76
 #: src/views/stream/StreamEdit.vue:169 src/views/stream/StreamList.vue:29
 #: src/views/user/userColumns.tsx:38
@@ -788,7 +790,7 @@ msgstr "활성화됨"
 
 #: src/views/site/components/RightSettings.vue:29
 #: src/views/site/components/SiteDuplicate.vue:94 src/views/site/SiteAdd.vue:40
-#: src/views/site/SiteList.vue:57
+#: src/views/site/SiteList.vue:64
 #: src/views/stream/components/RightSettings.vue:29
 #: src/views/stream/components/StreamDuplicate.vue:94
 #: src/views/stream/StreamList.vue:57
@@ -845,14 +847,14 @@ msgid "Fail to obtain certificate"
 msgstr "인증서 획득 실패"
 
 #: src/views/site/components/RightSettings.vue:41
-#: src/views/site/SiteList.vue:71
+#: src/views/site/SiteList.vue:78
 #: src/views/stream/components/RightSettings.vue:41
 #: src/views/stream/StreamList.vue:71
 msgid "Failed to disable %{msg}"
 msgstr "%{msg} 비활성화 실패"
 
 #: src/views/site/components/RightSettings.vue:32
-#: src/views/site/SiteList.vue:61
+#: src/views/site/SiteList.vue:68
 #: src/views/stream/components/RightSettings.vue:32
 #: src/views/stream/StreamList.vue:61
 msgid "Failed to enable %{msg}"
@@ -1219,7 +1221,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "구성 관리"
 
-#: src/routes/index.ts:48 src/views/site/SiteList.vue:102
+#: src/routes/index.ts:48 src/views/site/SiteList.vue:109
 msgid "Manage Sites"
 msgstr "사이트 관리"
 
@@ -1387,7 +1389,7 @@ msgstr "Nginx가 성공적으로 재시작됨"
 #: src/views/preference/BasicSettings.vue:101
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90
 #: src/views/site/ngx_conf/LocationEditor.vue:90
-#: src/views/site/SiteList.vue:144 src/views/stream/StreamList.vue:165
+#: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165
 msgid "No"
 msgstr "아니요"
 
@@ -1464,7 +1466,7 @@ msgstr ""
 #: src/views/site/components/RightSettings.vue:50
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
-#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:145
+#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:152
 #: src/views/stream/components/Deploy.vue:20
 #: src/views/stream/components/RightSettings.vue:50
 #: src/views/stream/StreamList.vue:166
@@ -1948,7 +1950,7 @@ msgstr "보내기"
 #: src/views/preference/components/Passkey.vue:56
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:58
-#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:81
+#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88
 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81
 #: src/views/system/Upgrade.vue:42
 msgid "Server error"
@@ -2348,7 +2350,7 @@ msgstr "성공적으로 저장되었습니다"
 #: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
 #: src/views/environment/envColumns.tsx:124
 #: src/views/site/components/RightSettings.vue:86
-#: src/views/site/SiteList.vue:41
+#: src/views/site/SiteList.vue:48
 #: src/views/stream/components/RightSettings.vue:85
 #: src/views/stream/StreamList.vue:41 src/views/user/userColumns.tsx:54
 msgid "Updated at"

+ 18 - 16
app/src/language/messages.pot

@@ -32,7 +32,7 @@ msgstr ""
 #: src/views/environment/envColumns.tsx:131
 #: src/views/notification/notificationColumns.tsx:54
 #: src/views/preference/AuthSettings.vue:27
-#: src/views/site/SiteList.vue:47
+#: src/views/site/SiteList.vue:54
 #: src/views/stream/StreamList.vue:47
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
@@ -139,7 +139,7 @@ msgstr ""
 msgid "Are you sure you want to delete this item?"
 msgstr ""
 
-#: src/views/site/SiteList.vue:146
+#: src/views/site/SiteList.vue:153
 #: src/views/stream/StreamList.vue:167
 msgid "Are you sure you want to delete?"
 msgstr ""
@@ -494,7 +494,7 @@ msgstr ""
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:556
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:126
-#: src/views/site/SiteList.vue:155
+#: src/views/site/SiteList.vue:162
 #: src/views/stream/StreamList.vue:176
 msgid "Delete"
 msgstr ""
@@ -503,7 +503,7 @@ msgstr ""
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/views/site/SiteList.vue:78
+#: src/views/site/SiteList.vue:85
 msgid "Delete site: %{site_name}"
 msgstr ""
 
@@ -563,7 +563,7 @@ msgstr ""
 msgid "Directory"
 msgstr ""
 
-#: src/views/site/SiteList.vue:124
+#: src/views/site/SiteList.vue:131
 #: src/views/stream/StreamList.vue:145
 msgid "Disable"
 msgstr ""
@@ -576,6 +576,7 @@ msgstr ""
 #: src/views/environment/envColumns.tsx:95
 #: src/views/site/SiteEdit.vue:181
 #: src/views/site/SiteList.vue:33
+#: src/views/site/SiteList.vue:42
 #: src/views/stream/StreamEdit.vue:175
 #: src/views/stream/StreamList.vue:33
 #: src/views/user/userColumns.tsx:41
@@ -583,7 +584,7 @@ msgid "Disabled"
 msgstr ""
 
 #: src/views/site/components/RightSettings.vue:38
-#: src/views/site/SiteList.vue:67
+#: src/views/site/SiteList.vue:74
 #: src/views/stream/components/RightSettings.vue:38
 #: src/views/stream/StreamList.vue:67
 msgid "Disabled successfully"
@@ -680,7 +681,7 @@ msgid "Due to the security policies of some browsers, you cannot use passkeys on
 msgstr ""
 
 #: src/views/site/components/SiteDuplicate.vue:122
-#: src/views/site/SiteList.vue:140
+#: src/views/site/SiteList.vue:147
 #: src/views/stream/components/StreamDuplicate.vue:122
 #: src/views/stream/StreamList.vue:161
 msgid "Duplicate"
@@ -733,7 +734,7 @@ msgid "Email (*)"
 msgstr ""
 
 #: src/views/site/components/Deploy.vue:84
-#: src/views/site/SiteList.vue:132
+#: src/views/site/SiteList.vue:139
 #: src/views/stream/components/Deploy.vue:83
 #: src/views/stream/StreamList.vue:153
 msgid "Enable"
@@ -780,6 +781,7 @@ msgstr ""
 #: src/views/site/components/RightSettings.vue:77
 #: src/views/site/SiteEdit.vue:175
 #: src/views/site/SiteList.vue:29
+#: src/views/site/SiteList.vue:41
 #: src/views/stream/components/RightSettings.vue:76
 #: src/views/stream/StreamEdit.vue:169
 #: src/views/stream/StreamList.vue:29
@@ -790,7 +792,7 @@ msgstr ""
 #: src/views/site/components/RightSettings.vue:29
 #: src/views/site/components/SiteDuplicate.vue:94
 #: src/views/site/SiteAdd.vue:40
-#: src/views/site/SiteList.vue:57
+#: src/views/site/SiteList.vue:64
 #: src/views/stream/components/RightSettings.vue:29
 #: src/views/stream/components/StreamDuplicate.vue:94
 #: src/views/stream/StreamList.vue:57
@@ -847,14 +849,14 @@ msgid "Fail to obtain certificate"
 msgstr ""
 
 #: src/views/site/components/RightSettings.vue:41
-#: src/views/site/SiteList.vue:71
+#: src/views/site/SiteList.vue:78
 #: src/views/stream/components/RightSettings.vue:41
 #: src/views/stream/StreamList.vue:71
 msgid "Failed to disable %{msg}"
 msgstr ""
 
 #: src/views/site/components/RightSettings.vue:32
-#: src/views/site/SiteList.vue:61
+#: src/views/site/SiteList.vue:68
 #: src/views/stream/components/RightSettings.vue:32
 #: src/views/stream/StreamList.vue:61
 msgid "Failed to enable %{msg}"
@@ -1187,7 +1189,7 @@ msgid "Manage Configs"
 msgstr ""
 
 #: src/routes/index.ts:48
-#: src/views/site/SiteList.vue:102
+#: src/views/site/SiteList.vue:109
 msgid "Manage Sites"
 msgstr ""
 
@@ -1352,7 +1354,7 @@ msgstr ""
 #: src/views/preference/BasicSettings.vue:101
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90
 #: src/views/site/ngx_conf/LocationEditor.vue:90
-#: src/views/site/SiteList.vue:144
+#: src/views/site/SiteList.vue:151
 #: src/views/stream/StreamList.vue:165
 msgid "No"
 msgstr ""
@@ -1427,7 +1429,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:32
-#: src/views/site/SiteList.vue:145
+#: src/views/site/SiteList.vue:152
 #: src/views/stream/components/Deploy.vue:20
 #: src/views/stream/components/RightSettings.vue:50
 #: src/views/stream/StreamList.vue:166
@@ -1872,7 +1874,7 @@ msgstr ""
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:58
 #: src/views/preference/Preference.vue:83
-#: src/views/site/SiteList.vue:81
+#: src/views/site/SiteList.vue:88
 #: src/views/stream/StreamList.vue:113
 #: src/views/stream/StreamList.vue:81
 #: src/views/system/Upgrade.vue:42
@@ -2213,7 +2215,7 @@ msgstr ""
 #: src/views/config/ConfigEditor.vue:275
 #: src/views/environment/envColumns.tsx:124
 #: src/views/site/components/RightSettings.vue:86
-#: src/views/site/SiteList.vue:41
+#: src/views/site/SiteList.vue:48
 #: src/views/stream/components/RightSettings.vue:85
 #: src/views/stream/StreamList.vue:41
 #: src/views/user/userColumns.tsx:54

+ 20 - 18
app/src/language/ru_RU/app.po

@@ -41,7 +41,7 @@ msgstr "Пользователь ACME"
 #: src/views/config/configColumns.ts:38
 #: src/views/environment/envColumns.tsx:131
 #: src/views/notification/notificationColumns.tsx:54
-#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:47
+#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54
 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Действие"
@@ -146,7 +146,7 @@ msgstr "Вы уверены, что хотите удалить этот эле
 msgid "Are you sure you want to delete this item?"
 msgstr "Вы уверены, что хотите удалить этот элемент?"
 
-#: src/views/site/SiteList.vue:146 src/views/stream/StreamList.vue:167
+#: src/views/site/SiteList.vue:153 src/views/stream/StreamList.vue:167
 msgid "Are you sure you want to delete?"
 msgstr "Вы уверены, что хотите удалить?"
 
@@ -498,7 +498,7 @@ msgstr "Дни"
 
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:556
 #: src/views/site/ngx_conf/NgxServer.vue:110
-#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:155
+#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:162
 #: src/views/stream/StreamList.vue:176
 msgid "Delete"
 msgstr "Удалить"
@@ -507,7 +507,7 @@ msgstr "Удалить"
 msgid "Delete Permanently"
 msgstr "Удалить навсегда"
 
-#: src/views/site/SiteList.vue:78
+#: src/views/site/SiteList.vue:85
 msgid "Delete site: %{site_name}"
 msgstr "Удалить сайт: %{site_name}"
 
@@ -567,7 +567,7 @@ msgstr "Дерективы"
 msgid "Directory"
 msgstr "Каталог"
 
-#: src/views/site/SiteList.vue:124 src/views/stream/StreamList.vue:145
+#: src/views/site/SiteList.vue:131 src/views/stream/StreamList.vue:145
 msgid "Disable"
 msgstr "Отключить"
 
@@ -577,13 +577,14 @@ msgstr "Не удалось отключить автоматическое пр
 
 #: src/views/environment/envColumns.tsx:113
 #: src/views/environment/envColumns.tsx:95 src/views/site/SiteEdit.vue:181
-#: src/views/site/SiteList.vue:33 src/views/stream/StreamEdit.vue:175
-#: src/views/stream/StreamList.vue:33 src/views/user/userColumns.tsx:41
+#: src/views/site/SiteList.vue:33 src/views/site/SiteList.vue:42
+#: src/views/stream/StreamEdit.vue:175 src/views/stream/StreamList.vue:33
+#: src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Отключено"
 
 #: src/views/site/components/RightSettings.vue:38
-#: src/views/site/SiteList.vue:67
+#: src/views/site/SiteList.vue:74
 #: src/views/stream/components/RightSettings.vue:38
 #: src/views/stream/StreamList.vue:67
 msgid "Disabled successfully"
@@ -682,7 +683,7 @@ msgid ""
 msgstr ""
 
 #: src/views/site/components/SiteDuplicate.vue:122
-#: src/views/site/SiteList.vue:140
+#: src/views/site/SiteList.vue:147
 #: src/views/stream/components/StreamDuplicate.vue:122
 #: src/views/stream/StreamList.vue:161
 msgid "Duplicate"
@@ -734,7 +735,7 @@ msgstr "Электронная почта"
 msgid "Email (*)"
 msgstr "Email (*)"
 
-#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:132
+#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:139
 #: src/views/stream/components/Deploy.vue:83
 #: src/views/stream/StreamList.vue:153
 msgid "Enable"
@@ -781,6 +782,7 @@ msgstr "Включить TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/site/components/RightSettings.vue:77
 #: src/views/site/SiteEdit.vue:175 src/views/site/SiteList.vue:29
+#: src/views/site/SiteList.vue:41
 #: src/views/stream/components/RightSettings.vue:76
 #: src/views/stream/StreamEdit.vue:169 src/views/stream/StreamList.vue:29
 #: src/views/user/userColumns.tsx:38
@@ -789,7 +791,7 @@ msgstr "Включено"
 
 #: src/views/site/components/RightSettings.vue:29
 #: src/views/site/components/SiteDuplicate.vue:94 src/views/site/SiteAdd.vue:40
-#: src/views/site/SiteList.vue:57
+#: src/views/site/SiteList.vue:64
 #: src/views/stream/components/RightSettings.vue:29
 #: src/views/stream/components/StreamDuplicate.vue:94
 #: src/views/stream/StreamList.vue:57
@@ -843,14 +845,14 @@ msgid "Fail to obtain certificate"
 msgstr "Не удалось получить сертификат"
 
 #: src/views/site/components/RightSettings.vue:41
-#: src/views/site/SiteList.vue:71
+#: src/views/site/SiteList.vue:78
 #: src/views/stream/components/RightSettings.vue:41
 #: src/views/stream/StreamList.vue:71
 msgid "Failed to disable %{msg}"
 msgstr "Не удалось отключить %{msg}"
 
 #: src/views/site/components/RightSettings.vue:32
-#: src/views/site/SiteList.vue:61
+#: src/views/site/SiteList.vue:68
 #: src/views/stream/components/RightSettings.vue:32
 #: src/views/stream/StreamList.vue:61
 msgid "Failed to enable %{msg}"
@@ -1205,7 +1207,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Конфигурации"
 
-#: src/routes/index.ts:48 src/views/site/SiteList.vue:102
+#: src/routes/index.ts:48 src/views/site/SiteList.vue:109
 msgid "Manage Sites"
 msgstr "Сайты"
 
@@ -1361,7 +1363,7 @@ msgstr "Nginx успешно перезапущен"
 #: src/views/preference/BasicSettings.vue:101
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90
 #: src/views/site/ngx_conf/LocationEditor.vue:90
-#: src/views/site/SiteList.vue:144 src/views/stream/StreamList.vue:165
+#: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165
 msgid "No"
 msgstr "Нет"
 
@@ -1437,7 +1439,7 @@ msgstr "Ок"
 #: src/views/site/components/RightSettings.vue:50
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
-#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:145
+#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:152
 #: src/views/stream/components/Deploy.vue:20
 #: src/views/stream/components/RightSettings.vue:50
 #: src/views/stream/StreamList.vue:166
@@ -1908,7 +1910,7 @@ msgstr "Отправлено"
 #: src/views/preference/components/Passkey.vue:56
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:58
-#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:81
+#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88
 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81
 #: src/views/system/Upgrade.vue:42
 msgid "Server error"
@@ -2312,7 +2314,7 @@ msgstr "Успешно обновлено"
 #: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
 #: src/views/environment/envColumns.tsx:124
 #: src/views/site/components/RightSettings.vue:86
-#: src/views/site/SiteList.vue:41
+#: src/views/site/SiteList.vue:48
 #: src/views/stream/components/RightSettings.vue:85
 #: src/views/stream/StreamList.vue:41 src/views/user/userColumns.tsx:54
 msgid "Updated at"

+ 2297 - 0
app/src/language/tr_TR/app.po

@@ -0,0 +1,2297 @@
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: PACKAGE VERSION\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/views/user/userColumns.tsx:32
+msgid "2FA"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:58
+msgid "2FA Settings"
+msgstr ""
+
+#: src/routes/index.ts:277
+msgid "About"
+msgstr ""
+
+#: src/routes/index.ts:204 src/views/site/ngx_conf/LogEntry.vue:76
+msgid "Access Logs"
+msgstr ""
+
+#: src/routes/index.ts:142 src/views/certificate/ACMEUser.vue:105
+#: src/views/certificate/ACMEUserSelector.vue:85
+msgid "ACME User"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:88
+#: src/views/certificate/CertificateList/certColumns.tsx:89
+#: src/views/certificate/DNSCredential.vue:33
+#: src/views/config/configColumns.ts:38
+#: src/views/environment/envColumns.tsx:131
+#: src/views/notification/notificationColumns.tsx:54
+#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54
+#: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60
+msgid "Action"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:204
+#: src/views/preference/BasicSettings.vue:73
+#: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
+#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxUpstream.vue:152
+#: src/views/stream/StreamList.vue:121
+msgid "Add"
+msgstr ""
+
+#: src/views/preference/components/AddPasskey.vue:51
+#: src/views/preference/components/AddPasskey.vue:55
+msgid "Add a passkey"
+msgstr ""
+
+#: src/routes/index.ts:112 src/views/config/ConfigEditor.vue:143
+#: src/views/config/ConfigEditor.vue:204
+msgid "Add Configuration"
+msgstr ""
+
+#: src/views/site/ngx_conf/directive/DirectiveAdd.vue:95
+msgid "Add Directive Below"
+msgstr ""
+
+#: src/views/site/ngx_conf/LocationEditor.vue:132
+#: src/views/site/ngx_conf/LocationEditor.vue:159
+msgid "Add Location"
+msgstr ""
+
+#: src/routes/index.ts:64 src/views/site/SiteAdd.vue:89
+msgid "Add Site"
+msgstr ""
+
+#: src/views/stream/StreamList.vue:183
+msgid "Add Stream"
+msgstr ""
+
+#: src/views/stream/StreamList.vue:111
+msgid "Added successfully"
+msgstr ""
+
+#: src/views/certificate/DNSChallenge.vue:108
+msgid "Additional"
+msgstr ""
+
+#: src/views/site/SiteEdit.vue:195 src/views/stream/StreamEdit.vue:189
+msgid "Advance Mode"
+msgstr ""
+
+#: src/views/preference/components/AddPasskey.vue:105
+msgid "Afterwards, refresh this page and click add passkey again."
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:44
+msgid "API Base Url"
+msgstr ""
+
+#: src/views/certificate/DNSChallenge.vue:82
+msgid "API Document"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:57
+msgid "API Proxy"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:69
+msgid "API Token"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:178
+msgid "Arch"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:102
+msgid "Are you sure to delete this banned IP immediately?"
+msgstr ""
+
+#: src/views/preference/components/Passkey.vue:119
+msgid "Are you sure to delete this passkey immediately?"
+msgstr ""
+
+#: src/components/Notification/Notification.vue:86
+#: src/views/notification/Notification.vue:40
+msgid "Are you sure you want to clear all notifications?"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:279
+msgid "Are you sure you want to clear the record of chat?"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:577
+msgid "Are you sure you want to delete this item permanently?"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:549
+msgid "Are you sure you want to delete this item?"
+msgstr ""
+
+#: src/views/site/SiteList.vue:153 src/views/stream/StreamList.vue:167
+msgid "Are you sure you want to delete?"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:563
+msgid "Are you sure you want to recover this item?"
+msgstr ""
+
+#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:88
+msgid "Are you sure you want to remove this directive?"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:99
+msgid "Are you sure you want to remove this item?"
+msgstr ""
+
+#: src/views/site/ngx_conf/LocationEditor.vue:88
+msgid "Are you sure you want to remove this location?"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:223
+msgid "Ask ChatGPT for Help"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:237
+msgid "Assistant"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:18
+msgid "Attempts"
+msgstr ""
+
+#: src/views/preference/Preference.vue:122
+msgid "Auth"
+msgstr ""
+
+#: src/components/TwoFA/Authorization.vue:126
+msgid "Authenticate with a passkey"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:63
+msgid "Authentication Settings"
+msgstr ""
+
+#: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:106
+#: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:120
+msgid "Author"
+msgstr ""
+
+#: src/views/nginx_log/NginxLog.vue:149
+msgid "Auto Refresh"
+msgstr ""
+
+#: src/views/site/cert/components/ObtainCert.vue:75
+msgid "Auto-renewal disabled for %{name}"
+msgstr ""
+
+#: src/views/site/cert/components/ObtainCert.vue:68
+msgid "Auto-renewal enabled for %{name}"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:249
+#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:107
+#: src/views/config/ConfigList.vue:181 src/views/nginx_log/NginxLog.vue:170
+#: src/views/site/SiteEdit.vue:253 src/views/stream/StreamEdit.vue:245
+msgid "Back"
+msgstr ""
+
+#: src/views/other/Error.vue:23
+msgid "Back Home"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:217
+msgid "Back to list"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:76
+msgid "Ban Threshold Minutes"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:90
+msgid "Banned IPs"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:21
+msgid "Banned Until"
+msgstr ""
+
+#: src/views/site/SiteAdd.vue:95
+msgid "Base information"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:241
+#: src/views/preference/Preference.vue:116
+#: src/views/site/components/RightSettings.vue:75
+#: src/views/stream/components/RightSettings.vue:74
+msgid "Basic"
+msgstr ""
+
+#: src/views/site/SiteEdit.vue:198 src/views/stream/StreamEdit.vue:192
+msgid "Basic Mode"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:54
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:485
+msgid "Batch Modify"
+msgstr ""
+
+#: src/views/environment/BatchUpgrader.vue:156
+msgid "Batch Upgrade"
+msgstr ""
+
+#: src/views/system/About.vue:39
+msgid "Build with"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:35
+msgid "CA Dir"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:47
+msgid "CADir"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:151
+msgid "Can't scan? Use text key binding"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:260
+#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:55
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:254
+#: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:153
+#: src/views/preference/components/Passkey.vue:147
+#: src/views/site/cert/components/ObtainCert.vue:137
+#: src/views/site/components/Deploy.vue:21
+#: src/views/site/components/RightSettings.vue:51
+#: src/views/site/ngx_conf/NgxConfigEditor.vue:51
+#: src/views/site/ngx_conf/NgxServer.vue:80
+#: src/views/site/ngx_conf/NgxUpstream.vue:33
+#: src/views/stream/components/Deploy.vue:21
+#: src/views/stream/components/RightSettings.vue:51
+msgid "Cancel"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:55
+msgid "Certificate Renewal Interval"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:122
+#: src/views/site/cert/Cert.vue:32
+msgid "Certificate Status"
+msgid_plural "Certificates Status"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/routes/index.ts:133
+#: src/views/certificate/CertificateList/Certificate.vue:13
+msgid "Certificates"
+msgstr ""
+
+#: src/routes/index.ts:150
+msgid "Certificates List"
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:67
+msgid "Challenge Method"
+msgstr ""
+
+#: src/views/site/cert/components/ChangeCert/ChangeCert.vue:49
+#: src/views/site/cert/components/ChangeCert/ChangeCert.vue:53
+msgid "Change Certificate"
+msgstr ""
+
+#: src/views/site/cert/Cert.vue:51
+msgid "Changed Certificate"
+msgid_plural "Changed Certificates"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/views/config/ConfigEditor.vue:268
+msgid "Changed Path"
+msgstr ""
+
+#: src/views/environment/BatchUpgrader.vue:163 src/views/system/Upgrade.vue:190
+msgid "Channel"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:187
+msgid "Check again"
+msgstr ""
+
+#: src/language/constants.ts:13
+msgid "Cleaning environment variables"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:283
+#: src/components/Notification/Notification.vue:91
+#: src/views/notification/Notification.vue:45
+msgid "Clear"
+msgstr ""
+
+#: src/components/Notification/Notification.vue:42
+#: src/views/notification/Notification.vue:13
+msgid "Cleared successfully"
+msgstr ""
+
+#: src/views/preference/LogrotateSettings.vue:22
+msgid "Command"
+msgstr ""
+
+#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:106
+#: src/views/site/ngx_conf/LocationEditor.vue:105
+#: src/views/site/ngx_conf/LocationEditor.vue:136
+#: src/views/site/ngx_conf/NgxServer.vue:134
+msgid "Comments"
+msgstr ""
+
+#: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:84
+msgid "Config Templates"
+msgstr ""
+
+#: src/views/config/InspectConfig.vue:27
+msgid "Configuration file is test successful"
+msgstr ""
+
+#: src/views/site/SiteAdd.vue:101
+msgid "Configuration Name"
+msgstr ""
+
+#: src/views/config/ConfigList.vue:99
+msgid "Configurations"
+msgstr ""
+
+#: src/views/site/SiteAdd.vue:96
+msgid "Configure SSL"
+msgstr ""
+
+#: src/views/dashboard/Environments.vue:141
+msgid "Connected"
+msgstr ""
+
+#: src/views/terminal/Terminal.vue:120
+msgid "Connection lost, please refresh the page."
+msgstr ""
+
+#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:111
+#: src/views/site/ngx_conf/LocationEditor.vue:117
+#: src/views/site/ngx_conf/LocationEditor.vue:145
+msgid "Content"
+msgstr ""
+
+#: src/components/SensitiveString/SensitiveString.vue:38
+msgid "Copied"
+msgstr ""
+
+#: src/components/SensitiveString/SensitiveString.vue:38
+msgid "Copy"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:148
+msgid "Core Upgrade"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:296
+msgid "CPU Status"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:190
+msgid "CPU:"
+msgstr ""
+
+#: src/views/site/ngx_conf/NgxUpstream.vue:163
+msgid "Create"
+msgstr ""
+
+#: src/views/site/SiteAdd.vue:154
+msgid "Create Another"
+msgstr ""
+
+#: src/views/config/ConfigList.vue:117
+msgid "Create File"
+msgstr ""
+
+#: src/views/config/components/Mkdir.vue:48 src/views/config/ConfigList.vue:124
+msgid "Create Folder"
+msgstr ""
+
+#: src/views/notification/notificationColumns.tsx:48
+#: src/views/preference/components/Passkey.vue:101
+#: src/views/user/userColumns.tsx:48
+msgid "Created at"
+msgstr ""
+
+#: src/views/config/components/Mkdir.vue:34
+msgid "Created successfully"
+msgstr ""
+
+#: src/language/constants.ts:9
+msgid "Creating client facilitates communication with the CA server"
+msgstr ""
+
+#: src/views/site/cert/components/DNSChallenge.vue:104
+msgid "Credential"
+msgstr ""
+
+#: src/views/certificate/DNSChallenge.vue:97
+msgid "Credentials"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:99
+msgid "Current account is enabled TOTP."
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:96
+msgid "Current account is not enabled TOTP."
+msgstr ""
+
+#: src/views/system/Upgrade.vue:167
+msgid "Current Version"
+msgstr ""
+
+#: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:127
+#: src/views/site/ngx_conf/NgxConfigEditor.vue:195
+msgid "Custom"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:121
+msgid "Customize the name of local server to be displayed in the environment indicator."
+msgstr ""
+
+#: src/routes/index.ts:39 src/views/config/ConfigEditor.vue:133
+#: src/views/config/ConfigEditor.vue:94 src/views/config/ConfigList.vue:65
+msgid "Dashboard"
+msgstr ""
+
+#: src/views/other/Install.vue:119
+msgid "Database (Optional, default: database)"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:60
+msgid "Days"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:556
+#: src/views/site/ngx_conf/NgxServer.vue:110
+#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:162
+#: src/views/stream/StreamList.vue:176
+msgid "Delete"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:584
+msgid "Delete Permanently"
+msgstr ""
+
+#: src/views/site/SiteList.vue:85
+msgid "Delete site: %{site_name}"
+msgstr ""
+
+#: src/views/stream/StreamList.vue:78
+msgid "Delete stream: %{stream_name}"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:201
+msgid "Deleted successfully"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:284
+#: src/views/site/components/Deploy.vue:104
+#: src/views/site/components/RightSettings.vue:93
+#: src/views/stream/components/Deploy.vue:103
+#: src/views/stream/components/RightSettings.vue:92
+msgid "Deploy"
+msgstr ""
+
+#: src/views/site/components/Deploy.vue:60
+#: src/views/stream/components/Deploy.vue:60
+msgid "Deploy %{conf_name} to %{node_name} failed"
+msgstr ""
+
+#: src/views/site/components/Deploy.vue:37
+#: src/views/stream/components/Deploy.vue:37
+msgid "Deploy %{conf_name} to %{node_name} successfully"
+msgstr ""
+
+#: src/views/site/components/Deploy.vue:35
+#: src/views/stream/components/Deploy.vue:35
+msgid "Deploy successfully"
+msgstr ""
+
+#: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:107
+#: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:121
+msgid "Description"
+msgstr ""
+
+#: src/views/notification/notificationColumns.tsx:43
+msgid "Details"
+msgstr ""
+
+#: src/views/system/About.vue:22
+msgid "Development Mode"
+msgstr ""
+
+#: src/views/site/ngx_conf/directive/DirectiveAdd.vue:73
+msgid "Directive"
+msgstr ""
+
+#: src/views/site/ngx_conf/directive/DirectiveEditor.vue:21
+msgid "Directives"
+msgstr ""
+
+#: src/views/config/configColumns.ts:22
+msgid "Directory"
+msgstr ""
+
+#: src/views/site/SiteList.vue:131 src/views/stream/StreamList.vue:145
+msgid "Disable"
+msgstr ""
+
+#: src/views/site/cert/components/ObtainCert.vue:77
+msgid "Disable auto-renewal failed for %{name}"
+msgstr ""
+
+#: src/views/environment/envColumns.tsx:113
+#: src/views/environment/envColumns.tsx:95 src/views/site/SiteEdit.vue:181
+#: src/views/site/SiteList.vue:33 src/views/site/SiteList.vue:42
+#: src/views/stream/StreamEdit.vue:175 src/views/stream/StreamList.vue:33
+#: src/views/user/userColumns.tsx:41
+msgid "Disabled"
+msgstr ""
+
+#: src/views/site/components/RightSettings.vue:38
+#: src/views/site/SiteList.vue:74
+#: src/views/stream/components/RightSettings.vue:38
+#: src/views/stream/StreamList.vue:67
+msgid "Disabled successfully"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:361
+msgid "Disk IO"
+msgstr ""
+
+#: src/routes/index.ts:178 src/views/certificate/DNSCredential.vue:40
+msgid "DNS Credentials"
+msgstr ""
+
+#: src/views/certificate/DNSChallenge.vue:72
+#: src/views/site/cert/components/DNSChallenge.vue:94
+msgid "DNS Provider"
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:74
+msgid "DNS01"
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:99
+msgid "Do not enable this option unless you are sure that you need it."
+msgstr ""
+
+#: src/views/site/components/Deploy.vue:16
+#: src/views/stream/components/Deploy.vue:16
+msgid "Do you want to deploy this file to remote server?"
+msgid_plural "Do you want to deploy this file to remote servers?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/views/site/cert/components/ObtainCert.vue:133
+msgid "Do you want to disable auto-cert renewal?"
+msgstr ""
+
+#: src/views/site/components/RightSettings.vue:47
+msgid "Do you want to disable this site?"
+msgstr ""
+
+#: src/views/stream/components/RightSettings.vue:47
+msgid "Do you want to disable this stream?"
+msgstr ""
+
+#: src/views/site/components/RightSettings.vue:47
+msgid "Do you want to enable this site?"
+msgstr ""
+
+#: src/views/stream/components/RightSettings.vue:47
+msgid "Do you want to enable this stream?"
+msgstr ""
+
+#: src/views/site/ngx_conf/NgxConfigEditor.vue:44
+msgid "Do you want to enable TLS?"
+msgstr ""
+
+#: src/views/site/ngx_conf/NgxServer.vue:76
+msgid "Do you want to remove this server?"
+msgstr ""
+
+#: src/views/site/ngx_conf/NgxUpstream.vue:29
+msgid "Do you want to remove this upstream?"
+msgstr ""
+
+#: src/views/certificate/WildcardCertificate.vue:69
+msgid "Domain"
+msgstr ""
+
+#: src/views/site/SiteAdd.vue:144
+msgid "Domain Config Created Successfully"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:106
+msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
+msgstr ""
+
+#: src/language/constants.ts:26
+msgid "Download latest release error"
+msgstr ""
+
+#: src/language/constants.ts:25
+msgid "Downloading latest release"
+msgstr ""
+
+#: src/views/environment/BatchUpgrader.vue:192 src/views/system/Upgrade.vue:217
+msgid "Dry run mode enabled"
+msgstr ""
+
+#: src/views/preference/components/AddPasskey.vue:107
+msgid "Due to the security policies of some browsers, you cannot use passkeys on non-HTTPS websites, except when running on localhost."
+msgstr ""
+
+#: src/views/site/components/SiteDuplicate.vue:122
+#: src/views/site/SiteList.vue:147
+#: src/views/stream/components/StreamDuplicate.vue:122
+#: src/views/stream/StreamList.vue:161
+msgid "Duplicate"
+msgstr ""
+
+#: src/views/site/components/SiteDuplicate.vue:82
+#: src/views/stream/components/StreamDuplicate.vue:82
+msgid "Duplicate %{conf_name} to %{node_name} successfully"
+msgstr ""
+
+#: src/views/site/components/SiteDuplicate.vue:87
+#: src/views/stream/components/StreamDuplicate.vue:87
+msgid "Duplicate failed"
+msgstr ""
+
+#: src/views/site/components/SiteDuplicate.vue:80
+#: src/views/stream/components/StreamDuplicate.vue:80
+msgid "Duplicate successfully"
+msgstr ""
+
+#: src/views/site/components/SiteDuplicate.vue:63
+#: src/views/stream/components/StreamDuplicate.vue:63
+msgid "Duplicate to local successfully"
+msgstr ""
+
+#: src/views/site/SiteEdit.vue:170 src/views/stream/StreamEdit.vue:164
+msgid "Edit %{n}"
+msgstr ""
+
+#: src/routes/index.ts:122 src/views/config/ConfigEditor.vue:204
+msgid "Edit Configuration"
+msgstr ""
+
+#: src/routes/index.ts:72
+msgid "Edit Site"
+msgstr ""
+
+#: src/routes/index.ts:92
+msgid "Edit Stream"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:24
+msgid "Email"
+msgstr ""
+
+#: src/views/other/Install.vue:88
+msgid "Email (*)"
+msgstr ""
+
+#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:139
+#: src/views/stream/components/Deploy.vue:83
+#: src/views/stream/StreamList.vue:153
+msgid "Enable"
+msgstr ""
+
+#: src/views/site/components/Deploy.vue:50
+#: src/views/stream/components/Deploy.vue:50
+msgid "Enable %{conf_name} in %{node_name} failed"
+msgstr ""
+
+#: src/views/site/components/Deploy.vue:45
+#: src/views/stream/components/Deploy.vue:45
+msgid "Enable %{conf_name} in %{node_name} successfully"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:55
+msgid "Enable 2FA successfully"
+msgstr ""
+
+#: src/views/site/cert/components/ObtainCert.vue:70
+msgid "Enable auto-renewal failed for %{name}"
+msgstr ""
+
+#: src/views/site/SiteAdd.vue:43
+msgid "Enable failed"
+msgstr ""
+
+#: src/views/site/components/Deploy.vue:43
+#: src/views/stream/components/Deploy.vue:43
+msgid "Enable successfully"
+msgstr ""
+
+#: src/views/site/ngx_conf/NgxConfigEditor.vue:184
+msgid "Enable TLS"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:125
+msgid "Enable TOTP"
+msgstr ""
+
+#: src/views/environment/envColumns.tsx:104
+#: src/views/environment/envColumns.tsx:110
+#: src/views/preference/LogrotateSettings.vue:19
+#: src/views/site/components/RightSettings.vue:77
+#: src/views/site/SiteEdit.vue:175 src/views/site/SiteList.vue:29
+#: src/views/site/SiteList.vue:41
+#: src/views/stream/components/RightSettings.vue:76
+#: src/views/stream/StreamEdit.vue:169 src/views/stream/StreamList.vue:29
+#: src/views/user/userColumns.tsx:38
+msgid "Enabled"
+msgstr ""
+
+#: src/views/site/components/RightSettings.vue:29
+#: src/views/site/components/SiteDuplicate.vue:94 src/views/site/SiteAdd.vue:40
+#: src/views/site/SiteList.vue:64
+#: src/views/stream/components/RightSettings.vue:29
+#: src/views/stream/components/StreamDuplicate.vue:94
+#: src/views/stream/StreamList.vue:57
+msgid "Enabled successfully"
+msgstr ""
+
+#: src/views/site/cert/IssueCert.vue:49
+msgid "Encrypt website with Let's Encrypt"
+msgstr ""
+
+#: src/routes/index.ts:228 src/views/environment/Environment.vue:34
+msgid "Environment"
+msgstr ""
+
+#: src/language/constants.ts:21
+msgid "Environment variables cleaned"
+msgstr ""
+
+#: src/views/dashboard/Environments.vue:83
+msgid "Environments"
+msgstr ""
+
+#: src/constants/index.ts:16 src/views/config/InspectConfig.vue:44
+#: src/views/notification/notificationColumns.tsx:14
+msgid "Error"
+msgstr ""
+
+#: src/routes/index.ts:211 src/views/site/ngx_conf/LogEntry.vue:84
+msgid "Error Logs"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:179
+msgid "Executable Path"
+msgstr ""
+
+#: src/views/certificate/CertificateList/certColumns.tsx:77
+#: src/views/site/cert/CertInfo.vue:31
+msgid "Expired"
+msgstr ""
+
+#: src/views/site/cert/CertInfo.vue:38
+msgid "Expired At: %{date}"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/methods/exportCsv.ts:68
+msgid "Export"
+msgstr ""
+
+#: src/views/site/cert/components/ObtainCertLive.vue:94
+msgid "Fail to obtain certificate"
+msgstr ""
+
+#: src/views/site/components/RightSettings.vue:41
+#: src/views/site/SiteList.vue:78
+#: src/views/stream/components/RightSettings.vue:41
+#: src/views/stream/StreamList.vue:71
+msgid "Failed to disable %{msg}"
+msgstr ""
+
+#: src/views/site/components/RightSettings.vue:32
+#: src/views/site/SiteList.vue:68
+#: src/views/stream/components/RightSettings.vue:32
+#: src/views/stream/StreamList.vue:61
+msgid "Failed to enable %{msg}"
+msgstr ""
+
+#: src/language/constants.ts:5
+msgid "Failed to get certificate information"
+msgstr ""
+
+#: src/views/site/SiteEdit.vue:127 src/views/stream/StreamEdit.vue:122
+msgid "Failed to save, syntax error(s) was detected in the configuration."
+msgstr ""
+
+#: src/views/config/configColumns.ts:24
+msgid "File"
+msgstr ""
+
+#: src/language/constants.ts:31
+msgid "File exists"
+msgstr ""
+
+#: src/views/preference/NginxSettings.vue:14
+#: src/views/preference/NginxSettings.vue:23
+msgid "File not found"
+msgstr ""
+
+#: src/views/other/Error.vue:9
+msgid "File Not Found"
+msgstr ""
+
+#: src/views/nginx_log/NginxLog.vue:152
+msgid "Filter"
+msgstr ""
+
+#: src/language/constants.ts:19 src/views/site/SiteAdd.vue:97
+msgid "Finished"
+msgstr ""
+
+#: src/views/preference/components/AddPasskey.vue:77
+msgid "Follow the instructions in the dialog to complete the passkey registration process."
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:43
+msgid "For Chinese user: https://mirror.ghproxy.com/"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:216
+msgid "Format Code"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:183
+msgid "Format error %{msg}"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:181
+msgid "Format successfully"
+msgstr ""
+
+#: src/views/certificate/CertificateList/certColumns.tsx:32
+msgid "General Certificate"
+msgstr ""
+
+#: src/components/StdDesign/StdDataEntry/components/StdPassword.vue:52
+msgid "Generate"
+msgstr ""
+
+#: src/language/constants.ts:7
+msgid "Generating private key for registering account"
+msgstr ""
+
+#: src/views/environment/BatchUpgrader.vue:181 src/views/system/Upgrade.vue:171
+msgid "Get release information error"
+msgstr ""
+
+#: src/views/site/cert/components/ObtainCertLive.vue:44
+msgid "Getting the certificate, please wait..."
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:35
+msgid "Github Proxy"
+msgstr ""
+
+#: src/components/SensitiveString/SensitiveString.vue:41
+msgid "Hide"
+msgstr ""
+
+#: src/routes/index.ts:31
+msgid "Home"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:31
+msgid "HTTP Challenge Port"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:13
+msgid "HTTP Host"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:16
+msgid "HTTP Port"
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:71
+msgid "HTTP01"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:43
+msgid "If left blank, the default CA Dir will be used."
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:68
+msgid "If the number of login failed attempts from a ip reach the max attempts in ban threshold minutes, the ip will be banned for a period of time."
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:111
+msgid "If you lose your mobile phone, you can use the recovery code to reset your 2FA."
+msgstr ""
+
+#: src/views/preference/components/AddPasskey.vue:76
+msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:109
+msgid "If your domain has CNAME records and you cannot obtain certificates, you need to enable this option."
+msgstr ""
+
+#: src/views/certificate/CertificateList/Certificate.vue:20
+msgid "Import"
+msgstr ""
+
+#: src/routes/index.ts:168 src/views/certificate/CertificateEditor.vue:79
+msgid "Import Certificate"
+msgstr ""
+
+#: src/views/other/Login.vue:79
+msgid "Incorrect username or password"
+msgstr ""
+
+#: src/constants/index.ts:18 src/views/notification/notificationColumns.tsx:24
+msgid "Info"
+msgstr ""
+
+#: src/language/constants.ts:24
+msgid "Initial core upgrader error"
+msgstr ""
+
+#: src/language/constants.ts:23
+msgid "Initialing core upgrader"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:158
+msgid "Input the code from the app:"
+msgstr ""
+
+#: src/components/TwoFA/Authorization.vue:87
+#: src/views/preference/components/TOTP.vue:171
+msgid "Input the recovery code:"
+msgstr ""
+
+#: src/routes/index.ts:299 src/views/other/Install.vue:134
+msgid "Install"
+msgstr ""
+
+#: src/views/other/Install.vue:65
+msgid "Install successfully"
+msgstr ""
+
+#: src/views/preference/LogrotateSettings.vue:25
+msgid "Interval"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:121
+msgid "Invalid"
+msgstr ""
+
+#: src/views/other/Login.vue:89
+msgid "Invalid 2FA or recovery code"
+msgstr ""
+
+#: src/views/config/components/Rename.vue:65
+#: src/views/config/ConfigEditor.vue:250
+msgid "Invalid filename"
+msgstr ""
+
+#: src/views/config/components/Mkdir.vue:58
+msgid "Invalid folder name"
+msgstr ""
+
+#: src/components/TwoFA/use2FAModal.ts:65
+msgid "Invalid passcode or recovery code"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:15
+msgid "IP"
+msgstr ""
+
+#: src/views/certificate/CertificateList/Certificate.vue:28
+msgid "Issue wildcard certificate"
+msgstr ""
+
+#: src/views/certificate/WildcardCertificate.vue:60
+msgid "Issue Wildcard Certificate"
+msgstr ""
+
+#: src/language/constants.ts:20
+msgid "Issued certificate successfully"
+msgstr ""
+
+#: src/views/site/cert/CertInfo.vue:35
+msgid "Issuer: %{issuer}"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:22
+msgid "Jwt Secret"
+msgstr ""
+
+#: src/views/certificate/CertificateList/certColumns.tsx:54
+#: src/views/site/cert/components/AutoCertStepOne.vue:78
+msgid "Key Type"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:181
+msgid "Last checked at"
+msgstr ""
+
+#: src/views/preference/components/Passkey.vue:102
+msgid "Last used at"
+msgstr ""
+
+#: src/views/user/userColumns.tsx:25
+msgid "Leave blank for no change"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:53
+msgid "Leave blank for the default: https://api.openai.com/"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:56
+msgid "Leave blank if you don't need this."
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:227
+msgid "Leave blank will not change anything"
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:106
+msgid "Lego disable CNAME Support"
+msgstr ""
+
+#: src/views/system/About.vue:47
+msgid "License"
+msgstr ""
+
+#: src/views/dashboard/Environments.vue:141
+#: src/views/dashboard/Environments.vue:156
+msgid "Link Start"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:194
+msgid "List"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:178
+msgid "Load Average:"
+msgstr ""
+
+#: src/views/environment/Environment.vue:39
+msgid "Load from settings"
+msgstr ""
+
+#: src/views/environment/Environment.vue:13
+msgid "Load successfully"
+msgstr ""
+
+#: src/components/EnvIndicator/EnvIndicator.vue:39
+#: src/components/NodeSelector/NodeSelector.vue:71
+msgid "Local"
+msgstr ""
+
+#: src/views/site/ngx_conf/LocationEditor.vue:69
+msgid "Location"
+msgstr ""
+
+#: src/views/site/ngx_conf/LocationEditor.vue:50
+msgid "Locations"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:237
+msgid "Log"
+msgstr ""
+
+#: src/routes/index.ts:305 src/views/other/Login.vue:247
+msgid "Login"
+msgstr ""
+
+#: src/views/other/Login.vue:133 src/views/other/Login.vue:66
+msgid "Login successful"
+msgstr ""
+
+#: src/layouts/HeaderLayout.vue:19
+msgid "Logout successful"
+msgstr ""
+
+#: src/views/preference/Preference.vue:140
+msgid "Logrotate"
+msgstr ""
+
+#: src/views/preference/LogrotateSettings.vue:12
+msgid "Logrotate, by default, is enabled in most mainstream Linux distributions for users who install Nginx UI on the host machine, so you don't need to modify the parameters on this page. For users who install Nginx UI using Docker containers, you can manually enable this option. The crontab task scheduler of Nginx UI will execute the logrotate command at the interval you set in minutes."
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:54
+msgid "Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort before obtaining the certificate."
+msgstr ""
+
+#: src/routes/index.ts:102 src/views/config/ConfigEditor.vue:138
+#: src/views/config/ConfigEditor.vue:99 src/views/config/ConfigList.vue:70
+msgid "Manage Configs"
+msgstr ""
+
+#: src/routes/index.ts:48 src/views/site/SiteList.vue:109
+msgid "Manage Sites"
+msgstr ""
+
+#: src/routes/index.ts:83 src/views/stream/StreamList.vue:119
+msgid "Manage Streams"
+msgstr ""
+
+#: src/routes/index.ts:251 src/views/user/User.vue:9
+msgid "Manage Users"
+msgstr ""
+
+#: src/views/certificate/CertificateList/certColumns.tsx:31
+msgid "Managed Certificate"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:82
+msgid "Max Attempts"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:217
+#: src/views/dashboard/ServerAnalytic.vue:218
+msgid "Memory"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:207
+msgid "Memory and Storage"
+msgstr ""
+
+#: src/views/preference/LogrotateSettings.vue:29
+msgid "Minutes"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:32
+msgid "Model"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:256
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:531
+#: src/views/config/ConfigList.vue:159
+msgid "Modify"
+msgstr ""
+
+#: src/routes/index.ts:158 src/views/certificate/CertificateEditor.vue:79
+msgid "Modify Certificate"
+msgstr ""
+
+#: src/views/site/SiteAdd.vue:151
+msgid "Modify Config"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:270
+msgid "Modify Mode"
+msgstr ""
+
+#: src/views/site/ngx_conf/directive/DirectiveAdd.vue:54
+msgid "Multi-line Directive"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:13
+#: src/views/certificate/CertificateEditor.vue:154
+#: src/views/certificate/CertificateList/certColumns.tsx:10
+#: src/views/certificate/DNSCredential.vue:11
+#: src/views/config/components/Mkdir.vue:65 src/views/config/configColumns.ts:8
+#: src/views/config/ConfigEditor.vue:256 src/views/environment/envColumns.tsx:9
+#: src/views/preference/components/AddPasskey.vue:81
+#: src/views/site/components/RightSettings.vue:83
+#: src/views/site/components/SiteDuplicate.vue:129
+#: src/views/site/ngx_conf/NgxUpstream.vue:175 src/views/site/SiteList.vue:13
+#: src/views/stream/components/RightSettings.vue:82
+#: src/views/stream/components/StreamDuplicate.vue:129
+#: src/views/stream/StreamList.vue:13 src/views/stream/StreamList.vue:188
+msgid "Name"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:322
+msgid "Network"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:264
+msgid "Network Statistics"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:271
+msgid "Network Total Receive"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:277
+msgid "Network Total Send"
+msgstr ""
+
+#: src/views/config/components/Rename.vue:73
+msgid "New name"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:268
+msgid "New Path"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:210
+msgid "New version released"
+msgstr ""
+
+#: src/views/certificate/WildcardCertificate.vue:92
+#: src/views/site/cert/components/ObtainCert.vue:207
+#: src/views/site/SiteAdd.vue:138
+msgid "Next"
+msgstr ""
+
+#: src/views/preference/Preference.vue:128
+msgid "Nginx"
+msgstr ""
+
+#: src/views/preference/NginxSettings.vue:11
+msgid "Nginx Access Log Path"
+msgstr ""
+
+#: src/views/site/SiteEdit.vue:213 src/views/stream/StreamEdit.vue:207
+msgid "Nginx Configuration Parse Error"
+msgstr ""
+
+#: src/components/NginxControl/NginxControl.vue:68
+msgid "Nginx Control"
+msgstr ""
+
+#: src/views/preference/NginxSettings.vue:20
+msgid "Nginx Error Log Path"
+msgstr ""
+
+#: src/views/site/ngx_conf/NginxStatusAlert.vue:15
+msgid "Nginx is not running"
+msgstr ""
+
+#: src/routes/index.ts:196 src/views/nginx_log/NginxLog.vue:145
+msgid "Nginx Log"
+msgstr ""
+
+#: src/components/NginxControl/NginxControl.vue:26
+msgid "Nginx reloaded successfully"
+msgstr ""
+
+#: src/components/NginxControl/NginxControl.vue:42
+msgid "Nginx restarted successfully"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:277
+#: src/components/Notification/Notification.vue:84
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:547
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:561
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:575
+#: src/views/notification/Notification.vue:38
+#: src/views/preference/AuthSettings.vue:104
+#: src/views/preference/BasicSettings.vue:101
+#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90
+#: src/views/site/ngx_conf/LocationEditor.vue:90
+#: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165
+msgid "No"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:25
+msgid "Node Secret"
+msgstr ""
+
+#: src/views/certificate/CertificateList/certColumns.tsx:83
+msgid "Not After"
+msgstr ""
+
+#: src/routes/index.ts:311
+msgid "Not Found"
+msgstr ""
+
+#: src/views/site/cert/CertInfo.vue:41
+msgid "Not Valid Before: %{date}"
+msgstr ""
+
+#: src/views/certificate/DNSCredential.vue:49
+#: src/views/site/cert/components/AutoCertStepOne.vue:40
+msgid "Note"
+msgstr ""
+
+#: src/views/notification/Notification.vue:29
+msgid "Notification"
+msgstr ""
+
+#: src/components/Notification/Notification.vue:82 src/routes/index.ts:242
+msgid "Notifications"
+msgstr ""
+
+#: src/views/site/cert/components/ObtainCert.vue:178
+msgid "Obtain certificate"
+msgstr ""
+
+#: src/language/constants.ts:15
+msgid "Obtaining certificate"
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:96
+msgid "OCSP Must Staple"
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:100
+msgid "OCSP Must Staple may cause errors for some users on first access using Firefox."
+msgstr ""
+
+#: src/components/NodeSelector/NodeSelector.vue:94
+#: src/views/dashboard/Environments.vue:107
+#: src/views/environment/envColumns.tsx:90
+msgid "Offline"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:255
+#: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:154
+msgid "Ok"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:278
+#: src/components/Notification/Notification.vue:85
+#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:56
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:548
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:562
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:576
+#: src/views/notification/Notification.vue:39
+#: src/views/site/cert/components/ObtainCert.vue:136
+#: src/views/site/components/Deploy.vue:20
+#: src/views/site/components/RightSettings.vue:50
+#: src/views/site/ngx_conf/NgxConfigEditor.vue:50
+#: src/views/site/ngx_conf/NgxServer.vue:79
+#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:152
+#: src/views/stream/components/Deploy.vue:20
+#: src/views/stream/components/RightSettings.vue:50
+#: src/views/stream/StreamList.vue:166
+msgid "OK"
+msgstr ""
+
+#: src/views/certificate/DNSCredential.vue:59
+msgid "Once the verification is complete, the records will be removed."
+msgstr ""
+
+#: src/components/NodeSelector/NodeSelector.vue:74
+#: src/components/NodeSelector/NodeSelector.vue:88
+#: src/views/dashboard/Environments.vue:100
+#: src/views/environment/envColumns.tsx:86
+msgid "Online"
+msgstr ""
+
+#: src/views/preference/Preference.vue:134
+msgid "OpenAI"
+msgstr ""
+
+#: src/components/TwoFA/Authorization.vue:117 src/views/other/Login.vue:256
+msgid "Or"
+msgstr ""
+
+#: src/views/config/components/Rename.vue:69
+msgid "Original name"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:177
+msgid "OS"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:184
+msgid "OS:"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:293
+#: src/views/site/components/Deploy.vue:88
+#: src/views/stream/components/Deploy.vue:87
+msgid "Overwrite"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:297
+#: src/views/site/components/Deploy.vue:92
+#: src/views/stream/components/Deploy.vue:91
+msgid "Overwrite exist file"
+msgstr ""
+
+#: src/views/site/ngx_conf/directive/DirectiveAdd.vue:78
+msgid "Params"
+msgstr ""
+
+#: src/views/preference/components/Passkey.vue:65
+msgid "Passkey"
+msgstr ""
+
+#: src/views/preference/components/Passkey.vue:68
+msgid "Passkeys are webauthn credentials that validate your identity using touch, facial recognition, a device password, or a PIN. They can be used as a password replacement or as a 2FA method."
+msgstr ""
+
+#: src/views/other/Login.vue:208 src/views/user/userColumns.tsx:18
+msgid "Password"
+msgstr ""
+
+#: src/views/other/Install.vue:108
+msgid "Password (*)"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:262
+#: src/views/site/ngx_conf/LocationEditor.vue:111
+#: src/views/site/ngx_conf/LocationEditor.vue:139
+msgid "Path"
+msgstr ""
+
+#: src/views/environment/BatchUpgrader.vue:236
+msgid "Perform"
+msgstr ""
+
+#: src/language/constants.ts:28
+msgid "Perform core upgrade error"
+msgstr ""
+
+#: src/language/constants.ts:27
+msgid "Performing core upgrade"
+msgstr ""
+
+#: src/views/preference/components/AddPasskey.vue:75
+msgid "Please enter a name for the passkey you wish to create and click the OK button below."
+msgstr ""
+
+#: src/components/TwoFA/Authorization.vue:75
+msgid "Please enter the OTP code:"
+msgstr ""
+
+#: src/views/certificate/DNSCredential.vue:53
+msgid "Please fill in the API authentication credentials provided by your DNS provider."
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:133
+msgid "Please fill in the required fields"
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:58
+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:64
+#: src/views/config/ConfigEditor.vue:249
+msgid "Please input a filename"
+msgstr ""
+
+#: src/views/config/components/Mkdir.vue:57
+msgid "Please input a folder name"
+msgstr ""
+
+#: src/views/site/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!"
+msgstr ""
+
+#: src/views/other/Install.vue:32
+msgid "Please input your E-mail!"
+msgstr ""
+
+#: src/views/other/Install.vue:44 src/views/other/Login.vue:47
+msgid "Please input your password!"
+msgstr ""
+
+#: src/views/other/Install.vue:38 src/views/other/Login.vue:41
+msgid "Please input your username!"
+msgstr ""
+
+#: src/views/certificate/DNSCredential.vue:62
+msgid "Please note that the unit of time configurations below are all in seconds."
+msgstr ""
+
+#: src/views/environment/Environment.vue:47
+msgid "Please select at least one node to upgrade"
+msgstr ""
+
+#: src/views/site/components/SiteDuplicate.vue:45
+#: src/views/stream/components/StreamDuplicate.vue:45
+msgid "Please select at least one node!"
+msgstr ""
+
+#: src/views/environment/BatchUpgrader.vue:171
+#: src/views/environment/BatchUpgrader.vue:224 src/views/system/Upgrade.vue:196
+#: src/views/system/Upgrade.vue:247
+msgid "Pre-release"
+msgstr ""
+
+#: src/routes/index.ts:260 src/views/preference/Preference.vue:111
+msgid "Preference"
+msgstr ""
+
+#: src/language/constants.ts:8
+msgid "Preparing lego configurations"
+msgstr ""
+
+#: src/language/constants.ts:3
+msgid "Prohibit changing root password in demo"
+msgstr ""
+
+#: src/language/constants.ts:4
+msgid "Prohibit deleting the default user"
+msgstr ""
+
+#: src/views/system/About.vue:35
+msgid "Project Team"
+msgstr ""
+
+#: src/views/certificate/DNSCredential.vue:19
+msgid "Provider"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:48
+msgid "Proxy"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:28
+#: src/views/dashboard/ServerAnalytic.vue:378
+msgid "Reads"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:24
+#: src/views/dashboard/ServerAnalytic.vue:329
+msgid "Receive"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:570
+msgid "Recover"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:209
+msgid "Recovered Successfully"
+msgstr ""
+
+#: src/components/TwoFA/Authorization.vue:94
+#: src/views/preference/components/TOTP.vue:178
+msgid "Recovery"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:104
+msgid "Recovery Code"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:113
+msgid "Recovery Code:"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:68
+msgid "Recursive Nameservers"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:290
+msgid "Regenerate response"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:129
+msgid "Register"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:53
+msgid "Register a user or use this account to issue a certificate through an HTTP proxy."
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:98
+msgid "Register failed"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:72
+msgid "Register On Startup"
+msgstr ""
+
+#: src/views/preference/components/AddPasskey.vue:26
+msgid "Register passkey successfully"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:96
+msgid "Register successfully"
+msgstr ""
+
+#: src/language/constants.ts:14
+msgid "Registering user"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:112
+msgid "Registration Status"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:228
+msgid "Reinstall"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:251
+msgid "Release Note"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:266
+#: src/components/NginxControl/NginxControl.vue:103
+msgid "Reload"
+msgstr ""
+
+#: src/components/NginxControl/NginxControl.vue:77
+msgid "Reloading"
+msgstr ""
+
+#: src/language/constants.ts:18
+msgid "Reloading nginx"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:109
+msgid "Remove"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:48
+#: src/views/preference/components/Passkey.vue:50
+msgid "Remove successfully"
+msgstr ""
+
+#: src/components/Notification/Notification.vue:52
+msgid "Removed successfully"
+msgstr ""
+
+#: src/views/config/components/Rename.vue:55
+#: src/views/config/ConfigList.vue:167
+#: src/views/site/ngx_conf/NgxUpstream.vue:123
+msgid "Rename"
+msgstr ""
+
+#: src/components/Notification/config.ts:31
+msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade the remote Nginx UI to the latest version"
+msgstr ""
+
+#: src/components/Notification/config.ts:35
+msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
+msgstr ""
+
+#: src/components/Notification/config.ts:23
+msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
+msgstr ""
+
+#: src/language/constants.ts:41
+msgid "Rename Remote Config Error"
+msgstr ""
+
+#: src/language/constants.ts:40
+msgid "Rename Remote Config Success"
+msgstr ""
+
+#: src/views/config/components/Rename.vue:41
+msgid "Rename successfully"
+msgstr ""
+
+#: src/views/certificate/RenewCert.vue:43
+#: src/views/certificate/RenewCert.vue:47
+msgid "Renew Certificate"
+msgstr ""
+
+#: src/language/constants.ts:35
+msgid "Renew Certificate Error"
+msgstr ""
+
+#: src/language/constants.ts:34
+msgid "Renew Certificate Success"
+msgstr ""
+
+#: src/views/certificate/RenewCert.vue:25
+#: src/views/certificate/WildcardCertificate.vue:49
+msgid "Renew successfully"
+msgstr ""
+
+#: src/language/constants.ts:32
+msgid "Requested with wrong parameters"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:479
+msgid "Reset"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:133
+msgid "Reset 2FA"
+msgstr ""
+
+#: src/components/NginxControl/NginxControl.vue:96
+msgid "Restart"
+msgstr ""
+
+#: src/components/NginxControl/NginxControl.vue:82
+msgid "Restarting"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:19
+msgid "Run Mode"
+msgstr ""
+
+#: src/components/NginxControl/NginxControl.vue:72
+msgid "Running"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:259
+#: src/views/certificate/CertificateEditor.vue:256
+#: src/views/config/ConfigEditor.vue:222
+#: src/views/preference/components/Passkey.vue:136
+#: src/views/preference/Preference.vue:151
+#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:120
+#: src/views/site/SiteEdit.vue:260 src/views/stream/StreamEdit.vue:252
+msgid "Save"
+msgstr ""
+
+#: src/views/site/ngx_conf/directive/DirectiveAdd.vue:105
+msgid "Save Directive"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:171
+#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:41
+#: src/views/site/SiteAdd.vue:46
+msgid "Save error %{msg}"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:39
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:122
+#: src/views/certificate/CertificateEditor.vue:46
+#: src/views/preference/Preference.vue:79
+msgid "Save successfully"
+msgstr ""
+
+#: src/views/config/ConfigEditor.vue:167
+#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
+#: src/views/site/SiteAdd.vue:37 src/views/site/SiteEdit.vue:143
+#: src/views/stream/StreamEdit.vue:138
+msgid "Saved successfully"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:94
+msgid "Scan the QR code with your mobile phone to add the account to the app."
+msgstr ""
+
+#: src/views/certificate/DNSChallenge.vue:89
+msgid "SDK"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:150
+msgid "Secret has been copied"
+msgstr ""
+
+#: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:155
+msgid "Selector"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:25
+#: src/views/dashboard/ServerAnalytic.vue:339
+msgid "Send"
+msgstr ""
+
+#: src/components/NginxControl/NginxControl.vue:32
+#: src/components/NginxControl/NginxControl.vue:48
+#: src/components/StdDesign/StdDataDisplay/methods/exportCsv.ts:46
+#: src/components/StdDesign/StdDataDisplay/methods/sortable.ts:126
+#: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:42
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:212
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:252
+#: src/views/config/components/Mkdir.vue:37
+#: src/views/config/components/Rename.vue:44
+#: src/views/config/ConfigEditor.vue:108
+#: src/views/environment/BatchUpgrader.vue:59
+#: src/views/environment/Environment.vue:15 src/views/other/Install.vue:68
+#: src/views/preference/AuthSettings.vue:50
+#: src/views/preference/components/Passkey.vue:26
+#: src/views/preference/components/Passkey.vue:43
+#: src/views/preference/components/Passkey.vue:56
+#: src/views/preference/components/TOTP.vue:45
+#: src/views/preference/components/TOTP.vue:58
+#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88
+#: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81
+#: src/views/system/Upgrade.vue:42
+msgid "Server error"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:170
+msgid "Server Info"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:117
+msgid "Server Name"
+msgstr ""
+
+#: src/views/site/cert/components/ObtainCert.vue:102
+msgid "server_name not found in directives"
+msgstr ""
+
+#: src/views/site/SiteAdd.vue:117
+msgid "server_name parameter is required"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:64
+msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge."
+msgstr ""
+
+#: src/language/constants.ts:11
+msgid "Setting DNS01 challenge provider"
+msgstr ""
+
+#: src/language/constants.ts:12
+msgid "Setting environment variables"
+msgstr ""
+
+#: src/language/constants.ts:10
+msgid "Setting HTTP01 challenge provider"
+msgstr ""
+
+#: src/components/SensitiveString/SensitiveString.vue:41
+msgid "Show"
+msgstr ""
+
+#: src/views/other/Login.vue:265
+msgid "Sign in with a passkey"
+msgstr ""
+
+#: src/views/site/ngx_conf/directive/DirectiveAdd.vue:51
+msgid "Single Directive"
+msgstr ""
+
+#: src/routes/index.ts:218
+msgid "Site Logs"
+msgstr ""
+
+#: src/routes/index.ts:57
+msgid "Sites List"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:205
+msgid "SSL Certificate Content"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:218
+msgid "SSL Certificate Key Content"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:184
+msgid "SSL Certificate Key Path"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:169
+msgid "SSL Certificate Path"
+msgstr ""
+
+#: src/views/other/Login.vue:223
+msgid "SSO Login"
+msgstr ""
+
+#: src/views/environment/BatchUpgrader.vue:168
+#: src/views/environment/BatchUpgrader.vue:218 src/views/system/Upgrade.vue:193
+#: src/views/system/Upgrade.vue:241
+msgid "Stable"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:61
+#: src/views/certificate/CertificateList/certColumns.tsx:60
+#: src/views/environment/envColumns.tsx:78 src/views/site/SiteList.vue:22
+#: src/views/stream/StreamList.vue:22
+msgid "Status"
+msgstr ""
+
+#: src/components/NginxControl/NginxControl.vue:87
+msgid "Stopped"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:245
+#: src/views/dashboard/ServerAnalytic.vue:246
+msgid "Storage"
+msgstr ""
+
+#: src/constants/index.ts:19 src/views/notification/notificationColumns.tsx:29
+msgid "Success"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:231
+#: src/views/dashboard/ServerAnalytic.vue:232
+msgid "Swap"
+msgstr ""
+
+#: src/components/SwitchAppearance/SwitchAppearance.vue:13
+msgid "Switch to dark theme"
+msgstr ""
+
+#: src/components/SwitchAppearance/SwitchAppearance.vue:13
+msgid "Switch to light theme"
+msgstr ""
+
+#: src/views/config/components/Rename.vue:80
+msgid "Sync"
+msgstr ""
+
+#: src/views/certificate/CertificateList/certColumns.tsx:30
+msgid "Sync Certificate"
+msgstr ""
+
+#: src/components/Notification/cert.ts:12
+msgid "Sync Certificate %{cert_name} to %{env_name} failed, please upgrade the remote Nginx UI to the latest version"
+msgstr ""
+
+#: src/components/Notification/cert.ts:16
+msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+msgstr ""
+
+#: src/components/Notification/cert.ts:4
+msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
+msgstr ""
+
+#: src/language/constants.ts:38
+msgid "Sync Certificate Error"
+msgstr ""
+
+#: src/language/constants.ts:37
+msgid "Sync Certificate Success"
+msgstr ""
+
+#: src/components/Notification/config.ts:12
+msgid "Sync config %{config_name} to %{env_name} failed, please upgrade the remote Nginx UI to the latest version"
+msgstr ""
+
+#: src/components/Notification/config.ts:16
+msgid "Sync config %{config_name} to %{env_name} failed, response: %{resp}"
+msgstr ""
+
+#: src/components/Notification/config.ts:4
+msgid "Sync Config %{config_name} to %{env_name} successfully"
+msgstr ""
+
+#: src/language/constants.ts:44
+msgid "Sync Config Error"
+msgstr ""
+
+#: src/language/constants.ts:43
+msgid "Sync Config Success"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:198
+msgid "Sync to"
+msgstr ""
+
+#: src/routes/index.ts:269
+msgid "System"
+msgstr ""
+
+#: src/views/certificate/ACMEUserSelector.vue:88
+msgid "System Initial User"
+msgstr ""
+
+#: src/views/site/components/SiteDuplicate.vue:136
+#: src/views/stream/components/StreamDuplicate.vue:136
+msgid "Target"
+msgstr ""
+
+#: src/routes/index.ts:188 src/views/terminal/Terminal.vue:114
+msgid "Terminal"
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:28
+msgid "Terminal Start Command"
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:50
+msgid "The certificate for the domain will be checked 30 minutes, and will be renewed if it has been more than 1 week or the period you set in settings since it was last issued."
+msgstr ""
+
+#: src/views/other/Install.vue:50
+msgid "The filename cannot contain the following characters: %{c}"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:208
+msgid "The input is not a SSL Certificate"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:221
+msgid "The input is not a SSL Certificate Key"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:35
+msgid "The model name should only contain letters, unicode, numbers, hyphens, dashes, and dots."
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:173
+msgid "The path exists, but the file is not a certificate"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:188
+msgid "The path exists, but the file is not a private key"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:112
+msgid "The recovery code is only displayed once, please save it in a safe place."
+msgstr ""
+
+#: src/views/dashboard/Environments.vue:148
+msgid "The remote Nginx UI version is not compatible with the local Nginx UI version. To avoid potential errors, please upgrade the remote Nginx UI to match the local version."
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:120
+msgid "The server name should only contain letters, unicode, numbers, hyphens, dashes, and dots."
+msgstr ""
+
+#: src/views/site/cert/components/AutoCertStepOne.vue:45
+msgid "The server_name in the current configuration must be the domain name you need to get the certificate, supportmultiple domains."
+msgstr ""
+
+#: src/views/preference/BasicSettings.vue:38
+#: src/views/preference/BasicSettings.vue:50
+msgid "The url is invalid"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:47
+#: src/views/preference/OpenAISettings.vue:60
+msgid "The url is invalid."
+msgstr ""
+
+#: src/language/constants.ts:2
+msgid "The username or password is incorrect"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:96
+msgid "This Auto Cert item is invalid, please remove it."
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:86
+msgid "This certificate is managed by Nginx UI"
+msgstr ""
+
+#: src/views/certificate/CertificateEditor.vue:157
+#: src/views/certificate/CertificateEditor.vue:171
+#: src/views/certificate/CertificateEditor.vue:186
+msgid "This field is required"
+msgstr ""
+
+#: src/components/StdDesign/StdDataEntry/StdFormItem.vue:24
+msgid "This field should not be empty"
+msgstr ""
+
+#: src/views/environment/BatchUpgrader.vue:186
+msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:67
+#: src/views/preference/components/AddPasskey.vue:71
+#: src/views/preference/LogrotateSettings.vue:11
+msgid "Tips"
+msgstr ""
+
+#: src/views/notification/notificationColumns.tsx:36
+msgid "Title"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:93
+msgid "To enable it, you need to install the Google or Microsoft Authenticator app on your mobile phone."
+msgstr ""
+
+#: src/views/preference/components/AddPasskey.vue:95
+msgid "To ensure security, Webauthn configuration cannot be added through the UI. Please manually configure the following in the app.ini configuration file and restart Nginx UI."
+msgstr ""
+
+#: src/views/site/ngx_conf/NgxConfigEditor.vue:45
+msgid "To make sure the certification auto-renewal can work normally, we need to add a location which can proxy the request from authority to backend, and we need to save this file and reload the Nginx. Are you sure you want to continue?"
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:48
+msgid "To use a local large model, deploy it with vllm or imdeploy. They provide an OpenAI-compatible API endpoint, so just set the baseUrl to your local API."
+msgstr ""
+
+#: src/views/preference/OpenAISettings.vue:72
+msgid "Token is not valid"
+msgstr ""
+
+#: src/views/other/Login.vue:82
+msgid "Too many login failed attempts, please try again later"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:91
+msgid "TOTP"
+msgstr ""
+
+#: src/views/preference/components/TOTP.vue:92
+msgid "TOTP is a two-factor authentication method that uses a time-based one-time password algorithm."
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:211
+msgid "Trash"
+msgstr ""
+
+#: src/components/TwoFA/use2FAModal.ts:71
+msgid "Two-factor authentication required"
+msgstr ""
+
+#: src/views/certificate/CertificateList/certColumns.tsx:25
+#: src/views/config/configColumns.ts:16
+#: src/views/notification/notificationColumns.tsx:9
+msgid "Type"
+msgstr ""
+
+#: src/views/preference/components/Passkey.vue:41
+msgid "Update successfully"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:82
+#: src/views/certificate/DNSCredential.vue:27
+#: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
+#: src/views/environment/envColumns.tsx:124
+#: src/views/site/components/RightSettings.vue:86
+#: src/views/site/SiteList.vue:48
+#: src/views/stream/components/RightSettings.vue:85
+#: src/views/stream/StreamList.vue:41 src/views/user/userColumns.tsx:54
+msgid "Updated at"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/methods/sortable.ts:123
+msgid "Updated successfully"
+msgstr ""
+
+#: src/routes/index.ts:284 src/views/environment/Environment.vue:55
+#: src/views/system/Upgrade.vue:145 src/views/system/Upgrade.vue:228
+msgid "Upgrade"
+msgstr ""
+
+#: src/views/environment/BatchUpgrader.vue:141
+msgid "Upgraded Nginx UI on %{node} successfully 🎉"
+msgstr ""
+
+#: src/language/constants.ts:29
+msgid "Upgraded successfully"
+msgstr ""
+
+#: src/views/environment/BatchUpgrader.vue:92 src/views/system/Upgrade.vue:79
+msgid "Upgrading Nginx UI, please wait..."
+msgstr ""
+
+#: src/views/site/ngx_conf/NgxUpstream.vue:170
+msgid "Upstream Name"
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:174
+msgid "Uptime:"
+msgstr ""
+
+#: src/views/environment/envColumns.tsx:19
+msgid "URL"
+msgstr ""
+
+#: src/components/TwoFA/Authorization.vue:107
+msgid "Use OTP"
+msgstr ""
+
+#: src/components/TwoFA/Authorization.vue:103
+msgid "Use recovery code"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:237
+msgid "User"
+msgstr ""
+
+#: src/views/other/Login.vue:85
+msgid "User is banned"
+msgstr ""
+
+#: src/views/other/Login.vue:198 src/views/user/userColumns.tsx:9
+msgid "Username"
+msgstr ""
+
+#: src/views/other/Install.vue:98
+msgid "Username (*)"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:116
+#: src/views/certificate/CertificateList/certColumns.tsx:73
+#: src/views/site/cert/CertInfo.vue:24
+msgid "Valid"
+msgstr ""
+
+#: src/views/environment/envColumns.tsx:31
+msgid "Version"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdTable.vue:517
+#: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:103
+msgid "View"
+msgstr ""
+
+#: src/components/Notification/Notification.vue:143
+msgid "View all notifications"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:183
+msgid "View Details"
+msgstr ""
+
+#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:270
+msgid "View Mode"
+msgstr ""
+
+#: src/constants/index.ts:17 src/views/config/InspectConfig.vue:33
+#: src/views/notification/notificationColumns.tsx:19
+#: src/views/preference/components/AddPasskey.vue:88
+#: src/views/site/SiteAdd.vue:112
+msgid "Warning"
+msgstr ""
+
+#: src/views/certificate/DNSCredential.vue:56
+msgid "We will add one or more TXT records to the DNS records of your domain for ownership verification."
+msgstr ""
+
+#: src/views/site/cert/components/ObtainCert.vue:134
+msgid "We will remove the HTTPChallenge configuration from this file and reload the Nginx. Are you sure you want to continue?"
+msgstr ""
+
+#: src/views/certificate/ACMEUser.vue:78
+msgid "When Enabled, Nginx UI will automatically re-register users upon startup. Generally, do not enable this unless you are in a dev environment and using Pebble as CA."
+msgstr ""
+
+#: src/views/dashboard/ServerAnalytic.vue:27
+#: src/views/dashboard/ServerAnalytic.vue:368
+msgid "Writes"
+msgstr ""
+
+#: src/language/constants.ts:17
+msgid "Writing certificate private key to disk"
+msgstr ""
+
+#: src/language/constants.ts:16
+msgid "Writing certificate to disk"
+msgstr ""
+
+#: src/views/preference/AuthSettings.vue:103
+#: src/views/preference/BasicSettings.vue:100
+#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:89
+#: src/views/site/ngx_conf/LocationEditor.vue:89
+msgid "Yes"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:204
+msgid "You are using the latest version"
+msgstr ""
+
+#: src/views/system/Upgrade.vue:166
+msgid "You can check Nginx UI upgrade at this page."
+msgstr ""
+
+#: src/views/preference/components/AddPasskey.vue:93
+msgid "You have not configured the settings of Webauthn, so you cannot add a passkey."
+msgstr ""
+
+#: src/views/preference/components/Passkey.vue:81
+msgid "Your passkeys"
+msgstr ""

+ 20 - 18
app/src/language/vi_VN/app.po

@@ -37,7 +37,7 @@ msgstr "Người dùng"
 #: src/views/config/configColumns.ts:38
 #: src/views/environment/envColumns.tsx:131
 #: src/views/notification/notificationColumns.tsx:54
-#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:47
+#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54
 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Hành động"
@@ -150,7 +150,7 @@ msgstr "Bạn chắc chắn muốn xóa nó "
 msgid "Are you sure you want to delete this item?"
 msgstr "Bạn chắc chắn muốn xóa nó "
 
-#: src/views/site/SiteList.vue:146 src/views/stream/StreamList.vue:167
+#: src/views/site/SiteList.vue:153 src/views/stream/StreamList.vue:167
 #, fuzzy
 msgid "Are you sure you want to delete?"
 msgstr "Bạn chắc chắn muốn xóa nó "
@@ -520,7 +520,7 @@ msgstr ""
 
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:556
 #: src/views/site/ngx_conf/NgxServer.vue:110
-#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:155
+#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:162
 #: src/views/stream/StreamList.vue:176
 msgid "Delete"
 msgstr "Xoá"
@@ -529,7 +529,7 @@ msgstr "Xoá"
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/views/site/SiteList.vue:78
+#: src/views/site/SiteList.vue:85
 msgid "Delete site: %{site_name}"
 msgstr "Xoá trang web: %{site_name}"
 
@@ -593,7 +593,7 @@ msgstr "Directives"
 msgid "Directory"
 msgstr "Thư mục"
 
-#: src/views/site/SiteList.vue:124 src/views/stream/StreamList.vue:145
+#: src/views/site/SiteList.vue:131 src/views/stream/StreamList.vue:145
 #, fuzzy
 msgid "Disable"
 msgstr "Tắt"
@@ -604,13 +604,14 @@ msgstr "Tắt tự động gia hạn SSL cho %{name} thất bại"
 
 #: src/views/environment/envColumns.tsx:113
 #: src/views/environment/envColumns.tsx:95 src/views/site/SiteEdit.vue:181
-#: src/views/site/SiteList.vue:33 src/views/stream/StreamEdit.vue:175
-#: src/views/stream/StreamList.vue:33 src/views/user/userColumns.tsx:41
+#: src/views/site/SiteList.vue:33 src/views/site/SiteList.vue:42
+#: src/views/stream/StreamEdit.vue:175 src/views/stream/StreamList.vue:33
+#: src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Đã tắt"
 
 #: src/views/site/components/RightSettings.vue:38
-#: src/views/site/SiteList.vue:67
+#: src/views/site/SiteList.vue:74
 #: src/views/stream/components/RightSettings.vue:38
 #: src/views/stream/StreamList.vue:67
 msgid "Disabled successfully"
@@ -717,7 +718,7 @@ msgid ""
 msgstr ""
 
 #: src/views/site/components/SiteDuplicate.vue:122
-#: src/views/site/SiteList.vue:140
+#: src/views/site/SiteList.vue:147
 #: src/views/stream/components/StreamDuplicate.vue:122
 #: src/views/stream/StreamList.vue:161
 msgid "Duplicate"
@@ -773,7 +774,7 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgstr "Email (*)"
 
-#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:132
+#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:139
 #: src/views/stream/components/Deploy.vue:83
 #: src/views/stream/StreamList.vue:153
 #, fuzzy
@@ -823,6 +824,7 @@ msgstr "Bật TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/site/components/RightSettings.vue:77
 #: src/views/site/SiteEdit.vue:175 src/views/site/SiteList.vue:29
+#: src/views/site/SiteList.vue:41
 #: src/views/stream/components/RightSettings.vue:76
 #: src/views/stream/StreamEdit.vue:169 src/views/stream/StreamList.vue:29
 #: src/views/user/userColumns.tsx:38
@@ -831,7 +833,7 @@ msgstr "Đã bật"
 
 #: src/views/site/components/RightSettings.vue:29
 #: src/views/site/components/SiteDuplicate.vue:94 src/views/site/SiteAdd.vue:40
-#: src/views/site/SiteList.vue:57
+#: src/views/site/SiteList.vue:64
 #: src/views/stream/components/RightSettings.vue:29
 #: src/views/stream/components/StreamDuplicate.vue:94
 #: src/views/stream/StreamList.vue:57
@@ -889,14 +891,14 @@ msgid "Fail to obtain certificate"
 msgstr "Nhận chứng chỉ"
 
 #: src/views/site/components/RightSettings.vue:41
-#: src/views/site/SiteList.vue:71
+#: src/views/site/SiteList.vue:78
 #: src/views/stream/components/RightSettings.vue:41
 #: src/views/stream/StreamList.vue:71
 msgid "Failed to disable %{msg}"
 msgstr "Không thể tắt %{msg}"
 
 #: src/views/site/components/RightSettings.vue:32
-#: src/views/site/SiteList.vue:61
+#: src/views/site/SiteList.vue:68
 #: src/views/stream/components/RightSettings.vue:32
 #: src/views/stream/StreamList.vue:61
 msgid "Failed to enable %{msg}"
@@ -1261,7 +1263,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Quản lý cấu hình"
 
-#: src/routes/index.ts:48 src/views/site/SiteList.vue:102
+#: src/routes/index.ts:48 src/views/site/SiteList.vue:109
 msgid "Manage Sites"
 msgstr "Quản lý Website"
 
@@ -1428,7 +1430,7 @@ msgstr "Restart Nginx thành công"
 #: src/views/preference/BasicSettings.vue:101
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90
 #: src/views/site/ngx_conf/LocationEditor.vue:90
-#: src/views/site/SiteList.vue:144 src/views/stream/StreamList.vue:165
+#: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165
 msgid "No"
 msgstr "Không"
 
@@ -1505,7 +1507,7 @@ msgstr ""
 #: src/views/site/components/RightSettings.vue:50
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
-#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:145
+#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:152
 #: src/views/stream/components/Deploy.vue:20
 #: src/views/stream/components/RightSettings.vue:50
 #: src/views/stream/StreamList.vue:166
@@ -1989,7 +1991,7 @@ msgstr "Gửi"
 #: src/views/preference/components/Passkey.vue:56
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:58
-#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:81
+#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88
 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81
 #: src/views/system/Upgrade.vue:42
 msgid "Server error"
@@ -2382,7 +2384,7 @@ msgstr "Cập nhật thành công"
 #: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
 #: src/views/environment/envColumns.tsx:124
 #: src/views/site/components/RightSettings.vue:86
-#: src/views/site/SiteList.vue:41
+#: src/views/site/SiteList.vue:48
 #: src/views/stream/components/RightSettings.vue:85
 #: src/views/stream/StreamList.vue:41 src/views/user/userColumns.tsx:54
 msgid "Updated at"

+ 20 - 18
app/src/language/zh_CN/app.po

@@ -40,7 +40,7 @@ msgstr "ACME 用户"
 #: src/views/config/configColumns.ts:38
 #: src/views/environment/envColumns.tsx:131
 #: src/views/notification/notificationColumns.tsx:54
-#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:47
+#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54
 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "操作"
@@ -143,7 +143,7 @@ msgstr "您确定要永久删除此项目吗?"
 msgid "Are you sure you want to delete this item?"
 msgstr "你确定要删除这个项目吗?"
 
-#: src/views/site/SiteList.vue:146 src/views/stream/StreamList.vue:167
+#: src/views/site/SiteList.vue:153 src/views/stream/StreamList.vue:167
 msgid "Are you sure you want to delete?"
 msgstr "您确定要删除吗?"
 
@@ -488,7 +488,7 @@ msgstr "天"
 
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:556
 #: src/views/site/ngx_conf/NgxServer.vue:110
-#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:155
+#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:162
 #: src/views/stream/StreamList.vue:176
 msgid "Delete"
 msgstr "删除"
@@ -497,7 +497,7 @@ msgstr "删除"
 msgid "Delete Permanently"
 msgstr "彻底删除"
 
-#: src/views/site/SiteList.vue:78
+#: src/views/site/SiteList.vue:85
 msgid "Delete site: %{site_name}"
 msgstr "删除站点: %{site_name}"
 
@@ -557,7 +557,7 @@ msgstr "指令"
 msgid "Directory"
 msgstr "目录"
 
-#: src/views/site/SiteList.vue:124 src/views/stream/StreamList.vue:145
+#: src/views/site/SiteList.vue:131 src/views/stream/StreamList.vue:145
 msgid "Disable"
 msgstr "禁用"
 
@@ -567,13 +567,14 @@ msgstr "关闭 %{name} 自动续签失败"
 
 #: src/views/environment/envColumns.tsx:113
 #: src/views/environment/envColumns.tsx:95 src/views/site/SiteEdit.vue:181
-#: src/views/site/SiteList.vue:33 src/views/stream/StreamEdit.vue:175
-#: src/views/stream/StreamList.vue:33 src/views/user/userColumns.tsx:41
+#: src/views/site/SiteList.vue:33 src/views/site/SiteList.vue:42
+#: src/views/stream/StreamEdit.vue:175 src/views/stream/StreamList.vue:33
+#: src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "禁用"
 
 #: src/views/site/components/RightSettings.vue:38
-#: src/views/site/SiteList.vue:67
+#: src/views/site/SiteList.vue:74
 #: src/views/stream/components/RightSettings.vue:38
 #: src/views/stream/StreamList.vue:67
 msgid "Disabled successfully"
@@ -671,7 +672,7 @@ msgstr ""
 "使用 Passkey。"
 
 #: src/views/site/components/SiteDuplicate.vue:122
-#: src/views/site/SiteList.vue:140
+#: src/views/site/SiteList.vue:147
 #: src/views/stream/components/StreamDuplicate.vue:122
 #: src/views/stream/StreamList.vue:161
 msgid "Duplicate"
@@ -721,7 +722,7 @@ msgstr "邮箱"
 msgid "Email (*)"
 msgstr "邮箱 (*)"
 
-#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:132
+#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:139
 #: src/views/stream/components/Deploy.vue:83
 #: src/views/stream/StreamList.vue:153
 msgid "Enable"
@@ -767,6 +768,7 @@ msgstr "启用 TOTP"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/site/components/RightSettings.vue:77
 #: src/views/site/SiteEdit.vue:175 src/views/site/SiteList.vue:29
+#: src/views/site/SiteList.vue:41
 #: src/views/stream/components/RightSettings.vue:76
 #: src/views/stream/StreamEdit.vue:169 src/views/stream/StreamList.vue:29
 #: src/views/user/userColumns.tsx:38
@@ -775,7 +777,7 @@ msgstr "启用"
 
 #: src/views/site/components/RightSettings.vue:29
 #: src/views/site/components/SiteDuplicate.vue:94 src/views/site/SiteAdd.vue:40
-#: src/views/site/SiteList.vue:57
+#: src/views/site/SiteList.vue:64
 #: src/views/stream/components/RightSettings.vue:29
 #: src/views/stream/components/StreamDuplicate.vue:94
 #: src/views/stream/StreamList.vue:57
@@ -829,14 +831,14 @@ msgid "Fail to obtain certificate"
 msgstr "获取证书失败"
 
 #: src/views/site/components/RightSettings.vue:41
-#: src/views/site/SiteList.vue:71
+#: src/views/site/SiteList.vue:78
 #: src/views/stream/components/RightSettings.vue:41
 #: src/views/stream/StreamList.vue:71
 msgid "Failed to disable %{msg}"
 msgstr "禁用失败 %{msg}"
 
 #: src/views/site/components/RightSettings.vue:32
-#: src/views/site/SiteList.vue:61
+#: src/views/site/SiteList.vue:68
 #: src/views/stream/components/RightSettings.vue:32
 #: src/views/stream/StreamList.vue:61
 msgid "Failed to enable %{msg}"
@@ -1182,7 +1184,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "配置管理"
 
-#: src/routes/index.ts:48 src/views/site/SiteList.vue:102
+#: src/routes/index.ts:48 src/views/site/SiteList.vue:109
 msgid "Manage Sites"
 msgstr "网站管理"
 
@@ -1338,7 +1340,7 @@ msgstr "Nginx 重启成功"
 #: src/views/preference/BasicSettings.vue:101
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90
 #: src/views/site/ngx_conf/LocationEditor.vue:90
-#: src/views/site/SiteList.vue:144 src/views/stream/StreamList.vue:165
+#: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165
 msgid "No"
 msgstr "取消"
 
@@ -1412,7 +1414,7 @@ msgstr "确定"
 #: src/views/site/components/RightSettings.vue:50
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
-#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:145
+#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:152
 #: src/views/stream/components/Deploy.vue:20
 #: src/views/stream/components/RightSettings.vue:50
 #: src/views/stream/StreamList.vue:166
@@ -1871,7 +1873,7 @@ msgstr "上传"
 #: src/views/preference/components/Passkey.vue:56
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:58
-#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:81
+#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88
 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81
 #: src/views/system/Upgrade.vue:42
 msgid "Server error"
@@ -2253,7 +2255,7 @@ msgstr "更新成功"
 #: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
 #: src/views/environment/envColumns.tsx:124
 #: src/views/site/components/RightSettings.vue:86
-#: src/views/site/SiteList.vue:41
+#: src/views/site/SiteList.vue:48
 #: src/views/stream/components/RightSettings.vue:85
 #: src/views/stream/StreamList.vue:41 src/views/user/userColumns.tsx:54
 msgid "Updated at"

+ 20 - 18
app/src/language/zh_TW/app.po

@@ -44,7 +44,7 @@ msgstr "ACME 用戶"
 #: src/views/config/configColumns.ts:38
 #: src/views/environment/envColumns.tsx:131
 #: src/views/notification/notificationColumns.tsx:54
-#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:47
+#: src/views/preference/AuthSettings.vue:27 src/views/site/SiteList.vue:54
 #: src/views/stream/StreamList.vue:47 src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "操作"
@@ -148,7 +148,7 @@ msgstr "您確定要永久刪除此項目嗎?"
 msgid "Are you sure you want to delete this item?"
 msgstr "您確定要刪除此項目嗎?"
 
-#: src/views/site/SiteList.vue:146 src/views/stream/StreamList.vue:167
+#: src/views/site/SiteList.vue:153 src/views/stream/StreamList.vue:167
 msgid "Are you sure you want to delete?"
 msgstr "您確定要刪除嗎?"
 
@@ -495,7 +495,7 @@ msgstr "天"
 
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:556
 #: src/views/site/ngx_conf/NgxServer.vue:110
-#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:155
+#: src/views/site/ngx_conf/NgxUpstream.vue:126 src/views/site/SiteList.vue:162
 #: src/views/stream/StreamList.vue:176
 msgid "Delete"
 msgstr "刪除"
@@ -504,7 +504,7 @@ msgstr "刪除"
 msgid "Delete Permanently"
 msgstr "永久刪除"
 
-#: src/views/site/SiteList.vue:78
+#: src/views/site/SiteList.vue:85
 msgid "Delete site: %{site_name}"
 msgstr "刪除網站:%{site_name}"
 
@@ -564,7 +564,7 @@ msgstr "指令"
 msgid "Directory"
 msgstr "目錄"
 
-#: src/views/site/SiteList.vue:124 src/views/stream/StreamList.vue:145
+#: src/views/site/SiteList.vue:131 src/views/stream/StreamList.vue:145
 msgid "Disable"
 msgstr "停用"
 
@@ -574,13 +574,14 @@ msgstr "關閉 %{name} 自動續簽失敗"
 
 #: src/views/environment/envColumns.tsx:113
 #: src/views/environment/envColumns.tsx:95 src/views/site/SiteEdit.vue:181
-#: src/views/site/SiteList.vue:33 src/views/stream/StreamEdit.vue:175
-#: src/views/stream/StreamList.vue:33 src/views/user/userColumns.tsx:41
+#: src/views/site/SiteList.vue:33 src/views/site/SiteList.vue:42
+#: src/views/stream/StreamEdit.vue:175 src/views/stream/StreamList.vue:33
+#: src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "停用"
 
 #: src/views/site/components/RightSettings.vue:38
-#: src/views/site/SiteList.vue:67
+#: src/views/site/SiteList.vue:74
 #: src/views/stream/components/RightSettings.vue:38
 #: src/views/stream/StreamList.vue:67
 msgid "Disabled successfully"
@@ -676,7 +677,7 @@ msgid ""
 msgstr ""
 
 #: src/views/site/components/SiteDuplicate.vue:122
-#: src/views/site/SiteList.vue:140
+#: src/views/site/SiteList.vue:147
 #: src/views/stream/components/StreamDuplicate.vue:122
 #: src/views/stream/StreamList.vue:161
 msgid "Duplicate"
@@ -726,7 +727,7 @@ msgstr "電子郵件"
 msgid "Email (*)"
 msgstr "電子郵件 (*)"
 
-#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:132
+#: src/views/site/components/Deploy.vue:84 src/views/site/SiteList.vue:139
 #: src/views/stream/components/Deploy.vue:83
 #: src/views/stream/StreamList.vue:153
 msgid "Enable"
@@ -773,6 +774,7 @@ msgstr "啟用 TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/site/components/RightSettings.vue:77
 #: src/views/site/SiteEdit.vue:175 src/views/site/SiteList.vue:29
+#: src/views/site/SiteList.vue:41
 #: src/views/stream/components/RightSettings.vue:76
 #: src/views/stream/StreamEdit.vue:169 src/views/stream/StreamList.vue:29
 #: src/views/user/userColumns.tsx:38
@@ -781,7 +783,7 @@ msgstr "已啟用"
 
 #: src/views/site/components/RightSettings.vue:29
 #: src/views/site/components/SiteDuplicate.vue:94 src/views/site/SiteAdd.vue:40
-#: src/views/site/SiteList.vue:57
+#: src/views/site/SiteList.vue:64
 #: src/views/stream/components/RightSettings.vue:29
 #: src/views/stream/components/StreamDuplicate.vue:94
 #: src/views/stream/StreamList.vue:57
@@ -835,14 +837,14 @@ msgid "Fail to obtain certificate"
 msgstr "獲取憑證失敗"
 
 #: src/views/site/components/RightSettings.vue:41
-#: src/views/site/SiteList.vue:71
+#: src/views/site/SiteList.vue:78
 #: src/views/stream/components/RightSettings.vue:41
 #: src/views/stream/StreamList.vue:71
 msgid "Failed to disable %{msg}"
 msgstr "停用 %{msg} 失敗"
 
 #: src/views/site/components/RightSettings.vue:32
-#: src/views/site/SiteList.vue:61
+#: src/views/site/SiteList.vue:68
 #: src/views/stream/components/RightSettings.vue:32
 #: src/views/stream/StreamList.vue:61
 msgid "Failed to enable %{msg}"
@@ -1189,7 +1191,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "管理設定"
 
-#: src/routes/index.ts:48 src/views/site/SiteList.vue:102
+#: src/routes/index.ts:48 src/views/site/SiteList.vue:109
 msgid "Manage Sites"
 msgstr "管理網站"
 
@@ -1345,7 +1347,7 @@ msgstr "Nginx 重啟成功"
 #: src/views/preference/BasicSettings.vue:101
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:90
 #: src/views/site/ngx_conf/LocationEditor.vue:90
-#: src/views/site/SiteList.vue:144 src/views/stream/StreamList.vue:165
+#: src/views/site/SiteList.vue:151 src/views/stream/StreamList.vue:165
 msgid "No"
 msgstr "取消"
 
@@ -1419,7 +1421,7 @@ msgstr "確定"
 #: src/views/site/components/RightSettings.vue:50
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
-#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:145
+#: src/views/site/ngx_conf/NgxUpstream.vue:32 src/views/site/SiteList.vue:152
 #: src/views/stream/components/Deploy.vue:20
 #: src/views/stream/components/RightSettings.vue:50
 #: src/views/stream/StreamList.vue:166
@@ -1881,7 +1883,7 @@ msgstr "傳送"
 #: src/views/preference/components/Passkey.vue:56
 #: src/views/preference/components/TOTP.vue:45
 #: src/views/preference/components/TOTP.vue:58
-#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:81
+#: src/views/preference/Preference.vue:83 src/views/site/SiteList.vue:88
 #: src/views/stream/StreamList.vue:113 src/views/stream/StreamList.vue:81
 #: src/views/system/Upgrade.vue:42
 msgid "Server error"
@@ -2260,7 +2262,7 @@ msgstr "更新成功"
 #: src/views/config/configColumns.ts:31 src/views/config/ConfigEditor.vue:275
 #: src/views/environment/envColumns.tsx:124
 #: src/views/site/components/RightSettings.vue:86
-#: src/views/site/SiteList.vue:41
+#: src/views/site/SiteList.vue:48
 #: src/views/stream/components/RightSettings.vue:85
 #: src/views/stream/StreamList.vue:41 src/views/user/userColumns.tsx:54
 msgid "Updated at"