feat(site): index url #736,#310

This commit is contained in:
Jacky 2025-04-05 12:50:46 +00:00
parent 94fcbf6362
commit c013c468a0
No known key found for this signature in database
GPG key ID: 215C21B10DF38B4D
20 changed files with 559 additions and 355 deletions

View file

@ -8,6 +8,7 @@ import (
"github.com/0xJacky/Nginx-UI/internal/config"
"github.com/0xJacky/Nginx-UI/internal/nginx"
"github.com/0xJacky/Nginx-UI/internal/site"
"github.com/0xJacky/Nginx-UI/model"
"github.com/0xJacky/Nginx-UI/query"
"github.com/gin-gonic/gin"
@ -90,6 +91,8 @@ func GetSiteList(c *gin.Context) {
continue
}
indexedSite := site.GetIndexedSite(file.Name())
configs = append(configs, config.Config{
Name: file.Name(),
ModifiedAt: fileInfo.ModTime(),
@ -98,6 +101,7 @@ func GetSiteList(c *gin.Context) {
Enabled: enabledConfigMap[file.Name()],
EnvGroupID: envGroupId,
EnvGroup: envGroup,
Urls: indexedSite.Urls,
})
}

View file

@ -22,6 +22,7 @@ export interface Site extends ModelBase {
env_group_id: number
env_group?: EnvGroup
sync_node_ids: number[]
urls?: string[]
}
export interface AutoCertRequest {

View file

@ -43,12 +43,12 @@ msgstr "مستخدم ACME"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "إجراء"
@ -98,8 +98,8 @@ msgstr "تمت الإضافة بنجاح"
msgid "Additional"
msgstr "إضافي"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "الوضع المتقدم"
@ -282,8 +282,8 @@ msgstr ""
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "رجوع"
@ -336,8 +336,8 @@ msgstr "المعلومات الأساسية"
msgid "Basic"
msgstr "أساسي"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "الوضع الأساسي"
@ -642,7 +642,7 @@ msgid ""
"Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -867,9 +867,9 @@ msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "معطل"
@ -993,8 +993,8 @@ msgstr "تم النسخ إلى المحلي بنجاح"
msgid "Edit"
msgstr "تعديل %{n}"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "تعديل %{n}"
@ -1094,11 +1094,11 @@ msgstr "تفعيل TOTP"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "مفعل"
@ -2042,8 +2042,8 @@ msgstr "قائمة السماح لمجلد سجلات Nginx"
msgid "Nginx configuration has been restored"
msgstr "خطأ في تحليل تكوين Nginx"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
msgid "Nginx Configuration Parse Error"
msgstr "خطأ في تحليل تكوين Nginx"
@ -2157,7 +2157,7 @@ msgid "Node"
msgstr "اسم العقدة"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
#, fuzzy
@ -2648,7 +2648,7 @@ msgid "Reload"
msgstr "إعادة تحميل"
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -2900,9 +2900,9 @@ msgstr "يعمل"
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr "حفظ"
@ -2964,8 +2964,8 @@ msgstr "تم الحفظ بنجاح"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr "تم الحفظ بنجاح"
@ -3183,7 +3183,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
msgid "Status"
msgstr "الحالة"
@ -3628,10 +3628,10 @@ msgstr "تم التحديث بنجاح"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
msgid "Updated at"
@ -3673,6 +3673,10 @@ msgstr "مدة التشغيل:"
msgid "URL"
msgstr "عنوان URL"
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr "استخدم كلمة المرور لمرة واحدة"

View file

@ -40,12 +40,12 @@ msgstr "Benutzername"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "Aktion"
@ -99,8 +99,8 @@ msgstr "Speichern erfolgreich"
msgid "Additional"
msgstr "Ort hinzufügen"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "Erweiterter Modus"
@ -296,8 +296,8 @@ msgstr ""
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "Zurück"
@ -352,8 +352,8 @@ msgstr "Basisinformationen"
msgid "Basic"
msgstr "Basic-Modus"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "Basic-Modus"
@ -665,7 +665,7 @@ msgid ""
"Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -898,9 +898,9 @@ msgstr "Speichern erfolgreich"
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "Deaktiviert"
@ -1033,8 +1033,8 @@ msgstr "Erfolgreich dupliziert"
msgid "Edit"
msgstr "Bearbeiten %{n}"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "Bearbeiten %{n}"
@ -1141,11 +1141,11 @@ msgstr "Aktiviere TLS"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "Aktiviert"
@ -2119,8 +2119,8 @@ msgstr "Nginx-Log-Verzeichnis-Whitelist"
msgid "Nginx configuration has been restored"
msgstr "Name der Konfiguration"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
#, fuzzy
msgid "Nginx Configuration Parse Error"
msgstr "Name der Konfiguration"
@ -2238,7 +2238,7 @@ msgid "Node"
msgstr "Benuztername"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
#, fuzzy
@ -2755,7 +2755,7 @@ msgid "Reload"
msgstr "Neu laden"
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -3022,9 +3022,9 @@ msgstr "Arbeite"
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr "Speichern"
@ -3089,8 +3089,8 @@ msgstr "Speichern erfolgreich"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr "Speichern erfolgreich"
@ -3314,7 +3314,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
msgid "Status"
msgstr "Status"
@ -3767,10 +3767,10 @@ msgstr "Speichern erfolgreich"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
msgid "Updated at"
@ -3815,6 +3815,10 @@ msgstr "Uptime:"
msgid "URL"
msgstr "URL"
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr "Benutze OTP"

View file

@ -41,12 +41,12 @@ msgstr "Username"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "Action"
@ -100,8 +100,8 @@ msgstr "Saved successfully"
msgid "Additional"
msgstr "Add Location"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "Advance Mode"
@ -293,8 +293,8 @@ msgstr ""
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "Back"
@ -349,8 +349,8 @@ msgstr "Base information"
msgid "Basic"
msgstr "Basic Mode"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "Basic Mode"
@ -657,7 +657,7 @@ msgid ""
"Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -889,9 +889,9 @@ msgstr "Saved successfully"
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "Disabled"
@ -1019,8 +1019,8 @@ msgstr "Saved successfully"
msgid "Edit"
msgstr "Edit %{n}"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "Edit %{n}"
@ -1127,11 +1127,11 @@ msgstr "Enable TLS"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "Enabled"
@ -2096,8 +2096,8 @@ msgstr "Configuration Name"
msgid "Nginx configuration has been restored"
msgstr "Configuration Name"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
#, fuzzy
msgid "Nginx Configuration Parse Error"
msgstr "Configuration Name"
@ -2214,7 +2214,7 @@ msgid "Node"
msgstr "Username"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
#, fuzzy
@ -2708,7 +2708,7 @@ msgid "Reload"
msgstr ""
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -2973,9 +2973,9 @@ msgstr ""
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr "Save"
@ -3040,8 +3040,8 @@ msgstr "Saved successfully"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr "Saved successfully"
@ -3265,7 +3265,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
msgid "Status"
msgstr "Status"
@ -3696,10 +3696,10 @@ msgstr "Saved successfully"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
msgid "Updated at"
@ -3744,6 +3744,10 @@ msgstr "Uptime:"
msgid "URL"
msgstr ""
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr ""

View file

@ -46,12 +46,12 @@ msgstr "Usuario ACME"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "Acción"
@ -101,8 +101,8 @@ msgstr "Agregado exitoso"
msgid "Additional"
msgstr "Adicional"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "Modo avanzado"
@ -287,8 +287,8 @@ msgstr ""
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "Volver"
@ -341,8 +341,8 @@ msgstr "Información general"
msgid "Basic"
msgstr "Básico"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "Modo Básico"
@ -641,7 +641,7 @@ msgid ""
"Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -868,9 +868,9 @@ msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "Desactivado"
@ -993,8 +993,8 @@ msgstr "Duplicado con éxito a local"
msgid "Edit"
msgstr "Editar %{n}"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "Editar %{n}"
@ -1097,11 +1097,11 @@ msgstr "Habilitar TLS"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "Habilitado"
@ -2045,8 +2045,8 @@ msgstr "Lista blanca de directorios de registro de Nginx"
msgid "Nginx configuration has been restored"
msgstr "Error de análisis de configuración de Nginx"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
msgid "Nginx Configuration Parse Error"
msgstr "Error de análisis de configuración de Nginx"
@ -2163,7 +2163,7 @@ msgid "Node"
msgstr "Nuevo nombre"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
#, fuzzy
@ -2673,7 +2673,7 @@ msgid "Reload"
msgstr "Recargar"
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -2928,9 +2928,9 @@ msgstr "Corriendo"
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr "Guardar"
@ -2994,8 +2994,8 @@ msgstr "Guardado con éxito"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr "Guardado con éxito"
@ -3213,7 +3213,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
msgid "Status"
msgstr "Estado"
@ -3670,10 +3670,10 @@ msgstr "Actualización exitosa"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
msgid "Updated at"
@ -3715,6 +3715,10 @@ msgstr "Tiempo encendido:"
msgid "URL"
msgstr "URL"
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr "Usar OTP"

View file

@ -45,12 +45,12 @@ msgstr "Nom d'utilisateur"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "Action"
@ -104,8 +104,8 @@ msgstr "Mis à jour avec succés"
msgid "Additional"
msgstr "Supplémentaire"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "Mode avancé"
@ -300,8 +300,8 @@ msgstr ""
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "Retour"
@ -354,8 +354,8 @@ msgstr "Information générale"
msgid "Basic"
msgstr "Basique"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "Mode simple"
@ -669,7 +669,7 @@ msgid ""
"Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -905,9 +905,9 @@ msgstr "Dupliqué avec succès"
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "Désactivé"
@ -1037,8 +1037,8 @@ msgstr "Dupliqué avec succès"
msgid "Edit"
msgstr "Modifier %{n}"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "Modifier %{n}"
@ -1145,11 +1145,11 @@ msgstr "Activer TLS"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "Activé"
@ -2128,8 +2128,8 @@ msgstr "Erreur d'analyse de configuration Nginx"
msgid "Nginx configuration has been restored"
msgstr "Erreur d'analyse de configuration Nginx"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
msgid "Nginx Configuration Parse Error"
msgstr "Erreur d'analyse de configuration Nginx"
@ -2247,7 +2247,7 @@ msgid "Node"
msgstr "Nom d'utilisateur"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
#, fuzzy
@ -2747,7 +2747,7 @@ msgid "Reload"
msgstr "Recharger"
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -3014,9 +3014,9 @@ msgstr "En cours d'éxécution"
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr "Enregistrer"
@ -3080,8 +3080,8 @@ msgstr "Sauvegarde réussie"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr "Enregistré avec succès"
@ -3303,7 +3303,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
msgid "Status"
msgstr "Statut"
@ -3744,10 +3744,10 @@ msgstr "Mis à jour avec succés"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
msgid "Updated at"
@ -3790,6 +3790,10 @@ msgstr "Disponibilité :"
msgid "URL"
msgstr ""
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr ""

View file

@ -44,12 +44,12 @@ msgstr "ACME 사용자"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "작업"
@ -99,8 +99,8 @@ msgstr "성공적으로 추가됨"
msgid "Additional"
msgstr "추가적인"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "고급 모드"
@ -284,8 +284,8 @@ msgstr ""
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "뒤로"
@ -338,8 +338,8 @@ msgstr "기본 정보"
msgid "Basic"
msgstr "기본"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "기본 모드"
@ -638,7 +638,7 @@ msgid ""
"Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -868,9 +868,9 @@ msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "비활성화됨"
@ -989,8 +989,8 @@ msgstr "로컬로 성공적으로 복제됨"
msgid "Edit"
msgstr "%{n} 편집"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "%{n} 편집"
@ -1095,11 +1095,11 @@ msgstr "TLS 활성화"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "활성화됨"
@ -2058,8 +2058,8 @@ msgstr "Nginx 구성 오류름"
msgid "Nginx configuration has been restored"
msgstr "Nginx 구성 오류름"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
#, fuzzy
msgid "Nginx Configuration Parse Error"
msgstr "Nginx 구성 오류름"
@ -2178,7 +2178,7 @@ msgid "Node"
msgstr "이름 변경"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
#, fuzzy
@ -2677,7 +2677,7 @@ msgid "Reload"
msgstr "리로드"
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -2945,9 +2945,9 @@ msgstr "실행 중"
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr "저장"
@ -3012,8 +3012,8 @@ msgstr "성공적으로 저장됨"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr "성공적으로 저장됨"
@ -3232,7 +3232,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
msgid "Status"
msgstr "상태"
@ -3666,10 +3666,10 @@ msgstr "성공적으로 저장되었습니다"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
msgid "Updated at"
@ -3714,6 +3714,10 @@ msgstr "가동 시간:"
msgid "URL"
msgstr "URL"
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr ""

View file

@ -33,12 +33,12 @@ msgstr ""
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76
#: src/views/site/site_list/columns.tsx:93
#: src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
@ -91,8 +91,8 @@ msgstr ""
msgid "Additional"
msgstr ""
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr ""
@ -270,8 +270,8 @@ msgstr ""
#: src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180
#: src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr ""
@ -321,8 +321,8 @@ msgstr ""
msgid "Basic"
msgstr ""
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr ""
@ -602,7 +602,7 @@ msgstr ""
msgid "Create system backups including Nginx configuration and Nginx UI settings. Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -819,10 +819,10 @@ msgstr ""
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62
#: src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79
#: src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56
#: src/views/user/userColumns.tsx:41
msgid "Disabled"
@ -937,8 +937,8 @@ msgstr ""
msgid "Edit"
msgstr ""
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr ""
@ -1034,11 +1034,11 @@ msgstr ""
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171
#: src/views/stream/StreamEdit.vue:172
#: src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
@ -1912,8 +1912,8 @@ msgstr ""
msgid "Nginx configuration has been restored"
msgstr ""
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
msgid "Nginx Configuration Parse Error"
msgstr ""
@ -2019,7 +2019,7 @@ msgid "Node"
msgstr ""
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
msgid "Node Group"
@ -2472,7 +2472,7 @@ msgid "Reload"
msgstr ""
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -2707,9 +2707,9 @@ msgstr ""
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr ""
@ -2767,8 +2767,8 @@ msgstr ""
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr ""
@ -2967,7 +2967,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42
#: src/views/site/site_list/columns.tsx:59
#: src/views/stream/StreamList.vue:45
msgid "Status"
msgstr ""
@ -3329,10 +3329,10 @@ msgstr ""
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34
#: src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65
#: src/views/user/userColumns.tsx:54
@ -3376,6 +3376,10 @@ msgstr ""
msgid "URL"
msgstr ""
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr ""

View file

@ -46,12 +46,12 @@ msgstr "Пользователь ACME"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "Действие"
@ -101,8 +101,8 @@ msgstr "Добавлено успешно"
msgid "Additional"
msgstr "Дополнительно"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "Расширенный режим"
@ -281,8 +281,8 @@ msgstr ""
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "Назад"
@ -335,8 +335,8 @@ msgstr "Основная информация"
msgid "Basic"
msgstr "Основные"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "Простой режим"
@ -628,7 +628,7 @@ msgid ""
"Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -855,9 +855,9 @@ msgstr "Включение %{conf_name} in %{node_name} успешно"
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "Отключено"
@ -980,8 +980,8 @@ msgstr "Успешно дублировано на локальный"
msgid "Edit"
msgstr "Редактировать %{n}"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "Редактировать %{n}"
@ -1081,11 +1081,11 @@ msgstr "Включить TOTP"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "Включено"
@ -2025,8 +2025,8 @@ msgstr "Белый список директорий для логов Nginx"
msgid "Nginx configuration has been restored"
msgstr "Ошибка разбора конфигурации Nginx"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
msgid "Nginx Configuration Parse Error"
msgstr "Ошибка разбора конфигурации Nginx"
@ -2142,7 +2142,7 @@ msgid "Node"
msgstr "Имя узла"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
#, fuzzy
@ -2642,7 +2642,7 @@ msgid "Reload"
msgstr "Перегрузить"
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -2895,9 +2895,9 @@ msgstr "Выполняется"
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr "Сохранить"
@ -2959,8 +2959,8 @@ msgstr "Сохранено успешно"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr "Успешно сохранено"
@ -3177,7 +3177,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
msgid "Status"
msgstr "Статус"
@ -3626,10 +3626,10 @@ msgstr "Успешно обновлено"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
msgid "Updated at"
@ -3671,6 +3671,10 @@ msgstr "Аптайм:"
msgid "URL"
msgstr "URL"
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr "Использовать OTP"

View file

@ -42,12 +42,12 @@ msgstr "ACME Kullanıcısı"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "Eylem"
@ -97,8 +97,8 @@ msgstr "Başarıyla eklendi"
msgid "Additional"
msgstr "İlave bilgi"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "Gelişmiş Mod"
@ -282,8 +282,8 @@ msgstr ""
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "Geri"
@ -336,8 +336,8 @@ msgstr "Temel bilgiler"
msgid "Basic"
msgstr "Temel"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "Temel Mod"
@ -634,7 +634,7 @@ msgid ""
"Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -874,9 +874,9 @@ msgstr ""
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "Devre dışı"
@ -999,8 +999,8 @@ msgstr "Başarıyla yerel kopya oluşturuldu"
msgid "Edit"
msgstr "Düzenle %{n}"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "Düzenle %{n}"
@ -1110,11 +1110,11 @@ msgstr "TOTP'yi Etkinleştir"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "Etkin"
@ -2083,8 +2083,8 @@ msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
msgid "Nginx configuration has been restored"
msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
#, fuzzy
msgid "Nginx Configuration Parse Error"
msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
@ -2208,7 +2208,7 @@ msgid "Node"
msgstr "Yeni Ad"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
#, fuzzy
@ -2780,7 +2780,7 @@ msgid "Reload"
msgstr "Tekrar yükle"
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -3064,9 +3064,9 @@ msgstr "Çalışıyor"
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
#, fuzzy
msgid "Save"
msgstr "Kaydet"
@ -3135,8 +3135,8 @@ msgstr "Başarıyla kaydedin"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
#, fuzzy
msgid "Saved successfully"
msgstr "Başarıyla Kaydedildi"
@ -3375,7 +3375,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
#, fuzzy
msgid "Status"
msgstr "Durum"
@ -3873,10 +3873,10 @@ msgstr "Güncellendi"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
#, fuzzy
@ -3927,6 +3927,10 @@ msgstr "Çalışma süresi:"
msgid "URL"
msgstr "URL"
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
#, fuzzy
msgid "Use OTP"

View file

@ -40,12 +40,12 @@ msgstr "Người dùng"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "Hành động"
@ -99,8 +99,8 @@ msgstr "Cập nhật thành công"
msgid "Additional"
msgstr "Tùy chọn bổ sung"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "Nâng cao"
@ -293,8 +293,8 @@ msgstr ""
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "Quay lại"
@ -349,8 +349,8 @@ msgstr "Thông tin"
msgid "Basic"
msgstr "Cơ bản"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "Cơ bản"
@ -660,7 +660,7 @@ msgid ""
"Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -893,9 +893,9 @@ msgstr "Đã bật %{conf_name} trên %{node_name}"
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "Đã tắt"
@ -1023,8 +1023,8 @@ msgstr "Đã sao chép thành công vào máy cục bộ"
msgid "Edit"
msgstr "Sửa %{n}"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "Sửa %{n}"
@ -1131,11 +1131,11 @@ msgstr "Bật TLS"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "Đã bật"
@ -2090,8 +2090,8 @@ msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
msgid "Nginx configuration has been restored"
msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
#, fuzzy
msgid "Nginx Configuration Parse Error"
msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
@ -2208,7 +2208,7 @@ msgid "Node"
msgstr "Username"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
#, fuzzy
@ -2705,7 +2705,7 @@ msgid "Reload"
msgstr "Tải lại"
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -2973,9 +2973,9 @@ msgstr "Running"
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr "Lưu"
@ -3040,8 +3040,8 @@ msgstr "Lưu thành công"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr "Lưu thành công"
@ -3257,7 +3257,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
msgid "Status"
msgstr "Trạng thái"
@ -3687,10 +3687,10 @@ msgstr "Cập nhật thành công"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
msgid "Updated at"
@ -3735,6 +3735,10 @@ msgstr "Thời gian hoạt động:"
msgid "URL"
msgstr ""
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr ""

View file

@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2025-04-05 17:43+0800\n"
"PO-Revision-Date: 2025-04-05 20:52+0800\n"
"Last-Translator: 0xJacky <me@jackyu.cn>\n"
"Language-Team: Chinese (Simplified Han script) <https://weblate.nginxui.com/"
"projects/nginx-ui/frontend/zh_Hans/>\n"
@ -44,12 +44,12 @@ msgstr "ACME 用户"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "操作"
@ -99,8 +99,8 @@ msgstr "添加成功"
msgid "Additional"
msgstr "额外选项"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "高级模式"
@ -275,8 +275,8 @@ msgstr "自动索引站点和 Stream 的配置文件。"
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "返回"
@ -326,8 +326,8 @@ msgstr "基本信息"
msgid "Basic"
msgstr "基本"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "基本模式"
@ -616,7 +616,7 @@ msgid ""
msgstr ""
"创建系统备份,包括 Nginx 配置和 Nginx UI 设置。备份文件将自动下载到你的电脑。"
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -828,9 +828,9 @@ msgstr "在 %{node} 上禁用 %{name} 成功"
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "禁用"
@ -947,8 +947,8 @@ msgstr "成功复制到本地"
msgid "Edit"
msgstr "编辑"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "编辑 %{n}"
@ -1041,11 +1041,11 @@ msgstr "启用 TOTP"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "启用"
@ -1933,8 +1933,8 @@ msgstr "未设置 Nginx 配置目录"
msgid "Nginx configuration has been restored"
msgstr "Nginx 配置已恢复"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
msgid "Nginx Configuration Parse Error"
msgstr "Nginx 配置解析错误"
@ -2041,7 +2041,7 @@ msgid "Node"
msgstr "节点"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
msgid "Node Group"
@ -2515,7 +2515,7 @@ msgid "Reload"
msgstr "重载"
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -2746,9 +2746,9 @@ msgstr "运行中"
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr "保存"
@ -2804,8 +2804,8 @@ msgstr "保存成功"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr "保存成功"
@ -3012,7 +3012,7 @@ msgstr "开始还原"
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
msgid "Status"
msgstr "状态"
@ -3425,10 +3425,10 @@ msgstr "更新成功"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
msgid "Updated at"
@ -3470,6 +3470,10 @@ msgstr "运行时间:"
msgid "URL"
msgstr "URL"
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr "链接"
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr "使用二步验证码"

View file

@ -49,12 +49,12 @@ msgstr "ACME 用戶"
#: src/views/certificate/CertificateList/certColumns.tsx:97
#: src/views/certificate/DNSCredential.vue:33
#: src/views/config/configColumns.tsx:42
#: src/views/environments/group/columns.ts:42
#: src/views/environments/group/columns.ts:43
#: src/views/environments/list/envColumns.tsx:97
#: src/views/nginx_log/NginxLogList.vue:53
#: src/views/notification/notificationColumns.tsx:66
#: src/views/preference/AuthSettings.vue:30
#: src/views/site/site_list/columns.tsx:76 src/views/stream/StreamList.vue:72
#: src/views/site/site_list/columns.tsx:93 src/views/stream/StreamList.vue:72
#: src/views/user/userColumns.tsx:60
msgid "Action"
msgstr "操作"
@ -104,8 +104,8 @@ msgstr "添加成功"
msgid "Additional"
msgstr "其他設定"
#: src/views/site/site_edit/SiteEdit.vue:205
#: src/views/stream/StreamEdit.vue:191
#: src/views/site/site_edit/SiteEdit.vue:206
#: src/views/stream/StreamEdit.vue:192
msgid "Advance Mode"
msgstr "進階模式"
@ -283,8 +283,8 @@ msgstr ""
#: src/views/certificate/CertificateEditor.vue:255
#: src/views/config/ConfigEditor.vue:213 src/views/config/ConfigList.vue:106
#: src/views/config/ConfigList.vue:180 src/views/nginx_log/NginxLog.vue:173
#: src/views/site/site_edit/SiteEdit.vue:264
#: src/views/stream/StreamEdit.vue:247
#: src/views/site/site_edit/SiteEdit.vue:265
#: src/views/stream/StreamEdit.vue:248
msgid "Back"
msgstr "返回"
@ -337,8 +337,8 @@ msgstr "基本資訊"
msgid "Basic"
msgstr "基本"
#: src/views/site/site_edit/SiteEdit.vue:208
#: src/views/stream/StreamEdit.vue:194
#: src/views/site/site_edit/SiteEdit.vue:209
#: src/views/stream/StreamEdit.vue:195
msgid "Basic Mode"
msgstr "基本模式"
@ -629,7 +629,7 @@ msgid ""
"Backup files will be automatically downloaded to your computer."
msgstr ""
#: src/views/environments/group/columns.ts:30
#: src/views/environments/group/columns.ts:31
#: src/views/notification/notificationColumns.tsx:59
#: src/views/preference/components/Passkey.vue:95
#: src/views/user/userColumns.tsx:48
@ -845,9 +845,9 @@ msgstr "成功禁用 %{node} 中的站点 %{site}"
#: src/views/preference/HTTPSettings.vue:24
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/SiteEdit.vue:190
#: src/views/site/site_list/columns.tsx:53
#: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:177
#: src/views/site/site_edit/SiteEdit.vue:191
#: src/views/site/site_list/columns.tsx:70
#: src/views/site/site_list/columns.tsx:79 src/views/stream/StreamEdit.vue:178
#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:41
msgid "Disabled"
msgstr "停用"
@ -964,8 +964,8 @@ msgstr "成功複製至本機"
msgid "Edit"
msgstr "編輯"
#: src/views/site/site_edit/SiteEdit.vue:179
#: src/views/stream/StreamEdit.vue:166
#: src/views/site/site_edit/SiteEdit.vue:180
#: src/views/stream/StreamEdit.vue:167
msgid "Edit %{n}"
msgstr "編輯 %{n}"
@ -1065,11 +1065,11 @@ msgstr "啟用 TOTP"
#: src/views/preference/NodeSettings.vue:25
#: src/views/preference/NodeSettings.vue:30
#: src/views/site/site_edit/RightSettings.vue:82
#: src/views/site/site_edit/SiteEdit.vue:184
#: src/views/site/site_list/columns.tsx:49
#: src/views/site/site_list/columns.tsx:61
#: src/views/site/site_edit/SiteEdit.vue:185
#: src/views/site/site_list/columns.tsx:66
#: src/views/site/site_list/columns.tsx:78
#: src/views/stream/components/RightSettings.vue:81
#: src/views/stream/StreamEdit.vue:171 src/views/stream/StreamList.vue:52
#: src/views/stream/StreamEdit.vue:172 src/views/stream/StreamList.vue:52
#: src/views/user/userColumns.tsx:38
msgid "Enabled"
msgstr "已啟用"
@ -2003,8 +2003,8 @@ msgstr "Nginx 日誌目錄白名單"
msgid "Nginx configuration has been restored"
msgstr "Nginx 設定解析錯誤"
#: src/views/site/site_edit/SiteEdit.vue:223
#: src/views/stream/StreamEdit.vue:209
#: src/views/site/site_edit/SiteEdit.vue:224
#: src/views/stream/StreamEdit.vue:210
msgid "Nginx Configuration Parse Error"
msgstr "Nginx 設定解析錯誤"
@ -2118,7 +2118,7 @@ msgid "Node"
msgstr "節點名稱"
#: src/views/site/site_edit/RightSettings.vue:91
#: src/views/site/site_list/columns.tsx:25
#: src/views/site/site_list/columns.tsx:42
#: src/views/stream/components/RightSettings.vue:90
#: src/views/stream/StreamList.vue:28
#, fuzzy
@ -2601,7 +2601,7 @@ msgid "Reload"
msgstr "重新載入"
#: src/components/EnvGroupTabs/EnvGroupTabs.vue:156
#: src/views/environments/group/columns.ts:23
#: src/views/environments/group/columns.ts:24
#: src/views/environments/group/EnvGroup.vue:37
#: src/views/environments/list/Environment.vue:120
#: src/views/environments/list/Environment.vue:128
@ -2853,9 +2853,9 @@ msgstr "執行中"
#: src/views/preference/Preference.vue:221
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
#: src/views/site/site_edit/components/ConfigName.vue:52
#: src/views/site/site_edit/SiteEdit.vue:271
#: src/views/site/site_edit/SiteEdit.vue:272
#: src/views/stream/components/ConfigName.vue:52
#: src/views/stream/StreamEdit.vue:254
#: src/views/stream/StreamEdit.vue:255
msgid "Save"
msgstr "儲存"
@ -2917,8 +2917,8 @@ msgstr "儲存成功"
#: src/views/config/ConfigEditor.vue:167
#: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/site/site_add/SiteAdd.vue:37
#: src/views/site/site_edit/SiteEdit.vue:152
#: src/views/stream/StreamEdit.vue:140
#: src/views/site/site_edit/SiteEdit.vue:153
#: src/views/stream/StreamEdit.vue:141
msgid "Saved successfully"
msgstr "儲存成功"
@ -3132,7 +3132,7 @@ msgstr ""
#: src/views/certificate/ACMEUser.vue:65
#: src/views/certificate/CertificateList/certColumns.tsx:68
#: src/views/environments/list/envColumns.tsx:44
#: src/views/site/site_list/columns.tsx:42 src/views/stream/StreamList.vue:45
#: src/views/site/site_list/columns.tsx:59 src/views/stream/StreamList.vue:45
msgid "Status"
msgstr "狀態"
@ -3555,10 +3555,10 @@ msgstr "更新成功"
#: src/views/certificate/ACMEUser.vue:88
#: src/views/certificate/DNSCredential.vue:27
#: src/views/config/configColumns.tsx:34 src/views/config/ConfigEditor.vue:276
#: src/views/environments/group/columns.ts:36
#: src/views/environments/group/columns.ts:37
#: src/views/environments/list/envColumns.tsx:90
#: src/views/site/site_edit/RightSettings.vue:100
#: src/views/site/site_list/columns.tsx:69
#: src/views/site/site_list/columns.tsx:86
#: src/views/stream/components/RightSettings.vue:99
#: src/views/stream/StreamList.vue:65 src/views/user/userColumns.tsx:54
msgid "Updated at"
@ -3600,6 +3600,10 @@ msgstr "運作時間:"
msgid "URL"
msgstr "URL"
#: src/views/site/site_list/columns.tsx:25
msgid "URLs"
msgstr ""
#: src/components/TwoFA/Authorization.vue:121
msgid "Use OTP"
msgstr "使用一次性密碼"

View file

@ -21,6 +21,24 @@ const columns: Column[] = [{
},
search: true,
width: 120,
}, {
title: () => $gettext('URLs'),
dataIndex: 'urls',
customRender: ({ text, record }) => {
const template: JSXElements = []
if (record.enabled) {
text?.forEach((url: string) => {
template.push(<a href={url} target="_blank" rel="noopener noreferrer">{url}</a>)
template.push(<span>, </span>)
})
template.pop() // Remove last comma
}
else {
template.push(<span>{text?.join(', ')}</span>)
}
return h('div', template)
},
width: 120,
}, {
title: () => $gettext('Node Group'),
dataIndex: 'env_group_id',

View file

@ -19,4 +19,5 @@ type Config struct {
EnvGroup *model.EnvGroup `json:"env_group,omitempty"`
Enabled bool `json:"enabled"`
Dir string `json:"dir"`
Urls []string `json:"urls,omitempty"`
}

View file

@ -35,7 +35,7 @@ func Disable(name string) (err error) {
output := nginx.Reload()
if nginx.GetLogLevel(output) > nginx.Warn {
return fmt.Errorf(output)
return fmt.Errorf("%s", output)
}
go syncDisable(name)

View file

@ -37,12 +37,12 @@ func Enable(name string) (err error) {
output := nginx.TestConf()
if nginx.GetLogLevel(output) > nginx.Warn {
_ = os.Remove(enabledConfigFilePath)
return fmt.Errorf(output)
return fmt.Errorf("%s", output)
}
output = nginx.Reload()
if nginx.GetLogLevel(output) > nginx.Warn {
return fmt.Errorf(output)
return fmt.Errorf("%s", output)
}
go syncEnable(name)

132
internal/site/index.go Normal file
View file

@ -0,0 +1,132 @@
package site
import (
"net"
"path/filepath"
"regexp"
"strings"
"github.com/0xJacky/Nginx-UI/internal/cache"
)
type SiteIndex struct {
Path string
Content string
Urls []string
}
var (
IndexedSites = make(map[string]*SiteIndex)
)
func GetIndexedSite(path string) *SiteIndex {
if site, ok := IndexedSites[path]; ok {
return site
}
return &SiteIndex{}
}
func init() {
cache.RegisterCallback(scanForSite)
}
func scanForSite(configPath string, content []byte) error {
// Regular expressions for server_name and listen directives
serverNameRegex := regexp.MustCompile(`(?m)server_name\s+([^;]+);`)
listenRegex := regexp.MustCompile(`(?m)listen\s+([^;]+);`)
// Find server blocks
serverBlockRegex := regexp.MustCompile(`(?ms)server\s*\{[^\{]*((.*?\{.*?\})*?[^\}]*)\}`)
serverBlocks := serverBlockRegex.FindAllSubmatch(content, -1)
siteIndex := SiteIndex{
Path: configPath,
Content: string(content),
Urls: []string{},
}
// Map to track hosts and their SSL status
hostMap := make(map[string]bool)
for _, block := range serverBlocks {
serverBlockContent := block[0]
// Extract server_name values
serverNameMatches := serverNameRegex.FindSubmatch(serverBlockContent)
if len(serverNameMatches) < 2 {
continue
}
// Get all server names
serverNames := strings.Fields(string(serverNameMatches[1]))
var validServerNames []string
// Filter valid domain names and IPs
for _, name := range serverNames {
// Skip placeholder names
if name == "_" || name == "localhost" {
continue
}
// Check if it's a valid IP
if net.ParseIP(name) != nil {
validServerNames = append(validServerNames, name)
continue
}
// Basic domain validation
if isValidDomain(name) {
validServerNames = append(validServerNames, name)
}
}
if len(validServerNames) == 0 {
continue
}
// Check if SSL is enabled
listenMatches := listenRegex.FindAllSubmatch(serverBlockContent, -1)
hasSSL := false
for _, match := range listenMatches {
if len(match) >= 2 {
listenValue := string(match[1])
if strings.Contains(listenValue, "ssl") || strings.Contains(listenValue, "443") {
hasSSL = true
break
}
}
}
// Update host map with SSL status
for _, name := range validServerNames {
// Only update if this host doesn't have SSL yet
if currentSSL, exists := hostMap[name]; !exists || !currentSSL {
hostMap[name] = hasSSL
}
}
}
// Generate URLs from the host map
for host, hasSSL := range hostMap {
protocol := "http"
if hasSSL {
protocol = "https"
}
url := protocol + "://" + host
siteIndex.Urls = append(siteIndex.Urls, url)
}
// Only store if we found valid URLs
if len(siteIndex.Urls) > 0 {
IndexedSites[filepath.Base(configPath)] = &siteIndex
}
return nil
}
// isValidDomain performs a basic validation of domain names
func isValidDomain(domain string) bool {
// Basic validation: contains at least one dot and no spaces
return strings.Contains(domain, ".") && !strings.Contains(domain, " ")
}

View file

@ -49,13 +49,13 @@ func Rename(oldName string, newName string) (err error) {
// test nginx configuration
output := nginx.TestConf()
if nginx.GetLogLevel(output) > nginx.Warn {
return fmt.Errorf(output)
return fmt.Errorf("%s", output)
}
// reload nginx
output = nginx.Reload()
if nginx.GetLogLevel(output) > nginx.Warn {
return fmt.Errorf(output)
return fmt.Errorf("%s", output)
}
go syncRename(oldName, newName)